@bimdata/viewer 2.6.0-beta.18 → 2.6.0-beta.19

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.
@@ -77,7 +77,7 @@
77
77
  --iteration: ${i.laps};
78
78
  --dasharray: ${i.dashArray};
79
79
  --dashoffset-from: ${i.dashOffsetFrom};
80
- --dashoffset-to: ${i.dashOffsetTo};`),onAnimationiteration:e[0]||(e[0]=n=>t.$emit("lap",(i.delay*i.laps-n.elapsedTime)/i.delay)),onAnimationend:e[1]||(e[1]=n=>t.$emit("stop"))},null,44,Kat)],8,zat)),b("div",{class:"bimdata-pie-spinner__inside",style:pe({width:i.width+"px",height:i.width+"px"})},[mt(t.$slots,"default",{},void 0,!0)],4)])}const Yat=V(qat,[["render",Jat],["__scopeId","data-v-70da4628"]]),Wat={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)}}},Zat=["disabled"],Xat={class:"bimdata-radio__text"};function $at(t,e,i,r,o,s){return x(),U("button",{type:"button",class:ge(["bimdata-radio",{disabled:i.disabled,"bimdata-radio--checked":s.checked,"bimdata-radio--big":i.big}]),disabled:i.disabled,onClick:e[0]||(e[0]=(...n)=>s.onClick&&s.onClick(...n))},[e[1]||(e[1]=b("div",{class:"bimdata-radio__btn"},[b("div",{class:"bimdata-radio__background"}),b("div",{class:"bimdata-radio__circle"}),b("div",{class:"bimdata-radio__dot"})],-1)),b("div",Xat,[mt(t.$slots,"default",{},()=>[st(z(i.text),1)],!0)])],10,Zat)}const elt=V(Wat,[["render",$at],["__scopeId","data-v-91eb0639"]]),tlt={props:{itemWidth:{type:String,default:"100px"},rowGap:{type:String,default:"12px"},columnGap:{type:String,default:"12px"},isRepeatFit:{type:Boolean,default:!1}}};function ilt(t,e,i,r,o,s){return x(),U("div",{class:"bimdata-responsive-grid",style:pe({gridTemplateColumns:i.isRepeatFit?`repeat(auto-fit, minmax(${i.itemWidth}, 1fr))`:`repeat(auto-fill, minmax(${i.itemWidth}, 1fr))`,rowGap:i.rowGap,columnGap:i.columnGap})},[mt(t.$slots,"default",{},void 0,!0)],4)}const rlt=V(tlt,[["render",ilt],["__scopeId","data-v-b626b0fb"]]),olt={components:{BIMDataIconClose:kB,BIMDataButton:ta},props:{reverse:{type:Boolean,default:!1}},emits:["confirm-delete","cancel-delete"]},nlt={class:"safe-zone-inline"};function slt(t,e,i,r,o,s){const n=P("BIMDataButton"),a=P("BIMDataIconClose");return x(),U("div",nlt,[F(n,{class:"safe-zone-inline__btn-delete",color:"high",fill:"",radius:"",onClick:e[0]||(e[0]=l=>t.$emit("confirm-delete"))},{default:G(()=>[mt(t.$slots,"content",{},()=>[e[2]||(e[2]=st("Delete"))],!0)]),_:3}),F(n,{class:"safe-zone-inline__btn-close",style:pe({width:"15px",order:i.reverse?-1:0}),width:"0px",radius:"",onClick:e[1]||(e[1]=l=>t.$emit("cancel-delete"))},{default:G(()=>[F(a,{size:"xxs",color:"granite"})]),_:1},8,["style"])])}const alt=V(olt,[["render",slt],["__scopeId","data-v-b2effc6d"]]),llt={components:{BIMDataIconClose:kB,BIMDataIconSearch:rT,BIMDataButton:ta},directives:{focus:{inserted:function(t,{value:e}){e&&t.focus()}},clickaway:Hd},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:t=>YL.includes(t)},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")}}},clt={class:"bimdata-search-icon"},dlt=["value","placeholder","autocomplete","disabled"];function Alt(t,e,i,r,o,s){const n=P("BIMDataIconSearch"),a=P("BIMDataIconClose"),l=P("BIMDataButton"),c=Ti("focus"),d=Ti("clickaway");return Bt((x(),U("div",{class:ge(["bimdata-search-bar",{focus:o.focused,disabled:i.disabled,...s.classes}]),style:pe({width:i.width,height:i.height})},[b("span",clt,[F(n,{size:"xxs"})]),Bt(b("input",{ref:"input",value:i.modelValue,onFocus:e[0]||(e[0]=A=>o.focused=!0),onBlur:e[1]||(e[1]=A=>o.focused=!1),onInput:e[2]||(e[2]=A=>t.$emit("update:modelValue",A.target.value)),placeholder:i.placeholder,onKeyup:e[3]||(e[3]=Kt(A=>t.$emit("enter",A.target.value),["enter"])),autocomplete:i.autocomplete?"on":"off",disabled:i.disabled},null,40,dlt),[[c,i.autofocus]]),i.clear&&i.modelValue!==""?(x(),W(l,{key:0,width:"25px",onClick:e[4]||(e[4]=A=>s.clickClear())},{default:G(()=>[F(a,{size:"xxs"})]),_:1})):he("",!0)],6)),[[d,s.away]])}const ult=V(llt,[["render",Alt],["__scopeId","data-v-c3818791"]]),hlt={components:{BIMDataIconDefault:T$,BIMDataIconSearch:rT,BIMDataTextbox:xB},directives:{clickaway:Hd},props:{items:{type:Array,required:!0,default:()=>[]},isAllResultatsBtnActive:{type:Boolean,required:!1,default:!0},perPage:{type:Number,default:10,validator:t=>t>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 t=["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(i=>t.some(r=>typeof i[r]=="string"?i[r].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(t){this.$emit("item-click",t),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}}},plt={class:"bimdata-search-autocomplete"},glt={class:"bimdata-search-autocomplete__input flex items-center"},flt={class:"bimdata-search-icon flex"},mlt=["placeholder"],vlt={class:"bimdata-list p-y-6"},Clt={key:0,class:"loading"},ylt=["onClick"],Ilt={class:"bimdata-search-autocomplete__dropdown__left m-r-12"},wlt=["src"],blt={class:"bimdata-search-autocomplete__dropdown__right flex flex-col"},Blt={key:0,class:"title"},Elt={key:1,class:"text"};function klt(t,e,i,r,o,s){const n=P("BIMDataIconSearch"),a=P("BIMDataIconDefault"),l=P("BIMDataTextbox"),c=Ti("clickaway");return Bt((x(),U("div",plt,[b("div",glt,[b("span",flt,[F(n,{fill:"",color:"default",size:"xxs"})]),Bt(b("input",{class:"form-control p-l-36 p-r-12",type:"text","onUpdate:modelValue":e[0]||(e[0]=d=>o.search=d),placeholder:i.placeholder,onKeydown:[e[1]||(e[1]=Kt((...d)=>s.onEnter&&s.onEnter(...d),["enter"])),e[2]||(e[2]=Kt((...d)=>s.onArrowDown&&s.onArrowDown(...d),["down"])),e[3]||(e[3]=Kt((...d)=>s.onArrowUp&&s.onArrowUp(...d),["up"]))],onInput:e[4]||(e[4]=(...d)=>s.onChange&&s.onChange(...d)),onFocus:e[5]||(e[5]=(...d)=>s.focus&&s.focus(...d))},null,40,mlt),[[fp,o.search]])]),b("div",{class:ge(["bimdata-search-autocomplete__dropdown",{open:s.openResults}])},[b("ul",vlt,[i.loading?(x(),U("li",Clt,[mt(t.$slots,"loading",{},()=>[e[7]||(e[7]=b("p",{class:"text-center"},"loading results...",-1))],!0)])):(x(!0),U(ht,{key:1},Ht(s.results,(d,A)=>(x(),U("li",{key:A,class:ge([{active:A===o.current},"p-y-6 p-x-12 flex items-center"]),onClick:u=>s.onElementClick(d)},[mt(t.$slots,"left",{result:d},()=>[b("div",Ilt,[d&&d.logo?(x(),U("img",{key:0,class:"logo",src:d.logo},null,8,wlt)):mt(t.$slots,"logoPlaceholder",{key:1},()=>[F(a,{fill:"",color:"default"})],!0)])],!0),b("div",blt,[d&&d.title?(x(),U("span",Blt,z(d.title),1)):he("",!0),d&&d.text?(x(),U("span",Elt,[F(l,{text:d.text,width:"260px",cutPosition:"end",tooltip:!1},null,8,["text"])])):he("",!0)])],10,ylt))),128))]),i.isAllResultatsBtnActive?(x(),U("div",{key:0,class:"bimdata-search-autocomplete__dropdown__button flex items-center justify-center",onClick:e[6]||(e[6]=(...d)=>s.onAllResultatsBtnClick&&s.onAllResultatsBtnClick(...d))},' See all results for "'+z(o.search)+'" ',1)):he("",!0)],2)])),[[c,s.away]])}const xlt=V(hlt,[["render",klt],["__scopeId","data-v-b485ea22"]]),Qlt={components:{BIMDataCheckbox:BB,BIMDataIconChevron:Gc},directives:{clickaway:Hd},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 t=this.searchText.toLowerCase();return this.optionLabelKey?this.options.filter(e=>e[this.optionLabelKey].toLowerCase().includes(t)):this.optionKey?this.options.filter(e=>e.optionGroup||e[this.optionKey].toLowerCase().includes(t)):this.options.filter(e=>e.toLowerCase().includes(t))}}},methods:{toggle(){this.disabled||(this.isOpen=!this.isOpen)},optionValue(t){return this.optionKey&&t?t[this.optionKey]:t},optionLabel(t){return this.nullLabel&&t==null?this.nullLabel:this.optionLabelKey&&t?t[this.optionLabelKey]:this.optionKey&&t?t[this.optionKey]:t},isSelected(t){const e=this.optionValue(t);return this.modelValue.map(this.optionValue).includes(e)},isDisabled(t){return this.optionKey&&t&&t.disabled},isOptionGroup(t){return this.optionKey&&t&&t.optionGroup},onOptionClick(t){if(this.optionKey&&(t.disabled||t.optionGroup))return;let e;if(this.isSelected(t)){const i=this.optionValue(t);e=this.modelValue.filter(r=>this.optionValue(r)!==i)}else e=this.modelValue.concat(t);this.$emit("update:modelValue",e)},resetSearch(){this.clearSearchOnLeave&&(this.searchText="")},away(){this.isOpen=!1,this.resetSearch()}}},Mlt={class:"bimdata-select__content"},Slt={class:"bimdata-select__content__label"},Dlt={class:"bimdata-select__option-list"},Plt={key:1},Rlt={class:"bimdata-list m-y-6"},Flt=["onClick"];function Llt(t,e,i,r,o,s){const n=P("BIMDataIconChevron"),a=P("BIMDataSearch"),l=P("BIMDataCheckbox"),c=Ti("clickaway");return Bt((x(),U("div",{class:ge(["bimdata-select",{disabled:i.disabled,active:o.isOpen,"not-empty":i.modelValue.length>0}]),style:pe({width:i.width})},[b("div",Mlt,[b("div",{class:"bimdata-select__content__value",onClick:e[0]||(e[0]=(...d)=>s.toggle&&s.toggle(...d))},[b("span",null,z(s.displayedValue),1),F(n,{size:"xxs",rotate:o.isOpen?90:0},null,8,["rotate"])]),b("label",Slt,z(i.label),1),e[2]||(e[2]=b("span",{class:"bimdata-select__content__underline"},null,-1))]),F(lr,{name:"slide-fade-down"},{default:G(()=>[Bt(b("div",Dlt,[i.search?(x(),W(a,{key:0,width:"calc(100% - 12px)",color:"primary",radius:"",placeholder:i.searchPlaceholder,modelValue:o.searchText,"onUpdate:modelValue":e[1]||(e[1]=d=>o.searchText=d),class:"m-6"},null,8,["placeholder","modelValue"])):he("",!0),s.filteredOptions.length===0?(x(),U("div",Plt,[mt(t.$slots,"empty",{},void 0,!0)])):he("",!0),b("ul",Rlt,[(x(!0),U(ht,null,Ht(s.filteredOptions,(d,A)=>(x(),U("li",{class:ge(["bimdata-select__option-list__entry",{selected:s.isSelected(d),disabled:s.isDisabled(d),"option-group":s.isOptionGroup(d)}]),key:A,onClick:u=>s.onOptionClick(d)},[s.isOptionGroup(d)?(x(),U(ht,{key:0},[st(z(s.optionLabel(d)),1)],64)):(x(),W(l,{key:1,modelValue:s.isSelected(d),disabled:s.isDisabled(d),text:s.optionLabel(d)},null,8,["modelValue","disabled","text"]))],10,Flt))),128))])],512),[[ni,!i.disabled&&o.isOpen]])]),_:3})],6)),[[c,s.away]])}const X$=V(Qlt,[["render",Llt],["__scopeId","data-v-cfb01881"]]),Tlt={components:{BIMDataIconChevron:Gc},directives:{clickaway:Hd},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 t=this.searchText.toLowerCase();return this.optionLabelKey?this.options.filter(e=>e[this.optionLabelKey].toLowerCase().includes(t)):this.optionKey?this.options.filter(e=>e.optionGroup||e[this.optionKey].toLowerCase().includes(t)):this.options.filter(e=>e.toLowerCase().includes(t))}}},methods:{toggle(){this.disabled||(this.isOpen=!this.isOpen)},optionValue(t){return this.optionKey&&t?t[this.optionKey]:t},optionLabel(t){return this.nullLabel&&t==null?this.nullLabel:this.optionLabelKey&&t?t[this.optionLabelKey]:this.optionKey&&t?t[this.optionKey]:t},isSelected(t){const e=this.optionValue(t);return this.optionValue(this.modelValue)===e},isDisabled(t){return this.optionKey&&t&&t.disabled},isOptionGroup(t){return this.optionKey&&t&&t.optionGroup},resetSearch(){this.clearSearchOnLeave&&(this.searchText="")},onOptionClick(t){this.optionKey&&(t.disabled||t.optionGroup)||(this.$emit("update:modelValue",t),this.resetSearch(),this.isOpen=!1)},onNullValueClick(){this.$emit("update:modelValue",null),this.resetSearch(),this.isOpen=!1},away(){this.isOpen=!1,this.resetSearch()}}},Nlt={class:"bimdata-select__content"},Ult={class:"bimdata-select__content__label"},Olt={class:"bimdata-select__option-list"},Hlt={key:1},jlt={class:"bimdata-list m-y-6"},Glt=["onClick"];function Vlt(t,e,i,r,o,s){const n=P("BIMDataIconChevron"),a=P("BIMDataSearch"),l=Ti("clickaway");return Bt((x(),U("div",{class:ge(["bimdata-select",{disabled:i.disabled,active:o.isOpen,"not-empty":i.modelValue!==void 0&&i.modelValue!==null}]),style:pe({width:i.width})},[b("div",Nlt,[b("div",{class:"bimdata-select__content__value",onClick:e[0]||(e[0]=(...c)=>s.toggle&&s.toggle(...c))},[b("span",null,z(s.displayedValue),1),F(n,{size:"xxs",rotate:o.isOpen?90:0},null,8,["rotate"])]),b("label",Ult,z(i.label),1),e[3]||(e[3]=b("span",{class:"bimdata-select__content__underline"},null,-1))]),F(lr,{name:"slide-fade-down"},{default:G(()=>[Bt(b("div",Olt,[i.search?(x(),W(a,{key:0,width:"calc(100% - 12px)",color:"primary",radius:"",placeholder:i.searchPlaceholder,modelValue:o.searchText,"onUpdate:modelValue":e[1]||(e[1]=c=>o.searchText=c),class:"m-6"},null,8,["placeholder","modelValue"])):he("",!0),s.filteredOptions.length===0?(x(),U("div",Hlt,[mt(t.$slots,"empty",{},void 0,!0)])):he("",!0),b("ul",jlt,[i.nullValue?(x(),U("li",{key:0,class:"bimdata-select__option-list__entry",onClick:e[2]||(e[2]=c=>s.onNullValueClick())},z(i.nullLabel||"None"),1)):he("",!0),(x(!0),U(ht,null,Ht(s.filteredOptions,(c,d)=>(x(),U("li",{class:ge(["bimdata-select__option-list__entry",{selected:s.isSelected(c),disabled:s.isDisabled(c),"option-group":s.isOptionGroup(c)}]),key:d,onClick:A=>s.onOptionClick(c)},z(s.optionLabel(c)),11,Glt))),128))])],512),[[ni,!i.disabled&&o.isOpen]])]),_:3})],6)),[[l,s.away]])}const $$=V(Tlt,[["render",Vlt],["__scopeId","data-v-53825b9f"]]),qlt={components:{BIMDataSelectMulti:X$,BIMDataSelectSingle:$$},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(t,{emit:e,slots:i}){return()=>_o(t.multi?X$:$$,{...t,"onUpdate:modelValue":r=>e("update:modelValue",r)},{empty:()=>{var r;return(r=i.empty)==null?void 0:r.call(i)}})}},_lt={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 t=this.barStrokeWidth/2-4,e=this.barDistanceFromCenter*2*Math.PI;return t/e*100},center(){return this.viewBoxSize/2},displayedBarsData(){let t=0;return this.barsData.map(e=>{const i={...e,previousPercentageSum:t};return t+=+e.percentage,i})},viewBoxSize(){return this.barDistanceFromCenter*2+this.barStrokeWidth},viewBox(){return`0 0 ${this.viewBoxSize} ${this.viewBoxSize}`}},methods:{getPath(t){let e=t.percentage-2*this.roundCapPercentageOffset,i=t.previousPercentageSum+this.roundCapPercentageOffset;+t.percentage==100&&(e=99.999,i=0);const r=this.getPercentagePosition(i),o=this.barDistanceFromCenter;return`M${r.x},${r.y} A${o} ${o} 0 ${this.getTarget(e,i)}`},getPercentagePosition(t){const e=this.barDistanceFromCenter,i=t/100*Math.PI*2-Math.PI/2,r=e*Math.cos(i)+this.center,o=e*Math.sin(i)+this.center;return{x:r,y:o}},getTarget(t,e){const i=t>50?1:0,{x:r,y:o}=this.getPercentagePosition(t+e);return`${i} 1 ${r},${o}`}}},zlt={class:"bimdata-simple-pie-chart",ref:"container"},Klt=["viewBox"],Jlt=["cx","cy","r","stroke-width","stroke"],Ylt=["d","stroke-width","stroke"];function Wlt(t,e,i,r,o,s){return x(),U("div",zlt,[(x(),U("svg",{viewBox:s.viewBox,style:pe(`--graph-draw-time: ${i.graphDrawTime}s;`)},[i.placeholder?(x(),U("circle",{key:0,cx:s.center,cy:s.center,r:i.barDistanceFromCenter,"stroke-width":i.placeholderStrokeWidth,stroke:i.placeholderColor,fill:"none"},null,8,Jlt)):he("",!0),(x(!0),U(ht,null,Ht(s.displayedBarsData,(n,a)=>(x(),U("g",{key:a},[n.percentage>0?(x(),U("path",{key:0,class:"path",d:s.getPath(n),"stroke-width":i.barStrokeWidth,stroke:n.color,fill:"none"},null,8,Ylt)):he("",!0)]))),128))],12,Klt))],512)}const Zlt=V(_lt,[["render",Wlt],["__scopeId","data-v-4572e7e7"]]),Xlt={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 t=this.$refs.input;if(!t)return null;const e=+t.min||0,i=+t.max||100;return(+t.value-e)/(i-e)*100},onInput(t){this.$emit("update:modelValue",+t.target.value)},getTooltipPosition(){const t=this.min?this.min:0,e=this.max?this.max:100,i=Number((this.modelValue-t)*100/(e-t));this.tooltipPosition=`calc(${i}% + (${8-i*.18}px))`}}},$lt={class:"bimdata-slider"},ect=["min","max","step","value","disabled"];function tct(t,e,i,r,o,s){return x(),U("div",$lt,[b("input",{ref:"input",class:"bimdata-slider-input",type:"range",style:pe(`--background-size: ${o.backgroundSize}%`),min:i.min,max:i.max,step:i.step,value:i.modelValue,disabled:i.disabled,onInput:e[0]||(e[0]=(...n)=>s.onInput&&s.onInput(...n))},null,44,ect),i.tooltip?(x(),U("output",{key:0,class:"bimdata-slider-tooltip",style:pe({left:o.tooltipPosition})},z(i.modelValue),5)):he("",!0)])}const ict=V(Xlt,[["render",tct],["__scopeId","data-v-de9cce2c"]]);function rct(t,e,{rowSelectionUpdateEffect:i=()=>{},rowSelectionToggleEffect:r=()=>{},fullSelectionToggleEffect:o=()=>{}}={}){const s=Le(new Map);return Dt(t,()=>{s.value=new Map(t.value.filter(({key:n})=>e.value.has(n)).map(({key:n,data:a})=>[n,a]))},{immediate:!0}),Dt(e,()=>{s.value=e.value},{immediate:!0}),Dt(s,()=>{i(s.value)}),{rowSelection:s,toggleRowSelection:({key:n,data:a})=>{const l=()=>s.value.has(n);l()?s.value.delete(n):s.value.set(n,a),s.value=new Map([...s.value.entries()]),r(l(),{key:n,data:a})},toggleFullSelection:()=>{const n=()=>s.value.size>0;n()?s.value=new Map:s.value=new Map(t.value.map(({key:a,data:l})=>[a,l])),o(n())}}}const oct={components:{BIMDataButton:ta,BIMDataIconCaret:tT},props:{sortOrder:{type:String,required:!0,validator:t=>["asc","desc"].includes(t)},index:{type:Number,required:!0},active:{type:Boolean,required:!0}},setup(t,{emit:e}){return{toggleActive:()=>{e("set-active",t.index)}}}};function nct(t,e,i,r,o,s){const n=P("BIMDataIconCaret"),a=P("BIMDataButton");return x(),U("span",{class:ge([i.sortOrder==="asc"?"asc":"desc","m-l-6"]),onMousedown:e[0]||(e[0]=wt(()=>{},["prevent"]))},[F(a,{color:"primary",ghost:"",rounded:"",icon:"",class:ge({active:i.active}),onClick:r.toggleActive},{default:G(()=>[F(n,{rotate:i.sortOrder==="desc"?180:0,size:"xxxs",fill:"",color:"default"},null,8,["rotate"])]),_:1},8,["class","onClick"])],34)}const sct=V(oct,[["render",nct],["__scopeId","data-v-cddfddda"]]),act={components:{BIMDataCheckbox:BB},props:{column:{type:Object,required:!0},columnData:{type:Array,required:!0},filters:{type:Array,required:!0}},emits:["filter"],setup(t,{emit:e}){const i=t.column,r=lt(()=>{const o=t.columnData.filter(s=>s!==null);return[...new Set(o.flatMap(s=>typeof i.filterFunction=="function"?i.filterFunction(s):(Array.isArray(s)||(s=[s]),i!=null&&i.filterKey?s.map(n=>n[i?.filterKey]):s)))]});return{columnElements:lt(()=>r.value.map(o=>({data:o,checked:t.filters.includes(o)}))),toggle:(o,s)=>{const n=new Set(t.filters);s?n.add(o):n.delete(o),e("filter",[...n])}}}},lct={class:"column-filters p-12"},cct={key:0,class:"column-filters__element flex align-center"};function dct(t,e,i,r,o,s){const n=P("BIMDataCheckbox");return x(),U("div",lct,[r.columnElements.length===0?(x(),U("div",cct,[mt(t.$slots,"column-filter-empty",{},void 0,!0)])):he("",!0),(x(!0),U(ht,null,Ht(r.columnElements,a=>(x(),U("div",{key:a.data,class:"column-filters__element flex align-center"},[F(n,{text:a.data,modelValue:a.checked,"onUpdate:modelValue":l=>r.toggle(a.data,l)},null,8,["text","modelValue","onUpdate:modelValue"])]))),128))])}const Act=V(act,[["render",dct],["__scopeId","data-v-6192724c"]]),uct={components:{BIMDataButton:ta,BIMDataCheckbox:BB,BIMDataIconCaret:tT,BIMDataIconChevron:Gc,ColumnSorting:sct,ColumnFilters:Act},directives:{clickaway:Hd},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(t,{emit:e}){const i=lt(()=>t.rows.map((D,R)=>({key:D[t.rowKey]??R,data:D}))),{rowSelection:r,toggleRowSelection:o,toggleFullSelection:s}=rct(i,lt(()=>t.selection),{rowSelectionUpdateEffect:D=>{e("update:selection",D),e("selection-changed",Array.from(D.values()))},rowSelectionToggleEffect:(D,{data:R})=>{e(D?"row-selected":"row-deselected",R)},fullSelectionToggleEffect:D=>{e(D?"all-selected":"all-deselected")}}),n=lt(()=>r.value.size<t.rows.length?r.value.size>0?null:!1:r.value.size>0),a=D=>{t.selectable&&o(D)},l=()=>{t.selectable&&s()},c=(D,R)=>{t.canDragOverRow(D)&&(e("row-drop",{data:D,event:R}),d.value=null)},d=Le(null),A=(D,R,T)=>{t.canDragOverRow(R)&&(T.preventDefault(),d.value=D)},u=()=>{d.value=null},h=Le(null),g=D=>{h.value===D.id?h.value=null:h.value=D.id},p=D=>{D.id===h.value&&(h.value=null)},m=Ra({column:null,order:null}),f=Le([]),v=lt(()=>{if(m.column){const D=m.order!=="desc"?1:-1;if(m.column.sortFunction){const R=(T,H)=>m.column.sortFunction(T.data,H.data)*D;return Array.from(i.value).sort(R)}else return Array.from(i.value).sort((R,T)=>R.data[m.column.id]<T.data[m.column.id]?D:R.data[m.column.id]>T.data[m.column.id]?-D:0)}return f.value.length>0?Array.from(i.value).filter(D=>D.data[f.value[0].id]===f.value[0].text):i.value}),C=D=>{m.column===D?m.order=m.order==="asc"?"desc":"asc":(m.column=D,m.order=D.defaultSortOrder??"asc")},y=Le([]),I=lt(()=>v.value.filter(D=>y.value.every(R=>{const T=t.columns.find(q=>q.id===R.columnKey),H=D.data[R.columnKey];if(H!==null)return Array.isArray(H)?H.some(q=>R.columnFilters.includes(typeof T.filterFunction=="function"?T.filterFunction(q):T.filterKey?q[T.filterKey]:q)):R.columnFilters.includes(typeof T.filterFunction=="function"?T.filterFunction(H):T.filterKey?H[T.filterKey]:H)}))),B=(D,R)=>{y.value=y.value.filter(T=>T.columnKey!==D.id),R.length>0&&y.value.push({columnKey:D.id,columnFilters:R})},E=Le([]),k=Le(0),Q=Le(1),S=Le(t.perPage);return Dt([I,()=>t.perPage],()=>{k.value=0},{immediate:!0}),Dt([I,()=>t.paginated,()=>t.perPage,k],([D,R,T,H])=>{const q=D.map(O=>O.key);if(R){const O=T*H,j=O+T;E.value=q.slice(O,j),Q.value=O+1,S.value=Math.min(j,D.length)}else E.value=q},{immediate:!0}),{activeHeadercolumnKey:null,computedRows:i,paginatedRows:E,pageIndex:k,pageIndexEnd:S,pageIndexStart:Q,rowSelection:r,dragOveredRowKey:d,displayedColumnFilterId:h,filteringColumns:f,filters:y,selectionState:n,sortObject:m,awayFromFilter:p,onDrop:c,onDragover:A,onDragleave:u,toggleAll:l,toggleRow:a,toggleSorting:C,updateFilters:B,toggleFiltersMenu:g,displayedRows:I}}},hct={class:"bimdata-table"},pct={key:0,class:"cell-checkbox"},gct={style:{display:"inline-flex","align-items":"center"}},fct={key:1},mct={key:"head-row-1"},vct=["colspan"],Cct=["onDrop","onDragover"],yct={key:0,class:"cell-checkbox"},Ict={class:"bimdata-table__page-nav__text"};function wct(t,e,i,r,o,s){const n=P("BIMDataCheckbox"),a=P("ColumnSorting"),l=P("BIMDataIconCaret"),c=P("BIMDataButton"),d=P("ColumnFilters"),A=P("BIMDataIconChevron"),u=Ti("clickaway");return x(),U("div",hct,[b("div",{class:"bimdata-table__container",style:pe({height:i.paginated?`${(i.perPage+1)*i.rowHeight}px`:void 0})},[b("table",{style:pe({width:i.tableWidth,tableLayout:i.tableLayout})},[b("thead",null,[b("tr",{key:"head-row-0",style:pe({height:`${i.rowHeight}px`})},[i.selectable?(x(),U("th",pct,[F(n,{disabled:i.rows.length===0,modelValue:r.selectionState,"onUpdate:modelValue":r.toggleAll},null,8,["disabled","modelValue","onUpdate:modelValue"])])):he("",!0),(x(!0),U(ht,null,Ht(i.columns,(h,g)=>{var p;return x(),U("th",{key:`head-row-0-col-${g}`,style:pe({width:h.width||"auto",textAlign:h.align||"left"})},[b("div",gct,[st(z(h.id?h.label||h.id:h)+" ",1),mt(t.$slots,"column-header-right",{},void 0,!0),h.sortable?(x(),W(a,{key:0,sortOrder:!r.sortObject.order||r.sortObject.column!==h?"asc":r.sortObject.order,index:g,active:g===r.activeHeadercolumnKey,onClick:m=>r.toggleSorting(h),onSetActive:e[0]||(e[0]=m=>r.activeHeadercolumnKey=m)},null,8,["sortOrder","index","active","onClick"])):he("",!0),h.filter?Bt((x(),U("div",fct,[F(c,{color:"primary",ghost:"",rounded:"",icon:"",class:ge(["m-l-6",{active:r.filters.some(m=>m.columnKey===h.id)}]),onClick:m=>r.toggleFiltersMenu(h)},{default:G(()=>[F(l,{size:"xxxs",fill:"",color:"default"})]),_:2},1032,["class","onClick"]),r.displayedColumnFilterId===h.id?(x(),W(d,{key:0,column:h,columnData:r.computedRows.map(m=>m.data[h.id]),filters:((p=r.filters.find(m=>m.columnKey===h.id))==null?void 0:p.columnFilters)??[],onFilter:m=>r.updateFilters(h,m)},{"column-filter-empty":G(()=>[mt(t.$slots,"column-filter-empty",{},void 0,!0)]),_:2},1032,["column","columnData","filters","onFilter"])):he("",!0)])),[[u,()=>r.awayFromFilter(h)]]):he("",!0)])],4)}),128))],4),b("tr",mct,[b("th",{class:"cell-sub-header",colspan:i.columns.length+i.selectable},[mt(t.$slots,"sub-header",{},void 0,!0)],8,vct)])]),b("tbody",{onDragleave:e[1]||(e[1]=(...h)=>r.onDragleave&&r.onDragleave(...h))},[(x(!0),U(ht,null,Ht(r.displayedRows,({key:h,data:g})=>Bt((x(),U("tr",{key:`body-row-${h}`,style:pe({height:`${i.rowHeight}px`}),onDrop:p=>r.onDrop(g,p),onDragover:p=>r.onDragover(h,g,p),class:ge({"bimdata-table__row--drag-overed":r.dragOveredRowKey===h})},[i.selectable?(x(),U("td",yct,[F(n,{modelValue:r.rowSelection.has(h),"onUpdate:modelValue":p=>r.toggleRow({key:h,data:g})},null,8,["modelValue","onUpdate:modelValue"])])):he("",!0),(x(!0),U(ht,null,Ht(i.columns,(p,m)=>(x(),U("td",{key:`body-row-${h}-col-${m}`,style:pe({width:p.width||"auto",textAlign:p.align||"left"})},[mt(t.$slots,`cell-${p.id}`,{row:g},()=>[st(z(g[p.id]||g[m]),1)],!0)],4))),128))],46,Cct)),[[ni,r.paginatedRows.includes(h)]])),128))],32)],4),i.rows.length===0?(x(),U("div",{key:0,class:"bimdata-table__container__placeholder",style:pe({height:`calc(100% - ${i.rowHeight}px)`})},[mt(t.$slots,"placeholder",{},()=>[st(z(i.placeholder),1)],!0)],4)):he("",!0)],4),i.paginated?(x(),U("div",{key:0,class:"bimdata-table__page-nav",style:pe({visibility:r.displayedRows.length>i.perPage?"visible":"hidden"})},[F(c,{ghost:"",rounded:"",icon:"",disabled:r.pageIndexStart===1,onClick:e[2]||(e[2]=h=>r.pageIndex--)},{default:G(()=>[F(A,{size:"s",rotate:180})]),_:1},8,["disabled"]),b("span",Ict,z(`${r.pageIndexStart} - ${r.pageIndexEnd} / ${r.displayedRows.length}`),1),F(c,{ghost:"",rounded:"",icon:"",disabled:r.pageIndexEnd===r.displayedRows.length,onClick:e[3]||(e[3]=h=>r.pageIndex++)},{default:G(()=>[F(A,{size:"s"})]),_:1},8,["disabled"])],4)):he("",!0)])}const bct=V(uct,[["render",wct],["__scopeId","data-v-e91e8e65"]]),Bct={components:{BIMDataButton:ta,BIMDataIconChevron:Gc},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(t){this._setSelected(t)}},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(t){this.activeTab=t,this.$emit("tab-click",t),this.$emit("tab-selected",t)},_setSelected(t){if(typeof t=="number"&&t>=0&&t<this.tabs.length)this.activeTab=this.tabs[t],this.$emit("tab-selected",this.activeTab);else{const e=this.tabs.find(i=>i.id===t);e&&(this.activeTab=e,this.$emit("tab-selected",this.activeTab))}},_setScrollValues(){if(this.displayIndex=0,this.tabs.length>0){let t=this.$refs.container.offsetWidth,e=this.$refs.container.querySelector(".bimdata-tabs__container__tab").offsetWidth;Math.floor((this.tabs.length*e-t)*10/e)>0?this.scrollValues=[0].concat(this.tabs.map((i,r)=>(r+1)*e-t).filter(i=>i>0)):this.scrollValues=[]}}}},Ect=["onClick"];function kct(t,e,i,r,o,s){const n=P("BIMDataIconChevron"),a=P("BIMDataButton");return x(),U("div",{class:"bimdata-tabs",style:pe({width:i.width})},[Bt(F(a,{disabled:o.displayIndex===0,onClick:s.prev},{default:G(()=>[F(n,{class:"fill-primary",size:"xxs",rotate:180})]),_:1},8,["disabled","onClick"]),[[ni,o.scrollValues.length>1]]),b("ul",{ref:"container",class:"bimdata-tabs__container",style:pe({width:s.containerWidth,minHeight:s.containerHeight})},[(x(!0),U(ht,null,Ht(i.tabs,l=>(x(),U("li",{key:l.id,class:ge(["bimdata-tabs__container__tab",{active:l.id===o.activeTab.id}]),style:pe({minWidth:s.tabWidth}),onClick:c=>s.onTabClick(l)},[mt(t.$slots,"tab",{tab:l,active:l.id===o.activeTab.id},()=>[st(z(l.label),1)],!0)],14,Ect))),128))],4),Bt(F(a,{disabled:o.displayIndex===o.scrollValues.length-1,onClick:s.next},{default:G(()=>[F(n,{class:"fill-primary",size:"xxs"})]),_:1},8,["disabled","onClick"]),[[ni,o.scrollValues.length>1]])],4)}const xct=V(Bct,[["render",kct],["__scopeId","data-v-7da61e21"]]),Qct={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,t=>{if(t)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(t){this.$emit("update:modelValue",t.currentTarget.value),this.fitContent&&this.handleFitContent()}}},Mct=["name","id","value","placeholder"],Sct=["for"],Dct={key:0,class:"error"},Pct={key:1,class:"success"};function Rct(t,e,i,r,o,s){return x(),U("div",{class:ge(["bimdata-textarea",{"not-empty":i.modelValue!==null&&i.modelValue!==""||i.placeholder!==null,error:i.error,success:i.success}]),style:pe({"min-width":i.width,"min-height":i.height})},[b("textarea",Ta({ref:"textarea",name:i.name,id:i.name,value:i.modelValue,placeholder:i.placeholder,style:`${i.resizable?"":"resize: none;"}`,onInput:e[0]||(e[0]=(...n)=>s.onInput&&s.onInput(...n))},t.$attrs),null,16,Mct),b("label",{for:i.name},z(i.label),9,Sct),e[1]||(e[1]=b("span",{class:"bar"},null,-1)),i.error?(x(),U("span",Dct,z(i.errorMessage),1)):he("",!0),i.success?(x(),U("span",Pct,z(i.successMessage),1)):he("",!0)],6)}const Fct=V(Qct,[["render",Rct],["__scopeId","data-v-77c71958"]]),Lct={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(t){this.$emit("update:modelValue",t)}}},created(){this.uniqueId=Math.random().toString()}},Tct=["for"],Nct=["disabled","id"];function Uct(t,e,i,r,o,s){return x(),U("label",{for:`bimdata-toggle-${o.uniqueId}`,class:ge([{active:i.modelValue,disabled:i.disabled},"toggle__button"])},[mt(t.$slots,"default",{},void 0,!0),Bt(b("input",{type:"checkbox",disabled:i.disabled,id:`bimdata-toggle-${o.uniqueId}`,"onUpdate:modelValue":e[0]||(e[0]=n=>s.checkedValue=n)},null,8,Nct),[[e8,s.checkedValue]]),e[1]||(e[1]=b("span",{class:"toggle__switch"},null,-1)),mt(t.$slots,"right",{},void 0,!0)],10,Tct)}const Oct=V(Lct,[["render",Uct],["__scopeId","data-v-ab3de434"]]),Hct={props:{text:{type:String,default:""},maxWidth:{type:String,default:"240px"},position:{type:String,default:"bottom",validator:t=>["top","right","bottom","left"].includes(t)},color:{type:String,default:"primary",validator:t=>["white","primary","secondary","granite-light","silver-light","success","warning","high"].includes(t)},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()}}},jct={class:"bimdata-tooltip"};function Gct(t,e,i,r,o,s){return x(),U("div",jct,[b("div",{class:"bimdata-tooltip__content",onMouseover:e[0]||(e[0]=n=>o.hover=!0),onMouseleave:e[1]||(e[1]=n=>o.hover=!1)},[mt(t.$slots,"content",{},void 0,!0),mt(t.$slots,"default",{},void 0,!0)],32),F(lr,{name:"fade"},{default:G(()=>[Bt(b("div",{ref:"tooltipText",class:ge(["bimdata-tooltip__tooltip",[`bimdata-tooltip__tooltip--${i.position}`,`bimdata-tooltip__tooltip--${i.color}`,...s._className]]),style:pe({maxWidth:i.maxWidth})},z(s._text),7),[[ni,s.isDisplayed]])]),_:1})])}const Vct=V(Hct,[["render",Gct],["__scopeId","data-v-36856a43"]]);let aT,eee;eee={inject:["root"],props:{node:{type:Object,required:!0,validator:t=>Number.isFinite(t?.id)},depth:{type:Number,default:0},dragAndDrop:{type:Boolean,default:!1}},render(){const{node:t,depth:e,dragAndDrop:i,root:r}=this,o=r.state;return t.children.map(s=>_o(aT,{node:s,depth:e,dragAndDrop:i,key:s.id},()=>{var n,a,l;return(l=(a=r.$slots).node)==null?void 0:l.call(a,{node:s,depth:e,selected:s.id===o.selectedId,hovered:s.id===((n=o.hoveredNode)==null?void 0:n.id),ancestorSelected:o.hasAncestorSelected(s),dragAndDrop:i})}))}},aT={name:"Node",components:{NodeChildren:eee},inject:["root"],props:{node:{type:Object,required:!0},depth:{type:Number,default:0},dragAndDrop:{type:Boolean,default:!1}},setup(t){const e=St("state");let i=null;wo(t.node.visibleRef)?i=t.node.visibleRef:i=Le(!0);let r=null;wo(t.node.expandedRef)?r=t.node.expandedRef:r=Le(!1);const o=Le(null);let s=null;const n=()=>{var u,h;if(!((u=t.node.children)!=null&&u.length)||!e.dragPosition||((h=e.hoveredNode)==null?void 0:h.id)!==t.node.id||r.value){clearTimeout(s),s=null;return}const g=e.getNodeDropPosition(t.node,o.value);if(g!=="center"&&g!=="bottom"){clearTimeout(s),s=null;return}s===null&&(s=setTimeout(()=>{r.value=!0,s=null},500))};Dt(()=>e.dragPosition&&e.hoveredNode,n);const a=()=>e.onNodeMouseEnter(t.node),l=u=>e.onNodeMouseDown(t.node,u),c=u=>{e.onNodeMouseMove(u),n()},d=lt(()=>{var u;return!t.dragAndDrop||!e.dragPosition||((u=e.hoveredNode)==null?void 0:u.id)!==t.node.id?null:e.getNodeDropPosition(t.node,o.value)}),A=()=>e.onNodeMouseUp(t.node,o.value,r.value);return{state:e,nodeRef:o,expanded:r,visible:i,dropHelperPosition:d,hasAncestorSelected:e.hasAncestorSelected,onMouseEnter:a,onMouseDown:l,onMouseMove:c,onMouseUp:A}}};const qct=aT,_ct={class:"bimdata-tree__node__content__element"};function zct(t,e,i,r,o,s){var n,a;const l=P("BIMDataIcon"),c=P("NodeChildren");return x(),U(ht,null,[Bt(b("div",{ref:"nodeRef",class:ge(["bimdata-tree__node",{"bimdata-tree__node--selected":t.node.id===t.state.selectedId,"bimdata-tree__node--ancestor-selected":t.hasAncestorSelected(t.node),"bimdata-tree__node--highlighted":t.node.id===t.state.highlightedId}]),onMouseenter:e[2]||(e[2]=(...d)=>t.onMouseEnter&&t.onMouseEnter(...d)),onMousedown:e[3]||(e[3]=(...d)=>t.onMouseDown&&t.onMouseDown(...d)),onMousemove:e[4]||(e[4]=(...d)=>t.onMouseMove&&t.onMouseMove(...d)),onMouseup:e[5]||(e[5]=(...d)=>t.onMouseUp&&t.onMouseUp(...d))},[t.dropHelperPosition==="top"||t.dropHelperPosition==="bottom"?(x(),U("div",{key:0,class:"bimdata-tree__node__drop-helper",style:pe(`--drop-helper-top: ${t.dropHelperPosition==="top"?"0px":"30px"};`)},null,4)):he("",!0),b("div",{class:"bimdata-tree__node__content",style:pe(`padding-left: calc(var(--spacing-unit) * 2 * ${t.depth});`)},[b("div",{class:"bimdata-tree__node__content__arrow",onMousedown:e[1]||(e[1]=wt(()=>{},["stop"]))},[((n=t.node.children)==null?void 0:n.length)>0?(x(),U("div",{key:0,class:"bimdata-tree__node__content__arrow__content",onClick:e[0]||(e[0]=d=>t.expanded=!t.expanded)},[F(l,{name:"chevron",size:"xxxs",rotate:t.expanded?90:0},null,8,["rotate"])])):he("",!0)],32),b("div",_ct,[mt(t.$slots,"default",{},()=>[st(z(t.node.label),1)],!0)])],4)],34),[[ni,t.visible]]),((a=t.node.children)==null?void 0:a.length)>0&&t.expanded?(x(),W(c,{key:0,node:t.node,depth:t.depth+1,"drag-and-drop":t.dragAndDrop},null,8,["node","depth","drag-and-drop"])):he("",!0)],64)}const Kct=V(qct,[["render",zct],["__scopeId","data-v-77e5bb06"]]);function Jct(t,e){const i=Ra({selectedId:null,highlightedId:null,hoveredNode:null,trees:t.data,dragPosition:null});Dt(()=>t.selectedId,()=>{i.selectedId=t.selectedId??null}),Dt(()=>t.highlightedId,()=>{i.highlightedId=t.highlightedId??null}),Dt(()=>i.hoveredNode,()=>e("hover",i.hoveredNode));const r=Vr(null);Dt(()=>t.data,v=>{i.trees=v});const o=()=>{r.value=null,i.dragPosition=null},s=v=>{i.hoveredNode=v},n=(v,C)=>{C.stopPropagation(),e("click",v),r.value=v,window.addEventListener("mouseup",o,{once:!0})},a=v=>{if(!r.value)return;const{clientX:C,clientY:y}=v;i.dragPosition={x:C,y}},l=(v,C,y)=>{var I,B;if(!t.dragAndDrop||!i.dragPosition||((I=i.hoveredNode)==null?void 0:I.id)===((B=r.value)==null?void 0:B.id)||i.isDescendant(v,r.value))return;const E=u(v,C);let k=null,Q=null;const S=h(r.value);switch(E){case"top":k=h(v),Q=(k?.children??i.trees).findIndex(T=>T.id===v.id);break;case"bottom":v.children&&y?(k=v,Q=0):(k=h(v),Q=(k?.children??i.trees).findIndex(T=>T.id===v.id)+1);break;case"center":k=v,Q=0;break}const D=k?.id===S?.id,R=(S?.children??i.trees).findIndex(T=>T.id===r.value.id);D&&(E==="top"||E==="bottom")&&R<Q&&Q--,!(D&&Q===R)&&e("drop",{node:r.value,previousParent:S,parent:k,index:Q,position:E})},c=()=>{i.hoveredNode=null},d=()=>{e("click",null)},A=()=>{if(!t.dragAndDrop||!i.dragPosition||i.trees.indexOf(r.value)===i.trees.length-1)return;const v=i.trees.includes(r.value);e("drop",{node:r.value,parent:null,index:v?i.trees.length-1:i.trees.length,previousParent:h(r.value)})};i.onNodeMouseEnter=s,i.onNodeMouseDown=n,i.onNodeMouseMove=a,i.onNodeMouseUp=l,i.onNodesMouseLeave=c,i.onTreeMouseDown=d,i.onTreeMouseUp=A;const u=(v,C)=>{const{y}=i.dragPosition,{top:I,height:B}=C.getBoundingClientRect();return v.children?y<I+B/3?"top":y>I+B*2/3?"bottom":"center":y<I+B/2?"top":"bottom"},h=(v,C=i.trees)=>{var y;for(const I of C)if((y=I.children)!=null&&y.length){if(I.children.some(E=>E.id===v.id))return I;const B=h(v,I.children);if(B)return B}},g=(v,C=i.trees)=>{var y;for(const I of C)if(I.id===v.id||(y=I.children)!=null&&y.length&&g(v,I.children))return!0;return!1},p=(v,C=i.trees)=>{var y;const I=[];for(const B of C)B.id!==v.id&&(y=B.children)!=null&&y.length&&g(v,B.children)&&I.push(B,...p(v,B.children));return I},m=v=>i.selectedId===null?!1:p(v).some(C=>C.id===i.selectedId),f=(v,C)=>{var y;return((y=C?.children)==null?void 0:y.some(I=>I.id===v.id||f(v,I)))??!1};return i.getNodeDropPosition=u,i.getParent=h,i.getAncestors=p,i.hasAncestorSelected=m,i.isDescendant=f,i}const Yct={components:{Node:Kct},provide(){return{root:this}},props:{data:{type:Array,required:!0,validator:t=>{if(!Array.isArray(t))return!1;const e=new Set;for(const i of t){if(!Number.isFinite(i?.id)||i.children&&!Array.isArray(i.children))return!1;e.add(i.id)}return e.size===t.length}},selectedId:{type:Number,default:null},highlightedId:{type:Number,default:null},dragAndDrop:{type:Boolean,default:!1}},emits:["drop","click","hover"],setup(t,{emit:e}){const i=Jct(t,e);Sn("state",i);const r=()=>i.onNodesMouseLeave(),o=()=>i.onTreeMouseDown(),s=Le(!1),n=()=>{s.value=!0},a=()=>{s.value=!1},l=()=>i.onTreeMouseUp(),c=lt(()=>t.dragAndDrop&&s.value&&i.dragPosition!==null&&i.hoveredNode===null);return{state:i,dropHelperDisplayed:c,onMouseEnter:n,onMouseLeave:a,onNodesMouseLeave:r,onTreeMouseDown:o,onMouseUp:l}}},Wct={key:0,class:"bimdata-tree__drop-helper"};function Zct(t,e,i,r,o,s){const n=P("Node");return x(),U("div",{class:"bimdata-tree",onMousedown:e[1]||(e[1]=(...a)=>r.onTreeMouseDown&&r.onTreeMouseDown(...a)),onMouseenter:e[2]||(e[2]=(...a)=>r.onMouseEnter&&r.onMouseEnter(...a)),onMouseleave:e[3]||(e[3]=(...a)=>r.onMouseLeave&&r.onMouseLeave(...a)),onMouseup:e[4]||(e[4]=wt((...a)=>r.onMouseUp&&r.onMouseUp(...a),["self"]))},[b("div",{class:"bimdata-tree__nodes",onMouseleave:e[0]||(e[0]=(...a)=>r.onNodesMouseLeave&&r.onNodesMouseLeave(...a))},[(x(!0),U(ht,null,Ht(i.data,a=>(x(),W(n,{key:a.id,node:a,"drag-and-drop":i.dragAndDrop},{default:G(()=>{var l;return[mt(t.$slots,"node",{node:a,depth:0,selected:a.id===r.state.selectedId,hovered:a.id===((l=r.state.hoveredNode)==null?void 0:l.id),ancestorSelected:r.state.hasAncestorSelected(a)},void 0,!0)]}),_:2},1032,["node","drag-and-drop"]))),128))],32),r.dropHelperDisplayed?(x(),U("div",Wct)):he("",!0)],32)}const Xct=V(Yct,[["render",Zct],["__scopeId","data-v-8a1ab21a"]]),$ct=Object.freeze(Object.defineProperty({__proto__:null,BIMDataBigSpinner:ILe,BIMDataButton:ta,BIMDataCard:WL,BIMDataCarousel:YLe,BIMDataCheckbox:BB,BIMDataColorSelector:rTe,BIMDataDatePicker:Zrt,BIMDataDropdownList:Bot,BIMDataDropdownMenu:Fot,BIMDataFileIcon:ent,BIMDataIcon:rnt,BIMDataIconAddFile:jTe,BIMDataIconAddFolder:JTe,BIMDataIconAddGavel:eNe,BIMDataIconAddList:sNe,BIMDataIconAddUser:hNe,BIMDataIconAlphabeticalAscending:CNe,BIMDataIconAlphabeticalDescending:ENe,BIMDataIconAlphabeticalSort:DNe,BIMDataIconAlt:NNe,BIMDataIconAngle:VNe,BIMDataIconApi:WNe,BIMDataIconApp:iUe,BIMDataIconArchive:cUe,BIMDataIconArrow:fUe,BIMDataIconAttach:bUe,BIMDataIconBcf:SUe,BIMDataIconBcfPolychrome:Qtt,BIMDataIconBuilding:NUe,BIMDataIconBurgerMenu:VUe,BIMDataIconCalendar:WUe,BIMDataIconCaliper:rOe,BIMDataIconCamera:dOe,BIMDataIconCancelCamera:fOe,BIMDataIconCaret:tT,BIMDataIconCheck:MOe,BIMDataIconChevron:Gc,BIMDataIconClassificationCategory:LOe,BIMDataIconClassificationElement:jOe,BIMDataIconClick:JOe,BIMDataIconClose:kB,BIMDataIconCloud:aHe,BIMDataIconColor:pHe,BIMDataIconComment:RHe,BIMDataIconCreateSpace:yHe,BIMDataIconCreateWindowPolychrome:Ftt,BIMDataIconCreateZone:kHe,BIMDataIconDateAscending:OHe,BIMDataIconDateDescending:_He,BIMDataIconDefault:T$,BIMDataIconDelete:XL,BIMDataIconDeniedFile:rje,BIMDataIconDetach:dje,BIMDataIconDistance:fje,BIMDataIconDocInfoPolychrome:Htt,BIMDataIconDoubleChevron:iT,BIMDataIconDown:Mje,BIMDataIconDownload:Tje,BIMDataIconDrag:Gje,BIMDataIconEdit:Yje,BIMDataIconEllipsis:N$,BIMDataIconExpanded:sGe,BIMDataIconExplosion:hGe,BIMDataIconExport:CGe,BIMDataIconExportIfc:EGe,BIMDataIconExportXlsx:DGe,BIMDataIconFailed:UGe,BIMDataIconFileDwgPolychrome:ztt,BIMDataIconFileDxfPolychrome:Xtt,BIMDataIconFileIfcPolychrome:oit,BIMDataIconFileImagePolychrome:dit,BIMDataIconFileJpegPolychrome:fit,BIMDataIconFilePdfPolychrome:wit,BIMDataIconFilePlanPolychrome:Qit,BIMDataIconFilePngPolychrome:Fit,BIMDataIconFilePointCloudPolychrome:Hit,BIMDataIconFilterList:_Ge,BIMDataIconFitView:ZGe,BIMDataIconFolder:oVe,BIMDataIconFolderLocation:AVe,BIMDataIconFolderMove:mVe,BIMDataIconFolderOpen:BVe,BIMDataIconFolderPolychrome:zit,BIMDataIconFullscreen:DVe,BIMDataIconGavel:UVe,BIMDataIconGrid:qVe,BIMDataIconGroup:WVe,BIMDataIconHide:rqe,BIMDataIconHome:cqe,BIMDataIconIfc:fqe,BIMDataIconIfcFile:bqe,BIMDataIconImport:Sqe,BIMDataIconInProgressFile:t_e,BIMDataIconIndexAscending:Tqe,BIMDataIconIndexDescending:Gqe,BIMDataIconInformation:Yqe,BIMDataIconInvitation:l_e,BIMDataIconIsolate:g_e,BIMDataIconKey:w_e,BIMDataIconLeft:M_e,BIMDataIconLinkedDocument:T_e,BIMDataIconList:G_e,BIMDataIconListManage:Y_e,BIMDataIconLocation:ize,BIMDataIconLock:cze,BIMDataIconLogout:fze,BIMDataIconMeasure:bze,BIMDataIconMinus:Sze,BIMDataIconModel3D:Nze,BIMDataIconNamingConvention:Vze,BIMDataIconNavigation:Wze,BIMDataIconOrganization:rKe,BIMDataIconParameters:dKe,BIMDataIconPathway:mKe,BIMDataIconPieGraph:bKe,BIMDataIconPipette:SKe,BIMDataIconPlan:NKe,BIMDataIconPlus:qKe,BIMDataIconPreview:ZKe,BIMDataIconProject:oJe,BIMDataIconQuickSelect:dJe,BIMDataIconReadonlyFolder:mJe,BIMDataIconRedo:BJe,BIMDataIconReduced:SJe,BIMDataIconRefresh:NJe,BIMDataIconRemoveModel:VJe,BIMDataIconRename:YJe,BIMDataIconReprocessIfc:tYe,BIMDataIconReset:lYe,BIMDataIconRestore:gYe,BIMDataIconRight:wYe,BIMDataIconRotate:QYe,BIMDataIconRules:LYe,BIMDataIconSandglass:GYe,BIMDataIconSave:YYe,BIMDataIconScreenConfig:tWe,BIMDataIconScreenshot:aWe,BIMDataIconSearch:rT,BIMDataIconSection:yWe,BIMDataIconSetAsModel:kWe,BIMDataIconSettings:RWe,BIMDataIconShare:HWe,BIMDataIconShow:KWe,BIMDataIconShowSelected:$We,BIMDataIconSmartview:nZe,BIMDataIconSocotec:uZe,BIMDataIconSpace:vZe,BIMDataIconSpace2:BZe,BIMDataIconSpacing:SZe,BIMDataIconSplit:TZe,BIMDataIconStorey:VZe,BIMDataIconStructure:WZe,BIMDataIconStructurePolychrome:Xit,BIMDataIconSuccess:rXe,BIMDataIconSurface:cXe,BIMDataIconSwap:gXe,BIMDataIconSynchro2D:IXe,BIMDataIconSystem:QXe,BIMDataIconTag:LXe,BIMDataIconTranslate:jXe,BIMDataIconTree:JXe,BIMDataIconUnarchive:t$e,BIMDataIconUndo:l$e,BIMDataIconUnion:g$e,BIMDataIconUnknownFile:I$e,BIMDataIconUp:Q$e,BIMDataIconUpload:F$e,BIMDataIconUser:j$e,BIMDataIconValidate:J$e,BIMDataIconValidatedFile:eet,BIMDataIconVersioning:aet,BIMDataIconVideocam:get,BIMDataIconViewer2DPolychrome:ort,BIMDataIconViewer3DPolychrome:drt,BIMDataIconVisa:Iet,BIMDataIconWarning:Qet,BIMDataIconWindowBottom:Tet,BIMDataIconWindowLeft:Wet,BIMDataIconWindowRight:rtt,BIMDataIconWindowTop:dtt,BIMDataIconWindowed:Vet,BIMDataIconZone:ftt,BIMDataIconZone2:wtt,BIMDataIllustration:qst,BIMDataInfobox:Yst,BIMDataInput:rat,BIMDataInputOutlined:gat,BIMDataList:vat,BIMDataLoading:Bat,BIMDataMenu:Pat,BIMDataMenuInline:Tat,BIMDataMultiplePieChart:Vat,BIMDataPaginatedList:H$,BIMDataPieSpinner:Yat,BIMDataRadio:elt,BIMDataResponsiveGrid:rlt,BIMDataSafeZoneInline:alt,BIMDataSearch:ult,BIMDataSearchAutocomplete:xlt,BIMDataSelect:qlt,BIMDataSimplePieChart:Zlt,BIMDataSlider:ict,BIMDataSpinner:O$,BIMDataTable:bct,BIMDataTabs:xct,BIMDataText:Z$,BIMDataTextarea:Fct,BIMDataTextbox:xB,BIMDataToggle:Oct,BIMDataTooltip:Vct,BIMDataTree:Xct},Symbol.toStringTag,{value:"Module"})),tee=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}),edt=["bisque","khaki","greenyellow","lightcyan","plum","ghostwhite"];function Zh(){const t=Object.entries(tee).filter(([i])=>!edt.includes(i)),e=Math.floor(Math.random()*t.length);return t[e][1]}const tdt={props:{message:{type:String,required:!0},active:{type:Boolean,default:!0}}},idt={key:0,class:"bimdata-empty"},rdt={class:"m-t-6"};function odt(t,e,i,r,o,s){return i.active?(x(),U("div",idt,[mt(t.$slots,"default"),b("p",rdt,z(i.message),1),mt(t.$slots,"footer")])):he("",!0)}const kp=V(tdt,[["render",odt]]),ndt=Object.entries(tee).reduce((t,e,i)=>(i%5===0?t.push([e]):t[t.length-1].push(e),t),[]),sdt={props:{selectedColor:{type:Number,default:null}},emits:["color-select"],data(){return{colorLines:ndt}},methods:{toColorString(t){return`#${t.toString(16).padStart(6,0)}`}}},adt=["title","onClick"];function ldt(t,e,i,r,o,s){const n=P("BIMDataCard");return x(),W(n,{class:"color-selector"},{content:G(()=>[(x(!0),U(ht,null,Ht(o.colorLines,(a,l)=>(x(),U("div",{key:`colorLine${l}`,class:"color-selector__line"},[(x(!0),U(ht,null,Ht(a,([c,d],A)=>(x(),U("div",{key:`colorElement${A}ofColorLine${l}`,class:ge(["color-selector__line__element",{selected:d===i.selectedColor}]),style:pe(`background-color: ${s.toColorString(d)}`),title:c,onClick:u=>t.$emit("color-select",{name:c,value:d})},null,14,adt))),128))]))),128))]),_:1})}const lT=V(sdt,[["render",ldt]]),cdt="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+7QTkfsLuvTvB72SwPvwZEBMITKACF8jABjbwd/BzoAQnSMEJ1i8T3KugBje4QP3tr3/EAyDxBljAA3LwhCiUYBDulMIWVvCChXChDBXoGQCc4xwCoFY7nBVC8wkEfSUMohD/TXjAGIDqfkRMHwyRmMTqhS8A5SiHAKLwQ/9lqhIsHKIWt9hE6/0gAP7roveWKEYnhq8cxkCHGrmVE2ysJBxwjKMc5ViDg8RxIHMEhx73yMc++hGPLgCHRgJJyEIG0iOFfCIa18ECNZZDINzoABrVwQ1jtIMbmDSJNjC5yU568pOgDOU1RmmNYY0SkpAMgSpXyUpVcmuVH+FAC2bZgUba8pYRuWUtd6lLXtKyl79sgW10eIwpNlIAuRtIALEYwTFGhInQjKY0p4m/H2JgBdTMJhEdEsNAdNOb4PxmOMcZvHKa85ymKadYKoABbLSTnUl4JzzliQGTxA2HAjDCDv232wPzbQAZQCzj83wSgCyeYSHOBEn8FipQ6IUlGRClRkRnAdGXfDCHPNxAP3v3Q76A4KMgDalIQSCShlrvKwO1yfgGUjt++hABBd3LSGcK0pKaFHyW4Z9Ob+fSZQY0e7ShqVCHStShPnGnAGhAT893TtsU9alQFepRP7jUjurmpjitzEWTWlWY7gar0fPg/roaU9k55KJkNWtDtgrG8nHUq2pdK1V1V5CyxpUhY30fQex6V7lasa59lSv5NHonqwZWIXkF6gcMe9iG/LWxFdErZCPC18lSNpmWVUhAAAAh+QQFCgADACwwAM8ADQFZAAAI/wAHCBxIsKDBgwgTKlzIsKHDhxAjSpxIsWJCShgzatxIyaLHjyBDihxJsuRIBSg1bFipwKTLlzBjypzpESUZlTdT0tzJs6fPnxBtaoihIGdKlUeBKl3KtKnFDTkUCCCa5gwDp1izat1KECUCDQECUF3JtazZszK9ggUwtahVlGjjyp0bUS3bsGMZHG1Jt6/fuXbD4hWKFOnfw4izBhYMIC/fxJAjA13MOK/ky5hnBo7RWG9hnZlDiwZp9wUCzl0SaWJDKdDV0bBjS1RLR4FqsRr0IOBiVbbv3wvPYFC5WsELAJo85QTOvPlA4bnbSNeCe7nz67Jt7raDJ5EHzm5fY/8fH5rwSgxfNaDvTb49ZvNkptep6r5+ee14rNvff3iv+cf8BSjggAQWaOCBCCao4IIMNujggxBGKOGEFFZo4YUYZqjhhhx2mJgXIIYo4iIkjjjJiSh6eKGJLLaYoooVukiFFzDWOICMNnaIo0CpVLGAQGOgSOJAoeTooIwgErlJS0EmCWQoiCxiJINIrjFBARGMAWSPcNz45JQLIrkIDz8CSZAFBRUApoFijlgKKgtUgeaaD7ZpIhZJwLFLBqocdEcJdB4o5i2AzCgGHLBcpMYcgRY46ASncAIGQ3Kw0ih/doYIzwScClQKQahAeemAmYr55agBlsrKqoaW2CKq+6n/yqqQTooIK6mytqqrlLdimuuuhvbq3q9OCksgsTQaeyytzDYborLLOivts9AqWGq1CF6LrYWfGbZtg92q9C244Y7LYLgamLsguuoqyG67CL4Lr4Hyzmvvvfjmq+++/Pbr778AB+whSwQXbPDBCJ+g8MIMN+zwwxBHLDEttDyHxsQYZ5xxUB50HCcJIIcs8sgkl2wyyYAlrPLKLGvs8ssXnyAQxTDXrDHHHtt88s48t+wzywEAQlYAAwxd1c+YJK300kw3jfTTUB+MDNFvRW01wjhfrfXWTnftddBDF73BAAEczbXXaJ99NgIzf6C21lm//TRTZLXdttx461zzDGLr9u13w3H3LPjgItN9hsVku5b34n9P3AMBQjfeOMeEV074eNiIk/nmmmvOEzjhhC766KIzahDo4DyH+uqst+666i6EJIILs9du++2456477r5Vw402vwevDajAF2/88cgnf83yzF8zEPM88mhNCNRXb30IBDVPUgvcc+D99+CzEFH4HYxQ/vnmp6/++uw35/b78MfP+PyAJ74C/T87pLgV+/dv9v8AJMPRBEhA+qiOCwUaG1cAcDcFniUFEIzg/SZIwQpK0IIYzOAEBYYVDXrwgyC0IAedEsISmtBgI2wK/lqWQsOtUGUtXMoJZ2jCGCqFhjj8oFICAgAh+QQFCgADACxAAMQA/QBkAAAI/wAHCBxIsKDBgwgTKlzIsKHDhxAjSpyYUIFFixQzatzIsaPHjyBDEryoQKTJkyhTqlwJESPLlzBjypzJUMElAF00uKTJs6fPnxPrGGCwJJHOo0CTKl3KU0EiPgruOGJwtCTTq1izfmSAJ4ZTZmvq6Cy0QKvZs2gXWoQR5MOTL18qXVAyKFDau3ivkkxBJlIWDQK6pAnQpg2AL3QY5F3MuKeWMAcaRVKQ544KACkUCEBAJ1Hjz6BRXnyFZo2BZXstItBwYQvV1HtDy57NkFKbzk43VyW55w7t38AfXrQgiYwC4xoaJWetky3s3dCj7w5OPStXZJc8XIShgnsfnUQ+Pf+XTj569fNAL9aB4bo58++P9hgaX75+efT4YRp6JKmNRRo2sZYIHe3ZZyB0+SVI03F/6EYSHoc4wgV9B96n4IUsqYZDAFWgcAYAAri1GoUV1ofhiSepBsAekVxwCB8COFjijOahaGNHhWTxgxNObKFGIxakQSKNB95oJEVceaKIeGco+RqRRB4ppUZDQlnhlFhGVKWVJWbpZUtcWvnlmDN1SeaZLxWJ5poqqcnmmyFdCeecHslJ551U2ofnnjhKx+efEukJ6KCEFmrooYgmquiijDbq6KOQRirppJRWaumlmGaq6aacdurpp6CGKuqopJZq6qmopqrqqqy26uqrsMb/KuustNZq66245qrrrrz26uuvwAYr7LDEFmvsscgmq+yyzDbr7LPQRivttNRWi+wJ2Gar7bbcduvtBuCGK+645JZr7rnnDoTuuuy2Oy6Yu7kr77z01mvvt/jeq2+9As2377/iwvvkBwAXbPDBCGOi8MIMN+zwwxBHvEElALQn8cUYZ6ywwBp37PHHIIecsMgkXxxEvyWnzDDHZKns8ssw5yvzyP/G8AXBNNPLcs7o9jTzz0DzTO8PAQwgtLxg4ny0ub+Jg43TUD/tdEzhVG311VfXcJDVA2ENztdghy322F27AE6dZqettgsgqc0YN9rALXfcBMU9t91456333tf0jW3NQNb0LdDfA/hteAiIJ1634iBx0MLjHbDwjeSQSx4R5ZhnHvnmmnf+eGhLNyn66KSXjrBA0mCwgumst16wQy3HLnsgtNduu5C456477iNxQQaGZ2RVtNGio6V06OVaixDyPStvEPPpOl8QCNRXb/312Gev/fbVSz899+CHLz4I3vcOPbnlq3s++jwFBAAh+QQFCgADACxAALYA4AByAAAI/wAHCBxIsKDBgwgTKlzIsKFCBZEE3FGhoaJFBQ4zatzIsaPHjyBDilRQMYgSBkvaULyIUaTLlzBjypzZkaSCNnwU3HFksyXNn0CDCh36UIGiGDedrQnC0ifRp1CjSm0YCAalM1e+LKt04UmiNE6nih1L9meKQJGyaAjQhUuDNnUAfOnDgGTZu3jzatQSRkCjSBryTBRgiEEABHRU2tXLuLFelGfUGFjWtApTGDrqOt7MWewHSXVuEq4McQ2DzqhTC/1g4QIZoxUbacChQBJJq6dV697tkkEOHJfqVoQRuDgaIp4q8l7OfCOaOpgtEr+ggu6jPYGaa9++MMUd0LFnM//ok6iPHzTc06sX6PuPAMUV0+Q4xDP3+vvMSWLAEUB4AAAb9IKAffglxFKBePkGwB6RXHAIHwAAgEdYCBp0UYVlkZTFD044sYUajVgAFoYHKUdigvLhMeFzXGh24kCVvdhYT6TVaOONOOaoo44yorjjj0AGKSRpPRaZ4I1GJukZjko2GZSQTkZJ049SVjnSkEhaqeVBQXTp5ZdgUiLmlmRqNGSZaFIFZJpsIgRlm3BauGOcdMLIY511zolnnlnuuWeOfvJJZKB+xkjonwcequgAGizq6KOQRirppJRWaumlmGaq6aacdurpp6CGKuqopJZq6qmopqrqqqy26uqrsMb/KuustNZq66245qrrrrz26uuvwAYr7LDEFmvsscgmq+yyzDbr7LPQRivttNRWa+212Gar7bbcduvtt+CGKy6yG5Rr7rnopqvuuie06+678MYr77z00mtnvfjmq6+7Znrg7wIkBCzwwAQXbPDBCLOr8MIMN7zvwxDDyx4tEVe8b7//Wpzwxhw7jMnHIIcs8sgke2zyyesiE8AWZ3yA8ssLYwzzzDSXbPPNONes87kITLxzzTL/LHTOQ2tsdMUzfEHx0UzzmxHATXeMcL9FVx11vD0QwOjVR1Mt9ddgj4WNOGOXTTbZUYETztpst832HAepDc5Actdt9914u0C32i+JruCC34AHLvjghBc++FDVcKON4oxrQ1Dji0cu+eTXUG555dcMhLlAmQ8QgjWfYw566CE8HrpMLaTOweqst87CRq53MILstM9u++245562y7z37rvVwMcr0AEDBm+yQ4FYkfzyyjMv3/PQRy/Da9RLTxAZXHDR2QacAeAz96mdJf4K5Jdv/vnjo6/++uU3y/778MePvvvy128/uvQbz3D++ivM//0AhN//AkjAAn4sIAAh+QQFCgADACxAALYA0AByAAAI/wAHCBxIsKDBgwgTKlzIsKFCDRAjSoTosKLFixgzatzIsSPCiSAlehxJsqTJkygJhpyYsqXLlzBbrgwZs6bNmzgLzhSZs6fPnx130gRKtGhPBZEE3BHKVIPRp1Bd1jFQ5UubpjOjat3qUUEbPgruOGKAFSTXs2gtKsATQ0MdZ2soQTRU1mnau3gPBoKB4MOTL8sqSXqSKJCCw0zzKr57OFCkLBoAaOECoM3UL3TI7lzM+WzYMAIaRVJgZCkAugIQ0Cm8ubNrqGjCoFljAFLIvhe2CH3Nu+gHSXL1pJ5IBmIcQSqy9l7u84yjC8W5QHSiAYeGPof5Ih7KvLtNBjlwjP+OCOO6+TNEPm036729y+1f3XnIrqI89kdg17N0z/89/qvVKWAdcHToplx/CJ4EXg+VSZRGDocwUVxrCVY4Eng4BKAZAKcd0JcCFob4EngA8BHJBYfwEcBpIrbonxMwuiNII1mk4eKNCj6Ih3pnKFIcjkBeqB+IQRZp5JFIJqnkkkw26eSTUEYp5ZRUVmnllVhmqeWWXHbp5ZdghinmmGSWaeaZaKap5ppstunmm3DGKeecdNZp55145qnnnnz26eefgAYq6KCEFmrooYgmquiijDbq6KOQRirppJRWaumlmGaq6aacdurpp6CGKuqopJZq6qmopqrqqqy26uqrCZ3/IOustNZq6624bqDrrrz26uuvwAYb7EDCFmvssb2qRRyyzDab67PQOivttGfoKhBd1GYLrLIOfqDtt+CGi8m45JZr7rnoprtBJZKp6+678KbLbSHx1mvvveLiq++9QVy777/uzgvwwARHm+/Bu8bwhbcITytwwxAbLHHEzP4QwAAUN6sswxkPW5I42IAscsgg4xTOySinnHINeoETzkAquyzzzDTX3A3MLoBDUs4895yzST1zI/TQRBdttDZHE4T00Us37fQ1T0MtNdQDWUP1ANYINHUIXHfdtdJfm8RBC2R3wMI3Z5d99kVpt+222XC/LTfZXXVc7d145633wQJJS4PBCnsHLni4DtFr2OGGI6744g827vjjBDWO0xlnXYzx3XhxbLe8i25eLKOeCws6CKSXbvrpqKeu+uqkj87667DH7nrovs5OO68BAQAh+QQFCgADACxAALgA0ABwAAAI/wAHCBxIsKDBgwgRylvIMB4cFRogJpxIsaLFixgzatzIsaPHAQ0XwhMRUeLHkyhTqlzJcqMHDw3XLXwIEUXLmzhz6txZ8KVIRoxmWhpqk6fRo0iTTowHSoqUoCNLopBKtarVq1hLKt3KFWe8Mu3qQaU5NavZsxEjCbijoavbtyenihQrLyrau1nrGKjypU1buIADV5Rbt91YpG34KLjjiIFUwZAj+6xL1+5LvJhL4omhoY6zNZQiGlKgNbJprpPjGa47K7NrzTAQfHjyZVmlC08SBSJ9unfS1JXJln2NNlCkLBoAaCEToI3eL3QY+J7OM/Vqh8QxawkjoFEkBUbYAv8YLQADnUTU07e8DHPhdeHZzYZBs8YAJKuyL2xRoL4/SvYhsVZTJvFlJUloepRHFRlpCaKCfxB2BGCA8BV4lSMXMMhFRE5ogINApMUW4YgaTRhShRZWlQMO35UEgwYXDHQGEZ+QaKNL7A2YYl6HuHPZi0Bq8IhiHtxoJHWYDOmXh0we2IcfaBwpZW8MrAjAkrAxQcaUXJpWJQ4BOHZGAOMdIBt/XaYJWJUA8BHJBYfwAcB4ata55iNO5MmGII1YkIadgLqVhh144LHBGZ9sGOiiv5EmJm+MRrpVH5QEIemlSEmC6abVceqpTo5+KuqopJZq6qmopqrqqqy26uqrsMb/KuustNZq66245qrrrrz26uuvwAYr7LDEFmvsscgmq+yyzDbr7LPQRivttNRWa+212Gar7bbcduvtt+CGK+645JZr7rnopqvuuuy26+678MYr77z01mvvvfjmq+++/Pbr778AByzwwAQXbHBchyas8MIMN+zwCRBHLPHEFFds8cUXy4gGxhx37HHEGeVIwsgkl2zyySinrPLDLLf88cswfwwiLTHXLDNGIq+s8848Y+Lzz0AHLfTQLhdt9NELIxPAfh8g7fTRIWv29NRUE2311VVn3TACM2vt9QZRfy322DaXbfYMX9Bs9toTh93z23CTLTfbHfdAwAB05+123HyrzcwSNuIALnjggSsFTjiIJ6544nMcdDg4Mj4u+eSUVx65CyqRpPnmnHfu+eefcyP66KSXbvrp2hCEujast+76Na/DLvvssA8ku0DX4G5NCLz37nsIqvfeUgvEc2D88cizoFHyHYzQ/PPORy/99NT/1/T12Gc/9/YWC2TmCtw7fdFu5FtR/vmDpq/++uyrTxAZXHBhuG8AdA12einkrz/4/Pfv//7/C6AA+YeuARrwgAj8XwETyMAGLmyB4SsaBCPYsgk68IIHtCAGN/i/gAAAIfkEBQoAAgAsQADBANAAZwAACP8ABQgcSLCgwYMIExaMp7Chw4cQI0qcSLGixYsW48WbpUEFxo8gQ4ocSZKkPHgcS6pcybKlS4IePDy09LKmzZs4D8bMybOnz5w7fwodSvRj0KJIkypdyrSp06dQo0qdSrWq1atYs2rdyrWr169gw4odS9ZnhQIR0EpQy7ZthSYVBEALUrauyJht81LZy3eCX0t+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==",ddt={distance:"m",path:"m",angle:"\xB0",surface:"m\xB2"},Adt="measure2d_measurements",udt={name:"BIMDataMeasure2D",components:{ColorSelector:lT,BIMDataEmpty:kp},data(){return{guide:cdt,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`${Adt}-${this.carrier}`},model(){return this.pluginViewer.model},isCalibrated(){return this.carrier!=="plan"||this.model&&this.model.size_ratio!=null},standard(){return this.model.size_ratio||1}},watch:{model(t){t&&this.setStandard(t.size_ratio)},currentGroup(t){this.measurements.forEach(e=>{e.visible=e.group===t})},measurements(t){t.forEach(e=>{e.visible=e.group===this.currentGroup})},selectedMeasurementPlugin(t){const e=this.measurementPlugins.get(t);if(this.currentPlugin&&this.currentPlugin!==e&&(this.currentPlugin.disable(),this.pathValidationModal&&this.closePathValidationModal()),e&&(e.enable(),t==="path")){const i=this;this.$viewer.localContext.modals.pushModal({created(){i.pathValidationModal=this},render(){return _o(WL,{width:"100%",class:"bimdata-measure2d__path-validation"},{content:()=>_o("div",{style:"display: flex; justify-content: space-between; align-items: center;"},[_o("div",this.$t("measure2d.validate_path")),_o(ta,{fill:!0,radius:!0,color:"high",width:"121px",onClick:i.onPathCancel},{default:()=>this.$t("global.cancel")}),_o(ta,{fill:!0,radius:!0,color:"primary",width:"121px",onClick:i.onPathValidate},{default:()=>this.$t("global.validate")})])})}},null,{display:"banner"})}this.currentPlugin=e},currentColor(t){this.measurementPlugins.forEach(e=>{e.color=t})}},mounted(){var t,e,i,r;const o=this.$viewer.localContext.viewer;if(!o||!o.viewer){const c="Measure2d plugin cannot work without a viewer2d, dwg or plan plugin and viewer.";throw console.error(c),new Error(c)}this.carrier=o.plugin.name,this.pluginViewer=o;const s=(t=o.plugins)==null?void 0:t.ruler,n=(e=o.plugins)==null?void 0:e.surface,a=(i=o.plugins)==null?void 0:i.angle,l=(r=o.plugins)==null?void 0:r.path;this.measurementPlugins=new Map,s&&(this.measurementPlugins.set("distance",s),this.ruler2dPluginAvailable=!0,s.on("add",c=>{this.isUpdated=!0,this.makeMeasurement({type:"distance",get value(){return c.length},color:this.currentColor,object:c}),this.selectedMeasurementPlugin=null,this.currentColor=Zh()})),n&&(this.measurementPlugins.set("surface",n),this.surface2dPluginAvailable=!0,n.on("add",c=>{this.isUpdated=!0,this.makeMeasurement({type:"surface",get value(){return c.surface},color:this.currentColor,object:c}),this.selectedMeasurementPlugin=null,this.currentColor=Zh()})),a&&(this.measurementPlugins.set("angle",a),this.angle2dPluginAvailable=!0,a.on("add",c=>{this.isUpdated=!0,this.makeMeasurement({type:"angle",get value(){return c.angle},color:this.currentColor,object:c}),this.selectedMeasurementPlugin=null,this.currentColor=Zh()})),l&&(this.measurementPlugins.set("path",l),this.path2dPluginAvailable=!0,l.on("add",c=>{this.isUpdated=!0,this.makeMeasurement({type:"path",get value(){return c.length},color:this.currentColor,object:c}),this.selectedMeasurementPlugin=null,this.currentColor=Zh()})),this.currentColor=Zh(),this.carrier==="viewer2d"||this.carrier==="plan"?this.$watch(()=>this.pluginViewer.selectedStorey,c=>{this.currentGroup=c?.name}):this.$watch(()=>this.pluginViewer.model,c=>{this.currentGroup=c?.id})},onOpen(){document.addEventListener("keydown",this.onKeyDown),this.pluginViewer.viewer.ui.mode=null,this.hasBeenOpened||(this.hasBeenOpened=!0,this.$watch(()=>this.pluginViewer.model,t=>{this.measurements=[],t&&this.restoreSavedMeasurements()},{immediate:!0}))},onClose(){var t;document.removeEventListener("keydown",this.onKeyDown),this.pluginViewer.viewer.ui.mode="pick",this.selectedMeasurementPlugin=null,(t=this.pluginViewer.plugins.caliper)==null||t.disable(),this.calibrating=!1},methods:{setStandard(t){var e,i,r;[(e=this.pluginViewer.plugins)==null?void 0:e.ruler,(i=this.pluginViewer.plugins)==null?void 0:i.surface,(r=this.pluginViewer.plugins)==null?void 0:r.path].filter(Boolean).forEach(o=>{o.standard=t||1})},toggleCalibrate(){var t;this.calibrating?((t=this.pluginViewer.plugins.caliper)==null||t.disable(),this.calibrating=!1):this.onCalibrateClick()},onCalibrateClick(){this.pluginViewer.plugins.caliper.enable(this.onCalibrationValidated,this.onCalibrationCancel),this.calibrating=!0},async onCalibrationValidated(t){this.pluginViewer.plugins.caliper.disable();const e=this.$viewer.api.cloudId,i=this.$viewer.api.projectId;try{this.model.size_ratio=t,this.setStandard(t),this.$viewer.api.permissions.hasModelWritePermission&&await this.$viewer.api.apiClient.modelApi.updateModel(e,this.model.id,i,{size_ratio:t}),this.$viewer.localContext.hub.emit("alert",{type:"success",message:this.$t("measure2d.calibration_success")})}catch(r){console.error(r.message),this.$viewer.localContext.hub.emit("alert",{type:"error",message:r.message})}finally{this.calibrating=!1}},onCalibrationCancel(){this.calibrating=!1,this.pluginViewer.plugins.caliper.disable()},isHideElementDisabled(t){return t.group!==this.currentGroup},closePathValidationModal(){this.pathValidationModal.$emit("close"),this.pathValidationModal=null},onPathCancel(){this.selectedMeasurementPlugin=null,this.pathValidationModal&&this.closePathValidationModal()},onPathValidate(){const t=this.measurementPlugins.get(this.selectedMeasurementPlugin).validate();this.closePathValidationModal(),t||(this.selectedMeasurementPlugin=null)},makeMeasurement(t){const{type:e,group:i,name:r,color:o,object:s}=t;let n=o,a=!0,l;switch(e){case"distance":l=[s.startPoint,s.endPoint];break;case"angle":l=[s.startPoint,s.anglePoint,s.endPoint];break;case"surface":l=s.points;break;case"path":l=s.points;break}const c=this,d={id:s.id,group:i||this.currentGroup,unit:ddt[e],get value(){return c.standard,t.value.toFixed(2)},name:r||e,type:e,get color(){return n},get colorString(){return`#${n.toString(16).padStart(6,0)}`},set color(A){n=A,s.colorize(A)},get visible(){return a},set visible(A){a=A,s.visible=A},get points(){return l},destroy(){s.destroy()},nameEditing:!1,colorEditing:!1};return this.measurements.push(d),d},onTagClick(t){this.measurements.filter(e=>e!==t).forEach(e=>e.colorEditing=!1),t.colorEditing=!0,this.isUpdated=!0},onElementNameClick(t){t.nameEditing=!0,this.isUpdated=!0,this.$nextTick(()=>{this.$refs.elementInput&&this.$refs.elementInput.focus()})},onInputBlur(t){t.nameEditing=!1},onAddMeasurementClick(t){this.selectedMeasurementPlugin===t?this.selectedMeasurementPlugin=null:this.selectedMeasurementPlugin=t},onKeyDown(t){t.key==="Escape"&&this.onEscapeDown()},onEscapeDown(){this.selectedMeasurementPlugin=null,this.measurements.forEach(t=>{t.nameEditing=!1,t.colorEditing=!1})},onHideMeasurementClick(t){t.visible=!t.visible},onDeleteMeasurementClick(t){t.destroy(),this.measurements.splice(this.measurements.indexOf(t),1),this.isUpdated=!0},getSavedMeasurements(){let t={};try{const e=localStorage.getItem(this.storageKey)||"{}";t=JSON.parse(e)}catch{localStorage.removeItem(this.storageKey)}return t},restoreSavedMeasurements(){const t=String(this.pluginViewer.model.id),e=this.getSavedMeasurements(),i=e[t]||[];try{this.ruler2dPluginAvailable&&this.restoreMeasurements(i.filter(r=>r.type==="distance")),this.surface2dPluginAvailable&&this.restoreMeasurements(i.filter(r=>r.type==="surface")),this.angle2dPluginAvailable&&this.restoreMeasurements(i.filter(r=>r.type==="angle")),this.path2dPluginAvailable&&this.restoreMeasurements(i.filter(r=>r.type==="path"))}catch{e[t]=[],localStorage.setItem(this.storageKey,e)}},restoreMeasurements(t){t.forEach(e=>{const i=this.measurementPlugins.get(e.type).create(e.points);i.colorize(e.color),this.makeMeasurement({type:e.type,group:e.group,name:e.name,color:e.color,object:i,get value(){return e.type==="surface"?i.surface:e.type==="angle"?i.angle:i.length}})})},onSaveMeasurementsClick(){const t=String(this.pluginViewer.model.id),e=this.getSavedMeasurements();e[t]=this.measurements.map(i=>({type:i.type,group:i.group,name:i.name,color:i.color,points:i.points})),localStorage.setItem(this.storageKey,JSON.stringify(e)),this.isUpdated=!1}}},hdt={class:"bimdata-measure2d"},pdt={key:0,class:"bimdata-measure2d__actions-0"},gdt={class:"bimdata-measure2d__actions-1"},fdt={class:"bimdata-measure2d__actions-2"},mdt={class:"bimdata-measure2d__list"},vdt={class:"bimdata-measure2d__list__element"},Cdt={class:"bimdata-measure2d__list__element__label"},ydt=["onClick"],Idt={class:"bimdata-measure2d__list__element__tag"},wdt=["onClick"],bdt={class:"bimdata-measure2d__list__element__buttons"},Bdt={key:2,class:"bimdata-measure2d--not-calibrated"},Edt={key:0,class:"bimdata-measure2d--not-calibrated__guide"},kdt=["src"];function xdt(t,e,i,r,o,s){const n=P("BIMDataIconSave"),a=P("BIMDataButton"),l=P("BIMDataIconCaliper"),c=P("BIMDataIconDistance"),d=P("BIMDataIconAngle"),A=P("BIMDataIconSurface"),u=P("BIMDataIconPathway"),h=P("BIMDataIcon"),g=P("BIMDataInput"),p=P("ColorSelector"),m=P("BIMDataIconHide"),f=P("BIMDataIconShow"),v=P("BIMDataIconDelete"),C=P("BIMDataPaginatedList"),y=P("BIMDataIllustration"),I=P("BIMDataEmpty"),B=Ti("click-away");return x(),U("div",hdt,[s.model?s.isCalibrated?(x(),U(ht,{key:1},[b("div",gdt,[F(a,{class:"bimdata-measure2d__actions-1__btn-save",color:"primary",fill:"",radius:"",icon:"",disabled:!o.isUpdated,onClick:s.onSaveMeasurementsClick},{default:G(()=>[F(n,{size:"xs",margin:"0 6px 0 0"}),b("span",null,z(t.$t("measure2d.save_measurements")),1)]),_:1},8,["disabled","onClick"]),t.$viewer.api.permissions.hasModelWritePermission&&o.carrier==="plan"?(x(),W(a,{key:0,color:o.calibrating?"primary":"default",fill:"",radius:"",icon:"",class:"bimdata-measure2d__actions-1__caliper",onClick:s.toggleCalibrate},{default:G(()=>[F(l,{size:"xs"})]),_:1},8,["color","onClick"])):he("",!0)]),b("div",fdt,[o.ruler2dPluginAvailable?(x(),W(a,{key:0,color:o.selectedMeasurementPlugin==="distance"?"primary":"default",fill:"",radius:"",onClick:e[0]||(e[0]=E=>s.onAddMeasurementClick("distance"))},{default:G(()=>[F(c,{size:"s",margin:"0 6px 0 0"}),b("span",null," + "+z(t.$t("measure2d.distance_measurement")),1)]),_:1},8,["color"])):he("",!0),o.angle2dPluginAvailable?(x(),W(a,{key:1,color:o.selectedMeasurementPlugin==="angle"?"primary":"default",fill:"",radius:"",onClick:e[1]||(e[1]=E=>s.onAddMeasurementClick("angle"))},{default:G(()=>[F(d,{size:"s",margin:"0 6px 0 0"}),b("span",null," + "+z(t.$t("measure2d.angle_measurement")),1)]),_:1},8,["color"])):he("",!0),o.surface2dPluginAvailable?(x(),W(a,{key:2,color:o.selectedMeasurementPlugin==="surface"?"primary":"default",fill:"",radius:"",onClick:e[2]||(e[2]=E=>s.onAddMeasurementClick("surface"))},{default:G(()=>[F(A,{size:"s",margin:"0 6px 0 0"}),b("span",null," + "+z(t.$t("measure2d.surface_measurement")),1)]),_:1},8,["color"])):he("",!0),o.path2dPluginAvailable?(x(),W(a,{key:3,color:o.selectedMeasurementPlugin==="path"?"primary":"default",fill:"",radius:"",onClick:e[3]||(e[3]=E=>s.onAddMeasurementClick("path"))},{default:G(()=>[F(u,{size:"s",margin:"0 6px 0 0"}),b("span",null," + "+z(t.$t("measure2d.path_measurement")),1)]),_:1},8,["color"])):he("",!0)]),b("div",mdt,[o.measurements.length>0?(x(),W(C,{key:0,list:o.measurements,"element-key":"id",style:{overflow:"unset"}},{element:G(({element:E})=>[b("div",vdt,[b("div",Cdt,[F(h,{name:E.type==="path"?"pathway":E.type,size:"m",margin:"0 12px 0 0"},null,8,["name"]),E.nameEditing?(x(),W(g,{key:0,ref:"elementInput",modelValue:E.name,"onUpdate:modelValue":k=>E.name=k,onBlur:k=>E.nameEditing=!1,onKeypress:Kt(k=>E.nameEditing=!1,["enter"])},null,8,["modelValue","onUpdate:modelValue","onBlur","onKeypress"])):(x(),U("span",{key:1,onClick:k=>s.onElementNameClick(E)},z(E.name),9,ydt))]),b("div",Idt,[b("span",{class:"bimdata-measure2d__list__element__tag__content",style:pe(`color: ${E.colorString}; background-color: ${E.colorString}20;`),onClick:k=>s.onTagClick(E)},z(E.value)+" "+z(E.unit),13,wdt),E.colorEditing?Bt((x(),W(p,{key:0,class:"bimdata-measure2d__list__element__tag__color-selector","selected-color":E.color,onColorSelect:k=>{E.color=k.value,E.colorEditing=!1}},null,8,["selected-color","onColorSelect"])),[[B,()=>{E.colorEditing=!1}]]):he("",!0)]),b("div",bdt,[F(a,{icon:"",class:"m-r-6",color:"granite",ghost:"",radius:"",disabled:s.isHideElementDisabled(E),onClick:k=>s.onHideMeasurementClick(E)},{default:G(()=>[E.visible?(x(),W(m,{key:0,size:"s"})):(x(),W(f,{key:1,size:"s"}))]),_:2},1032,["disabled","onClick"]),F(a,{icon:"",ghost:"",radius:"",color:"granite",onClick:k=>s.onDeleteMeasurementClick(E)},{default:G(()=>[F(v,{size:"m"})]),_:2},1032,["onClick"])])])]),_:1},8,["list"])):(x(),W(I,{key:1,message:t.$t("measure2d.empty")},{default:G(()=>[F(y,{name:"emptyBucket"})]),_:1},8,["message"]))])],64)):(x(),U("div",Bdt,[o.calibrating?(x(),U("div",Edt,[b("img",{src:o.guide},null,8,kdt)])):(x(),W(y,{key:1,name:"emptyMeasure"})),b("div",null,z(o.calibrating?t.$t("measure2d.calibrating"):t.$t("measure2d.not_calibrated")),1),F(a,{color:"primary",fill:"",radius:"",icon:"",width:"150px",disabled:o.calibrating,onClick:e[4]||(e[4]=E=>s.onCalibrateClick())},{default:G(()=>[F(l,{size:"s",margin:"0 var(--spacing-unit) 0 0"}),st(" "+z(t.$t("measure2d.calibrate")),1)]),_:1},8,["disabled"])])):(x(),U("div",pdt,z(t.$t("measure2d.no_model"))+". ",1))])}const Qdt=V(udt,[["render",xdt]]),Mdt="Speichern",Sdt="Entfernung",Ddt="Winkel",Pdt="Oberfl\xE4che",Rdt="Weg",Fdt="Sie haben derzeit keine gespeicherten Messungen.",Ldt="Umbenennen",Tdt="Farbe \xE4ndern",Ndt="Messger\xE4t",Udt="Klicken Sie auf \u201EBest\xE4tigen\u201C, um die Zeichnung zu beenden.",Odt="Kalibrierung",Hdt="Bitte skizzieren und best\xE4tigen Sie Ihren Standard",jdt="Um das Messwerkzeug verwenden zu k\xF6nnen, stellen Sie sicher, dass Sie Ihren Plan kalibriert haben.",Gdt="W\xE4hlen Sie ein Modell aus, um Messungen durchf\xFChren zu k\xF6nnen.",Vdt="Es muss sich um eine strikte positive Zahl handeln",qdt="Plan erfolgreich kalibriert",_dt={save_measurements:Mdt,distance_measurement:Sdt,angle_measurement:Ddt,surface_measurement:Pdt,path_measurement:Rdt,empty:Fdt,rename:Ldt,update_color:Tdt,tooltip:Ndt,validate_path:Udt,calibrate:Odt,calibrating:Hdt,not_calibrated:jdt,no_model:Gdt,modal_error:Vdt,calibration_success:qdt},zdt="Save",Kdt="Distance",Jdt="Angle",Ydt="Surface",Wdt="Path",Zdt="There is currently no saved measurement.",Xdt="Rename",$dt="Update color",eAt="Measurement tool",tAt="Click on \u201Cvalidate\u201D to end the path.",iAt="Calibration",rAt="Please trace and validate your stallion",oAt="To use the measurement tool, make sure you have calibrated your plan.",nAt="Select a model to be able to perform measurements",sAt="Must be a strictly positive number",aAt="Successfully calibrated plan",lAt={save_measurements:zdt,distance_measurement:Kdt,angle_measurement:Jdt,surface_measurement:Ydt,path_measurement:Wdt,empty:Zdt,rename:Xdt,update_color:$dt,tooltip:eAt,validate_path:tAt,calibrate:iAt,calibrating:rAt,not_calibrated:oAt,no_model:nAt,modal_error:sAt,calibration_success:aAt},cAt="Guardar",dAt="Distancia",AAt="\xC1ngulo",uAt="Superficie",hAt="Camino",pAt="Actualmente no hay ninguna medici\xF3n guardada.",gAt="Renombrar",fAt="Actualizar color",mAt="Herramienta de medici\xF3n",vAt="Haga clic en \xE2\u20AC\u0153validar\xE2\u20AC para finalizar el camino.",CAt="Calibraci\xF3n",yAt="Rastree y valide su patr\xF3n",IAt="Para poder utilizar la herramienta de medici\xF3n, aseg\xFArese de haber calibrado su plano.",wAt="Seleccionar un modelo para poder realizar mediciones",bAt="El n\xFAmero debe ser necesariamente positivo",BAt="Plano calibrado de forma correcta",EAt={save_measurements:cAt,distance_measurement:dAt,angle_measurement:AAt,surface_measurement:uAt,path_measurement:hAt,empty:pAt,rename:gAt,update_color:fAt,tooltip:mAt,validate_path:vAt,calibrate:CAt,calibrating:yAt,not_calibrated:IAt,no_model:wAt,modal_error:bAt,calibration_success:BAt},kAt="Sauvegarder",xAt="Distance",QAt="Angle",MAt="Surface",SAt="Chemin",DAt="Vous n\u2019avez actuellement aucune mesure enregistr\xE9e.",PAt="Renommer",RAt="Modifier la couleur",FAt="Outil de mesure",LAt="Cliquer sur \u201Cvalider\u201D pour terminer le trac\xE9.",TAt="Etalonnage",NAt="Veuillez tra\xE7er et valider votre \xE9talon",UAt="Pour pouvoir utiliser l\u2019outil de mesure, assurez-vous d\u2019avoir calibr\xE9 votre plan.",OAt="Selectionner un model pour pouvoir r\xE9aliser des mesures",HAt="Doit \xEAtre un nombre strictement positif",jAt="Plan calibr\xE9 avec succ\xE8s",GAt={save_measurements:kAt,distance_measurement:xAt,angle_measurement:QAt,surface_measurement:MAt,path_measurement:SAt,empty:DAt,rename:PAt,update_color:RAt,tooltip:FAt,validate_path:LAt,calibrate:TAt,calibrating:NAt,not_calibrated:UAt,no_model:OAt,modal_error:HAt,calibration_success:jAt},VAt="Salva",qAt="Distanza",_At="Angolo",zAt="Superficie",KAt="Percorso",JAt="Attualmente non hai misure salvate.",YAt="Rinomina",WAt="Cambia colore",ZAt="Strumento di misura",XAt='Clicca su "OK" per completare il percorso.',$At="Calibrazione",eut="Indica e conferma il tuo campione",tut="Per poter utilizzare lo strumento di misurazione, assicurati di aver calibrato il tuo progetto.",iut="Seleziona un modello per eseguire delle misurazioni",rut="Deve essere un numero positivo",out="Progetto calibrato correttamente",nut={save_measurements:VAt,distance_measurement:qAt,angle_measurement:_At,surface_measurement:zAt,path_measurement:KAt,empty:JAt,rename:YAt,update_color:WAt,tooltip:ZAt,validate_path:XAt,calibrate:$At,calibrating:eut,not_calibrated:tut,no_model:iut,modal_error:rut,calibration_success:out},sut={name:"measure2d",i18n:{de:_dt,en:lAt,es:EAt,fr:GAt,it:nut},component:Qdt,addToWindows:["2d","dwg","plan"],button:{tooltip:"measure2d.tooltip",position:"right",content:"panel",keepOpen:!0,icon:{component:"BIMDataIconMeasure",options:{size:"m"}}}},aut={name:"BIMDataMeasure3D",components:{BIMDataEmpty:kp,ColorSelector:lT},data(){return{selectedMeasurementPlugin:null,currentPlugin:null,isUpdated:!1,measurements:[],distanceMeasurementId:1,angleMeasurementId:1,spacingMeasurementId:1,spacingMeasurementEnabled:!1}},computed:{displayedMeasurements(){const t=this.$viewer.localContext.loadedModelIds;return this.measurements.filter(e=>e.modelIds.some(i=>t.includes(i)))}},watch:{selectedMeasurementPlugin(t,e){e&&this.plugins.get(e).control.deactivate(),t&&this.plugins.get(t).control.activate()},displayedMeasurements(t){this.measurements.forEach(e=>{e.visible=t.includes(e)})}},mounted(){const t=this.$viewer.localContext.pluginComponentInstances.get("viewer3d")||this.$viewer.localContext.pluginComponentInstances.get("pointCloud");if(!t){const r="Measure3D plugin cannot work without viewer3d or tileset plugin.";throw console.error(r),new Error(r)}this.viewer3d=t,this.spacingMeasurementEnabled=t.spacingMeasurementsPlugin,this.plugins=new Map,this.plugins.set("distance",t.distanceMeasurementsPlugin),this.plugins.set("angle",t.angleMeasurementsPlugin),this.spacingMeasurementEnabled&&this.plugins.set("spacing",t.spacingMeasurementsPlugin),this.updateCurrentColor();const e=Object.values(this.viewer3d.distanceMeasurementsPlugin.measurements).map(this.makeDistanceMeasurement),i=Object.values(this.viewer3d.angleMeasurementsPlugin.measurements).map(this.makeAngleMeasurement);if(this.measurements=[...e,...i],this.spacingMeasurementEnabled){const r=Object.values(this.viewer3d.spacingMeasurementsPlugin.measurements).map(this.makeSpacingMeasurement);this.measurements.push(...r)}this.distanceMeasurementSubscription=this.viewer3d.distanceMeasurementsPlugin.on("measurementEnd",r=>{this.measurements.push(this.makeDistanceMeasurement(r)),this.selectedMeasurementPlugin=null,this.updateCurrentColor()}),this.angleMeasurementSubscription=this.viewer3d.angleMeasurementsPlugin.on("measurementEnd",r=>{this.measurements.push(this.makeAngleMeasurement(r)),this.selectedMeasurementPlugin=null,this.updateCurrentColor()}),this.spacingMeasurementEnabled&&(this.spacingMeasurementSubscription=this.viewer3d.spacingMeasurementsPlugin.on("measurementEnd",r=>{this.measurements.push(this.makeSpacingMeasurement(r)),this.selectedMeasurementPlugin=null,this.updateCurrentColor()}))},onOpen(){this.viewer3d.highlightOnHover=!1,this.viewer3d.selectOnClick=!1,document.addEventListener("keydown",this.onKeyDown)},onClose(){if(this.viewer3d.highlightOnHover=!0,this.viewer3d.selectOnClick=!0,this.selectedMeasurementPlugin){const t=this.plugins.get(this.selectedMeasurementPlugin);t?.control.deactivate()}document.removeEventListener("keydown",this.onKeyDown),this.selectedMeasurementPlugin=null},unmounted(){var t;this.viewer3d.distanceMeasurementsPlugin.off(this.distanceMeasurementSubscription),this.viewer3d.angleMeasurementsPlugin.off(this.angleMeasurementSubscription),(t=this.viewer3d.spacingMeasurementsPlugin)==null||t.off(this.spacingMeasurementSubscription)},methods:{onTagClick(t){this.measurements.filter(e=>e!==t).forEach(e=>e.colorEditing=!1),t.colorEditing=!0,this.isUpdated=!0},updateCurrentColor(){this.currentColor=Zh(),this.plugins.forEach(t=>t.defaultColor=`#${this.currentColor.toString(16).padStart(6,0)}`)},onElementNameClick(t){t.nameEditing=!0,this.isUpdated=!0,this.$nextTick(()=>{this.$refs.elementInput&&this.$refs.elementInput.focus()})},onInputBlur(t){t.nameEditing=!1},onAddMeasurementClick(t){this.selectedMeasurementPlugin===t?this.selectedMeasurementPlugin=null:this.selectedMeasurementPlugin=t},onKeyDown(t){t.key==="Escape"&&this.onEscapeDown()},onEscapeDown(){this.selectedMeasurementPlugin=null,this.measurements.forEach(t=>{t.nameEditing=!1,t.colorEditing=!1})},onHideMeasurementClick(t){t.visible=!t.visible},onDeleteMeasurementClick(t){t.destroy(),this.measurements.splice(this.measurements.indexOf(t),1),this.isUpdated=!0},makeAngleMeasurement(t){return this.makeMeasurement(t,`angle-${this.angleMeasurementId++}`,t.angle.toFixed(2),"\xB0","angle",t.color)},makeDistanceMeasurement(t){return this.makeMeasurement(t,`distance-${this.distanceMeasurementId++}`,t.length.toFixed(2),"m","distance",t.color)},makeSpacingMeasurement(t){return this.makeMeasurement(t,`spacing-${this.spacingMeasurementId++}`,t.length.toFixed(2),"m","spacing",t.color)},makeMeasurement(t,e,i,r,o,s){let n=!0,a=!1,l=s;return{nameEditing:!1,get visible(){return n},set visible(c){n=c,t.visible=c},colorEditing:!1,get color(){return l},set color(c){l=c,t.color=c},name:e,value:i,unit:r,type:o,modelIds:this.$viewer.localContext.loadedModelIds,destroy(){a||(t.destroy(),a=!0)},get destroyed(){return a}}}}},lut={class:"bimdata-measure3d"},cut={class:"bimdata-measure3d__actions"},dut={class:"bimdata-measure3d__content"},Aut={class:"bimdata-measure3d__list__element"},uut={class:"bimdata-measure3d__list__element__label"},hut=["onClick"],put={class:"bimdata-measure3d__list__element__tag"},gut=["onClick"],fut={class:"bimdata-measure3d__list__element__buttons"};function mut(t,e,i,r,o,s){const n=P("BIMDataIconDistance"),a=P("BIMDataButton"),l=P("BIMDataIconAngle"),c=P("BIMDataIcon"),d=P("BIMDataIllustration"),A=P("BIMDataEmpty"),u=P("BIMDataInput"),h=P("ColorSelector"),g=P("BIMDataIconHide"),p=P("BIMDataIconShow"),m=P("BIMDataIconDelete"),f=P("BIMDataPaginatedList"),v=Ti("click-away");return x(),U("div",lut,[b("div",cut,[F(a,{color:o.selectedMeasurementPlugin==="distance"?"primary":"default",fill:"",radius:"",onClick:e[0]||(e[0]=C=>s.onAddMeasurementClick("distance"))},{default:G(()=>[F(n,{size:"s",margin:"0 6px 0 0"}),b("span",null," + "+z(t.$t("measure3d.distance_measurement")),1)]),_:1},8,["color"]),F(a,{color:o.selectedMeasurementPlugin==="angle"?"primary":"default",fill:"",radius:"",onClick:e[1]||(e[1]=C=>s.onAddMeasurementClick("angle"))},{default:G(()=>[F(l,{size:"s",margin:"0 6px 0 0"}),b("span",null," + "+z(t.$t("measure3d.angle_measurement")),1)]),_:1},8,["color"]),o.spacingMeasurementEnabled?(x(),W(a,{key:0,color:o.selectedMeasurementPlugin==="spacing"?"primary":"default",fill:"",radius:"",onClick:e[2]||(e[2]=C=>s.onAddMeasurementClick("spacing"))},{default:G(()=>[F(c,{name:"spacing",size:"xs",margin:"0 6px 0 0"}),b("span",null," + "+z(t.$t("measure3d.spacing_measurement")),1)]),_:1},8,["color"])):he("",!0)]),b("div",dut,[F(f,{list:s.displayedMeasurements,"element-key":"id",style:{overflow:"unset"}},{empty:G(()=>[F(A,{message:t.$t("measure3d.empty")},{default:G(()=>[F(d,{name:"emptyBucket"})]),_:1},8,["message"])]),element:G(({element:C})=>[b("div",Aut,[b("div",uut,[F(c,{name:C.type,size:"m",margin:"0 12px 0 0"},null,8,["name"]),C.nameEditing?(x(),W(u,{key:0,ref:"elementInput",modelValue:C.name,"onUpdate:modelValue":y=>C.name=y,onBlur:y=>C.nameEditing=!1,onKeypress:Kt(y=>C.nameEditing=!1,["enter"])},null,8,["modelValue","onUpdate:modelValue","onBlur","onKeypress"])):(x(),U("span",{key:1,onClick:y=>s.onElementNameClick(C)},z(C.name),9,hut))]),b("div",put,[b("span",{class:"bimdata-measure3d__list__element__tag__content",style:pe(`color: ${C.color}; background-color: ${C.color}20;`),onClick:y=>s.onTagClick(C)},z(C.value)+" "+z(C.unit),13,gut),C.colorEditing?Bt((x(),W(h,{key:0,class:"bimdata-measure3d__list__element__tag__color-selector","selected-color":parseInt(C.color.slice(1),16),onColorSelect:y=>{C.color=`#${y.value.toString(16).padStart(6,0)}`,C.colorEditing=!1}},null,8,["selected-color","onColorSelect"])),[[v,()=>{C.colorEditing=!1}]]):he("",!0)]),b("div",fut,[F(a,{icon:"",class:"m-r-6",color:"granite",ghost:"",radius:"",onClick:y=>s.onHideMeasurementClick(C)},{default:G(()=>[C.visible?(x(),W(g,{key:0,size:"s"})):(x(),W(p,{key:1,size:"s"}))]),_:2},1032,["onClick"]),F(a,{icon:"",ghost:"",radius:"",color:"granite",onClick:y=>s.onDeleteMeasurementClick(C)},{default:G(()=>[F(m,{size:"m"})]),_:2},1032,["onClick"])])])]),_:1},8,["list"])])])}const vut=V(aut,[["render",mut],["__scopeId","data-v-b6e2d727"]]),Cut="Entfernungsmessung",yut="Winkelmessung",Iut="Messung",wut="Keine Messung",but="Abstand",But={distance_measurement:Cut,angle_measurement:yut,tooltip:Iut,empty:wut,spacing_measurement:but},Eut="Distance",kut="Angle",xut="Measurement",Qut="No measure",Mut="Spacing",Sut={distance_measurement:Eut,angle_measurement:kut,tooltip:xut,empty:Qut,spacing_measurement:Mut},Dut="Medir distancia",Put="Medici\xF3n angular",Rut="Medici\xF3n",Fut="Sin mediciones",Lut="Espaciado",Tut={distance_measurement:Dut,angle_measurement:Put,tooltip:Rut,empty:Fut,spacing_measurement:Lut},Nut="Distance",Uut="Angle",Out="Mesure",Hut="Pas de mesure",jut="Espacement",Gut={distance_measurement:Nut,angle_measurement:Uut,tooltip:Out,empty:Hut,spacing_measurement:jut},Vut="Misura distanza",qut="Misura angolo",_ut="Misura",zut="Nessuna misurazione",Kut={distance_measurement:Vut,angle_measurement:qut,tooltip:_ut,empty:zut},Jut={name:"measure3d",i18n:{de:But,en:Sut,es:Tut,fr:Gut,it:Kut},component:vut,addToWindows:["3d"],button:{tooltip:"measure3d.tooltip",position:"right",content:"panel",keepOpen:!0,icon:{component:"BIMDataIconMeasure",options:{size:"m"}}}},Yut={render(){return null},async onOpen({pagesToScan:t}={}){const e=this.$viewer.localContext.viewer,i=await e.exportAsPDF({pagesToScan:t});if(i){let r=this.$viewer.localContext.loadedModels[0];r.parent_id&&(r=e.pdfPages[0]);const o=document.createElement("a");o.href=URL.createObjectURL(i),o.download=r.document.file_name,o.click(),o.remove()}setTimeout(()=>this.$close())}},Wut="data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20preserveAspectRatio='xMidYMid%20meet'%20viewBox='-5%20-5%2034%2034'%20%3e%3cpath%20fill='%232F374A'%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",Zut={name:"pdfExport",component:Yut,addToWindows:["plan"],button:{position:"right",tooltip:"pdfExport.title",icon:{imgUri:Wut}},i18n:{en:{title:"PDF Export"},fr:{title:"Export PDF"}}},Xut={props:{width:{type:String,default:"32px"},height:{type:String,default:"32px"},accept:{type:String,default:""}},emits:["change"],methods:{onClick(){this.$refs.input.click()},onFileChange(t){const e=t.target.files&&t.target.files[0]?t.target.files[0]:null;this.$emit("change",e)}}},$ut=["accept"];function eht(t,e,i,r,o,s){const n=P("BIMDataIconAddFile"),a=P("BIMDataButton");return x(),W(a,{style:{padding:"5px"},width:i.width,height:i.height,color:"primary",outline:"",radius:"",icon:"",onClick:s.onClick},{default:G(()=>[F(n,{size:"xs"}),mt(t.$slots,"default"),b("input",{ref:"input",type:"file",hidden:"",accept:i.accept,onChange:e[0]||(e[0]=(...l)=>s.onFileChange&&s.onFileChange(...l))},null,40,$ut)]),_:3},8,["width","height","onClick"])}const tht=V(Xut,[["render",eht]]),iht={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(t){this.$viewer.localContext.hub.emit("alert",{type:"error",message:t&&t.message})},onSuccess(t){this.$viewer.localContext.hub.emit("alert",{type:"success",message:t&&t.message})},onSelectionChange(t){const e=t.map(({document:i})=>i);this.$emit("selection-change",e)}}};function rht(t,e,i,r,o,s){const n=P("BIMDataFileManager");return x(),W(n,{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:s.selectMode,multi:i.multiSelectMode,"header-buttons":i.headerButtons,"header-search":i.headerSearch,locale:t.$i18n.locale,"already-selected-ids":i.alreadySelectedIds,"selectable-file-types":i.selectableFileTypes,"view-pdf":"",onSelectionChange:s.onSelectionChange,onError:s.onError,onSuccess:s.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 QB=V(iht,[["render",rht]]),oht={components:{FileInput:tht,BIMDataGED:QB},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(t){t.name?this.pdfToView=t:this.pdfToView=this.file,this.back()}}},nht={class:"pdf-viewer"},sht={class:"pdf-viewer__content"},aht={key:1},lht={key:0,class:"pdf-viewer__content--empty"},cht={class:"flex items-center justify-center m-t-18"},dht={class:"m-l-6"},Aht={class:"m-l-6"},uht={key:1,class:"pdf-viewer__content--ged"},hht={class:"p-x-12"},pht={class:"pdf-viewer__content--ged__buttons flex items-center justify-between"};function ght(t,e,i,r,o,s){const n=P("BIMDataIconArrow"),a=P("BIMDataButton"),l=P("BIMDataPDFViewer",!0),c=P("BIMDataIllustration"),d=P("FileInput"),A=P("BIMDataIconFolder"),u=P("BIMDataGED");return x(),U("div",nht,[b("div",sht,[o.pdfToView?(x(),W(l,{key:0,pdf:o.pdfToView,header:""},{"header-left":G(()=>[F(a,{class:"m-l-12",width:"32px",height:"32px",color:"primary",ghost:"",radius:"",icon:"",onClick:s.onCloseClick},{default:G(()=>[F(n,{size:"xxs"})]),_:1},8,["onClick"])]),_:1},8,["pdf"])):(x(),U("div",aht,[o.isGedOpen?he("",!0):(x(),U("div",lht,[F(c,{name:"emptyPdf",x:"90",y:"90"}),b("h3",null,z(t.$t("pdf.title")),1),b("div",cht,[F(d,{accept:"application/pdf",onChange:s.loadFile},{default:G(()=>[b("div",dht,z(t.$t("pdf.empty")),1)]),_:1},8,["onChange"]),F(a,{class:"m-l-12",color:"primary",outline:"",radius:"",onClick:s.onOpenGedClick},{default:G(()=>[F(A,{fill:"",color:"default",size:"xxs"}),b("span",Aht,z(t.$t("pdf.openGed")),1)]),_:1},8,["onClick"])])])),o.isGedOpen?(x(),U("div",uht,[b("div",null,[b("h3",hht,z(t.$t("pdf.title")),1)]),F(u,{"header-buttons":!0,"single-select-mode":"","selectable-file-types":["pdf"],onSelectionChange:e[0]||(e[0]=h=>o.file=h[0])}),b("div",pht,[F(a,{class:"pdf-viewer__content--ged__validate",outline:"",color:"primary",radius:"",width:"48%",onClick:s.back},{default:G(()=>[b("span",null,z(t.$t("pdf.cancel")),1)]),_:1},8,["onClick"]),F(a,{class:"pdf-viewer__content--ged__validate",fill:"",color:"primary",radius:"",width:"48%",onClick:s.loadFile},{default:G(()=>[b("span",null,z(t.$t("pdf.validate")),1)]),_:1},8,["onClick"])])])):he("",!0)]))])])}const fht=V(oht,[["render",ght],["__scopeId","data-v-68ab9d79"]]),mht="PDF-Viewer",vht="Bitte w\xE4hlen Sie eine Datei aus oder legen Sie sie in diesem Fenster ab.",Cht="PDF-Viewer",yht="EDM \xF6ffnen",Iht="Abbrechen",wht="Best\xE4tigen",bht={window_label:mht,empty:vht,title:Cht,openGed:yht,cancel:Iht,validate:wht},Bht="PDF Viewer",Eht="No file selected. Please select a file or drag it on the window.",kht="PDF Viewer",xht="Files",Qht="Cancel",Mht="Validate",Sht={window_label:Bht,empty:Eht,title:kht,openGed:xht,cancel:Qht,validate:Mht},Dht="Visor de PDF",Pht="No hay ning\xFAn archivo seleccionado. Seleccione un archivo o arr\xE1strelo a la ventana.",Rht="Visor de PDF",Fht="Abrir la GED",Lht="Cancelar",Tht="Validar",Nht={window_label:Dht,empty:Pht,title:Rht,openGed:Fht,cancel:Lht,validate:Tht},Uht="Visionneuse PDF",Oht="Selectionner un fichier",Hht="Visionneuse PDF",jht="Ouvrir la GED",Ght="Annuler",Vht="Valider",qht={window_label:Uht,empty:Oht,title:Hht,openGed:jht,cancel:Ght,validate:Vht},_ht="Visualizzatore PDF",zht="Seleziona un file.",Kht={window_label:_ht,empty:zht},Jht="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",Yht={name:"pdf",i18n:{de:bht,en:Sht,es:Nht,fr:qht,it:Kht},component:fht,window:{name:"pdf",noModel:!0,label:"pdf.window_label",icon:{imgUri:Jht}}};function Wht(t){return function(e){return t?.[e]}}var Zht=Wht,Xht=Zht,$ht={\u00C0:"A",\u00C1:"A",\u00C2:"A",\u00C3:"A",\u00C4:"A",\u00C5:"A",\u00E0:"a",\u00E1:"a",\u00E2:"a",\u00E3:"a",\u00E4:"a",\u00E5:"a",\u00C7:"C",\u00E7:"c",\u00D0:"D",\u00F0:"d",\u00C8:"E",\u00C9:"E",\u00CA:"E",\u00CB:"E",\u00E8:"e",\u00E9:"e",\u00EA:"e",\u00EB:"e",\u00CC:"I",\u00CD:"I",\u00CE:"I",\u00CF:"I",\u00EC:"i",\u00ED:"i",\u00EE:"i",\u00EF:"i",\u00D1:"N",\u00F1:"n",\u00D2:"O",\u00D3:"O",\u00D4:"O",\u00D5:"O",\u00D6:"O",\u00D8:"O",\u00F2:"o",\u00F3:"o",\u00F4:"o",\u00F5:"o",\u00F6:"o",\u00F8:"o",\u00D9:"U",\u00DA:"U",\u00DB:"U",\u00DC:"U",\u00F9:"u",\u00FA:"u",\u00FB:"u",\u00FC:"u",\u00DD:"Y",\u00FD:"y",\u00FF:"y",\u00C6:"Ae",\u00E6:"ae",\u00DE:"Th",\u00FE:"th",\u00DF:"ss",\u0100:"A",\u0102:"A",\u0104:"A",\u0101:"a",\u0103:"a",\u0105:"a",\u0106:"C",\u0108:"C",\u010A:"C",\u010C:"C",\u0107:"c",\u0109:"c",\u010B:"c",\u010D:"c",\u010E:"D",\u0110:"D",\u010F:"d",\u0111:"d",\u0112:"E",\u0114:"E",\u0116:"E",\u0118:"E",\u011A:"E",\u0113:"e",\u0115:"e",\u0117:"e",\u0119:"e",\u011B:"e",\u011C:"G",\u011E:"G",\u0120:"G",\u0122:"G",\u011D:"g",\u011F:"g",\u0121:"g",\u0123:"g",\u0124:"H",\u0126:"H",\u0125:"h",\u0127:"h",\u0128:"I",\u012A:"I",\u012C:"I",\u012E:"I",\u0130:"I",\u0129:"i",\u012B:"i",\u012D:"i",\u012F:"i",\u0131:"i",\u0134:"J",\u0135:"j",\u0136:"K",\u0137:"k",\u0138:"k",\u0139:"L",\u013B:"L",\u013D:"L",\u013F:"L",\u0141:"L",\u013A:"l",\u013C:"l",\u013E:"l",\u0140:"l",\u0142:"l",\u0143:"N",\u0145:"N",\u0147:"N",\u014A:"N",\u0144:"n",\u0146:"n",\u0148:"n",\u014B:"n",\u014C:"O",\u014E:"O",\u0150:"O",\u014D:"o",\u014F:"o",\u0151:"o",\u0154:"R",\u0156:"R",\u0158:"R",\u0155:"r",\u0157:"r",\u0159:"r",\u015A:"S",\u015C:"S",\u015E:"S",\u0160:"S",\u015B:"s",\u015D:"s",\u015F:"s",\u0161:"s",\u0162:"T",\u0164:"T",\u0166:"T",\u0163:"t",\u0165:"t",\u0167:"t",\u0168:"U",\u016A:"U",\u016C:"U",\u016E:"U",\u0170:"U",\u0172:"U",\u0169:"u",\u016B:"u",\u016D:"u",\u016F:"u",\u0171:"u",\u0173:"u",\u0174:"W",\u0175:"w",\u0176:"Y",\u0177:"y",\u0178:"Y",\u0179:"Z",\u017B:"Z",\u017D:"Z",\u017A:"z",\u017C:"z",\u017E:"z",\u0132:"IJ",\u0133:"ij",\u0152:"Oe",\u0153:"oe",\u0149:"'n",\u017F:"s"},e1t=Xht($ht),t1t=e1t,i1t=typeof $n=="object"&&$n&&$n.Object===Object&&$n,iee=i1t,r1t=iee,o1t=typeof self=="object"&&self&&self.Object===Object&&self,n1t=r1t||o1t||Function("return this")(),jd=n1t,s1t=jd,a1t=s1t.Symbol,MB=a1t;function l1t(t,e){for(var i=-1,r=t==null?0:t.length,o=Array(r);++i<r;)o[i]=e(t[i],i,t);return o}var c1t=l1t,d1t=Array.isArray,SB=d1t,ree=MB,oee=Object.prototype,A1t=oee.hasOwnProperty,u1t=oee.toString,y8=ree?ree.toStringTag:void 0;function h1t(t){var e=A1t.call(t,y8),i=t[y8];try{t[y8]=void 0;var r=!0}catch{}var o=u1t.call(t);return r&&(e?t[y8]=i:delete t[y8]),o}var p1t=h1t,g1t=Object.prototype,f1t=g1t.toString;function m1t(t){return f1t.call(t)}var v1t=m1t,nee=MB,C1t=p1t,y1t=v1t,I1t="[object Null]",w1t="[object Undefined]",see=nee?nee.toStringTag:void 0;function b1t(t){return t==null?t===void 0?w1t:I1t:see&&see in Object(t)?C1t(t):y1t(t)}var I8=b1t;function B1t(t){return t!=null&&typeof t=="object"}var H2=B1t,E1t=I8,k1t=H2,x1t="[object Symbol]";function Q1t(t){return typeof t=="symbol"||k1t(t)&&E1t(t)==x1t}var M1t=Q1t,aee=MB,S1t=c1t,D1t=SB,P1t=M1t,R1t=1/0,lee=aee?aee.prototype:void 0,cee=lee?lee.toString:void 0;function dee(t){if(typeof t=="string")return t;if(D1t(t))return S1t(t,dee)+"";if(P1t(t))return cee?cee.call(t):"";var e=t+"";return e=="0"&&1/t==-R1t?"-0":e}var F1t=dee,L1t=F1t;function T1t(t){return t==null?"":L1t(t)}var N1t=T1t,U1t=t1t,O1t=N1t,H1t=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,j1t="\\u0300-\\u036f",G1t="\\ufe20-\\ufe2f",V1t="\\u20d0-\\u20ff",q1t=j1t+G1t+V1t,_1t="["+q1t+"]",z1t=RegExp(_1t,"g");function K1t(t){return t=O1t(t),t&&t.replace(H1t,U1t).replace(z1t,"")}var J1t=K1t;const Aee=p8(J1t),Y1t=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"}),W1t={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:"string"},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:Y1t}},watch:{edit(t){t?(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(t){t.keyCode===27?this.onCancel():t.keyCode===13&&!t.altKey&&!t.metaKey&&!t.ctrlKey&&!t.shiftKey&&this.onValidate()},onClick(){!this.disabled&&this.editOnClick&&!this.edit&&(this.edit=!0)},onRightClick(){const t=this.$viewer.contextMenu;t&&!this.disabled&&!this.loading&&this.editOnRightClick&&t.registerContextCommand({label:this.$t("global.edit"),execute:()=>this.edit=!0})},isIfcTypeFormatValid(t){switch(this.valueType){case"decimal_number":{const e=+t;return!isNaN(e)&&typeof e=="number"}case"positive_decimal_number":{const e=+t;return!isNaN(e)&&typeof e=="number"&&e>=0}case"decimal_range_0_1":{const e=+t;return!isNaN(e)&&typeof e=="number"&&0>=e&&e<=1}case"decimal_range_0_14":{const e=+t;return!isNaN(e)&&typeof e=="number"&&0>=e&&e<=14}case"integer":{const e=+t;return!isNaN(e)&&typeof e=="number"&&Number.isInteger(e)}case"positive_integer":{const e=+t;return!isNaN(e)&&typeof e=="number"&&Number.isInteger(e)&&e>=0}case"string":return typeof t=="string";case"string_max255":return typeof t=="string"&&t.length<255;case"boolean":return typeof t=="boolean"||t==="true"||t==="false";case"logical":return typeof t=="boolean"||t==="true"||t==="false"||t==="null"||t===null}},async onValidate(){const t=typeof this.validateCallbackArgs=="object"&&typeof this.validateCallbackArgs[Symbol.iterator]=="function"?this.validateCallbackArgs:[this.validateCallbackArgs],e=this.validateCallback(this.editedText,this.isIfcTypeFormatValid(this.editedText),...t);let i=null;typeof e.then=="function"?(this.loading=!0,i=await e,this.loading=!1):i=e,this.edit=!1,i?(this.success=!0,setTimeout(()=>this.success=null,500)):(this.error=!0,setTimeout(()=>this.error=null,500))},onCancel(){this.edit=!1},isValidUrl(t){return typeof t=="string"&&t.match("://")},ifcTypeFormat(t){return this.types[t]??"string"}}},Z1t={key:0,class:"editable-label__input"},X1t={class:"flex justify-between items-center"},$1t={key:0,class:"editable-label__input--buttons flex m-l-6"},e0t={class:"editable-label__text flex items-center"},t0t=["href"];function i0t(t,e,i,r,o,s){const n=P("BIMDataInput"),a=P("BIMDataIconValidate"),l=P("BIMDataButton"),c=P("BIMDataIconClose"),d=P("BIMDataIconEdit"),A=Ti("click-away");return Bt((x(),U("div",{class:ge(["editable-label",{disabled:i.disabled}]),onClick:e[1]||(e[1]=(...u)=>s.onClick&&s.onClick(...u)),onContextmenu:e[2]||(e[2]=wt((...u)=>s.onRightClick&&s.onRightClick(...u),["right"]))},[o.edit?(x(),U("div",Z1t,[b("div",X1t,[F(n,{ref:"input",modelValue:o.editedText,"onUpdate:modelValue":e[0]||(e[0]=u=>o.editedText=u),loading:o.loading,disabled:o.loading||i.disabled,margin:"0px"},null,8,["modelValue","loading","disabled"]),o.loading?he("",!0):(x(),U("div",$1t,[F(l,{color:"primary",ghost:"",rounded:"",icon:"",onClick:wt(s.onValidate,["stop"])},{default:G(()=>[F(a,{size:"xxs",class:"fill-primary"})]),_:1},8,["onClick"]),F(l,{color:"primary",ghost:"",rounded:"",icon:"",onClick:wt(s.onCancel,["stop"])},{default:G(()=>[F(c,{size:"xxxs",class:"fill-primary"})]),_:1},8,["onClick"])]))]),b("span",{class:ge({error:!s.isIfcTypeFormatValid(o.editedText)})},z(t.$t("properties.requested_format"))+" "+z(t.$t(`properties.${s.ifcTypeFormat(i.valueType)}`)),3)])):he("",!0),b("div",e0t,[!o.edit&&i.editOnClick?(x(),W(d,{key:0,size:"xxs",color:"granite",margin:"0 8px 0 0"})):he("",!0),!o.edit&&s.isValidUrl(i.text)?(x(),U("a",{key:1,target:"_blank",href:i.text},z(i.text),9,t0t)):he("",!0),!o.edit&&!s.isValidUrl(i.text)?(x(),U("span",{key:2,class:ge({error:o.error,success:o.success})},z(`${i.text!=null?i.text:""} ${i.units}`),3)):he("",!0)])],34)),[[A,()=>i.cancelOnClickAway&&!o.loading&&(o.edit=!1)]])}const r0t=V(W1t,[["render",i0t]]),o0t={name:"BimdataProperties",components:{BIMDataEditableLabel:r0t},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 Aee(this.filter).toLowerCase()}},watch:{highlightedProperties(){var t,e;this.highlightedProperties.length===0&&((e=(t=Object.values(this.$refs)[0])==null?void 0:t[0])==null||e.scrollIntoView())},selectedObject:{async handler(t){t?this.displayedElement=await this.getDisplayedElement(t):this.displayedElement=null},immediate:!0},filter(t){t?this.highlightedProperties=n0t(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(t){var e,i;if(t.key==="Enter"&&this.highlightedProperties.length>0){let r=(e=this.$refs[this.highlightedProperties[0].ref])==null?void 0:e[0];r||(this.highlightedProperties[0].parent.displayed=!0,await this.$nextTick(),r=(i=this.$refs[this.highlightedProperties[0].ref])==null?void 0:i[0]),r&&r.scrollIntoView(),this.highlightedProperties.push(this.highlightedProperties.shift())}},async onValidate(t,e,i,r){const o={...i,value:t};delete o.parent,this.editLoading=!0;try{const s=this.$viewer.api.cloudId,n=this.$viewer.api.projectId,a=this.displayedElement.stateObject.model.id;e?(await this.$viewer.api.apiClient.modelApi.updateElementPropertySetProperty(s,this.displayedElement.uuid,i.id,a,n,r,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(t){let e=null;if(!t.uuid)console.warn("Impossible to show properties of the selected state object because it has no uuid.");else{this.loading=!0;try{const i=await this.$viewer.api.apiClient.modelApi.getElement(this.$viewer.api.cloudId,t.model.id,this.$viewer.api.projectId,t.uuid);e={properties:a0t(i,this),stateObject:t,uuid:t.uuid}}catch(i){console.error(i)}finally{this.loading=!1}}return e},onPropertiesEdited({object:t,author:e}){var i;e!==this&&((i=this.displayedElement)==null?void 0:i.uuid)===t.uuid&&this.refreshDisplayedElement()}}};function n0t(t){const e=[];return t.forEach(i=>{i.highlighted&&e.push(i),e.push(...i.children.filter(r=>r.highlighted))}),e}const uee={GRAY:"Gy",BECQUEREL:"Bq",MOLE:"mole",SQUARE_METRE:"m\xB2",FARAD:"F",DEGREE_CELSIUS:"\xBAC",DEGREE:"\xB0",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\xB3"},hee={KILO:"k",DECA:"da",CENTI:"c",MILLI:"m",MEGA:"M",GIGA:"M",HECTO:"h",DEKA:"da",DECI:"d",MICRO:"\u03BC"};function pee({id:t,property_set_id:e,definition:i,value:r,nonEditable:o},s,n,a){var l,c;let d=((l=i.unit)==null?void 0:l.name)||"",A=((c=i.unit)==null?void 0:c.prefix)||"";A&&hee[A]&&(A=hee[A]),d&&uee[d]&&(d=uee[d]);let u=A+d,h;const g=`properties.attributes_name.${i.name}`,p=i.value_type;return a.name==="Attributs"&&n.$viewer.i18n.$te(g)?h=n.$viewer.i18n.$t(g):h=i.name,{id:t,ref:s,property_set_id:e,name:h,value:r,valueType:p,unit:u,nonEditable:o,searchContent:Aee(`${h||""}${r||""} ${u}`).toLowerCase(),get highlighted(){return n.filter!==""&&this.searchContent.includes(n.slugFilter)},parent:a}}function s0t(t){const e=t.attributes.properties;e.id=t.attributes.id;const i=e.findIndex(r=>r.definition.name==="type");return i!==-1&&e.splice(i,1),e.push({definition:{name:"type"},value:t.type,nonEditable:!0}),e.push({definition:{name:"UUID"},value:t.uuid,nonEditable:!0}),e}function a0t(t,e){let i=1;const r=[],o=s0t(t),{classifications:s,property_sets:n}=t;if(o){const a={id:o.id,ref:`element${i++}`,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=>pee(l,`element${i++}`,e,a)),r.push(a)}if(s?.length>0){const a={ref:`element${i++}`,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=s.map(l=>({...l,searchContent:`${l.name||""} ${l.notation||""} - ${l.title||""}
80
+ --dashoffset-to: ${i.dashOffsetTo};`),onAnimationiteration:e[0]||(e[0]=n=>t.$emit("lap",(i.delay*i.laps-n.elapsedTime)/i.delay)),onAnimationend:e[1]||(e[1]=n=>t.$emit("stop"))},null,44,Kat)],8,zat)),b("div",{class:"bimdata-pie-spinner__inside",style:pe({width:i.width+"px",height:i.width+"px"})},[mt(t.$slots,"default",{},void 0,!0)],4)])}const Yat=V(qat,[["render",Jat],["__scopeId","data-v-70da4628"]]),Wat={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)}}},Zat=["disabled"],Xat={class:"bimdata-radio__text"};function $at(t,e,i,r,o,s){return x(),U("button",{type:"button",class:ge(["bimdata-radio",{disabled:i.disabled,"bimdata-radio--checked":s.checked,"bimdata-radio--big":i.big}]),disabled:i.disabled,onClick:e[0]||(e[0]=(...n)=>s.onClick&&s.onClick(...n))},[e[1]||(e[1]=b("div",{class:"bimdata-radio__btn"},[b("div",{class:"bimdata-radio__background"}),b("div",{class:"bimdata-radio__circle"}),b("div",{class:"bimdata-radio__dot"})],-1)),b("div",Xat,[mt(t.$slots,"default",{},()=>[st(z(i.text),1)],!0)])],10,Zat)}const elt=V(Wat,[["render",$at],["__scopeId","data-v-91eb0639"]]),tlt={props:{itemWidth:{type:String,default:"100px"},rowGap:{type:String,default:"12px"},columnGap:{type:String,default:"12px"},isRepeatFit:{type:Boolean,default:!1}}};function ilt(t,e,i,r,o,s){return x(),U("div",{class:"bimdata-responsive-grid",style:pe({gridTemplateColumns:i.isRepeatFit?`repeat(auto-fit, minmax(${i.itemWidth}, 1fr))`:`repeat(auto-fill, minmax(${i.itemWidth}, 1fr))`,rowGap:i.rowGap,columnGap:i.columnGap})},[mt(t.$slots,"default",{},void 0,!0)],4)}const rlt=V(tlt,[["render",ilt],["__scopeId","data-v-b626b0fb"]]),olt={components:{BIMDataIconClose:kB,BIMDataButton:ta},props:{reverse:{type:Boolean,default:!1}},emits:["confirm-delete","cancel-delete"]},nlt={class:"safe-zone-inline"};function slt(t,e,i,r,o,s){const n=P("BIMDataButton"),a=P("BIMDataIconClose");return x(),U("div",nlt,[F(n,{class:"safe-zone-inline__btn-delete",color:"high",fill:"",radius:"",onClick:e[0]||(e[0]=l=>t.$emit("confirm-delete"))},{default:G(()=>[mt(t.$slots,"content",{},()=>[e[2]||(e[2]=st("Delete"))],!0)]),_:3}),F(n,{class:"safe-zone-inline__btn-close",style:pe({width:"15px",order:i.reverse?-1:0}),width:"0px",radius:"",onClick:e[1]||(e[1]=l=>t.$emit("cancel-delete"))},{default:G(()=>[F(a,{size:"xxs",color:"granite"})]),_:1},8,["style"])])}const alt=V(olt,[["render",slt],["__scopeId","data-v-b2effc6d"]]),llt={components:{BIMDataIconClose:kB,BIMDataIconSearch:rT,BIMDataButton:ta},directives:{focus:{inserted:function(t,{value:e}){e&&t.focus()}},clickaway:Hd},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:t=>YL.includes(t)},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")}}},clt={class:"bimdata-search-icon"},dlt=["value","placeholder","autocomplete","disabled"];function Alt(t,e,i,r,o,s){const n=P("BIMDataIconSearch"),a=P("BIMDataIconClose"),l=P("BIMDataButton"),c=Ti("focus"),d=Ti("clickaway");return Bt((x(),U("div",{class:ge(["bimdata-search-bar",{focus:o.focused,disabled:i.disabled,...s.classes}]),style:pe({width:i.width,height:i.height})},[b("span",clt,[F(n,{size:"xxs"})]),Bt(b("input",{ref:"input",value:i.modelValue,onFocus:e[0]||(e[0]=A=>o.focused=!0),onBlur:e[1]||(e[1]=A=>o.focused=!1),onInput:e[2]||(e[2]=A=>t.$emit("update:modelValue",A.target.value)),placeholder:i.placeholder,onKeyup:e[3]||(e[3]=Kt(A=>t.$emit("enter",A.target.value),["enter"])),autocomplete:i.autocomplete?"on":"off",disabled:i.disabled},null,40,dlt),[[c,i.autofocus]]),i.clear&&i.modelValue!==""?(x(),W(l,{key:0,width:"25px",onClick:e[4]||(e[4]=A=>s.clickClear())},{default:G(()=>[F(a,{size:"xxs"})]),_:1})):he("",!0)],6)),[[d,s.away]])}const ult=V(llt,[["render",Alt],["__scopeId","data-v-c3818791"]]),hlt={components:{BIMDataIconDefault:T$,BIMDataIconSearch:rT,BIMDataTextbox:xB},directives:{clickaway:Hd},props:{items:{type:Array,required:!0,default:()=>[]},isAllResultatsBtnActive:{type:Boolean,required:!1,default:!0},perPage:{type:Number,default:10,validator:t=>t>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 t=["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(i=>t.some(r=>typeof i[r]=="string"?i[r].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(t){this.$emit("item-click",t),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}}},plt={class:"bimdata-search-autocomplete"},glt={class:"bimdata-search-autocomplete__input flex items-center"},flt={class:"bimdata-search-icon flex"},mlt=["placeholder"],vlt={class:"bimdata-list p-y-6"},Clt={key:0,class:"loading"},ylt=["onClick"],Ilt={class:"bimdata-search-autocomplete__dropdown__left m-r-12"},wlt=["src"],blt={class:"bimdata-search-autocomplete__dropdown__right flex flex-col"},Blt={key:0,class:"title"},Elt={key:1,class:"text"};function klt(t,e,i,r,o,s){const n=P("BIMDataIconSearch"),a=P("BIMDataIconDefault"),l=P("BIMDataTextbox"),c=Ti("clickaway");return Bt((x(),U("div",plt,[b("div",glt,[b("span",flt,[F(n,{fill:"",color:"default",size:"xxs"})]),Bt(b("input",{class:"form-control p-l-36 p-r-12",type:"text","onUpdate:modelValue":e[0]||(e[0]=d=>o.search=d),placeholder:i.placeholder,onKeydown:[e[1]||(e[1]=Kt((...d)=>s.onEnter&&s.onEnter(...d),["enter"])),e[2]||(e[2]=Kt((...d)=>s.onArrowDown&&s.onArrowDown(...d),["down"])),e[3]||(e[3]=Kt((...d)=>s.onArrowUp&&s.onArrowUp(...d),["up"]))],onInput:e[4]||(e[4]=(...d)=>s.onChange&&s.onChange(...d)),onFocus:e[5]||(e[5]=(...d)=>s.focus&&s.focus(...d))},null,40,mlt),[[fp,o.search]])]),b("div",{class:ge(["bimdata-search-autocomplete__dropdown",{open:s.openResults}])},[b("ul",vlt,[i.loading?(x(),U("li",Clt,[mt(t.$slots,"loading",{},()=>[e[7]||(e[7]=b("p",{class:"text-center"},"loading results...",-1))],!0)])):(x(!0),U(ht,{key:1},Ht(s.results,(d,A)=>(x(),U("li",{key:A,class:ge([{active:A===o.current},"p-y-6 p-x-12 flex items-center"]),onClick:u=>s.onElementClick(d)},[mt(t.$slots,"left",{result:d},()=>[b("div",Ilt,[d&&d.logo?(x(),U("img",{key:0,class:"logo",src:d.logo},null,8,wlt)):mt(t.$slots,"logoPlaceholder",{key:1},()=>[F(a,{fill:"",color:"default"})],!0)])],!0),b("div",blt,[d&&d.title?(x(),U("span",Blt,z(d.title),1)):he("",!0),d&&d.text?(x(),U("span",Elt,[F(l,{text:d.text,width:"260px",cutPosition:"end",tooltip:!1},null,8,["text"])])):he("",!0)])],10,ylt))),128))]),i.isAllResultatsBtnActive?(x(),U("div",{key:0,class:"bimdata-search-autocomplete__dropdown__button flex items-center justify-center",onClick:e[6]||(e[6]=(...d)=>s.onAllResultatsBtnClick&&s.onAllResultatsBtnClick(...d))},' See all results for "'+z(o.search)+'" ',1)):he("",!0)],2)])),[[c,s.away]])}const xlt=V(hlt,[["render",klt],["__scopeId","data-v-b485ea22"]]),Qlt={components:{BIMDataCheckbox:BB,BIMDataIconChevron:Gc},directives:{clickaway:Hd},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 t=this.searchText.toLowerCase();return this.optionLabelKey?this.options.filter(e=>e[this.optionLabelKey].toLowerCase().includes(t)):this.optionKey?this.options.filter(e=>e.optionGroup||e[this.optionKey].toLowerCase().includes(t)):this.options.filter(e=>e.toLowerCase().includes(t))}}},methods:{toggle(){this.disabled||(this.isOpen=!this.isOpen)},optionValue(t){return this.optionKey&&t?t[this.optionKey]:t},optionLabel(t){return this.nullLabel&&t==null?this.nullLabel:this.optionLabelKey&&t?t[this.optionLabelKey]:this.optionKey&&t?t[this.optionKey]:t},isSelected(t){const e=this.optionValue(t);return this.modelValue.map(this.optionValue).includes(e)},isDisabled(t){return this.optionKey&&t&&t.disabled},isOptionGroup(t){return this.optionKey&&t&&t.optionGroup},onOptionClick(t){if(this.optionKey&&(t.disabled||t.optionGroup))return;let e;if(this.isSelected(t)){const i=this.optionValue(t);e=this.modelValue.filter(r=>this.optionValue(r)!==i)}else e=this.modelValue.concat(t);this.$emit("update:modelValue",e)},resetSearch(){this.clearSearchOnLeave&&(this.searchText="")},away(){this.isOpen=!1,this.resetSearch()}}},Mlt={class:"bimdata-select__content"},Slt={class:"bimdata-select__content__label"},Dlt={class:"bimdata-select__option-list"},Plt={key:1},Rlt={class:"bimdata-list m-y-6"},Flt=["onClick"];function Llt(t,e,i,r,o,s){const n=P("BIMDataIconChevron"),a=P("BIMDataSearch"),l=P("BIMDataCheckbox"),c=Ti("clickaway");return Bt((x(),U("div",{class:ge(["bimdata-select",{disabled:i.disabled,active:o.isOpen,"not-empty":i.modelValue.length>0}]),style:pe({width:i.width})},[b("div",Mlt,[b("div",{class:"bimdata-select__content__value",onClick:e[0]||(e[0]=(...d)=>s.toggle&&s.toggle(...d))},[b("span",null,z(s.displayedValue),1),F(n,{size:"xxs",rotate:o.isOpen?90:0},null,8,["rotate"])]),b("label",Slt,z(i.label),1),e[2]||(e[2]=b("span",{class:"bimdata-select__content__underline"},null,-1))]),F(lr,{name:"slide-fade-down"},{default:G(()=>[Bt(b("div",Dlt,[i.search?(x(),W(a,{key:0,width:"calc(100% - 12px)",color:"primary",radius:"",placeholder:i.searchPlaceholder,modelValue:o.searchText,"onUpdate:modelValue":e[1]||(e[1]=d=>o.searchText=d),class:"m-6"},null,8,["placeholder","modelValue"])):he("",!0),s.filteredOptions.length===0?(x(),U("div",Plt,[mt(t.$slots,"empty",{},void 0,!0)])):he("",!0),b("ul",Rlt,[(x(!0),U(ht,null,Ht(s.filteredOptions,(d,A)=>(x(),U("li",{class:ge(["bimdata-select__option-list__entry",{selected:s.isSelected(d),disabled:s.isDisabled(d),"option-group":s.isOptionGroup(d)}]),key:A,onClick:u=>s.onOptionClick(d)},[s.isOptionGroup(d)?(x(),U(ht,{key:0},[st(z(s.optionLabel(d)),1)],64)):(x(),W(l,{key:1,modelValue:s.isSelected(d),disabled:s.isDisabled(d),text:s.optionLabel(d)},null,8,["modelValue","disabled","text"]))],10,Flt))),128))])],512),[[ni,!i.disabled&&o.isOpen]])]),_:3})],6)),[[c,s.away]])}const X$=V(Qlt,[["render",Llt],["__scopeId","data-v-cfb01881"]]),Tlt={components:{BIMDataIconChevron:Gc},directives:{clickaway:Hd},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 t=this.searchText.toLowerCase();return this.optionLabelKey?this.options.filter(e=>e[this.optionLabelKey].toLowerCase().includes(t)):this.optionKey?this.options.filter(e=>e.optionGroup||e[this.optionKey].toLowerCase().includes(t)):this.options.filter(e=>e.toLowerCase().includes(t))}}},methods:{toggle(){this.disabled||(this.isOpen=!this.isOpen)},optionValue(t){return this.optionKey&&t?t[this.optionKey]:t},optionLabel(t){return this.nullLabel&&t==null?this.nullLabel:this.optionLabelKey&&t?t[this.optionLabelKey]:this.optionKey&&t?t[this.optionKey]:t},isSelected(t){const e=this.optionValue(t);return this.optionValue(this.modelValue)===e},isDisabled(t){return this.optionKey&&t&&t.disabled},isOptionGroup(t){return this.optionKey&&t&&t.optionGroup},resetSearch(){this.clearSearchOnLeave&&(this.searchText="")},onOptionClick(t){this.optionKey&&(t.disabled||t.optionGroup)||(this.$emit("update:modelValue",t),this.resetSearch(),this.isOpen=!1)},onNullValueClick(){this.$emit("update:modelValue",null),this.resetSearch(),this.isOpen=!1},away(){this.isOpen=!1,this.resetSearch()}}},Nlt={class:"bimdata-select__content"},Ult={class:"bimdata-select__content__label"},Olt={class:"bimdata-select__option-list"},Hlt={key:1},jlt={class:"bimdata-list m-y-6"},Glt=["onClick"];function Vlt(t,e,i,r,o,s){const n=P("BIMDataIconChevron"),a=P("BIMDataSearch"),l=Ti("clickaway");return Bt((x(),U("div",{class:ge(["bimdata-select",{disabled:i.disabled,active:o.isOpen,"not-empty":i.modelValue!==void 0&&i.modelValue!==null}]),style:pe({width:i.width})},[b("div",Nlt,[b("div",{class:"bimdata-select__content__value",onClick:e[0]||(e[0]=(...c)=>s.toggle&&s.toggle(...c))},[b("span",null,z(s.displayedValue),1),F(n,{size:"xxs",rotate:o.isOpen?90:0},null,8,["rotate"])]),b("label",Ult,z(i.label),1),e[3]||(e[3]=b("span",{class:"bimdata-select__content__underline"},null,-1))]),F(lr,{name:"slide-fade-down"},{default:G(()=>[Bt(b("div",Olt,[i.search?(x(),W(a,{key:0,width:"calc(100% - 12px)",color:"primary",radius:"",placeholder:i.searchPlaceholder,modelValue:o.searchText,"onUpdate:modelValue":e[1]||(e[1]=c=>o.searchText=c),class:"m-6"},null,8,["placeholder","modelValue"])):he("",!0),s.filteredOptions.length===0?(x(),U("div",Hlt,[mt(t.$slots,"empty",{},void 0,!0)])):he("",!0),b("ul",jlt,[i.nullValue?(x(),U("li",{key:0,class:"bimdata-select__option-list__entry",onClick:e[2]||(e[2]=c=>s.onNullValueClick())},z(i.nullLabel||"None"),1)):he("",!0),(x(!0),U(ht,null,Ht(s.filteredOptions,(c,d)=>(x(),U("li",{class:ge(["bimdata-select__option-list__entry",{selected:s.isSelected(c),disabled:s.isDisabled(c),"option-group":s.isOptionGroup(c)}]),key:d,onClick:A=>s.onOptionClick(c)},z(s.optionLabel(c)),11,Glt))),128))])],512),[[ni,!i.disabled&&o.isOpen]])]),_:3})],6)),[[l,s.away]])}const $$=V(Tlt,[["render",Vlt],["__scopeId","data-v-53825b9f"]]),qlt={components:{BIMDataSelectMulti:X$,BIMDataSelectSingle:$$},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(t,{emit:e,slots:i}){return()=>_o(t.multi?X$:$$,{...t,"onUpdate:modelValue":r=>e("update:modelValue",r)},{empty:()=>{var r;return(r=i.empty)==null?void 0:r.call(i)}})}},_lt={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 t=this.barStrokeWidth/2-4,e=this.barDistanceFromCenter*2*Math.PI;return t/e*100},center(){return this.viewBoxSize/2},displayedBarsData(){let t=0;return this.barsData.map(e=>{const i={...e,previousPercentageSum:t};return t+=+e.percentage,i})},viewBoxSize(){return this.barDistanceFromCenter*2+this.barStrokeWidth},viewBox(){return`0 0 ${this.viewBoxSize} ${this.viewBoxSize}`}},methods:{getPath(t){let e=t.percentage-2*this.roundCapPercentageOffset,i=t.previousPercentageSum+this.roundCapPercentageOffset;+t.percentage==100&&(e=99.999,i=0);const r=this.getPercentagePosition(i),o=this.barDistanceFromCenter;return`M${r.x},${r.y} A${o} ${o} 0 ${this.getTarget(e,i)}`},getPercentagePosition(t){const e=this.barDistanceFromCenter,i=t/100*Math.PI*2-Math.PI/2,r=e*Math.cos(i)+this.center,o=e*Math.sin(i)+this.center;return{x:r,y:o}},getTarget(t,e){const i=t>50?1:0,{x:r,y:o}=this.getPercentagePosition(t+e);return`${i} 1 ${r},${o}`}}},zlt={class:"bimdata-simple-pie-chart",ref:"container"},Klt=["viewBox"],Jlt=["cx","cy","r","stroke-width","stroke"],Ylt=["d","stroke-width","stroke"];function Wlt(t,e,i,r,o,s){return x(),U("div",zlt,[(x(),U("svg",{viewBox:s.viewBox,style:pe(`--graph-draw-time: ${i.graphDrawTime}s;`)},[i.placeholder?(x(),U("circle",{key:0,cx:s.center,cy:s.center,r:i.barDistanceFromCenter,"stroke-width":i.placeholderStrokeWidth,stroke:i.placeholderColor,fill:"none"},null,8,Jlt)):he("",!0),(x(!0),U(ht,null,Ht(s.displayedBarsData,(n,a)=>(x(),U("g",{key:a},[n.percentage>0?(x(),U("path",{key:0,class:"path",d:s.getPath(n),"stroke-width":i.barStrokeWidth,stroke:n.color,fill:"none"},null,8,Ylt)):he("",!0)]))),128))],12,Klt))],512)}const Zlt=V(_lt,[["render",Wlt],["__scopeId","data-v-4572e7e7"]]),Xlt={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 t=this.$refs.input;if(!t)return null;const e=+t.min||0,i=+t.max||100;return(+t.value-e)/(i-e)*100},onInput(t){this.$emit("update:modelValue",+t.target.value)},getTooltipPosition(){const t=this.min?this.min:0,e=this.max?this.max:100,i=Number((this.modelValue-t)*100/(e-t));this.tooltipPosition=`calc(${i}% + (${8-i*.18}px))`}}},$lt={class:"bimdata-slider"},ect=["min","max","step","value","disabled"];function tct(t,e,i,r,o,s){return x(),U("div",$lt,[b("input",{ref:"input",class:"bimdata-slider-input",type:"range",style:pe(`--background-size: ${o.backgroundSize}%`),min:i.min,max:i.max,step:i.step,value:i.modelValue,disabled:i.disabled,onInput:e[0]||(e[0]=(...n)=>s.onInput&&s.onInput(...n))},null,44,ect),i.tooltip?(x(),U("output",{key:0,class:"bimdata-slider-tooltip",style:pe({left:o.tooltipPosition})},z(i.modelValue),5)):he("",!0)])}const ict=V(Xlt,[["render",tct],["__scopeId","data-v-de9cce2c"]]);function rct(t,e,{rowSelectionUpdateEffect:i=()=>{},rowSelectionToggleEffect:r=()=>{},fullSelectionToggleEffect:o=()=>{}}={}){const s=Le(new Map);return Dt(t,()=>{s.value=new Map(t.value.filter(({key:n})=>e.value.has(n)).map(({key:n,data:a})=>[n,a]))},{immediate:!0}),Dt(e,()=>{s.value=e.value},{immediate:!0}),Dt(s,()=>{i(s.value)}),{rowSelection:s,toggleRowSelection:({key:n,data:a})=>{const l=()=>s.value.has(n);l()?s.value.delete(n):s.value.set(n,a),s.value=new Map([...s.value.entries()]),r(l(),{key:n,data:a})},toggleFullSelection:()=>{const n=()=>s.value.size>0;n()?s.value=new Map:s.value=new Map(t.value.map(({key:a,data:l})=>[a,l])),o(n())}}}const oct={components:{BIMDataButton:ta,BIMDataIconCaret:tT},props:{sortOrder:{type:String,required:!0,validator:t=>["asc","desc"].includes(t)},index:{type:Number,required:!0},active:{type:Boolean,required:!0}},setup(t,{emit:e}){return{toggleActive:()=>{e("set-active",t.index)}}}};function nct(t,e,i,r,o,s){const n=P("BIMDataIconCaret"),a=P("BIMDataButton");return x(),U("span",{class:ge([i.sortOrder==="asc"?"asc":"desc","m-l-6"]),onMousedown:e[0]||(e[0]=wt(()=>{},["prevent"]))},[F(a,{color:"primary",ghost:"",rounded:"",icon:"",class:ge({active:i.active}),onClick:r.toggleActive},{default:G(()=>[F(n,{rotate:i.sortOrder==="desc"?180:0,size:"xxxs",fill:"",color:"default"},null,8,["rotate"])]),_:1},8,["class","onClick"])],34)}const sct=V(oct,[["render",nct],["__scopeId","data-v-cddfddda"]]),act={components:{BIMDataCheckbox:BB},props:{column:{type:Object,required:!0},columnData:{type:Array,required:!0},filters:{type:Array,required:!0}},emits:["filter"],setup(t,{emit:e}){const i=t.column,r=lt(()=>{const o=t.columnData.filter(s=>s!==null);return[...new Set(o.flatMap(s=>typeof i.filterFunction=="function"?i.filterFunction(s):(Array.isArray(s)||(s=[s]),i!=null&&i.filterKey?s.map(n=>n[i?.filterKey]):s)))]});return{columnElements:lt(()=>r.value.map(o=>({data:o,checked:t.filters.includes(o)}))),toggle:(o,s)=>{const n=new Set(t.filters);s?n.add(o):n.delete(o),e("filter",[...n])}}}},lct={class:"column-filters p-12"},cct={key:0,class:"column-filters__element flex align-center"};function dct(t,e,i,r,o,s){const n=P("BIMDataCheckbox");return x(),U("div",lct,[r.columnElements.length===0?(x(),U("div",cct,[mt(t.$slots,"column-filter-empty",{},void 0,!0)])):he("",!0),(x(!0),U(ht,null,Ht(r.columnElements,a=>(x(),U("div",{key:a.data,class:"column-filters__element flex align-center"},[F(n,{text:a.data,modelValue:a.checked,"onUpdate:modelValue":l=>r.toggle(a.data,l)},null,8,["text","modelValue","onUpdate:modelValue"])]))),128))])}const Act=V(act,[["render",dct],["__scopeId","data-v-6192724c"]]),uct={components:{BIMDataButton:ta,BIMDataCheckbox:BB,BIMDataIconCaret:tT,BIMDataIconChevron:Gc,ColumnSorting:sct,ColumnFilters:Act},directives:{clickaway:Hd},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(t,{emit:e}){const i=lt(()=>t.rows.map((D,R)=>({key:D[t.rowKey]??R,data:D}))),{rowSelection:r,toggleRowSelection:o,toggleFullSelection:s}=rct(i,lt(()=>t.selection),{rowSelectionUpdateEffect:D=>{e("update:selection",D),e("selection-changed",Array.from(D.values()))},rowSelectionToggleEffect:(D,{data:R})=>{e(D?"row-selected":"row-deselected",R)},fullSelectionToggleEffect:D=>{e(D?"all-selected":"all-deselected")}}),n=lt(()=>r.value.size<t.rows.length?r.value.size>0?null:!1:r.value.size>0),a=D=>{t.selectable&&o(D)},l=()=>{t.selectable&&s()},c=(D,R)=>{t.canDragOverRow(D)&&(e("row-drop",{data:D,event:R}),d.value=null)},d=Le(null),A=(D,R,T)=>{t.canDragOverRow(R)&&(T.preventDefault(),d.value=D)},u=()=>{d.value=null},h=Le(null),g=D=>{h.value===D.id?h.value=null:h.value=D.id},p=D=>{D.id===h.value&&(h.value=null)},m=Ra({column:null,order:null}),f=Le([]),v=lt(()=>{if(m.column){const D=m.order!=="desc"?1:-1;if(m.column.sortFunction){const R=(T,H)=>m.column.sortFunction(T.data,H.data)*D;return Array.from(i.value).sort(R)}else return Array.from(i.value).sort((R,T)=>R.data[m.column.id]<T.data[m.column.id]?D:R.data[m.column.id]>T.data[m.column.id]?-D:0)}return f.value.length>0?Array.from(i.value).filter(D=>D.data[f.value[0].id]===f.value[0].text):i.value}),C=D=>{m.column===D?m.order=m.order==="asc"?"desc":"asc":(m.column=D,m.order=D.defaultSortOrder??"asc")},y=Le([]),I=lt(()=>v.value.filter(D=>y.value.every(R=>{const T=t.columns.find(q=>q.id===R.columnKey),H=D.data[R.columnKey];if(H!==null)return Array.isArray(H)?H.some(q=>R.columnFilters.includes(typeof T.filterFunction=="function"?T.filterFunction(q):T.filterKey?q[T.filterKey]:q)):R.columnFilters.includes(typeof T.filterFunction=="function"?T.filterFunction(H):T.filterKey?H[T.filterKey]:H)}))),B=(D,R)=>{y.value=y.value.filter(T=>T.columnKey!==D.id),R.length>0&&y.value.push({columnKey:D.id,columnFilters:R})},E=Le([]),k=Le(0),Q=Le(1),S=Le(t.perPage);return Dt([I,()=>t.perPage],()=>{k.value=0},{immediate:!0}),Dt([I,()=>t.paginated,()=>t.perPage,k],([D,R,T,H])=>{const q=D.map(O=>O.key);if(R){const O=T*H,j=O+T;E.value=q.slice(O,j),Q.value=O+1,S.value=Math.min(j,D.length)}else E.value=q},{immediate:!0}),{activeHeadercolumnKey:null,computedRows:i,paginatedRows:E,pageIndex:k,pageIndexEnd:S,pageIndexStart:Q,rowSelection:r,dragOveredRowKey:d,displayedColumnFilterId:h,filteringColumns:f,filters:y,selectionState:n,sortObject:m,awayFromFilter:p,onDrop:c,onDragover:A,onDragleave:u,toggleAll:l,toggleRow:a,toggleSorting:C,updateFilters:B,toggleFiltersMenu:g,displayedRows:I}}},hct={class:"bimdata-table"},pct={key:0,class:"cell-checkbox"},gct={style:{display:"inline-flex","align-items":"center"}},fct={key:1},mct={key:"head-row-1"},vct=["colspan"],Cct=["onDrop","onDragover"],yct={key:0,class:"cell-checkbox"},Ict={class:"bimdata-table__page-nav__text"};function wct(t,e,i,r,o,s){const n=P("BIMDataCheckbox"),a=P("ColumnSorting"),l=P("BIMDataIconCaret"),c=P("BIMDataButton"),d=P("ColumnFilters"),A=P("BIMDataIconChevron"),u=Ti("clickaway");return x(),U("div",hct,[b("div",{class:"bimdata-table__container",style:pe({height:i.paginated?`${(i.perPage+1)*i.rowHeight}px`:void 0})},[b("table",{style:pe({width:i.tableWidth,tableLayout:i.tableLayout})},[b("thead",null,[b("tr",{key:"head-row-0",style:pe({height:`${i.rowHeight}px`})},[i.selectable?(x(),U("th",pct,[F(n,{disabled:i.rows.length===0,modelValue:r.selectionState,"onUpdate:modelValue":r.toggleAll},null,8,["disabled","modelValue","onUpdate:modelValue"])])):he("",!0),(x(!0),U(ht,null,Ht(i.columns,(h,g)=>{var p;return x(),U("th",{key:`head-row-0-col-${g}`,style:pe({width:h.width||"auto",textAlign:h.align||"left"})},[b("div",gct,[st(z(h.id?h.label||h.id:h)+" ",1),mt(t.$slots,"column-header-right",{},void 0,!0),h.sortable?(x(),W(a,{key:0,sortOrder:!r.sortObject.order||r.sortObject.column!==h?"asc":r.sortObject.order,index:g,active:g===r.activeHeadercolumnKey,onClick:m=>r.toggleSorting(h),onSetActive:e[0]||(e[0]=m=>r.activeHeadercolumnKey=m)},null,8,["sortOrder","index","active","onClick"])):he("",!0),h.filter?Bt((x(),U("div",fct,[F(c,{color:"primary",ghost:"",rounded:"",icon:"",class:ge(["m-l-6",{active:r.filters.some(m=>m.columnKey===h.id)}]),onClick:m=>r.toggleFiltersMenu(h)},{default:G(()=>[F(l,{size:"xxxs",fill:"",color:"default"})]),_:2},1032,["class","onClick"]),r.displayedColumnFilterId===h.id?(x(),W(d,{key:0,column:h,columnData:r.computedRows.map(m=>m.data[h.id]),filters:((p=r.filters.find(m=>m.columnKey===h.id))==null?void 0:p.columnFilters)??[],onFilter:m=>r.updateFilters(h,m)},{"column-filter-empty":G(()=>[mt(t.$slots,"column-filter-empty",{},void 0,!0)]),_:2},1032,["column","columnData","filters","onFilter"])):he("",!0)])),[[u,()=>r.awayFromFilter(h)]]):he("",!0)])],4)}),128))],4),b("tr",mct,[b("th",{class:"cell-sub-header",colspan:i.columns.length+i.selectable},[mt(t.$slots,"sub-header",{},void 0,!0)],8,vct)])]),b("tbody",{onDragleave:e[1]||(e[1]=(...h)=>r.onDragleave&&r.onDragleave(...h))},[(x(!0),U(ht,null,Ht(r.displayedRows,({key:h,data:g})=>Bt((x(),U("tr",{key:`body-row-${h}`,style:pe({height:`${i.rowHeight}px`}),onDrop:p=>r.onDrop(g,p),onDragover:p=>r.onDragover(h,g,p),class:ge({"bimdata-table__row--drag-overed":r.dragOveredRowKey===h})},[i.selectable?(x(),U("td",yct,[F(n,{modelValue:r.rowSelection.has(h),"onUpdate:modelValue":p=>r.toggleRow({key:h,data:g})},null,8,["modelValue","onUpdate:modelValue"])])):he("",!0),(x(!0),U(ht,null,Ht(i.columns,(p,m)=>(x(),U("td",{key:`body-row-${h}-col-${m}`,style:pe({width:p.width||"auto",textAlign:p.align||"left"})},[mt(t.$slots,`cell-${p.id}`,{row:g},()=>[st(z(g[p.id]||g[m]),1)],!0)],4))),128))],46,Cct)),[[ni,r.paginatedRows.includes(h)]])),128))],32)],4),i.rows.length===0?(x(),U("div",{key:0,class:"bimdata-table__container__placeholder",style:pe({height:`calc(100% - ${i.rowHeight}px)`})},[mt(t.$slots,"placeholder",{},()=>[st(z(i.placeholder),1)],!0)],4)):he("",!0)],4),i.paginated?(x(),U("div",{key:0,class:"bimdata-table__page-nav",style:pe({visibility:r.displayedRows.length>i.perPage?"visible":"hidden"})},[F(c,{ghost:"",rounded:"",icon:"",disabled:r.pageIndexStart===1,onClick:e[2]||(e[2]=h=>r.pageIndex--)},{default:G(()=>[F(A,{size:"s",rotate:180})]),_:1},8,["disabled"]),b("span",Ict,z(`${r.pageIndexStart} - ${r.pageIndexEnd} / ${r.displayedRows.length}`),1),F(c,{ghost:"",rounded:"",icon:"",disabled:r.pageIndexEnd===r.displayedRows.length,onClick:e[3]||(e[3]=h=>r.pageIndex++)},{default:G(()=>[F(A,{size:"s"})]),_:1},8,["disabled"])],4)):he("",!0)])}const bct=V(uct,[["render",wct],["__scopeId","data-v-e91e8e65"]]),Bct={components:{BIMDataButton:ta,BIMDataIconChevron:Gc},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(t){this._setSelected(t)}},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(t){this.activeTab=t,this.$emit("tab-click",t),this.$emit("tab-selected",t)},_setSelected(t){if(typeof t=="number"&&t>=0&&t<this.tabs.length)this.activeTab=this.tabs[t],this.$emit("tab-selected",this.activeTab);else{const e=this.tabs.find(i=>i.id===t);e&&(this.activeTab=e,this.$emit("tab-selected",this.activeTab))}},_setScrollValues(){if(this.displayIndex=0,this.tabs.length>0){let t=this.$refs.container.offsetWidth,e=this.$refs.container.querySelector(".bimdata-tabs__container__tab").offsetWidth;Math.floor((this.tabs.length*e-t)*10/e)>0?this.scrollValues=[0].concat(this.tabs.map((i,r)=>(r+1)*e-t).filter(i=>i>0)):this.scrollValues=[]}}}},Ect=["onClick"];function kct(t,e,i,r,o,s){const n=P("BIMDataIconChevron"),a=P("BIMDataButton");return x(),U("div",{class:"bimdata-tabs",style:pe({width:i.width})},[Bt(F(a,{disabled:o.displayIndex===0,onClick:s.prev},{default:G(()=>[F(n,{class:"fill-primary",size:"xxs",rotate:180})]),_:1},8,["disabled","onClick"]),[[ni,o.scrollValues.length>1]]),b("ul",{ref:"container",class:"bimdata-tabs__container",style:pe({width:s.containerWidth,minHeight:s.containerHeight})},[(x(!0),U(ht,null,Ht(i.tabs,l=>(x(),U("li",{key:l.id,class:ge(["bimdata-tabs__container__tab",{active:l.id===o.activeTab.id}]),style:pe({minWidth:s.tabWidth}),onClick:c=>s.onTabClick(l)},[mt(t.$slots,"tab",{tab:l,active:l.id===o.activeTab.id},()=>[st(z(l.label),1)],!0)],14,Ect))),128))],4),Bt(F(a,{disabled:o.displayIndex===o.scrollValues.length-1,onClick:s.next},{default:G(()=>[F(n,{class:"fill-primary",size:"xxs"})]),_:1},8,["disabled","onClick"]),[[ni,o.scrollValues.length>1]])],4)}const xct=V(Bct,[["render",kct],["__scopeId","data-v-7da61e21"]]),Qct={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,t=>{if(t)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(t){this.$emit("update:modelValue",t.currentTarget.value),this.fitContent&&this.handleFitContent()}}},Mct=["name","id","value","placeholder"],Sct=["for"],Dct={key:0,class:"error"},Pct={key:1,class:"success"};function Rct(t,e,i,r,o,s){return x(),U("div",{class:ge(["bimdata-textarea",{"not-empty":i.modelValue!==null&&i.modelValue!==""||i.placeholder!==null,error:i.error,success:i.success}]),style:pe({"min-width":i.width,"min-height":i.height})},[b("textarea",Ta({ref:"textarea",name:i.name,id:i.name,value:i.modelValue,placeholder:i.placeholder,style:`${i.resizable?"":"resize: none;"}`,onInput:e[0]||(e[0]=(...n)=>s.onInput&&s.onInput(...n))},t.$attrs),null,16,Mct),b("label",{for:i.name},z(i.label),9,Sct),e[1]||(e[1]=b("span",{class:"bar"},null,-1)),i.error?(x(),U("span",Dct,z(i.errorMessage),1)):he("",!0),i.success?(x(),U("span",Pct,z(i.successMessage),1)):he("",!0)],6)}const Fct=V(Qct,[["render",Rct],["__scopeId","data-v-77c71958"]]),Lct={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(t){this.$emit("update:modelValue",t)}}},created(){this.uniqueId=Math.random().toString()}},Tct=["for"],Nct=["disabled","id"];function Uct(t,e,i,r,o,s){return x(),U("label",{for:`bimdata-toggle-${o.uniqueId}`,class:ge([{active:i.modelValue,disabled:i.disabled},"toggle__button"])},[mt(t.$slots,"default",{},void 0,!0),Bt(b("input",{type:"checkbox",disabled:i.disabled,id:`bimdata-toggle-${o.uniqueId}`,"onUpdate:modelValue":e[0]||(e[0]=n=>s.checkedValue=n)},null,8,Nct),[[e8,s.checkedValue]]),e[1]||(e[1]=b("span",{class:"toggle__switch"},null,-1)),mt(t.$slots,"right",{},void 0,!0)],10,Tct)}const Oct=V(Lct,[["render",Uct],["__scopeId","data-v-ab3de434"]]),Hct={props:{text:{type:String,default:""},maxWidth:{type:String,default:"240px"},position:{type:String,default:"bottom",validator:t=>["top","right","bottom","left"].includes(t)},color:{type:String,default:"primary",validator:t=>["white","primary","secondary","granite-light","silver-light","success","warning","high"].includes(t)},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()}}},jct={class:"bimdata-tooltip"};function Gct(t,e,i,r,o,s){return x(),U("div",jct,[b("div",{class:"bimdata-tooltip__content",onMouseover:e[0]||(e[0]=n=>o.hover=!0),onMouseleave:e[1]||(e[1]=n=>o.hover=!1)},[mt(t.$slots,"content",{},void 0,!0),mt(t.$slots,"default",{},void 0,!0)],32),F(lr,{name:"fade"},{default:G(()=>[Bt(b("div",{ref:"tooltipText",class:ge(["bimdata-tooltip__tooltip",[`bimdata-tooltip__tooltip--${i.position}`,`bimdata-tooltip__tooltip--${i.color}`,...s._className]]),style:pe({maxWidth:i.maxWidth})},z(s._text),7),[[ni,s.isDisplayed]])]),_:1})])}const Vct=V(Hct,[["render",Gct],["__scopeId","data-v-36856a43"]]);let aT,eee;eee={inject:["root"],props:{node:{type:Object,required:!0,validator:t=>Number.isFinite(t?.id)},depth:{type:Number,default:0},dragAndDrop:{type:Boolean,default:!1}},render(){const{node:t,depth:e,dragAndDrop:i,root:r}=this,o=r.state;return t.children.map(s=>_o(aT,{node:s,depth:e,dragAndDrop:i,key:s.id},()=>{var n,a,l;return(l=(a=r.$slots).node)==null?void 0:l.call(a,{node:s,depth:e,selected:s.id===o.selectedId,hovered:s.id===((n=o.hoveredNode)==null?void 0:n.id),ancestorSelected:o.hasAncestorSelected(s),dragAndDrop:i})}))}},aT={name:"Node",components:{NodeChildren:eee},inject:["root"],props:{node:{type:Object,required:!0},depth:{type:Number,default:0},dragAndDrop:{type:Boolean,default:!1}},setup(t){const e=St("state");let i=null;wo(t.node.visibleRef)?i=t.node.visibleRef:i=Le(!0);let r=null;wo(t.node.expandedRef)?r=t.node.expandedRef:r=Le(!1);const o=Le(null);let s=null;const n=()=>{var u,h;if(!((u=t.node.children)!=null&&u.length)||!e.dragPosition||((h=e.hoveredNode)==null?void 0:h.id)!==t.node.id||r.value){clearTimeout(s),s=null;return}const g=e.getNodeDropPosition(t.node,o.value);if(g!=="center"&&g!=="bottom"){clearTimeout(s),s=null;return}s===null&&(s=setTimeout(()=>{r.value=!0,s=null},500))};Dt(()=>e.dragPosition&&e.hoveredNode,n);const a=()=>e.onNodeMouseEnter(t.node),l=u=>e.onNodeMouseDown(t.node,u),c=u=>{e.onNodeMouseMove(u),n()},d=lt(()=>{var u;return!t.dragAndDrop||!e.dragPosition||((u=e.hoveredNode)==null?void 0:u.id)!==t.node.id?null:e.getNodeDropPosition(t.node,o.value)}),A=()=>e.onNodeMouseUp(t.node,o.value,r.value);return{state:e,nodeRef:o,expanded:r,visible:i,dropHelperPosition:d,hasAncestorSelected:e.hasAncestorSelected,onMouseEnter:a,onMouseDown:l,onMouseMove:c,onMouseUp:A}}};const qct=aT,_ct={class:"bimdata-tree__node__content__element"};function zct(t,e,i,r,o,s){var n,a;const l=P("BIMDataIcon"),c=P("NodeChildren");return x(),U(ht,null,[Bt(b("div",{ref:"nodeRef",class:ge(["bimdata-tree__node",{"bimdata-tree__node--selected":t.node.id===t.state.selectedId,"bimdata-tree__node--ancestor-selected":t.hasAncestorSelected(t.node),"bimdata-tree__node--highlighted":t.node.id===t.state.highlightedId}]),onMouseenter:e[2]||(e[2]=(...d)=>t.onMouseEnter&&t.onMouseEnter(...d)),onMousedown:e[3]||(e[3]=(...d)=>t.onMouseDown&&t.onMouseDown(...d)),onMousemove:e[4]||(e[4]=(...d)=>t.onMouseMove&&t.onMouseMove(...d)),onMouseup:e[5]||(e[5]=(...d)=>t.onMouseUp&&t.onMouseUp(...d))},[t.dropHelperPosition==="top"||t.dropHelperPosition==="bottom"?(x(),U("div",{key:0,class:"bimdata-tree__node__drop-helper",style:pe(`--drop-helper-top: ${t.dropHelperPosition==="top"?"0px":"30px"};`)},null,4)):he("",!0),b("div",{class:"bimdata-tree__node__content",style:pe(`padding-left: calc(var(--spacing-unit) * 2 * ${t.depth});`)},[b("div",{class:"bimdata-tree__node__content__arrow",onMousedown:e[1]||(e[1]=wt(()=>{},["stop"]))},[((n=t.node.children)==null?void 0:n.length)>0?(x(),U("div",{key:0,class:"bimdata-tree__node__content__arrow__content",onClick:e[0]||(e[0]=d=>t.expanded=!t.expanded)},[F(l,{name:"chevron",size:"xxxs",rotate:t.expanded?90:0},null,8,["rotate"])])):he("",!0)],32),b("div",_ct,[mt(t.$slots,"default",{},()=>[st(z(t.node.label),1)],!0)])],4)],34),[[ni,t.visible]]),((a=t.node.children)==null?void 0:a.length)>0&&t.expanded?(x(),W(c,{key:0,node:t.node,depth:t.depth+1,"drag-and-drop":t.dragAndDrop},null,8,["node","depth","drag-and-drop"])):he("",!0)],64)}const Kct=V(qct,[["render",zct],["__scopeId","data-v-77e5bb06"]]);function Jct(t,e){const i=Ra({selectedId:null,highlightedId:null,hoveredNode:null,trees:t.data,dragPosition:null});Dt(()=>t.selectedId,()=>{i.selectedId=t.selectedId??null}),Dt(()=>t.highlightedId,()=>{i.highlightedId=t.highlightedId??null}),Dt(()=>i.hoveredNode,()=>e("hover",i.hoveredNode));const r=Vr(null);Dt(()=>t.data,v=>{i.trees=v});const o=()=>{r.value=null,i.dragPosition=null},s=v=>{i.hoveredNode=v},n=(v,C)=>{C.stopPropagation(),e("click",v),r.value=v,window.addEventListener("mouseup",o,{once:!0})},a=v=>{if(!r.value)return;const{clientX:C,clientY:y}=v;i.dragPosition={x:C,y}},l=(v,C,y)=>{var I,B;if(!t.dragAndDrop||!i.dragPosition||((I=i.hoveredNode)==null?void 0:I.id)===((B=r.value)==null?void 0:B.id)||i.isDescendant(v,r.value))return;const E=u(v,C);let k=null,Q=null;const S=h(r.value);switch(E){case"top":k=h(v),Q=(k?.children??i.trees).findIndex(T=>T.id===v.id);break;case"bottom":v.children&&y?(k=v,Q=0):(k=h(v),Q=(k?.children??i.trees).findIndex(T=>T.id===v.id)+1);break;case"center":k=v,Q=0;break}const D=k?.id===S?.id,R=(S?.children??i.trees).findIndex(T=>T.id===r.value.id);D&&(E==="top"||E==="bottom")&&R<Q&&Q--,!(D&&Q===R)&&e("drop",{node:r.value,previousParent:S,parent:k,index:Q,position:E})},c=()=>{i.hoveredNode=null},d=()=>{e("click",null)},A=()=>{if(!t.dragAndDrop||!i.dragPosition||i.trees.indexOf(r.value)===i.trees.length-1)return;const v=i.trees.includes(r.value);e("drop",{node:r.value,parent:null,index:v?i.trees.length-1:i.trees.length,previousParent:h(r.value)})};i.onNodeMouseEnter=s,i.onNodeMouseDown=n,i.onNodeMouseMove=a,i.onNodeMouseUp=l,i.onNodesMouseLeave=c,i.onTreeMouseDown=d,i.onTreeMouseUp=A;const u=(v,C)=>{const{y}=i.dragPosition,{top:I,height:B}=C.getBoundingClientRect();return v.children?y<I+B/3?"top":y>I+B*2/3?"bottom":"center":y<I+B/2?"top":"bottom"},h=(v,C=i.trees)=>{var y;for(const I of C)if((y=I.children)!=null&&y.length){if(I.children.some(E=>E.id===v.id))return I;const B=h(v,I.children);if(B)return B}},g=(v,C=i.trees)=>{var y;for(const I of C)if(I.id===v.id||(y=I.children)!=null&&y.length&&g(v,I.children))return!0;return!1},p=(v,C=i.trees)=>{var y;const I=[];for(const B of C)B.id!==v.id&&(y=B.children)!=null&&y.length&&g(v,B.children)&&I.push(B,...p(v,B.children));return I},m=v=>i.selectedId===null?!1:p(v).some(C=>C.id===i.selectedId),f=(v,C)=>{var y;return((y=C?.children)==null?void 0:y.some(I=>I.id===v.id||f(v,I)))??!1};return i.getNodeDropPosition=u,i.getParent=h,i.getAncestors=p,i.hasAncestorSelected=m,i.isDescendant=f,i}const Yct={components:{Node:Kct},provide(){return{root:this}},props:{data:{type:Array,required:!0,validator:t=>{if(!Array.isArray(t))return!1;const e=new Set;for(const i of t){if(!Number.isFinite(i?.id)||i.children&&!Array.isArray(i.children))return!1;e.add(i.id)}return e.size===t.length}},selectedId:{type:Number,default:null},highlightedId:{type:Number,default:null},dragAndDrop:{type:Boolean,default:!1}},emits:["drop","click","hover"],setup(t,{emit:e}){const i=Jct(t,e);Sn("state",i);const r=()=>i.onNodesMouseLeave(),o=()=>i.onTreeMouseDown(),s=Le(!1),n=()=>{s.value=!0},a=()=>{s.value=!1},l=()=>i.onTreeMouseUp(),c=lt(()=>t.dragAndDrop&&s.value&&i.dragPosition!==null&&i.hoveredNode===null);return{state:i,dropHelperDisplayed:c,onMouseEnter:n,onMouseLeave:a,onNodesMouseLeave:r,onTreeMouseDown:o,onMouseUp:l}}},Wct={key:0,class:"bimdata-tree__drop-helper"};function Zct(t,e,i,r,o,s){const n=P("Node");return x(),U("div",{class:"bimdata-tree",onMousedown:e[1]||(e[1]=(...a)=>r.onTreeMouseDown&&r.onTreeMouseDown(...a)),onMouseenter:e[2]||(e[2]=(...a)=>r.onMouseEnter&&r.onMouseEnter(...a)),onMouseleave:e[3]||(e[3]=(...a)=>r.onMouseLeave&&r.onMouseLeave(...a)),onMouseup:e[4]||(e[4]=wt((...a)=>r.onMouseUp&&r.onMouseUp(...a),["self"]))},[b("div",{class:"bimdata-tree__nodes",onMouseleave:e[0]||(e[0]=(...a)=>r.onNodesMouseLeave&&r.onNodesMouseLeave(...a))},[(x(!0),U(ht,null,Ht(i.data,a=>(x(),W(n,{key:a.id,node:a,"drag-and-drop":i.dragAndDrop},{default:G(()=>{var l;return[mt(t.$slots,"node",{node:a,depth:0,selected:a.id===r.state.selectedId,hovered:a.id===((l=r.state.hoveredNode)==null?void 0:l.id),ancestorSelected:r.state.hasAncestorSelected(a)},void 0,!0)]}),_:2},1032,["node","drag-and-drop"]))),128))],32),r.dropHelperDisplayed?(x(),U("div",Wct)):he("",!0)],32)}const Xct=V(Yct,[["render",Zct],["__scopeId","data-v-8a1ab21a"]]),$ct=Object.freeze(Object.defineProperty({__proto__:null,BIMDataBigSpinner:ILe,BIMDataButton:ta,BIMDataCard:WL,BIMDataCarousel:YLe,BIMDataCheckbox:BB,BIMDataColorSelector:rTe,BIMDataDatePicker:Zrt,BIMDataDropdownList:Bot,BIMDataDropdownMenu:Fot,BIMDataFileIcon:ent,BIMDataIcon:rnt,BIMDataIconAddFile:jTe,BIMDataIconAddFolder:JTe,BIMDataIconAddGavel:eNe,BIMDataIconAddList:sNe,BIMDataIconAddUser:hNe,BIMDataIconAlphabeticalAscending:CNe,BIMDataIconAlphabeticalDescending:ENe,BIMDataIconAlphabeticalSort:DNe,BIMDataIconAlt:NNe,BIMDataIconAngle:VNe,BIMDataIconApi:WNe,BIMDataIconApp:iUe,BIMDataIconArchive:cUe,BIMDataIconArrow:fUe,BIMDataIconAttach:bUe,BIMDataIconBcf:SUe,BIMDataIconBcfPolychrome:Qtt,BIMDataIconBuilding:NUe,BIMDataIconBurgerMenu:VUe,BIMDataIconCalendar:WUe,BIMDataIconCaliper:rOe,BIMDataIconCamera:dOe,BIMDataIconCancelCamera:fOe,BIMDataIconCaret:tT,BIMDataIconCheck:MOe,BIMDataIconChevron:Gc,BIMDataIconClassificationCategory:LOe,BIMDataIconClassificationElement:jOe,BIMDataIconClick:JOe,BIMDataIconClose:kB,BIMDataIconCloud:aHe,BIMDataIconColor:pHe,BIMDataIconComment:RHe,BIMDataIconCreateSpace:yHe,BIMDataIconCreateWindowPolychrome:Ftt,BIMDataIconCreateZone:kHe,BIMDataIconDateAscending:OHe,BIMDataIconDateDescending:_He,BIMDataIconDefault:T$,BIMDataIconDelete:XL,BIMDataIconDeniedFile:rje,BIMDataIconDetach:dje,BIMDataIconDistance:fje,BIMDataIconDocInfoPolychrome:Htt,BIMDataIconDoubleChevron:iT,BIMDataIconDown:Mje,BIMDataIconDownload:Tje,BIMDataIconDrag:Gje,BIMDataIconEdit:Yje,BIMDataIconEllipsis:N$,BIMDataIconExpanded:sGe,BIMDataIconExplosion:hGe,BIMDataIconExport:CGe,BIMDataIconExportIfc:EGe,BIMDataIconExportXlsx:DGe,BIMDataIconFailed:UGe,BIMDataIconFileDwgPolychrome:ztt,BIMDataIconFileDxfPolychrome:Xtt,BIMDataIconFileIfcPolychrome:oit,BIMDataIconFileImagePolychrome:dit,BIMDataIconFileJpegPolychrome:fit,BIMDataIconFilePdfPolychrome:wit,BIMDataIconFilePlanPolychrome:Qit,BIMDataIconFilePngPolychrome:Fit,BIMDataIconFilePointCloudPolychrome:Hit,BIMDataIconFilterList:_Ge,BIMDataIconFitView:ZGe,BIMDataIconFolder:oVe,BIMDataIconFolderLocation:AVe,BIMDataIconFolderMove:mVe,BIMDataIconFolderOpen:BVe,BIMDataIconFolderPolychrome:zit,BIMDataIconFullscreen:DVe,BIMDataIconGavel:UVe,BIMDataIconGrid:qVe,BIMDataIconGroup:WVe,BIMDataIconHide:rqe,BIMDataIconHome:cqe,BIMDataIconIfc:fqe,BIMDataIconIfcFile:bqe,BIMDataIconImport:Sqe,BIMDataIconInProgressFile:t_e,BIMDataIconIndexAscending:Tqe,BIMDataIconIndexDescending:Gqe,BIMDataIconInformation:Yqe,BIMDataIconInvitation:l_e,BIMDataIconIsolate:g_e,BIMDataIconKey:w_e,BIMDataIconLeft:M_e,BIMDataIconLinkedDocument:T_e,BIMDataIconList:G_e,BIMDataIconListManage:Y_e,BIMDataIconLocation:ize,BIMDataIconLock:cze,BIMDataIconLogout:fze,BIMDataIconMeasure:bze,BIMDataIconMinus:Sze,BIMDataIconModel3D:Nze,BIMDataIconNamingConvention:Vze,BIMDataIconNavigation:Wze,BIMDataIconOrganization:rKe,BIMDataIconParameters:dKe,BIMDataIconPathway:mKe,BIMDataIconPieGraph:bKe,BIMDataIconPipette:SKe,BIMDataIconPlan:NKe,BIMDataIconPlus:qKe,BIMDataIconPreview:ZKe,BIMDataIconProject:oJe,BIMDataIconQuickSelect:dJe,BIMDataIconReadonlyFolder:mJe,BIMDataIconRedo:BJe,BIMDataIconReduced:SJe,BIMDataIconRefresh:NJe,BIMDataIconRemoveModel:VJe,BIMDataIconRename:YJe,BIMDataIconReprocessIfc:tYe,BIMDataIconReset:lYe,BIMDataIconRestore:gYe,BIMDataIconRight:wYe,BIMDataIconRotate:QYe,BIMDataIconRules:LYe,BIMDataIconSandglass:GYe,BIMDataIconSave:YYe,BIMDataIconScreenConfig:tWe,BIMDataIconScreenshot:aWe,BIMDataIconSearch:rT,BIMDataIconSection:yWe,BIMDataIconSetAsModel:kWe,BIMDataIconSettings:RWe,BIMDataIconShare:HWe,BIMDataIconShow:KWe,BIMDataIconShowSelected:$We,BIMDataIconSmartview:nZe,BIMDataIconSocotec:uZe,BIMDataIconSpace:vZe,BIMDataIconSpace2:BZe,BIMDataIconSpacing:SZe,BIMDataIconSplit:TZe,BIMDataIconStorey:VZe,BIMDataIconStructure:WZe,BIMDataIconStructurePolychrome:Xit,BIMDataIconSuccess:rXe,BIMDataIconSurface:cXe,BIMDataIconSwap:gXe,BIMDataIconSynchro2D:IXe,BIMDataIconSystem:QXe,BIMDataIconTag:LXe,BIMDataIconTranslate:jXe,BIMDataIconTree:JXe,BIMDataIconUnarchive:t$e,BIMDataIconUndo:l$e,BIMDataIconUnion:g$e,BIMDataIconUnknownFile:I$e,BIMDataIconUp:Q$e,BIMDataIconUpload:F$e,BIMDataIconUser:j$e,BIMDataIconValidate:J$e,BIMDataIconValidatedFile:eet,BIMDataIconVersioning:aet,BIMDataIconVideocam:get,BIMDataIconViewer2DPolychrome:ort,BIMDataIconViewer3DPolychrome:drt,BIMDataIconVisa:Iet,BIMDataIconWarning:Qet,BIMDataIconWindowBottom:Tet,BIMDataIconWindowLeft:Wet,BIMDataIconWindowRight:rtt,BIMDataIconWindowTop:dtt,BIMDataIconWindowed:Vet,BIMDataIconZone:ftt,BIMDataIconZone2:wtt,BIMDataIllustration:qst,BIMDataInfobox:Yst,BIMDataInput:rat,BIMDataInputOutlined:gat,BIMDataList:vat,BIMDataLoading:Bat,BIMDataMenu:Pat,BIMDataMenuInline:Tat,BIMDataMultiplePieChart:Vat,BIMDataPaginatedList:H$,BIMDataPieSpinner:Yat,BIMDataRadio:elt,BIMDataResponsiveGrid:rlt,BIMDataSafeZoneInline:alt,BIMDataSearch:ult,BIMDataSearchAutocomplete:xlt,BIMDataSelect:qlt,BIMDataSimplePieChart:Zlt,BIMDataSlider:ict,BIMDataSpinner:O$,BIMDataTable:bct,BIMDataTabs:xct,BIMDataText:Z$,BIMDataTextarea:Fct,BIMDataTextbox:xB,BIMDataToggle:Oct,BIMDataTooltip:Vct,BIMDataTree:Xct},Symbol.toStringTag,{value:"Module"})),tee=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}),edt=["bisque","khaki","greenyellow","lightcyan","plum","ghostwhite"];function Zh(){const t=Object.entries(tee).filter(([i])=>!edt.includes(i)),e=Math.floor(Math.random()*t.length);return t[e][1]}const tdt={props:{message:{type:String,required:!0},active:{type:Boolean,default:!0}}},idt={key:0,class:"bimdata-empty"},rdt={class:"m-t-6"};function odt(t,e,i,r,o,s){return i.active?(x(),U("div",idt,[mt(t.$slots,"default"),b("p",rdt,z(i.message),1),mt(t.$slots,"footer")])):he("",!0)}const kp=V(tdt,[["render",odt]]),ndt=Object.entries(tee).reduce((t,e,i)=>(i%5===0?t.push([e]):t[t.length-1].push(e),t),[]),sdt={props:{selectedColor:{type:Number,default:null}},emits:["color-select"],data(){return{colorLines:ndt}},methods:{toColorString(t){return`#${t.toString(16).padStart(6,0)}`}}},adt=["title","onClick"];function ldt(t,e,i,r,o,s){const n=P("BIMDataCard");return x(),W(n,{class:"color-selector"},{content:G(()=>[(x(!0),U(ht,null,Ht(o.colorLines,(a,l)=>(x(),U("div",{key:`colorLine${l}`,class:"color-selector__line"},[(x(!0),U(ht,null,Ht(a,([c,d],A)=>(x(),U("div",{key:`colorElement${A}ofColorLine${l}`,class:ge(["color-selector__line__element",{selected:d===i.selectedColor}]),style:pe(`background-color: ${s.toColorString(d)}`),title:c,onClick:u=>t.$emit("color-select",{name:c,value:d})},null,14,adt))),128))]))),128))]),_:1})}const lT=V(sdt,[["render",ldt]]),cdt="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///AAYo4IAEFmjggQgmqOCCDDbo4IMQRijhhBRWaOGFGGao4YYcdujhhyCGKOKIJJZo4okopqjiiiy26OKLMMYo44w01mjjjTjmqOOOPPbo449ABinkkEQWaeSRSCap5JJMNunkk1BGKeWUVBaI0JVYZnnCllx26eWXYIYpJpgPDYHGmGimqSaXxUVHwptwxinnnHTWaaeWeOa55p58nnmCQ7QE2uegarZp3J2IJqooJow26uijkEaq56SUZolMAAKc8UGlnGbZZqadhiqqpKSOaipCCAC66amiFgcqq7DG7UqooLTOKuYMr9qqa5eGLurrr7IGu+uYPRCQ67C2tgnssojmhI04z0YLLbRRgRPOtdhmi+0cV11bprXghivuuOJ+6wJMWKWr7rrstuuuu9zEK++89NZrrzYQ3avNvvz2e42//wYs8L8PBXySQyFYk/DAC4eQ78I6tSAxBxRXbDELHV3cwQgbd8zxxyCHLLJLq5Zs8gooC6vylw4dgEDKK+e5nhWB0GxzzTinofPOPMvQ8888Q0QGF1xUOxcAqmp6VwpMNw3z01A7HfXUU/dI9dVYZw211Vp37XVBXMesZdhiY0n212hjfXbabEMdEAAh+QQFCgACACxAAMAA0ABoAAAI/wA3CBxIsKDBgwY1KFzIUIDDhxAjSpxIsaLFixgzatzIsaPHjxIZilT4MJ5DefFmgVzJsqXLlzBjjhwZMV7KmDhz6tzJ8+JMkTXhzVKhoqfRo0iT+vzpoanSp1CjKmXa1MPEoVKzat2akapTrmDDio3o1QPKsyjhFB3Lti3XqlXdyp1Lt67du3jz6t3Lt6/fv4ADCx5MuLDhw4gTIy3AuLHjxwUUSz4KuXLjyZgzazZctuHmzyzhih5tFbRpj6RTlz7Numtnkq1jW3wNW7bt27hz697Nu7fv38CDCx9OvLjx48iTK1/OvLnz59CjS59Ovbr169iza9/Ovbv37+DDi/8fT768+fPo06tfz769+/fw48ufT7++/fv48+vfz7+///8ABijggAQWaOCBCCao4IIMNujggxBGKOGEFOp1woUYZqjhhhx2iNCHIIYoIkEPjWjiiR9yNBOKLLbo4YswuiijiA4Z8sGMOBqkokg59ujjj5gEKeSQRBZppJGVACDAkUw26eSTOzJQyJNUVmklkFdmqaWQQdS45ZdNRgnmmGTGiOWZAsWw5Blotihmm3CaGSeQPwSw5pwjvoknQjiJg42fgP7pJ1ThFGrooYfWMJGhDyEKzqOQRirppI26AA5MlmaqqaU4acrNp6CGKuqo2pAKUamkoqrqqtew2uqrrT6DZE2sAljjEKwh5KqrrqfyihMHLQTbAQvfECsssR0Zq+yywzbL7LPBurQnm9RWa+21WDokDQYrYOvttz5qNGUg45JrbrnnppvGuuy26y5EaSwJ1Rlz2XknvXbdqO+0RebHL4j+/uttwCAUbPDBCCes8MIMg0BwwxBHHPHDApOIX8UHBQQAIfkEBQoACQAsKAB1AHgBywAACP8AEwgcSLCgwYMIEypcyLChw4cQI0qcSLGixYsYM2q8eGajx48gQ4ocSbKkyZMcUapcybKly5cwWfrZQDOmzZs4c+rcybOnz59AgwodSrSo0aNIkypdyrSp06dQo0qdSrWq1atYs2rdyrWr169gw4odS7as2bNo06pdy7at27dw48qdS7eu3bt48+rdy7ev37+AAwseTLiw4cOIEytezLix48eQI0ueTLmy5ZiBmPBiEuiyZ66bO38eXVU06dNSNajWgLq169ewY8ueTbu27du4c+vezbu379/AgwsfTry48ePIkytfzry58+fQo0ufTr269evYs2vfzr279+/gw4v/H0++vPnz6NOrX8++vfv38OPLn08/cCYU9VHDuZ9/Mgr8CLHWX2T/JSTggJSVwUg88ex3IIKRlULQLKqZtNqDEIb134PtLNigCheGKOKIJJa4WoZjbejBQPV4KIKJMMYII4oa3oeCPDi2I1A8A1U4UiQA3KHAkCHSuJWNACZQz44vyuhkiZQowcAXbRApopFYgagajvJ0KA88IljYxiEa3OEIA1YWiWVpWhbEIIUlMZBDHhrU4cwadfh44ZpTicjlkiitBkMQGzzxxTKEXPBEIoFYyWdUVxr0IkmqBRJJFhoEoAUZAbRRRwBf0IEmho8uFamkT6a6mhYGHNBIJBoY/yFkAIYwAAAGMTBKaqlJnTqhqsCGgYYarY5I6AVb+Mhrn8A2e6EklCigx61ppqFaHIIou6xeDDhyARkKgKtAIxrgEOu1VW7bl5w4XGIlDBpccG4VRHyyq7p2VTEmG0TCK28fZe7RKL7rPtJHleOWG28ifSRL8Lp4MNHphYHkcAhnD/vFLq1DAkDrAQhkrLGcAfARyQWH8BHArYIF4fLLMMcchHEe1IxCATjn7MXOPPfs889AB/3zAFIUDcHRSCMySUuLUOG0BHCILJHNN+ss9NVYZ600I1yP0fXWS7PU9NOWSB2Rs2inrfbaBZr9ENtwxy23r24vRLWKc+ett5N1O/90N957By74iX0zNPjhiO9ZuN2JNy744pBHLvnklFdu+eWYZ6755px37vnnoIcu+uikl2766ainrvrqrLfu+uuwZ7hIQj0T9HQBsS/V9EG1D3R77kntbLvWvwNflPC+E/+08ccTU4UKArEivfLMF1U2J5rAsYvyTlc/lBoTNINz9Knst8Yb0UdgRo8TIOG9UEdMkP4kD8CRCxgFRdBjArnY/n5PrMgfKSggBmSIIgERqIJC3vCz/+FkerhIwgS2VwQHIZAYsnADAg3CQJ858CZt2IT+aOe/6H3QJ7ObUEHqNIcETnAOuzDhCX+ygBoikAICqaArlJY8Do5thjH5YfL/Ojg9r41veB4EIky4N4kmLk+JOzEiE0PBQygGcYrIs2JOsJhFLZrEiWAMoxjHOEYvqoSMaExjGM2IEu6xkSdji6Mc4/hG3c3xjrurox73yMc++vGPgAykIAdJyEIa8pCITKQiF8nI9azskQGYGk0mSclKWvKSlESMzXIIgk568pOgDKUoR0nKE5jylKhMJSZXqcpWsvKVrozlCmZJy1rKMpUigeTKJAnLXlbyMJvkZCmHScxi3tKXyDxmMpVpy2YykyQNaMBOlknNalYSGZo6wwesyc1lwqib4AynOMdJTkwiZJcXieY0y8nODYQsAdtsJzuhFE952vOe+OzmOSOZ/xEC+LMdAsjhDgCQw4PYU5PaNKZCFXqXDdBAl5C8CDkEwoNxFGQLAcBYAgRgrXx6lCwLDakxG7pRj0U0neVgh0HUYRBQ7EgdMI2pTGeKjZratKYSEQdLwBGOnvrUpwTRUUF4Co6BEPWoSE2qUl1gVJ4qxAVERRVUp0rVF1n1qljNqla3atV1UuirYP0qSGYhEX8KIKAY4adA0OEmg5SDG3CNq1znSte6zvWl3BiINvbK17769Rp/DSxgr6FXaxA2AYMNgWIXy9jFEsSw1gBJCybLgcpa9rIsyKxmN6tXV4QDsx0YQWhHK9rSkta0qDWtUgSrV4ncgiS7OEYM3XrWh/9EU7bSGAhBNyAQAZxpBcL0qHC76QgBIEAUzmTmcDkZ3Fo16rnQTYN0pysD6oLrutYlw4RUwQWdoCIHeAhvDowK3vJ+d7wVSYJ618veJAikAu2FLwbgawy3WpQgaHWIOoNKED9wshIAiO5wedsTgsIzoYxLqIIXrM2bJPfBEE6GhCe8igpb+MIYzgmFNxzWp3L4w2EF6y/OSmKPUbQM5DiGifVbEAMPxL9D3UsyrzLgGnfEoAzO8SsRcgyLRPPHK36xpGSMTBrLUyTmzIlaIwJRdMITxvDEsY2nnOTmUvnK1fxLk5fMkC2rFco3XiGWx0xgAHCGzGiOcCb9smWI+BOgv9JEVXMW6mBg2PnOeM4zkov8tpKe1McEgHN/mcscOtskz4jWc0hm3GeIqoTAUW4kSmAMadNIuiRQ3t+lTZLpgm6aUmD+9KQ1LepAhbnUI6H0qVEdkk5HmtUfcbWlYZ2RDcia1rEeMq7Humtea3rWvd6Ii4NNES47mdhpRbZHUrBqZVcEAEZIgbM1Au1pL9vaGoE0ti2i7W1TpNveRkhAAAAh+QQFCgACACyUAHUADAGuAAAI/wAFCBxIsKDBgwgTKlzIsKHDhxAjSpxIsaLFhhsuatzIsaPHjyBDaswosqTJkyhTqpy4Y4PLlTBjypxJs6bNmzhz6tzJs6fPn0CDCh1KtKjRo0iTKl3KtKnTp1CjSp1KtarVq1izat3KtavXr2DDih1LtqzZs2jTql3Ltq3bt3Djyp1Lt67du3jz6t3Lt6/fv4DBpmGCg0mawIgvFj6cuDFExo4jY1SQRoHky5gza97MubPnz6BDix5NurTp06hTq17NurXr17Bjy55Nu7bt27hz697Nu7fv38CDCx9OvLjx48iTK1/OvLnz59CjS59Ovbr169iza9/OvftzBZEA3P9RoKG896KUnjD40qa8+/fnezJow0fDHUcM3uuPv5NBjjwa1MHMGnWUZwh5/PkUCAxBbPDEF8uYcsETiQSCYII5uRRJFhoEoAUZAbRRRwBf0JEfhjdpYcABjUSigBHjBXAgABjEUCGKNa2HhhoGQKKBQO81eMEWP+IoE2WSUKKAHjSS515lGsQhSJFGwkSZIxeQQVl5jWiAgwZ9lMcglVWu5B8OlzipAAxgtlkFEZ+QWaZKaNQBAxtOsnlBm4/sYeGcRz7SR3sK0OAlmIn0QaScgKLkHxMhvhdIDocYxmijjuaAg4yUASDjAQiciKmV8wXARyQXHMJHAE2OCtMiXsT/OoAUtEJg662IxOoqSrDGyghBjOA6ia67luSBfgvkl+wEohZ70rEeKHShs89GS61Nx16L7X7akgpft+CGK+645JZr7rnopqvuuuy26+678MYr77z01mvvvfjmqy9xvk6yr0P9/tvQsAELnBDBvhp8cL9eKIxQrwk7XNAm3UggQBGWqCIxsAJFAQewi2x8sMh3CMCKyAj58gbKLENEBRUtxyzzzDTXbPPNOOes88489+zzz0AHLfTQRBdt9NFIJ630W+4B6dLTUEct9dRUS31t005XrfXWWl+tgrIrhC322GSXbfbZZnuN9tpstz22tlzH/cHcckcNN9115821uC70PX3x3y787VHggVPLwuGIJ97B4oxz4PjjkEcueQuUV255C0s3VQEG2HC+eedS5R1cMqRTU/osp6eub9c1BQQAIfkEBQoAAAAs4AAYATAACAAABkZAjWcIAICOyKRyyWw2PUXjx0mtWqWbrHbL7Xq/X+wUTC6XjUWreq0Us9/XKFpEr9vv+Lz+zun4R3+AgoGDhYZyiHIhACFBACH5BAUKAAAALOAAGAEwAAgAAAZKQIBmCBBujsikcslsLoVFqHNKrRpX2Kx2y+16vdfUd0wuQ8PVZBSdPkrb0zV8s5baXee6fs+XslgAf4IdgYWEHIiJioscfWstgUEAIfkEBQoAAAAslADAAHwAYAAAB/+AGoKDhIIAh4iJiouMjY6PkJGSk5CFloaUmZqbnJ2Jl6CeoqOknKCEpamqq4ynqKywsaaur7K2t620tbi8trqFvcGxv8TFxsfIycrLzM3Oz9DR0tPU1dbX1cLasNjd3tfb4au64uWkXujp6uvm7Zvr8Oru85K/9PeRxPj7jsb8/wD8ARy4a6BBRAUPKlzIsKHDhxAjSpxIsaLFixgzatzIsaPHjyBDihxJsqTJkyhTqlzJsqXLlzBjypxJs6bNmzhz6tzJs6fPn0CDCh1KtKjRo0iTKl3KtKnTp1CjSp1KtarVq1izahXnoeshEGDDih1LtqxZshu7ekD44azbt25E02oIuKGu3bt48+rduzctXb6AAwuuyxHEV7iIE4st3FaxY8QgRfwVQbmy5cuYM2umvJFDh88jQIceLZq06dOSQgAIEQgAIfkEBQoAAwAsaAC4AKgAaAAACP8APQjUQFCFQYIACmoYwLChw4cQI0qcSLGixYsYM2rUOFDhQQUJC24cSbKkyZMoMXYkWAehwpQwY8qcmXLlBTouRdLcybMnzZValgTAqSHAS59Ikyq9uFJAo0tEjepcSrWqUo94NFSKutCq1688PSpQsBUh2LNoa4otW1Ss27dw30YScEds2rsc13KNy7dvwTpKqnxpowCv4bwe2Ur1y/htIj4a7jBhcLiyRbeKG2sWi+eFhjaR1rRMkcKyaYkFM29ePfYQpQ1KvnzZ+iRRmrGUT5vGrXAx68ZpImUpqoVMgDZtBHwhqtsw35C//WoxcOCpgjx1BZA+TidRc+dxfUf/jwtlgxoDkNwiUADDT+Hvp8dvltRSDwA7WAnuUcNAvv//AAYIoAWScKGBgQo4QZYGkrRGmIAQRijhhAzkgEMkCsHAIHsEEaEIbxSGKOKIfNXRHm6HMKBhH5FBRuKLMMb4CH0E3bAgfX24B9+OV+HxBwCJYAWDIwjGaOSREmKAA3QAJHTFeu/xKOVOuFECAB+RwKDlAfdNNeWXMU0yiRQQkFmmmYiAqaZMYo7BCARvxonIImvWadJKE/R3lJ18boTnnn0GithAghbq50qGJloRCox6pOijETXqKKSUVmrppZhmqummnHbq6aeghirqqKSWauqpqKaq6qqsturqq7DGqirrrLTWauutuOaq66689urrr8AGK+ywxBZr7LHIJqvsssw26+yz0EYr7bTUVmvttdhmq+223Hbr7bfghivuuOSWa+656Kar7rrD6rTBu/DGK++89NY7b69T2avvvvzi+9EKAAcs8MAEF2xwwf4erPDCDAvsK78QfyBxxPI+PDHFGPcbrAscD+CCxyB/PNPHIu/Kwskop9zByixz4PLLMMcscws012xzCwEBACH5BAUKAAMALHAAuACgAGgAAAj/ADUIHEhQQYABCBMqXMiwocOHECNKnEixokWJBTMCuMixo8ePIEM6pOShIAYFAjeKXMmypUuOKAUeagDgSx0NB1/q3MnTpYI9LxAo4vOFgcqeSJMqjRgowB2UbQIMyrm0qlWeMQRSkjrQaYCMYMOKJRhJwNOYKK+qFZlVQyKuKR99HUuXbh0lDGyu3buybRC4GwBoAVC3cNhEfDTcccS38ce2XOAqajDVsGWCeF4oaBNpzc0UKRyLlthWwSsfAgfjIXy5NYwggb98MXXhSaJACkbrXli6kQE1lIjEwdn6cqBIWXBqISP17hc6DHZLhy7weAAAr4kXB5swtYEDjSIp/8jzVADoAAjotMktfTTYNDHnbh8bBo0aA5DAItBwYQv79o7Rxdp8Yklykx4A2GGSTGoAKF1YAxIIlgWScKGBhQo4oQEO/CH0moMg6mQSDuLFBMNP4wlkhIIStujiizC6WAcMggx0CIp9KLYHaDH26OOPQD5ioAoq3DABh32k0scOaADp5JNQGtcDALcRSSQeMPRABlpRdulllxjgMOB1HxxAUohovqRfAHxEcsEhfACA3pd01gmlBU6c4oQZgrTSCW5pBrpSWDIoYugqiKrCQEyCNvqYF5BGisgklFZqqaWOZjqRpJxe6imlmobaUF2illrRWKameip3qrYKUViuxtW6kIuyOkprrbjmquuuvPbq66/ABivssMQWa+yxyCar7LLMNuvss9BGK+201FZr7bXYZqvtttx26+234IYr7rjklmvuueimq+667Lbr7rvwxivvvPTWa++9+Oar77789uvvvwAHLPDABBds8MEIJ6zwwgw37LBHJXmAEAgUV2zxxRhnrDHG3Ebc3QcbhyxyyB1jtsHJKKes8sost7xyyS7HLPPMKXc78s0g48wxzDr3fHO4IgwgwtBEF2300UgnbTS3HHTg9AhPQy111FNXbfVEIQwQQkAAIfkEBQoAAwAscAC6AKAAZgAACP8A6ygYQLCgwYMIEypcyLChw4cQI0qcuDAQwQAUM2rcyLGjR4UaPoocSbKkyZMoU6r0WKfBSoMhFWiIJODOAJkaBr7cyfNlTgUtGXxp07OoUZQ/E/HRcMeRzqNQo2r8iecF0EhrBKZIIbWrV4QxfxqCEWSDki9fTF14kijQ069woYoNFCmLhgBayARo0/ILHQZxA/MMy9TAgUaRFOS5o0LA1r102rwVTPnkzzBo1BiAdPMmVQ0XtkyuTFrkT0kC9QCwE3YAmZxx1JSeTfKnBUk3uch0MgAHaJlkaQv3SBVHJM8xYSjOScTT6OHQH4qtA0NQzgGHUFzAznQP1+jgIYr/zfkItQoVN9BPGJCqjx804eOLz6moB4BEBKk6YPJavv+Kc+EQAAMoYBLAgAKU9d+CICUFAB+RXAADHwAEgEdnDGYIE3mnOOEELGrE4tRzGsoXkmdkyIIKHrOUoIoqOpFYYnxe1GjjjTh6MSODOfZo447gXQfkkBsSaWRBQh4JZJJKEjnek+M1GR2UVJ4o5ZVYZqnlllx26eWXYIYp5phklmnmmWimqeaabLbp5ptwxinnnHTWaeedeOap55589unnn4AGKuighBZq6KGIJqrooow26uijkEYq6aSUVmrppZhmqummnHbq6aeghirqqKSWauqpqHr6U34btOrqq7DGVyrrrLDOGROSKNKq666y2qpCrisEK+ywxBZr7LHE2gosssw22yydG7DKa6wbTlurstbuWu20eLrQmbfgYjhSuHKywAJ75qbL3rodoMvBu/DGG+9DLbAXEAAh+QQFCgAEACyaAL4AdgBiAAAI/wA1CBxIkCCBgwgTKlzIsKHDhxAjSpyIsKAGihgzatzIkaHFix1DihzJ8aNBkihTkjTJUqXLlxhZfoRJs2ZFmS1t6nyJc+bOnyh7FgRKdKTQk0WTajzKVIHTp02jSp1KtaqCSwLuWN3KtStVSgYYfKkD1avZs2fbHFJxx1FZtHDjSs3xQkEdZmvIBjKkNKlXGEE29PoywNSFJ4n2yl3M2GKaSFkUBOhCRkCbNgC+9GEgsK/NrVqgPGkUSUMerQIMSUZAJ7ECz7AVUpldQIIEJavWKAnzEcEEMZoj1B4+PHZR2sMHVPAwKHXBUSpUwIBgQwxx4sb7oihkAbAGMgIbXf9lsJl8G84e0qtPn13p9hw4SqOHoYB+eSKyoq9f3/7n9v9OqSXIQGvZh0IWcaQB4H4e9LfTggM9Isl5GoiHQyZ9JELHDphk4iGDDTr4GYg5MBEAhQKlkcMhjnDxoX4wqiDiiL3xAgB6AgSAiWXoxQjjjH4xUIcAfDhzwSF8AMBjY0w2+YgTPzjhjhqNtNjklYypiMcnZ5yhCHggYimmXECWaeaZaKap5ppstunmm3DGKeecdNZp55145qnnnnz26eefgAYq6KCEFmrooYgmquiijDbq6KOQRirppJRWaumlmGaq6aacdurpp6CGKuqopJZq6qmopqrqqqy26uqrsMZgGpF6B4Fg66245qrrrrzqSiettX7Q67DEDvsrQRskq+yyzDbr7LPOHgvttNRWu2ydxWYrrLa+Ssvtt9nmKQIBIpRr7rnopqvuuujSyUEH8I4Qr7z0zlvvvfhKFAIBIQQEACH5BAUKAAMALLAAyABgAFgAAAj/ADUIHEiwoMGDCBMqXMiwocOHECNKnEixosWLGDNq3IhxgMePIEOKHEmypMmTKENyXMmSY8qXMGPK/Chxps2bML3o3Mmzp8+fQCVEiDChZcagSJMGhWO0qdOnUKNKnYqiqlWqWLNqtYizK0ypXsPa3EqWox2BaT4oWFs2aw4FMTSQUcu27VQMGgTQkYuGQV27UBHkBbCXS9+/gJsKBhCAsIK5fhM/XSyAcWG6khUPruwYcmajlBs3juv588rQogO8iIzY9EXKL1S3VjHbtcTFdBDQEaAlkSY1dQqxtv1aQ1zfehUkQmB4OPGKghUA0mGct6fStZ87fAu8TZAunbNr8IfIJQiG8okYxBDwGI3Y9/BDIppPf0ynKiVAjVHKv7///wDWB8GABAZo4IEIJqjgggw26OCDECIS34QUVmjhhRhmqOGGHHbo4YcghijiiCSWaOKJKKao4oostujiizDGKOOMNNZo44045qjjjjz26OOPQAYp5JBEFmnkkUgmqeSSTDbp5JNQRinllFRW2eJAHm2g5ZZcdunll2B6aSKWWWIW5plofjkmbSu06eabcMYp55x0rknnnXjm+eaJafZJl59d8mkmoISeuaILiA7ggqKMLhrfoo6SyMKklFbawaWYcqDpppx26mkLoIYqagsBAQAh+QQFCgAWACxoAHUAOAGuAAAI/wAtCBxIsKDBgwgTKlzIsKHDhxAjSpxIsaLFixgVnsnIsaPHjyBDihxJEuLGkihTqlzJsqVLPxtiupxJs6bNmzhz6tzJs6fPn0CDCh1KtKjRo0iTKl3KtKnTp1CjSp1KtarVq1izat3KtavXr2DDih1LtqzZs2jTql3Ltq3bt3Djyp1Lt67du3jz6t3Lt6/fv4ADCx5MuLDhw4gTK+4ZyAIvC40XS7b5OPLkyystY96MUoNnDZxDix5NurTp06hTq17NurXr17Bjy55Nu7bt27hz697Nu7fv38CDCx9OvLjx48iTK1/OvLnz59CjS59Ovbr169iza9/Ovbv37+DDT//+TL68edDiw55fTz5AerHmIZMniP492PKSYgwsZAEAAPvw1WeQAnzkgQAeBTLgHoBceTYQADdYEMNnATxS3xoMfvUZHgqYMhAlC0IGgCb/ZdjgZ/sJ1EAbDpo4FmgveAaiHg9qEaKLDSoEAI04egUjQY/1CN9Ba1CyhIpCaqUAfQLxR9+NSVbF3pKQReljeVZeOaWAWXbp5ZdghinmmGSWaeaZGRagJhVsSgAHmlKt2aabcFa05Z145jllnRTp6eefd/JpJ6CEFipon4Um6uehSe3JaKPsPQoplpIqtV6lk8aHqVGObjpUoJ4GBWqoP+FJaqmjnrqTnqquymqrOP3/CetNi85q06u21iRrrjOZyuutqf7qkhfEFjvJsW/IaeyyzDbr7LPQRivttNRSm+Jyzg5QBgRjVOvtt+CGK660nSwAHbIQlFGCFNx2i+648MYr77genIvuBMp8gciyc+27SLcL1Oscul9M0ES7NkSgsLKICKsSwU0McQW7A6SLsMMsyQlEFhMIoAUZAbTRRAAUz2vyySh7MZ2aBgggxREeGHGHCgAE0nESCPub8s48S7uyFKKsoQQQE3hQHgKW0JFzz0w3/W+xTT73xgDQeDAIAUiooMCGnp2z9NNOh51y1AOzK4MlZGzdiAY4TNCH1jN8DbbYdMdLdnMJQwKz1m6r/3CBAm+vUrG7c9dt+Lh3MxeBMKk4IIglkMOgwd9vg8Fu4ZgfrrnPVUa3xAypeEYDA233kcoX+mYu0OasR5v4cr5UkXfIkKOwtSIwTCOBBJBF8EsJb6I19+vJebF3Jy9IEUDRmPhXxQGoRBHBfk2U60sombeuPfHFN5nML2VkwIPSPJSBddRCFJQs1GEN3zneamKBigycQPDLKd6oQcEAwbhiTAJv8B7k1vcvsbiPS8ppAiCeBocHuKECCVPFA+yHtmBMb3XNwKD2Ngg27h3HC6E7xTzAAAcwCGMWUSiXhN4AB0tgoQDDWF0nVki4d3HwcB78oHyqcD0BumIOEohdM//2dZAa3pB1OSxOvEhBwCNyMIlKZIUNNZg9Kjpxe+9TnBS3mL0uXvGJWcQYTTooRp2QsYwZs+G70NgSNa6RjTcpXIvg2EadvcNodCSJ6yxQLgTmsSPOAlIL/fjHlBCykIhMpCIXychGOvKRkIykJCdJyUpa8pKHMprAQMDJTnryk6AMpShB+UdN7ucDo0ylKlNZSq7F5JWwjKUsZ0nLWbaylrjMpS5hWchV+hKVvyTlLYNJTF8uUgQ7FIEyl8nMZjrzmdBU5h850IFqjsCa18wmNrXJzW42JAQWACcm/ZKEcprTnH45gzrXyc52nuQ31EhGPOcpz1nY8572HKdG3LkETpsEBAAh+QQFCgAJACxrAHUANQGuAAAI/wATCBxIsKDBgwgTKlzIsKHDhxAjSpxIsaLFixgPbsjIsaPHjyBDihxJsuHGkihTqlzJsuXKHRtiupxJs6bNmzhz6tzJs6fPn0CDCh1KtKjRo0iTKl3KtKnTp1CjSp1KtarVq1izat3KtavXr2DDih1LtqzZs2jTql3Ltq3bt3Djyp1Lt67du3jz6t3Lt6/fv4ADCx5MuLDhw4gT002TAEcCxooj13QMWbJllZUvay6poLOCzaBDix5NurTp06hTq17NurXr17Bjy55Nu7bt27hz697Nu7fv38CDCx9OvLjx48iTK1/OvLnz59CjS5/ue4F1DxM0ZKeOF7t37dzzev8GH/7u+M/l06tfz769e+To38vtLD+udvL14TLQkB/ul/39vQVAAvwF6BYgBRqoFgMBEKjgWmcIlOCDZ+HRgIMUqqXIhBmWtQd+HZoFYohijUciWhyeWKKKLLbo4oswxijjjDTWaOONOOao44489ujjj0AGKeSQRBZp5JFIJqnkkkw26eSTUEYp5ZRUVkmVJZ3ME8qWXHbp5ZdghinmmGSWaeaZaKap5ppstkmmhFpl6eacdNZp55145olnJypoxYmegAYq6KCEFjrPVlQYquiijDZaKKKORirppJSOCWmilWaq6aaCXsrpp6CGqqanopZq6qlaeXDqpgMIAMGqsKr/0CdWsGZqwCwDMMJKraXKmhWvlcLxzBe7FltAM28AG+ysVykr6QBw3PLqtMciu4izkvpKK7aFElNFdmAs0cQKB0ARxjJflEEtt45q2yy7nTaWgRsyvGCBBgJ0gQQBt7ThqhTwNuquVQEHKpAYEPRyQB9xMGDEHQx+oAK/MwQjhoRI2FNwoANXtbGeR1iiihS0CGIAEPulrB0CC1zQCUFDHPwxnh1TNXOeuDRRDCUTDEKAHbIGTYZ2R0QhEDNHyGztzXPWPBXTgA4tdSMq4KBBH5ZYckENBC5A0NJQt+m0VGHTecsmxwJxidAwqHCBAliXsAQiZhw8UNlNM0sw3m0S/zNQIxm4k0lnbb+NtRCvZtMzJ51UAzbfaY4dFeRtDlSELRAIk/UNGlgtSSIIIxLKJl9TvqbkUJneZhQR1CCFAG0E3VkOkgDcJeuqn663x7m7+fq3ogQAQAoLV9u72LvbfHybAcCwBx2QRNNAAGM8vjyaqD91PZsDAOy9FLZvvyap4pe/KPnmpz8o+uq3nydXxrov/53wz2+/nSPyfv/+bHql5bUA5J8Aw/QyKxnwgAhMoAIXyMAGOvCBEIygBCdIwQpa8IIlIk9MNsjBDnrwgyD8YALvYzmJhfCEKAzhCIW2gha68IUwjKEMZyjDFdLwhjjM4QsVmMIemtCHHeThD0+BSEQUOtAFSHSQC5T4kSUuEYEsiKIUp9iBKlqRA1jMoha3yMUWePGLYGwBBgVTAQxgw4xlPONeiBicZLiRGm+cRRznOEaTnOGOeMSjTQICACH5BAUKAAEALGgA6ADoADgAAAj/AAMIFAjq3ryDCBMqXMiwocOHECNKnEixosWLGDNCBBVAhYqBAQpqHEmypMmTKFOiBGXJoweBpIqpnEmzps2bOC11fOlBJs6fQIMKFeryZYChSJMqXVqxaEemUKNKHeoR5NSrWLOWrDpQq9evYBtyhRm27DuzV0GSRcu2LVK1R90mjStXK9y6ePOmvKu3ZiqBEx58OTCmr1S+hlOaCcnDTBMDJaQsSswUMWWTT2UqyxC4UwlixXy5OmumSLFYHWVQuLxXLeuTUzqKHFClyWlz2XSV4FHsM4UAFTqCfo3ZNfGSw1xNqNKJCIIEV4AMiLLkyrRDDIYpW4AlgGifxzVa/w6vMbmMGhY8EHiARMCtx8tiNCO2MzP5jOPvU2xiRuaTA1NMoYERd2gAAAkTAIDACxEEM0EGnOg3Un4SRnRLSJAFowRtCiiw0wTPSQJBR0eBsg14FU5EYYoPVWBaExokQgAXJHoogwaWOFBYjc+cxaKKxv1IUQ02IFFUIyrgMKAHlthA12pCUrRilA19QcECTGoAg5YK9LHcAKH4SKWUQY4Z0Rdm4Mjlll6CAaaYcJrJEGBGySkRBDXcwiSSSvaRCJ52UuQUXYE6JEUZbWTZYQ4ihlloRIM++lAAh1axHAEzCkCopGK5tBanDBHgAB9iLHMoAZuCqlCkqjKEJwSSvfraqkOszprQUWSlautBLeFIEIq7BjvphySKJOyxc/YK17LMNuvss9BGK620RWFp7bTYZqvtttx26+234IYr7rjklmvuueimq+667Lbr7rvwxivvvPTWa++9+Oar77789uvvvwAHLPDABBds8MEIJ6zwwgw37PDDEEcs8cQUV2zxxRhnrPHGHHfsMcdZ0gnCyCSXbPLJKKdc8scsN8vTQCB8qPLMNKPc8s1q+brBzjz37PPPQActNM5E1yj00UgnzXPRRMcsc80rwwz1yUzjHPPUNIOEtdNVN13j1yKUG3bYXX/MQQfejdCB2iN453bbbMctd9zRhuD2wQEBACH5BAUKAAAALGgA6ADoADgAAAj/AAEA0KBBIIV6+RIqXMiwocOHECNKnEixosWLGDNq3Kivo8ePzwYKHKgBzL6THPGpXMmyZUqXL2PKnEmz5keSIwEcvGezp8+fQIMGnaBipAqeQpMqXcqUqciRH5tKnUq1atSr+nIOxGq1q9evQLXqJAUTrNmzaC2KRco2rdu3cLPm1MA1rt27VT14yFkXr9++f2Pq5Qs4sOHDKQdDLYy4seOJig0yfpzxFslNbe1N3kzZYuSxnWkGAwCKAqwJp8pq5hya42fWrSMKg0P2HrzSTYjqBKCK7GhSpwSqKoUQdmyHr40fZ4irqLKVm+BYUIa6E+17BheQLhEvs/LjyZe//8x22V6pGgSOiPJVD84DOdXhDMM1qIT3763Dix8vC3U9JXAMcAsxtrnyQBX7kKTXdas1uF9F+j2IETTBKASHLybtdQp708ChijD3+MJgbfdJKFGEJlYk0DMUUOdGMC8s0MYUzxQTRRFW2HJPh+w9Aw+J+IG312IpTgjHkbfoM0wGQdDyxBdSfNGHEmJwQooZR7oX5H4oFlmRHCR+AYYHAWghAwFtNEFAlDwRV6KXEHUJJ0WsPLGmekbcQaYVC6BZwzsobcnlkJLNiZEUq6ihBKIoLKgXApbQwYiDlAr6mKMEWfogAJRYIgwBXGBKRqMOhPKmpo4JRFCmqC4HgQ2hkv8xUCOZ4IACHY1KeqqhWKm6aqu7BivssMRmBsAAFKyqAAy3MoCrKMvQUyyvvpIK7LTYZostBFsokCldzqoABrLaelktCuXC+WobC2hwgwK20pHIq9ced+5O6aYIJbvK5nABvfXmp2BRQPKqIgQEVKHCCQQkLABoxQXcGCgFNboqi5UaLFF6e9gwwAANQ6wxYCE9papYKKes8sost+zyyyorq+ysTtS8hSCNWBAIzDz37PPPQAct9NBEF62qDHbgocgZonwSqtFQRy311FRX7bO3WGfCgMUKWO3112CHLXbKXHM99tlop632z2VbvPbbcMeddtuNym333XgbTTcKefed7fffK+8N+OCEF2744YgnrvjijDfu+OOQRy755JRXbvnlmGeu+eacd+554asevcHopJdu+umop17656y7XLFRJKku++ypt257zEWtoPvuvPfu++/AB3/78FrlHvzxyCe/O/HMnxw77abPBf3pzTO/wfPToy799NV374JI34dvst7jd/85CywAgP76HajvfvscxC///PRz4HIL7iceEAAh+QQFCgAFACxuAOgA4wA4AAAI/wALCBxIsKDBgwgTKlzIsKHDhxAjSpxIMZ/FixjrDYRjqYBFiiBDihxJsqTJihlT3ivQ0ePJlzBjypxZUmVGjxpa0tzJs6fPlzZd3rNnz5LRn0iTKl1a0GbKo0yjSp160mlGqFSzat260Gq9r/mwch1LNqtXsGLLIv0oNJ/AoV8P7nurUq1MuBdz2lV6ka5bj3Dl+r25Fyjee3oLJ8XHGN/gxvaaelVs8jBiDZTXvh34cR/RyJwnZyZpOfHoni1JAb4JmaDT0yJLY4a9s5NAONM+Y1zN2DXkvrRByg4uk1gVlwThJM+gGmFd4hKHQ4fZ8Zm+uBPAGFtwm+Hv6dEPm/8GT7r7Hbe7jrRSrq8guwW1CvgCzPsv+YbS749c2bzAKQqlCCCECgbdc8sECxxFCn9g6edQfg7GRtAzSsABhDDEZDAQMXIxOFSE3ok3G4gg6ZTdAzyocEcnGZJShXIJfUdijCLOCBI8E7CkTT2l1LBAHcygmIEvRTB3Dyy+8WajczUuGR5vRgTxwQFSVPlFGe/Q8xl99dnn5GOXffnQde2BxdwAFmgQQBdkBNBGHQCEAYRnv8koJpjj3anQb4tYSYEGRtyhZgoKAICBEaGcpWeXeS7a4UVSlKCGAZEqgMKlOUlJxyJkvkbiWUOl5ahkZhbQhAbCEOAJppamkZMDiVr/ZSOoYY5KI5kQ2CDDAmQI1EgmOKDQR06bdvrcp5YlK6qtoV3n0RdH6KUASxdkQoely9DT5W4zJqusTsyS+lYz8nlwKQwaVDssGAPEta2XEcqqUa3hkvpXBrm2cekNGgTbRyIFSNAemGwhG1SD4NZL8DxLlKGvubzicQEEWhqb0qzPNcZSwgpbDNcAG58QgKoCvEuYwUGxpLLCDFXRBAB8RCLJIXw0IAAeHrCsM0lWPOLEz2yo0Uia0+5s9EQQf6IIziAszcDRUEeUE8QJQhz11Q5NbenUWHfdstZcey32QWCHPfbZt5U9Itpst+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==",ddt={distance:"m",path:"m",angle:"\xB0",surface:"m\xB2"},Adt="measure2d_measurements",udt={name:"BIMDataMeasure2D",components:{ColorSelector:lT,BIMDataEmpty:kp},data(){return{guide:cdt,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`${Adt}-${this.carrier}`},model(){return this.pluginViewer.model},isCalibrated(){return this.carrier!=="plan"||this.model&&this.model.size_ratio!=null},standard(){return this.model.size_ratio||1}},watch:{model(t){t&&this.setStandard(t.size_ratio)},currentGroup(t){this.measurements.forEach(e=>{e.visible=e.group===t})},measurements(t){t.forEach(e=>{e.visible=e.group===this.currentGroup})},selectedMeasurementPlugin(t){const e=this.measurementPlugins.get(t);if(this.currentPlugin&&this.currentPlugin!==e&&(this.currentPlugin.disable(),this.pathValidationModal&&this.closePathValidationModal()),e&&(e.enable(),t==="path")){const i=this;this.$viewer.localContext.modals.pushModal({created(){i.pathValidationModal=this},render(){return _o(WL,{width:"100%",class:"bimdata-measure2d__path-validation"},{content:()=>_o("div",{style:"display: flex; justify-content: space-between; align-items: center;"},[_o("div",this.$t("measure2d.validate_path")),_o(ta,{fill:!0,radius:!0,color:"high",width:"121px",onClick:i.onPathCancel},{default:()=>this.$t("global.cancel")}),_o(ta,{fill:!0,radius:!0,color:"primary",width:"121px",onClick:i.onPathValidate},{default:()=>this.$t("global.validate")})])})}},null,{display:"banner"})}this.currentPlugin=e},currentColor(t){this.measurementPlugins.forEach(e=>{e.color=t})}},mounted(){var t,e,i,r;const o=this.$viewer.localContext.viewer;if(!o||!o.viewer){const c="Measure2d plugin cannot work without a viewer2d, dwg or plan plugin and viewer.";throw console.error(c),new Error(c)}this.carrier=o.plugin.name,this.pluginViewer=o;const s=(t=o.plugins)==null?void 0:t.ruler,n=(e=o.plugins)==null?void 0:e.surface,a=(i=o.plugins)==null?void 0:i.angle,l=(r=o.plugins)==null?void 0:r.path;this.measurementPlugins=new Map,s&&(this.measurementPlugins.set("distance",s),this.ruler2dPluginAvailable=!0,s.on("add",c=>{this.isUpdated=!0,this.makeMeasurement({type:"distance",get value(){return c.length},color:this.currentColor,object:c}),this.selectedMeasurementPlugin=null,this.currentColor=Zh()})),n&&(this.measurementPlugins.set("surface",n),this.surface2dPluginAvailable=!0,n.on("add",c=>{this.isUpdated=!0,this.makeMeasurement({type:"surface",get value(){return c.surface},color:this.currentColor,object:c}),this.selectedMeasurementPlugin=null,this.currentColor=Zh()})),a&&(this.measurementPlugins.set("angle",a),this.angle2dPluginAvailable=!0,a.on("add",c=>{this.isUpdated=!0,this.makeMeasurement({type:"angle",get value(){return c.angle},color:this.currentColor,object:c}),this.selectedMeasurementPlugin=null,this.currentColor=Zh()})),l&&(this.measurementPlugins.set("path",l),this.path2dPluginAvailable=!0,l.on("add",c=>{this.isUpdated=!0,this.makeMeasurement({type:"path",get value(){return c.length},color:this.currentColor,object:c}),this.selectedMeasurementPlugin=null,this.currentColor=Zh()})),this.currentColor=Zh(),this.carrier==="viewer2d"||this.carrier==="plan"?this.$watch(()=>this.pluginViewer.selectedStorey,c=>{this.currentGroup=c?.name}):this.$watch(()=>this.pluginViewer.model,c=>{this.currentGroup=c?.id})},onOpen(){document.addEventListener("keydown",this.onKeyDown),this.pluginViewer.viewer.ui.mode=null,this.hasBeenOpened||(this.hasBeenOpened=!0,this.$watch(()=>this.pluginViewer.model,t=>{this.measurements=[],t&&this.restoreSavedMeasurements()},{immediate:!0}))},onClose(){var t;document.removeEventListener("keydown",this.onKeyDown),this.pluginViewer.viewer.ui.mode="pick",this.selectedMeasurementPlugin=null,(t=this.pluginViewer.plugins.caliper)==null||t.disable(),this.calibrating=!1},methods:{setStandard(t){var e,i,r;[(e=this.pluginViewer.plugins)==null?void 0:e.ruler,(i=this.pluginViewer.plugins)==null?void 0:i.surface,(r=this.pluginViewer.plugins)==null?void 0:r.path].filter(Boolean).forEach(o=>{o.standard=t||1})},toggleCalibrate(){var t;this.calibrating?((t=this.pluginViewer.plugins.caliper)==null||t.disable(),this.calibrating=!1):this.onCalibrateClick()},onCalibrateClick(){this.pluginViewer.plugins.caliper.enable(this.onCalibrationValidated,this.onCalibrationCancel),this.calibrating=!0},async onCalibrationValidated(t){this.pluginViewer.plugins.caliper.disable();const e=this.$viewer.api.cloudId,i=this.$viewer.api.projectId;try{this.model.size_ratio=t,this.setStandard(t),this.$viewer.api.permissions.hasModelWritePermission&&await this.$viewer.api.apiClient.modelApi.updateModel(e,this.model.id,i,{size_ratio:t}),this.$viewer.localContext.hub.emit("alert",{type:"success",message:this.$t("measure2d.calibration_success")})}catch(r){console.error(r.message),this.$viewer.localContext.hub.emit("alert",{type:"error",message:r.message})}finally{this.calibrating=!1}},onCalibrationCancel(){this.calibrating=!1,this.pluginViewer.plugins.caliper.disable()},isHideElementDisabled(t){return t.group!==this.currentGroup},closePathValidationModal(){this.pathValidationModal.$emit("close"),this.pathValidationModal=null},onPathCancel(){this.selectedMeasurementPlugin=null,this.pathValidationModal&&this.closePathValidationModal()},onPathValidate(){const t=this.measurementPlugins.get(this.selectedMeasurementPlugin).validate();this.closePathValidationModal(),t||(this.selectedMeasurementPlugin=null)},makeMeasurement(t){const{type:e,group:i,name:r,color:o,object:s}=t;let n=o,a=!0,l;switch(e){case"distance":l=[s.startPoint,s.endPoint];break;case"angle":l=[s.startPoint,s.anglePoint,s.endPoint];break;case"surface":l=s.points;break;case"path":l=s.points;break}const c=this,d={id:s.id,group:i||this.currentGroup,unit:ddt[e],get value(){return c.standard,t.value.toFixed(2)},name:r||e,type:e,get color(){return n},get colorString(){return`#${n.toString(16).padStart(6,0)}`},set color(A){n=A,s.colorize(A)},get visible(){return a},set visible(A){a=A,s.visible=A},get points(){return l},destroy(){s.destroy()},nameEditing:!1,colorEditing:!1};return this.measurements.push(d),d},onTagClick(t){this.measurements.filter(e=>e!==t).forEach(e=>e.colorEditing=!1),t.colorEditing=!0,this.isUpdated=!0},onElementNameClick(t){t.nameEditing=!0,this.isUpdated=!0,this.$nextTick(()=>{this.$refs.elementInput&&this.$refs.elementInput.focus()})},onInputBlur(t){t.nameEditing=!1},onAddMeasurementClick(t){this.selectedMeasurementPlugin===t?this.selectedMeasurementPlugin=null:this.selectedMeasurementPlugin=t},onKeyDown(t){t.key==="Escape"&&this.onEscapeDown()},onEscapeDown(){this.selectedMeasurementPlugin=null,this.measurements.forEach(t=>{t.nameEditing=!1,t.colorEditing=!1})},onHideMeasurementClick(t){t.visible=!t.visible},onDeleteMeasurementClick(t){t.destroy(),this.measurements.splice(this.measurements.indexOf(t),1),this.isUpdated=!0},getSavedMeasurements(){let t={};try{const e=localStorage.getItem(this.storageKey)||"{}";t=JSON.parse(e)}catch{localStorage.removeItem(this.storageKey)}return t},restoreSavedMeasurements(){const t=String(this.pluginViewer.model.id),e=this.getSavedMeasurements(),i=e[t]||[];try{this.ruler2dPluginAvailable&&this.restoreMeasurements(i.filter(r=>r.type==="distance")),this.surface2dPluginAvailable&&this.restoreMeasurements(i.filter(r=>r.type==="surface")),this.angle2dPluginAvailable&&this.restoreMeasurements(i.filter(r=>r.type==="angle")),this.path2dPluginAvailable&&this.restoreMeasurements(i.filter(r=>r.type==="path"))}catch{e[t]=[],localStorage.setItem(this.storageKey,e)}},restoreMeasurements(t){t.forEach(e=>{const i=this.measurementPlugins.get(e.type).create(e.points);i.colorize(e.color),this.makeMeasurement({type:e.type,group:e.group,name:e.name,color:e.color,object:i,get value(){return e.type==="surface"?i.surface:e.type==="angle"?i.angle:i.length}})})},onSaveMeasurementsClick(){const t=String(this.pluginViewer.model.id),e=this.getSavedMeasurements();e[t]=this.measurements.map(i=>({type:i.type,group:i.group,name:i.name,color:i.color,points:i.points})),localStorage.setItem(this.storageKey,JSON.stringify(e)),this.isUpdated=!1}}},hdt={class:"bimdata-measure2d"},pdt={key:0,class:"bimdata-measure2d__actions-0"},gdt={class:"bimdata-measure2d__actions-1"},fdt={class:"bimdata-measure2d__actions-2"},mdt={class:"bimdata-measure2d__list"},vdt={class:"bimdata-measure2d__list__element"},Cdt={class:"bimdata-measure2d__list__element__label"},ydt=["onClick"],Idt={class:"bimdata-measure2d__list__element__tag"},wdt=["onClick"],bdt={class:"bimdata-measure2d__list__element__buttons"},Bdt={key:2,class:"bimdata-measure2d--not-calibrated"},Edt={key:0,class:"bimdata-measure2d--not-calibrated__guide"},kdt=["src"];function xdt(t,e,i,r,o,s){const n=P("BIMDataIconSave"),a=P("BIMDataButton"),l=P("BIMDataIconCaliper"),c=P("BIMDataIconDistance"),d=P("BIMDataIconAngle"),A=P("BIMDataIconSurface"),u=P("BIMDataIconPathway"),h=P("BIMDataIcon"),g=P("BIMDataInput"),p=P("ColorSelector"),m=P("BIMDataIconHide"),f=P("BIMDataIconShow"),v=P("BIMDataIconDelete"),C=P("BIMDataPaginatedList"),y=P("BIMDataIllustration"),I=P("BIMDataEmpty"),B=Ti("click-away");return x(),U("div",hdt,[s.model?s.isCalibrated?(x(),U(ht,{key:1},[b("div",gdt,[F(a,{class:"bimdata-measure2d__actions-1__btn-save",color:"primary",fill:"",radius:"",icon:"",disabled:!o.isUpdated,onClick:s.onSaveMeasurementsClick},{default:G(()=>[F(n,{size:"xs",margin:"0 6px 0 0"}),b("span",null,z(t.$t("measure2d.save_measurements")),1)]),_:1},8,["disabled","onClick"]),t.$viewer.api.permissions.hasModelWritePermission&&o.carrier==="plan"?(x(),W(a,{key:0,color:o.calibrating?"primary":"default",fill:"",radius:"",icon:"",class:"bimdata-measure2d__actions-1__caliper",onClick:s.toggleCalibrate},{default:G(()=>[F(l,{size:"xs"})]),_:1},8,["color","onClick"])):he("",!0)]),b("div",fdt,[o.ruler2dPluginAvailable?(x(),W(a,{key:0,color:o.selectedMeasurementPlugin==="distance"?"primary":"default",fill:"",radius:"",onClick:e[0]||(e[0]=E=>s.onAddMeasurementClick("distance"))},{default:G(()=>[F(c,{size:"s",margin:"0 6px 0 0"}),b("span",null," + "+z(t.$t("measure2d.distance_measurement")),1)]),_:1},8,["color"])):he("",!0),o.angle2dPluginAvailable?(x(),W(a,{key:1,color:o.selectedMeasurementPlugin==="angle"?"primary":"default",fill:"",radius:"",onClick:e[1]||(e[1]=E=>s.onAddMeasurementClick("angle"))},{default:G(()=>[F(d,{size:"s",margin:"0 6px 0 0"}),b("span",null," + "+z(t.$t("measure2d.angle_measurement")),1)]),_:1},8,["color"])):he("",!0),o.surface2dPluginAvailable?(x(),W(a,{key:2,color:o.selectedMeasurementPlugin==="surface"?"primary":"default",fill:"",radius:"",onClick:e[2]||(e[2]=E=>s.onAddMeasurementClick("surface"))},{default:G(()=>[F(A,{size:"s",margin:"0 6px 0 0"}),b("span",null," + "+z(t.$t("measure2d.surface_measurement")),1)]),_:1},8,["color"])):he("",!0),o.path2dPluginAvailable?(x(),W(a,{key:3,color:o.selectedMeasurementPlugin==="path"?"primary":"default",fill:"",radius:"",onClick:e[3]||(e[3]=E=>s.onAddMeasurementClick("path"))},{default:G(()=>[F(u,{size:"s",margin:"0 6px 0 0"}),b("span",null," + "+z(t.$t("measure2d.path_measurement")),1)]),_:1},8,["color"])):he("",!0)]),b("div",mdt,[o.measurements.length>0?(x(),W(C,{key:0,list:o.measurements,"element-key":"id",style:{overflow:"unset"}},{element:G(({element:E})=>[b("div",vdt,[b("div",Cdt,[F(h,{name:E.type==="path"?"pathway":E.type,size:"m",margin:"0 12px 0 0"},null,8,["name"]),E.nameEditing?(x(),W(g,{key:0,ref:"elementInput",modelValue:E.name,"onUpdate:modelValue":k=>E.name=k,onBlur:k=>E.nameEditing=!1,onKeypress:Kt(k=>E.nameEditing=!1,["enter"])},null,8,["modelValue","onUpdate:modelValue","onBlur","onKeypress"])):(x(),U("span",{key:1,onClick:k=>s.onElementNameClick(E)},z(E.name),9,ydt))]),b("div",Idt,[b("span",{class:"bimdata-measure2d__list__element__tag__content",style:pe(`color: ${E.colorString}; background-color: ${E.colorString}20;`),onClick:k=>s.onTagClick(E)},z(E.value)+" "+z(E.unit),13,wdt),E.colorEditing?Bt((x(),W(p,{key:0,class:"bimdata-measure2d__list__element__tag__color-selector","selected-color":E.color,onColorSelect:k=>{E.color=k.value,E.colorEditing=!1}},null,8,["selected-color","onColorSelect"])),[[B,()=>{E.colorEditing=!1}]]):he("",!0)]),b("div",bdt,[F(a,{icon:"",class:"m-r-6",color:"granite",ghost:"",radius:"",disabled:s.isHideElementDisabled(E),onClick:k=>s.onHideMeasurementClick(E)},{default:G(()=>[E.visible?(x(),W(m,{key:0,size:"s"})):(x(),W(f,{key:1,size:"s"}))]),_:2},1032,["disabled","onClick"]),F(a,{icon:"",ghost:"",radius:"",color:"granite",onClick:k=>s.onDeleteMeasurementClick(E)},{default:G(()=>[F(v,{size:"m"})]),_:2},1032,["onClick"])])])]),_:1},8,["list"])):(x(),W(I,{key:1,message:t.$t("measure2d.empty")},{default:G(()=>[F(y,{name:"emptyBucket"})]),_:1},8,["message"]))])],64)):(x(),U("div",Bdt,[o.calibrating?(x(),U("div",Edt,[b("img",{src:o.guide},null,8,kdt)])):(x(),W(y,{key:1,name:"emptyMeasure"})),b("div",null,z(o.calibrating?t.$t("measure2d.calibrating"):t.$t("measure2d.not_calibrated")),1),F(a,{color:"primary",fill:"",radius:"",icon:"",width:"150px",disabled:o.calibrating,onClick:e[4]||(e[4]=E=>s.onCalibrateClick())},{default:G(()=>[F(l,{size:"s",margin:"0 var(--spacing-unit) 0 0"}),st(" "+z(t.$t("measure2d.calibrate")),1)]),_:1},8,["disabled"])])):(x(),U("div",pdt,z(t.$t("measure2d.no_model"))+". ",1))])}const Qdt=V(udt,[["render",xdt]]),Mdt="Speichern",Sdt="Entfernung",Ddt="Winkel",Pdt="Oberfl\xE4che",Rdt="Weg",Fdt="Sie haben derzeit keine gespeicherten Messungen.",Ldt="Umbenennen",Tdt="Farbe \xE4ndern",Ndt="Messger\xE4t",Udt="Klicken Sie auf \u201EBest\xE4tigen\u201C, um die Zeichnung zu beenden.",Odt="Kalibrierung",Hdt="Bitte skizzieren und best\xE4tigen Sie Ihren Standard",jdt="Um das Messwerkzeug verwenden zu k\xF6nnen, stellen Sie sicher, dass Sie Ihren Plan kalibriert haben.",Gdt="W\xE4hlen Sie ein Modell aus, um Messungen durchf\xFChren zu k\xF6nnen.",Vdt="Es muss sich um eine strikte positive Zahl handeln",qdt="Plan erfolgreich kalibriert",_dt={save_measurements:Mdt,distance_measurement:Sdt,angle_measurement:Ddt,surface_measurement:Pdt,path_measurement:Rdt,empty:Fdt,rename:Ldt,update_color:Tdt,tooltip:Ndt,validate_path:Udt,calibrate:Odt,calibrating:Hdt,not_calibrated:jdt,no_model:Gdt,modal_error:Vdt,calibration_success:qdt},zdt="Save",Kdt="Distance",Jdt="Angle",Ydt="Surface",Wdt="Path",Zdt="There is currently no saved measurement.",Xdt="Rename",$dt="Update color",eAt="Measurement tool",tAt="Click on \u201Cvalidate\u201D to end the path.",iAt="Calibration",rAt="Please trace and validate your stallion",oAt="To use the measurement tool, make sure you have calibrated your plan.",nAt="Select a model to be able to perform measurements",sAt="Must be a strictly positive number",aAt="Successfully calibrated plan",lAt={save_measurements:zdt,distance_measurement:Kdt,angle_measurement:Jdt,surface_measurement:Ydt,path_measurement:Wdt,empty:Zdt,rename:Xdt,update_color:$dt,tooltip:eAt,validate_path:tAt,calibrate:iAt,calibrating:rAt,not_calibrated:oAt,no_model:nAt,modal_error:sAt,calibration_success:aAt},cAt="Guardar",dAt="Distancia",AAt="\xC1ngulo",uAt="Superficie",hAt="Camino",pAt="Actualmente no hay ninguna medici\xF3n guardada.",gAt="Renombrar",fAt="Actualizar color",mAt="Herramienta de medici\xF3n",vAt="Haga clic en \xE2\u20AC\u0153validar\xE2\u20AC para finalizar el camino.",CAt="Calibraci\xF3n",yAt="Rastree y valide su patr\xF3n",IAt="Para poder utilizar la herramienta de medici\xF3n, aseg\xFArese de haber calibrado su plano.",wAt="Seleccionar un modelo para poder realizar mediciones",bAt="El n\xFAmero debe ser necesariamente positivo",BAt="Plano calibrado de forma correcta",EAt={save_measurements:cAt,distance_measurement:dAt,angle_measurement:AAt,surface_measurement:uAt,path_measurement:hAt,empty:pAt,rename:gAt,update_color:fAt,tooltip:mAt,validate_path:vAt,calibrate:CAt,calibrating:yAt,not_calibrated:IAt,no_model:wAt,modal_error:bAt,calibration_success:BAt},kAt="Sauvegarder",xAt="Distance",QAt="Angle",MAt="Surface",SAt="Chemin",DAt="Vous n\u2019avez actuellement aucune mesure enregistr\xE9e.",PAt="Renommer",RAt="Modifier la couleur",FAt="Outil de mesure",LAt="Cliquer sur \u201Cvalider\u201D pour terminer le trac\xE9.",TAt="Etalonnage",NAt="Veuillez tra\xE7er et valider votre \xE9talon",UAt="Pour pouvoir utiliser l\u2019outil de mesure, assurez-vous d\u2019avoir calibr\xE9 votre plan.",OAt="Selectionner un model pour pouvoir r\xE9aliser des mesures",HAt="Doit \xEAtre un nombre strictement positif",jAt="Plan calibr\xE9 avec succ\xE8s",GAt={save_measurements:kAt,distance_measurement:xAt,angle_measurement:QAt,surface_measurement:MAt,path_measurement:SAt,empty:DAt,rename:PAt,update_color:RAt,tooltip:FAt,validate_path:LAt,calibrate:TAt,calibrating:NAt,not_calibrated:UAt,no_model:OAt,modal_error:HAt,calibration_success:jAt},VAt="Salva",qAt="Distanza",_At="Angolo",zAt="Superficie",KAt="Percorso",JAt="Attualmente non hai misure salvate.",YAt="Rinomina",WAt="Cambia colore",ZAt="Strumento di misura",XAt='Clicca su "OK" per completare il percorso.',$At="Calibrazione",eut="Indica e conferma il tuo campione",tut="Per poter utilizzare lo strumento di misurazione, assicurati di aver calibrato il tuo progetto.",iut="Seleziona un modello per eseguire delle misurazioni",rut="Deve essere un numero positivo",out="Progetto calibrato correttamente",nut={save_measurements:VAt,distance_measurement:qAt,angle_measurement:_At,surface_measurement:zAt,path_measurement:KAt,empty:JAt,rename:YAt,update_color:WAt,tooltip:ZAt,validate_path:XAt,calibrate:$At,calibrating:eut,not_calibrated:tut,no_model:iut,modal_error:rut,calibration_success:out},sut={name:"measure2d",i18n:{de:_dt,en:lAt,es:EAt,fr:GAt,it:nut},component:Qdt,addToWindows:["2d","dwg","plan"],button:{tooltip:"measure2d.tooltip",position:"right",content:"panel",keepOpen:!0,icon:{component:"BIMDataIconMeasure",options:{size:"m"}}}},aut={name:"BIMDataMeasure3D",components:{BIMDataEmpty:kp,ColorSelector:lT},data(){return{selectedMeasurementPlugin:null,currentPlugin:null,isUpdated:!1,measurements:[],distanceMeasurementId:1,angleMeasurementId:1,spacingMeasurementId:1,spacingMeasurementEnabled:!1}},computed:{displayedMeasurements(){const t=this.$viewer.localContext.loadedModelIds;return this.measurements.filter(e=>e.modelIds.some(i=>t.includes(i)))}},watch:{selectedMeasurementPlugin(t,e){e&&this.plugins.get(e).control.deactivate(),t&&this.plugins.get(t).control.activate()},displayedMeasurements(t){this.measurements.forEach(e=>{e.visible=t.includes(e)})}},mounted(){const t=this.$viewer.localContext.pluginComponentInstances.get("viewer3d")||this.$viewer.localContext.pluginComponentInstances.get("pointCloud");if(!t){const r="Measure3D plugin cannot work without viewer3d or tileset plugin.";throw console.error(r),new Error(r)}this.viewer3d=t,this.spacingMeasurementEnabled=t.spacingMeasurementsPlugin,this.plugins=new Map,this.plugins.set("distance",t.distanceMeasurementsPlugin),this.plugins.set("angle",t.angleMeasurementsPlugin),this.spacingMeasurementEnabled&&this.plugins.set("spacing",t.spacingMeasurementsPlugin),this.updateCurrentColor();const e=Object.values(this.viewer3d.distanceMeasurementsPlugin.measurements).map(this.makeDistanceMeasurement),i=Object.values(this.viewer3d.angleMeasurementsPlugin.measurements).map(this.makeAngleMeasurement);if(this.measurements=[...e,...i],this.spacingMeasurementEnabled){const r=Object.values(this.viewer3d.spacingMeasurementsPlugin.measurements).map(this.makeSpacingMeasurement);this.measurements.push(...r)}this.distanceMeasurementSubscription=this.viewer3d.distanceMeasurementsPlugin.on("measurementEnd",r=>{this.measurements.push(this.makeDistanceMeasurement(r)),this.selectedMeasurementPlugin=null,this.updateCurrentColor()}),this.angleMeasurementSubscription=this.viewer3d.angleMeasurementsPlugin.on("measurementEnd",r=>{this.measurements.push(this.makeAngleMeasurement(r)),this.selectedMeasurementPlugin=null,this.updateCurrentColor()}),this.spacingMeasurementEnabled&&(this.spacingMeasurementSubscription=this.viewer3d.spacingMeasurementsPlugin.on("measurementEnd",r=>{this.measurements.push(this.makeSpacingMeasurement(r)),this.selectedMeasurementPlugin=null,this.updateCurrentColor()}))},onOpen(){this.viewer3d.highlightOnHover=!1,this.viewer3d.selectOnClick=!1,document.addEventListener("keydown",this.onKeyDown)},onClose(){if(this.viewer3d.highlightOnHover=!0,this.viewer3d.selectOnClick=!0,this.selectedMeasurementPlugin){const t=this.plugins.get(this.selectedMeasurementPlugin);t?.control.deactivate()}document.removeEventListener("keydown",this.onKeyDown),this.selectedMeasurementPlugin=null},unmounted(){var t;this.viewer3d.distanceMeasurementsPlugin.off(this.distanceMeasurementSubscription),this.viewer3d.angleMeasurementsPlugin.off(this.angleMeasurementSubscription),(t=this.viewer3d.spacingMeasurementsPlugin)==null||t.off(this.spacingMeasurementSubscription)},methods:{onTagClick(t){this.measurements.filter(e=>e!==t).forEach(e=>e.colorEditing=!1),t.colorEditing=!0,this.isUpdated=!0},updateCurrentColor(){this.currentColor=Zh(),this.plugins.forEach(t=>t.defaultColor=`#${this.currentColor.toString(16).padStart(6,0)}`)},onElementNameClick(t){t.nameEditing=!0,this.isUpdated=!0,this.$nextTick(()=>{this.$refs.elementInput&&this.$refs.elementInput.focus()})},onInputBlur(t){t.nameEditing=!1},onAddMeasurementClick(t){this.selectedMeasurementPlugin===t?this.selectedMeasurementPlugin=null:this.selectedMeasurementPlugin=t},onKeyDown(t){t.key==="Escape"&&this.onEscapeDown()},onEscapeDown(){this.selectedMeasurementPlugin=null,this.measurements.forEach(t=>{t.nameEditing=!1,t.colorEditing=!1})},onHideMeasurementClick(t){t.visible=!t.visible},onDeleteMeasurementClick(t){t.destroy(),this.measurements.splice(this.measurements.indexOf(t),1),this.isUpdated=!0},makeAngleMeasurement(t){return this.makeMeasurement(t,`angle-${this.angleMeasurementId++}`,t.angle.toFixed(2),"\xB0","angle",t.color)},makeDistanceMeasurement(t){return this.makeMeasurement(t,`distance-${this.distanceMeasurementId++}`,t.length.toFixed(2),"m","distance",t.color)},makeSpacingMeasurement(t){return this.makeMeasurement(t,`spacing-${this.spacingMeasurementId++}`,t.length.toFixed(2),"m","spacing",t.color)},makeMeasurement(t,e,i,r,o,s){let n=!0,a=!1,l=s;return{nameEditing:!1,get visible(){return n},set visible(c){n=c,t.visible=c},colorEditing:!1,get color(){return l},set color(c){l=c,t.color=c},name:e,value:i,unit:r,type:o,modelIds:this.$viewer.localContext.loadedModelIds,destroy(){a||(t.destroy(),a=!0)},get destroyed(){return a}}}}},lut={class:"bimdata-measure3d"},cut={class:"bimdata-measure3d__actions"},dut={class:"bimdata-measure3d__content"},Aut={class:"bimdata-measure3d__list__element"},uut={class:"bimdata-measure3d__list__element__label"},hut=["onClick"],put={class:"bimdata-measure3d__list__element__tag"},gut=["onClick"],fut={class:"bimdata-measure3d__list__element__buttons"};function mut(t,e,i,r,o,s){const n=P("BIMDataIconDistance"),a=P("BIMDataButton"),l=P("BIMDataIconAngle"),c=P("BIMDataIcon"),d=P("BIMDataIllustration"),A=P("BIMDataEmpty"),u=P("BIMDataInput"),h=P("ColorSelector"),g=P("BIMDataIconHide"),p=P("BIMDataIconShow"),m=P("BIMDataIconDelete"),f=P("BIMDataPaginatedList"),v=Ti("click-away");return x(),U("div",lut,[b("div",cut,[F(a,{color:o.selectedMeasurementPlugin==="distance"?"primary":"default",fill:"",radius:"",onClick:e[0]||(e[0]=C=>s.onAddMeasurementClick("distance"))},{default:G(()=>[F(n,{size:"s",margin:"0 6px 0 0"}),b("span",null," + "+z(t.$t("measure3d.distance_measurement")),1)]),_:1},8,["color"]),F(a,{color:o.selectedMeasurementPlugin==="angle"?"primary":"default",fill:"",radius:"",onClick:e[1]||(e[1]=C=>s.onAddMeasurementClick("angle"))},{default:G(()=>[F(l,{size:"s",margin:"0 6px 0 0"}),b("span",null," + "+z(t.$t("measure3d.angle_measurement")),1)]),_:1},8,["color"]),o.spacingMeasurementEnabled?(x(),W(a,{key:0,color:o.selectedMeasurementPlugin==="spacing"?"primary":"default",fill:"",radius:"",onClick:e[2]||(e[2]=C=>s.onAddMeasurementClick("spacing"))},{default:G(()=>[F(c,{name:"spacing",size:"xs",margin:"0 6px 0 0"}),b("span",null," + "+z(t.$t("measure3d.spacing_measurement")),1)]),_:1},8,["color"])):he("",!0)]),b("div",dut,[F(f,{list:s.displayedMeasurements,"element-key":"id",style:{overflow:"unset"}},{empty:G(()=>[F(A,{message:t.$t("measure3d.empty")},{default:G(()=>[F(d,{name:"emptyBucket"})]),_:1},8,["message"])]),element:G(({element:C})=>[b("div",Aut,[b("div",uut,[F(c,{name:C.type,size:"m",margin:"0 12px 0 0"},null,8,["name"]),C.nameEditing?(x(),W(u,{key:0,ref:"elementInput",modelValue:C.name,"onUpdate:modelValue":y=>C.name=y,onBlur:y=>C.nameEditing=!1,onKeypress:Kt(y=>C.nameEditing=!1,["enter"])},null,8,["modelValue","onUpdate:modelValue","onBlur","onKeypress"])):(x(),U("span",{key:1,onClick:y=>s.onElementNameClick(C)},z(C.name),9,hut))]),b("div",put,[b("span",{class:"bimdata-measure3d__list__element__tag__content",style:pe(`color: ${C.color}; background-color: ${C.color}20;`),onClick:y=>s.onTagClick(C)},z(C.value)+" "+z(C.unit),13,gut),C.colorEditing?Bt((x(),W(h,{key:0,class:"bimdata-measure3d__list__element__tag__color-selector","selected-color":parseInt(C.color.slice(1),16),onColorSelect:y=>{C.color=`#${y.value.toString(16).padStart(6,0)}`,C.colorEditing=!1}},null,8,["selected-color","onColorSelect"])),[[v,()=>{C.colorEditing=!1}]]):he("",!0)]),b("div",fut,[F(a,{icon:"",class:"m-r-6",color:"granite",ghost:"",radius:"",onClick:y=>s.onHideMeasurementClick(C)},{default:G(()=>[C.visible?(x(),W(g,{key:0,size:"s"})):(x(),W(p,{key:1,size:"s"}))]),_:2},1032,["onClick"]),F(a,{icon:"",ghost:"",radius:"",color:"granite",onClick:y=>s.onDeleteMeasurementClick(C)},{default:G(()=>[F(m,{size:"m"})]),_:2},1032,["onClick"])])])]),_:1},8,["list"])])])}const vut=V(aut,[["render",mut],["__scopeId","data-v-b6e2d727"]]),Cut="Entfernungsmessung",yut="Winkelmessung",Iut="Messung",wut="Keine Messung",but="Abstand",But={distance_measurement:Cut,angle_measurement:yut,tooltip:Iut,empty:wut,spacing_measurement:but},Eut="Distance",kut="Angle",xut="Measurement",Qut="No measure",Mut="Spacing",Sut={distance_measurement:Eut,angle_measurement:kut,tooltip:xut,empty:Qut,spacing_measurement:Mut},Dut="Medir distancia",Put="Medici\xF3n angular",Rut="Medici\xF3n",Fut="Sin mediciones",Lut="Espaciado",Tut={distance_measurement:Dut,angle_measurement:Put,tooltip:Rut,empty:Fut,spacing_measurement:Lut},Nut="Distance",Uut="Angle",Out="Mesure",Hut="Pas de mesure",jut="Espacement",Gut={distance_measurement:Nut,angle_measurement:Uut,tooltip:Out,empty:Hut,spacing_measurement:jut},Vut="Misura distanza",qut="Misura angolo",_ut="Misura",zut="Nessuna misurazione",Kut={distance_measurement:Vut,angle_measurement:qut,tooltip:_ut,empty:zut},Jut={name:"measure3d",i18n:{de:But,en:Sut,es:Tut,fr:Gut,it:Kut},component:vut,addToWindows:["3d"],button:{tooltip:"measure3d.tooltip",position:"right",content:"panel",keepOpen:!0,icon:{component:"BIMDataIconMeasure",options:{size:"m"}}}},Yut={render(){return null},async onOpen({pagesToScan:t}={}){const e=this.$viewer.localContext.viewer,i=await e.exportAsPDF({pagesToScan:t});if(i){let r=this.$viewer.localContext.loadedModels[0];r.parent_id&&(r=e.pdfPages[0]);const o=document.createElement("a");o.href=URL.createObjectURL(i),o.download=r.document.file_name,o.click(),o.remove()}setTimeout(()=>this.$close())}},Wut="data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20preserveAspectRatio='xMidYMid%20meet'%20viewBox='-5%20-5%2034%2034'%20%3e%3cpath%20fill='%232F374A'%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",Zut={name:"pdfExport",component:Yut,addToWindows:["plan"],button:{position:"right",tooltip:"pdfExport.title",icon:{imgUri:Wut}},i18n:{en:{title:"PDF Export"},fr:{title:"Export PDF"}}},Xut={props:{width:{type:String,default:"32px"},height:{type:String,default:"32px"},accept:{type:String,default:""}},emits:["change"],methods:{onClick(){this.$refs.input.click()},onFileChange(t){const e=t.target.files&&t.target.files[0]?t.target.files[0]:null;this.$emit("change",e)}}},$ut=["accept"];function eht(t,e,i,r,o,s){const n=P("BIMDataIconAddFile"),a=P("BIMDataButton");return x(),W(a,{style:{padding:"5px"},width:i.width,height:i.height,color:"primary",outline:"",radius:"",icon:"",onClick:s.onClick},{default:G(()=>[F(n,{size:"xs"}),mt(t.$slots,"default"),b("input",{ref:"input",type:"file",hidden:"",accept:i.accept,onChange:e[0]||(e[0]=(...l)=>s.onFileChange&&s.onFileChange(...l))},null,40,$ut)]),_:3},8,["width","height","onClick"])}const tht=V(Xut,[["render",eht]]),iht={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(t){this.$viewer.localContext.hub.emit("alert",{type:"error",message:t&&t.message})},onSuccess(t){this.$viewer.localContext.hub.emit("alert",{type:"success",message:t&&t.message})},onSelectionChange(t){const e=t.map(({document:i})=>i);this.$emit("selection-change",e)}}};function rht(t,e,i,r,o,s){const n=P("BIMDataFileManager");return x(),W(n,{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:s.selectMode,multi:i.multiSelectMode,"header-buttons":i.headerButtons,"header-search":i.headerSearch,locale:t.$i18n.locale,"already-selected-ids":i.alreadySelectedIds,"selectable-file-types":i.selectableFileTypes,"view-pdf":"",onSelectionChange:s.onSelectionChange,onError:s.onError,onSuccess:s.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 QB=V(iht,[["render",rht]]),oht={components:{FileInput:tht,BIMDataGED:QB},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(t){t.name?this.pdfToView=t:this.pdfToView=this.file,this.back()}}},nht={class:"pdf-viewer"},sht={class:"pdf-viewer__content"},aht={key:1},lht={key:0,class:"pdf-viewer__content--empty"},cht={class:"flex items-center justify-center m-t-18"},dht={class:"m-l-6"},Aht={class:"m-l-6"},uht={key:1,class:"pdf-viewer__content--ged"},hht={class:"p-x-12"},pht={class:"pdf-viewer__content--ged__buttons flex items-center justify-between"};function ght(t,e,i,r,o,s){const n=P("BIMDataIconArrow"),a=P("BIMDataButton"),l=P("BIMDataPDFViewer",!0),c=P("BIMDataIllustration"),d=P("FileInput"),A=P("BIMDataIconFolder"),u=P("BIMDataGED");return x(),U("div",nht,[b("div",sht,[o.pdfToView?(x(),W(l,{key:0,pdf:o.pdfToView,header:""},{"header-left":G(()=>[F(a,{class:"m-l-12",width:"32px",height:"32px",color:"primary",ghost:"",radius:"",icon:"",onClick:s.onCloseClick},{default:G(()=>[F(n,{size:"xxs"})]),_:1},8,["onClick"])]),_:1},8,["pdf"])):(x(),U("div",aht,[o.isGedOpen?he("",!0):(x(),U("div",lht,[F(c,{name:"emptyPdf",x:"90",y:"90"}),b("h3",null,z(t.$t("pdf.title")),1),b("div",cht,[F(d,{accept:"application/pdf",onChange:s.loadFile},{default:G(()=>[b("div",dht,z(t.$t("pdf.empty")),1)]),_:1},8,["onChange"]),F(a,{class:"m-l-12",color:"primary",outline:"",radius:"",onClick:s.onOpenGedClick},{default:G(()=>[F(A,{fill:"",color:"default",size:"xxs"}),b("span",Aht,z(t.$t("pdf.openGed")),1)]),_:1},8,["onClick"])])])),o.isGedOpen?(x(),U("div",uht,[b("div",null,[b("h3",hht,z(t.$t("pdf.title")),1)]),F(u,{"header-buttons":!0,"single-select-mode":"","selectable-file-types":["pdf"],onSelectionChange:e[0]||(e[0]=h=>o.file=h[0])}),b("div",pht,[F(a,{class:"pdf-viewer__content--ged__validate",outline:"",color:"primary",radius:"",width:"48%",onClick:s.back},{default:G(()=>[b("span",null,z(t.$t("pdf.cancel")),1)]),_:1},8,["onClick"]),F(a,{class:"pdf-viewer__content--ged__validate",fill:"",color:"primary",radius:"",width:"48%",onClick:s.loadFile},{default:G(()=>[b("span",null,z(t.$t("pdf.validate")),1)]),_:1},8,["onClick"])])])):he("",!0)]))])])}const fht=V(oht,[["render",ght],["__scopeId","data-v-68ab9d79"]]),mht="PDF-Viewer",vht="Bitte w\xE4hlen Sie eine Datei aus oder legen Sie sie in diesem Fenster ab.",Cht="PDF-Viewer",yht="EDM \xF6ffnen",Iht="Abbrechen",wht="Best\xE4tigen",bht={window_label:mht,empty:vht,title:Cht,openGed:yht,cancel:Iht,validate:wht},Bht="PDF Viewer",Eht="No file selected. Please select a file or drag it on the window.",kht="PDF Viewer",xht="Files",Qht="Cancel",Mht="Validate",Sht={window_label:Bht,empty:Eht,title:kht,openGed:xht,cancel:Qht,validate:Mht},Dht="Visor de PDF",Pht="No hay ning\xFAn archivo seleccionado. Seleccione un archivo o arr\xE1strelo a la ventana.",Rht="Visor de PDF",Fht="Abrir la GED",Lht="Cancelar",Tht="Validar",Nht={window_label:Dht,empty:Pht,title:Rht,openGed:Fht,cancel:Lht,validate:Tht},Uht="Visionneuse PDF",Oht="Selectionner un fichier",Hht="Visionneuse PDF",jht="Ouvrir la GED",Ght="Annuler",Vht="Valider",qht={window_label:Uht,empty:Oht,title:Hht,openGed:jht,cancel:Ght,validate:Vht},_ht="Visualizzatore PDF",zht="Seleziona un file.",Kht={window_label:_ht,empty:zht},Jht="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",Yht={name:"pdf",i18n:{de:bht,en:Sht,es:Nht,fr:qht,it:Kht},component:fht,window:{name:"pdf",noModel:!0,label:"pdf.window_label",icon:{imgUri:Jht}}};function Wht(t){return function(e){return t?.[e]}}var Zht=Wht,Xht=Zht,$ht={\u00C0:"A",\u00C1:"A",\u00C2:"A",\u00C3:"A",\u00C4:"A",\u00C5:"A",\u00E0:"a",\u00E1:"a",\u00E2:"a",\u00E3:"a",\u00E4:"a",\u00E5:"a",\u00C7:"C",\u00E7:"c",\u00D0:"D",\u00F0:"d",\u00C8:"E",\u00C9:"E",\u00CA:"E",\u00CB:"E",\u00E8:"e",\u00E9:"e",\u00EA:"e",\u00EB:"e",\u00CC:"I",\u00CD:"I",\u00CE:"I",\u00CF:"I",\u00EC:"i",\u00ED:"i",\u00EE:"i",\u00EF:"i",\u00D1:"N",\u00F1:"n",\u00D2:"O",\u00D3:"O",\u00D4:"O",\u00D5:"O",\u00D6:"O",\u00D8:"O",\u00F2:"o",\u00F3:"o",\u00F4:"o",\u00F5:"o",\u00F6:"o",\u00F8:"o",\u00D9:"U",\u00DA:"U",\u00DB:"U",\u00DC:"U",\u00F9:"u",\u00FA:"u",\u00FB:"u",\u00FC:"u",\u00DD:"Y",\u00FD:"y",\u00FF:"y",\u00C6:"Ae",\u00E6:"ae",\u00DE:"Th",\u00FE:"th",\u00DF:"ss",\u0100:"A",\u0102:"A",\u0104:"A",\u0101:"a",\u0103:"a",\u0105:"a",\u0106:"C",\u0108:"C",\u010A:"C",\u010C:"C",\u0107:"c",\u0109:"c",\u010B:"c",\u010D:"c",\u010E:"D",\u0110:"D",\u010F:"d",\u0111:"d",\u0112:"E",\u0114:"E",\u0116:"E",\u0118:"E",\u011A:"E",\u0113:"e",\u0115:"e",\u0117:"e",\u0119:"e",\u011B:"e",\u011C:"G",\u011E:"G",\u0120:"G",\u0122:"G",\u011D:"g",\u011F:"g",\u0121:"g",\u0123:"g",\u0124:"H",\u0126:"H",\u0125:"h",\u0127:"h",\u0128:"I",\u012A:"I",\u012C:"I",\u012E:"I",\u0130:"I",\u0129:"i",\u012B:"i",\u012D:"i",\u012F:"i",\u0131:"i",\u0134:"J",\u0135:"j",\u0136:"K",\u0137:"k",\u0138:"k",\u0139:"L",\u013B:"L",\u013D:"L",\u013F:"L",\u0141:"L",\u013A:"l",\u013C:"l",\u013E:"l",\u0140:"l",\u0142:"l",\u0143:"N",\u0145:"N",\u0147:"N",\u014A:"N",\u0144:"n",\u0146:"n",\u0148:"n",\u014B:"n",\u014C:"O",\u014E:"O",\u0150:"O",\u014D:"o",\u014F:"o",\u0151:"o",\u0154:"R",\u0156:"R",\u0158:"R",\u0155:"r",\u0157:"r",\u0159:"r",\u015A:"S",\u015C:"S",\u015E:"S",\u0160:"S",\u015B:"s",\u015D:"s",\u015F:"s",\u0161:"s",\u0162:"T",\u0164:"T",\u0166:"T",\u0163:"t",\u0165:"t",\u0167:"t",\u0168:"U",\u016A:"U",\u016C:"U",\u016E:"U",\u0170:"U",\u0172:"U",\u0169:"u",\u016B:"u",\u016D:"u",\u016F:"u",\u0171:"u",\u0173:"u",\u0174:"W",\u0175:"w",\u0176:"Y",\u0177:"y",\u0178:"Y",\u0179:"Z",\u017B:"Z",\u017D:"Z",\u017A:"z",\u017C:"z",\u017E:"z",\u0132:"IJ",\u0133:"ij",\u0152:"Oe",\u0153:"oe",\u0149:"'n",\u017F:"s"},e1t=Xht($ht),t1t=e1t,i1t=typeof $n=="object"&&$n&&$n.Object===Object&&$n,iee=i1t,r1t=iee,o1t=typeof self=="object"&&self&&self.Object===Object&&self,n1t=r1t||o1t||Function("return this")(),jd=n1t,s1t=jd,a1t=s1t.Symbol,MB=a1t;function l1t(t,e){for(var i=-1,r=t==null?0:t.length,o=Array(r);++i<r;)o[i]=e(t[i],i,t);return o}var c1t=l1t,d1t=Array.isArray,SB=d1t,ree=MB,oee=Object.prototype,A1t=oee.hasOwnProperty,u1t=oee.toString,y8=ree?ree.toStringTag:void 0;function h1t(t){var e=A1t.call(t,y8),i=t[y8];try{t[y8]=void 0;var r=!0}catch{}var o=u1t.call(t);return r&&(e?t[y8]=i:delete t[y8]),o}var p1t=h1t,g1t=Object.prototype,f1t=g1t.toString;function m1t(t){return f1t.call(t)}var v1t=m1t,nee=MB,C1t=p1t,y1t=v1t,I1t="[object Null]",w1t="[object Undefined]",see=nee?nee.toStringTag:void 0;function b1t(t){return t==null?t===void 0?w1t:I1t:see&&see in Object(t)?C1t(t):y1t(t)}var I8=b1t;function B1t(t){return t!=null&&typeof t=="object"}var H2=B1t,E1t=I8,k1t=H2,x1t="[object Symbol]";function Q1t(t){return typeof t=="symbol"||k1t(t)&&E1t(t)==x1t}var M1t=Q1t,aee=MB,S1t=c1t,D1t=SB,P1t=M1t,R1t=1/0,lee=aee?aee.prototype:void 0,cee=lee?lee.toString:void 0;function dee(t){if(typeof t=="string")return t;if(D1t(t))return S1t(t,dee)+"";if(P1t(t))return cee?cee.call(t):"";var e=t+"";return e=="0"&&1/t==-R1t?"-0":e}var F1t=dee,L1t=F1t;function T1t(t){return t==null?"":L1t(t)}var N1t=T1t,U1t=t1t,O1t=N1t,H1t=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,j1t="\\u0300-\\u036f",G1t="\\ufe20-\\ufe2f",V1t="\\u20d0-\\u20ff",q1t=j1t+G1t+V1t,_1t="["+q1t+"]",z1t=RegExp(_1t,"g");function K1t(t){return t=O1t(t),t&&t.replace(H1t,U1t).replace(z1t,"")}var J1t=K1t;const Aee=p8(J1t),Y1t=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"}),W1t={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:Y1t}},watch:{edit(t){t?(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(t){t.keyCode===27?this.onCancel():t.keyCode===13&&!t.altKey&&!t.metaKey&&!t.ctrlKey&&!t.shiftKey&&this.onValidate()},onClick(){!this.disabled&&this.editOnClick&&!this.edit&&(this.edit=!0)},onRightClick(){const t=this.$viewer.contextMenu;t&&!this.disabled&&!this.loading&&this.editOnRightClick&&t.registerContextCommand({label:this.$t("global.edit"),execute:()=>this.edit=!0})},isIfcTypeFormatValid(t){switch(this.types[this.valueType]){case"decimal_number":{const e=+t;return!isNaN(e)&&typeof e=="number"}case"positive_decimal_number":{const e=+t;return!isNaN(e)&&typeof e=="number"&&e>=0}case"decimal_range_0_1":{const e=+t;return!isNaN(e)&&typeof e=="number"&&0>=e&&e<=1}case"decimal_range_0_14":{const e=+t;return!isNaN(e)&&typeof e=="number"&&0>=e&&e<=14}case"integer":{const e=+t;return!isNaN(e)&&typeof e=="number"&&Number.isInteger(e)}case"positive_integer":{const e=+t;return!isNaN(e)&&typeof e=="number"&&Number.isInteger(e)&&e>=0}case"string":return typeof t=="string";case"string_max255":return typeof t=="string"&&t.length<255;case"boolean":return typeof t=="boolean"||t==="true"||t==="false";case"logical":return typeof t=="boolean"||t==="true"||t==="false"||t==="null"||t===null}},async onValidate(){const t=typeof this.validateCallbackArgs=="object"&&typeof this.validateCallbackArgs[Symbol.iterator]=="function"?this.validateCallbackArgs:[this.validateCallbackArgs],e=this.validateCallback(this.editedText,this.isIfcTypeFormatValid(this.editedText),...t);let i=null;typeof e.then=="function"?(this.loading=!0,i=await e,this.loading=!1):i=e,this.edit=!1,i?(this.success=!0,setTimeout(()=>this.success=null,500)):(this.error=!0,setTimeout(()=>this.error=null,500))},onCancel(){this.edit=!1},isValidUrl(t){return typeof t=="string"&&t.match("://")},ifcTypeFormat(t){return this.types[t]??"string"}}},Z1t={key:0,class:"editable-label__input"},X1t={class:"flex justify-between items-center"},$1t={key:0,class:"editable-label__input--buttons flex m-l-6"},e0t={class:"editable-label__text flex items-center"},t0t=["href"];function i0t(t,e,i,r,o,s){const n=P("BIMDataInput"),a=P("BIMDataIconValidate"),l=P("BIMDataButton"),c=P("BIMDataIconClose"),d=P("BIMDataIconEdit"),A=Ti("click-away");return Bt((x(),U("div",{class:ge(["editable-label",{disabled:i.disabled}]),onClick:e[1]||(e[1]=(...u)=>s.onClick&&s.onClick(...u)),onContextmenu:e[2]||(e[2]=wt((...u)=>s.onRightClick&&s.onRightClick(...u),["right"]))},[o.edit?(x(),U("div",Z1t,[b("div",X1t,[F(n,{ref:"input",modelValue:o.editedText,"onUpdate:modelValue":e[0]||(e[0]=u=>o.editedText=u),loading:o.loading,disabled:o.loading||i.disabled,margin:"0px"},null,8,["modelValue","loading","disabled"]),o.loading?he("",!0):(x(),U("div",$1t,[F(l,{color:"primary",ghost:"",rounded:"",icon:"",onClick:wt(s.onValidate,["stop"])},{default:G(()=>[F(a,{size:"xxs",class:"fill-primary"})]),_:1},8,["onClick"]),F(l,{color:"primary",ghost:"",rounded:"",icon:"",onClick:wt(s.onCancel,["stop"])},{default:G(()=>[F(c,{size:"xxxs",class:"fill-primary"})]),_:1},8,["onClick"])]))]),b("span",{class:ge({error:!s.isIfcTypeFormatValid(o.editedText)})},z(t.$t("properties.requested_format"))+" "+z(t.$t(`properties.${s.ifcTypeFormat(i.valueType)}`)),3)])):he("",!0),b("div",e0t,[!o.edit&&i.editOnClick?(x(),W(d,{key:0,size:"xxs",color:"granite",margin:"0 8px 0 0"})):he("",!0),!o.edit&&s.isValidUrl(i.text)?(x(),U("a",{key:1,target:"_blank",href:i.text},z(i.text),9,t0t)):he("",!0),!o.edit&&!s.isValidUrl(i.text)?(x(),U("span",{key:2,class:ge({error:o.error,success:o.success})},z(`${i.text!=null?i.text:""} ${i.units}`),3)):he("",!0)])],34)),[[A,()=>i.cancelOnClickAway&&!o.loading&&(o.edit=!1)]])}const r0t=V(W1t,[["render",i0t]]),o0t={name:"BimdataProperties",components:{BIMDataEditableLabel:r0t},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 Aee(this.filter).toLowerCase()}},watch:{highlightedProperties(){var t,e;this.highlightedProperties.length===0&&((e=(t=Object.values(this.$refs)[0])==null?void 0:t[0])==null||e.scrollIntoView())},selectedObject:{async handler(t){t?this.displayedElement=await this.getDisplayedElement(t):this.displayedElement=null},immediate:!0},filter(t){t?this.highlightedProperties=n0t(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(t){var e,i;if(t.key==="Enter"&&this.highlightedProperties.length>0){let r=(e=this.$refs[this.highlightedProperties[0].ref])==null?void 0:e[0];r||(this.highlightedProperties[0].parent.displayed=!0,await this.$nextTick(),r=(i=this.$refs[this.highlightedProperties[0].ref])==null?void 0:i[0]),r&&r.scrollIntoView(),this.highlightedProperties.push(this.highlightedProperties.shift())}},async onValidate(t,e,i,r){const o={...i,value:t};delete o.parent,this.editLoading=!0;try{const s=this.$viewer.api.cloudId,n=this.$viewer.api.projectId,a=this.displayedElement.stateObject.model.id;e?(await this.$viewer.api.apiClient.modelApi.updateElementPropertySetProperty(s,this.displayedElement.uuid,i.id,a,n,r,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(t){let e=null;if(!t.uuid)console.warn("Impossible to show properties of the selected state object because it has no uuid.");else{this.loading=!0;try{const i=await this.$viewer.api.apiClient.modelApi.getElement(this.$viewer.api.cloudId,t.model.id,this.$viewer.api.projectId,t.uuid);e={properties:a0t(i,this),stateObject:t,uuid:t.uuid}}catch(i){console.error(i)}finally{this.loading=!1}}return e},onPropertiesEdited({object:t,author:e}){var i;e!==this&&((i=this.displayedElement)==null?void 0:i.uuid)===t.uuid&&this.refreshDisplayedElement()}}};function n0t(t){const e=[];return t.forEach(i=>{i.highlighted&&e.push(i),e.push(...i.children.filter(r=>r.highlighted))}),e}const uee={GRAY:"Gy",BECQUEREL:"Bq",MOLE:"mole",SQUARE_METRE:"m\xB2",FARAD:"F",DEGREE_CELSIUS:"\xBAC",DEGREE:"\xB0",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\xB3"},hee={KILO:"k",DECA:"da",CENTI:"c",MILLI:"m",MEGA:"M",GIGA:"M",HECTO:"h",DEKA:"da",DECI:"d",MICRO:"\u03BC"};function pee({id:t,property_set_id:e,definition:i,value:r,nonEditable:o},s,n,a){var l,c;let d=((l=i.unit)==null?void 0:l.name)||"",A=((c=i.unit)==null?void 0:c.prefix)||"";A&&hee[A]&&(A=hee[A]),d&&uee[d]&&(d=uee[d]);let u=A+d,h;const g=`properties.attributes_name.${i.name}`,p=i.value_type;return a.name==="Attributs"&&n.$viewer.i18n.$te(g)?h=n.$viewer.i18n.$t(g):h=i.name,{id:t,ref:s,property_set_id:e,name:h,value:r,valueType:p,unit:u,nonEditable:o,searchContent:Aee(`${h||""}${r||""} ${u}`).toLowerCase(),get highlighted(){return n.filter!==""&&this.searchContent.includes(n.slugFilter)},parent:a}}function s0t(t){const e=t.attributes.properties;e.id=t.attributes.id;const i=e.findIndex(r=>r.definition.name==="type");return i!==-1&&e.splice(i,1),e.push({definition:{name:"type"},value:t.type,nonEditable:!0}),e.push({definition:{name:"UUID"},value:t.uuid,nonEditable:!0}),e}function a0t(t,e){let i=1;const r=[],o=s0t(t),{classifications:s,property_sets:n}=t;if(o){const a={id:o.id,ref:`element${i++}`,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=>pee(l,`element${i++}`,e,a)),r.push(a)}if(s?.length>0){const a={ref:`element${i++}`,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=s.map(l=>({...l,searchContent:`${l.name||""} ${l.notation||""} - ${l.title||""}
81
81
  `.toLowerCase(),ref:`element${i++}`,get highlighted(){return e.filter!==""&&this.searchContent.includes(e.slugFilter)},parent:a})),r.push(a)}return n&&n.forEach(({id:a,name:l,properties:c,type:d})=>{const A={id:a,ref:`element${i++}`,name:l,editable:!0,displayed:!0,isType:d?.endsWith("_type"),searchContent:l.toLowerCase(),get highlighted(){return e.filter!==""&&this.searchContent.includes(e.slugFilter)}};A.children=c.map(u=>pee(u,`element${i++}`,e,A)),r.push(A)}),r}const l0t={class:"bimdata-properties__properties"},c0t={key:0,class:"bimdata-properties__properties__content"},d0t={class:"bimdata-properties__properties__content__searchbar"},A0t={class:"bimdata-properties__properties__content__list"},u0t=["onClick"],h0t={key:0,class:"bimdata-properties__properties__content__list__element__detail"},p0t={class:"bimdata-properties__properties__content__list__element__detail__property__name"},g0t={class:"bimdata-properties__properties__content__list__element__detail__property__value"},f0t={key:0,class:"bimdata-properties__properties__content__list__element__detail"},m0t={class:"bimdata-properties__properties__content__list__element__detail__property__name"},v0t={class:"bimdata-properties__properties__content__list__element__detail__property__value"};function C0t(t,e,i,r,o,s){const n=P("BIMDataSearch"),a=P("BIMDataIconChevron"),l=P("BIMDataEditableLabel"),c=P("BIMDataLoading");return x(),U("div",l0t,[o.displayedElement?(x(),U("div",c0t,[b("div",d0t,[F(n,{modelValue:o.filter,"onUpdate:modelValue":e[0]||(e[0]=d=>o.filter=d),placeholder:t.$t("properties.search"),height:"36px",radius:"",width:"100%",color:"primary"},null,8,["modelValue","placeholder"])]),b("div",A0t,[(x(!0),U(ht,null,Ht(o.displayedElement.properties,d=>(x(),U("div",{key:d.id,class:"bimdata-properties__properties__content__list__element"},[b("div",{ref_for:!0,ref:d.ref,class:ge(["bimdata-properties__properties__content__list__element__title",{"bimdata-properties__properties__content__list__element__title--highlighted":d.highlighted}]),onClick:A=>d.displayed=!d.displayed},[b("span",null,z(d.name+(d.isType?` (${t.$t("properties.property_set_type")})`:"")),1),F(a,{class:"fill-primary",size:"xxxs",rotate:d.displayed?-90:90},null,8,["rotate"])],10,u0t),d.name!==t.$t("properties.classification")?(x(),U(ht,{key:0},[d.displayed?(x(),U("div",h0t,[(x(!0),U(ht,null,Ht(d.children,A=>(x(),U("div",{key:A.id,ref_for:!0,ref:A.ref,class:ge(["bimdata-properties__properties__content__list__element__detail__property",{"bimdata-properties__properties__content__list__element__detail__property--highlighted":A.highlighted}])},[b("div",p0t,[b("span",null,z(A.name),1)]),b("span",g0t,[F(l,{disabled:o.editLoading,"validate-callback":s.onValidate,"validate-callback-args":[A,d.id,"attributes"],"edit-on-click":i.editAllowed&&!A.nonEditable,"edit-on-right-click":i.editAllowed&&!A.nonEditable,text:A.value,units:A.unit,"value-type":A.valueType},null,8,["disabled","validate-callback","validate-callback-args","edit-on-click","edit-on-right-click","text","units","value-type"])])],2))),128))])):he("",!0)],64)):(x(),U(ht,{key:1},[d.displayed?(x(),U("div",f0t,[(x(!0),U(ht,null,Ht(d.children,A=>(x(),U("div",{key:A.id,class:ge(["bimdata-properties__properties__content__list__element__detail__property",{"bimdata-properties__properties__content__list__element__detail__property--highlighted":A.highlighted}])},[b("span",m0t,z(A.name),1),b("span",v0t,z(A.notation)+" - "+z(A.title),1)],2))),128))])):he("",!0)],64))]))),128))])])):he("",!0),o.loading?(x(),W(c,{key:1})):he("",!0)])}const y0t=V(o0t,[["render",C0t]]);var cT={exports:{}},dT={exports:{}};(function(t,e){Object.defineProperty(e,"__esModule",{value:!0});var i=g$,r=l(i),o=yB(),s=l(o),n=w$,a=l(n);function l(c){return c&&c.__esModule?c:{default:c}}e.default=(0,a.default)((c,d,A)=>{var u=(0,r.default)(d)?[]:{};c(d,(h,g,p)=>{(0,s.default)(h)((m,...f)=>{f.length<2&&([f]=f),u[g]=f,p(m)})},h=>A(h,u))},3),t.exports=e.default})(dT,dT.exports);var I0t=dT.exports;(function(t,e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=a;var i=I$,r=n(i),o=I0t,s=n(o);function n(l){return l&&l.__esModule?l:{default:l}}function a(l,c,d){return(0,s.default)((0,r.default)(c),l,d)}t.exports=e.default})(cT,cT.exports);var w0t=cT.exports;const b0t=p8(w0t),gee="Folder";function fee(t){return new Promise(e=>setTimeout(e,t))}async function B0t({name:t,url:e}){const i=document.createElement("a");i.style.display="none",i.download=t,i.href=e,document.body.append(i),i.click(),await fee(100),i.remove(),await fee(500)}function E0t(t){const e=[],i=[];for(const r of t)r.type===gee?e.push(r):i.push(r);return{folders:e,documents:i}}function k0t(t,e){const{projectId:i,spaceId:r,accessToken:o,apiUrl:s="https://api.bimdata.io"}=e,n=x0t(s),{folders:a,documents:l}=E0t(t);let c="";return(a.length>0||l.length>0)&&(c+=`${n}/cloud/${r}/project/${i}?`,c+=`accessToken=${o}&`,c+=a.map(d=>`folderId[]=${d.id}`).join("&"),c+=a.length>0&&l.length>0?"&":"",c+=l.map(d=>`documentId[]=${d.id}`).join("&")),c}function x0t(t){const e=new URL(t),i=e.hostname;let r="";const[o,...s]=i.split("."),n=s.join(".");return o.includes("-staging")?r="-staging":o.includes("-next")&&(r="-next"),e.protocol+"//archive"+r+"."+n}async function Q0t(t,e={}){try{if(t.length===0)return;let i=null;const r=t[0].name;return t.length===1&&t[0].type!==gee?i=t[0].file:i=k0t(t,e),await B0t({name:r,url:i})}catch(i){throw new Error(i)}}const M0t={props:{documents:{type:Array,default:()=>[]}},emits:["close","validate"],created(){document.addEventListener("keydown",this.onKeyDown)},unmounted(){document.removeEventListener("keydown",this.onKeyDown)},methods:{onKeyDown(t){t.key==="Escape"&&this.$emit("close")},onCancelClick(){this.$emit("close")},onDeleteClick(){this.$emit("validate")},onCloseClick(){this.$emit("close")}}},S0t={class:"bimdata-properties__delete-modal"},D0t={class:"bimdata-properties__delete-modal__content"},P0t={class:"bimdata-properties__delete-modal__content__close"},R0t={class:"bimdata-properties__delete-modal__content__title"},F0t={class:"bimdata-properties__delete-modal__content__description"},L0t={class:"bimdata-properties__delete-modal__content__list"},T0t={class:"bimdata-properties__delete-modal__content__footer"};function N0t(t,e,i,r,o,s){const n=P("BIMDataIconClose"),a=P("BIMDataButton"),l=P("BIMDataTextbox");return x(),U("div",S0t,[b("div",D0t,[b("div",P0t,[F(a,{color:"primary",ghost:"",rounded:"",icon:"",onClick:s.onCloseClick},{default:G(()=>[F(n,{size:"s"})]),_:1},8,["onClick"])]),b("h2",R0t,z(t.$t("properties.delete_modal_title")),1),b("div",F0t,z(t.$t("properties.delete_modal_description"))+" : ",1),b("ul",L0t,[(x(!0),U(ht,null,Ht(i.documents,c=>(x(),U("li",{key:c.id},[F(l,{text:c.name,width:"calc(100% - 40px)"},null,8,["text"])]))),128))]),b("div",T0t,[F(a,{color:"granite",outline:"",radius:"",width:"120px",onClick:s.onCancelClick},{default:G(()=>[st(z(t.$t("global.cancel")),1)]),_:1},8,["onClick"]),F(a,{color:"high",fill:"",radius:"",width:"120px",onClick:s.onDeleteClick},{default:G(()=>[st(z(t.$t("global.delete")),1)]),_:1},8,["onClick"])])])])}const U0t=V(M0t,[["render",N0t]]),O0t={components:{BIMDataEmpty:kp},inject:["$viewer"],emits:["back","selected"],data(){return{loading:!1,filter:"",elements:[]}},computed:{filteredElements(){const t=new RegExp(this.filter,"i");return this.elements.filter(e=>t.test(e.name))},emptySearch(){return this.elements.length>0&&this.filteredElements.length===0}},async created(){this.loading=!0;try{const t=this.$viewer.api.cloudId,e=this.$viewer.api.projectId,i=this.$viewer.state.models.map(s=>s.id),r=await Promise.all(i.map(s=>this.$viewer.api.apiClient.modelApi.getElementLinkedDocuments(t,s,e))),o=Array.from(new Set(r.flat().flatMap(s=>s.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(t){this.$viewer.state.selectObjects([t.id],{exclusive:!0}),this.$emit("selected")}}},H0t={class:"bimdata-properties-linked-element"},j0t={class:"bimdata-properties-linked-element__header"},G0t={class:"bimdata-properties-linked-element__header__text"},V0t={key:0,class:"bimdata-properties-linked-element__list--empty"},q0t={key:1,class:"bimdata-properties-linked-element__list"},_0t=["onClick"],z0t={class:"bimdata-properties-linked-element__list__element__icon"};function K0t(t,e,i,r,o,s){const n=P("BIMDataIconArrow"),a=P("BIMDataButton"),l=P("BIMDataSearch"),c=P("BIMDataIllustration"),d=P("BIMDataEmpty"),A=P("BIMDataIconModel3D"),u=P("BIMDataTextbox"),h=P("BIMDataLoading");return x(),U("div",H0t,[b("div",j0t,[F(a,{color:"primary",ghost:"",radius:"",icon:"",height:"36px",width:"36px",onClick:e[0]||(e[0]=g=>t.$emit("back"))},{default:G(()=>[F(n,{size:"xs"})]),_:1}),b("h4",G0t,z(t.$t("properties.linked_element_list")),1)]),F(l,{modelValue:o.filter,"onUpdate:modelValue":e[1]||(e[1]=g=>o.filter=g),placeholder:t.$t("properties.search"),height:"36px",width:"100%",radius:"",color:"primary",class:"bimdata-properties-linked-element__searchbar"},null,8,["modelValue","placeholder"]),s.emptySearch?(x(),U("div",V0t,[F(d,{message:t.$t("properties.empty_search")},{default:G(()=>[F(c,{name:"emptyProperties"})]),_:1},8,["message"])])):(x(),U("ul",q0t,[(x(!0),U(ht,null,Ht(s.filteredElements,g=>(x(),U("li",{key:g.id,class:"bimdata-properties-linked-element__list__element",onClick:p=>s.onElementClick(g)},[b("div",z0t,[F(A,{size:"xs"})]),F(u,{text:g.name,width:"calc(100% - 18px)"},null,8,["text"])],8,_0t))),128))])),o.loading?(x(),W(h,{key:2})):he("",!0)])}const J0t=V(O0t,[["render",K0t]]),Y0t={name:"BimdataDocument",components:{BIMDataEmpty:kp,BIMDataGED:QB,DeleteModal:U0t,LinkedElement:J0t},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(t=>t.id)},filteredDocuments(){if(this.filter==="")return this.documents;{const t=new RegExp(this.filter,"i");return this.documents.filter(e=>t.test(e.name))}},emptySearch(){return this.documents.length>0&&this.filteredDocuments.length===0}},watch:{selectedObject:{async handler(t){this.view="list",this.selectedLineDocuments=[],t?this.getDocuments():this.documents=[]},immediate:!0},view(){this.selectedGEDDocuments=[]}},created(){document.addEventListener("keyup",this.onKeyUp)},unmounted(){document.removeEventListener("keyup",this.onKeyUp)},methods:{onLineDocumentClick(t){var e,i;if((i=(e=t?.name)==null?void 0:e.match)!=null&&i.call(e,/\.pdf$/)&&this.$viewer.registeredWindows.includes("pdf")){this.showPdf(t);return}this.toggleLineDocumentSelection(t)},async showPdf(t){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(t)},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 t=this.$viewer.api.cloudId,e=this.$viewer.api.projectId,i=this.selectedObject.model.id;await this.$viewer.api.apiClient.modelApi.bulkRemoveDocumentsOfElement(t,this.selectedObject.uuid,i,e,this.selectedLineDocuments.map(r=>r.id)),this.documents=this.documents.filter(r=>!this.selectedLineDocuments.includes(r)),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 t={projectId:this.$viewer.api.projectId,spaceId:this.$viewer.api.cloudId,accessToken:this.$viewer.api.accessToken,apiUrl:this.$viewer.api.apiUrl};Q0t(this.selectedLineDocuments,t)},onHeaderCheckboxClick(){this.headerCheckboxValue===!0||this.headerCheckboxValue===null?this.selectedLineDocuments=[]:this.selectedLineDocuments=Array.from(this.documents)},toggleLineDocumentSelection(t){this.selectedLineDocuments.includes(t)?this.selectedLineDocuments=this.selectedLineDocuments.filter(e=>e!==t):this.selectedLineDocuments.push(t)},isSelected(t){return this.selectedLineDocuments.includes(t)},onAddDocumentClick(){this.view="dms"},async onValidateSelectionClick(){const t=this.selectedGEDDocuments.map(e=>e.id);this.loading=!0;try{const e=this.$viewer.api.cloudId,i=this.$viewer.api.projectId;await b0t(this.$viewer.state.selectedObjects.map(r=>async()=>this.$viewer.api.apiClient.modelApi.linkDocumentsOfElement(e,r.uuid,r.model.id,i,t)),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(r=>!this.documents.find(o=>o.id===r.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(t){t.key==="Escape"&&(this.view="list")},onDocumentSelectionChange(t){this.selectedGEDDocuments=t},onFromDMSClick(){this.view="dms"},async getDocuments(){this.documents=[],this.loading=!0;try{const t=await this.$viewer.api.apiClient.modelApi.getDocumentsOfElement(this.$viewer.api.cloudId,this.selectedObject.uuid,this.selectedObject.model.id,this.$viewer.api.projectId);this.documents=t}catch(t){this.$viewer.localContext.hub.emit("alert",{type:"error",message:t.message})}finally{this.loading=!1}}}},W0t={class:"bimdata-properties__documents"},Z0t={class:"bimdata-properties__documents__searchbar"},X0t={key:0,class:"bimdata-properties__documents__list"},$0t={class:"bimdata-properties__documents__list__header"},ept={class:"bimdata-properties__documents__list__header__start"},tpt={key:1,class:"bimdata-properties__documents__list__header__buttons"},ipt={class:"bimdata-properties__documents__list__spacer"},rpt={key:1,class:"bimdata-properties__documents__empty"},opt={class:"bimdata-properties__documents__selection__buttons"},npt={key:0,class:"bimdata-properties__documents__selection__buttons__length"};function spt(t,e,i,r,o,s){const n=P("LinkedElement"),a=P("BIMDataIconLinkedDocument"),l=P("BIMDataButton"),c=P("BIMDataSearch"),d=P("BIMDataCheckbox"),A=P("BIMDataIconDelete"),u=P("BIMDataIconDownload"),h=P("BIMDataFileIcon"),g=P("BIMDataTextbox"),p=P("BIMDataIconPlus"),m=P("BIMDataIllustration"),f=P("BIMDataEmpty"),v=P("DeleteModal"),C=P("BIMDataGED"),y=P("BIMDataLoading");return x(),U("div",W0t,[i.linkedElementsShown||o.view==="linked"?(x(),W(n,{key:0,onBack:s.onLinkedElementBack,onSelected:s.onLinkedElementSelected},null,8,["onBack","onSelected"])):o.view==="list"?(x(),U(ht,{key:1},[o.documents.length>0?(x(),U(ht,{key:0},[b("div",Z0t,[F(l,{icon:"",fill:"",radius:"",height:"36px",width:"36px",onClick:s.onLinkedElementClick},{default:G(()=>[F(a,{class:"fill-primary",size:"m"})]),_:1},8,["onClick"]),F(c,{modelValue:o.filter,"onUpdate:modelValue":e[0]||(e[0]=I=>o.filter=I),placeholder:t.$t("properties.search"),height:"36px",radius:"",width:"calc(100% - 42px)",color:"primary"},null,8,["modelValue","placeholder"])]),s.emptySearch?he("",!0):(x(),U("ul",X0t,[b("li",$0t,[b("div",ept,[F(d,{"model-value":s.headerCheckboxValue,"onUpdate:modelValue":s.onHeaderCheckboxClick},null,8,["model-value","onUpdate:modelValue"]),o.selectedLineDocuments.length===0?(x(),U(ht,{key:0},[e[2]||(e[2]=b("div",{class:"bimdata-properties__documents__list__spacer"},null,-1)),b("span",null,z(t.$t("properties.name")),1)],64)):(x(),U("div",tpt,[F(l,{color:"high",ghost:"",radius:"",class:"bimdata-properties__documents__list__header__buttons__delete",onClick:s.onDeleteClick},{default:G(()=>[F(A,{size:"xs",margin:"0 12px 0 0"}),b("span",null,z(t.$t("global.delete")),1)]),_:1},8,["onClick"]),F(l,{color:"primary",ghost:"",radius:"",class:"bimdata-properties__documents__list__header__buttons__download",onClick:s.onDownloadClick},{default:G(()=>[F(u,{size:"xs",margin:"0 12px 0 0"}),b("span",null,z(t.$t("global.download")),1)]),_:1},8,["onClick"])]))])]),(x(!0),U(ht,null,Ht(s.filteredDocuments,I=>(x(),U("li",{key:I.id,class:"bimdata-properties__documents__list__element"},[F(d,{"model-value":s.isSelected(I),"onUpdate:modelValue":B=>s.toggleLineDocumentSelection(I)},null,8,["model-value","onUpdate:modelValue"]),b("div",ipt,[F(h,{"file-name":I.name,size:20,onClick:B=>s.toggleLineDocumentSelection(I)},null,8,["file-name","onClick"])]),F(g,{width:"calc(100% - 100px)",text:I.name,onClick:B=>s.onLineDocumentClick(I)},null,8,["text","onClick"])]))),128))])),F(l,{class:"bimdata-properties__documents__list__header__add-button",color:"primary",fill:"",radius:"",icon:"",onClick:s.onAddDocumentClick},{default:G(()=>[F(p,{size:"xxxs"})]),_:1},8,["onClick"]),s.emptySearch?(x(),W(f,{key:1,message:t.$t("properties.empty_search")},{default:G(()=>[F(m,{name:"emptyProperties"})]),_:1},8,["message"])):he("",!0),o.deleteModalDisplayed?(x(),W(v,{key:2,class:"bimdata-properties__documents__delete-modal",documents:o.selectedLineDocuments,onClose:e[1]||(e[1]=I=>o.deleteModalDisplayed=!1),onValidate:s.onDeleteModalValidate},null,8,["documents","onValidate"])):he("",!0)],64)):(x(),U("div",rpt,[F(f,{message:t.$t("properties.no_document")},{default:G(()=>[F(m,{name:"emptyProperties"})]),_:1},8,["message"]),F(l,{color:"primary",fill:"",radius:"",width:"296px",class:"bimdata-properties__documents__empty__button",disabled:!i.selectedObject,onClick:s.onFromDMSClick},{default:G(()=>[st(z(t.$t("properties.from_dms")),1)]),_:1},8,["disabled","onClick"]),F(l,{color:"primary",fill:"",radius:"",width:"296px",class:"bimdata-properties__documents__empty__button--linked-element",onClick:s.onLinkedElementClick},{default:G(()=>[st(z(t.$t("properties.linked_element_list")),1)]),_:1},8,["onClick"])]))],64)):(x(),U(ht,{key:2},[F(C,{ref:"ged",class:"bimdata-properties__documents__ged","header-buttons":!0,"multi-select-mode":!0,"already-selected-ids":s.alreadySelectedIds,onSelectionChange:s.onDocumentSelectionChange},null,8,["already-selected-ids","onSelectionChange"]),b("div",opt,[F(l,{key:"cancelButton",width:"45%",color:"granite",outline:"",radius:"",onClick:s.onCancelClick},{default:G(()=>[st(z(t.$t("global.cancel")),1)]),_:1},8,["onClick"]),F(l,{key:"validateButton",width:"45%",color:"primary",fill:"",radius:"",disabled:o.selectedGEDDocuments.length===0,onClick:s.onValidateSelectionClick},{default:G(()=>[st(z(t.$t("properties.validate_selection"))+" ",1),o.selectedGEDDocuments.length>0?(x(),U("div",npt,z(o.selectedGEDDocuments.length),1)):he("",!0)]),_:1},8,["disabled","onClick"])])],64)),o.loading?(x(),W(y,{key:3})):he("",!0)])}const apt=V(Y0t,[["render",spt]]),lpt={key:0,class:"bimdata-properties__bucket"},cpt={key:0,class:"bimdata-properties__bucket__edit-switch"},dpt={class:"bimdata-properties__bucket__selection-list__header"},Apt={class:"bimdata-info-length"},upt=["onClick"],hpt={class:"bimdata-properties__content"},AT={__name:"BIMDataProperties",props:{fromWrapper:{type:Boolean,default:!1}},setup(t){const e=St("$viewer"),i=St("$plugin"),r=t,o=Le("properties"),s=Vr(null),n=Vr([]),a=Le(!1),l=Le(!1),c=Le(0),d=lt(()=>[{id:1,get label(){return e.i18n.$t("properties.title")}},{id:2,get label(){return e.i18n.$t("properties.technical_documents")}}]),A=lt(()=>{var k;return((k=s.value)==null?void 0:k.model.document.user_permission)===100}),u=lt(()=>{var k;return(k=e.pluginsCfg[i.name])==null?void 0:k.editProperties}),h=lt(()=>u.value&&o.value==="properties"&&e.api.permissions.hasModelWritePermission),g=lt(()=>`${l.value?"--content-height: calc(100% - 44px)":"--content-height: calc(100% - 92px)"};
82
82
  ${h.value?"--bucket-width: calc(100% - 38px)":"--bucket-width: 100%"};
83
83
  `),p=lt(()=>{var k;return n.value.length>0?`${((k=s.value)==null?void 0:k.name)??e.i18n.$t("properties.no_name")}`:e.i18n.$t("properties.no_element")});Dt(c,()=>l.value=!1);const m=()=>{if(r.fromWrapper){const k=e.localContext.pluginComponentInstances.get("viewer3d"),Q=[];for(const S of k.loadedIfcIds)for(const D of e.state.modelsMap.get(S).objects)D.selected&&Q.push(D);return Q}else return e.state.selectedObjects},f=k=>{k.id===1?o.value="properties":o.value="documents"},v=k=>{s.value=k},C=k=>{var Q;return k?.uuid===((Q=s.value)==null?void 0:Q.uuid)},y=()=>{l.value=!0};let I=Array.from(m());const B=()=>{const k=m();n.value=[],s.value=null,k.length>0&&(n.value=Array.from(k),s.value=n.value.find(Q=>Q.model!=null&&Q.uuid&&!I.some(S=>S.id===Q.id))??null,s.value||(s.value=n.value.find(Q=>Q.model!=null&&Q.uuid)??null)),I=Array.from(m())},E=[e.state.hub.on("objects-deselected",B),e.state.hub.on("objects-selected",B)];if(r.fromWrapper)Dt(()=>e.localContext.pluginComponentInstances.get("viewer3d").loadedIfcIds,k=>{c.value=k.length});else{const k=()=>{c.value=e.state.models.length};E.push(e.state.hub.on("ifcs-loaded",k,{getLastEvent:!0}),e.state.hub.on("ifcs-unloaded",k))}return B(),Dr(()=>{E.forEach(k=>e.state.hub.off(k))}),(k,Q)=>{const S=P("BIMDataTabs"),D=P("BIMDataIconEdit"),R=P("BIMDataButton"),T=P("BIMDataTooltip"),H=P("BIMDataTextbox"),q=P("BIMDataDropdownList"),O=P("BIMDataIllustration");return x(),U("div",{class:"bimdata-properties",style:pe(g.value)},[F(S,{tabs:d.value,"tab-size":"50%",selected:0,class:"bimdata-properties__tabs",onTabSelected:f},null,8,["tabs"]),l.value?he("",!0):(x(),U("div",lpt,[h.value?(x(),U("div",cpt,[F(T,{text:k.$t("properties.tooltip"),color:"granite-light"},{default:G(()=>[F(R,{class:ge(["bimdata-properties__bucket__edit-switch__button",{active:a.value}]),icon:"",fill:"",radius:"",height:"35px",disabled:!A.value,onClick:Q[0]||(Q[0]=j=>a.value=!a.value)},{default:G(()=>[F(D,{class:"fill-primary",size:"xs"})]),_:1},8,["class","disabled"])]),_:1},8,["text"])])):he("",!0),l.value?he("",!0):(x(),W(q,{key:1,ref:"propertiesHeaderList",class:"bimdata-properties__bucket__selection-list",list:n.value,disabled:n.value.length===0,"per-page":30,"element-key":"id"},{header:G(()=>[b("div",dpt,[b("div",Apt,z(n.value.length),1),F(H,{text:p.value,tooltip:!1,width:"calc(100% - 42px)"},null,8,["text"])])]),element:G(({element:j,close:X})=>[b("span",{class:ge({"bimdata-properties__bucket__selection-list--selected":C(j)}),onClick:ne=>{X(),v(j)}},[F(H,{text:j.name||k.$t("properties.no_name"),tooltip:!1},null,8,["text"])],10,upt)]),_:1},8,["list","disabled"]))])),b("div",hpt,[s.value||o.value==="documents"&&l.value?(x(),U(ht,{key:0},[Bt(F(y0t,{"edit-allowed":a.value,"selected-object":s.value},null,8,["edit-allowed","selected-object"]),[[ni,o.value==="properties"]]),Bt(F(apt,{"selected-object":s.value,"linked-elements-shown":l.value,onLinkClose:Q[1]||(Q[1]=j=>l.value=!1)},null,8,["selected-object","linked-elements-shown"]),[[ni,o.value==="documents"]])],64)):(x(),W(kp,{key:1,message:o.value==="properties"?k.$t("properties.new_properties"):k.$t("properties.new_documents")},{footer:G(()=>[o.value==="documents"?(x(),W(R,{key:0,color:"primary",fill:"",radius:"",width:"296px",disabled:c.value===0,onClick:y},{default:G(()=>[st(z(k.$t("properties.linked_element_list")),1)]),_:1},8,["disabled"])):he("",!0)]),default:G(()=>[b("h2",null,z(o.value==="properties"?k.$t("properties.title"):k.$t("properties.title_secondary")),1),F(O,{name:"emptyProperties"})]),_:1},8,["message"]))])],4)}}},ppt="Eigenschaften",gpt="Ausgabe",fpt="Bitte w\xE4hlen Sie im Modell ein Element aus, um seine Eigenschaften anzuzeigen",mpt="Gegenstand",vpt="Gegenst\xE4nde",Cpt="Kein Element ausgew\xE4hlt",ypt="Nicht spezifiziert",Ipt="Klassifizierung",wpt="Attribute",bpt="Dokumente",Bpt="Bitte w\xE4hlen Sie einen Artikel im Modell aus, damit seine Dokumente angezeigt werden.",Ept="nachforschen",kpt="Die Suche liefert keine Erkenntnisse",xpt="Technische Dokumente",Qpt="Kein Dokument",Mpt="Aus dem GED des Projekts",Spt="Die Auswahl best\xE4tigen",Dpt="Dokumente erfolgreich verkn\xFCpft",Ppt="Beim Verkn\xFCpfen der Dokumente ist ein Fehler aufgetreten.",Rpt="Beim Aufheben der Verkn\xFCpfung der Dokumente ist ein Fehler aufgetreten.",Fpt="Verkn\xFCpfung der Dokumente erfolgreich aufgehoben.",Lpt="Name",Tpt="Verkn\xFCpfung von Dokumenten aufheben",Npt="Durch diese Aktion wird die Verkn\xFCpfung der folgenden Dokumente aufgehoben.",Upt="Liste verkn\xFCpfter Elemente",Opt="Verkn\xFCpfte Elemente k\xF6nnen nicht abgerufen werden.",Hpt={CompositionType:"Art der Zusammensetzung",Description:"Beschreibung",Elevation:"Erhebung",LongName:"Vollst\xE4ndiger Name",ObjectType:"Art des Objekts",Representation:"Vertretung",type:"Art",Name:"Name"},jpt="Erwartetes Format:",Gpt="Typ",uT={title:ppt,tooltip:gpt,new_properties:fpt,object:mpt,objects:vpt,no_element:Cpt,no_name:ypt,classification:Ipt,attributes:wpt,"edit-success":"Eigenschaft aktualisiert","edit-error":"Die Eigenschaft kann nicht aktualisiert werden","get-error":"Die Daten k\xF6nnen nicht wiederhergestellt werden, bitte aktualisieren Sie die Seite",title_secondary:bpt,new_documents:Bpt,search:Ept,empty_search:kpt,technical_documents:xpt,no_document:Qpt,from_dms:Mpt,validate_selection:Spt,link_documents_success:Dpt,link_documents_error:Ppt,unlink_documents_error:Rpt,unlink_documents_success:Fpt,name:Lpt,delete_modal_title:Tpt,delete_modal_description:Npt,linked_element_list:Upt,linked_documents_error:Opt,attributes_name:Hpt,"invalid-format":"Ung\xFCltiges Format",requested_format:jpt,property_set_type:Gpt},Vpt="Properties",qpt="Editing",_pt="Please select an element in the model to display its properties",zpt="Object",Kpt="Objects",Jpt="No element",Ypt="Not specified",Wpt="Classification",Zpt="Attributes",Xpt="Documents",$pt="Please select an item in the template to view its documents",egt="Research",tgt="The search did not give any results",igt="Technical documents",rgt="No document",ogt="From the project's DMS",ngt="Validate the selection",sgt="Successfully linked documents",agt="An error occurred in linking the documents",lgt="An error occurred while untying the documents",cgt="Documents successfully untied",dgt="Name",Agt="Untie the documents",ugt="This action will untie the following documents",hgt="List of related items",pgt="Unable to retrieve linked items",ggt={CompositionType:"Type of composition",Description:"Description",Elevation:"Elevation",LongName:"Full name",ObjectType:"Type of object",Representation:"Representation",type:"Type",Name:"Name"},fgt="Expected format:",mgt="Type",hT={title:Vpt,tooltip:qpt,new_properties:_pt,object:zpt,objects:Kpt,no_element:Jpt,no_name:Ypt,classification:Wpt,attributes:Zpt,"edit-success":"Propertie updated","edit-error":"Impossible to update propertie","get-error":"Error fetching data, you should refresh the page",title_secondary:Xpt,new_documents:$pt,search:egt,empty_search:tgt,technical_documents:igt,no_document:rgt,from_dms:ogt,validate_selection:ngt,link_documents_success:sgt,link_documents_error:agt,unlink_documents_error:lgt,unlink_documents_success:cgt,name:dgt,delete_modal_title:Agt,delete_modal_description:ugt,linked_element_list:hgt,linked_documents_error:pgt,attributes_name:ggt,"invalid-format":"Invalid format",requested_format:fgt,property_set_type:mgt},vgt="Propiedades",Cgt="Correcci\xF3n",ygt="Seleccione un elemento del modelo para mostrar sus propiedades",Igt="Objeto",wgt="Objetos",bgt="Sin elemento",Bgt="No especificado",Egt="Clasificaci\xF3n",kgt="Atributos",xgt="Documentos",Qgt="Seleccione un elemento de la plantilla para ver sus documentos",Mgt="Buscar",Sgt="La b\xFAsqueda no ha arrojado ning\xFAn resultado",Dgt="Documentos t\xE9cnicos",Pgt="Sin documentos",Rgt="De la GED del proyecto",Fgt="Confirmar la selecci\xF3n",Lgt="Se han vinculado correctamente los documentos",Tgt="Se ha producido un error al vincular los documentos",Ngt="Se ha producido un error al desvincular los documentos",Ugt="Se han desvinculado correctamente los documentos",Ogt="Nombre",Hgt="Desvincular los documentos",jgt="Esta acci\xF3n desvincular\xE1 los siguientes documentos",Ggt="Lista de elementos vinculados",Vgt="No se pueden recuperar los elementos vinculados",qgt={CompositionType:"Tipo de composici\xF3n",Description:"Descripci\xF3n",Elevation:"Elevaci\xF3n",LongName:"Nombre completo",ObjectType:"Tipo de objeto",Representation:"Representaci\xF3n",type:"Tipo",Name:"Nombre"},_gt="Formato esperado :",zgt="Tipo",mee={title:vgt,tooltip:Cgt,new_properties:ygt,object:Igt,objects:wgt,no_element:bgt,no_name:Bgt,classification:Egt,attributes:kgt,"edit-success":"Propiedad actualizada","edit-error":"Imposible actualizar la propiedad","get-error":"Error al obtener datos, debe actualizar la p\xE1gina",title_secondary:xgt,new_documents:Qgt,search:Mgt,empty_search:Sgt,technical_documents:Dgt,no_document:Pgt,from_dms:Rgt,validate_selection:Fgt,link_documents_success:Lgt,link_documents_error:Tgt,unlink_documents_error:Ngt,unlink_documents_success:Ugt,name:Ogt,delete_modal_title:Hgt,delete_modal_description:jgt,linked_element_list:Ggt,linked_documents_error:Vgt,attributes_name:qgt,"invalid-format":"Formato no v\xE1lido",requested_format:_gt,property_set_type:zgt},Kgt="Propri\xE9t\xE9s",Jgt="\xC9dition",Ygt="Veuillez s\xE9lectionner un \xE9l\xE9ment dans le mod\xE8le pour afficher ses propri\xE9t\xE9s",Wgt="Objet",Zgt="Objets",Xgt="Pas d'\xE9l\xE9ment selectionn\xE9",$gt="Non sp\xE9cifi\xE9",eft="Classification",tft="Attributs",ift="Documents",rft="Veuillez s\xE9lectionner un \xE9l\xE9ment dans le mod\xE8le pour afficher ses documents",oft="Rechercher",nft="La recherche ne donne aucun r\xE9sultat",sft="Documents techniques",aft="Aucun document",lft="Depuis la GED du projet",cft="Valider la selection",dft="Documents li\xE9s avec succ\xE8s",Aft="Une erreur est survenue en liant les documents",uft="Une erreur est survenue en d\xE9liant les documents",hft="Documents d\xE9li\xE9s avec succ\xE8s",pft="Nom",gft="D\xE9lier les documents",fft="Cette action va d\xE9lier les documents suivants",mft="Liste des \xE9l\xE9ments li\xE9s",vft="Impossible de r\xE9cup\xE9rer les \xE9l\xE9ments li\xE9s",Cft={CompositionType:"Type de composition",Description:"Description",Elevation:"\xC9l\xE9vation",LongName:"Nom complet",ObjectType:"Type d'objet",Representation:"Repr\xE9sentation",type:"Type",Name:"Nom"},yft="Format attendu :",Ift="Type",pT={title:Kgt,tooltip:Jgt,new_properties:Ygt,object:Wgt,objects:Zgt,no_element:Xgt,no_name:$gt,classification:eft,attributes:tft,"edit-success":"Propri\xE9t\xE9 mise \xE0 jour","edit-error":"Impossible de mettre \xE0 jour la propri\xE9t\xE9","get-error":"Impossible de r\xE9sup\xE9rer la donn\xE9e, veuillez rafraichir la page",title_secondary:ift,new_documents:rft,search:oft,empty_search:nft,technical_documents:sft,no_document:aft,from_dms:lft,validate_selection:cft,link_documents_success:dft,link_documents_error:Aft,unlink_documents_error:uft,unlink_documents_success:hft,name:pft,delete_modal_title:gft,delete_modal_description:fft,linked_element_list:mft,linked_documents_error:vft,attributes_name:Cft,"invalid-format":"Format invalide",requested_format:yft,property_set_type:Ift},wft="Propriet\xE0",bft="Modifica",Bft="Seleziona un elemento nel modello per visualizzare le sue propriet\xE0",Eft="Oggetto",kft="Oggetti",xft="Nessun elemento selezionato",Qft="Non specificato",Mft="Classificazione",Sft="Attributi",Dft="Documenti",Pft="Seleziona un elemento nel modello per visualizzare i relativi documenti",Rft="Cerca",Fft="La ricerca non ha fornito risultati",Lft="Documenti tecnici",Tft="Nessun documento",Nft="Dalla GED del progetto",Uft="Conferma la selezione",Oft="Documenti collegati correttamente",Hft="Si \xE8 verificato un errore durante il collegamento dei documenti",jft="Si \xE8 verificato un errore durante lo scollegamento dei documenti",Gft="Documenti scollegati correttamente",Vft="Nome",qft="Scollega i documenti",_ft="Questa azione scollegher\xE0 i documenti seguenti",zft="Elenco degli elementi collegati",Kft="Impossibile recuperare gli elementi collegati",Jft={CompositionType:"Tipo di composizione",Description:"Descrizione",Elevation:"Elevazione",LongName:"Nome completo",ObjectType:"Tipo di oggetto",Representation:"Rappresentazione",type:"Tipo",Name:"Nome"},vee={title:wft,tooltip:bft,new_properties:Bft,object:Eft,objects:kft,no_element:xft,no_name:Qft,classification:Mft,attributes:Sft,"edit-success":"Propriet\xE0 aggiornata","edit-error":"Impossibile aggiornare la propriet\xE0","get-error":"Impossibile recuperare i dati, aggiorna la pagina",title_secondary:Dft,new_documents:Pft,search:Rft,empty_search:Fft,technical_documents:Lft,no_document:Tft,from_dms:Nft,validate_selection:Uft,link_documents_success:Oft,link_documents_error:Hft,unlink_documents_error:jft,unlink_documents_success:Gft,name:Vft,delete_modal_title:qft,delete_modal_description:_ft,linked_element_list:zft,linked_documents_error:Kft,attributes_name:Jft},Yft="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",Wft={name:"properties",i18n:{de:uT,en:hT,es:mee,fr:pT,it:vee},component:AT,window:{name:"properties",label:"properties.title",icon:{imgUri:Yft}}},Zft={name:"button-properties",addToWindows:["3d"],i18nTokenPrefix:"properties",i18n:{de:uT,en:hT,es:mee,fr:pT,it:vee},component:AT,button:{position:"left",stance:-1,content:"panel",tooltip:"properties.title",keepOpen:!0,icon:{component:"BIMDataIconList",options:{size:"m"}}}},Xft={render(){return null},name:"BIMDataFirstPersonView",mounted(){const t=this.$viewer.localContext.pluginComponentInstances.get("viewer3d");if(!t){const e="Plugin Projection cannot work without viewer3D plugin.";throw console.error(e),new Error(e)}this.viewer3d=t},onOpen(){var t;const e=this.viewer3d.xeokit,i=this.$viewer.localContext.loadedModels[0];if(!i){setTimeout(()=>this.$close());return}const r=this.$viewer.state.getStoreyFromAbsoluteElevation(i,e.camera.eye[1]);if(r&&r.key!==((t=this.$viewer.localContext.selectedStorey)==null?void 0:t.key)&&this.$viewer.localContext.selectStorey(r),!r)return;const{math:o}=this.viewer3d.xeokitSdk,s=Object.values(e.scene.models).find(p=>p.ifc.id===r.model.id);if(!s)return;const n=new Map(Array.from(Object.values(s.objects)).map(p=>[p.originalSystemId,p])),a=r.objects.map(p=>p.uuid).map(p=>n.get(p)).filter(Boolean),{eye:l}=e.scene.camera;let c=1/0,d=null;for(const p of a){const[m,,f,v,,C]=p.aabb,y={x:(m+v)/2,y:(f+C)/2},I={x:y.x+(v-m)/2,y:y.y+(C-f)/2},B=Math.sqrt((I.x-l[0])**2+(I.y-l[2])**2);B<c&&(c=B,d=I)}if(!d)return;const A=[d.x,d.y],u=o.mulVec2Scalar(o.normalizeVec2(o.subVec2([l[0],l[2]],A,o.vec2())),3),h=[A[0]+u[0],A[1]+u[1]],g=[h[0],r.absoluteElevation+this.viewer3d.STOREY_HEIGHT_CAMERA_OFFSET,h[1]];return e.cameraFlight.flyTo({eye:g,duration:.5}),new Promise(p=>setTimeout(()=>{this.viewer3d.firstPersonView=!0,p()},500))},onClose(){this.viewer3d.firstPersonView=!1}},$ft={},e2t={width:"14",height:"23",viewBox:"0 0 14 23",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function t2t(t,e){return x(),U("svg",e2t,e[0]||(e[0]=[b("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 i2t=V($ft,[["render",t2t]]),r2t={},o2t={width:"21",height:"23",viewBox:"0 0 21 23",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function n2t(t,e){return x(),U("svg",o2t,e[0]||(e[0]=[b("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 s2t=V(r2t,[["render",n2t]]),a2t="First-person view",l2t={tooltip:a2t},c2t="Vue premi\xE8re personne",d2t={tooltip:c2t},A2t={name:"firstPersonView",i18n:{en:l2t,fr:d2t},addToWindows:["3d"],component:Xft,button:{tooltip:"firstPersonView.tooltip",position:"right",content:"free",keepOpen:!0,icon:{component:s2t},iconOpen:{component:i2t}}};var lu=(t=>(t[t.WEBGL_LEGACY=0]="WEBGL_LEGACY",t[t.WEBGL=1]="WEBGL",t[t.WEBGL2=2]="WEBGL2",t))(lu||{}),Cee=(t=>(t[t.UNKNOWN=0]="UNKNOWN",t[t.WEBGL=1]="WEBGL",t[t.CANVAS=2]="CANVAS",t))(Cee||{}),DB=(t=>(t[t.COLOR=16384]="COLOR",t[t.DEPTH=256]="DEPTH",t[t.STENCIL=1024]="STENCIL",t))(DB||{}),hi=(t=>(t[t.NORMAL=0]="NORMAL",t[t.ADD=1]="ADD",t[t.MULTIPLY=2]="MULTIPLY",t[t.SCREEN=3]="SCREEN",t[t.OVERLAY=4]="OVERLAY",t[t.DARKEN=5]="DARKEN",t[t.LIGHTEN=6]="LIGHTEN",t[t.COLOR_DODGE=7]="COLOR_DODGE",t[t.COLOR_BURN=8]="COLOR_BURN",t[t.HARD_LIGHT=9]="HARD_LIGHT",t[t.SOFT_LIGHT=10]="SOFT_LIGHT",t[t.DIFFERENCE=11]="DIFFERENCE",t[t.EXCLUSION=12]="EXCLUSION",t[t.HUE=13]="HUE",t[t.SATURATION=14]="SATURATION",t[t.COLOR=15]="COLOR",t[t.LUMINOSITY=16]="LUMINOSITY",t[t.NORMAL_NPM=17]="NORMAL_NPM",t[t.ADD_NPM=18]="ADD_NPM",t[t.SCREEN_NPM=19]="SCREEN_NPM",t[t.NONE=20]="NONE",t[t.SRC_OVER=0]="SRC_OVER",t[t.SRC_IN=21]="SRC_IN",t[t.SRC_OUT=22]="SRC_OUT",t[t.SRC_ATOP=23]="SRC_ATOP",t[t.DST_OVER=24]="DST_OVER",t[t.DST_IN=25]="DST_IN",t[t.DST_OUT=26]="DST_OUT",t[t.DST_ATOP=27]="DST_ATOP",t[t.ERASE=26]="ERASE",t[t.SUBTRACT=28]="SUBTRACT",t[t.XOR=29]="XOR",t))(hi||{}),hl=(t=>(t[t.POINTS=0]="POINTS",t[t.LINES=1]="LINES",t[t.LINE_LOOP=2]="LINE_LOOP",t[t.LINE_STRIP=3]="LINE_STRIP",t[t.TRIANGLES=4]="TRIANGLES",t[t.TRIANGLE_STRIP=5]="TRIANGLE_STRIP",t[t.TRIANGLE_FAN=6]="TRIANGLE_FAN",t))(hl||{}),_t=(t=>(t[t.RGBA=6408]="RGBA",t[t.RGB=6407]="RGB",t[t.RG=33319]="RG",t[t.RED=6403]="RED",t[t.RGBA_INTEGER=36249]="RGBA_INTEGER",t[t.RGB_INTEGER=36248]="RGB_INTEGER",t[t.RG_INTEGER=33320]="RG_INTEGER",t[t.RED_INTEGER=36244]="RED_INTEGER",t[t.ALPHA=6406]="ALPHA",t[t.LUMINANCE=6409]="LUMINANCE",t[t.LUMINANCE_ALPHA=6410]="LUMINANCE_ALPHA",t[t.DEPTH_COMPONENT=6402]="DEPTH_COMPONENT",t[t.DEPTH_STENCIL=34041]="DEPTH_STENCIL",t))(_t||{}),xp=(t=>(t[t.TEXTURE_2D=3553]="TEXTURE_2D",t[t.TEXTURE_CUBE_MAP=34067]="TEXTURE_CUBE_MAP",t[t.TEXTURE_2D_ARRAY=35866]="TEXTURE_2D_ARRAY",t[t.TEXTURE_CUBE_MAP_POSITIVE_X=34069]="TEXTURE_CUBE_MAP_POSITIVE_X",t[t.TEXTURE_CUBE_MAP_NEGATIVE_X=34070]="TEXTURE_CUBE_MAP_NEGATIVE_X",t[t.TEXTURE_CUBE_MAP_POSITIVE_Y=34071]="TEXTURE_CUBE_MAP_POSITIVE_Y",t[t.TEXTURE_CUBE_MAP_NEGATIVE_Y=34072]="TEXTURE_CUBE_MAP_NEGATIVE_Y",t[t.TEXTURE_CUBE_MAP_POSITIVE_Z=34073]="TEXTURE_CUBE_MAP_POSITIVE_Z",t[t.TEXTURE_CUBE_MAP_NEGATIVE_Z=34074]="TEXTURE_CUBE_MAP_NEGATIVE_Z",t))(xp||{}),Ri=(t=>(t[t.UNSIGNED_BYTE=5121]="UNSIGNED_BYTE",t[t.UNSIGNED_SHORT=5123]="UNSIGNED_SHORT",t[t.UNSIGNED_SHORT_5_6_5=33635]="UNSIGNED_SHORT_5_6_5",t[t.UNSIGNED_SHORT_4_4_4_4=32819]="UNSIGNED_SHORT_4_4_4_4",t[t.UNSIGNED_SHORT_5_5_5_1=32820]="UNSIGNED_SHORT_5_5_5_1",t[t.UNSIGNED_INT=5125]="UNSIGNED_INT",t[t.UNSIGNED_INT_10F_11F_11F_REV=35899]="UNSIGNED_INT_10F_11F_11F_REV",t[t.UNSIGNED_INT_2_10_10_10_REV=33640]="UNSIGNED_INT_2_10_10_10_REV",t[t.UNSIGNED_INT_24_8=34042]="UNSIGNED_INT_24_8",t[t.UNSIGNED_INT_5_9_9_9_REV=35902]="UNSIGNED_INT_5_9_9_9_REV",t[t.BYTE=5120]="BYTE",t[t.SHORT=5122]="SHORT",t[t.INT=5124]="INT",t[t.FLOAT=5126]="FLOAT",t[t.FLOAT_32_UNSIGNED_INT_24_8_REV=36269]="FLOAT_32_UNSIGNED_INT_24_8_REV",t[t.HALF_FLOAT=36193]="HALF_FLOAT",t))(Ri||{}),PB=(t=>(t[t.FLOAT=0]="FLOAT",t[t.INT=1]="INT",t[t.UINT=2]="UINT",t))(PB||{}),Vc=(t=>(t[t.NEAREST=0]="NEAREST",t[t.LINEAR=1]="LINEAR",t))(Vc||{}),Xh=(t=>(t[t.CLAMP=33071]="CLAMP",t[t.REPEAT=10497]="REPEAT",t[t.MIRRORED_REPEAT=33648]="MIRRORED_REPEAT",t))(Xh||{}),cu=(t=>(t[t.OFF=0]="OFF",t[t.POW2=1]="POW2",t[t.ON=2]="ON",t[t.ON_MANUAL=3]="ON_MANUAL",t))(cu||{}),Gd=(t=>(t[t.NPM=0]="NPM",t[t.UNPACK=1]="UNPACK",t[t.PMA=2]="PMA",t[t.NO_PREMULTIPLIED_ALPHA=0]="NO_PREMULTIPLIED_ALPHA",t[t.PREMULTIPLY_ON_UPLOAD=1]="PREMULTIPLY_ON_UPLOAD",t[t.PREMULTIPLIED_ALPHA=2]="PREMULTIPLIED_ALPHA",t))(Gd||{}),$h=(t=>(t[t.NO=0]="NO",t[t.YES=1]="YES",t[t.AUTO=2]="AUTO",t[t.BLEND=0]="BLEND",t[t.CLEAR=1]="CLEAR",t[t.BLIT=2]="BLIT",t))($h||{}),RB=(t=>(t[t.AUTO=0]="AUTO",t[t.MANUAL=1]="MANUAL",t))(RB||{}),pl=(t=>(t.LOW="lowp",t.MEDIUM="mediump",t.HIGH="highp",t))(pl||{}),rn=(t=>(t[t.NONE=0]="NONE",t[t.SCISSOR=1]="SCISSOR",t[t.STENCIL=2]="STENCIL",t[t.SPRITE=3]="SPRITE",t[t.COLOR=4]="COLOR",t))(rn||{}),yee=(t=>(t[t.RED=1]="RED",t[t.GREEN=2]="GREEN",t[t.BLUE=4]="BLUE",t[t.ALPHA=8]="ALPHA",t))(yee||{}),Qo=(t=>(t[t.NONE=0]="NONE",t[t.LOW=2]="LOW",t[t.MEDIUM=4]="MEDIUM",t[t.HIGH=8]="HIGH",t))(Qo||{}),qc=(t=>(t[t.ELEMENT_ARRAY_BUFFER=34963]="ELEMENT_ARRAY_BUFFER",t[t.ARRAY_BUFFER=34962]="ARRAY_BUFFER",t[t.UNIFORM_BUFFER=35345]="UNIFORM_BUFFER",t))(qc||{});const Qp=2*Math.PI,Iee=180/Math.PI,wee=Math.PI/180;var cr=(t=>(t[t.POLY=0]="POLY",t[t.RECT=1]="RECT",t[t.CIRC=2]="CIRC",t[t.ELIP=3]="ELIP",t[t.RREC=4]="RREC",t))(cr||{});class no{constructor(e=0,i=0){this.x=0,this.y=0,this.x=e,this.y=i}clone(){return new no(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,i=e){return this.x=e,this.y=i,this}toString(){return`[@pixi/math:Point x=${this.x} y=${this.y}]`}}const FB=[new no,new no,new no,new no];class mr{constructor(e=0,i=0,r=0,o=0){this.x=Number(e),this.y=Number(i),this.width=Number(r),this.height=Number(o),this.type=cr.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 mr(0,0,0,0)}clone(){return new mr(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,i){return!(this.width<=0||this.height<=0)&&e>=this.x&&e<this.x+this.width&&i>=this.y&&i<this.y+this.height}intersects(e,i){if(!i){const k=this.x<e.x?e.x:this.x;if((this.right>e.right?e.right:this.right)<=k)return!1;const Q=this.y<e.y?e.y:this.y;return(this.bottom>e.bottom?e.bottom:this.bottom)>Q}const r=this.left,o=this.right,s=this.top,n=this.bottom;if(o<=r||n<=s)return!1;const a=FB[0].set(e.left,e.top),l=FB[1].set(e.left,e.bottom),c=FB[2].set(e.right,e.top),d=FB[3].set(e.right,e.bottom);if(c.x<=a.x||l.y<=a.y)return!1;const A=Math.sign(i.a*i.d-i.b*i.c);if(A===0||(i.apply(a,a),i.apply(l,l),i.apply(c,c),i.apply(d,d),Math.max(a.x,l.x,c.x,d.x)<=r||Math.min(a.x,l.x,c.x,d.x)>=o||Math.max(a.y,l.y,c.y,d.y)<=s||Math.min(a.y,l.y,c.y,d.y)>=n))return!1;const u=A*(l.y-a.y),h=A*(a.x-l.x),g=u*r+h*s,p=u*o+h*s,m=u*r+h*n,f=u*o+h*n;if(Math.max(g,p,m,f)<=u*a.x+h*a.y||Math.min(g,p,m,f)>=u*d.x+h*d.y)return!1;const v=A*(a.y-c.y),C=A*(c.x-a.x),y=v*r+C*s,I=v*o+C*s,B=v*r+C*n,E=v*o+C*n;return!(Math.max(y,I,B,E)<=v*a.x+C*a.y||Math.min(y,I,B,E)>=v*d.x+C*d.y)}pad(e=0,i=e){return this.x-=e,this.y-=i,this.width+=2*e,this.height+=2*i,this}fit(e){const i=Math.max(this.x,e.x),r=Math.min(this.x+this.width,e.x+e.width),o=Math.max(this.y,e.y),s=Math.min(this.y+this.height,e.y+e.height);return this.x=i,this.width=Math.max(r-i,0),this.y=o,this.height=Math.max(s-o,0),this}ceil(e=1,i=.001){const r=Math.ceil((this.x+this.width-i)*e)/e,o=Math.ceil((this.y+this.height-i)*e)/e;return this.x=Math.floor((this.x+i)*e)/e,this.y=Math.floor((this.y+i)*e)/e,this.width=r-this.x,this.height=o-this.y,this}enlarge(e){const i=Math.min(this.x,e.x),r=Math.max(this.x+this.width,e.x+e.width),o=Math.min(this.y,e.y),s=Math.max(this.y+this.height,e.y+e.height);return this.x=i,this.width=r-i,this.y=o,this.height=s-o,this}toString(){return`[@pixi/math:Rectangle x=${this.x} y=${this.y} width=${this.width} height=${this.height}]`}}class fw{constructor(e=0,i=0,r=0){this.x=e,this.y=i,this.radius=r,this.type=cr.CIRC}clone(){return new fw(this.x,this.y,this.radius)}contains(e,i){if(this.radius<=0)return!1;const r=this.radius*this.radius;let o=this.x-e,s=this.y-i;return o*=o,s*=s,o+s<=r}getBounds(){return new mr(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}]`}}class mw{constructor(e=0,i=0,r=0,o=0){this.x=e,this.y=i,this.width=r,this.height=o,this.type=cr.ELIP}clone(){return new mw(this.x,this.y,this.width,this.height)}contains(e,i){if(this.width<=0||this.height<=0)return!1;let r=(e-this.x)/this.width,o=(i-this.y)/this.height;return r*=r,o*=o,r+o<=1}getBounds(){return new mr(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}]`}}class NA{constructor(...e){let i=Array.isArray(e[0])?e[0]:e;if(typeof i[0]!="number"){const r=[];for(let o=0,s=i.length;o<s;o++)r.push(i[o].x,i[o].y);i=r}this.points=i,this.type=cr.POLY,this.closeStroke=!0}clone(){const e=this.points.slice(),i=new NA(e);return i.closeStroke=this.closeStroke,i}contains(e,i){let r=!1;const o=this.points.length/2;for(let s=0,n=o-1;s<o;n=s++){const a=this.points[2*s],l=this.points[2*s+1],c=this.points[2*n],d=this.points[2*n+1];l>i!=d>i&&e<(i-l)/(d-l)*(c-a)+a&&(r=!r)}return r}toString(){return`[@pixi/math:PolygoncloseStroke=${this.closeStroke}points=${this.points.reduce((e,i)=>`${e}, ${i}`,"")}]`}}class vw{constructor(e=0,i=0,r=0,o=0,s=20){this.x=e,this.y=i,this.width=r,this.height=o,this.radius=s,this.type=cr.RREC}clone(){return new vw(this.x,this.y,this.width,this.height,this.radius)}contains(e,i){if(this.width<=0||this.height<=0)return!1;if(e>=this.x&&e<=this.x+this.width&&i>=this.y&&i<=this.y+this.height){const r=Math.max(0,Math.min(this.radius,Math.min(this.width,this.height)/2));if(i>=this.y+r&&i<=this.y+this.height-r||e>=this.x+r&&e<=this.x+this.width-r)return!0;let o=e-(this.x+r),s=i-(this.y+r);const n=r*r;if(o*o+s*s<=n||(o=e-(this.x+this.width-r),o*o+s*s<=n)||(s=i-(this.y+this.height-r),o*o+s*s<=n)||(o=e-(this.x+r),o*o+s*s<=n))return!0}return!1}toString(){return`[@pixi/math:RoundedRectangle x=${this.x} y=${this.y}width=${this.width} height=${this.height} radius=${this.radius}]`}}class $0{constructor(e,i,r=0,o=0){this._x=r,this._y=o,this.cb=e,this.scope=i}clone(e=this.cb,i=this.scope){return new $0(e,i,this._x,this._y)}set(e=0,i=e){return(this._x!==e||this._y!==i)&&(this._x=e,this._y=i,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))}}let Ji=class UP{constructor(e=1,i=0,r=0,o=1,s=0,n=0){this.array=null,this.a=e,this.b=i,this.c=r,this.d=o,this.tx=s,this.ty=n}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,i,r,o,s,n){return this.a=e,this.b=i,this.c=r,this.d=o,this.tx=s,this.ty=n,this}toArray(e,i){this.array||(this.array=new Float32Array(9));const r=i||this.array;return e?(r[0]=this.a,r[1]=this.b,r[2]=0,r[3]=this.c,r[4]=this.d,r[5]=0,r[6]=this.tx,r[7]=this.ty,r[8]=1):(r[0]=this.a,r[1]=this.c,r[2]=this.tx,r[3]=this.b,r[4]=this.d,r[5]=this.ty,r[6]=0,r[7]=0,r[8]=1),r}apply(e,i){i=i||new no;const r=e.x,o=e.y;return i.x=this.a*r+this.c*o+this.tx,i.y=this.b*r+this.d*o+this.ty,i}applyInverse(e,i){i=i||new no;const r=1/(this.a*this.d+this.c*-this.b),o=e.x,s=e.y;return i.x=this.d*r*o+-this.c*r*s+(this.ty*this.c-this.tx*this.d)*r,i.y=this.a*r*s+-this.b*r*o+(-this.ty*this.a+this.tx*this.b)*r,i}translate(e,i){return this.tx+=e,this.ty+=i,this}scale(e,i){return this.a*=e,this.d*=i,this.c*=e,this.b*=i,this.tx*=e,this.ty*=i,this}rotate(e){const i=Math.cos(e),r=Math.sin(e),o=this.a,s=this.c,n=this.tx;return this.a=o*i-this.b*r,this.b=o*r+this.b*i,this.c=s*i-this.d*r,this.d=s*r+this.d*i,this.tx=n*i-this.ty*r,this.ty=n*r+this.ty*i,this}append(e){const i=this.a,r=this.b,o=this.c,s=this.d;return this.a=e.a*i+e.b*o,this.b=e.a*r+e.b*s,this.c=e.c*i+e.d*o,this.d=e.c*r+e.d*s,this.tx=e.tx*i+e.ty*o+this.tx,this.ty=e.tx*r+e.ty*s+this.ty,this}setTransform(e,i,r,o,s,n,a,l,c){return this.a=Math.cos(a+c)*s,this.b=Math.sin(a+c)*s,this.c=-Math.sin(a-l)*n,this.d=Math.cos(a-l)*n,this.tx=e-(r*this.a+o*this.c),this.ty=i-(r*this.b+o*this.d),this}prepend(e){const i=this.tx;if(e.a!==1||e.b!==0||e.c!==0||e.d!==1){const r=this.a,o=this.c;this.a=r*e.a+this.b*e.c,this.b=r*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=i*e.a+this.ty*e.c+e.tx,this.ty=i*e.b+this.ty*e.d+e.ty,this}decompose(e){const i=this.a,r=this.b,o=this.c,s=this.d,n=e.pivot,a=-Math.atan2(-o,s),l=Math.atan2(r,i),c=Math.abs(a+l);return c<1e-5||Math.abs(Qp-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(i*i+r*r),e.scale.y=Math.sqrt(o*o+s*s),e.position.x=this.tx+(n.x*i+n.y*o),e.position.y=this.ty+(n.x*r+n.y*s),e}invert(){const e=this.a,i=this.b,r=this.c,o=this.d,s=this.tx,n=e*o-i*r;return this.a=o/n,this.b=-i/n,this.c=-r/n,this.d=e/n,this.tx=(r*this.ty-o*s)/n,this.ty=-(e*this.ty-i*s)/n,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 UP;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 UP}static get TEMP_MATRIX(){return new UP}};const Mp=[1,1,0,-1,-1,-1,0,1,1,1,0,-1,-1,-1,0,1],Sp=[0,1,1,1,0,-1,-1,-1,0,1,1,1,0,-1,-1,-1],Dp=[0,-1,-1,-1,0,1,1,1,0,1,1,1,0,-1,-1,-1],Pp=[1,1,0,-1,-1,-1,0,1,-1,-1,0,1,1,1,0,-1],gT=[],bee=[],LB=Math.sign;(function(){for(let t=0;t<16;t++){const e=[];gT.push(e);for(let i=0;i<16;i++){const r=LB(Mp[t]*Mp[i]+Dp[t]*Sp[i]),o=LB(Sp[t]*Mp[i]+Pp[t]*Sp[i]),s=LB(Mp[t]*Dp[i]+Dp[t]*Pp[i]),n=LB(Sp[t]*Dp[i]+Pp[t]*Pp[i]);for(let a=0;a<16;a++)if(Mp[a]===r&&Sp[a]===o&&Dp[a]===s&&Pp[a]===n){e.push(a);break}}}for(let t=0;t<16;t++){const e=new Ji;e.set(Mp[t],Sp[t],Dp[t],Pp[t],0,0),bee.push(e)}})();const Ao={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:t=>Mp[t],uY:t=>Sp[t],vX:t=>Dp[t],vY:t=>Pp[t],inv:t=>8&t?15&t:7&-t,add:(t,e)=>gT[t][e],sub:(t,e)=>gT[t][Ao.inv(e)],rotate180:t=>4^t,isVertical:t=>(3&t)==2,byDirection:(t,e)=>2*Math.abs(t)<=Math.abs(e)?e>=0?Ao.S:Ao.N:2*Math.abs(e)<=Math.abs(t)?t>0?Ao.E:Ao.W:e>0?t>0?Ao.SE:Ao.SW:t>0?Ao.NE:Ao.NW,matrixAppendRotationInv:(t,e,i=0,r=0)=>{const o=bee[Ao.inv(e)];o.tx=i,o.ty=r,t.append(o)}},Bee=class{constructor(){this.worldTransform=new Ji,this.localTransform=new Ji,this.position=new $0(this.onChange,this,0,0),this.scale=new $0(this.onChange,this,1,1),this.pivot=new $0(this.onChange,this,0,0),this.skew=new $0(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 t=this.localTransform;this._localID!==this._currentLocalID&&(t.a=this._cx*this.scale.x,t.b=this._sx*this.scale.x,t.c=this._cy*this.scale.y,t.d=this._sy*this.scale.y,t.tx=this.position.x-(this.pivot.x*t.a+this.pivot.y*t.c),t.ty=this.position.y-(this.pivot.x*t.b+this.pivot.y*t.d),this._currentLocalID=this._localID,this._parentID=-1)}updateTransform(t){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!==t._worldID){const i=t.worldTransform,r=this.worldTransform;r.a=e.a*i.a+e.b*i.c,r.b=e.a*i.b+e.b*i.d,r.c=e.c*i.a+e.d*i.c,r.d=e.c*i.b+e.d*i.d,r.tx=e.tx*i.a+e.ty*i.c+i.tx,r.ty=e.tx*i.b+e.ty*i.d+i.ty,this._parentID=t._worldID,this._worldID++}}setFromMatrix(t){t.decompose(this),this._localID++}get rotation(){return this._rotation}set rotation(t){this._rotation!==t&&(this._rotation=t,this.updateSkew())}};let j2=Bee;j2.IDENTITY=new Bee;class gl{constructor(e){this.items=[],this._name=e,this._aliasCount=0}emit(e,i,r,o,s,n,a,l){if(arguments.length>8)throw new Error("max arguments reached");const{name:c,items:d}=this;this._aliasCount++;for(let A=0,u=d.length;A<u;A++)d[A][c](e,i,r,o,s,n,a,l);return d===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 i=this.items.indexOf(e);return i!==-1&&(this.ensureNonAliasedItems(),this.items.splice(i,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(gl.prototype,{dispatch:{value:gl.prototype.emit},run:{value:gl.prototype.emit}});const Eee={createCanvas:(t,e)=>{const i=document.createElement("canvas");return i.width=t,i.height=e,i},getWebGLRenderingContext:()=>WebGLRenderingContext,getNavigator:()=>navigator,getBaseUrl:()=>document.baseURI??window.location.href,getFontFaceSet:()=>document.fonts,fetch:(t,e)=>fetch(t,e),parseXML:t=>new DOMParser().parseFromString(t,"text/xml")};var fT=/iPhone/i,kee=/iPod/i,xee=/iPad/i,Qee=/\biOS-universal(?:.+)Mac\b/i,mT=/\bAndroid(?:.+)Mobile\b/i,Mee=/Android/i,G2=/(?:SD4930UR|\bSilk(?:.+)Mobile\b)/i,TB=/Silk/i,du=/Windows Phone/i,See=/\bWindows(?:.+)ARM\b/i,Dee=/BlackBerry/i,Pee=/BB10/i,Ree=/Opera Mini/i,Fee=/\b(CriOS|Chrome)(?:.+)Mobile/i,Lee=/Mobile(?:.+)Firefox\b/i,Tee=function(t){return typeof t<"u"&&t.platform==="MacIntel"&&typeof t.maxTouchPoints=="number"&&t.maxTouchPoints>1&&typeof MSStream>"u"};const e1=function(t){var e={userAgent:"",platform:"",maxTouchPoints:0};!t&&typeof navigator<"u"?e={userAgent:navigator.userAgent,platform:navigator.platform,maxTouchPoints:navigator.maxTouchPoints||0}:typeof t=="string"?e.userAgent=t:t&&t.userAgent&&(e={userAgent:t.userAgent,platform:t.platform,maxTouchPoints:t.maxTouchPoints||0});var i=e.userAgent,r=i.split("[FBAN");typeof r[1]<"u"&&(i=r[0]),typeof(r=i.split("Twitter"))[1]<"u"&&(i=r[0]);var o=function(n){return function(a){return a.test(n)}}(i),s={apple:{phone:o(fT)&&!o(du),ipod:o(kee),tablet:!o(fT)&&(o(xee)||Tee(e))&&!o(du),universal:o(Qee),device:(o(fT)||o(kee)||o(xee)||o(Qee)||Tee(e))&&!o(du)},amazon:{phone:o(G2),tablet:!o(G2)&&o(TB),device:o(G2)||o(TB)},android:{phone:!o(du)&&o(G2)||!o(du)&&o(mT),tablet:!o(du)&&!o(G2)&&!o(mT)&&(o(TB)||o(Mee)),device:!o(du)&&(o(G2)||o(TB)||o(mT)||o(Mee))||o(/\bokhttp\b/i)},windows:{phone:o(du),tablet:o(See),device:o(du)||o(See)},other:{blackberry:o(Dee),blackberry10:o(Pee),opera:o(Ree),firefox:o(Lee),chrome:o(Fee),device:o(Dee)||o(Pee)||o(Ree)||o(Lee)||o(Fee)},any:!1,phone:!1,tablet:!1};return s.any=s.apple.device||s.android.device||s.windows.device||s.other.device,s.phone=s.apple.phone||s.android.phone||s.windows.phone,s.tablet=s.apple.tablet||s.android.tablet||s.windows.tablet,s}(globalThis.navigator),Zt={ADAPTER:Eee,MIPMAP_TEXTURES:cu.POW2,ANISOTROPIC_LEVEL:0,RESOLUTION:1,FILTER_RESOLUTION:1,FILTER_MULTISAMPLE:Qo.NONE,SPRITE_MAX_TEXTURES:function(t){let e=!0;if(e1.tablet||e1.phone){if(e1.apple.device){const i=navigator.userAgent.match(/OS (\d+)_(\d+)?/);i&&parseInt(i[1],10)<11&&(e=!1)}if(e1.android.device){const i=navigator.userAgent.match(/Android\s([0-9.]*)/);i&&parseInt(i[1],10)<7&&(e=!1)}}return e?t: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:RB.AUTO,GC_MAX_IDLE:3600,GC_MAX_CHECK_COUNT:600,WRAP_MODE:Xh.CLAMP,SCALE_MODE:Vc.LINEAR,PRECISION_VERTEX:pl.HIGH,PRECISION_FRAGMENT:e1.apple.device?pl.HIGH:pl.MEDIUM,CAN_UPLOAD_SAME_BUFFER:!e1.apple.device,CREATE_IMAGE_BITMAP:!1,ROUND_PIXELS:!1,TARGET_FPMS:.06};var w8=(t=>(t[t.HIGH=25]="HIGH",t[t.NORMAL=0]="NORMAL",t[t.LOW=-25]="LOW",t[t.UTILITY=-50]="UTILITY",t))(w8||{});class vT{constructor(e,i=null,r=0,o=!1){this.next=null,this.previous=null,this._destroyed=!1,this.fn=e,this.context=i,this.priority=r,this.once=o}match(e,i=null){return this.fn===e&&this.context===i}emit(e){this.fn&&(this.context?this.fn.call(this.context,e):this.fn(e));const i=this.next;return this.once&&this.destroy(!0),this._destroyed&&(this.next=null),i}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 i=this.next;return this.next=e?null:i,this.previous=null,i}}class Wn{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 vT(null,null,1/0),this.deltaMS=1/Zt.TARGET_FPMS,this.elapsedMS=1/Zt.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,i,r=w8.NORMAL){return this._addListener(new vT(e,i,r))}addOnce(e,i,r=w8.NORMAL){return this._addListener(new vT(e,i,r,!0))}_addListener(e){let i=this._head.next,r=this._head;if(i){for(;i;){if(e.priority>i.priority){e.connect(r);break}r=i,i=i.next}e.previous||e.connect(r)}else e.connect(r);return this._startIfPossible(),this}remove(e,i){let r=this._head.next;for(;r;)r=r.match(e,i)?r.destroy():r.next;return this._head.next||this._cancelIfNeeded(),this}get count(){if(!this._head)return 0;let e=0,i=this._head;for(;i=i.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 i;if(e>this.lastTime){if(i=this.elapsedMS=e-this.lastTime,i>this._maxElapsedMS&&(i=this._maxElapsedMS),i*=this.speed,this._minElapsedMS){const s=e-this._lastFrame|0;if(s<this._minElapsedMS)return;this._lastFrame=e-s%this._minElapsedMS}this.deltaMS=i,this.deltaTime=this.deltaMS*Zt.TARGET_FPMS;const r=this._head;let o=r.next;for(;o;)o=o.emit(this.deltaTime);r.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 i=Math.min(this.maxFPS,e),r=Math.min(Math.max(0,i)/1e3,Zt.TARGET_FPMS);this._maxElapsedMS=1/r}get maxFPS(){return this._minElapsedMS?Math.round(1e3/this._minElapsedMS):0}set maxFPS(e){if(e===0)this._minElapsedMS=0;else{const i=Math.max(this.minFPS,e);this._minElapsedMS=1/(i/1e3)}}static get shared(){if(!Wn._shared){const e=Wn._shared=new Wn;e.autoStart=!0,e._protected=!0}return Wn._shared}static get system(){if(!Wn._system){const e=Wn._system=new Wn;e.autoStart=!0,e._protected=!0}return Wn._system}}var Yi=(t=>(t.Renderer="renderer",t.Application="application",t.RendererSystem="renderer-webgl-system",t.RendererPlugin="renderer-webgl-plugin",t.CanvasRendererSystem="renderer-canvas-system",t.CanvasRendererPlugin="renderer-canvas-plugin",t.Asset="asset",t.LoadParser="load-parser",t.ResolveParser="resolve-parser",t.CacheParser="cache-parser",t.DetectionParser="detection-parser",t))(Yi||{});const CT=t=>{if(typeof t=="function"||typeof t=="object"&&t.extension){if(!t.extension)throw new Error("Extension class must have an extension object");t={...typeof t.extension!="object"?{type:t.extension}:t.extension,ref:t}}if(typeof t!="object")throw new Error("Invalid extension type");return typeof(t={...t}).type=="string"&&(t.type=[t.type]),t},Nee=(t,e)=>CT(t).priority??e,wr={_addHandlers:{},_removeHandlers:{},_queue:{},remove(...t){return t.map(CT).forEach(e=>{e.type.forEach(i=>{var r,o;return(o=(r=this._removeHandlers)[i])==null?void 0:o.call(r,e)})}),this},add(...t){return t.map(CT).forEach(e=>{e.type.forEach(i=>{const r=this._addHandlers,o=this._queue;r[i]?r[i](e):(o[i]=o[i]||[],o[i].push(e))})}),this},handle(t,e,i){const r=this._addHandlers,o=this._removeHandlers;if(r[t]||o[t])throw new Error(`Extension type ${t} already has a handler`);r[t]=e,o[t]=i;const s=this._queue;return s[t]&&(s[t].forEach(n=>e(n)),delete s[t]),this},handleByMap(t,e){return this.handle(t,i=>{e[i.name]=i.ref},i=>{delete e[i.name]})},handleByList(t,e,i=-1){return this.handle(t,r=>{e.includes(r.ref)||(e.push(r.ref),e.sort((o,s)=>Nee(s,i)-Nee(o,i)))},r=>{const o=e.indexOf(r.ref);o!==-1&&e.splice(o,1)})}};class yT{static init(e){e=Object.assign({autoStart:!0,sharedTicker:!1},e),Object.defineProperty(this,"ticker",{set(i){this._ticker&&this._ticker.remove(this.render,this),this._ticker=i,i&&i.add(this.render,this,w8.LOW)},get(){return this._ticker}}),this.stop=()=>{this._ticker.stop()},this.start=()=>{this._ticker.start()},this._ticker=null,this.ticker=e.sharedTicker?Wn.shared:new Wn,e.autoStart&&this.start()}static destroy(){if(this._ticker){const e=this._ticker;this.ticker=null,e.destroy()}}}yT.extension=Yi.Application,wr.add(yT);var IT=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Uee(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var Oee={exports:{}};(function(t){var e=Object.prototype.hasOwnProperty,i="~";function r(){}function o(l,c,d){this.fn=l,this.context=c,this.once=d||!1}function s(l,c,d,A,u){if(typeof d!="function")throw new TypeError("The listener must be a function");var h=new o(d,A||l,u),g=i?i+c:c;return l._events[g]?l._events[g].fn?l._events[g]=[l._events[g],h]:l._events[g].push(h):(l._events[g]=h,l._eventsCount++),l}function n(l,c){--l._eventsCount==0?l._events=new r:delete l._events[c]}function a(){this._events=new r,this._eventsCount=0}Object.create&&(r.prototype=Object.create(null),new r().__proto__||(i=!1)),a.prototype.eventNames=function(){var l,c,d=[];if(this._eventsCount===0)return d;for(c in l=this._events)e.call(l,c)&&d.push(i?c.slice(1):c);return Object.getOwnPropertySymbols?d.concat(Object.getOwnPropertySymbols(l)):d},a.prototype.listeners=function(l){var c=i?i+l:l,d=this._events[c];if(!d)return[];if(d.fn)return[d.fn];for(var A=0,u=d.length,h=new Array(u);A<u;A++)h[A]=d[A].fn;return h},a.prototype.listenerCount=function(l){var c=i?i+l:l,d=this._events[c];return d?d.fn?1:d.length:0},a.prototype.emit=function(l,c,d,A,u,h){var g=i?i+l:l;if(!this._events[g])return!1;var p,m,f=this._events[g],v=arguments.length;if(f.fn){switch(f.once&&this.removeListener(l,f.fn,void 0,!0),v){case 1:return f.fn.call(f.context),!0;case 2:return f.fn.call(f.context,c),!0;case 3:return f.fn.call(f.context,c,d),!0;case 4:return f.fn.call(f.context,c,d,A),!0;case 5:return f.fn.call(f.context,c,d,A,u),!0;case 6:return f.fn.call(f.context,c,d,A,u,h),!0}for(m=1,p=new Array(v-1);m<v;m++)p[m-1]=arguments[m];f.fn.apply(f.context,p)}else{var C,y=f.length;for(m=0;m<y;m++)switch(f[m].once&&this.removeListener(l,f[m].fn,void 0,!0),v){case 1:f[m].fn.call(f[m].context);break;case 2:f[m].fn.call(f[m].context,c);break;case 3:f[m].fn.call(f[m].context,c,d);break;case 4:f[m].fn.call(f[m].context,c,d,A);break;default:if(!p)for(C=1,p=new Array(v-1);C<v;C++)p[C-1]=arguments[C];f[m].fn.apply(f[m].context,p)}}return!0},a.prototype.on=function(l,c,d){return s(this,l,c,d,!1)},a.prototype.once=function(l,c,d){return s(this,l,c,d,!0)},a.prototype.removeListener=function(l,c,d,A){var u=i?i+l:l;if(!this._events[u])return this;if(!c)return n(this,u),this;var h=this._events[u];if(h.fn)h.fn===c&&(!A||h.once)&&(!d||h.context===d)&&n(this,u);else{for(var g=0,p=[],m=h.length;g<m;g++)(h[g].fn!==c||A&&!h[g].once||d&&h[g].context!==d)&&p.push(h[g]);p.length?this._events[u]=p.length===1?p[0]:p:n(this,u)}return this},a.prototype.removeAllListeners=function(l){var c;return l?(c=i?i+l:l,this._events[c]&&n(this,c)):(this._events=new r,this._eventsCount=0),this},a.prototype.off=a.prototype.removeListener,a.prototype.addListener=a.prototype.on,a.prefixed=i,a.EventEmitter=a,t.exports=a})(Oee);const b8=Uee(Oee.exports);var wT={exports:{}};function NB(t,e,i){i=i||2;var r,o,s,n,a,l,c,d=e&&e.length,A=d?e[0]*i:t.length,u=Hee(t,0,A,i,!0),h=[];if(!u||u.next===u.prev)return h;if(d&&(u=function(p,m,f,v){var C,y,I,B,E,k=[];for(C=0,y=m.length;C<y;C++)I=m[C]*v,B=C<y-1?m[C+1]*v:p.length,(E=Hee(p,I,B,v,!1))===E.next&&(E.steiner=!0),k.push(C2t(E));for(k.sort(f2t),C=0;C<k.length;C++)f=m2t(k[C],f);return f}(t,e,u,i)),t.length>80*i){r=s=t[0],o=n=t[1];for(var g=i;g<A;g+=i)(a=t[g])<r&&(r=a),(l=t[g+1])<o&&(o=l),a>s&&(s=a),l>n&&(n=l);c=(c=Math.max(s-r,n-o))!==0?32767/c:0}return B8(u,h,i,r,o,c,0),h}function Hee(t,e,i,r,o){var s,n;if(o===ET(t,e,i,r)>0)for(s=e;s<i;s+=r)n=Vee(s,t[s],t[s+1],n);else for(s=i-r;s>=e;s-=r)n=Vee(s,t[s],t[s+1],n);return n&&UB(n,n.next)&&(k8(n),n=n.next),n}function Rp(t,e){if(!t)return t;e||(e=t);var i,r=t;do if(i=!1,r.steiner||!UB(r,r.next)&&bo(r.prev,r,r.next)!==0)r=r.next;else{if(k8(r),(r=e=r.prev)===r.next)break;i=!0}while(i||r!==e);return e}function B8(t,e,i,r,o,s,n){if(t){!n&&s&&function(d,A,u,h){var g=d;do g.z===0&&(g.z=bT(g.x,g.y,A,u,h)),g.prevZ=g.prev,g.nextZ=g.next,g=g.next;while(g!==d);g.prevZ.nextZ=null,g.prevZ=null,function(p){var m,f,v,C,y,I,B,E,k=1;do{for(f=p,p=null,y=null,I=0;f;){for(I++,v=f,B=0,m=0;m<k&&(B++,v=v.nextZ);m++);for(E=k;B>0||E>0&&v;)B!==0&&(E===0||!v||f.z<=v.z)?(C=f,f=f.nextZ,B--):(C=v,v=v.nextZ,E--),y?y.nextZ=C:p=C,C.prevZ=y,y=C;f=v}y.nextZ=null,k*=2}while(I>1)}(g)}(t,r,o,s);for(var a,l,c=t;t.prev!==t.next;)if(a=t.prev,l=t.next,s?h2t(t,r,o,s):u2t(t))e.push(a.i/i|0),e.push(t.i/i|0),e.push(l.i/i|0),k8(t),t=l.next,c=l.next;else if((t=l)===c){n?n===1?B8(t=p2t(Rp(t),e,i),e,i,r,o,s,2):n===2&&g2t(t,e,i,r,o,s):B8(Rp(t),e,i,r,o,s,1);break}}}function u2t(t){var e=t.prev,i=t,r=t.next;if(bo(e,i,r)>=0)return!1;for(var o=e.x,s=i.x,n=r.x,a=e.y,l=i.y,c=r.y,d=o<s?o<n?o:n:s<n?s:n,A=a<l?a<c?a:c:l<c?l:c,u=o>s?o>n?o:n:s>n?s:n,h=a>l?a>c?a:c:l>c?l:c,g=r.next;g!==e;){if(g.x>=d&&g.x<=u&&g.y>=A&&g.y<=h&&V2(o,a,s,l,n,c,g.x,g.y)&&bo(g.prev,g,g.next)>=0)return!1;g=g.next}return!0}function h2t(t,e,i,r){var o=t.prev,s=t,n=t.next;if(bo(o,s,n)>=0)return!1;for(var a=o.x,l=s.x,c=n.x,d=o.y,A=s.y,u=n.y,h=a<l?a<c?a:c:l<c?l:c,g=d<A?d<u?d:u:A<u?A:u,p=a>l?a>c?a:c:l>c?l:c,m=d>A?d>u?d:u:A>u?A:u,f=bT(h,g,e,i,r),v=bT(p,m,e,i,r),C=t.prevZ,y=t.nextZ;C&&C.z>=f&&y&&y.z<=v;){if(C.x>=h&&C.x<=p&&C.y>=g&&C.y<=m&&C!==o&&C!==n&&V2(a,d,l,A,c,u,C.x,C.y)&&bo(C.prev,C,C.next)>=0||(C=C.prevZ,y.x>=h&&y.x<=p&&y.y>=g&&y.y<=m&&y!==o&&y!==n&&V2(a,d,l,A,c,u,y.x,y.y)&&bo(y.prev,y,y.next)>=0))return!1;y=y.nextZ}for(;C&&C.z>=f;){if(C.x>=h&&C.x<=p&&C.y>=g&&C.y<=m&&C!==o&&C!==n&&V2(a,d,l,A,c,u,C.x,C.y)&&bo(C.prev,C,C.next)>=0)return!1;C=C.prevZ}for(;y&&y.z<=v;){if(y.x>=h&&y.x<=p&&y.y>=g&&y.y<=m&&y!==o&&y!==n&&V2(a,d,l,A,c,u,y.x,y.y)&&bo(y.prev,y,y.next)>=0)return!1;y=y.nextZ}return!0}function p2t(t,e,i){var r=t;do{var o=r.prev,s=r.next.next;!UB(o,s)&&jee(o,r,r.next,s)&&E8(o,s)&&E8(s,o)&&(e.push(o.i/i|0),e.push(r.i/i|0),e.push(s.i/i|0),k8(r),k8(r.next),r=t=s),r=r.next}while(r!==t);return Rp(r)}function g2t(t,e,i,r,o,s){var n=t;do{for(var a=n.next.next;a!==n.prev;){if(n.i!==a.i&&y2t(n,a)){var l=Gee(n,a);return n=Rp(n,n.next),l=Rp(l,l.next),B8(n,e,i,r,o,s,0),void B8(l,e,i,r,o,s,0)}a=a.next}n=n.next}while(n!==t)}function f2t(t,e){return t.x-e.x}function m2t(t,e){var i=function(o,s){var n,a=s,l=o.x,c=o.y,d=-1/0;do{if(c<=a.y&&c>=a.next.y&&a.next.y!==a.y){var A=a.x+(c-a.y)*(a.next.x-a.x)/(a.next.y-a.y);if(A<=l&&A>d&&(d=A,n=a.x<a.next.x?a:a.next,A===l))return n}a=a.next}while(a!==s);if(!n)return null;var u,h=n,g=n.x,p=n.y,m=1/0;a=n;do l>=a.x&&a.x>=g&&l!==a.x&&V2(c<p?l:d,c,g,p,c<p?d:l,c,a.x,a.y)&&(u=Math.abs(c-a.y)/(l-a.x),E8(a,o)&&(u<m||u===m&&(a.x>n.x||a.x===n.x&&v2t(n,a)))&&(n=a,m=u)),a=a.next;while(a!==h);return n}(t,e);if(!i)return e;var r=Gee(i,t);return Rp(r,r.next),Rp(i,i.next)}function v2t(t,e){return bo(t.prev,t,e.prev)<0&&bo(e.next,t,t.next)<0}function bT(t,e,i,r,o){return(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t=(t-i)*o|0)|t<<8))|t<<4))|t<<2))|t<<1))|(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=(e-r)*o|0)|e<<8))|e<<4))|e<<2))|e<<1))<<1}function C2t(t){var e=t,i=t;do(e.x<i.x||e.x===i.x&&e.y<i.y)&&(i=e),e=e.next;while(e!==t);return i}function V2(t,e,i,r,o,s,n,a){return(o-n)*(e-a)>=(t-n)*(s-a)&&(t-n)*(r-a)>=(i-n)*(e-a)&&(i-n)*(s-a)>=(o-n)*(r-a)}function y2t(t,e){return t.next.i!==e.i&&t.prev.i!==e.i&&!function(i,r){var o=i;do{if(o.i!==i.i&&o.next.i!==i.i&&o.i!==r.i&&o.next.i!==r.i&&jee(o,o.next,i,r))return!0;o=o.next}while(o!==i);return!1}(t,e)&&(E8(t,e)&&E8(e,t)&&function(i,r){var o=i,s=!1,n=(i.x+r.x)/2,a=(i.y+r.y)/2;do o.y>a!=o.next.y>a&&o.next.y!==o.y&&n<(o.next.x-o.x)*(a-o.y)/(o.next.y-o.y)+o.x&&(s=!s),o=o.next;while(o!==i);return s}(t,e)&&(bo(t.prev,t,e.prev)||bo(t,e.prev,e))||UB(t,e)&&bo(t.prev,t,t.next)>0&&bo(e.prev,e,e.next)>0)}function bo(t,e,i){return(e.y-t.y)*(i.x-e.x)-(e.x-t.x)*(i.y-e.y)}function UB(t,e){return t.x===e.x&&t.y===e.y}function jee(t,e,i,r){var o=HB(bo(t,e,i)),s=HB(bo(t,e,r)),n=HB(bo(i,r,t)),a=HB(bo(i,r,e));return!!(o!==s&&n!==a||o===0&&OB(t,i,e)||s===0&&OB(t,r,e)||n===0&&OB(i,t,r)||a===0&&OB(i,e,r))}function OB(t,e,i){return e.x<=Math.max(t.x,i.x)&&e.x>=Math.min(t.x,i.x)&&e.y<=Math.max(t.y,i.y)&&e.y>=Math.min(t.y,i.y)}function HB(t){return t>0?1:t<0?-1:0}function E8(t,e){return bo(t.prev,t,t.next)<0?bo(t,e,t.next)>=0&&bo(t,t.prev,e)>=0:bo(t,e,t.prev)<0||bo(t,t.next,e)<0}function Gee(t,e){var i=new BT(t.i,t.x,t.y),r=new BT(e.i,e.x,e.y),o=t.next,s=e.prev;return t.next=e,e.prev=t,i.next=o,o.prev=i,r.next=i,i.prev=r,s.next=r,r.prev=s,r}function Vee(t,e,i,r){var o=new BT(t,e,i);return r?(o.next=r.next,o.prev=r,r.next.prev=o,r.next=o):(o.prev=o,o.next=o),o}function k8(t){t.next.prev=t.prev,t.prev.next=t.next,t.prevZ&&(t.prevZ.nextZ=t.nextZ),t.nextZ&&(t.nextZ.prevZ=t.prevZ)}function BT(t,e,i){this.i=t,this.x=e,this.y=i,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}function ET(t,e,i,r){for(var o=0,s=e,n=i-r;s<i;s+=r)o+=(t[n]-t[s])*(t[s+1]+t[n+1]),n=s;return o}wT.exports=NB,wT.exports.default=NB,NB.deviation=function(t,e,i,r){var o=e&&e.length,s=o?e[0]*i:t.length,n=Math.abs(ET(t,0,s,i));if(o)for(var a=0,l=e.length;a<l;a++){var c=e[a]*i,d=a<l-1?e[a+1]*i:t.length;n-=Math.abs(ET(t,c,d,i))}var A=0;for(a=0;a<r.length;a+=3){var u=r[a]*i,h=r[a+1]*i,g=r[a+2]*i;A+=Math.abs((t[u]-t[g])*(t[h+1]-t[u+1])-(t[u]-t[h])*(t[g+1]-t[u+1]))}return n===0&&A===0?0:Math.abs((A-n)/n)},NB.flatten=function(t){for(var e=t[0][0].length,i={vertices:[],holes:[],dimensions:e},r=0,o=0;o<t.length;o++){for(var s=0;s<t[o].length;s++)for(var n=0;n<e;n++)i.vertices.push(t[o][s][n]);o>0&&(r+=t[o-1].length,i.holes.push(r))}return i};const kT=Uee(wT.exports);var x8,jB,xT={exports:{}};/*! https://mths.be/punycode v1.3.2 by @mathias */x8=xT,jB=xT.exports,function(t){var e=jB&&!jB.nodeType&&jB,i=x8&&!x8.nodeType&&x8,r=typeof IT=="object"&&IT;(r.global===r||r.window===r||r.self===r)&&(t=r);var o,s,n=2147483647,a=36,l=1,c=26,d=38,A=700,u=72,h=128,g="-",p=/^xn--/,m=/[^\x20-\x7E]/,f=/[\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"},C=a-l,y=Math.floor,I=String.fromCharCode;function B(O){throw RangeError(v[O])}function E(O,j){for(var X=O.length,ne=[];X--;)ne[X]=j(O[X]);return ne}function k(O,j){var X=O.split("@"),ne="";return X.length>1&&(ne=X[0]+"@",O=X[1]),ne+E((O=O.replace(f,".")).split("."),j).join(".")}function Q(O){for(var j,X,ne=[],ie=0,we=O.length;ie<we;)(j=O.charCodeAt(ie++))>=55296&&j<=56319&&ie<we?(64512&(X=O.charCodeAt(ie++)))==56320?ne.push(((1023&j)<<10)+(1023&X)+65536):(ne.push(j),ie--):ne.push(j);return ne}function S(O){return E(O,function(j){var X="";return j>65535&&(X+=I((j-=65536)>>>10&1023|55296),j=56320|1023&j),X+=I(j)}).join("")}function D(O){return O-48<10?O-22:O-65<26?O-65:O-97<26?O-97:a}function R(O,j){return O+22+75*(O<26)-((j!=0)<<5)}function T(O,j,X){var ne=0;for(O=X?y(O/A):O>>1,O+=y(O/j);O>C*c>>1;ne+=a)O=y(O/C);return y(ne+(C+1)*O/(O+d))}function H(O){var j,X,ne,ie,we,fe,Ee,Me,Ze,De,$=[],ae=O.length,se=0,ue=h,Pe=u;for((X=O.lastIndexOf(g))<0&&(X=0),ne=0;ne<X;++ne)O.charCodeAt(ne)>=128&&B("not-basic"),$.push(O.charCodeAt(ne));for(ie=X>0?X+1:0;ie<ae;){for(we=se,fe=1,Ee=a;ie>=ae&&B("invalid-input"),((Me=D(O.charCodeAt(ie++)))>=a||Me>y((n-se)/fe))&&B("overflow"),se+=Me*fe,!(Me<(Ze=Ee<=Pe?l:Ee>=Pe+c?c:Ee-Pe));Ee+=a)fe>y(n/(De=a-Ze))&&B("overflow"),fe*=De;Pe=T(se-we,j=$.length+1,we==0),y(se/j)>n-ue&&B("overflow"),ue+=y(se/j),se%=j,$.splice(se++,0,ue)}return S($)}function q(O){var j,X,ne,ie,we,fe,Ee,Me,Ze,De,$,ae,se,ue,Pe,Se=[];for(ae=(O=Q(O)).length,j=h,X=0,we=u,fe=0;fe<ae;++fe)($=O[fe])<128&&Se.push(I($));for(ne=ie=Se.length,ie&&Se.push(g);ne<ae;){for(Ee=n,fe=0;fe<ae;++fe)($=O[fe])>=j&&$<Ee&&(Ee=$);for(Ee-j>y((n-X)/(se=ne+1))&&B("overflow"),X+=(Ee-j)*se,j=Ee,fe=0;fe<ae;++fe)if(($=O[fe])<j&&++X>n&&B("overflow"),$==j){for(Me=X,Ze=a;!(Me<(De=Ze<=we?l:Ze>=we+c?c:Ze-we));Ze+=a)Pe=Me-De,ue=a-De,Se.push(I(R(De+Pe%ue,0))),Me=y(Pe/ue);Se.push(I(R(Me,0))),we=T(X,se,ne==ie),X=0,++ne}++X,++j}return Se.join("")}if(o={version:"1.3.2",ucs2:{decode:Q,encode:S},decode:H,encode:q,toASCII:function(O){return k(O,function(j){return m.test(j)?"xn--"+q(j):j})},toUnicode:function(O){return k(O,function(j){return p.test(j)?H(j.slice(4).toLowerCase()):j})}},e&&i)if(x8.exports==e)i.exports=o;else for(s in o)o.hasOwnProperty(s)&&(e[s]=o[s]);else t.punycode=o}(IT);var I2t=xT.exports,Q8={};function w2t(t,e){return Object.prototype.hasOwnProperty.call(t,e)}var M8=function(t){switch(typeof t){case"string":return t;case"boolean":return t?"true":"false";case"number":return isFinite(t)?t:"";default:return""}};Q8.decode=Q8.parse=function(t,e,i,r){e=e||"&",i=i||"=";var o={};if(typeof t!="string"||t.length===0)return o;var s=/\+/g;t=t.split(e);var n=1e3;r&&typeof r.maxKeys=="number"&&(n=r.maxKeys);var a=t.length;n>0&&a>n&&(a=n);for(var l=0;l<a;++l){var c,d,A,u,h=t[l].replace(s,"%20"),g=h.indexOf(i);g>=0?(c=h.substr(0,g),d=h.substr(g+1)):(c=h,d=""),A=decodeURIComponent(c),u=decodeURIComponent(d),w2t(o,A)?Array.isArray(o[A])?o[A].push(u):o[A]=[o[A],u]:o[A]=u}return o},Q8.encode=Q8.stringify=function(t,e,i,r){return e=e||"&",i=i||"=",t===null&&(t=void 0),typeof t=="object"?Object.keys(t).map(function(o){var s=encodeURIComponent(M8(o))+i;return Array.isArray(t[o])?t[o].map(function(n){return s+encodeURIComponent(M8(n))}).join(e):s+encodeURIComponent(M8(t[o]))}).join(e):r?encodeURIComponent(M8(r))+i+encodeURIComponent(M8(t)):""};var b2t=I2t,Vd={isString:function(t){return typeof t=="string"},isObject:function(t){return typeof t=="object"&&t!==null},isNull:function(t){return t===null},isNullOrUndefined:function(t){return t==null}},B2t=GB,E2t=function(t,e){return GB(t,!1,!0).resolve(e)},k2t=function(t){return Vd.isString(t)&&(t=GB(t)),t instanceof _c?t.format():_c.prototype.format.call(t)};function _c(){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 x2t=/^([a-z0-9.+-]+:)/i,Q2t=/:[0-9]*$/,M2t=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,S2t=["{","}","|","\\","^","`"].concat(["<",">",'"',"`"," ","\r",`
@@ -1625,7 +1625,7 @@ Fragment shader:
1625
1625
  --bimdata-local-context-width: ${r.width}px;
1626
1626
  --bimdata-local-context-center-width: ${r.centerWidth}px;
1627
1627
  --bimdata-local-context-resolution: ${r.resolution};
1628
- `),onMouseenter:e[0]||(e[0]=(...u)=>r.onMouseEnter&&r.onMouseEnter(...u)),onMouseleave:e[1]||(e[1]=(...u)=>r.onMouseLeave&&r.onMouseLeave(...u))},[F(n,{ref:"modalManagerTemplateRef"},null,512),b("div",EBi,[r.windowPlugins.leftSidePanel?(x(),W(a,{key:0,plugin:r.windowPlugins.leftSidePanel},null,8,["plugin"])):he("",!0),b("div",kBi,[(x(!0),U(ht,null,Ht(r.windowPlugins.free,u=>(x(),W(l,{key:u.name,class:ge({"window-container__content__center__viewer":u.isViewer}),plugin:u},null,8,["class","plugin"]))),128)),F(c,{position:"left",plugins:r.windowPlugins.leftButtonColumn},null,8,["plugins"]),F(c,{position:"right",plugins:r.windowPlugins.rightButtonColumn},null,8,["plugins"])]),r.windowPlugins.rightSidePanel?(x(),W(a,{key:1,plugin:r.windowPlugins.rightSidePanel},null,8,["plugin"])):he("",!0)]),r.loading?(x(),U("div",xBi,[r.spinner&&r.spinner.component?(x(),W(ao(r.spinner.component),YA(Ta({key:0},r.spinner.props)),null,16)):(x(),W(d,{key:1,size:"20px",border:"3px"}))])):he("",!0),r.layoutSettingsDisplayed?(x(),U("div",QBi,[F(A)])):he("",!0)],36)}const SBi=V(BBi,[["render",MBi]]);let DBi=class{constructor(t=!0){const e=ybi(YX,null,{resizable:t});e.registerContent("default",SBi),this.settings=Ra({edit:!1,swap:!1,full:!1}),this.areas=e}get resizable(){return this.areas.resizable}set resizable(t){this.areas.resizable=t}apply(t=null){this.areas.layout=t?Ibi(t):null}copy(t,e=!0){return wbi(this.areas.layout,t,e)}open({ratio:t,direction:e,insertAfter:i,windowName:r=null,windowState:o=null,localContextId:s=null}={}){const n=r?{options:{windowName:r,windowState:o}}:null;return s===null?this.areas.splitLayout(t,e,i,n):this.areas.split(s,t,e,i,n)}swap(t,e){return this.areas.swap(t,e)}close(t){return this.areas.delete(t)}compare(t,e){var i,r;if(!t&&!e)return!0;if(!t||!e)return!1;if(typeof t=="string"&&typeof e=="string")return t===e;if(typeof t=="string"||typeof e=="string")return!1;if(t.windowName&&e.windowName){if(t.windowName!==e.windowName)return!1;const o=new Set((i=t.windowState)==null?void 0:i.modelIds),s=new Set((r=e.windowState)==null?void 0:r.modelIds);return o.size===s.size&&[...o].every(n=>s.has(n))}return t.windowName||e.windowName||t.direction!==e.direction||t.children.length!==e.children.length?!1:t.children.every((o,s)=>this.compare(o,e.children[s]))}};const PBi="@bimdata/viewer",RBi="module",FBi="2.6.0-beta.18",LBi="A customizable BIM viewer.",TBi=["bim","viewer","bimdata","ifc","bcf"],NBi="./index.d.ts",UBi="BIMData.io",OBi="https://developers.bimdata.io/viewer/index.html",HBi={email:"support@bimdata.io"},jBi=["last 2 chrome version","last 2 firefox version"],GBi="dist/bimdata-viewer.esm.min.js",VBi="dist/bimdata-viewer.esm.min.js",qBi={dev:"vite -c build/vite.config.dev.js",build:"node scripts/build.mjs","build:prod":"vite build -c build/vite.config.prod.js && esbuild dist/bimdata-viewer.esm.min.js --minify --outfile=dist/bimdata-viewer.esm.min.js --allow-overwrite","build:offline":"vite build -c build/vite.config.offline.js && esbuild dist/bimdata-viewer.offline.esm.min.js --minify --outfile=dist/bimdata-viewer.offline.esm.min.js --allow-overwrite","build:runtime":"vite build -c build/vite.config.runtime.js && esbuild dist/bimdata-viewer.runtime.esm.min.js --minify --outfile=dist/bimdata-viewer.runtime.esm.min.js --allow-overwrite","build:split":"vite build -c build/vite.config.split.js && esbuild dist/bimdata-viewer.split.esm.min.js --minify --outfile=dist/bimdata-viewer.split.esm.min.js --allow-overwrite","build:umd":"vite build -c build/vite.config.umd.js && esbuild dist/bimdata-viewer.umd.cjs --minify --outfile=dist/bimdata-viewer.umd.min.cjs","cy:run":"cypress run","cy:open":"cypress open",prebuild:"rm -rf dist",prepublishOnly:"npm run build","semantic-release":"semantic-release",serve:"http-server -c-1 --silent",test:"npm run test:unit & npm run build & npm run test:e2e","test:unit":"jest","test:e2e":"start-server-and-test 'npm run serve -- -p 8080' http://localhost:8080 cy:run","test:e2e-dev":"start-server-and-test 'npm run serve -- -p 8080' http://localhost:8080 cy:open",version:"echo $npm_package_version",ts:"tsc"},_Bi=["dist/*","types/*","CHANGELOG.md","README.md","package.json","package-lock.json","index.d.ts"],zBi={"@babel/preset-env":"^7.25.8","@bimdata/2d-engine":"2.6.1","@bimdata/areas-next":"0.1.15","@bimdata/bcf-components":"6.4.4","@bimdata/components":"1.6.7","@bimdata/design-system":"2.2.1-beta.3","@bimdata/typescript-fetch-api-client":"10.17.1","@eslint/eslintrc":"^3.1.0","@eslint/js":"^9.13.0","@rollup/plugin-alias":"5.1.1","@rollup/plugin-babel":"^6.0.4","@rollup/plugin-commonjs":"^28.0.1","@rollup/plugin-image":"^3.0.3","@rollup/plugin-replace":"^6.0.1","@semantic-release/changelog":"^6.0.3","@semantic-release/commit-analyzer":"^13.0.0","@semantic-release/git":"^10.0.1","@semantic-release/github":"^11.0.0","@semantic-release/npm":"^12.0.1","@semantic-release/release-notes-generator":"^14.0.1","@vitejs/plugin-vue":"5.1.4","@vue/vue3-jest":"^29.2.6","@xeokit/xeokit-sdk":"git+https://git@github.com/Amoki/xeokit-sdk.git#f81ebaeda39e03d96f75785b257378e420416e0d","@zip.js/zip.js":"^2.7.52",async:"^3.2.6",autoprefixer:"^10.4.20","babel-core":"^7.0.0-bridge.0","babel-jest":"^29.7.0","conventional-changelog-eslint":"^6.0.0",cypress:"^13.15.0",esbuild:"^0.24.0",eslint:"9.13.0","eslint-config-prettier":"9.1.0","eslint-plugin-cypress":"4.0.0","eslint-plugin-jest":"28.8.3","eslint-plugin-prettier":"5.2.1","eslint-plugin-vue":"9.29.1","form-data":"^4.0.1",globals:"^15.11.0",html2canvas:"1.4.1","http-server":"^14.1.1",jest:"^29.7.0","jest-environment-jsdom":"^29.7.0","jest-extended":"^4.0.2",jspdf:"^2.5.2",lodash:"^4.17.21","node-fetch":"^3.3.2","pdfjs-dist":"^4.7.76",postcss:"^8.4.47",prettier:"^3.3.3",querystring:"^0.2.1","sass-embedded":"^1.80.3","semantic-release":"^24.1.3",sinon:"^19.0.2","start-server-and-test":"^2.0.8",vite:"5.4.9","vite-plugin-css-injected-by-js":"^3.5.2",vue:"3.5.12","vue-eslint-parser":"^9.4.3","vue-i18n":"^10.0.4"},KBi={name:PBi,type:RBi,version:FBi,description:LBi,keywords:TBi,types:NBi,author:UBi,homepage:OBi,bugs:HBi,browserslist:jBi,main:GBi,module:VBi,scripts:qBi,files:_Bi,devDependencies:zBi};class JBi{constructor({plugins:e,api:i,ui:r,locale:o="fr"}){this.pluginManager=new L7i(e),this.windowManager=new N7i,this.windowManager.registerAndAddPluginsToWindows([...this.pluginManager.registeredPlugins.values()]),this.api=new wwi(i),this.globalContext=new Zke(this),this.state=Uwi(this),this.shortcutManager=Y7e(this.state),this.uiSettings=r||{},this.i18n=new Yke(o),this._contextMenu=null,this.layout=new DBi(this.uiSettings.resizable!==!1),this.localContext=null,window.$viewer=this}get version(){return KBi.version}get locale(){return this.i18n.locale}get contextMenu(){return this._contextMenu||K7e}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 YBi(t,e={}){e.backgroundColor&&(t.style.setProperty("--bimdata-viewer-background-color",e.backgroundColor),e.backgroundColor==="transparent"&&t.style.setProperty("--areas-separator-color","transparent")),e.colorPrimary&&t.style.setProperty("--color-primary",e.colorPrimary),e.colorPrimaryLighter&&t.style.setProperty("--color-primary-lighter",e.colorPrimaryLighter),e.colorPrimaryLight&&t.style.setProperty("--color-primary-light",e.colorPrimaryLight),e.colorPrimaryDark&&t.style.setProperty("--color-primary-dark",e.colorPrimaryDark),e.colorSecondary&&t.style.setProperty("--color-secondary",e.colorSecondary),e.colorSecondaryLighter&&t.style.setProperty("--color-secondary-lighter",e.colorSecondaryLighter),e.colorSecondaryLight&&t.style.setProperty("--color-secondary-light",e.colorSecondaryLight),e.colorSecondaryDark&&t.style.setProperty("--color-secondary-dark",e.colorSecondaryDark),e.colorSilverLight&&t.style.setProperty("--color-silver-light",e.colorSilverLight),e.colorSilver&&t.style.setProperty("--color-silver",e.colorSilver),e.colorSilverDark&&t.style.setProperty("--color-silver-dark",e.colorSilverDark),e.colorGraniteLight&&t.style.setProperty("--color-granite-light",e.colorGraniteLight),e.colorGranite&&t.style.setProperty("--color-granite",e.colorGranite),e.colorSuccess&&t.style.setProperty("--color-success",e.colorSuccess),e.colorSuccessLighter&&t.style.setProperty("--color-success-Lighter",e.colorSuccessLighter),e.colorSuccessLight&&t.style.setProperty("--color-success-Light",e.colorSuccessLight),e.colorSuccessDark&&t.style.setProperty("--color-success-Dark",e.colorSuccessDark),e.colorWarning&&t.style.setProperty("--color-warning",e.colorWarning),e.colorWarningLighter&&t.style.setProperty("--color-warning-Lighter",e.colorWarningLighter),e.colorWarningLight&&t.style.setProperty("--color-warning-Light",e.colorWarningLight),e.colorWarningDark&&t.style.setProperty("--color-warning-Dark",e.colorWarningDark),e.colorHigh&&t.style.setProperty("--color-high",e.colorHigh),e.colorHighLighter&&t.style.setProperty("--color-high-lighter",e.colorHighLighter),e.colorHighLight&&t.style.setProperty("--color-high-light",e.colorHighLight),e.colorHighDark&&t.style.setProperty("--color-high-dark",e.colorHighDark),e.colorText&&t.style.setProperty("--color-text",e.colorText),(!e.backgroundColor||e.backgroundColor!=="transparent")&&t.style.setProperty("--areas-separator-color","rgba(216, 216, 216, 1)"),e.headerHeight!=null&&t.style.setProperty("--bimdata-viewer-header-height",e.headerHeight),t.style.setProperty("--areas-background-color","transparent")}const WBi=Object.freeze({25:"GUEST",50:"USER",100:"ADMIN"}),Ev=Object.freeze({READ:"read",WRITE:"write"});function Cve(t){const e={};return t.forEach(i=>{const[r,o]=i.split(":");e[r]?e[r].push(o):e[r]=[o]}),e}const ZBi={token_scopes:[],usable_scopes:[],user_role:25};function yve(t=ZBi){var e,i,r,o,s,n;const a=Cve(t.token_scopes),l=Cve(t.usable_scopes);return{...ure(t),tokenScopes:a,usableScopes:l,userRole:WBi[t.user_role],user:t.user?ure(t.user):null,hasBcfReadPermission:((e=l.bcf)==null?void 0:e.includes(Ev.READ))??!1,hasBcfWritePermission:((i=l.bcf)==null?void 0:i.includes(Ev.WRITE))??!1,hasModelReadPermission:((r=l.model)==null?void 0:r.includes(Ev.READ))??!1,hasModelWritePermission:((o=l.model)==null?void 0:o.includes(Ev.WRITE))??!1,hasDocReadPermission:((s=l.document)==null?void 0:s.includes(Ev.READ))??!1,hasDocWritePermission:((n=l.document)==null?void 0:n.includes(Ev.WRITE))??!1}}const XBi={BcfFilters:{filtersButton:"Filter",filtersTitle:"Filter",priorityLabel:"Priorit\xE4t",statusLabel:"Status",assignedToLabel:"Zugewiesen an",creatorsLabel:"Erstellt von",tagsLabel:"Tags",resetButton:"Zur\xFCcksetzen",searchButton:"Suchen",undefined:"Nicht definiert",datePlaceholder:"Erstellungsdatum"},BcfSettings:{goBackButton:"Zur\xFCck",title:"BCF-Parameter",text:"Erstellen, f\xFCllen und listen Sie die BCF-Einstellungen auf, die Sie f\xFCr dieses Projekt haben m\xF6chten.",validateButton:"Die BCF-Parameter anerkennen"},BcfStatistics:{emptyText:"F\xFCgen Sie Fragen hinzu, um zugeh\xF6rige Statistiken hier anzuzeigen.",issues:"Probleme",extension:{Priority:"Priorit\xE4t",PriorityNotDefined:"Keine Priorit\xE4t",PriorityTitle:"Priorit\xE4ten",Status:"Status",StatusNotDefined:"Kein Status",StatusTitle:"Status"}},BcfTopicCard:{priority:"Priorit\xE4t:",noPriority:"Keine",assignedTo:"Zugewiesen an :",elements:"Elemente",notSpecified:"Nicht definiert",see:"Anzeigen"},BcfTopicCreationCard:{text:"Ein neues BCF-Thema erstellen",createBcfSideTitle:"Ein Problem melden"},BcfTopicForm:{dragDropImageText:"Bitte w\xE4hlen Sie eine Datei aus.",addObjectButton:"Objekt",addAnnotationButton:"Annotation",annotationButtonTooltip:"Zu diesem Thema gibt es derzeit keine Ansichten.",addPictureButton:"F\xFCgen Sie ein Bild hinzu.",titlePlaceholder:"Titel *",titleErrorMessage:"Titel fehlt",typeLabel:"Typ",priorityLabel:"Priorit\xE4t",statusLabel:"Status",stageLabel:"Phase",assignedToLabel:"Zugewiesen an",dueDateLabel:"F\xE4lligkeitsdatum (TT.MM.JJJJ)",descriptionLabel:"Beschreibung",labelsLabel:"Tags",createButton:"Best\xE4tigen",updateButton:"\xC4nderungen \xFCbernehmen",modalText:"Sie sind dabei, die Bearbeitung der Ausgabe {Name} zu beenden, aber es gibt noch ungespeicherte \xC4nderungen.",cancelButton:"\xC4nderungen verwerfen",continueButton:"\xC4nderungen fortsetzen",createTitle:"Ein Problem melden",dragDropImageTextTablet:"Foto machen",takeSnapshot:"Mach einen Schnappschuss",importFile:"Eine Datei importieren",searchPlaceholder:"Suchen",emptySearch:"kein Ergebnis"},BcfTopicOverview:{openViewer:"Im Viewer \xF6ffnen",openViewerNoModels:"Es sind keine Vorlagen zur Ansicht bereit",elements:"{count} Elemente",noElements:"kein Element",type:"Typ",noTypeSpecified:"Kein Typ angegeben",description:"Beschreibung",noDescriptionProvided:"Keine Beschreibung angegeben",assignedTo:"Zugeteilt an",notAssigned:"Nicht zugewiesen",dueDate:"F\xE4lligkeitsdatum",noDueDate:"Kein F\xE4lligkeitsdatum",informations:"Informationen",status:"Status",noStatusSpecified:"Kein Status angegeben",stage:"Phase",noStageProvided:"Keine Phase angegeben",priority:"Priorit\xE4t",priorityNotDefined:"Nicht definiert",tags:"Tags",noTags:"Keine Tags",commentButton:"Ein Kommentar ver\xF6ffentlichen",deleteText:"Sie l\xF6schen jetzt {Name}",deleteBcfButton:"Dieses BCF l\xF6schen",keepBcfButton:"Dieses BCF beibehalten",author:"Autor"},BcfTopicsTable:{headers:{index:"#",priority:"Priorit\xE4t",status:"Status",title:"Titel",creator:"Autor",date:"Datum"}},BcfTopicActionsCell:{seeButton:"Anzeigen"},BcfTopicComments:{commentButton:"Ein Kommentar verfassen",commentLabel:"Ein Kommentar verfassen",commentText:"Kommentar",cancelButton:"Abbrechen",publishButton:"Ver\xF6ffentlichen",commentsText:"Kommentare",deleteCommentText:"Diesen Kommentar l\xF6schen?",deleteButton:"L\xF6schen",takeSnapshot:"Mach einen Schnappschuss"},BcfTopicPriorityCell:{noPriority:"Keine"},SettingCard:{addButton:"ein Element hinzuf\xFCgen",cancelButton:"Abbrechen",validateButton:"Best\xE4tigen",deleteExtensionText:"Diesen Parameter l\xF6schen",deleteButton:"L\xF6schen",title:{Priority:"Priorit\xE4ten",Label:"Tags",Status:"Status",Type:"Typen",Stage:"Phasen"},input:{Priority:"Eine neue Priorit\xE4t hinzuf\xFCgen",Label:"Ein neues Etikett hinzuf\xFCgen",Status:"Einen neuen Status hinzuf\xFCgen",Type:"Einen neuen Typ hinzuf\xFCgen",Stage:"Eine neue Phase hinzuf\xFCgen"},text:{Priority:"Liste der Priorit\xE4ten",Label:"Liste von Tags",Status:"Liste der Status",Type:"Liste der Typen",Stage:"Liste der Phasen"}}},$Bi={BcfComponents:XBi},eEi={BcfFilters:{filtersButton:"Filters",filtersTitle:"Filters",priorityLabel:"Priority",statusLabel:"Status",assignedToLabel:"Assigned to",creatorsLabel:"Created by",tagsLabel:"Tags",resetButton:"Reset",searchButton:"Search",undefined:"Not defined",datePlaceholder:"Creation date"},BcfSettings:{goBackButton:"Back",title:"BCF Settings",text:"Create, enter in, and list the BCF settings you would like to have for this project",validateButton:"Validate BCF settings"},BcfStatistics:{emptyText:"Add BCF Topics to start to have some stats here.",issues:"issues",extension:{Priority:"Priority",PriorityNotDefined:"No priority",PriorityTitle:"Priorities",Status:"Status",StatusNotDefined:"No status",StatusTitle:"Status"}},BcfTopicCard:{priority:"Priority: ",noPriority:"None",assignedTo:"Assigned to: ",elements:"Elements",notSpecified:"Not specified",see:"See"},BcfTopicCreationCard:{text:"Create a new BCF topic",createBcfSideTitle:"Report a problem"},BcfTopicForm:{dragDropImageText:"Please select a file",addObjectButton:"Object",addAnnotationButton:"Annotation",annotationButtonTooltip:"This topic has no viewpoint",addPictureButton:"Add a picture",titlePlaceholder:"Title *",titleErrorMessage:"Missing title",typeLabel:"Type",priorityLabel:"Priority",statusLabel:"Status",stageLabel:"Stage",assignedToLabel:"Assigned to",dueDateLabel:"Due date",descriptionLabel:"Description",labelsLabel:"Tags",createButton:"Validate",updateButton:"Modify this BCF",modalText:"You are about to quit editing issue {name} but there are unsaved changes.",cancelButton:"Discard changes",continueButton:"Continue editing",createTitle:"Report a problem",dragDropImageTextTablet:"Take a picture",takeSnapshot:"Take a snapshot",importFile:"Import a file",searchPlaceholder:"Search",emptySearch:"No result"},BcfTopicOverview:{openViewer:"Open in viewer",openViewerNoModels:"No model to open",elements:"{count} Elements",noElements:"No element",type:"Type",noTypeSpecified:"No type specified",description:"Description",noDescriptionProvided:"No description provided",assignedTo:"Assigned to",notAssigned:"Not assigned",dueDate:"Due date",noDueDate:"No due date",informations:"Informations",status:"Status",noStatusSpecified:"No status specified",stage:"Stage",noStageProvided:"No stage provided",priority:"Priority",priorityNotDefined:"Not defined",tags:"Tags",noTags:"No tags",commentButton:"Post a comment",deleteText:"You are about to delete {name}",deleteBcfButton:"Delete this BCF",keepBcfButton:"Keep this BCF",author:"Author"},BcfTopicsTable:{headers:{index:"#",priority:"Priority",status:"Status",title:"Title",creator:"Author",date:"Date"}},BcfTopicActionsCell:{seeButton:"See"},BcfTopicComments:{commentButton:"Post a comment",commentLabel:"Post a comment",commentText:"Comment",cancelButton:"Cancel",publishButton:"Publish",commentsText:"Comments",deleteCommentText:"Delete this comment ?",deleteButton:"Delete",takeSnapshot:"Take a snapshot"},BcfTopicPriorityCell:{noPriority:"None"},SettingCard:{addButton:"add an element",cancelButton:"Cancel",validateButton:"Validate",deleteExtensionText:"Remove this setting",deleteButton:"Delete",title:{Priority:"Priorities",Label:"Labels",Status:"Status",Type:"Types",Stage:"Stages"},input:{Priority:"Add a new priority",Label:"Add a new label",Status:"Add new status",Type:"Add a new type",Stage:"Add a new stage"},text:{Priority:"Priority list",Label:"Labels list",Status:"Status list",Type:"Type list",Stage:"Stage list"}}},tEi={BcfComponents:eEi},iEi={BcfFilters:{filtersButton:"Filtros",filtersTitle:"Filtros",priorityLabel:"Prioridad",statusLabel:"Estado",assignedToLabel:"Asignado a",creatorsLabel:"Creado por",tagsLabel:"Etiquetas:",resetButton:"Restablecer",searchButton:"Buscar en",undefined:"No definido",datePlaceholder:"Fecha de creaci\xF3n"},BcfSettings:{goBackButton:"Volver",title:"Par\xE1metros del BCF",text:"Cree, rellene y enumere los par\xE1metros del BCF que desea tener en este proyecto",validateButton:"Validar los par\xE1metros del BCF"},BcfStatistics:{emptyText:"A\xF1ada preguntas para ver las estad\xEDsticas asociadas aqu\xED.",issues:"problemas",extension:{Priority:"Prioridad",PriorityNotDefined:"Sin prioridad",PriorityTitle:"Prioridades",Status:"Estado",StatusNotDefined:"Sin estado",StatusTitle:"Estatutos"}},BcfTopicCard:{priority:"Prioridad :",noPriority:"Sin",assignedTo:"Asignado a :",elements:"Elementos",notSpecified:"No definido",see:"Ver"},BcfTopicCreationCard:{text:"Crear un nuevo tema BCF",createBcfSideTitle:"Informar de un problema"},BcfTopicForm:{dragDropImageText:"Seleccione un archivo",addObjectButton:"Objeto",addAnnotationButton:"Anotaci\xF3n",annotationButtonTooltip:"Actualmente este tema no posee ning\xFAn punto de vista",addPictureButton:"A\xF1adir una imagen",titlePlaceholder:"T\xEDtulo *",titleErrorMessage:"Falta el t\xEDtulo",typeLabel:"Tipo",priorityLabel:"Prioridad",statusLabel:"Estado",stageLabel:"Fase",assignedToLabel:"Asignado a",dueDateLabel:"Fecha de vencimiento (DD/MM/AAAA)",descriptionLabel:"Descripci\xF3n",labelsLabel:"Etiquetas",createButton:"Validar",updateButton:"Modificar este BCF",modalText:"Est\xE1 a punto de salir de la edici\xF3n del problema de {name} pero hay cambios sin guardar.",cancelButton:"Cancelar los cambios",continueButton:"Continuar con los cambios",createTitle:"Informar de un problema",dragDropImageTextTablet:"Tomar una fotograf\xEDa",takeSnapshot:"Tomar un snapshot",importFile:"Importar un archivo",searchPlaceholder:"Buscar",emptySearch:"No hay resultados"},BcfTopicOverview:{openViewer:"Abrir en el visor",openViewerNoModels:"No hay ning\xFAn modelo listo para la visualizaci\xF3n",elements:"{count} Elementos",noElements:"Ning\xFAn elemento",type:"Tipo",noTypeSpecified:"No se especifica el tipo",description:"Descripci\xF3n",noDescriptionProvided:"No hay descripci\xF3n",assignedTo:"Asignado a",notAssigned:"No asignado",dueDate:"Plazo",noDueDate:"Sin fecha de vencimiento",informations:"Informaci\xF3n",status:"Estado",noStatusSpecified:"No se especifica el estado",stage:"Fase",noStageProvided:"No se indica ninguna fase",priority:"Prioridad",priorityNotDefined:"No definido",tags:"Etiquetas",noTags:"Sin etiquetas",commentButton:"Publicar un comentario",deleteText:"Est\xE1s a punto de borrar {name}",deleteBcfButton:"Borrar este BCF",keepBcfButton:"Mantenga este BCF",author:"Autor"},BcfTopicsTable:{headers:{index:"#",priority:"Prioridad",status:"Estado",title:"T\xEDtulo",creator:"Autor",date:"Fecha"}},BcfTopicActionsCell:{seeButton:"Ver"},BcfTopicComments:{commentButton:"Publicar un comentario",commentLabel:"Publicar un comentario",commentText:"Comentario",cancelButton:"Cancelar",publishButton:"Publicar",commentsText:"comentarios",deleteCommentText:"\xBFBorrar este comentario?",deleteButton:"Borrar",takeSnapshot:"Tomar un snapshot"},BcfTopicPriorityCell:{noPriority:"Sin"},SettingCard:{addButton:"a\xF1adir un elemento",cancelButton:"Cancelar",validateButton:"Validar",deleteExtensionText:"Borrar esta configuraci\xF3n",deleteButton:"Borrar",title:{Priority:"Prioridades",Label:"Etiquetas:",Status:"Estatutos",Type:"Tipos",Stage:"Fases"},input:{Priority:"A\xF1adir una nueva prioridad",Label:"A\xF1adir una nueva etiqueta",Status:"A\xF1adir un nuevo estado",Type:"A\xF1adir un nuevo tipo",Stage:"A\xF1adir una nueva fase"},text:{Priority:"Lista de prioridades",Label:"Lista de etiquetas",Status:"Lista de estatutos",Type:"Lista de tipos",Stage:"Lista de fases"}}},rEi={BcfComponents:iEi},oEi={BcfFilters:{filtersButton:"Filtres",filtersTitle:"Filtres",priorityLabel:"Priorit\xE9",statusLabel:"Statut",assignedToLabel:"Assign\xE9 \xE0",creatorsLabel:"Cr\xE9\xE9 par",tagsLabel:"Tags",resetButton:"R\xE9initialiser",searchButton:"Rechercher",undefined:"Non d\xE9fini",datePlaceholder:"Date de cr\xE9ation"},BcfSettings:{goBackButton:"Retour",title:"Param\xE8tres BCF",text:"Cr\xE9ez, renseignez et listez les param\xE8tres BCF que vous souhaitez avoir sur ce projet",validateButton:"Valider les param\xE8tres BCF"},BcfStatistics:{emptyText:"Ajoutez des questions pour voir les statistiques associ\xE9es ici.",issues:"probl\xE8mes",extension:{Priority:"Priorit\xE9",PriorityNotDefined:"Aucune priorit\xE9",PriorityTitle:"Priorit\xE9s",Status:"Statut",StatusNotDefined:"Aucun statut",StatusTitle:"Statuts"}},BcfTopicCard:{priority:"Priorit\xE9 : ",noPriority:"Aucune",assignedTo:"Assign\xE9 \xE0 : ",elements:"{n} \xC9lements",notSpecified:"Non d\xE9fini",see:"Voir"},BcfTopicCreationCard:{text:"Cr\xE9er un nouveau topic BCF",createBcfSideTitle:"Signaler un probl\xE8me"},BcfTopicForm:{dragDropImageText:"Veuillez s\xE9lectionner un fichier",addObjectButton:"Objet",addAnnotationButton:"Annotation",annotationButtonTooltip:"Ce topic ne poss\xE8de actuellement aucun point de vue",addPictureButton:"Ajouter une image",titlePlaceholder:"Titre *",titleErrorMessage:"Titre manquant",typeLabel:"Type",priorityLabel:"Priorit\xE9",statusLabel:"Statut",stageLabel:"Phase",assignedToLabel:"Assign\xE9 \xE0",dueDateLabel:"Date d'\xE9ch\xE9ance",descriptionLabel:"Description",labelsLabel:"Tags",createButton:"Valider",updateButton:"Modifier ce BCF",modalText:"Vous \xEAtes sur le point de quitter l'\xE9dition de l'issue {name} mais il y'a des modifications non enregistr\xE9es.",cancelButton:"Annuler les modifications",continueButton:"Continuer les modifications",createTitle:"Signaler un probl\xE8me",dragDropImageTextTablet:"Prendre une photo",takeSnapshot:"Prendre un snapshot",importFile:"Importer un fichier",searchPlaceholder:"Rechercher",emptySearch:"Pas de r\xE9sultat"},BcfTopicOverview:{openViewer:"Ouvrir dans le viewer",openViewerNoModels:"Il n'y a aucun mod\xE8le pr\xEAt pour une visualisation",elements:"{count} \xC9lements",noElements:"Aucun \xE9l\xE9ment concern\xE9",type:"Type",noTypeSpecified:"Pas de type sp\xE9cifi\xE9",description:"Description",noDescriptionProvided:"Pas de description renseign\xE9e",assignedTo:"Assign\xE9 \xE0",notAssigned:"Non assign\xE9",dueDate:"\xC9ch\xE9ance",noDueDate:"Pas de date d'\xE9ch\xE9ance",informations:"Informations",status:"Statut",noStatusSpecified:"Pas de statut sp\xE9cifi\xE9",stage:"Phase",noStageProvided:"Pas de phase renseign\xE9e",priority:"Priorit\xE9",priorityNotDefined:"Non d\xE9fini",tags:"Tags",noTags:"Pas de tags",commentButton:"Poster un commentaire",deleteText:"Vous \xEAtes sur le point de supprimer {name}",deleteBcfButton:"Supprimer ce BCF",keepBcfButton:"Conserver ce BCF",author:"Auteur"},BcfTopicsTable:{headers:{index:"#",priority:"Priorit\xE9",status:"Statut",title:"Titre",creator:"Auteur",date:"Date"}},BcfTopicActionsCell:{seeButton:"Voir"},BcfTopicComments:{commentButton:"Poster un commentaire",commentLabel:"Poster un commentaire",commentText:"Commentaire",cancelButton:"Annuler",publishButton:"Publier",commentsText:"commentaires",deleteCommentText:"Supprimer ce commentaire ?",deleteButton:"Supprimer",takeSnapshot:"Prendre un snapshot"},BcfTopicPriorityCell:{noPriority:"Aucune"},SettingCard:{addButton:"ajouter un \xE9l\xE9ment",cancelButton:"Annuler",validateButton:"Valider",deleteExtensionText:"Supprimmer ce param\xE8tre",deleteButton:"Supprimer",title:{Priority:"Priorit\xE9s",Label:"Tags",Status:"Statuts",Type:"Types",Stage:"Phases"},input:{Priority:"Ajouter une nouvelle priorit\xE9",Label:"Ajouter un nouveau label",Status:"Ajouter un nouveau statut",Type:"Ajouter un nouveau type",Stage:"Ajouter une nouvelle phase"},text:{Priority:"Liste des priorit\xE9s",Label:"Liste des tags",Status:"Liste des statuts",Type:"Liste des types",Stage:"Liste des phases"}}},nEi={BcfComponents:oEi},sEi={BcfFilters:{filtersButton:"Filtri",filtersTitle:"Filtri",priorityLabel:"Priorit\xE0",statusLabel:"Stato",datePlaceholder:"Data di creazione",assignedToLabel:"Assegnato a",creatorsLabel:"Creato da",tagsLabel:"Etichette",resetButton:"Ripristina",searchButton:"Cerca",undefined:"Non definito"},BcfSettings:{goBackButton:"Indietro",title:"Parametri BCF",text:"Creare, notificare e elencare i parametri BCF che si desidera avere su questo progetto",validateButton:"Conferma i parametri BCF"},BcfStatistics:{emptyText:"Aggiungi delle domande per vedere le statistiche associate qui.",issues:"problemi",extension:{Priority:"Priorit\xE0",PriorityNotDefined:"Nessuna priorit\xE0",PriorityTitle:"Priorit\xE0",Status:"Stato",StatusNotDefined:"Nessuno stato",StatusTitle:"Stati"}},BcfTopicCard:{priority:"Priorit\xE0:",noPriority:"Nessuno",assignedTo:"Assegnato a:",elements:"Elementi",noElements:"0 elementi",notSpecified:"Non definito",see:"Visualizza"},BcfTopicCreationCard:{text:"Crea un nuovo topic BCF",createBcfSideTitle:"Segnala un problema"},BcfTopicForm:{dragDropImageText:"Selezionare un file",addObjectButton:"Oggetto",addAnnotationButton:"Annotazione",annotationButtonTooltip:"Attualmente questo argomento non presenta alcun punto di vista",addPictureButton:"Aggiungere un'immagine",titlePlaceholder:"Titolo *",titleErrorMessage:"Titolo mancante",typeLabel:"Tipo",priorityLabel:"Priorit\xE0",statusLabel:"Stato",stageLabel:"Fase",assignedToLabel:"Assegnato a",dueDateLabel:"Data di scadenza",descriptionLabel:"Descrizione",labelsLabel:"Tag",createButton:"Conferma",updateButton:"Modificare questo BCF",modalText:"State per abbandonare la modifica di {name} ma ci sono modifiche non salvate.",cancelButton:"Annullare le modifiche",continueButton:"Continuare le modifiche",createTitle:"Segnala un problema"},BcfTopicOverview:{openViewer:"Apri nel visualizzatore",openViewerNoModels:"Non esistono modelli pronti per la visualizzazione",elements:"{count} Elementi",noElements:"Nessun elemento",type:"Tipo",noTypeSpecified:"Nessun tipo specificato",description:"Descrizione",noDescriptionProvided:"Nessuna descrizione inserita",assignedTo:"Assegnato a",notAssigned:"Non assegnato",dueDate:"Scadenza",noDueDate:"Nessuna data di scadenza",informations:"Informazioni",status:"Stato",noStatusSpecified:"Nessuno stato specificato",stage:"Fase",noStageProvided:"Nessuna fase inserita",priority:"Priorit\xE0",priorityNotDefined:"Non definita",tags:"Etichette",noTags:"Nessuna etichetta",commentButton:"Pubblica un commento",deleteText:"Stai per eliminare {name}",deleteBcfButton:"Elimina questo BCF",keepBcfButton:"Conserva questo BCF",author:"Autore"},BcfTopicsTable:{headers:{index:"#",priority:"Priorit\xE0",status:"Stato",title:"Titolo",creator:"Autore",date:"Data"}},BcfTopicActionsCell:{seeButton:"Visualizza"},BcfTopicComments:{commentButton:"Pubblica un commento",commentLabel:"Pubblica un commento",commentText:"Commento",cancelButton:"Annulla",publishButton:"Pubblica",commentsText:"commenti",deleteCommentText:"Eliminare questo commento?",deleteButton:"Elimina"},BcfTopicPriorityCell:{noPriority:"Nessuno"},SettingCard:{addButton:"aggiungi un elemento",cancelButton:"Annulla",validateButton:"Conferma",deleteExtensionText:"Elimina questo parametro",deleteButton:"Elimina",title:{Priority:"Priorit\xE0",Label:"Etichette",Status:"Stati",Type:"Tipi",Stage:"Fasi"},input:{Priority:"Aggiungi una nuova priorit\xE0",Label:"Aggiungi una nuova etichetta",Status:"Aggiungi un nuovo stato",Type:"Aggiungi un nuovo tipo",Stage:"Aggiungi una nuova fase"},text:{Priority:"Elenco delle priorit\xE0",Label:"Elenco delle etichette",Status:"Elenco degli stati",Type:"Elenco dei tipi",Stage:"Elenco delle fasi"}}},aEi={BcfComponents:sEi},lEi={de:$Bi,en:tEi,es:rEi,fr:nEi,it:aEi},cEi=({apiClient:t,fetchUsers:e,i18nPlugin:i}={})=>({install(r){t?qr.setup({apiClient:t,fetchUsers:e}):console.error("[BCF Components Plugin] No api client provided. You must provide an api client for the components to work properly."),i?Object.entries(lEi).forEach(([o,s])=>{i.global.mergeLocaleMessage(o,s)}):console.warn("[BCF Components Plugin] No i18n instance provided. You should either provide an i18n instance or define your own translations in order have text displayed properly."),Object.entries(mPe).forEach(([o,s])=>{r.component(o,s)})}}),dEi={title:"Building Maker",back:"Zur\xFCck",list:{text:"Erstellen und bearbeiten Sie die Etagen und laden Sie anschlie\xDFend Ihre PDFs herunter.",createButton:"Neues Projekt",updateButton:"Umbenennen",deleteButton:"L\xF6schen"},form:{text:"Erstellen und bearbeiten Sie die Etagen und laden Sie anschlie\xDFend Ihre PDFs herunter.",input:"Name des Geb\xE4udes",error:"Ung\xFCltiger Name",createButton:"Erstellen",updateButton:"Best\xE4tigen"},view:{addStoreyButton:"Etage",addFileButton:"Grundriss",closeButton:"Fertigstellen",submitFilesButton:"Best\xE4tigen"},storeyForm:{title:"Neue Etage",input:"Name",error:"Ung\xFCltiger Name",cancelButton:"Abbrechen",submitButton:"Best\xE4tigen"}},AEi={creationFormTitle:"Ordner erstellen",renameFormPlaceholder:"Datei- / Ordnernam",nameInputPlaceholder:"Ordnername",emptyFolder:"Dieser Ordner ist leer",newFolderSuccess:"Neuer Ordner erstellt",renameFolderSuccess:"Umbenannter Ordner",deleteFolderSuccess:"Ordner gel\xF6scht",newFileSuccess:"Datei hinzugef\xFCgt",renameFileSuccess:"Umbenannte Datei",deleteFileSuccess:"Datei gel\xF6scht",nameInputErrorMessage:"Ung\xFCltiger name",cancel:"Abbrechen",submit:"Best\xE4tigen",buttonText:"Neuer Ordner",addFileButtonText:"Datei laden",rename:"Umbenennen",view:"Sehen",download:"Herunterladen",delete:"L\xF6schen",deleteTitle:"Dateien l\xF6schen",deleteDetail:"Sie sind im Begriff, die folgenden Dateien / Ordner endg\xFCltig zu l\xF6schen"},uEi={BuildingMaker:dEi,FileManager:AEi},hEi={title:"Building",back:"Back",list:{text:"Create and edit the layers, then download your PDFs.",createButton:"New project",updateButton:"Rename",deleteButton:"Delete"},form:{text:"Create and edit the layers, then download your PDFs.",input:"Building name",error:"Invalid",createButton:"Create",updateButton:"Confirm"},view:{addStoreyButton:"Storey",addFileButton:"Plan",closeButton:"Finish",submitFilesButton:"Validate"},storeyForm:{title:"New storey",input:"Name",error:"Invalid name",cancelButton:"Cancel",submitButton:"Validate"}},pEi={creationFormTitle:"Create folder",renameFormPlaceholder:"Folder/File name",nameInputPlaceholder:"Folder name",emptyFolder:"This folder is empty",newFolderSuccess:"New folder created",renameFolderSuccess:"Folder renamed",deleteFolderSuccess:"Folder deleted",newFileSuccess:"File added",renameFileSuccess:"File renamed",deleteFileSuccess:"File deleted",nameInputErrorMessage:"Invalid name",cancel:"Cancel",submit:"Submit",buttonText:"New folder",addFileButtonText:"Upload a file",rename:"Rename",view:"View",download:"Download",delete:"Delete",deleteTitle:"Deleting Files",deleteDetail:"You are about to permanently delete the following files / folders",dmsRoot:"Root of the project's DMS",validate:"Validate",back:"Back",pdfPageSelectorTitle:"Select a page"},gEi={title:"Meta-Building Structure",tab:{structure:"Structure",zones:"Zones",equipments:"Equipments"},StoreySelector:{placeholder:"Select a storey"},StructureView:{search:"Search"}},fEi={title:"Photosphere Building"},mEi={BuildingMaker:hEi,FileManager:pEi,MetaBuildingStructure:gEi,PhotosphereBuilding:fEi},vEi={title:"Building Maker",back:"Vuelta",list:{text:"Cree y edite los pisos despu\xE9s cargue los PDF.",createButton:"Nuevo proyecto",updateButton:"Renombrar",deleteButton:"Suprimir"},form:{text:"Cree y edite los pisos despu\xE9s cargue los PDF.",input:"Nombre del edificio",error:"Nombre no v\xE1lido",createButton:"Crear",updateButton:"Validar"},view:{addStoreyButton:"Piso",addFileButton:"Plano",closeButton:"Terminar",submitFilesButton:"Validar"},storeyForm:{title:"Nuevo piso",input:"Nombre",error:"Nombre no v\xE1lido",cancelButton:"Anular",submitButton:"Validar"}},CEi={creationFormTitle:"Crear un archivo",renameFormPlaceholder:"Nombre de archivo / carpeta",nameInputPlaceholder:"Nombre de la carpeta",emptyFolder:"Esta carpeta est\xE1 vac\xEDa",newFolderSuccess:"Nueva carpeta creada",renameFolderSuccess:"Carpeta renombrada",deleteFolderSuccess:"Carpeta eliminada",newFileSuccess:"Archivo agregado",renameFileSuccess:"Archivo renombrado",deleteFileSuccess:"Archivo eliminado",nameInputErrorMessage:"Nombre inv\xE1lida",cancel:"Cancelar",submit:"Validar",buttonText:"Carpeta nueva",addFileButtonText:"Cargar un archivo",rename:"Renombrar",view:"Ver",download:"Descargar",delete:"Borrar",deleteTitle:"Eliminar archivos",deleteDetail:"Est\xE1 a punto de eliminar permanentemente los siguientes archivos / carpetas"},yEi={BuildingMaker:vEi,FileManager:CEi},IEi={title:"Building Maker",back:"Retour",list:{text:"Cr\xE9ez et \xE9ditez les \xE9tages puis t\xE9l\xE9chagez vos PDF.",createButton:"Nouveau projet",updateButton:"Renommer",deleteButton:"Supprimer"},form:{text:"Cr\xE9ez et \xE9ditez les \xE9tages puis t\xE9l\xE9chagez vos PDF.",input:"Nom du b\xE2timent",error:"Nom invalide",createButton:"Cr\xE9er",updateButton:"Valider"},view:{addStoreyButton:"\xC9tage",addFileButton:"Plan",closeButton:"Terminer",submitFilesButton:"Valider"},storeyForm:{title:"Nouvel \xE9tage",input:"Nom",error:"Nom invalide",cancelButton:"Annuler",submitButton:"Valider"}},wEi={creationFormTitle:"Cr\xE9er un dossier",renameFormPlaceholder:"Nom du fichier/dosier",nameInputPlaceholder:"Nom du dossier",emptyFolder:"Ce dossier est vide",newFolderSuccess:"Nouveau dossier cr\xE9\xE9",renameFolderSuccess:"Dossier renomm\xE9",deleteFolderSuccess:"Dossier supprim\xE9",newFileSuccess:"Fichier ajout\xE9",renameFileSuccess:"Fichier renomm\xE9",deleteFileSuccess:"Fichier supprim\xE9",nameInputErrorMessage:"Nom invalide",cancel:"Annuler",submit:"Valider",buttonText:"Nouveau dossier",addFileButtonText:"Charger un fichier",rename:"Renommer",view:"Voir",download:"T\xE9l\xE9charger",delete:"Supprimer",deleteTitle:"Supression de fichiers",deleteDetail:"Vous \xEAtes sur le point de supprimer d\xE9finitivement les fichiers/dossiers suivants",dmsRoot:"Racine de la GED du projet",validate:"Valider",back:"Retour",pdfPageSelectorTitle:"S\xE9lectionner une page"},bEi={title:"Structure M\xE9ta-Building",tab:{structure:"Structure",zones:"Zones",equipments:"Equipements"},StoreySelector:{placeholder:"S\xE9lectionner un \xE9tage"},StructureView:{search:"Rechercher"}},BEi={title:"Photosph\xE8re Building"},EEi={BuildingMaker:IEi,FileManager:wEi,MetaBuildingStructure:bEi,PhotosphereBuilding:BEi},kEi={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",addFileButton:"Progetto",closeButton:"Finire",submitFilesButton:"Convalidare"},storeyForm:{title:"Nuovo piano",input:"Nome",error:"Nome non corretto",cancelButton:"Annullare",submitButton:"Convalidare"}},xEi={creationFormTitle:"Crea una cartella",renameFormPlaceholder:"Nome file/cartella",nameInputPlaceholder:"Nome della cartella",emptyFolder:"Questa cartella \xE8 vuota",newFolderSuccess:"Nuova cartella creata",renameFolderSuccess:"Cartella rinominata",deleteFolderSuccess:"Cartella eliminata",newFileSuccess:"File aggiunto",renameFileSuccess:"File rinominato",deleteFileSuccess:"File cancellato",nameInputErrorMessage:"Nome non valido",cancel:"Annulla",submit:"Invia",buttonText:"Nuova cartella",addFileButtonText:"Carica un file",rename:"Rinominare",view:"Vedere",download:"Scaricare",delete:"Cancellare",deleteTitle:"Eliminazione di file",deleteDetail:"Stai per eliminare definitivamente i seguenti file/cartelle"},QEi={BuildingMaker:kEi,FileManager:xEi},MEi={de:uEi,en:mEi,es:yEi,fr:EEi,it:QEi},SEi=({i18nPlugin:t}={})=>({install(e){t?Object.entries(MEi).forEach(([i,r])=>{t.global.mergeLocaleMessage(i,r)}):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(ehi).forEach(([i,r])=>{e.component(i,r)})}}),DEi={beforeMount(t,e){if(typeof e.value!="function")throw Error(`click away directive needs function, got ${typeof e.value}`);t.clickAwayHandler=i=>{(i.path||i.composedPath&&i.composedPath()).find(r=>r===t)||e.value()},window.addEventListener("mousedown",t.clickAwayHandler,!0)},unmounted(t){window.removeEventListener("mousedown",t.clickAwayHandler,!0),delete t.clickAwayHandler}},PEi=Object.freeze(Object.defineProperty({__proto__:null,BIMDataClickAway:Hd,BIMDataClickInputAway:DEi},Symbol.toStringTag,{value:"Module"})),REi=t=>({install(e){Object.entries($ct).forEach(([i,r])=>{e.component(i,r)}),Object.entries(PEi).forEach(([i,r])=>e.directive(i.split("BIMData")[1],r))}}),FEi={name:"LiWrapper",render(){return _o("li",this.$slots.default())}};function LEi(t,e){var i=new Set([]);return t.forEach(r=>{e.has(r)||i.add(r)}),i}const lA=Cs("id"),TEi=({contextMenu:t,objects:e=[],state:i=t.$viewer.state,pictos:r})=>[{name:"selectAll",get group(){return t.groupPositions.select},position:1,get label(){return t.$t("context_menu.select_all")},get picto(){return r.get(this.name)},execute:()=>i.selectObjects(e.filter(Sd(Zi("visible"),ip("selected"))).map(lA)),predicate:()=>e.some(Sd(Zi("visible"),ip("selected")))},{name:"deselectAll",get group(){return t.groupPositions.select},position:2,get label(){return t.$t("context_menu.deselect_all")},get picto(){return r.get(this.name)},execute:()=>i.deselectObjects(e.filter(Zi("selected")).map(lA)),predicate:()=>e.some(Zi("selected"))},{name:"selectSimilar",get group(){return t.groupPositions.select},position:3,get label(){return t.$t("context_menu.select_similar")},get picto(){return r.get(this.name)},execute(){const o=e.filter(s=>s.visible&&s.type===this.selectedObject.type&&s.id!==this.selectedObject.id).map(lA);i.selectObjects(o)},selectedObject:null,predicate(){const o=e.filter(Sd(Zi("visible"),Zi("selected")));return o.length===1&&o[0].type!==void 0?(this.selectedObject=o[0],!0):(this.selectedObject=null,!1)}},{name:"reverseSelection",get label(){return t.$t("context_menu.reverse_selection")},get group(){return t.groupPositions.select},position:4,execute:()=>{const o=new Set(e.filter(Zi("selected")).map(lA)),s=new Set(e.filter(Zi("visible")).map(lA));i.selectObjects(Array.from(LEi(s,o)),{exclusive:!0})},predicate:()=>e.some(Sd(ip("selected"),Zi("visible")))&&e.some(Sd(Zi("selected"),Zi("visible")))},{name:"showAll",get group(){return t.groupPositions.visibility},position:1,get label(){return t.$t("context_menu.show_all")},get picto(){return r.get(this.name)},execute:()=>i.showObjects(e.filter(ip("visible")).map(lA)),predicate:()=>e.some(ip("visible"))},{name:"hide",get group(){return t.groupPositions.visibility},position:2,get label(){return t.$t("context_menu.hide")},get picto(){return r.get(this.name)},objectsToHide:null,execute(){const o=this.objectsToHide.filter(Zi("selected"));o.length>0&&i.deselectObjects(o.map(lA)),i.hideObjects(this.objectsToHide.map(lA))},predicate(){return this.objectsToHide=e.filter(Sd(Zi("selected"),Zi("visible"))),this.objectsToHide.length>0}},{name:"hideAll",get group(){return t.groupPositions.visibility},position:3,get label(){return t.$t("context_menu.hide_all")},execute:()=>{const o=e.filter(Zi("visible"));o.some(Zi("selected"))&&i.deselectObjects(o.filter(Zi("selected")).map(lA)),i.hideObjects(o.map(lA))},predicate:()=>e.some(Zi("visible"))}].filter(o=>o.predicate()),NEi={components:{LiWrapper:FEi},inject:["$viewer"],data(){return{defaultPrevented:!1,displayed:!1,top:null,bottom:null,left:null,width:200,nextCommandId:1,currentCommands:[],contextCommands:[],registeredCommands:[],groupPositions:{select:10,visibility:20},asyncPredicateRunning:!1}},computed:{position(){return{top:this.top?this.top+"px":"unset",bottom:this.bottom?this.bottom+"px":"unset",left:this.left+"px",width:this.width+"px"}}},watch:{displayed(t){t?document.addEventListener("keydown",this.onKeyDown):document.removeEventListener("keydown",this.onKeyDown)}},created(){this.$viewer.contextMenu=this,this.asyncPredicates=new Set},methods:{onKeyDown(t){t.key==="Escape"&&this.away()},setPosition(t){const e=(document.fullscreenElement?document.fullscreenElement:this.$parent.$el).getBoundingClientRect();this.left=t.clientX-e.left,this.top=t.clientY-e.top,this.left+this.width>e.width&&(this.left=this.left-this.width),t.clientY>e.top+e.height/2?(this.bottom=e.height-this.top,this.top=null):this.bottom=null},typeCheckCommand(t={}){let e=null;if((!t.execute||typeof t.execute!="function")&!t.component&&(e="Cannot register context menu command. A command must have an execute function or a component property."),t.label||(e="Cannot register context menu command. A command must have a label."),e)throw console.error(e),new Error(e);return t.id=this.nextCommandId++,t},open(t){this.currentCommands=[],this.setPosition(t),this.originEvent=t,t.preventDefault(),this.setCurrentCommands(),this.groupCurrentCommands(),this.defaultPrevented=!1,this.displayed=!0,document.fullscreenElement?(this.$el.parentElement.removeChild(this.$el),this.adoptiveParent=document.fullscreenElement,this.adoptiveParent.appendChild(this.$el)):this.adoptiveParent&&this.adoptiveParent!==this.$viewer.globalContext.el&&(this.adoptiveParent.removeChild(this.$el),this.$viewer.globalContext.el.appendChild(this.$el),this.adoptiveParent=null)},setCurrentCommands(){this.asyncPredicates.clear(),this.asyncPredicateRunning=!1,this.defaultPrevented||this.registeredCommands.forEach(async t=>{if(typeof t.predicate=="function"){const e=t.predicate(this.$viewer.globalContext.activeLocalContext);if(e===!0)this.currentCommands.push(t);else if(typeof e?.then=="function"){this.asyncPredicates.add(e),this.asyncPredicateRunning=!0;const i=await e;this.asyncPredicates.has(e)&&(this.asyncPredicates.delete(e),this.asyncPredicateRunning=this.asyncPredicates.size>0,i===!0&&this.currentCommands.push(t))}}else this.currentCommands.push(t)}),this.currentCommands.push(...this.contextCommands),this.contextCommands=[]},getDefaultCommands({objects:t=[],state:e=this.$viewer.state,context:i=null}){const r=new Map;return i&&this.$viewer.shortcutManager.getShortcuts(i).forEach(o=>r.set(o.name,o.key)),TEi({contextMenu:this,objects:t,state:e,pictos:r})},executeCommand(t){if(t.execute&&(t.execute(this.originEvent),this.displayed=!1),t.component&&!t.menu)throw new Error("Command with component property must have a `menu` property")},away(){this.displayed=!1},groupCurrentCommands(){const t=new Map;this.currentCommands.forEach(i=>{(i.group===null||i.group===void 0)&&(i.group=0),t.has(i.group)?t.get(i.group).push(i):t.set(i.group,[i])}),t.forEach(i=>i.sort((r,o)=>(r.position=r.position||0,o.position=o.position||0,r.position-o.position)));const e=[...t.keys()].sort((i,r)=>i-r).map(i=>t.get(i)).flat();this.currentCommands=e},isGroupIntersection(t){if(t===0)return!1;const e=this.currentCommands[t-1],i=this.currentCommands[t];return e.group<i.group},registerContextCommand(t){const e=this.typeCheckCommand(t);return this.contextCommands.push(e),t.id},registerCommand(t){const e=this.typeCheckCommand(t);return this.registeredCommands.push(e),t.id},unregisterCommand(t){return this.registeredCommands.find(e=>e.id===t)?(this.registeredCommands=this.registeredCommands.filter(e=>e.id!==t),!0):!1},preventDefault(){this.defaultPrevented=!0}}},UEi={key:0,class:"separator"},OEi={class:"menu-text"},HEi={key:1,class:"menu-picto"},jEi={key:0,class:"context-menu__spinner"};function GEi(t,e,i,r,o,s){const n=P("BIMDataIconChevron"),a=P("LiWrapper"),l=P("BIMDataSpinner"),c=Ti("click-away");return o.displayed&&(o.currentCommands.length||o.asyncPredicateRunning)?Bt((x(),U("ul",{key:0,class:"bimdata-list context-menu",style:pe(s.position)},[(x(!0),U(ht,null,Ht(o.currentCommands,(d,A)=>(x(),W(a,{key:d.label,class:"context-menu__element",onClick:u=>s.executeCommand(d)},{default:G(()=>[s.isGroupIntersection(A)?(x(),U("div",UEi)):he("",!0),b("div",OEi,z(d.label),1),!d.component&&d.picto?(x(),U("span",HEi,z(d.picto),1)):d.component?(x(),W(n,{key:2,size:"xxs",class:"fill-primary"})):he("",!0)]),_:2},1032,["onClick"]))),128)),o.asyncPredicateRunning?(x(),U("li",jEi,[F(l)])):he("",!0)],4)),[[c,s.away]]):he("",!0)}const VEi=V(NEi,[["render",GEi],["__scopeId","data-v-5b87d4a3"]]),qEi={name:"ViewerHeader",inject:["$viewer"],props:{visible:{type:Boolean,default:!0}},setup(){const t=St("$viewer"),e=Ra(new Map),i=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)},r=o=>e.has(o)?(e.delete(o),!0):!1;return{logo:t.uiSettings.bimdataLogo!==!1,version:t.uiSettings.version!==!1?t.version:null,headerContent:e,headerRightContentComponents:lt(()=>Array.from(e.values()).filter(o=>o.position==="right").sort((o,s)=>o.order-s.order).map(o=>o.component)),headerLeftContentComponents:lt(()=>Array.from(e.values()).filter(o=>o.position==="left").sort((o,s)=>o.order-s.order).map(o=>o.component)),addContent:i,removeContent:r}}},_Ei={class:"viewer-header"},zEi={class:"viewer-header__content"},KEi={class:"viewer-header__content__left"},JEi={class:"viewer-header__content__right"},YEi={key:0,class:"m-l-6 flex items-center"},WEi={key:1,class:"viewer-header__version"};function ZEi(t,e,i,r,o,s){const n=P("BIMDataIllustration");return Bt((x(),U("div",_Ei,[b("div",zEi,[b("div",KEi,[(x(!0),U(ht,null,Ht(r.headerLeftContentComponents,a=>(x(),W(ao(a),{key:a.name}))),128))]),b("div",JEi,[(x(!0),U(ht,null,Ht(r.headerRightContentComponents,a=>(x(),W(ao(a),{key:a.name}))),128))])]),r.logo||r.version?(x(),U("div",YEi,[r.logo?(x(),W(n,{key:0,name:"logo",width:"30px",height:"30px"})):he("",!0),r.version?(x(),U("div",WEi,z(r.version),1)):he("",!0)])):he("",!0)],512)),[[ni,i.visible]])}const XEi=V(qEi,[["render",ZEi],["__scopeId","data-v-5c9ea6b6"]]),$Ei={emits:["resize"],setup(t,{emit:e}){return{onResizerMousedown:i=>{i.preventDefault();let r=i.clientX;const o=n=>{n.preventDefault();const a=n.clientX-r;r=n.clientX,e("resize",a)},s=n=>{n.preventDefault(),window.removeEventListener("mousemove",o),window.removeEventListener("mouseup",s)};window.addEventListener("mousemove",o),window.addEventListener("mouseup",s)}}}},eki={class:"bimdata-separator"};function tki(t,e,i,r,o,s){return x(),U("div",eki,[e[1]||(e[1]=b("div",{class:"bimdata-separator__line"},null,-1)),b("div",{class:"bimdata-separator__resizer",onMousedown:e[0]||(e[0]=(...n)=>r.onResizerMousedown&&r.onResizerMousedown(...n))},null,32)])}const iki=V($Ei,[["render",tki],["__scopeId","data-v-79a3b3af"]]),rki={components:{Separator:iki},props:{position:{type:String,required:!0,validator(t){return["left","right"].includes(t)}},sidePanel:{type:Object,required:!0,validator(t){if(t.width&&(typeof t.width!="number"||t.width<0))return console.error(`[GlobalSidePanel] sidePanel.width must be a strictly positive number, received ${typeof t.width}`),!1;const e=typeof t?.component=="object";return e||console.error("[GlobalSidePanel] sidePanel must have a component property"),e}}},setup(t){const e=Le(null),i=Le(t.sidePanel.width??400),r=(o,s=1)=>{const n=i.value+o*s;i.value=Math.max(0,n)};return Dt(()=>t.sidePanel,()=>{Object.defineProperty(t.sidePanel,"width",{get(){return i.value},set(o){if(typeof o!="number"||o<=0){console.error(`[GlobalSidePanel] sidePanel.width must be a strictly positive number, received ${typeof o}`);return}i.value=o}}),Object.defineProperty(t.sidePanel,"componentInstance",{get(){return e.value},enumerable:!0})},{immediate:!0}),{componentInstance:e,width:i,onResize:r}}},oki={class:"bimdata-global-side-panel__component"};function nki(t,e,i,r,o,s){const n=P("Separator");return x(),U("div",{class:"bimdata-global-side-panel",style:pe(`width: ${r.width}px`)},[i.sidePanel.resizable&&i.position==="right"?(x(),W(n,{key:0,onResize:e[0]||(e[0]=a=>r.onResize(a,-1))})):he("",!0),b("div",oki,[(x(),W(ao(i.sidePanel.component),{ref:"componentInstance"},null,512))]),i.sidePanel.resizable&&i.position==="left"?(x(),W(n,{key:1,onResize:e[1]||(e[1]=a=>r.onResize(a))})):he("",!0)],4)}const ski=V(rki,[["render",nki],["__scopeId","data-v-82d0d4cb"]]),aki={name:"BimdataViewer",components:{ContextMenu:VEi,ViewerHeader:XEi,ModalManager:fve,GlobalSidePanel:ski},setup(){const t=St("$viewer"),{globalContext:e,shortcutManager:i}=t;Dr(()=>{i&&i.destroy(),e.hub.clear()}),ar(()=>{t.pluginManager.runPluginsScripts(t)});const r=lt(()=>{var h;return t.uiSettings.bimdataLogo!==!1&&(e.localContexts.length!==1||((h=e.localContexts[0].window)==null?void 0:h.logoAndVersion))}),o=lt(()=>{var h;return t.uiSettings.version!==!1&&(e.localContexts.length!==1||(h=e.localContexts[0].window)!=null&&h.logoAndVersion)?t.version:null}),s=lt(()=>e.leftSidePanel),n=lt(()=>e.rightSidePanel),a=lt(()=>{var h;const g=t.uiSettings.header!==!1,p=e.localContexts.length===1&&((h=e.localContexts[0].window)==null?void 0:h.header)===!1,m=!!(s.value||n.value);return g&&(!p||m)}),l=t.uiSettings.contextMenu!==!1,c=Le(null);function d(h){l&&c.value.open(h)}function A(){t.shortcutManager.active=!0}function u(){t.shortcutManager.active=!1}return{Layout:t.layout.areas.component,onContextMenu:d,onMouseenter:A,onMouseleave:u,isHeaderVisible:a,viewerTemplateRef:e.templateRef,modalManagerTemplateRef:e.modalManagerTemplateRef,headerTemplateRef:e.headerTemplateRef,contextMenuTemplateRef:c,contextMenuEnabled:l,bimdataLogoOnSingleWindow:r,viewerVersionOnSingleWindow:o,version:t.version,loading:lt(()=>e.loading),spinner:lt(()=>e.spinner),leftSidePanel:s,rightSidePanel:n}}},lki={key:1,class:"global-spinner",style:{"z-index":"3"}},cki={key:2,class:"viewer__logo"},dki={key:1,class:"version m-t-6"};function Aki(t,e,i,r,o,s){const n=P("ModalManager"),a=P("ContextMenu"),l=P("ViewerHeader"),c=P("GlobalSidePanel"),d=P("BIMDataSpinner"),A=P("BIMDataIllustration");return x(),U("div",{id:"bimdata-viewer",ref:"viewerTemplateRef",class:"bimdata-viewer bimdata-scrollbar",onContextmenu:e[0]||(e[0]=(...u)=>r.onContextMenu&&r.onContextMenu(...u)),onMouseenter:e[1]||(e[1]=(...u)=>r.onMouseenter&&r.onMouseenter(...u)),onMouseleave:e[2]||(e[2]=(...u)=>r.onMouseleave&&r.onMouseleave(...u))},[F(n,{ref:"modalManagerTemplateRef"},null,512),r.contextMenuEnabled?(x(),W(a,{key:0,ref:"contextMenuTemplateRef"},null,512)):he("",!0),F(l,{ref:"headerTemplateRef",visible:r.isHeaderVisible},null,8,["visible"]),b("div",{class:"bimdata-viewer__content",style:pe(r.isHeaderVisible?"height: calc(100% - var(--bimdata-viewer-header-height, 40px))":"height: 100%")},[r.leftSidePanel?(x(),W(c,{key:0,"side-panel":r.leftSidePanel,position:"left"},null,8,["side-panel"])):he("",!0),(x(),W(ao(r.Layout),{style:"height: 100%; flex-grow: 1;"})),r.rightSidePanel?(x(),W(c,{key:1,"side-panel":r.rightSidePanel,position:"right"},null,8,["side-panel"])):he("",!0)],4),r.loading?(x(),U("div",lki,[r.spinner&&r.spinner.component?(x(),W(ao(r.spinner.component),YA(Ta({key:0},r.spinner.props)),null,16)):(x(),W(d,{key:1,size:"40px",border:"5px"}))])):he("",!0),!r.isHeaderVisible&&(r.bimdataLogoOnSingleWindow||r.viewerVersionOnSingleWindow)?(x(),U("div",cki,[r.bimdataLogoOnSingleWindow?(x(),W(A,{key:0,name:"logo"})):he("",!0),r.viewerVersionOnSingleWindow?(x(),U("div",dki,z(r.version),1)):he("",!0)])):he("",!0)],544)}const uki=V(aki,[["render",Aki]]),hki=["src"],pki={class:"bimdata-models__header"},gki={key:0,class:"bimdata-models__header__loader"},fki={class:"bimdata-models__header__picto"},mki={class:"bimdata-models__header__name"},vki={key:0,class:"bimdata-models__header__name--empty"},Cki={key:1,class:"bimdata-models__header__name--empty"},yki={key:3},Iki=["onMousemove","onClick"],Ive={__name:"Models",props:{preview:{type:Boolean,default:!1},windowPositioning:{type:Boolean,default:!0},customFilter:{type:Function,default:null},width:{type:String,default:"350px"}},setup(t){const e=t,i=St("$viewer"),r=Le(),o=Le(0),s=Le(0),n=Le(),a=Vr([]),l=Le(!1),c=lt(()=>i.localContext.loadedModels),d=lt(()=>i.localContext.loadedModelIds),A=lt(()=>i.localContext.loadingModelIds),u=lt(()=>i.localContext.multiModel),h=lt(()=>(e.customFilter?a.value.filter(e.customFilter):a.value).map(B=>c.value.find(E=>{var k;return((k=E.document)==null?void 0:k.head_id)!=null&&E.document.head_id===B.document.id})??B)),g=B=>d.value.includes(B),p=B=>A.value.includes(B),m=lt(()=>{var B;const{x:E,y:k}=((B=n.value)==null?void 0:B.getBoundingClientRect())??{x:0,y:0};return`top:${s.value-k}px; left:${o.value-E}px;`}),f=B=>{!u.value&&g(B.id)||A.value.length>0||(i.localContext.loadedModelIds.includes(B.id)?i.localContext.unloadModels([B.id]):i.localContext.loadModels([B.id]))},v=B=>{switch(B){case"C":return"success";case"E":return"failed";case"P":case"I":return"sandglass"}},C=(B,E)=>{B!=null&&B.viewer_360_file&&(o.value=E.clientX,s.value=E.clientY),r.value=B?.viewer_360_file},y=async B=>{l.value=!0;try{return(await i.api.apiClient.modelApi.getModels(i.api.cloudId,i.api.projectId,void 0,void 0,B)).filter(E=>i.state.models.some(k=>k.archived)||!E.archived).sort(n1("updated_at",!1))}catch(E){console.error("[Models] Cannot get project models. Error: ",E)}finally{l.value=!1}return[]},I=B=>{var E;return((E=B.children)==null?void 0:E.some(k=>g(k.id)))??!1};return y(i.localContext.modelTypes).then(B=>{a.value=B}),(B,E)=>{const k=P("BIMDataSpinner"),Q=P("BIMDataIconModel3D"),S=P("BIMDataTextbox"),D=P("BIMDataCheckbox"),R=P("BIMDataRadio"),T=P("BIMDataIcon"),H=P("BIMDataDropdownList");return x(),U("div",{ref_key:"templateRef",ref:n,class:ge(["bimdata-models",{"bimdata-models--window-positioning":t.windowPositioning}])},[r.value?(x(),U("div",{key:0,class:"bimdata-models__preview",style:pe(m.value)},[b("img",{src:r.value},null,8,hki)],4)):he("",!0),F(H,{style:pe(`--bimdata-models-width: ${t.width};`),width:t.width,list:h.value,"element-key":"id","per-page":40,loading:l.value,class:"bimdata-models__list",disabled:h.value.length===0,onElementClick:f},{header:G(({isOpen:q})=>[b("div",pki,[l.value||A.value.length>0?(x(),U("div",gki,[F(k)])):(x(),U(ht,{key:1},[b("div",fki,[F(Q)]),b("div",{class:ge(["bimdata-models__header__number bimdata-info-length",{"bimdata-models__header__number--empty":d.value.length===0}])},[b("span",null,z(d.value.length),1)],2),b("div",mki,[h.value.length===0?(x(),U("span",vki,z(B.$t("model.no_model")),1)):d.value.length===0?(x(),U("span",Cki,z(B.$t("model.no_loaded_model")),1)):d.value.length===1?(x(),W(S,{key:2,text:c.value[0].name,tooltip:!q},null,8,["text","tooltip"])):d.value.length>1?(x(),U("span",yki,z(B.$t("model.selected_models")),1)):he("",!0)])],64))])]),element:G(({element:q,close:O})=>[b("div",{class:"bimdata-models__model",onMousemove:j=>t.preview&&C(q,j),onMouseout:E[0]||(E[0]=j=>t.preview&&C()),onClick:()=>{!u.value&&!g(q.id)&&O()}},[u.value?(x(),W(D,{key:0,"model-value":g(q.id)||I(q),disabled:q.status!=="C"||A.value.length>0},null,8,["model-value","disabled"])):(x(),W(R,{key:1,"model-value":g(q.id)||I(q),disabled:q.status!=="C"||A.value.length>0},null,8,["model-value","disabled"])),F(T,{margin:"0 calc(var(--spacing-unit) / 2)",name:v(q.status),size:"xs",class:ge({"fill-success":q.status==="C","fill-high":q.status==="E"})},null,8,["name","class"]),F(S,{class:ge({"bimdata-models__model__name":!0,"bimdata-models__model__name--disabled":q.status!=="C"||A.value.length>0}),text:q.name,width:`calc(100% -
1628
+ `),onMouseenter:e[0]||(e[0]=(...u)=>r.onMouseEnter&&r.onMouseEnter(...u)),onMouseleave:e[1]||(e[1]=(...u)=>r.onMouseLeave&&r.onMouseLeave(...u))},[F(n,{ref:"modalManagerTemplateRef"},null,512),b("div",EBi,[r.windowPlugins.leftSidePanel?(x(),W(a,{key:0,plugin:r.windowPlugins.leftSidePanel},null,8,["plugin"])):he("",!0),b("div",kBi,[(x(!0),U(ht,null,Ht(r.windowPlugins.free,u=>(x(),W(l,{key:u.name,class:ge({"window-container__content__center__viewer":u.isViewer}),plugin:u},null,8,["class","plugin"]))),128)),F(c,{position:"left",plugins:r.windowPlugins.leftButtonColumn},null,8,["plugins"]),F(c,{position:"right",plugins:r.windowPlugins.rightButtonColumn},null,8,["plugins"])]),r.windowPlugins.rightSidePanel?(x(),W(a,{key:1,plugin:r.windowPlugins.rightSidePanel},null,8,["plugin"])):he("",!0)]),r.loading?(x(),U("div",xBi,[r.spinner&&r.spinner.component?(x(),W(ao(r.spinner.component),YA(Ta({key:0},r.spinner.props)),null,16)):(x(),W(d,{key:1,size:"20px",border:"3px"}))])):he("",!0),r.layoutSettingsDisplayed?(x(),U("div",QBi,[F(A)])):he("",!0)],36)}const SBi=V(BBi,[["render",MBi]]);let DBi=class{constructor(t=!0){const e=ybi(YX,null,{resizable:t});e.registerContent("default",SBi),this.settings=Ra({edit:!1,swap:!1,full:!1}),this.areas=e}get resizable(){return this.areas.resizable}set resizable(t){this.areas.resizable=t}apply(t=null){this.areas.layout=t?Ibi(t):null}copy(t,e=!0){return wbi(this.areas.layout,t,e)}open({ratio:t,direction:e,insertAfter:i,windowName:r=null,windowState:o=null,localContextId:s=null}={}){const n=r?{options:{windowName:r,windowState:o}}:null;return s===null?this.areas.splitLayout(t,e,i,n):this.areas.split(s,t,e,i,n)}swap(t,e){return this.areas.swap(t,e)}close(t){return this.areas.delete(t)}compare(t,e){var i,r;if(!t&&!e)return!0;if(!t||!e)return!1;if(typeof t=="string"&&typeof e=="string")return t===e;if(typeof t=="string"||typeof e=="string")return!1;if(t.windowName&&e.windowName){if(t.windowName!==e.windowName)return!1;const o=new Set((i=t.windowState)==null?void 0:i.modelIds),s=new Set((r=e.windowState)==null?void 0:r.modelIds);return o.size===s.size&&[...o].every(n=>s.has(n))}return t.windowName||e.windowName||t.direction!==e.direction||t.children.length!==e.children.length?!1:t.children.every((o,s)=>this.compare(o,e.children[s]))}};const PBi="@bimdata/viewer",RBi="module",FBi="2.6.0-beta.19",LBi="A customizable BIM viewer.",TBi=["bim","viewer","bimdata","ifc","bcf"],NBi="./index.d.ts",UBi="BIMData.io",OBi="https://developers.bimdata.io/viewer/index.html",HBi={email:"support@bimdata.io"},jBi=["last 2 chrome version","last 2 firefox version"],GBi="dist/bimdata-viewer.esm.min.js",VBi="dist/bimdata-viewer.esm.min.js",qBi={dev:"vite -c build/vite.config.dev.js",build:"node scripts/build.mjs","build:prod":"vite build -c build/vite.config.prod.js && esbuild dist/bimdata-viewer.esm.min.js --minify --outfile=dist/bimdata-viewer.esm.min.js --allow-overwrite","build:offline":"vite build -c build/vite.config.offline.js && esbuild dist/bimdata-viewer.offline.esm.min.js --minify --outfile=dist/bimdata-viewer.offline.esm.min.js --allow-overwrite","build:runtime":"vite build -c build/vite.config.runtime.js && esbuild dist/bimdata-viewer.runtime.esm.min.js --minify --outfile=dist/bimdata-viewer.runtime.esm.min.js --allow-overwrite","build:split":"vite build -c build/vite.config.split.js && esbuild dist/bimdata-viewer.split.esm.min.js --minify --outfile=dist/bimdata-viewer.split.esm.min.js --allow-overwrite","build:umd":"vite build -c build/vite.config.umd.js && esbuild dist/bimdata-viewer.umd.cjs --minify --outfile=dist/bimdata-viewer.umd.min.cjs","cy:run":"cypress run","cy:open":"cypress open",prebuild:"rm -rf dist",prepublishOnly:"npm run build","semantic-release":"semantic-release",serve:"http-server -c-1 --silent",test:"npm run test:unit & npm run build & npm run test:e2e","test:unit":"jest","test:e2e":"start-server-and-test 'npm run serve -- -p 8080' http://localhost:8080 cy:run","test:e2e-dev":"start-server-and-test 'npm run serve -- -p 8080' http://localhost:8080 cy:open",version:"echo $npm_package_version",ts:"tsc"},_Bi=["dist/*","types/*","CHANGELOG.md","README.md","package.json","package-lock.json","index.d.ts"],zBi={"@babel/preset-env":"^7.25.8","@bimdata/2d-engine":"2.6.1","@bimdata/areas-next":"0.1.15","@bimdata/bcf-components":"6.4.4","@bimdata/components":"1.6.7","@bimdata/design-system":"2.2.1-beta.3","@bimdata/typescript-fetch-api-client":"10.17.1","@eslint/eslintrc":"^3.1.0","@eslint/js":"^9.13.0","@rollup/plugin-alias":"5.1.1","@rollup/plugin-babel":"^6.0.4","@rollup/plugin-commonjs":"^28.0.1","@rollup/plugin-image":"^3.0.3","@rollup/plugin-replace":"^6.0.1","@semantic-release/changelog":"^6.0.3","@semantic-release/commit-analyzer":"^13.0.0","@semantic-release/git":"^10.0.1","@semantic-release/github":"^11.0.0","@semantic-release/npm":"^12.0.1","@semantic-release/release-notes-generator":"^14.0.1","@vitejs/plugin-vue":"5.1.4","@vue/vue3-jest":"^29.2.6","@xeokit/xeokit-sdk":"git+https://git@github.com/Amoki/xeokit-sdk.git#f81ebaeda39e03d96f75785b257378e420416e0d","@zip.js/zip.js":"^2.7.52",async:"^3.2.6",autoprefixer:"^10.4.20","babel-core":"^7.0.0-bridge.0","babel-jest":"^29.7.0","conventional-changelog-eslint":"^6.0.0",cypress:"^13.15.0",esbuild:"^0.24.0",eslint:"9.13.0","eslint-config-prettier":"9.1.0","eslint-plugin-cypress":"4.0.0","eslint-plugin-jest":"28.8.3","eslint-plugin-prettier":"5.2.1","eslint-plugin-vue":"9.29.1","form-data":"^4.0.1",globals:"^15.11.0",html2canvas:"1.4.1","http-server":"^14.1.1",jest:"^29.7.0","jest-environment-jsdom":"^29.7.0","jest-extended":"^4.0.2",jspdf:"^2.5.2",lodash:"^4.17.21","node-fetch":"^3.3.2","pdfjs-dist":"^4.7.76",postcss:"^8.4.47",prettier:"^3.3.3",querystring:"^0.2.1","sass-embedded":"^1.80.3","semantic-release":"^24.1.3",sinon:"^19.0.2","start-server-and-test":"^2.0.8",vite:"5.4.9","vite-plugin-css-injected-by-js":"^3.5.2",vue:"3.5.12","vue-eslint-parser":"^9.4.3","vue-i18n":"^10.0.4"},KBi={name:PBi,type:RBi,version:FBi,description:LBi,keywords:TBi,types:NBi,author:UBi,homepage:OBi,bugs:HBi,browserslist:jBi,main:GBi,module:VBi,scripts:qBi,files:_Bi,devDependencies:zBi};class JBi{constructor({plugins:e,api:i,ui:r,locale:o="fr"}){this.pluginManager=new L7i(e),this.windowManager=new N7i,this.windowManager.registerAndAddPluginsToWindows([...this.pluginManager.registeredPlugins.values()]),this.api=new wwi(i),this.globalContext=new Zke(this),this.state=Uwi(this),this.shortcutManager=Y7e(this.state),this.uiSettings=r||{},this.i18n=new Yke(o),this._contextMenu=null,this.layout=new DBi(this.uiSettings.resizable!==!1),this.localContext=null,window.$viewer=this}get version(){return KBi.version}get locale(){return this.i18n.locale}get contextMenu(){return this._contextMenu||K7e}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 YBi(t,e={}){e.backgroundColor&&(t.style.setProperty("--bimdata-viewer-background-color",e.backgroundColor),e.backgroundColor==="transparent"&&t.style.setProperty("--areas-separator-color","transparent")),e.colorPrimary&&t.style.setProperty("--color-primary",e.colorPrimary),e.colorPrimaryLighter&&t.style.setProperty("--color-primary-lighter",e.colorPrimaryLighter),e.colorPrimaryLight&&t.style.setProperty("--color-primary-light",e.colorPrimaryLight),e.colorPrimaryDark&&t.style.setProperty("--color-primary-dark",e.colorPrimaryDark),e.colorSecondary&&t.style.setProperty("--color-secondary",e.colorSecondary),e.colorSecondaryLighter&&t.style.setProperty("--color-secondary-lighter",e.colorSecondaryLighter),e.colorSecondaryLight&&t.style.setProperty("--color-secondary-light",e.colorSecondaryLight),e.colorSecondaryDark&&t.style.setProperty("--color-secondary-dark",e.colorSecondaryDark),e.colorSilverLight&&t.style.setProperty("--color-silver-light",e.colorSilverLight),e.colorSilver&&t.style.setProperty("--color-silver",e.colorSilver),e.colorSilverDark&&t.style.setProperty("--color-silver-dark",e.colorSilverDark),e.colorGraniteLight&&t.style.setProperty("--color-granite-light",e.colorGraniteLight),e.colorGranite&&t.style.setProperty("--color-granite",e.colorGranite),e.colorSuccess&&t.style.setProperty("--color-success",e.colorSuccess),e.colorSuccessLighter&&t.style.setProperty("--color-success-Lighter",e.colorSuccessLighter),e.colorSuccessLight&&t.style.setProperty("--color-success-Light",e.colorSuccessLight),e.colorSuccessDark&&t.style.setProperty("--color-success-Dark",e.colorSuccessDark),e.colorWarning&&t.style.setProperty("--color-warning",e.colorWarning),e.colorWarningLighter&&t.style.setProperty("--color-warning-Lighter",e.colorWarningLighter),e.colorWarningLight&&t.style.setProperty("--color-warning-Light",e.colorWarningLight),e.colorWarningDark&&t.style.setProperty("--color-warning-Dark",e.colorWarningDark),e.colorHigh&&t.style.setProperty("--color-high",e.colorHigh),e.colorHighLighter&&t.style.setProperty("--color-high-lighter",e.colorHighLighter),e.colorHighLight&&t.style.setProperty("--color-high-light",e.colorHighLight),e.colorHighDark&&t.style.setProperty("--color-high-dark",e.colorHighDark),e.colorText&&t.style.setProperty("--color-text",e.colorText),(!e.backgroundColor||e.backgroundColor!=="transparent")&&t.style.setProperty("--areas-separator-color","rgba(216, 216, 216, 1)"),e.headerHeight!=null&&t.style.setProperty("--bimdata-viewer-header-height",e.headerHeight),t.style.setProperty("--areas-background-color","transparent")}const WBi=Object.freeze({25:"GUEST",50:"USER",100:"ADMIN"}),Ev=Object.freeze({READ:"read",WRITE:"write"});function Cve(t){const e={};return t.forEach(i=>{const[r,o]=i.split(":");e[r]?e[r].push(o):e[r]=[o]}),e}const ZBi={token_scopes:[],usable_scopes:[],user_role:25};function yve(t=ZBi){var e,i,r,o,s,n;const a=Cve(t.token_scopes),l=Cve(t.usable_scopes);return{...ure(t),tokenScopes:a,usableScopes:l,userRole:WBi[t.user_role],user:t.user?ure(t.user):null,hasBcfReadPermission:((e=l.bcf)==null?void 0:e.includes(Ev.READ))??!1,hasBcfWritePermission:((i=l.bcf)==null?void 0:i.includes(Ev.WRITE))??!1,hasModelReadPermission:((r=l.model)==null?void 0:r.includes(Ev.READ))??!1,hasModelWritePermission:((o=l.model)==null?void 0:o.includes(Ev.WRITE))??!1,hasDocReadPermission:((s=l.document)==null?void 0:s.includes(Ev.READ))??!1,hasDocWritePermission:((n=l.document)==null?void 0:n.includes(Ev.WRITE))??!1}}const XBi={BcfFilters:{filtersButton:"Filter",filtersTitle:"Filter",priorityLabel:"Priorit\xE4t",statusLabel:"Status",assignedToLabel:"Zugewiesen an",creatorsLabel:"Erstellt von",tagsLabel:"Tags",resetButton:"Zur\xFCcksetzen",searchButton:"Suchen",undefined:"Nicht definiert",datePlaceholder:"Erstellungsdatum"},BcfSettings:{goBackButton:"Zur\xFCck",title:"BCF-Parameter",text:"Erstellen, f\xFCllen und listen Sie die BCF-Einstellungen auf, die Sie f\xFCr dieses Projekt haben m\xF6chten.",validateButton:"Die BCF-Parameter anerkennen"},BcfStatistics:{emptyText:"F\xFCgen Sie Fragen hinzu, um zugeh\xF6rige Statistiken hier anzuzeigen.",issues:"Probleme",extension:{Priority:"Priorit\xE4t",PriorityNotDefined:"Keine Priorit\xE4t",PriorityTitle:"Priorit\xE4ten",Status:"Status",StatusNotDefined:"Kein Status",StatusTitle:"Status"}},BcfTopicCard:{priority:"Priorit\xE4t:",noPriority:"Keine",assignedTo:"Zugewiesen an :",elements:"Elemente",notSpecified:"Nicht definiert",see:"Anzeigen"},BcfTopicCreationCard:{text:"Ein neues BCF-Thema erstellen",createBcfSideTitle:"Ein Problem melden"},BcfTopicForm:{dragDropImageText:"Bitte w\xE4hlen Sie eine Datei aus.",addObjectButton:"Objekt",addAnnotationButton:"Annotation",annotationButtonTooltip:"Zu diesem Thema gibt es derzeit keine Ansichten.",addPictureButton:"F\xFCgen Sie ein Bild hinzu.",titlePlaceholder:"Titel *",titleErrorMessage:"Titel fehlt",typeLabel:"Typ",priorityLabel:"Priorit\xE4t",statusLabel:"Status",stageLabel:"Phase",assignedToLabel:"Zugewiesen an",dueDateLabel:"F\xE4lligkeitsdatum (TT.MM.JJJJ)",descriptionLabel:"Beschreibung",labelsLabel:"Tags",createButton:"Best\xE4tigen",updateButton:"\xC4nderungen \xFCbernehmen",modalText:"Sie sind dabei, die Bearbeitung der Ausgabe {Name} zu beenden, aber es gibt noch ungespeicherte \xC4nderungen.",cancelButton:"\xC4nderungen verwerfen",continueButton:"\xC4nderungen fortsetzen",createTitle:"Ein Problem melden",dragDropImageTextTablet:"Foto machen",takeSnapshot:"Mach einen Schnappschuss",importFile:"Eine Datei importieren",searchPlaceholder:"Suchen",emptySearch:"kein Ergebnis"},BcfTopicOverview:{openViewer:"Im Viewer \xF6ffnen",openViewerNoModels:"Es sind keine Vorlagen zur Ansicht bereit",elements:"{count} Elemente",noElements:"kein Element",type:"Typ",noTypeSpecified:"Kein Typ angegeben",description:"Beschreibung",noDescriptionProvided:"Keine Beschreibung angegeben",assignedTo:"Zugeteilt an",notAssigned:"Nicht zugewiesen",dueDate:"F\xE4lligkeitsdatum",noDueDate:"Kein F\xE4lligkeitsdatum",informations:"Informationen",status:"Status",noStatusSpecified:"Kein Status angegeben",stage:"Phase",noStageProvided:"Keine Phase angegeben",priority:"Priorit\xE4t",priorityNotDefined:"Nicht definiert",tags:"Tags",noTags:"Keine Tags",commentButton:"Ein Kommentar ver\xF6ffentlichen",deleteText:"Sie l\xF6schen jetzt {Name}",deleteBcfButton:"Dieses BCF l\xF6schen",keepBcfButton:"Dieses BCF beibehalten",author:"Autor"},BcfTopicsTable:{headers:{index:"#",priority:"Priorit\xE4t",status:"Status",title:"Titel",creator:"Autor",date:"Datum"}},BcfTopicActionsCell:{seeButton:"Anzeigen"},BcfTopicComments:{commentButton:"Ein Kommentar verfassen",commentLabel:"Ein Kommentar verfassen",commentText:"Kommentar",cancelButton:"Abbrechen",publishButton:"Ver\xF6ffentlichen",commentsText:"Kommentare",deleteCommentText:"Diesen Kommentar l\xF6schen?",deleteButton:"L\xF6schen",takeSnapshot:"Mach einen Schnappschuss"},BcfTopicPriorityCell:{noPriority:"Keine"},SettingCard:{addButton:"ein Element hinzuf\xFCgen",cancelButton:"Abbrechen",validateButton:"Best\xE4tigen",deleteExtensionText:"Diesen Parameter l\xF6schen",deleteButton:"L\xF6schen",title:{Priority:"Priorit\xE4ten",Label:"Tags",Status:"Status",Type:"Typen",Stage:"Phasen"},input:{Priority:"Eine neue Priorit\xE4t hinzuf\xFCgen",Label:"Ein neues Etikett hinzuf\xFCgen",Status:"Einen neuen Status hinzuf\xFCgen",Type:"Einen neuen Typ hinzuf\xFCgen",Stage:"Eine neue Phase hinzuf\xFCgen"},text:{Priority:"Liste der Priorit\xE4ten",Label:"Liste von Tags",Status:"Liste der Status",Type:"Liste der Typen",Stage:"Liste der Phasen"}}},$Bi={BcfComponents:XBi},eEi={BcfFilters:{filtersButton:"Filters",filtersTitle:"Filters",priorityLabel:"Priority",statusLabel:"Status",assignedToLabel:"Assigned to",creatorsLabel:"Created by",tagsLabel:"Tags",resetButton:"Reset",searchButton:"Search",undefined:"Not defined",datePlaceholder:"Creation date"},BcfSettings:{goBackButton:"Back",title:"BCF Settings",text:"Create, enter in, and list the BCF settings you would like to have for this project",validateButton:"Validate BCF settings"},BcfStatistics:{emptyText:"Add BCF Topics to start to have some stats here.",issues:"issues",extension:{Priority:"Priority",PriorityNotDefined:"No priority",PriorityTitle:"Priorities",Status:"Status",StatusNotDefined:"No status",StatusTitle:"Status"}},BcfTopicCard:{priority:"Priority: ",noPriority:"None",assignedTo:"Assigned to: ",elements:"Elements",notSpecified:"Not specified",see:"See"},BcfTopicCreationCard:{text:"Create a new BCF topic",createBcfSideTitle:"Report a problem"},BcfTopicForm:{dragDropImageText:"Please select a file",addObjectButton:"Object",addAnnotationButton:"Annotation",annotationButtonTooltip:"This topic has no viewpoint",addPictureButton:"Add a picture",titlePlaceholder:"Title *",titleErrorMessage:"Missing title",typeLabel:"Type",priorityLabel:"Priority",statusLabel:"Status",stageLabel:"Stage",assignedToLabel:"Assigned to",dueDateLabel:"Due date",descriptionLabel:"Description",labelsLabel:"Tags",createButton:"Validate",updateButton:"Modify this BCF",modalText:"You are about to quit editing issue {name} but there are unsaved changes.",cancelButton:"Discard changes",continueButton:"Continue editing",createTitle:"Report a problem",dragDropImageTextTablet:"Take a picture",takeSnapshot:"Take a snapshot",importFile:"Import a file",searchPlaceholder:"Search",emptySearch:"No result"},BcfTopicOverview:{openViewer:"Open in viewer",openViewerNoModels:"No model to open",elements:"{count} Elements",noElements:"No element",type:"Type",noTypeSpecified:"No type specified",description:"Description",noDescriptionProvided:"No description provided",assignedTo:"Assigned to",notAssigned:"Not assigned",dueDate:"Due date",noDueDate:"No due date",informations:"Informations",status:"Status",noStatusSpecified:"No status specified",stage:"Stage",noStageProvided:"No stage provided",priority:"Priority",priorityNotDefined:"Not defined",tags:"Tags",noTags:"No tags",commentButton:"Post a comment",deleteText:"You are about to delete {name}",deleteBcfButton:"Delete this BCF",keepBcfButton:"Keep this BCF",author:"Author"},BcfTopicsTable:{headers:{index:"#",priority:"Priority",status:"Status",title:"Title",creator:"Author",date:"Date"}},BcfTopicActionsCell:{seeButton:"See"},BcfTopicComments:{commentButton:"Post a comment",commentLabel:"Post a comment",commentText:"Comment",cancelButton:"Cancel",publishButton:"Publish",commentsText:"Comments",deleteCommentText:"Delete this comment ?",deleteButton:"Delete",takeSnapshot:"Take a snapshot"},BcfTopicPriorityCell:{noPriority:"None"},SettingCard:{addButton:"add an element",cancelButton:"Cancel",validateButton:"Validate",deleteExtensionText:"Remove this setting",deleteButton:"Delete",title:{Priority:"Priorities",Label:"Labels",Status:"Status",Type:"Types",Stage:"Stages"},input:{Priority:"Add a new priority",Label:"Add a new label",Status:"Add new status",Type:"Add a new type",Stage:"Add a new stage"},text:{Priority:"Priority list",Label:"Labels list",Status:"Status list",Type:"Type list",Stage:"Stage list"}}},tEi={BcfComponents:eEi},iEi={BcfFilters:{filtersButton:"Filtros",filtersTitle:"Filtros",priorityLabel:"Prioridad",statusLabel:"Estado",assignedToLabel:"Asignado a",creatorsLabel:"Creado por",tagsLabel:"Etiquetas:",resetButton:"Restablecer",searchButton:"Buscar en",undefined:"No definido",datePlaceholder:"Fecha de creaci\xF3n"},BcfSettings:{goBackButton:"Volver",title:"Par\xE1metros del BCF",text:"Cree, rellene y enumere los par\xE1metros del BCF que desea tener en este proyecto",validateButton:"Validar los par\xE1metros del BCF"},BcfStatistics:{emptyText:"A\xF1ada preguntas para ver las estad\xEDsticas asociadas aqu\xED.",issues:"problemas",extension:{Priority:"Prioridad",PriorityNotDefined:"Sin prioridad",PriorityTitle:"Prioridades",Status:"Estado",StatusNotDefined:"Sin estado",StatusTitle:"Estatutos"}},BcfTopicCard:{priority:"Prioridad :",noPriority:"Sin",assignedTo:"Asignado a :",elements:"Elementos",notSpecified:"No definido",see:"Ver"},BcfTopicCreationCard:{text:"Crear un nuevo tema BCF",createBcfSideTitle:"Informar de un problema"},BcfTopicForm:{dragDropImageText:"Seleccione un archivo",addObjectButton:"Objeto",addAnnotationButton:"Anotaci\xF3n",annotationButtonTooltip:"Actualmente este tema no posee ning\xFAn punto de vista",addPictureButton:"A\xF1adir una imagen",titlePlaceholder:"T\xEDtulo *",titleErrorMessage:"Falta el t\xEDtulo",typeLabel:"Tipo",priorityLabel:"Prioridad",statusLabel:"Estado",stageLabel:"Fase",assignedToLabel:"Asignado a",dueDateLabel:"Fecha de vencimiento (DD/MM/AAAA)",descriptionLabel:"Descripci\xF3n",labelsLabel:"Etiquetas",createButton:"Validar",updateButton:"Modificar este BCF",modalText:"Est\xE1 a punto de salir de la edici\xF3n del problema de {name} pero hay cambios sin guardar.",cancelButton:"Cancelar los cambios",continueButton:"Continuar con los cambios",createTitle:"Informar de un problema",dragDropImageTextTablet:"Tomar una fotograf\xEDa",takeSnapshot:"Tomar un snapshot",importFile:"Importar un archivo",searchPlaceholder:"Buscar",emptySearch:"No hay resultados"},BcfTopicOverview:{openViewer:"Abrir en el visor",openViewerNoModels:"No hay ning\xFAn modelo listo para la visualizaci\xF3n",elements:"{count} Elementos",noElements:"Ning\xFAn elemento",type:"Tipo",noTypeSpecified:"No se especifica el tipo",description:"Descripci\xF3n",noDescriptionProvided:"No hay descripci\xF3n",assignedTo:"Asignado a",notAssigned:"No asignado",dueDate:"Plazo",noDueDate:"Sin fecha de vencimiento",informations:"Informaci\xF3n",status:"Estado",noStatusSpecified:"No se especifica el estado",stage:"Fase",noStageProvided:"No se indica ninguna fase",priority:"Prioridad",priorityNotDefined:"No definido",tags:"Etiquetas",noTags:"Sin etiquetas",commentButton:"Publicar un comentario",deleteText:"Est\xE1s a punto de borrar {name}",deleteBcfButton:"Borrar este BCF",keepBcfButton:"Mantenga este BCF",author:"Autor"},BcfTopicsTable:{headers:{index:"#",priority:"Prioridad",status:"Estado",title:"T\xEDtulo",creator:"Autor",date:"Fecha"}},BcfTopicActionsCell:{seeButton:"Ver"},BcfTopicComments:{commentButton:"Publicar un comentario",commentLabel:"Publicar un comentario",commentText:"Comentario",cancelButton:"Cancelar",publishButton:"Publicar",commentsText:"comentarios",deleteCommentText:"\xBFBorrar este comentario?",deleteButton:"Borrar",takeSnapshot:"Tomar un snapshot"},BcfTopicPriorityCell:{noPriority:"Sin"},SettingCard:{addButton:"a\xF1adir un elemento",cancelButton:"Cancelar",validateButton:"Validar",deleteExtensionText:"Borrar esta configuraci\xF3n",deleteButton:"Borrar",title:{Priority:"Prioridades",Label:"Etiquetas:",Status:"Estatutos",Type:"Tipos",Stage:"Fases"},input:{Priority:"A\xF1adir una nueva prioridad",Label:"A\xF1adir una nueva etiqueta",Status:"A\xF1adir un nuevo estado",Type:"A\xF1adir un nuevo tipo",Stage:"A\xF1adir una nueva fase"},text:{Priority:"Lista de prioridades",Label:"Lista de etiquetas",Status:"Lista de estatutos",Type:"Lista de tipos",Stage:"Lista de fases"}}},rEi={BcfComponents:iEi},oEi={BcfFilters:{filtersButton:"Filtres",filtersTitle:"Filtres",priorityLabel:"Priorit\xE9",statusLabel:"Statut",assignedToLabel:"Assign\xE9 \xE0",creatorsLabel:"Cr\xE9\xE9 par",tagsLabel:"Tags",resetButton:"R\xE9initialiser",searchButton:"Rechercher",undefined:"Non d\xE9fini",datePlaceholder:"Date de cr\xE9ation"},BcfSettings:{goBackButton:"Retour",title:"Param\xE8tres BCF",text:"Cr\xE9ez, renseignez et listez les param\xE8tres BCF que vous souhaitez avoir sur ce projet",validateButton:"Valider les param\xE8tres BCF"},BcfStatistics:{emptyText:"Ajoutez des questions pour voir les statistiques associ\xE9es ici.",issues:"probl\xE8mes",extension:{Priority:"Priorit\xE9",PriorityNotDefined:"Aucune priorit\xE9",PriorityTitle:"Priorit\xE9s",Status:"Statut",StatusNotDefined:"Aucun statut",StatusTitle:"Statuts"}},BcfTopicCard:{priority:"Priorit\xE9 : ",noPriority:"Aucune",assignedTo:"Assign\xE9 \xE0 : ",elements:"{n} \xC9lements",notSpecified:"Non d\xE9fini",see:"Voir"},BcfTopicCreationCard:{text:"Cr\xE9er un nouveau topic BCF",createBcfSideTitle:"Signaler un probl\xE8me"},BcfTopicForm:{dragDropImageText:"Veuillez s\xE9lectionner un fichier",addObjectButton:"Objet",addAnnotationButton:"Annotation",annotationButtonTooltip:"Ce topic ne poss\xE8de actuellement aucun point de vue",addPictureButton:"Ajouter une image",titlePlaceholder:"Titre *",titleErrorMessage:"Titre manquant",typeLabel:"Type",priorityLabel:"Priorit\xE9",statusLabel:"Statut",stageLabel:"Phase",assignedToLabel:"Assign\xE9 \xE0",dueDateLabel:"Date d'\xE9ch\xE9ance",descriptionLabel:"Description",labelsLabel:"Tags",createButton:"Valider",updateButton:"Modifier ce BCF",modalText:"Vous \xEAtes sur le point de quitter l'\xE9dition de l'issue {name} mais il y'a des modifications non enregistr\xE9es.",cancelButton:"Annuler les modifications",continueButton:"Continuer les modifications",createTitle:"Signaler un probl\xE8me",dragDropImageTextTablet:"Prendre une photo",takeSnapshot:"Prendre un snapshot",importFile:"Importer un fichier",searchPlaceholder:"Rechercher",emptySearch:"Pas de r\xE9sultat"},BcfTopicOverview:{openViewer:"Ouvrir dans le viewer",openViewerNoModels:"Il n'y a aucun mod\xE8le pr\xEAt pour une visualisation",elements:"{count} \xC9lements",noElements:"Aucun \xE9l\xE9ment concern\xE9",type:"Type",noTypeSpecified:"Pas de type sp\xE9cifi\xE9",description:"Description",noDescriptionProvided:"Pas de description renseign\xE9e",assignedTo:"Assign\xE9 \xE0",notAssigned:"Non assign\xE9",dueDate:"\xC9ch\xE9ance",noDueDate:"Pas de date d'\xE9ch\xE9ance",informations:"Informations",status:"Statut",noStatusSpecified:"Pas de statut sp\xE9cifi\xE9",stage:"Phase",noStageProvided:"Pas de phase renseign\xE9e",priority:"Priorit\xE9",priorityNotDefined:"Non d\xE9fini",tags:"Tags",noTags:"Pas de tags",commentButton:"Poster un commentaire",deleteText:"Vous \xEAtes sur le point de supprimer {name}",deleteBcfButton:"Supprimer ce BCF",keepBcfButton:"Conserver ce BCF",author:"Auteur"},BcfTopicsTable:{headers:{index:"#",priority:"Priorit\xE9",status:"Statut",title:"Titre",creator:"Auteur",date:"Date"}},BcfTopicActionsCell:{seeButton:"Voir"},BcfTopicComments:{commentButton:"Poster un commentaire",commentLabel:"Poster un commentaire",commentText:"Commentaire",cancelButton:"Annuler",publishButton:"Publier",commentsText:"commentaires",deleteCommentText:"Supprimer ce commentaire ?",deleteButton:"Supprimer",takeSnapshot:"Prendre un snapshot"},BcfTopicPriorityCell:{noPriority:"Aucune"},SettingCard:{addButton:"ajouter un \xE9l\xE9ment",cancelButton:"Annuler",validateButton:"Valider",deleteExtensionText:"Supprimmer ce param\xE8tre",deleteButton:"Supprimer",title:{Priority:"Priorit\xE9s",Label:"Tags",Status:"Statuts",Type:"Types",Stage:"Phases"},input:{Priority:"Ajouter une nouvelle priorit\xE9",Label:"Ajouter un nouveau label",Status:"Ajouter un nouveau statut",Type:"Ajouter un nouveau type",Stage:"Ajouter une nouvelle phase"},text:{Priority:"Liste des priorit\xE9s",Label:"Liste des tags",Status:"Liste des statuts",Type:"Liste des types",Stage:"Liste des phases"}}},nEi={BcfComponents:oEi},sEi={BcfFilters:{filtersButton:"Filtri",filtersTitle:"Filtri",priorityLabel:"Priorit\xE0",statusLabel:"Stato",datePlaceholder:"Data di creazione",assignedToLabel:"Assegnato a",creatorsLabel:"Creato da",tagsLabel:"Etichette",resetButton:"Ripristina",searchButton:"Cerca",undefined:"Non definito"},BcfSettings:{goBackButton:"Indietro",title:"Parametri BCF",text:"Creare, notificare e elencare i parametri BCF che si desidera avere su questo progetto",validateButton:"Conferma i parametri BCF"},BcfStatistics:{emptyText:"Aggiungi delle domande per vedere le statistiche associate qui.",issues:"problemi",extension:{Priority:"Priorit\xE0",PriorityNotDefined:"Nessuna priorit\xE0",PriorityTitle:"Priorit\xE0",Status:"Stato",StatusNotDefined:"Nessuno stato",StatusTitle:"Stati"}},BcfTopicCard:{priority:"Priorit\xE0:",noPriority:"Nessuno",assignedTo:"Assegnato a:",elements:"Elementi",noElements:"0 elementi",notSpecified:"Non definito",see:"Visualizza"},BcfTopicCreationCard:{text:"Crea un nuovo topic BCF",createBcfSideTitle:"Segnala un problema"},BcfTopicForm:{dragDropImageText:"Selezionare un file",addObjectButton:"Oggetto",addAnnotationButton:"Annotazione",annotationButtonTooltip:"Attualmente questo argomento non presenta alcun punto di vista",addPictureButton:"Aggiungere un'immagine",titlePlaceholder:"Titolo *",titleErrorMessage:"Titolo mancante",typeLabel:"Tipo",priorityLabel:"Priorit\xE0",statusLabel:"Stato",stageLabel:"Fase",assignedToLabel:"Assegnato a",dueDateLabel:"Data di scadenza",descriptionLabel:"Descrizione",labelsLabel:"Tag",createButton:"Conferma",updateButton:"Modificare questo BCF",modalText:"State per abbandonare la modifica di {name} ma ci sono modifiche non salvate.",cancelButton:"Annullare le modifiche",continueButton:"Continuare le modifiche",createTitle:"Segnala un problema"},BcfTopicOverview:{openViewer:"Apri nel visualizzatore",openViewerNoModels:"Non esistono modelli pronti per la visualizzazione",elements:"{count} Elementi",noElements:"Nessun elemento",type:"Tipo",noTypeSpecified:"Nessun tipo specificato",description:"Descrizione",noDescriptionProvided:"Nessuna descrizione inserita",assignedTo:"Assegnato a",notAssigned:"Non assegnato",dueDate:"Scadenza",noDueDate:"Nessuna data di scadenza",informations:"Informazioni",status:"Stato",noStatusSpecified:"Nessuno stato specificato",stage:"Fase",noStageProvided:"Nessuna fase inserita",priority:"Priorit\xE0",priorityNotDefined:"Non definita",tags:"Etichette",noTags:"Nessuna etichetta",commentButton:"Pubblica un commento",deleteText:"Stai per eliminare {name}",deleteBcfButton:"Elimina questo BCF",keepBcfButton:"Conserva questo BCF",author:"Autore"},BcfTopicsTable:{headers:{index:"#",priority:"Priorit\xE0",status:"Stato",title:"Titolo",creator:"Autore",date:"Data"}},BcfTopicActionsCell:{seeButton:"Visualizza"},BcfTopicComments:{commentButton:"Pubblica un commento",commentLabel:"Pubblica un commento",commentText:"Commento",cancelButton:"Annulla",publishButton:"Pubblica",commentsText:"commenti",deleteCommentText:"Eliminare questo commento?",deleteButton:"Elimina"},BcfTopicPriorityCell:{noPriority:"Nessuno"},SettingCard:{addButton:"aggiungi un elemento",cancelButton:"Annulla",validateButton:"Conferma",deleteExtensionText:"Elimina questo parametro",deleteButton:"Elimina",title:{Priority:"Priorit\xE0",Label:"Etichette",Status:"Stati",Type:"Tipi",Stage:"Fasi"},input:{Priority:"Aggiungi una nuova priorit\xE0",Label:"Aggiungi una nuova etichetta",Status:"Aggiungi un nuovo stato",Type:"Aggiungi un nuovo tipo",Stage:"Aggiungi una nuova fase"},text:{Priority:"Elenco delle priorit\xE0",Label:"Elenco delle etichette",Status:"Elenco degli stati",Type:"Elenco dei tipi",Stage:"Elenco delle fasi"}}},aEi={BcfComponents:sEi},lEi={de:$Bi,en:tEi,es:rEi,fr:nEi,it:aEi},cEi=({apiClient:t,fetchUsers:e,i18nPlugin:i}={})=>({install(r){t?qr.setup({apiClient:t,fetchUsers:e}):console.error("[BCF Components Plugin] No api client provided. You must provide an api client for the components to work properly."),i?Object.entries(lEi).forEach(([o,s])=>{i.global.mergeLocaleMessage(o,s)}):console.warn("[BCF Components Plugin] No i18n instance provided. You should either provide an i18n instance or define your own translations in order have text displayed properly."),Object.entries(mPe).forEach(([o,s])=>{r.component(o,s)})}}),dEi={title:"Building Maker",back:"Zur\xFCck",list:{text:"Erstellen und bearbeiten Sie die Etagen und laden Sie anschlie\xDFend Ihre PDFs herunter.",createButton:"Neues Projekt",updateButton:"Umbenennen",deleteButton:"L\xF6schen"},form:{text:"Erstellen und bearbeiten Sie die Etagen und laden Sie anschlie\xDFend Ihre PDFs herunter.",input:"Name des Geb\xE4udes",error:"Ung\xFCltiger Name",createButton:"Erstellen",updateButton:"Best\xE4tigen"},view:{addStoreyButton:"Etage",addFileButton:"Grundriss",closeButton:"Fertigstellen",submitFilesButton:"Best\xE4tigen"},storeyForm:{title:"Neue Etage",input:"Name",error:"Ung\xFCltiger Name",cancelButton:"Abbrechen",submitButton:"Best\xE4tigen"}},AEi={creationFormTitle:"Ordner erstellen",renameFormPlaceholder:"Datei- / Ordnernam",nameInputPlaceholder:"Ordnername",emptyFolder:"Dieser Ordner ist leer",newFolderSuccess:"Neuer Ordner erstellt",renameFolderSuccess:"Umbenannter Ordner",deleteFolderSuccess:"Ordner gel\xF6scht",newFileSuccess:"Datei hinzugef\xFCgt",renameFileSuccess:"Umbenannte Datei",deleteFileSuccess:"Datei gel\xF6scht",nameInputErrorMessage:"Ung\xFCltiger name",cancel:"Abbrechen",submit:"Best\xE4tigen",buttonText:"Neuer Ordner",addFileButtonText:"Datei laden",rename:"Umbenennen",view:"Sehen",download:"Herunterladen",delete:"L\xF6schen",deleteTitle:"Dateien l\xF6schen",deleteDetail:"Sie sind im Begriff, die folgenden Dateien / Ordner endg\xFCltig zu l\xF6schen"},uEi={BuildingMaker:dEi,FileManager:AEi},hEi={title:"Building",back:"Back",list:{text:"Create and edit the layers, then download your PDFs.",createButton:"New project",updateButton:"Rename",deleteButton:"Delete"},form:{text:"Create and edit the layers, then download your PDFs.",input:"Building name",error:"Invalid",createButton:"Create",updateButton:"Confirm"},view:{addStoreyButton:"Storey",addFileButton:"Plan",closeButton:"Finish",submitFilesButton:"Validate"},storeyForm:{title:"New storey",input:"Name",error:"Invalid name",cancelButton:"Cancel",submitButton:"Validate"}},pEi={creationFormTitle:"Create folder",renameFormPlaceholder:"Folder/File name",nameInputPlaceholder:"Folder name",emptyFolder:"This folder is empty",newFolderSuccess:"New folder created",renameFolderSuccess:"Folder renamed",deleteFolderSuccess:"Folder deleted",newFileSuccess:"File added",renameFileSuccess:"File renamed",deleteFileSuccess:"File deleted",nameInputErrorMessage:"Invalid name",cancel:"Cancel",submit:"Submit",buttonText:"New folder",addFileButtonText:"Upload a file",rename:"Rename",view:"View",download:"Download",delete:"Delete",deleteTitle:"Deleting Files",deleteDetail:"You are about to permanently delete the following files / folders",dmsRoot:"Root of the project's DMS",validate:"Validate",back:"Back",pdfPageSelectorTitle:"Select a page"},gEi={title:"Meta-Building Structure",tab:{structure:"Structure",zones:"Zones",equipments:"Equipments"},StoreySelector:{placeholder:"Select a storey"},StructureView:{search:"Search"}},fEi={title:"Photosphere Building"},mEi={BuildingMaker:hEi,FileManager:pEi,MetaBuildingStructure:gEi,PhotosphereBuilding:fEi},vEi={title:"Building Maker",back:"Vuelta",list:{text:"Cree y edite los pisos despu\xE9s cargue los PDF.",createButton:"Nuevo proyecto",updateButton:"Renombrar",deleteButton:"Suprimir"},form:{text:"Cree y edite los pisos despu\xE9s cargue los PDF.",input:"Nombre del edificio",error:"Nombre no v\xE1lido",createButton:"Crear",updateButton:"Validar"},view:{addStoreyButton:"Piso",addFileButton:"Plano",closeButton:"Terminar",submitFilesButton:"Validar"},storeyForm:{title:"Nuevo piso",input:"Nombre",error:"Nombre no v\xE1lido",cancelButton:"Anular",submitButton:"Validar"}},CEi={creationFormTitle:"Crear un archivo",renameFormPlaceholder:"Nombre de archivo / carpeta",nameInputPlaceholder:"Nombre de la carpeta",emptyFolder:"Esta carpeta est\xE1 vac\xEDa",newFolderSuccess:"Nueva carpeta creada",renameFolderSuccess:"Carpeta renombrada",deleteFolderSuccess:"Carpeta eliminada",newFileSuccess:"Archivo agregado",renameFileSuccess:"Archivo renombrado",deleteFileSuccess:"Archivo eliminado",nameInputErrorMessage:"Nombre inv\xE1lida",cancel:"Cancelar",submit:"Validar",buttonText:"Carpeta nueva",addFileButtonText:"Cargar un archivo",rename:"Renombrar",view:"Ver",download:"Descargar",delete:"Borrar",deleteTitle:"Eliminar archivos",deleteDetail:"Est\xE1 a punto de eliminar permanentemente los siguientes archivos / carpetas"},yEi={BuildingMaker:vEi,FileManager:CEi},IEi={title:"Building Maker",back:"Retour",list:{text:"Cr\xE9ez et \xE9ditez les \xE9tages puis t\xE9l\xE9chagez vos PDF.",createButton:"Nouveau projet",updateButton:"Renommer",deleteButton:"Supprimer"},form:{text:"Cr\xE9ez et \xE9ditez les \xE9tages puis t\xE9l\xE9chagez vos PDF.",input:"Nom du b\xE2timent",error:"Nom invalide",createButton:"Cr\xE9er",updateButton:"Valider"},view:{addStoreyButton:"\xC9tage",addFileButton:"Plan",closeButton:"Terminer",submitFilesButton:"Valider"},storeyForm:{title:"Nouvel \xE9tage",input:"Nom",error:"Nom invalide",cancelButton:"Annuler",submitButton:"Valider"}},wEi={creationFormTitle:"Cr\xE9er un dossier",renameFormPlaceholder:"Nom du fichier/dosier",nameInputPlaceholder:"Nom du dossier",emptyFolder:"Ce dossier est vide",newFolderSuccess:"Nouveau dossier cr\xE9\xE9",renameFolderSuccess:"Dossier renomm\xE9",deleteFolderSuccess:"Dossier supprim\xE9",newFileSuccess:"Fichier ajout\xE9",renameFileSuccess:"Fichier renomm\xE9",deleteFileSuccess:"Fichier supprim\xE9",nameInputErrorMessage:"Nom invalide",cancel:"Annuler",submit:"Valider",buttonText:"Nouveau dossier",addFileButtonText:"Charger un fichier",rename:"Renommer",view:"Voir",download:"T\xE9l\xE9charger",delete:"Supprimer",deleteTitle:"Supression de fichiers",deleteDetail:"Vous \xEAtes sur le point de supprimer d\xE9finitivement les fichiers/dossiers suivants",dmsRoot:"Racine de la GED du projet",validate:"Valider",back:"Retour",pdfPageSelectorTitle:"S\xE9lectionner une page"},bEi={title:"Structure M\xE9ta-Building",tab:{structure:"Structure",zones:"Zones",equipments:"Equipements"},StoreySelector:{placeholder:"S\xE9lectionner un \xE9tage"},StructureView:{search:"Rechercher"}},BEi={title:"Photosph\xE8re Building"},EEi={BuildingMaker:IEi,FileManager:wEi,MetaBuildingStructure:bEi,PhotosphereBuilding:BEi},kEi={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",addFileButton:"Progetto",closeButton:"Finire",submitFilesButton:"Convalidare"},storeyForm:{title:"Nuovo piano",input:"Nome",error:"Nome non corretto",cancelButton:"Annullare",submitButton:"Convalidare"}},xEi={creationFormTitle:"Crea una cartella",renameFormPlaceholder:"Nome file/cartella",nameInputPlaceholder:"Nome della cartella",emptyFolder:"Questa cartella \xE8 vuota",newFolderSuccess:"Nuova cartella creata",renameFolderSuccess:"Cartella rinominata",deleteFolderSuccess:"Cartella eliminata",newFileSuccess:"File aggiunto",renameFileSuccess:"File rinominato",deleteFileSuccess:"File cancellato",nameInputErrorMessage:"Nome non valido",cancel:"Annulla",submit:"Invia",buttonText:"Nuova cartella",addFileButtonText:"Carica un file",rename:"Rinominare",view:"Vedere",download:"Scaricare",delete:"Cancellare",deleteTitle:"Eliminazione di file",deleteDetail:"Stai per eliminare definitivamente i seguenti file/cartelle"},QEi={BuildingMaker:kEi,FileManager:xEi},MEi={de:uEi,en:mEi,es:yEi,fr:EEi,it:QEi},SEi=({i18nPlugin:t}={})=>({install(e){t?Object.entries(MEi).forEach(([i,r])=>{t.global.mergeLocaleMessage(i,r)}):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(ehi).forEach(([i,r])=>{e.component(i,r)})}}),DEi={beforeMount(t,e){if(typeof e.value!="function")throw Error(`click away directive needs function, got ${typeof e.value}`);t.clickAwayHandler=i=>{(i.path||i.composedPath&&i.composedPath()).find(r=>r===t)||e.value()},window.addEventListener("mousedown",t.clickAwayHandler,!0)},unmounted(t){window.removeEventListener("mousedown",t.clickAwayHandler,!0),delete t.clickAwayHandler}},PEi=Object.freeze(Object.defineProperty({__proto__:null,BIMDataClickAway:Hd,BIMDataClickInputAway:DEi},Symbol.toStringTag,{value:"Module"})),REi=t=>({install(e){Object.entries($ct).forEach(([i,r])=>{e.component(i,r)}),Object.entries(PEi).forEach(([i,r])=>e.directive(i.split("BIMData")[1],r))}}),FEi={name:"LiWrapper",render(){return _o("li",this.$slots.default())}};function LEi(t,e){var i=new Set([]);return t.forEach(r=>{e.has(r)||i.add(r)}),i}const lA=Cs("id"),TEi=({contextMenu:t,objects:e=[],state:i=t.$viewer.state,pictos:r})=>[{name:"selectAll",get group(){return t.groupPositions.select},position:1,get label(){return t.$t("context_menu.select_all")},get picto(){return r.get(this.name)},execute:()=>i.selectObjects(e.filter(Sd(Zi("visible"),ip("selected"))).map(lA)),predicate:()=>e.some(Sd(Zi("visible"),ip("selected")))},{name:"deselectAll",get group(){return t.groupPositions.select},position:2,get label(){return t.$t("context_menu.deselect_all")},get picto(){return r.get(this.name)},execute:()=>i.deselectObjects(e.filter(Zi("selected")).map(lA)),predicate:()=>e.some(Zi("selected"))},{name:"selectSimilar",get group(){return t.groupPositions.select},position:3,get label(){return t.$t("context_menu.select_similar")},get picto(){return r.get(this.name)},execute(){const o=e.filter(s=>s.visible&&s.type===this.selectedObject.type&&s.id!==this.selectedObject.id).map(lA);i.selectObjects(o)},selectedObject:null,predicate(){const o=e.filter(Sd(Zi("visible"),Zi("selected")));return o.length===1&&o[0].type!==void 0?(this.selectedObject=o[0],!0):(this.selectedObject=null,!1)}},{name:"reverseSelection",get label(){return t.$t("context_menu.reverse_selection")},get group(){return t.groupPositions.select},position:4,execute:()=>{const o=new Set(e.filter(Zi("selected")).map(lA)),s=new Set(e.filter(Zi("visible")).map(lA));i.selectObjects(Array.from(LEi(s,o)),{exclusive:!0})},predicate:()=>e.some(Sd(ip("selected"),Zi("visible")))&&e.some(Sd(Zi("selected"),Zi("visible")))},{name:"showAll",get group(){return t.groupPositions.visibility},position:1,get label(){return t.$t("context_menu.show_all")},get picto(){return r.get(this.name)},execute:()=>i.showObjects(e.filter(ip("visible")).map(lA)),predicate:()=>e.some(ip("visible"))},{name:"hide",get group(){return t.groupPositions.visibility},position:2,get label(){return t.$t("context_menu.hide")},get picto(){return r.get(this.name)},objectsToHide:null,execute(){const o=this.objectsToHide.filter(Zi("selected"));o.length>0&&i.deselectObjects(o.map(lA)),i.hideObjects(this.objectsToHide.map(lA))},predicate(){return this.objectsToHide=e.filter(Sd(Zi("selected"),Zi("visible"))),this.objectsToHide.length>0}},{name:"hideAll",get group(){return t.groupPositions.visibility},position:3,get label(){return t.$t("context_menu.hide_all")},execute:()=>{const o=e.filter(Zi("visible"));o.some(Zi("selected"))&&i.deselectObjects(o.filter(Zi("selected")).map(lA)),i.hideObjects(o.map(lA))},predicate:()=>e.some(Zi("visible"))}].filter(o=>o.predicate()),NEi={components:{LiWrapper:FEi},inject:["$viewer"],data(){return{defaultPrevented:!1,displayed:!1,top:null,bottom:null,left:null,width:200,nextCommandId:1,currentCommands:[],contextCommands:[],registeredCommands:[],groupPositions:{select:10,visibility:20},asyncPredicateRunning:!1}},computed:{position(){return{top:this.top?this.top+"px":"unset",bottom:this.bottom?this.bottom+"px":"unset",left:this.left+"px",width:this.width+"px"}}},watch:{displayed(t){t?document.addEventListener("keydown",this.onKeyDown):document.removeEventListener("keydown",this.onKeyDown)}},created(){this.$viewer.contextMenu=this,this.asyncPredicates=new Set},methods:{onKeyDown(t){t.key==="Escape"&&this.away()},setPosition(t){const e=(document.fullscreenElement?document.fullscreenElement:this.$parent.$el).getBoundingClientRect();this.left=t.clientX-e.left,this.top=t.clientY-e.top,this.left+this.width>e.width&&(this.left=this.left-this.width),t.clientY>e.top+e.height/2?(this.bottom=e.height-this.top,this.top=null):this.bottom=null},typeCheckCommand(t={}){let e=null;if((!t.execute||typeof t.execute!="function")&!t.component&&(e="Cannot register context menu command. A command must have an execute function or a component property."),t.label||(e="Cannot register context menu command. A command must have a label."),e)throw console.error(e),new Error(e);return t.id=this.nextCommandId++,t},open(t){this.currentCommands=[],this.setPosition(t),this.originEvent=t,t.preventDefault(),this.setCurrentCommands(),this.groupCurrentCommands(),this.defaultPrevented=!1,this.displayed=!0,document.fullscreenElement?(this.$el.parentElement.removeChild(this.$el),this.adoptiveParent=document.fullscreenElement,this.adoptiveParent.appendChild(this.$el)):this.adoptiveParent&&this.adoptiveParent!==this.$viewer.globalContext.el&&(this.adoptiveParent.removeChild(this.$el),this.$viewer.globalContext.el.appendChild(this.$el),this.adoptiveParent=null)},setCurrentCommands(){this.asyncPredicates.clear(),this.asyncPredicateRunning=!1,this.defaultPrevented||this.registeredCommands.forEach(async t=>{if(typeof t.predicate=="function"){const e=t.predicate(this.$viewer.globalContext.activeLocalContext);if(e===!0)this.currentCommands.push(t);else if(typeof e?.then=="function"){this.asyncPredicates.add(e),this.asyncPredicateRunning=!0;const i=await e;this.asyncPredicates.has(e)&&(this.asyncPredicates.delete(e),this.asyncPredicateRunning=this.asyncPredicates.size>0,i===!0&&this.currentCommands.push(t))}}else this.currentCommands.push(t)}),this.currentCommands.push(...this.contextCommands),this.contextCommands=[]},getDefaultCommands({objects:t=[],state:e=this.$viewer.state,context:i=null}){const r=new Map;return i&&this.$viewer.shortcutManager.getShortcuts(i).forEach(o=>r.set(o.name,o.key)),TEi({contextMenu:this,objects:t,state:e,pictos:r})},executeCommand(t){if(t.execute&&(t.execute(this.originEvent),this.displayed=!1),t.component&&!t.menu)throw new Error("Command with component property must have a `menu` property")},away(){this.displayed=!1},groupCurrentCommands(){const t=new Map;this.currentCommands.forEach(i=>{(i.group===null||i.group===void 0)&&(i.group=0),t.has(i.group)?t.get(i.group).push(i):t.set(i.group,[i])}),t.forEach(i=>i.sort((r,o)=>(r.position=r.position||0,o.position=o.position||0,r.position-o.position)));const e=[...t.keys()].sort((i,r)=>i-r).map(i=>t.get(i)).flat();this.currentCommands=e},isGroupIntersection(t){if(t===0)return!1;const e=this.currentCommands[t-1],i=this.currentCommands[t];return e.group<i.group},registerContextCommand(t){const e=this.typeCheckCommand(t);return this.contextCommands.push(e),t.id},registerCommand(t){const e=this.typeCheckCommand(t);return this.registeredCommands.push(e),t.id},unregisterCommand(t){return this.registeredCommands.find(e=>e.id===t)?(this.registeredCommands=this.registeredCommands.filter(e=>e.id!==t),!0):!1},preventDefault(){this.defaultPrevented=!0}}},UEi={key:0,class:"separator"},OEi={class:"menu-text"},HEi={key:1,class:"menu-picto"},jEi={key:0,class:"context-menu__spinner"};function GEi(t,e,i,r,o,s){const n=P("BIMDataIconChevron"),a=P("LiWrapper"),l=P("BIMDataSpinner"),c=Ti("click-away");return o.displayed&&(o.currentCommands.length||o.asyncPredicateRunning)?Bt((x(),U("ul",{key:0,class:"bimdata-list context-menu",style:pe(s.position)},[(x(!0),U(ht,null,Ht(o.currentCommands,(d,A)=>(x(),W(a,{key:d.label,class:"context-menu__element",onClick:u=>s.executeCommand(d)},{default:G(()=>[s.isGroupIntersection(A)?(x(),U("div",UEi)):he("",!0),b("div",OEi,z(d.label),1),!d.component&&d.picto?(x(),U("span",HEi,z(d.picto),1)):d.component?(x(),W(n,{key:2,size:"xxs",class:"fill-primary"})):he("",!0)]),_:2},1032,["onClick"]))),128)),o.asyncPredicateRunning?(x(),U("li",jEi,[F(l)])):he("",!0)],4)),[[c,s.away]]):he("",!0)}const VEi=V(NEi,[["render",GEi],["__scopeId","data-v-5b87d4a3"]]),qEi={name:"ViewerHeader",inject:["$viewer"],props:{visible:{type:Boolean,default:!0}},setup(){const t=St("$viewer"),e=Ra(new Map),i=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)},r=o=>e.has(o)?(e.delete(o),!0):!1;return{logo:t.uiSettings.bimdataLogo!==!1,version:t.uiSettings.version!==!1?t.version:null,headerContent:e,headerRightContentComponents:lt(()=>Array.from(e.values()).filter(o=>o.position==="right").sort((o,s)=>o.order-s.order).map(o=>o.component)),headerLeftContentComponents:lt(()=>Array.from(e.values()).filter(o=>o.position==="left").sort((o,s)=>o.order-s.order).map(o=>o.component)),addContent:i,removeContent:r}}},_Ei={class:"viewer-header"},zEi={class:"viewer-header__content"},KEi={class:"viewer-header__content__left"},JEi={class:"viewer-header__content__right"},YEi={key:0,class:"m-l-6 flex items-center"},WEi={key:1,class:"viewer-header__version"};function ZEi(t,e,i,r,o,s){const n=P("BIMDataIllustration");return Bt((x(),U("div",_Ei,[b("div",zEi,[b("div",KEi,[(x(!0),U(ht,null,Ht(r.headerLeftContentComponents,a=>(x(),W(ao(a),{key:a.name}))),128))]),b("div",JEi,[(x(!0),U(ht,null,Ht(r.headerRightContentComponents,a=>(x(),W(ao(a),{key:a.name}))),128))])]),r.logo||r.version?(x(),U("div",YEi,[r.logo?(x(),W(n,{key:0,name:"logo",width:"30px",height:"30px"})):he("",!0),r.version?(x(),U("div",WEi,z(r.version),1)):he("",!0)])):he("",!0)],512)),[[ni,i.visible]])}const XEi=V(qEi,[["render",ZEi],["__scopeId","data-v-5c9ea6b6"]]),$Ei={emits:["resize"],setup(t,{emit:e}){return{onResizerMousedown:i=>{i.preventDefault();let r=i.clientX;const o=n=>{n.preventDefault();const a=n.clientX-r;r=n.clientX,e("resize",a)},s=n=>{n.preventDefault(),window.removeEventListener("mousemove",o),window.removeEventListener("mouseup",s)};window.addEventListener("mousemove",o),window.addEventListener("mouseup",s)}}}},eki={class:"bimdata-separator"};function tki(t,e,i,r,o,s){return x(),U("div",eki,[e[1]||(e[1]=b("div",{class:"bimdata-separator__line"},null,-1)),b("div",{class:"bimdata-separator__resizer",onMousedown:e[0]||(e[0]=(...n)=>r.onResizerMousedown&&r.onResizerMousedown(...n))},null,32)])}const iki=V($Ei,[["render",tki],["__scopeId","data-v-79a3b3af"]]),rki={components:{Separator:iki},props:{position:{type:String,required:!0,validator(t){return["left","right"].includes(t)}},sidePanel:{type:Object,required:!0,validator(t){if(t.width&&(typeof t.width!="number"||t.width<0))return console.error(`[GlobalSidePanel] sidePanel.width must be a strictly positive number, received ${typeof t.width}`),!1;const e=typeof t?.component=="object";return e||console.error("[GlobalSidePanel] sidePanel must have a component property"),e}}},setup(t){const e=Le(null),i=Le(t.sidePanel.width??400),r=(o,s=1)=>{const n=i.value+o*s;i.value=Math.max(0,n)};return Dt(()=>t.sidePanel,()=>{Object.defineProperty(t.sidePanel,"width",{get(){return i.value},set(o){if(typeof o!="number"||o<=0){console.error(`[GlobalSidePanel] sidePanel.width must be a strictly positive number, received ${typeof o}`);return}i.value=o}}),Object.defineProperty(t.sidePanel,"componentInstance",{get(){return e.value},enumerable:!0})},{immediate:!0}),{componentInstance:e,width:i,onResize:r}}},oki={class:"bimdata-global-side-panel__component"};function nki(t,e,i,r,o,s){const n=P("Separator");return x(),U("div",{class:"bimdata-global-side-panel",style:pe(`width: ${r.width}px`)},[i.sidePanel.resizable&&i.position==="right"?(x(),W(n,{key:0,onResize:e[0]||(e[0]=a=>r.onResize(a,-1))})):he("",!0),b("div",oki,[(x(),W(ao(i.sidePanel.component),{ref:"componentInstance"},null,512))]),i.sidePanel.resizable&&i.position==="left"?(x(),W(n,{key:1,onResize:e[1]||(e[1]=a=>r.onResize(a))})):he("",!0)],4)}const ski=V(rki,[["render",nki],["__scopeId","data-v-82d0d4cb"]]),aki={name:"BimdataViewer",components:{ContextMenu:VEi,ViewerHeader:XEi,ModalManager:fve,GlobalSidePanel:ski},setup(){const t=St("$viewer"),{globalContext:e,shortcutManager:i}=t;Dr(()=>{i&&i.destroy(),e.hub.clear()}),ar(()=>{t.pluginManager.runPluginsScripts(t)});const r=lt(()=>{var h;return t.uiSettings.bimdataLogo!==!1&&(e.localContexts.length!==1||((h=e.localContexts[0].window)==null?void 0:h.logoAndVersion))}),o=lt(()=>{var h;return t.uiSettings.version!==!1&&(e.localContexts.length!==1||(h=e.localContexts[0].window)!=null&&h.logoAndVersion)?t.version:null}),s=lt(()=>e.leftSidePanel),n=lt(()=>e.rightSidePanel),a=lt(()=>{var h;const g=t.uiSettings.header!==!1,p=e.localContexts.length===1&&((h=e.localContexts[0].window)==null?void 0:h.header)===!1,m=!!(s.value||n.value);return g&&(!p||m)}),l=t.uiSettings.contextMenu!==!1,c=Le(null);function d(h){l&&c.value.open(h)}function A(){t.shortcutManager.active=!0}function u(){t.shortcutManager.active=!1}return{Layout:t.layout.areas.component,onContextMenu:d,onMouseenter:A,onMouseleave:u,isHeaderVisible:a,viewerTemplateRef:e.templateRef,modalManagerTemplateRef:e.modalManagerTemplateRef,headerTemplateRef:e.headerTemplateRef,contextMenuTemplateRef:c,contextMenuEnabled:l,bimdataLogoOnSingleWindow:r,viewerVersionOnSingleWindow:o,version:t.version,loading:lt(()=>e.loading),spinner:lt(()=>e.spinner),leftSidePanel:s,rightSidePanel:n}}},lki={key:1,class:"global-spinner",style:{"z-index":"3"}},cki={key:2,class:"viewer__logo"},dki={key:1,class:"version m-t-6"};function Aki(t,e,i,r,o,s){const n=P("ModalManager"),a=P("ContextMenu"),l=P("ViewerHeader"),c=P("GlobalSidePanel"),d=P("BIMDataSpinner"),A=P("BIMDataIllustration");return x(),U("div",{id:"bimdata-viewer",ref:"viewerTemplateRef",class:"bimdata-viewer bimdata-scrollbar",onContextmenu:e[0]||(e[0]=(...u)=>r.onContextMenu&&r.onContextMenu(...u)),onMouseenter:e[1]||(e[1]=(...u)=>r.onMouseenter&&r.onMouseenter(...u)),onMouseleave:e[2]||(e[2]=(...u)=>r.onMouseleave&&r.onMouseleave(...u))},[F(n,{ref:"modalManagerTemplateRef"},null,512),r.contextMenuEnabled?(x(),W(a,{key:0,ref:"contextMenuTemplateRef"},null,512)):he("",!0),F(l,{ref:"headerTemplateRef",visible:r.isHeaderVisible},null,8,["visible"]),b("div",{class:"bimdata-viewer__content",style:pe(r.isHeaderVisible?"height: calc(100% - var(--bimdata-viewer-header-height, 40px))":"height: 100%")},[r.leftSidePanel?(x(),W(c,{key:0,"side-panel":r.leftSidePanel,position:"left"},null,8,["side-panel"])):he("",!0),(x(),W(ao(r.Layout),{style:"height: 100%; flex-grow: 1;"})),r.rightSidePanel?(x(),W(c,{key:1,"side-panel":r.rightSidePanel,position:"right"},null,8,["side-panel"])):he("",!0)],4),r.loading?(x(),U("div",lki,[r.spinner&&r.spinner.component?(x(),W(ao(r.spinner.component),YA(Ta({key:0},r.spinner.props)),null,16)):(x(),W(d,{key:1,size:"40px",border:"5px"}))])):he("",!0),!r.isHeaderVisible&&(r.bimdataLogoOnSingleWindow||r.viewerVersionOnSingleWindow)?(x(),U("div",cki,[r.bimdataLogoOnSingleWindow?(x(),W(A,{key:0,name:"logo"})):he("",!0),r.viewerVersionOnSingleWindow?(x(),U("div",dki,z(r.version),1)):he("",!0)])):he("",!0)],544)}const uki=V(aki,[["render",Aki]]),hki=["src"],pki={class:"bimdata-models__header"},gki={key:0,class:"bimdata-models__header__loader"},fki={class:"bimdata-models__header__picto"},mki={class:"bimdata-models__header__name"},vki={key:0,class:"bimdata-models__header__name--empty"},Cki={key:1,class:"bimdata-models__header__name--empty"},yki={key:3},Iki=["onMousemove","onClick"],Ive={__name:"Models",props:{preview:{type:Boolean,default:!1},windowPositioning:{type:Boolean,default:!0},customFilter:{type:Function,default:null},width:{type:String,default:"350px"}},setup(t){const e=t,i=St("$viewer"),r=Le(),o=Le(0),s=Le(0),n=Le(),a=Vr([]),l=Le(!1),c=lt(()=>i.localContext.loadedModels),d=lt(()=>i.localContext.loadedModelIds),A=lt(()=>i.localContext.loadingModelIds),u=lt(()=>i.localContext.multiModel),h=lt(()=>(e.customFilter?a.value.filter(e.customFilter):a.value).map(B=>c.value.find(E=>{var k;return((k=E.document)==null?void 0:k.head_id)!=null&&E.document.head_id===B.document.id})??B)),g=B=>d.value.includes(B),p=B=>A.value.includes(B),m=lt(()=>{var B;const{x:E,y:k}=((B=n.value)==null?void 0:B.getBoundingClientRect())??{x:0,y:0};return`top:${s.value-k}px; left:${o.value-E}px;`}),f=B=>{!u.value&&g(B.id)||A.value.length>0||(i.localContext.loadedModelIds.includes(B.id)?i.localContext.unloadModels([B.id]):i.localContext.loadModels([B.id]))},v=B=>{switch(B){case"C":return"success";case"E":return"failed";case"P":case"I":return"sandglass"}},C=(B,E)=>{B!=null&&B.viewer_360_file&&(o.value=E.clientX,s.value=E.clientY),r.value=B?.viewer_360_file},y=async B=>{l.value=!0;try{return(await i.api.apiClient.modelApi.getModels(i.api.cloudId,i.api.projectId,void 0,void 0,B)).filter(E=>i.state.models.some(k=>k.archived)||!E.archived).sort(n1("updated_at",!1))}catch(E){console.error("[Models] Cannot get project models. Error: ",E)}finally{l.value=!1}return[]},I=B=>{var E;return((E=B.children)==null?void 0:E.some(k=>g(k.id)))??!1};return y(i.localContext.modelTypes).then(B=>{a.value=B}),(B,E)=>{const k=P("BIMDataSpinner"),Q=P("BIMDataIconModel3D"),S=P("BIMDataTextbox"),D=P("BIMDataCheckbox"),R=P("BIMDataRadio"),T=P("BIMDataIcon"),H=P("BIMDataDropdownList");return x(),U("div",{ref_key:"templateRef",ref:n,class:ge(["bimdata-models",{"bimdata-models--window-positioning":t.windowPositioning}])},[r.value?(x(),U("div",{key:0,class:"bimdata-models__preview",style:pe(m.value)},[b("img",{src:r.value},null,8,hki)],4)):he("",!0),F(H,{style:pe(`--bimdata-models-width: ${t.width};`),width:t.width,list:h.value,"element-key":"id","per-page":40,loading:l.value,class:"bimdata-models__list",disabled:h.value.length===0,onElementClick:f},{header:G(({isOpen:q})=>[b("div",pki,[l.value||A.value.length>0?(x(),U("div",gki,[F(k)])):(x(),U(ht,{key:1},[b("div",fki,[F(Q)]),b("div",{class:ge(["bimdata-models__header__number bimdata-info-length",{"bimdata-models__header__number--empty":d.value.length===0}])},[b("span",null,z(d.value.length),1)],2),b("div",mki,[h.value.length===0?(x(),U("span",vki,z(B.$t("model.no_model")),1)):d.value.length===0?(x(),U("span",Cki,z(B.$t("model.no_loaded_model")),1)):d.value.length===1?(x(),W(S,{key:2,text:c.value[0].name,tooltip:!q},null,8,["text","tooltip"])):d.value.length>1?(x(),U("span",yki,z(B.$t("model.selected_models")),1)):he("",!0)])],64))])]),element:G(({element:q,close:O})=>[b("div",{class:"bimdata-models__model",onMousemove:j=>t.preview&&C(q,j),onMouseout:E[0]||(E[0]=j=>t.preview&&C()),onClick:()=>{!u.value&&!g(q.id)&&O()}},[u.value?(x(),W(D,{key:0,"model-value":g(q.id)||I(q),disabled:q.status!=="C"||A.value.length>0},null,8,["model-value","disabled"])):(x(),W(R,{key:1,"model-value":g(q.id)||I(q),disabled:q.status!=="C"||A.value.length>0},null,8,["model-value","disabled"])),F(T,{margin:"0 calc(var(--spacing-unit) / 2)",name:v(q.status),size:"xs",class:ge({"fill-success":q.status==="C","fill-high":q.status==="E"})},null,8,["name","class"]),F(S,{class:ge({"bimdata-models__model__name":!0,"bimdata-models__model__name--disabled":q.status!=="C"||A.value.length>0}),text:q.name,width:`calc(100% -
1629
1629
  ${u.value?13:23}px - 2 * 6px - 16px)`},null,8,["class","text","width"]),q.document&&!q.document.is_head_version?(x(),W(T,{key:2,name:"versioning",fill:"",color:"default",size:"xs",margin:"0 0 0 6px"})):he("",!0)],40,Iki),p(q.id)?(x(),W(k,{key:0,class:"bimdata-models__model__spinner"})):he("",!0)]),_:1},8,["style","width","list","loading","disabled"])],2)}}},wki={data(){return{shown:!1}},mounted(){setTimeout(()=>{this.shown=!0},500)}};function bki(t,e,i,r,o,s){const n=P("BIMDataIllustration");return x(),U("div",{class:"bimdata__no-model",style:pe({"--no-model--opacity":o.shown?1:0})},[F(n,{name:"emptyViewer",x:"90",y:"90"}),b("span",null,z(t.$t("model.select_model")),1)],4)}const wve=V(wki,[["render",bki],["__scopeId","data-v-5ffd9bc0"]]);window.BIMDataViewerVue=YX;class Bki{constructor(e={}){var i,r;const{api:o={},ui:s}=e;this.uiCfg=s,o.apiUrl||(console.info("[BIMData Viewer] INFO - Viewer config - `apiUrl` not set, use 'https://api.bimdata.io' by default."),o.apiUrl="https://api.bimdata.io"),o.archiveUrl||(console.info("[BIMData Viewer] INFO - Viewer config - `archiveUrl` not set, use 'https://archive.bimdata.io' by default."),o.archiveUrl="https://archive.bimdata.io"),o.pdfBackendUrl||(console.info("[BIMData Viewer] INFO - Viewer config - `pdfBackendUrl` not set, use 'https://pdf-backend.bimdata.io' by default."),o.pdfBackendUrl="https://pdf-backend.bimdata.io"),o.ifcIds&&(console.warn("[BIMData Viewer] DEPRECATED - Viewer config - please use the `modelIds` property instead of `ifcIds`."),o.modelIds===void 0&&(o.modelIds=o.ifcIds)),o.modelIds||(o.modelIds=[]),(i=o.offline)!=null&&i.dataFile&&(o.offline.data=o.offline.dataFile),this.$viewer=new JBi(e),(r=o.offline)!=null&&r.enabled?this.$viewer.api.enableOfflineMode(o.offline.data,o.offline.options).then(()=>this.state.loadModels(o.modelIds)):(this.$viewer.globalContext.loadingProcessStart(),this.state.loadModels(o.modelIds).finally(()=>this.$viewer.globalContext.loadingProcessEnd())),this.vueApp=null}get state(){return this.$viewer.state}get api(){return this.$viewer.api}async mount(e,i="3d"){var r;const{$viewer:o}=this;await o.api.ready;try{const A=await o.api.apiClient.collaborationApi.checkProjectAccess(o.api.cloudId,o.api.projectId);o.api.permissions=yve(A)}catch{o.api.permissions=yve()}const s=this.api.accessToken,{i18n:n}=o;n.registerTranslations(o.pluginManager.pluginTranslations),o.layout.apply(i);const a={i18n:n.i18nVuePlugin,data(){return{accessToken:s}},render(){return _o(uki,{style:"height: 100%"})}},l=i8(a).use(n.i18nVuePlugin).use(REi()).use(SEi({i18nPlugin:n.i18nVuePlugin})).use(cEi({apiClient:o.api.apiClient,i18nPlugin:n.i18nVuePlugin}));l.provide("$viewer",o),l.component("BIMDataModelLoader",Ive),l.component("BIMDataNoModelWindowPlaceHolder",wve),l.component("BIMDataStoreySelector",rO),l.component("ModelsLoader",Ive),l.component("NoModelWindowPlaceHolder",wve);const c=e instanceof HTMLElement?e:document.querySelector(e);c&&(c.style.height="100%");const d=l.mount(e);return d.$viewer=o,YBi(d.$el,(r=this.uiCfg)==null?void 0:r.style),typeof window<"u"&&(window.bimdataViewer=d),this.vueApp=l,d}destroy(){var e;(e=this.vueApp)==null||e.unmount()}setLocale(e){if(!A$.includes(e))throw new Error(`Viewer available locales are ${A$.join(", ")}.`);this.$viewer.i18n.locale=e}registerPlugin(e){this.$viewer.registerPlugin(e)}registerWindow(e){return this.$viewer.windowManager.registerWindow(e)}unregisterWindow(e){return this.$viewer.windowManager.unregisterWindow(e)}setAccessToken(e){this.api.accessToken=e}async loadModels(e){this.$viewer.globalContext.loadingProcessStart();const i=await this.state.loadModels(e);return this.$viewer.globalContext.loadingProcessEnd(),i}loadIfcs(e){return console.warn("[BIMData Viewer] DEPRECATED - Viewer - please use the loadModels method instead of loadIfcs."),this.loadModels(e)}}const bve=(t={})=>new Bki(t);window.makeBIMDataViewer=bve;var j7={};j7.d=(t,e)=>{for(var i in e)j7.o(e,i)&&!j7.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},j7.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var Si=globalThis.pdfjsLib={};j7.d(Si,{AbortException:()=>_g,AnnotationEditorLayer:()=>TQi,AnnotationEditorParamsType:()=>Bi,AnnotationEditorType:()=>Fi,AnnotationEditorUIManager:()=>ry,AnnotationLayer:()=>SQi,AnnotationMode:()=>Z1,ColorPicker:()=>M5e,DOMSVGFactory:()=>Cq,DrawLayer:()=>NQi,FeatureTest:()=>ga,GlobalWorkerOptions:()=>l0,ImageKind:()=>WQ,InvalidPDFException:()=>Eve,MissingPDFException:()=>qg,OPS:()=>sd,OutputScale:()=>xV,PDFDataRangeTransport:()=>q4e,PDFDateString:()=>EV,PDFWorker:()=>oS,PasswordResponses:()=>Qki,PermissionFlag:()=>xki,PixelsPerInch:()=>xv,RenderingCancelledException:()=>bV,TextLayer:()=>pq,UnexpectedResponseException:()=>eM,Util:()=>ri,VerbosityLevel:()=>ZQ,XfaLayer:()=>Y4e,build:()=>cQi,createValidAbsoluteUrl:()=>Pki,fetchData:()=>rM,getDocument:()=>Xxi,getFilenameFromUrl:()=>jki,getPdfFilenameFromUrl:()=>Gki,getXfaPageViewport:()=>Vki,isDataScheme:()=>oM,isPdfFile:()=>BV,noContextMenu:()=>dc,normalizeUnicode:()=>Uki,setLayerDimensions:()=>Kg,shadow:()=>$i,version:()=>lQi});const Ps=typeof process=="object"&&process+""=="[object process]"&&!process.versions.nw&&!(process.versions.electron&&process.type&&process.type!=="browser"),Bve=[1,0,0,1,0,0],hV=[.001,0,0,.001,0,0],Eki=1e7,pV=1.35,Ml={ANY:1,DISPLAY:2,PRINT:4,SAVE:8,ANNOTATIONS_FORMS:16,ANNOTATIONS_STORAGE:32,ANNOTATIONS_DISABLE:64,IS_EDITING:128,OPLIST:256},Z1={DISABLE:0,ENABLE:1,ENABLE_FORMS:2,ENABLE_STORAGE:3},kki="pdfjs_internal_editor_",Fi={DISABLE:-1,NONE:0,FREETEXT:3,HIGHLIGHT:9,STAMP:13,INK:15},Bi={RESIZE:1,CREATE:2,FREETEXT_SIZE:11,FREETEXT_COLOR:12,FREETEXT_OPACITY:13,INK_COLOR:21,INK_THICKNESS:22,INK_OPACITY:23,HIGHLIGHT_COLOR:31,HIGHLIGHT_DEFAULT_COLOR:32,HIGHLIGHT_THICKNESS:33,HIGHLIGHT_FREE:34,HIGHLIGHT_SHOW_ALL:35},xki={PRINT:4,MODIFY_CONTENTS:8,COPY:16,MODIFY_ANNOTATIONS:32,FILL_INTERACTIVE_FORMS:256,COPY_FOR_ACCESSIBILITY:512,ASSEMBLE:1024,PRINT_HIGH_QUALITY:2048},Rs={FILL:0,STROKE:1,FILL_STROKE:2,INVISIBLE:3,FILL_ADD_TO_PATH:4,STROKE_ADD_TO_PATH:5,FILL_STROKE_ADD_TO_PATH:6,ADD_TO_PATH:7,FILL_STROKE_MASK:3,ADD_TO_PATH_FLAG:4},WQ={GRAYSCALE_1BPP:1,RGB_24BPP:2,RGBA_32BPP:3},yn={TEXT:1,LINK:2,FREETEXT:3,LINE:4,SQUARE:5,CIRCLE:6,POLYGON:7,POLYLINE:8,HIGHLIGHT:9,UNDERLINE:10,SQUIGGLY:11,STRIKEOUT:12,STAMP:13,CARET:14,INK:15,POPUP:16,FILEATTACHMENT:17,SOUND:18,MOVIE:19,WIDGET:20,SCREEN:21,PRINTERMARK:22,TRAPNET:23,WATERMARK:24,THREED:25,REDACT:26},G7={SOLID:1,DASHED:2,BEVELED:3,INSET:4,UNDERLINE:5},ZQ={ERRORS:0,WARNINGS:1,INFOS:5},sd={dependency:1,setLineWidth:2,setLineCap:3,setLineJoin:4,setMiterLimit:5,setDash:6,setRenderingIntent:7,setFlatness:8,setGState:9,save:10,restore:11,transform:12,moveTo:13,lineTo:14,curveTo:15,curveTo2:16,curveTo3:17,closePath:18,rectangle:19,stroke:20,closeStroke:21,fill:22,eoFill:23,fillStroke:24,eoFillStroke:25,closeFillStroke:26,closeEOFillStroke:27,endPath:28,clip:29,eoClip:30,beginText:31,endText:32,setCharSpacing:33,setWordSpacing:34,setHScale:35,setLeading:36,setFont:37,setTextRenderingMode:38,setTextRise:39,moveText:40,setLeadingMoveText:41,setTextMatrix:42,nextLine:43,showText:44,showSpacedText:45,nextLineShowText:46,nextLineSetSpacingShowText:47,setCharWidth:48,setCharWidthAndBounds:49,setStrokeColorSpace:50,setFillColorSpace:51,setStrokeColor:52,setStrokeColorN:53,setFillColor:54,setFillColorN:55,setStrokeGray:56,setFillGray:57,setStrokeRGBColor:58,setFillRGBColor:59,setStrokeCMYKColor:60,setFillCMYKColor:61,shadingFill:62,beginInlineImage:63,beginImageData:64,endInlineImage:65,paintXObject:66,markPoint:67,markPointProps:68,beginMarkedContent:69,beginMarkedContentProps:70,endMarkedContent:71,beginCompat:72,endCompat:73,paintFormXObjectBegin:74,paintFormXObjectEnd:75,beginGroup:76,endGroup:77,beginAnnotation:80,endAnnotation:81,paintImageMaskXObject:83,paintImageMaskXObjectGroup:84,paintImageXObject:85,paintInlineImageXObject:86,paintInlineImageXObjectGroup:87,paintImageXObjectRepeat:88,paintImageMaskXObjectRepeat:89,paintSolidColorImageMask:90,constructPath:91,setStrokeTransparent:92,setFillTransparent:93},Qki={NEED_PASSWORD:1,INCORRECT_PASSWORD:2};let XQ=ZQ.WARNINGS;function Mki(t){Number.isInteger(t)&&(XQ=t)}function Ski(){return XQ}function $Q(t){XQ>=ZQ.INFOS&&console.log(`Info: ${t}`)}function Ui(t){XQ>=ZQ.WARNINGS&&console.log(`Warning: ${t}`)}function to(t){throw new Error(t)}function In(t,e){t||to(e)}function Dki(t){switch(t?.protocol){case"http:":case"https:":case"ftp:":case"mailto:":case"tel:":return!0;default:return!1}}function Pki(t,e=null,i=null){if(!t)return null;try{if(i&&typeof t=="string"){if(i.addDefaultProtocol&&t.startsWith("www.")){const o=t.match(/\./g);o?.length>=2&&(t=`http://${t}`)}if(i.tryConvertEncoding)try{t=Nki(t)}catch{}}const r=e?new URL(t,e):new URL(t);if(Dki(r))return r}catch{}return null}function $i(t,e,i,r=!1){return Object.defineProperty(t,e,{value:i,enumerable:!r,configurable:!0,writable:!1}),i}const X1=function(){function t(e,i){this.message=e,this.name=i}return t.prototype=new Error,t.constructor=t,t}();let gV=class extends X1{constructor(t,e){super(t,"PasswordException"),this.code=e}},fV=class extends X1{constructor(t,e){super(t,"UnknownErrorException"),this.details=e}},Eve=class extends X1{constructor(t){super(t,"InvalidPDFException")}},qg=class extends X1{constructor(t){super(t,"MissingPDFException")}},eM=class extends X1{constructor(t,e){super(t,"UnexpectedResponseException"),this.status=e}},Rki=class extends X1{constructor(t){super(t,"FormatError")}},_g=class extends X1{constructor(t){super(t,"AbortException")}};function kve(t){(typeof t!="object"||t?.length===void 0)&&to("Invalid argument for bytesToString");const e=t.length,i=8192;if(e<i)return String.fromCharCode.apply(null,t);const r=[];for(let o=0;o<e;o+=i){const s=Math.min(o+i,e),n=t.subarray(o,s);r.push(String.fromCharCode.apply(null,n))}return r.join("")}function tM(t){typeof t!="string"&&to("Invalid argument for stringToBytes");const e=t.length,i=new Uint8Array(e);for(let r=0;r<e;++r)i[r]=t.charCodeAt(r)&255;return i}function Fki(t){return String.fromCharCode(t>>24&255,t>>16&255,t>>8&255,t&255)}function mV(t){const e=Object.create(null);for(const[i,r]of t)e[i]=r;return e}function Lki(){const t=new Uint8Array(4);return t[0]=1,new Uint32Array(t.buffer,0,1)[0]===1}function Tki(){try{return new Function(""),!0}catch{return!1}}class ga{static get isLittleEndian(){return $i(this,"isLittleEndian",Lki())}static get isEvalSupported(){return $i(this,"isEvalSupported",Tki())}static get isOffscreenCanvasSupported(){return $i(this,"isOffscreenCanvasSupported",typeof OffscreenCanvas<"u")}static get platform(){return typeof navigator<"u"&&typeof navigator?.platform=="string"?$i(this,"platform",{isMac:navigator.platform.includes("Mac"),isWindows:navigator.platform.includes("Win"),isFirefox:typeof navigator?.userAgent=="string"&&navigator.userAgent.includes("Firefox")}):$i(this,"platform",{isMac:!1,isWindows:!1,isFirefox:!1})}static get isCSSRoundSupported(){var e,i;return $i(this,"isCSSRoundSupported",(i=(e=globalThis.CSS)==null?void 0:e.supports)==null?void 0:i.call(e,"width: round(1.5px, 1px)"))}}const vV=Array.from(Array(256).keys(),t=>t.toString(16).padStart(2,"0"));var zg,CV,iM,yV;let ri=(CV=class{static makeHexColor(t,e,i){return`#${vV[t]}${vV[e]}${vV[i]}`}static scaleMinMax(t,e){let i;t[0]?(t[0]<0&&(i=e[0],e[0]=e[2],e[2]=i),e[0]*=t[0],e[2]*=t[0],t[3]<0&&(i=e[1],e[1]=e[3],e[3]=i),e[1]*=t[3],e[3]*=t[3]):(i=e[0],e[0]=e[1],e[1]=i,i=e[2],e[2]=e[3],e[3]=i,t[1]<0&&(i=e[1],e[1]=e[3],e[3]=i),e[1]*=t[1],e[3]*=t[1],t[2]<0&&(i=e[0],e[0]=e[2],e[2]=i),e[0]*=t[2],e[2]*=t[2]),e[0]+=t[4],e[1]+=t[5],e[2]+=t[4],e[3]+=t[5]}static transform(t,e){return[t[0]*e[0]+t[2]*e[1],t[1]*e[0]+t[3]*e[1],t[0]*e[2]+t[2]*e[3],t[1]*e[2]+t[3]*e[3],t[0]*e[4]+t[2]*e[5]+t[4],t[1]*e[4]+t[3]*e[5]+t[5]]}static applyTransform(t,e){const i=t[0]*e[0]+t[1]*e[2]+e[4],r=t[0]*e[1]+t[1]*e[3]+e[5];return[i,r]}static applyInverseTransform(t,e){const i=e[0]*e[3]-e[1]*e[2],r=(t[0]*e[3]-t[1]*e[2]+e[2]*e[5]-e[4]*e[3])/i,o=(-t[0]*e[1]+t[1]*e[0]+e[4]*e[1]-e[5]*e[0])/i;return[r,o]}static getAxialAlignedBoundingBox(t,e){const i=this.applyTransform(t,e),r=this.applyTransform(t.slice(2,4),e),o=this.applyTransform([t[0],t[3]],e),s=this.applyTransform([t[2],t[1]],e);return[Math.min(i[0],r[0],o[0],s[0]),Math.min(i[1],r[1],o[1],s[1]),Math.max(i[0],r[0],o[0],s[0]),Math.max(i[1],r[1],o[1],s[1])]}static inverseTransform(t){const e=t[0]*t[3]-t[1]*t[2];return[t[3]/e,-t[1]/e,-t[2]/e,t[0]/e,(t[2]*t[5]-t[4]*t[3])/e,(t[4]*t[1]-t[5]*t[0])/e]}static singularValueDecompose2dScale(t){const e=[t[0],t[2],t[1],t[3]],i=t[0]*e[0]+t[1]*e[2],r=t[0]*e[1]+t[1]*e[3],o=t[2]*e[0]+t[3]*e[2],s=t[2]*e[1]+t[3]*e[3],n=(i+s)/2,a=Math.sqrt((i+s)**2-4*(i*s-o*r))/2,l=n+a||1,c=n-a||1;return[Math.sqrt(l),Math.sqrt(c)]}static normalizeRect(t){const e=t.slice(0);return t[0]>t[2]&&(e[0]=t[2],e[2]=t[0]),t[1]>t[3]&&(e[1]=t[3],e[3]=t[1]),e}static intersect(t,e){const i=Math.max(Math.min(t[0],t[2]),Math.min(e[0],e[2])),r=Math.min(Math.max(t[0],t[2]),Math.max(e[0],e[2]));if(i>r)return null;const o=Math.max(Math.min(t[1],t[3]),Math.min(e[1],e[3])),s=Math.min(Math.max(t[1],t[3]),Math.max(e[1],e[3]));return o>s?null:[i,o,r,s]}static bezierBoundingBox(t,e,i,r,o,s,n,a,l){return l?(l[0]=Math.min(l[0],t,n),l[1]=Math.min(l[1],e,a),l[2]=Math.max(l[2],t,n),l[3]=Math.max(l[3],e,a)):l=[Math.min(t,n),Math.min(e,a),Math.max(t,n),Math.max(e,a)],Z(this,zg,yV).call(this,t,i,o,n,e,r,s,a,3*(-t+3*(i-o)+n),6*(t-2*i+o),3*(i-t),l),Z(this,zg,yV).call(this,t,i,o,n,e,r,s,a,3*(-e+3*(r-s)+a),6*(e-2*r+s),3*(r-e),l),l}},zg=new WeakSet,iM=function(t,e,i,r,o,s,n,a,l,c){if(l<=0||l>=1)return;const d=1-l,A=l*l,u=A*l,h=d*(d*(d*t+3*l*e)+3*A*i)+u*r,g=d*(d*(d*o+3*l*s)+3*A*n)+u*a;c[0]=Math.min(c[0],h),c[1]=Math.min(c[1],g),c[2]=Math.max(c[2],h),c[3]=Math.max(c[3],g)},yV=function(t,e,i,r,o,s,n,a,l,c,d,A){if(Math.abs(l)<1e-12){Math.abs(c)>=1e-12&&Z(this,zg,iM).call(this,t,e,i,r,o,s,n,a,-d/c,A);return}const u=c**2-4*d*l;if(u<0)return;const h=Math.sqrt(u),g=2*l;Z(this,zg,iM).call(this,t,e,i,r,o,s,n,a,(-c+h)/g,A),Z(this,zg,iM).call(this,t,e,i,r,o,s,n,a,(-c-h)/g,A)},le(CV,zg),CV);function Nki(t){return decodeURIComponent(escape(t))}let IV=null,xve=null;function Uki(t){return IV||(IV=/([\u00a0\u00b5\u037e\u0eb3\u2000-\u200a\u202f\u2126\ufb00-\ufb04\ufb06\ufb20-\ufb36\ufb38-\ufb3c\ufb3e\ufb40-\ufb41\ufb43-\ufb44\ufb46-\ufba1\ufba4-\ufba9\ufbae-\ufbb1\ufbd3-\ufbdc\ufbde-\ufbe7\ufbea-\ufbf8\ufbfc-\ufbfd\ufc00-\ufc5d\ufc64-\ufcf1\ufcf5-\ufd3d\ufd88\ufdf4\ufdfa-\ufdfb\ufe71\ufe77\ufe79\ufe7b\ufe7d]+)|(\ufb05+)/gu,xve=new Map([["\uFB05","\u017Ft"]])),t.replaceAll(IV,(e,i,r)=>i?i.normalize("NFKC"):xve.get(r))}function Oki(){if(typeof crypto<"u"&&typeof(crypto==null?void 0:crypto.randomUUID)=="function")return crypto.randomUUID();const t=new Uint8Array(32);if(typeof crypto<"u"&&typeof(crypto==null?void 0:crypto.getRandomValues)=="function")crypto.getRandomValues(t);else for(let e=0;e<32;e++)t[e]=Math.floor(Math.random()*255);return kve(t)}const wV="pdfjs_internal_id_",Uu={BEZIER_CURVE_TO:0,MOVE_TO:1,LINE_TO:2,QUADRATIC_CURVE_TO:3,RESTORE:4,SAVE:5,SCALE:6,TRANSFORM:7,TRANSLATE:8};function Hki(t){return Uint8Array.prototype.toBase64?t.toBase64():btoa(kve(t))}const Ou="http://www.w3.org/2000/svg",kv=class{};ei(kv,"CSS",96),ei(kv,"PDF",72),ei(kv,"PDF_TO_CSS_UNITS",kv.CSS/kv.PDF);let xv=kv;async function rM(t,e="text"){if(V7(t,document.baseURI)){const i=await fetch(t);if(!i.ok)throw new Error(i.statusText);switch(e){case"arraybuffer":return i.arrayBuffer();case"blob":return i.blob();case"json":return i.json()}return i.text()}return new Promise((i,r)=>{const o=new XMLHttpRequest;o.open("GET",t,!0),o.responseType=e,o.onreadystatechange=()=>{if(o.readyState===XMLHttpRequest.DONE){if(o.status===200||o.status===0){switch(e){case"arraybuffer":case"blob":case"json":i(o.response);return}i(o.responseText);return}r(new Error(o.statusText))}},o.send(null)})}class Iw{constructor({viewBox:e,scale:i,rotation:r,offsetX:o=0,offsetY:s=0,dontFlip:n=!1}){this.viewBox=e,this.scale=i,this.rotation=r,this.offsetX=o,this.offsetY=s;const a=(e[2]+e[0])/2,l=(e[3]+e[1])/2;let c,d,A,u;switch(r%=360,r<0&&(r+=360),r){case 180:c=-1,d=0,A=0,u=1;break;case 90:c=0,d=1,A=1,u=0;break;case 270:c=0,d=-1,A=-1,u=0;break;case 0:c=1,d=0,A=0,u=-1;break;default:throw new Error("PageViewport: Invalid rotation, must be a multiple of 90 degrees.")}n&&(A=-A,u=-u);let h,g,p,m;c===0?(h=Math.abs(l-e[1])*i+o,g=Math.abs(a-e[0])*i+s,p=(e[3]-e[1])*i,m=(e[2]-e[0])*i):(h=Math.abs(a-e[0])*i+o,g=Math.abs(l-e[1])*i+s,p=(e[2]-e[0])*i,m=(e[3]-e[1])*i),this.transform=[c*i,d*i,A*i,u*i,h-c*i*a-A*i*l,g-d*i*a-u*i*l],this.width=p,this.height=m}get rawDims(){const{viewBox:e}=this;return $i(this,"rawDims",{pageWidth:e[2]-e[0],pageHeight:e[3]-e[1],pageX:e[0],pageY:e[1]})}clone({scale:e=this.scale,rotation:i=this.rotation,offsetX:r=this.offsetX,offsetY:o=this.offsetY,dontFlip:s=!1}={}){return new Iw({viewBox:this.viewBox.slice(),scale:e,rotation:i,offsetX:r,offsetY:o,dontFlip:s})}convertToViewportPoint(e,i){return ri.applyTransform([e,i],this.transform)}convertToViewportRectangle(e){const i=ri.applyTransform([e[0],e[1]],this.transform),r=ri.applyTransform([e[2],e[3]],this.transform);return[i[0],i[1],r[0],r[1]]}convertToPdfPoint(e,i){return ri.applyInverseTransform([e,i],this.transform)}}class bV extends X1{constructor(e,i=0){super(e,"RenderingCancelledException"),this.extraDelay=i}}function oM(t){const e=t.length;let i=0;for(;i<e&&t[i].trim()==="";)i++;return t.substring(i,i+5).toLowerCase()==="data:"}function BV(t){return typeof t=="string"&&/\.pdf$/i.test(t)}function jki(t){return[t]=t.split(/[#?]/,1),t.substring(t.lastIndexOf("/")+1)}function Gki(t,e="document.pdf"){if(typeof t!="string")return e;if(oM(t))return Ui('getPdfFilenameFromUrl: ignore "data:"-URL for performance reasons.'),e;const i=/^(?:(?:[^:]+:)?\/\/[^/]+)?([^?#]*)(\?[^#]*)?(#.*)?$/,r=/[^/?#=]+\.pdf\b(?!.*\.pdf\b)/i,o=i.exec(t);let s=r.exec(o[1])||r.exec(o[2])||r.exec(o[3]);if(s&&(s=s[0],s.includes("%")))try{s=r.exec(decodeURIComponent(s))[0]}catch{}return s||e}class Qve{constructor(){ei(this,"started",Object.create(null)),ei(this,"times",[])}time(e){e in this.started&&Ui(`Timer is already running for ${e}`),this.started[e]=Date.now()}timeEnd(e){e in this.started||Ui(`Timer has not been started for ${e}`),this.times.push({name:e,start:this.started[e],end:Date.now()}),delete this.started[e]}toString(){const e=[];let i=0;for(const{name:r}of this.times)i=Math.max(r.length,i);for(const{name:r,start:o,end:s}of this.times)e.push(`${r.padEnd(i)} ${s-o}ms
1630
1630
  `);return e.join("")}}function V7(t,e){try{const{protocol:i}=e?new URL(t,e):new URL(t);return i==="http:"||i==="https:"}catch{return!1}}function dc(t){t.preventDefault()}function Mve(t){console.log("Deprecated API usage: "+t)}var q7;class EV{static toDateObject(e){if(!e||typeof e!="string")return null;M(this,q7)||te(this,q7,new RegExp("^D:(\\d{4})(\\d{2})?(\\d{2})?(\\d{2})?(\\d{2})?(\\d{2})?([Z|+|-])?(\\d{2})?'?(\\d{2})?'?"));const i=M(this,q7).exec(e);if(!i)return null;const r=parseInt(i[1],10);let o=parseInt(i[2],10);o=o>=1&&o<=12?o-1:0;let s=parseInt(i[3],10);s=s>=1&&s<=31?s:1;let n=parseInt(i[4],10);n=n>=0&&n<=23?n:0;let a=parseInt(i[5],10);a=a>=0&&a<=59?a:0;let l=parseInt(i[6],10);l=l>=0&&l<=59?l:0;const c=i[7]||"Z";let d=parseInt(i[8],10);d=d>=0&&d<=23?d:0;let A=parseInt(i[9],10)||0;return A=A>=0&&A<=59?A:0,c==="-"?(n+=d,a+=A):c==="+"&&(n-=d,a-=A),new Date(Date.UTC(r,o,s,n,a,l))}}q7=new WeakMap,le(EV,q7);function Vki(t,{scale:e=1,rotation:i=0}){const{width:r,height:o}=t.attributes.style,s=[0,0,parseInt(r),parseInt(o)];return new Iw({viewBox:s,scale:e,rotation:i})}function kV(t){if(t.startsWith("#")){const e=parseInt(t.slice(1),16);return[(e&16711680)>>16,(e&65280)>>8,e&255]}return t.startsWith("rgb(")?t.slice(4,-1).split(",").map(e=>parseInt(e)):t.startsWith("rgba(")?t.slice(5,-1).split(",").map(e=>parseInt(e)).slice(0,3):(Ui(`Not a valid color format: "${t}"`),[0,0,0])}function qki(t){const e=document.createElement("span");e.style.visibility="hidden",document.body.append(e);for(const i of t.keys()){e.style.color=i;const r=window.getComputedStyle(e).color;t.set(i,kV(r))}e.remove()}function Bo(t){const{a:e,b:i,c:r,d:o,e:s,f:n}=t.getTransform();return[e,i,r,o,s,n]}function Hu(t){const{a:e,b:i,c:r,d:o,e:s,f:n}=t.getTransform().invertSelf();return[e,i,r,o,s,n]}function Kg(t,e,i=!1,r=!0){if(e instanceof Iw){const{pageWidth:o,pageHeight:s}=e.rawDims,{style:n}=t,a=ga.isCSSRoundSupported,l=`var(--scale-factor) * ${o}px`,c=`var(--scale-factor) * ${s}px`,d=a?`round(down, ${l}, var(--scale-round-x, 1px))`:`calc(${l})`,A=a?`round(down, ${c}, var(--scale-round-y, 1px))`:`calc(${c})`;!i||e.rotation%180===0?(n.width=d,n.height=A):(n.width=A,n.height=d)}r&&t.setAttribute("data-main-rotation",e.rotation)}class xV{constructor(){const e=window.devicePixelRatio||1;this.sx=e,this.sy=e}get scaled(){return this.sx!==1||this.sy!==1}get symmetric(){return this.sx===this.sy}}var Jg,Qv,cA,Mv,nM,_7,QV,Sve,dA,Dve,Pve,sM,Rve,MV;const aM=class OP{constructor(e){le(this,dA),le(this,Jg,null),le(this,Qv,null),le(this,cA),le(this,Mv,null),le(this,nM,null),te(this,cA,e),M(OP,_7)||te(OP,_7,Object.freeze({freetext:"pdfjs-editor-remove-freetext-button",highlight:"pdfjs-editor-remove-highlight-button",ink:"pdfjs-editor-remove-ink-button",stamp:"pdfjs-editor-remove-stamp-button"}))}render(){const e=te(this,Jg,document.createElement("div"));e.classList.add("editToolbar","hidden"),e.setAttribute("role","toolbar");const i=M(this,cA)._uiManager._signal;e.addEventListener("contextmenu",dc,{signal:i}),e.addEventListener("pointerdown",Z(OP,QV,Sve),{signal:i});const r=te(this,Mv,document.createElement("div"));r.className="buttons",e.append(r);const o=M(this,cA).toolbarPosition;if(o){const{style:s}=e,n=M(this,cA)._uiManager.direction==="ltr"?1-o[0]:o[0];s.insetInlineEnd=`${100*n}%`,s.top=`calc(${100*o[1]}% + var(--editor-toolbar-vert-offset))`}return Z(this,dA,Rve).call(this),e}get div(){return M(this,Jg)}hide(){var e;M(this,Jg).classList.add("hidden"),(e=M(this,Qv))==null||e.hideDropdown()}show(){var e;M(this,Jg).classList.remove("hidden"),(e=M(this,nM))==null||e.shown()}async addAltText(e){const i=await e.render();Z(this,dA,sM).call(this,i),M(this,Mv).prepend(i,M(this,dA,MV)),te(this,nM,e)}addColorPicker(e){te(this,Qv,e);const i=e.renderButton();Z(this,dA,sM).call(this,i),M(this,Mv).prepend(i,M(this,dA,MV))}remove(){var e;M(this,Jg).remove(),(e=M(this,Qv))==null||e.destroy(),te(this,Qv,null)}};Jg=new WeakMap,Qv=new WeakMap,cA=new WeakMap,Mv=new WeakMap,nM=new WeakMap,_7=new WeakMap,QV=new WeakSet,Sve=function(t){t.stopPropagation()},dA=new WeakSet,Dve=function(t){M(this,cA)._focusEventsAllowed=!1,t.preventDefault(),t.stopPropagation()},Pve=function(t){M(this,cA)._focusEventsAllowed=!0,t.preventDefault(),t.stopPropagation()},sM=function(t){const e=M(this,cA)._uiManager._signal;t.addEventListener("focusin",Z(this,dA,Dve).bind(this),{capture:!0,signal:e}),t.addEventListener("focusout",Z(this,dA,Pve).bind(this),{capture:!0,signal:e}),t.addEventListener("contextmenu",dc,{signal:e})},Rve=function(){const{editorType:t,_uiManager:e}=M(this,cA),i=document.createElement("button");i.className="delete",i.tabIndex=0,i.setAttribute("data-l10n-id",M(aM,_7)[t]),Z(this,dA,sM).call(this,i),i.addEventListener("click",r=>{e.delete()},{signal:e._signal}),M(this,Mv).append(i)},MV=function(){const t=document.createElement("div");return t.className="divider",t},le(aM,QV),le(aM,_7,null);let _ki=aM;var lM,Yg,Sv,z7,Fve,Lve,Tve;class zki{constructor(e){le(this,z7),le(this,lM,null),le(this,Yg,null),le(this,Sv),te(this,Sv,e)}show(e,i,r){const[o,s]=Z(this,z7,Lve).call(this,i,r),{style:n}=M(this,Yg)||te(this,Yg,Z(this,z7,Fve).call(this));e.append(M(this,Yg)),n.insetInlineEnd=`${100*o}%`,n.top=`calc(${100*s}% + var(--editor-toolbar-vert-offset))`}hide(){M(this,Yg).remove()}}lM=new WeakMap,Yg=new WeakMap,Sv=new WeakMap,z7=new WeakSet,Fve=function(){const t=te(this,Yg,document.createElement("div"));t.className="editToolbar",t.setAttribute("role","toolbar"),t.addEventListener("contextmenu",dc,{signal:M(this,Sv)._signal});const e=te(this,lM,document.createElement("div"));return e.className="buttons",t.append(e),Z(this,z7,Tve).call(this),t},Lve=function(t,e){let i=0,r=0;for(const o of t){const s=o.y+o.height;if(s<i)continue;const n=o.x+(e?o.width:0);if(s>i){r=n,i=s;continue}e?n>r&&(r=n):n<r&&(r=n)}return[e?1-r:r,i]},Tve=function(){const t=document.createElement("button");t.className="highlightButton",t.tabIndex=0,t.setAttribute("data-l10n-id","pdfjs-highlight-floating-button1");const e=document.createElement("span");t.append(e),e.className="visuallyHidden",e.setAttribute("data-l10n-id","pdfjs-highlight-floating-button-label");const i=M(this,Sv)._signal;t.addEventListener("contextmenu",dc,{signal:i}),t.addEventListener("click",()=>{M(this,Sv).highlightSelection("floating_button")},{signal:i}),M(this,lM).append(t)};function cM(t,e,i){for(const r of i)e.addEventListener(r,t[r].bind(t))}function Kki(t){return Math.round(Math.min(255,Math.max(1,255*t))).toString(16).padStart(2,"0")}var SV;class Jki{constructor(){le(this,SV,0)}get id(){return`${kki}${Ma(this,SV)._++}`}}SV=new WeakMap;var K7,dM,wn,J7,AM;const Nve=class{constructor(){le(this,J7),le(this,K7,Oki()),le(this,dM,0),le(this,wn,null)}static get _isSVGFittingCanvas(){const e='data:image/svg+xml;charset=UTF-8,<svg viewBox="0 0 1 1" width="1" height="1" xmlns="http://www.w3.org/2000/svg"><rect width="1" height="1" style="fill:red;"/></svg>',i=new OffscreenCanvas(1,3).getContext("2d",{willReadFrequently:!0}),r=new Image;r.src=e;const o=r.decode().then(()=>(i.drawImage(r,0,0,1,1,0,0,1,3),new Uint32Array(i.getImageData(0,0,1,1).data.buffer)[0]===0));return $i(this,"_isSVGFittingCanvas",o)}async getFromFile(e){const{lastModified:i,name:r,size:o,type:s}=e;return Z(this,J7,AM).call(this,`${i}_${r}_${o}_${s}`,e)}async getFromUrl(e){return Z(this,J7,AM).call(this,e,e)}async getFromBlob(e,i){const r=await i;return Z(this,J7,AM).call(this,e,r)}async getFromId(e){M(this,wn)||te(this,wn,new Map);const i=M(this,wn).get(e);if(!i)return null;if(i.bitmap)return i.refCounter+=1,i;if(i.file)return this.getFromFile(i.file);if(i.blobPromise){const{blobPromise:r}=i;return delete i.blobPromise,this.getFromBlob(i.id,r)}return this.getFromUrl(i.url)}getFromCanvas(e,i){M(this,wn)||te(this,wn,new Map);let r=M(this,wn).get(e);if(r!=null&&r.bitmap)return r.refCounter+=1,r;const o=new OffscreenCanvas(i.width,i.height);return o.getContext("2d").drawImage(i,0,0),r={bitmap:o.transferToImageBitmap(),id:`image_${M(this,K7)}_${Ma(this,dM)._++}`,refCounter:1,isSvg:!1},M(this,wn).set(e,r),M(this,wn).set(r.id,r),r}getSvgUrl(e){const i=M(this,wn).get(e);return i!=null&&i.isSvg?i.svgUrl:null}deleteId(e){var i;M(this,wn)||te(this,wn,new Map);const r=M(this,wn).get(e);if(!r||(r.refCounter-=1,r.refCounter!==0))return;const{bitmap:o}=r;if(!r.url&&!r.file){const s=new OffscreenCanvas(o.width,o.height);s.getContext("bitmaprenderer").transferFromImageBitmap(o),r.blobPromise=s.convertToBlob()}(i=o.close)==null||i.call(o),r.bitmap=null}isValidId(e){return e.startsWith(`image_${M(this,K7)}_`)}};K7=new WeakMap,dM=new WeakMap,wn=new WeakMap,J7=new WeakSet,AM=async function(t,e){M(this,wn)||te(this,wn,new Map);let i=M(this,wn).get(t);if(i===null)return null;if(i!=null&&i.bitmap)return i.refCounter+=1,i;try{i||(i={bitmap:null,id:`image_${M(this,K7)}_${Ma(this,dM)._++}`,refCounter:0,isSvg:!1});let r;if(typeof e=="string"?(i.url=e,r=await rM(e,"blob")):e instanceof File?r=i.file=e:e instanceof Blob&&(r=e),r.type==="image/svg+xml"){const o=Nve._isSVGFittingCanvas,s=new FileReader,n=new Image,a=new Promise((l,c)=>{n.onload=()=>{i.bitmap=n,i.isSvg=!0,l()},s.onload=async()=>{const d=i.svgUrl=s.result;n.src=await o?`${d}#svgView(preserveAspectRatio(none))`:d},n.onerror=s.onerror=c});s.readAsDataURL(r),await a}else i.bitmap=await createImageBitmap(r);i.refCounter=1}catch(r){console.error(r),i=null}return M(this,wn).set(t,i),i&&M(this,wn).set(i.id,i),i};let Yki=Nve;var ns,Wg,uM,bn;class Wki{constructor(e=128){le(this,ns,[]),le(this,Wg,!1),le(this,uM),le(this,bn,-1),te(this,uM,e)}add({cmd:e,undo:i,post:r,mustExec:o,type:s=NaN,overwriteIfSameType:n=!1,keepUndo:a=!1}){if(o&&e(),M(this,Wg))return;const l={cmd:e,undo:i,post:r,type:s};if(M(this,bn)===-1){M(this,ns).length>0&&(M(this,ns).length=0),te(this,bn,0),M(this,ns).push(l);return}if(n&&M(this,ns)[M(this,bn)].type===s){a&&(l.undo=M(this,ns)[M(this,bn)].undo),M(this,ns)[M(this,bn)]=l;return}const c=M(this,bn)+1;c===M(this,uM)?M(this,ns).splice(0,1):(te(this,bn,c),c<M(this,ns).length&&M(this,ns).splice(c)),M(this,ns).push(l)}undo(){if(M(this,bn)===-1)return;te(this,Wg,!0);const{undo:e,post:i}=M(this,ns)[M(this,bn)];e(),i?.(),te(this,Wg,!1),te(this,bn,M(this,bn)-1)}redo(){if(M(this,bn)<M(this,ns).length-1){te(this,bn,M(this,bn)+1),te(this,Wg,!0);const{cmd:e,post:i}=M(this,ns)[M(this,bn)];e(),i?.(),te(this,Wg,!1)}}hasSomethingToUndo(){return M(this,bn)!==-1}hasSomethingToRedo(){return M(this,bn)<M(this,ns).length-1}destroy(){te(this,ns,null)}}ns=new WeakMap,Wg=new WeakMap,uM=new WeakMap,bn=new WeakMap;var DV,Uve;class Y7{constructor(e){le(this,DV),this.buffer=[],this.callbacks=new Map,this.allKeys=new Set;const{isMac:i}=ga.platform;for(const[r,o,s={}]of e)for(const n of r){const a=n.startsWith("mac+");i&&a?(this.callbacks.set(n.slice(4),{callback:o,options:s}),this.allKeys.add(n.split("+").at(-1))):!i&&!a&&(this.callbacks.set(n,{callback:o,options:s}),this.allKeys.add(n.split("+").at(-1)))}}exec(e,i){if(!this.allKeys.has(i.key))return;const r=this.callbacks.get(Z(this,DV,Uve).call(this,i));if(!r)return;const{callback:o,options:{bubbles:s=!1,args:n=[],checker:a=null}}=r;a&&!a(e,i)||(o.bind(e,...n,i)(),s||(i.stopPropagation(),i.preventDefault()))}}DV=new WeakSet,Uve=function(t){t.altKey&&this.buffer.push("alt"),t.ctrlKey&&this.buffer.push("ctrl"),t.metaKey&&this.buffer.push("meta"),t.shiftKey&&this.buffer.push("shift"),this.buffer.push(t.key);const e=this.buffer.join("+");return this.buffer.length=0,e};const Ove=class $6e{get _colors(){const e=new Map([["CanvasText",null],["Canvas",null]]);return qki(e),$i(this,"_colors",e)}convert(e){const i=kV(e);if(!window.matchMedia("(forced-colors: active)").matches)return i;for(const[r,o]of this._colors)if(o.every((s,n)=>s===i[n]))return $6e._colorsMapping.get(r);return i}getHexCode(e){const i=this._colors.get(e);return i?ri.makeHexColor(...i):e}};ei(Ove,"_colorsMapping",new Map([["CanvasText",[0,0,0]],["Canvas",[255,255,255]]]));let Zki=Ove;var W7,Ac,jn,Fs,Z7,$1,Dv,AA,Zg,X7,Pv,ju,uA,Rv,hM,pM,$7,gM,Gu,Xg,ey,$g,hA,PV,ef,fM,tf,Fv,mM,vM,ss,Tr,e0,Lv,ty,CM,rf,Vu,t0,yM,ad,li,IM,RV,Hve,jve,wM,Gve,Vve,qve,FV,_ve,LV,TV,zve,fa,i0,Kve,Jve,NV,Yve,iy,UV;const OV=class nK{constructor(e,i,r,o,s,n,a,l,c,d,A){le(this,li),le(this,W7,new AbortController),le(this,Ac,null),le(this,jn,new Map),le(this,Fs,new Map),le(this,Z7,null),le(this,$1,null),le(this,Dv,null),le(this,AA,new Wki),le(this,Zg,null),le(this,X7,0),le(this,Pv,new Set),le(this,ju,null),le(this,uA,null),le(this,Rv,new Set),le(this,hM,!1),le(this,pM,!1),le(this,$7,!1),le(this,gM,null),le(this,Gu,null),le(this,Xg,null),le(this,ey,null),le(this,$g,!1),le(this,hA,null),le(this,PV,new Jki),le(this,ef,!1),le(this,fM,!1),le(this,tf,null),le(this,Fv,null),le(this,mM,null),le(this,vM,null),le(this,ss,Fi.NONE),le(this,Tr,new Set),le(this,e0,null),le(this,Lv,null),le(this,ty,null),le(this,CM,{isEditing:!1,isEmpty:!0,hasSomethingToUndo:!1,hasSomethingToRedo:!1,hasSelectedEditor:!1,hasSelectedText:!1}),le(this,rf,[0,0]),le(this,Vu,null),le(this,t0,null),le(this,yM,null),le(this,ad,null);const u=this._signal=M(this,W7).signal;te(this,t0,e),te(this,yM,i),te(this,Z7,r),this._eventBus=o,o._on("editingaction",this.onEditingAction.bind(this),{signal:u}),o._on("pagechanging",this.onPageChanging.bind(this),{signal:u}),o._on("scalechanging",this.onScaleChanging.bind(this),{signal:u}),o._on("rotationchanging",this.onRotationChanging.bind(this),{signal:u}),o._on("setpreference",this.onSetPreference.bind(this),{signal:u}),o._on("switchannotationeditorparams",h=>this.updateParams(h.type,h.value),{signal:u}),Z(this,li,Gve).call(this),Z(this,li,zve).call(this),Z(this,li,FV).call(this),te(this,$1,s.annotationStorage),te(this,gM,s.filterFactory),te(this,Lv,n),te(this,ey,a||null),te(this,hM,l),te(this,pM,c),te(this,$7,d),te(this,vM,A||null),this.viewParameters={realScale:xv.PDF_TO_CSS_UNITS,rotation:0},this.isShiftKeyDown=!1}static get _keyboardManager(){const e=nK.prototype,i=n=>M(n,t0).contains(document.activeElement)&&document.activeElement.tagName!=="BUTTON"&&n.hasSomethingToControl(),r=(n,{target:a})=>{if(a instanceof HTMLInputElement){const{type:l}=a;return l!=="text"&&l!=="number"}return!0},o=this.TRANSLATE_SMALL,s=this.TRANSLATE_BIG;return $i(this,"_keyboardManager",new Y7([[["ctrl+a","mac+meta+a"],e.selectAll,{checker:r}],[["ctrl+z","mac+meta+z"],e.undo,{checker:r}],[["ctrl+y","ctrl+shift+z","mac+meta+shift+z","ctrl+shift+Z","mac+meta+shift+Z"],e.redo,{checker:r}],[["Backspace","alt+Backspace","ctrl+Backspace","shift+Backspace","mac+Backspace","mac+alt+Backspace","mac+ctrl+Backspace","Delete","ctrl+Delete","shift+Delete","mac+Delete"],e.delete,{checker:r}],[["Enter","mac+Enter"],e.addNewEditorFromKeyboard,{checker:(n,{target:a})=>!(a instanceof HTMLButtonElement)&&M(n,t0).contains(a)&&!n.isEnterHandled}],[[" ","mac+ "],e.addNewEditorFromKeyboard,{checker:(n,{target:a})=>!(a instanceof HTMLButtonElement)&&M(n,t0).contains(document.activeElement)}],[["Escape","mac+Escape"],e.unselectAll],[["ArrowLeft","mac+ArrowLeft"],e.translateSelectedEditors,{args:[-o,0],checker:i}],[["ctrl+ArrowLeft","mac+shift+ArrowLeft"],e.translateSelectedEditors,{args:[-s,0],checker:i}],[["ArrowRight","mac+ArrowRight"],e.translateSelectedEditors,{args:[o,0],checker:i}],[["ctrl+ArrowRight","mac+shift+ArrowRight"],e.translateSelectedEditors,{args:[s,0],checker:i}],[["ArrowUp","mac+ArrowUp"],e.translateSelectedEditors,{args:[0,-o],checker:i}],[["ctrl+ArrowUp","mac+shift+ArrowUp"],e.translateSelectedEditors,{args:[0,-s],checker:i}],[["ArrowDown","mac+ArrowDown"],e.translateSelectedEditors,{args:[0,o],checker:i}],[["ctrl+ArrowDown","mac+shift+ArrowDown"],e.translateSelectedEditors,{args:[0,s],checker:i}]]))}destroy(){var e,i,r,o;(e=M(this,ad))==null||e.resolve(),te(this,ad,null),(i=M(this,W7))==null||i.abort(),te(this,W7,null),this._signal=null;for(const s of M(this,Fs).values())s.destroy();M(this,Fs).clear(),M(this,jn).clear(),M(this,Rv).clear(),te(this,Ac,null),M(this,Tr).clear(),M(this,AA).destroy(),(r=M(this,Z7))==null||r.destroy(),(o=M(this,hA))==null||o.hide(),te(this,hA,null),M(this,Gu)&&(clearTimeout(M(this,Gu)),te(this,Gu,null)),M(this,Vu)&&(clearTimeout(M(this,Vu)),te(this,Vu,null))}combinedSignal(e){return AbortSignal.any([this._signal,e.signal])}get mlManager(){return M(this,vM)}get useNewAltTextFlow(){return M(this,pM)}get useNewAltTextWhenAddingImage(){return M(this,$7)}get hcmFilter(){return $i(this,"hcmFilter",M(this,Lv)?M(this,gM).addHCMFilter(M(this,Lv).foreground,M(this,Lv).background):"none")}get direction(){return $i(this,"direction",getComputedStyle(M(this,t0)).direction)}get highlightColors(){return $i(this,"highlightColors",M(this,ey)?new Map(M(this,ey).split(",").map(e=>e.split("=").map(i=>i.trim()))):null)}get highlightColorNames(){return $i(this,"highlightColorNames",this.highlightColors?new Map(Array.from(this.highlightColors,e=>e.reverse())):null)}setMainHighlightColorPicker(e){te(this,mM,e)}editAltText(e,i=!1){var r;(r=M(this,Z7))==null||r.editAltText(this,e,i)}switchToMode(e,i){this._eventBus.on("annotationeditormodechanged",i,{once:!0,signal:this._signal}),this._eventBus.dispatch("showannotationeditorui",{source:this,mode:e})}setPreference(e,i){this._eventBus.dispatch("setpreference",{source:this,name:e,value:i})}onSetPreference({name:e,value:i}){switch(e){case"enableNewAltTextWhenAddingImage":te(this,$7,i);break}}onPageChanging({pageNumber:e}){te(this,X7,e-1)}focusMainContainer(){M(this,t0).focus()}findParent(e,i){for(const r of M(this,Fs).values()){const{x:o,y:s,width:n,height:a}=r.div.getBoundingClientRect();if(e>=o&&e<=o+n&&i>=s&&i<=s+a)return r}return null}disableUserSelect(e=!1){M(this,yM).classList.toggle("noUserSelect",e)}addShouldRescale(e){M(this,Rv).add(e)}removeShouldRescale(e){M(this,Rv).delete(e)}onScaleChanging({scale:e}){this.commitOrRemove(),this.viewParameters.realScale=e*xv.PDF_TO_CSS_UNITS;for(const i of M(this,Rv))i.onScaleChanging()}onRotationChanging({pagesRotation:e}){this.commitOrRemove(),this.viewParameters.rotation=e}highlightSelection(e=""){const i=document.getSelection();if(!i||i.isCollapsed)return;const{anchorNode:r,anchorOffset:o,focusNode:s,focusOffset:n}=i,a=i.toString(),l=Z(this,li,IM).call(this,i).closest(".textLayer"),c=this.getSelectionBoxes(l);if(!c)return;i.empty();const d=Z(this,li,RV).call(this,l),A=M(this,ss)===Fi.NONE,u=()=>{d?.createAndAddNewEditor({x:0,y:0},!1,{methodOfCreation:e,boxes:c,anchorNode:r,anchorOffset:o,focusNode:s,focusOffset:n,text:a}),A&&this.showAllEditors("highlight",!0,!0)};if(A){this.switchToMode(Fi.HIGHLIGHT,u);return}u()}addToAnnotationStorage(e){!e.isEmpty()&&M(this,$1)&&!M(this,$1).has(e.id)&&M(this,$1).setValue(e.id,e)}blur(){if(this.isShiftKeyDown=!1,M(this,$g)&&(te(this,$g,!1),Z(this,li,wM).call(this,"main_toolbar")),!this.hasSelection)return;const{activeElement:e}=document;for(const i of M(this,Tr))if(i.div.contains(e)){te(this,Fv,[i,e]),i._focusEventsAllowed=!1;break}}focus(){if(!M(this,Fv))return;const[e,i]=M(this,Fv);te(this,Fv,null),i.addEventListener("focusin",()=>{e._focusEventsAllowed=!0},{once:!0,signal:this._signal}),i.focus()}addEditListeners(){Z(this,li,FV).call(this),Z(this,li,LV).call(this)}removeEditListeners(){Z(this,li,_ve).call(this),Z(this,li,TV).call(this)}dragOver(e){for(const{type:i}of e.dataTransfer.items)for(const r of M(this,uA))if(r.isHandlingMimeForPasting(i)){e.dataTransfer.dropEffect="copy",e.preventDefault();return}}drop(e){for(const i of e.dataTransfer.items)for(const r of M(this,uA))if(r.isHandlingMimeForPasting(i.type)){r.paste(i,this.currentLayer),e.preventDefault();return}}copy(e){var i;if(e.preventDefault(),(i=M(this,Ac))==null||i.commitOrRemove(),!this.hasSelection)return;const r=[];for(const o of M(this,Tr)){const s=o.serialize(!0);s&&r.push(s)}r.length!==0&&e.clipboardData.setData("application/pdfjs",JSON.stringify(r))}cut(e){this.copy(e),this.delete()}async paste(e){e.preventDefault();const{clipboardData:i}=e;for(const s of i.items)for(const n of M(this,uA))if(n.isHandlingMimeForPasting(s.type)){n.paste(s,this.currentLayer);return}let r=i.getData("application/pdfjs");if(!r)return;try{r=JSON.parse(r)}catch(s){Ui(`paste: "${s.message}".`);return}if(!Array.isArray(r))return;this.unselectAll();const o=this.currentLayer;try{const s=[];for(const l of r){const c=await o.deserialize(l);if(!c)return;s.push(c)}const n=()=>{for(const l of s)Z(this,li,NV).call(this,l);Z(this,li,UV).call(this,s)},a=()=>{for(const l of s)l.remove()};this.addCommands({cmd:n,undo:a,mustExec:!0})}catch(s){Ui(`paste: "${s.message}".`)}}keydown(e){!this.isShiftKeyDown&&e.key==="Shift"&&(this.isShiftKeyDown=!0),M(this,ss)!==Fi.NONE&&!this.isEditorHandlingKeyboard&&nK._keyboardManager.exec(this,e)}keyup(e){this.isShiftKeyDown&&e.key==="Shift"&&(this.isShiftKeyDown=!1,M(this,$g)&&(te(this,$g,!1),Z(this,li,wM).call(this,"main_toolbar")))}onEditingAction({name:e}){switch(e){case"undo":case"redo":case"delete":case"selectAll":this[e]();break;case"highlightSelection":this.highlightSelection("context_menu");break}}setEditingState(e){e?(Z(this,li,Vve).call(this),Z(this,li,LV).call(this),Z(this,li,fa).call(this,{isEditing:M(this,ss)!==Fi.NONE,isEmpty:Z(this,li,iy).call(this),hasSomethingToUndo:M(this,AA).hasSomethingToUndo(),hasSomethingToRedo:M(this,AA).hasSomethingToRedo(),hasSelectedEditor:!1})):(Z(this,li,qve).call(this),Z(this,li,TV).call(this),Z(this,li,fa).call(this,{isEditing:!1}),this.disableUserSelect(!1))}registerEditorTypes(e){if(!M(this,uA)){te(this,uA,e);for(const i of M(this,uA))Z(this,li,i0).call(this,i.defaultPropertiesToUpdate)}}getId(){return M(this,PV).id}get currentLayer(){return M(this,Fs).get(M(this,X7))}getLayer(e){return M(this,Fs).get(e)}get currentPageIndex(){return M(this,X7)}addLayer(e){M(this,Fs).set(e.pageIndex,e),M(this,ef)?e.enable():e.disable()}removeLayer(e){M(this,Fs).delete(e.pageIndex)}async updateMode(e,i=null,r=!1){if(M(this,ss)!==e&&!(M(this,ad)&&(await M(this,ad).promise,!M(this,ad)))){if(te(this,ad,Promise.withResolvers()),te(this,ss,e),e===Fi.NONE){this.setEditingState(!1),Z(this,li,Jve).call(this),M(this,ad).resolve();return}this.setEditingState(!0),await Z(this,li,Kve).call(this),this.unselectAll();for(const o of M(this,Fs).values())o.updateMode(e);if(!i){r&&this.addNewEditorFromKeyboard(),M(this,ad).resolve();return}for(const o of M(this,jn).values())o.annotationElementId===i?(this.setSelected(o),o.enterInEditMode()):o.unselect();M(this,ad).resolve()}}addNewEditorFromKeyboard(){this.currentLayer.canCreateNewEmptyEditor()&&this.currentLayer.addNewEditor()}updateToolbar(e){e!==M(this,ss)&&this._eventBus.dispatch("switchannotationeditormode",{source:this,mode:e})}updateParams(e,i){var r;if(M(this,uA)){switch(e){case Bi.CREATE:this.currentLayer.addNewEditor();return;case Bi.HIGHLIGHT_DEFAULT_COLOR:(r=M(this,mM))==null||r.updateColor(i);break;case Bi.HIGHLIGHT_SHOW_ALL:this._eventBus.dispatch("reporttelemetry",{source:this,details:{type:"editing",data:{type:"highlight",action:"toggle_visibility"}}}),(M(this,ty)||te(this,ty,new Map)).set(e,i),this.showAllEditors("highlight",i);break}for(const o of M(this,Tr))o.updateParams(e,i);for(const o of M(this,uA))o.updateDefaultParams(e,i)}}showAllEditors(e,i,r=!1){var o;for(const s of M(this,jn).values())s.editorType===e&&s.show(i);(((o=M(this,ty))==null?void 0:o.get(Bi.HIGHLIGHT_SHOW_ALL))??!0)!==i&&Z(this,li,i0).call(this,[[Bi.HIGHLIGHT_SHOW_ALL,i]])}enableWaiting(e=!1){if(M(this,fM)!==e){te(this,fM,e);for(const i of M(this,Fs).values())e?i.disableClick():i.enableClick(),i.div.classList.toggle("waiting",e)}}getEditors(e){const i=[];for(const r of M(this,jn).values())r.pageIndex===e&&i.push(r);return i}getEditor(e){return M(this,jn).get(e)}addEditor(e){M(this,jn).set(e.id,e)}removeEditor(e){var i;e.div.contains(document.activeElement)&&(M(this,Gu)&&clearTimeout(M(this,Gu)),te(this,Gu,setTimeout(()=>{this.focusMainContainer(),te(this,Gu,null)},0))),M(this,jn).delete(e.id),this.unselect(e),(!e.annotationElementId||!M(this,Pv).has(e.annotationElementId))&&((i=M(this,$1))==null||i.remove(e.id))}addDeletedAnnotationElement(e){M(this,Pv).add(e.annotationElementId),this.addChangedExistingAnnotation(e),e.deleted=!0}isDeletedAnnotationElement(e){return M(this,Pv).has(e)}removeDeletedAnnotationElement(e){M(this,Pv).delete(e.annotationElementId),this.removeChangedExistingAnnotation(e),e.deleted=!1}setActiveEditor(e){M(this,Ac)!==e&&(te(this,Ac,e),e&&Z(this,li,i0).call(this,e.propertiesToUpdate))}updateUI(e){M(this,li,Yve)===e&&Z(this,li,i0).call(this,e.propertiesToUpdate)}toggleSelected(e){if(M(this,Tr).has(e)){M(this,Tr).delete(e),e.unselect(),Z(this,li,fa).call(this,{hasSelectedEditor:this.hasSelection});return}M(this,Tr).add(e),e.select(),Z(this,li,i0).call(this,e.propertiesToUpdate),Z(this,li,fa).call(this,{hasSelectedEditor:!0})}setSelected(e){for(const i of M(this,Tr))i!==e&&i.unselect();M(this,Tr).clear(),M(this,Tr).add(e),e.select(),Z(this,li,i0).call(this,e.propertiesToUpdate),Z(this,li,fa).call(this,{hasSelectedEditor:!0})}isSelected(e){return M(this,Tr).has(e)}get firstSelectedEditor(){return M(this,Tr).values().next().value}unselect(e){e.unselect(),M(this,Tr).delete(e),Z(this,li,fa).call(this,{hasSelectedEditor:this.hasSelection})}get hasSelection(){return M(this,Tr).size!==0}get isEnterHandled(){return M(this,Tr).size===1&&this.firstSelectedEditor.isEnterHandled}undo(){M(this,AA).undo(),Z(this,li,fa).call(this,{hasSomethingToUndo:M(this,AA).hasSomethingToUndo(),hasSomethingToRedo:!0,isEmpty:Z(this,li,iy).call(this)})}redo(){M(this,AA).redo(),Z(this,li,fa).call(this,{hasSomethingToUndo:!0,hasSomethingToRedo:M(this,AA).hasSomethingToRedo(),isEmpty:Z(this,li,iy).call(this)})}addCommands(e){M(this,AA).add(e),Z(this,li,fa).call(this,{hasSomethingToUndo:!0,hasSomethingToRedo:!1,isEmpty:Z(this,li,iy).call(this)})}delete(){if(this.commitOrRemove(),!this.hasSelection)return;const e=[...M(this,Tr)],i=()=>{for(const o of e)o.remove()},r=()=>{for(const o of e)Z(this,li,NV).call(this,o)};this.addCommands({cmd:i,undo:r,mustExec:!0})}commitOrRemove(){var e;(e=M(this,Ac))==null||e.commitOrRemove()}hasSomethingToControl(){return M(this,Ac)||this.hasSelection}selectAll(){for(const e of M(this,Tr))e.commit();Z(this,li,UV).call(this,M(this,jn).values())}unselectAll(){if(!(M(this,Ac)&&(M(this,Ac).commitOrRemove(),M(this,ss)!==Fi.NONE))&&this.hasSelection){for(const e of M(this,Tr))e.unselect();M(this,Tr).clear(),Z(this,li,fa).call(this,{hasSelectedEditor:!1})}}translateSelectedEditors(e,i,r=!1){if(r||this.commitOrRemove(),!this.hasSelection)return;M(this,rf)[0]+=e,M(this,rf)[1]+=i;const[o,s]=M(this,rf),n=[...M(this,Tr)];M(this,Vu)&&clearTimeout(M(this,Vu)),te(this,Vu,setTimeout(()=>{te(this,Vu,null),M(this,rf)[0]=M(this,rf)[1]=0,this.addCommands({cmd:()=>{for(const l of n)M(this,jn).has(l.id)&&l.translateInPage(o,s)},undo:()=>{for(const l of n)M(this,jn).has(l.id)&&l.translateInPage(-o,-s)},mustExec:!1})},1e3));for(const l of n)l.translateInPage(e,i)}setUpDragSession(){if(this.hasSelection){this.disableUserSelect(!0),te(this,ju,new Map);for(const e of M(this,Tr))M(this,ju).set(e,{savedX:e.x,savedY:e.y,savedPageIndex:e.pageIndex,newX:0,newY:0,newPageIndex:-1})}}endDragSession(){if(!M(this,ju))return!1;this.disableUserSelect(!1);const e=M(this,ju);te(this,ju,null);let i=!1;for(const[{x:o,y:s,pageIndex:n},a]of e)a.newX=o,a.newY=s,a.newPageIndex=n,i||(i=o!==a.savedX||s!==a.savedY||n!==a.savedPageIndex);if(!i)return!1;const r=(o,s,n,a)=>{if(M(this,jn).has(o.id)){const l=M(this,Fs).get(a);l?o._setParentAndPosition(l,s,n):(o.pageIndex=a,o.x=s,o.y=n)}};return this.addCommands({cmd:()=>{for(const[o,{newX:s,newY:n,newPageIndex:a}]of e)r(o,s,n,a)},undo:()=>{for(const[o,{savedX:s,savedY:n,savedPageIndex:a}]of e)r(o,s,n,a)},mustExec:!0}),!0}dragSelectedEditors(e,i){if(M(this,ju))for(const r of M(this,ju).keys())r.drag(e,i)}rebuild(e){if(e.parent===null){const i=this.getLayer(e.pageIndex);i?(i.changeParent(e),i.addOrRebuild(e)):(this.addEditor(e),this.addToAnnotationStorage(e),e.rebuild())}else e.parent.addOrRebuild(e)}get isEditorHandlingKeyboard(){var e;return((e=this.getActive())==null?void 0:e.shouldGetKeyboardEvents())||M(this,Tr).size===1&&this.firstSelectedEditor.shouldGetKeyboardEvents()}isActive(e){return M(this,Ac)===e}getActive(){return M(this,Ac)}getMode(){return M(this,ss)}get imageManager(){return $i(this,"imageManager",new Yki)}getSelectionBoxes(e){if(!e)return null;const i=document.getSelection();for(let c=0,d=i.rangeCount;c<d;c++)if(!e.contains(i.getRangeAt(c).commonAncestorContainer))return null;const{x:r,y:o,width:s,height:n}=e.getBoundingClientRect();let a;switch(e.getAttribute("data-main-rotation")){case"90":a=(c,d,A,u)=>({x:(d-o)/n,y:1-(c+A-r)/s,width:u/n,height:A/s});break;case"180":a=(c,d,A,u)=>({x:1-(c+A-r)/s,y:1-(d+u-o)/n,width:A/s,height:u/n});break;case"270":a=(c,d,A,u)=>({x:1-(d+u-o)/n,y:(c-r)/s,width:u/n,height:A/s});break;default:a=(c,d,A,u)=>({x:(c-r)/s,y:(d-o)/n,width:A/s,height:u/n});break}const l=[];for(let c=0,d=i.rangeCount;c<d;c++){const A=i.getRangeAt(c);if(!A.collapsed)for(const{x:u,y:h,width:g,height:p}of A.getClientRects())g===0||p===0||l.push(a(u,h,g,p))}return l.length===0?null:l}addChangedExistingAnnotation({annotationElementId:e,id:i}){(M(this,Dv)||te(this,Dv,new Map)).set(e,i)}removeChangedExistingAnnotation({annotationElementId:e}){var i;(i=M(this,Dv))==null||i.delete(e)}renderAnnotationElement(e){var i;const r=(i=M(this,Dv))==null?void 0:i.get(e.data.id);if(!r)return;const o=M(this,$1).getRawValue(r);o&&(M(this,ss)===Fi.NONE&&!o.hasBeenModified||o.renderAnnotationElement(e))}};W7=new WeakMap,Ac=new WeakMap,jn=new WeakMap,Fs=new WeakMap,Z7=new WeakMap,$1=new WeakMap,Dv=new WeakMap,AA=new WeakMap,Zg=new WeakMap,X7=new WeakMap,Pv=new WeakMap,ju=new WeakMap,uA=new WeakMap,Rv=new WeakMap,hM=new WeakMap,pM=new WeakMap,$7=new WeakMap,gM=new WeakMap,Gu=new WeakMap,Xg=new WeakMap,ey=new WeakMap,$g=new WeakMap,hA=new WeakMap,PV=new WeakMap,ef=new WeakMap,fM=new WeakMap,tf=new WeakMap,Fv=new WeakMap,mM=new WeakMap,vM=new WeakMap,ss=new WeakMap,Tr=new WeakMap,e0=new WeakMap,Lv=new WeakMap,ty=new WeakMap,CM=new WeakMap,rf=new WeakMap,Vu=new WeakMap,t0=new WeakMap,yM=new WeakMap,ad=new WeakMap,li=new WeakSet,IM=function({anchorNode:t}){return t.nodeType===Node.TEXT_NODE?t.parentElement:t},RV=function(t){const{currentLayer:e}=this;if(e.hasTextLayer(t))return e;for(const i of M(this,Fs).values())if(i.hasTextLayer(t))return i;return null},Hve=function(){const t=document.getSelection();if(!t||t.isCollapsed)return;const e=Z(this,li,IM).call(this,t).closest(".textLayer"),i=this.getSelectionBoxes(e);i&&(M(this,hA)||te(this,hA,new zki(this)),M(this,hA).show(e,i,this.direction==="ltr"))},jve=function(){var t,e,i;const r=document.getSelection();if(!r||r.isCollapsed){M(this,e0)&&((t=M(this,hA))==null||t.hide(),te(this,e0,null),Z(this,li,fa).call(this,{hasSelectedText:!1}));return}const{anchorNode:o}=r;if(o===M(this,e0))return;const s=Z(this,li,IM).call(this,r).closest(".textLayer");if(!s){M(this,e0)&&((e=M(this,hA))==null||e.hide(),te(this,e0,null),Z(this,li,fa).call(this,{hasSelectedText:!1}));return}if((i=M(this,hA))==null||i.hide(),te(this,e0,o),Z(this,li,fa).call(this,{hasSelectedText:!0}),!(M(this,ss)!==Fi.HIGHLIGHT&&M(this,ss)!==Fi.NONE)&&(M(this,ss)===Fi.HIGHLIGHT&&this.showAllEditors("highlight",!0,!0),te(this,$g,this.isShiftKeyDown),!this.isShiftKeyDown)){const n=M(this,ss)===Fi.HIGHLIGHT?Z(this,li,RV).call(this,s):null;n?.toggleDrawing();const a=new AbortController,l=this.combinedSignal(a),c=d=>{d.type==="pointerup"&&d.button!==0||(a.abort(),n?.toggleDrawing(!0),d.type==="pointerup"&&Z(this,li,wM).call(this,"main_toolbar"))};window.addEventListener("pointerup",c,{signal:l}),window.addEventListener("blur",c,{signal:l})}},wM=function(t=""){M(this,ss)===Fi.HIGHLIGHT?this.highlightSelection(t):M(this,hM)&&Z(this,li,Hve).call(this)},Gve=function(){document.addEventListener("selectionchange",Z(this,li,jve).bind(this),{signal:this._signal})},Vve=function(){if(M(this,Xg))return;te(this,Xg,new AbortController);const t=this.combinedSignal(M(this,Xg));window.addEventListener("focus",this.focus.bind(this),{signal:t}),window.addEventListener("blur",this.blur.bind(this),{signal:t})},qve=function(){var t;(t=M(this,Xg))==null||t.abort(),te(this,Xg,null)},FV=function(){if(M(this,tf))return;te(this,tf,new AbortController);const t=this.combinedSignal(M(this,tf));window.addEventListener("keydown",this.keydown.bind(this),{signal:t}),window.addEventListener("keyup",this.keyup.bind(this),{signal:t})},_ve=function(){var t;(t=M(this,tf))==null||t.abort(),te(this,tf,null)},LV=function(){if(M(this,Zg))return;te(this,Zg,new AbortController);const t=this.combinedSignal(M(this,Zg));document.addEventListener("copy",this.copy.bind(this),{signal:t}),document.addEventListener("cut",this.cut.bind(this),{signal:t}),document.addEventListener("paste",this.paste.bind(this),{signal:t})},TV=function(){var t;(t=M(this,Zg))==null||t.abort(),te(this,Zg,null)},zve=function(){const t=this._signal;document.addEventListener("dragover",this.dragOver.bind(this),{signal:t}),document.addEventListener("drop",this.drop.bind(this),{signal:t})},fa=function(t){Object.entries(t).some(([e,i])=>M(this,CM)[e]!==i)&&(this._eventBus.dispatch("annotationeditorstateschanged",{source:this,details:Object.assign(M(this,CM),t)}),M(this,ss)===Fi.HIGHLIGHT&&t.hasSelectedEditor===!1&&Z(this,li,i0).call(this,[[Bi.HIGHLIGHT_FREE,!0]]))},i0=function(t){this._eventBus.dispatch("annotationeditorparamschanged",{source:this,details:t})},Kve=async function(){if(!M(this,ef)){te(this,ef,!0);const t=[];for(const e of M(this,Fs).values())t.push(e.enable());await Promise.all(t);for(const e of M(this,jn).values())e.enable()}},Jve=function(){if(this.unselectAll(),M(this,ef)){te(this,ef,!1);for(const t of M(this,Fs).values())t.disable();for(const t of M(this,jn).values())t.disable()}},NV=function(t){const e=M(this,Fs).get(t.pageIndex);e?e.addOrRebuild(t):(this.addEditor(t),this.addToAnnotationStorage(t))},Yve=function(){let t=null;for(t of M(this,Tr));return t},iy=function(){if(M(this,jn).size===0)return!0;if(M(this,jn).size===1)for(const t of M(this,jn).values())return t.isEmpty();return!1},UV=function(t){for(const e of M(this,Tr))e.unselect();M(this,Tr).clear();for(const e of t)e.isEmpty()||(M(this,Tr).add(e),e.select());Z(this,li,fa).call(this,{hasSelectedEditor:this.hasSelection})},ei(OV,"TRANSLATE_SMALL",1),ei(OV,"TRANSLATE_BIG",10);let ry=OV;var as,qu,pA,oy,_u,uc,ny,zu,Sl,r0,Tv,Ku,o0,Ju,sy,bM;const ay=class X0{constructor(e){le(this,Ju),le(this,as,null),le(this,qu,!1),le(this,pA,null),le(this,oy,null),le(this,_u,null),le(this,uc,null),le(this,ny,!1),le(this,zu,null),le(this,Sl,null),le(this,r0,null),le(this,Tv,null),le(this,Ku,!1),te(this,Sl,e),te(this,Ku,e._uiManager.useNewAltTextFlow),M(X0,o0)||te(X0,o0,Object.freeze({added:"pdfjs-editor-new-alt-text-added-button","added-label":"pdfjs-editor-new-alt-text-added-button-label",missing:"pdfjs-editor-new-alt-text-missing-button","missing-label":"pdfjs-editor-new-alt-text-missing-button-label",review:"pdfjs-editor-new-alt-text-to-review-button","review-label":"pdfjs-editor-new-alt-text-to-review-button-label"}))}static initialize(e){X0._l10n??(X0._l10n=e)}async render(){const e=te(this,pA,document.createElement("button"));e.className="altText",e.tabIndex="0";const i=te(this,oy,document.createElement("span"));e.append(i),M(this,Ku)?(e.classList.add("new"),e.setAttribute("data-l10n-id",M(X0,o0).missing),i.setAttribute("data-l10n-id",M(X0,o0)["missing-label"])):(e.setAttribute("data-l10n-id","pdfjs-editor-alt-text-button"),i.setAttribute("data-l10n-id","pdfjs-editor-alt-text-button-label"));const r=M(this,Sl)._uiManager._signal;e.addEventListener("contextmenu",dc,{signal:r}),e.addEventListener("pointerdown",s=>s.stopPropagation(),{signal:r});const o=s=>{s.preventDefault(),M(this,Sl)._uiManager.editAltText(M(this,Sl)),M(this,Ku)&&M(this,Sl)._reportTelemetry({action:"pdfjs.image.alt_text.image_status_label_clicked",data:{label:M(this,Ju,sy)}})};return e.addEventListener("click",o,{capture:!0,signal:r}),e.addEventListener("keydown",s=>{s.target===e&&s.key==="Enter"&&(te(this,ny,!0),o(s))},{signal:r}),await Z(this,Ju,bM).call(this),e}finish(){M(this,pA)&&(M(this,pA).focus({focusVisible:M(this,ny)}),te(this,ny,!1))}isEmpty(){return M(this,Ku)?M(this,as)===null:!M(this,as)&&!M(this,qu)}hasData(){return M(this,Ku)?M(this,as)!==null||!!M(this,r0):this.isEmpty()}get guessedText(){return M(this,r0)}async setGuessedText(e){M(this,as)===null&&(te(this,r0,e),te(this,Tv,await X0._l10n.get("pdfjs-editor-new-alt-text-generated-alt-text-with-disclaimer",{generatedAltText:e})),Z(this,Ju,bM).call(this))}toggleAltTextBadge(e=!1){var i;if(!M(this,Ku)||M(this,as)){(i=M(this,zu))==null||i.remove(),te(this,zu,null);return}if(!M(this,zu)){const r=te(this,zu,document.createElement("div"));r.className="noAltTextBadge",M(this,Sl).div.append(r)}M(this,zu).classList.toggle("hidden",!e)}serialize(e){let i=M(this,as);return!e&&M(this,r0)===i&&(i=M(this,Tv)),{altText:i,decorative:M(this,qu),guessedText:M(this,r0),textWithDisclaimer:M(this,Tv)}}get data(){return{altText:M(this,as),decorative:M(this,qu)}}set data({altText:e,decorative:i,guessedText:r,textWithDisclaimer:o,cancel:s=!1}){r&&(te(this,r0,r),te(this,Tv,o)),!(M(this,as)===e&&M(this,qu)===i)&&(s||(te(this,as,e),te(this,qu,i)),Z(this,Ju,bM).call(this))}toggle(e=!1){M(this,pA)&&(!e&&M(this,uc)&&(clearTimeout(M(this,uc)),te(this,uc,null)),M(this,pA).disabled=!e)}shown(){M(this,Sl)._reportTelemetry({action:"pdfjs.image.alt_text.image_status_label_displayed",data:{label:M(this,Ju,sy)}})}destroy(){var e,i;(e=M(this,pA))==null||e.remove(),te(this,pA,null),te(this,oy,null),te(this,_u,null),(i=M(this,zu))==null||i.remove(),te(this,zu,null)}};as=new WeakMap,qu=new WeakMap,pA=new WeakMap,oy=new WeakMap,_u=new WeakMap,uc=new WeakMap,ny=new WeakMap,zu=new WeakMap,Sl=new WeakMap,r0=new WeakMap,Tv=new WeakMap,Ku=new WeakMap,o0=new WeakMap,Ju=new WeakSet,sy=function(){return M(this,as)&&"added"||M(this,as)===null&&this.guessedText&&"review"||"missing"},bM=async function(){var t,e,i;const r=M(this,pA);if(!r)return;if(M(this,Ku)){if(r.classList.toggle("done",!!M(this,as)),r.setAttribute("data-l10n-id",M(ay,o0)[M(this,Ju,sy)]),(t=M(this,oy))==null||t.setAttribute("data-l10n-id",M(ay,o0)[`${M(this,Ju,sy)}-label`]),!M(this,as)){(e=M(this,_u))==null||e.remove();return}}else{if(!M(this,as)&&!M(this,qu)){r.classList.remove("done"),(i=M(this,_u))==null||i.remove();return}r.classList.add("done"),r.setAttribute("data-l10n-id","pdfjs-editor-alt-text-edit-button")}let o=M(this,_u);if(!o){te(this,_u,o=document.createElement("span")),o.className="tooltip",o.setAttribute("role","tooltip"),o.id=`alt-text-tooltip-${M(this,Sl).id}`;const n=100,a=M(this,Sl)._uiManager._signal;a.addEventListener("abort",()=>{clearTimeout(M(this,uc)),te(this,uc,null)},{once:!0}),r.addEventListener("mouseenter",()=>{te(this,uc,setTimeout(()=>{te(this,uc,null),M(this,_u).classList.add("show"),M(this,Sl)._reportTelemetry({action:"alt_text_tooltip"})},n))},{signal:a}),r.addEventListener("mouseleave",()=>{var l;M(this,uc)&&(clearTimeout(M(this,uc)),te(this,uc,null)),(l=M(this,_u))==null||l.classList.remove("show")},{signal:a})}M(this,qu)?o.setAttribute("data-l10n-id","pdfjs-editor-alt-text-decorative-tooltip"):(o.removeAttribute("data-l10n-id"),o.textContent=M(this,as)),o.parentNode||r.append(o);const s=M(this,Sl).getImageForAltText();s?.setAttribute("aria-describedby",o.id)},le(ay,o0,null),ei(ay,"_l10n",null);let Wve=ay;var Nv,gA,Fo,ly,Uv,Ls,Ov,of,BM,Hv,Yu,EM,jv,n0,Wu,cy,dy,hc,kM,HV,Jr,jV,xM,GV,VV,Zve,Xve,qV,_V,zV,$ve,KV,e4e,t4e,i4e,JV,Ay;const ld=class ms{constructor(e){le(this,Jr),le(this,Nv,null),le(this,gA,null),le(this,Fo,null),le(this,ly,!1),le(this,Uv,!1),le(this,Ls,null),le(this,Ov,null),le(this,of,null),le(this,BM,""),le(this,Hv,!1),le(this,Yu,null),le(this,EM,!1),le(this,jv,!1),le(this,n0,!1),le(this,Wu,null),le(this,cy,0),le(this,dy,0),le(this,hc,null),ei(this,"_editToolbar",null),ei(this,"_initialOptions",Object.create(null)),ei(this,"_initialData",null),ei(this,"_isVisible",!0),ei(this,"_uiManager",null),ei(this,"_focusEventsAllowed",!0),le(this,kM,!1),le(this,HV,ms._zIndex++),this.parent=e.parent,this.id=e.id,this.width=this.height=null,this.pageIndex=e.parent.pageIndex,this.name=e.name,this.div=null,this._uiManager=e.uiManager,this.annotationElementId=null,this._willKeepAspectRatio=!1,this._initialOptions.isCentered=e.isCentered,this._structTreeParentId=null;const{rotation:i,rawDims:{pageWidth:r,pageHeight:o,pageX:s,pageY:n}}=this.parent.viewport;this.rotation=i,this.pageRotation=(360+i-this._uiManager.viewParameters.rotation)%360,this.pageDimensions=[r,o],this.pageTranslation=[s,n];const[a,l]=this.parentDimensions;this.x=e.x/a,this.y=e.y/l,this.isAttachedToDOM=!1,this.deleted=!1}static get _resizerKeyboardManager(){const e=ms.prototype._resizeWithKeyboard,i=ry.TRANSLATE_SMALL,r=ry.TRANSLATE_BIG;return $i(this,"_resizerKeyboardManager",new Y7([[["ArrowLeft","mac+ArrowLeft"],e,{args:[-i,0]}],[["ctrl+ArrowLeft","mac+shift+ArrowLeft"],e,{args:[-r,0]}],[["ArrowRight","mac+ArrowRight"],e,{args:[i,0]}],[["ctrl+ArrowRight","mac+shift+ArrowRight"],e,{args:[r,0]}],[["ArrowUp","mac+ArrowUp"],e,{args:[0,-i]}],[["ctrl+ArrowUp","mac+shift+ArrowUp"],e,{args:[0,-r]}],[["ArrowDown","mac+ArrowDown"],e,{args:[0,i]}],[["ctrl+ArrowDown","mac+shift+ArrowDown"],e,{args:[0,r]}],[["Escape","mac+Escape"],ms.prototype._stopResizingWithKeyboard]]))}get editorType(){return Object.getPrototypeOf(this).constructor._type}static get _defaultLineColor(){return $i(this,"_defaultLineColor",this._colorManager.getHexCode("CanvasText"))}static deleteAnnotationElement(e){const i=new Xki({id:e.parent.getNextId(),parent:e.parent,uiManager:e._uiManager});i.annotationElementId=e.annotationElementId,i.deleted=!0,i._uiManager.addToAnnotationStorage(i)}static initialize(e,i){if(ms._l10n??(ms._l10n=e),ms._l10nResizer||(ms._l10nResizer=Object.freeze({topLeft:"pdfjs-editor-resizer-top-left",topMiddle:"pdfjs-editor-resizer-top-middle",topRight:"pdfjs-editor-resizer-top-right",middleRight:"pdfjs-editor-resizer-middle-right",bottomRight:"pdfjs-editor-resizer-bottom-right",bottomMiddle:"pdfjs-editor-resizer-bottom-middle",bottomLeft:"pdfjs-editor-resizer-bottom-left",middleLeft:"pdfjs-editor-resizer-middle-left"})),ms._borderLineWidth!==-1)return;const r=getComputedStyle(document.documentElement);ms._borderLineWidth=parseFloat(r.getPropertyValue("--outline-width"))||0}static updateDefaultParams(e,i){}static get defaultPropertiesToUpdate(){return[]}static isHandlingMimeForPasting(e){return!1}static paste(e,i){to("Not implemented")}get propertiesToUpdate(){return[]}get _isDraggable(){return M(this,kM)}set _isDraggable(e){var i;te(this,kM,e),(i=this.div)==null||i.classList.toggle("draggable",e)}get isEnterHandled(){return!0}center(){const[e,i]=this.pageDimensions;switch(this.parentRotation){case 90:this.x-=this.height*i/(e*2),this.y+=this.width*e/(i*2);break;case 180:this.x+=this.width/2,this.y+=this.height/2;break;case 270:this.x+=this.height*i/(e*2),this.y-=this.width*e/(i*2);break;default:this.x-=this.width/2,this.y-=this.height/2;break}this.fixAndSetPosition()}addCommands(e){this._uiManager.addCommands(e)}get currentLayer(){return this._uiManager.currentLayer}setInBackground(){this.div.style.zIndex=0}setInForeground(){this.div.style.zIndex=M(this,HV)}setParent(e){e!==null?(this.pageIndex=e.pageIndex,this.pageDimensions=e.pageDimensions):Z(this,Jr,Ay).call(this),this.parent=e}focusin(e){this._focusEventsAllowed&&(M(this,Hv)?te(this,Hv,!1):this.parent.setSelected(this))}focusout(e){var i;if(!this._focusEventsAllowed||!this.isAttachedToDOM)return;const r=e.relatedTarget;r!=null&&r.closest(`#${this.id}`)||(e.preventDefault(),(i=this.parent)!=null&&i.isMultipleSelection||this.commitOrRemove())}commitOrRemove(){this.isEmpty()?this.remove():this.commit()}commit(){this.addToAnnotationStorage()}addToAnnotationStorage(){this._uiManager.addToAnnotationStorage(this)}setAt(e,i,r,o){const[s,n]=this.parentDimensions;[r,o]=this.screenToPageTranslation(r,o),this.x=(e+r)/s,this.y=(i+o)/n,this.fixAndSetPosition()}translate(e,i){Z(this,Jr,jV).call(this,this.parentDimensions,e,i)}translateInPage(e,i){M(this,Yu)||te(this,Yu,[this.x,this.y]),Z(this,Jr,jV).call(this,this.pageDimensions,e,i),this.div.scrollIntoView({block:"nearest"})}drag(e,i){M(this,Yu)||te(this,Yu,[this.x,this.y]);const[r,o]=this.parentDimensions;if(this.x+=e/r,this.y+=i/o,this.parent&&(this.x<0||this.x>1||this.y<0||this.y>1)){const{x:c,y:d}=this.div.getBoundingClientRect();this.parent.findNewParent(this,c,d)&&(this.x-=Math.floor(this.x),this.y-=Math.floor(this.y))}let{x:s,y:n}=this;const[a,l]=this.getBaseTranslation();s+=a,n+=l,this.div.style.left=`${(100*s).toFixed(2)}%`,this.div.style.top=`${(100*n).toFixed(2)}%`,this.div.scrollIntoView({block:"nearest"})}get _hasBeenMoved(){return!!M(this,Yu)&&(M(this,Yu)[0]!==this.x||M(this,Yu)[1]!==this.y)}getBaseTranslation(){const[e,i]=this.parentDimensions,{_borderLineWidth:r}=ms,o=r/e,s=r/i;switch(this.rotation){case 90:return[-o,s];case 180:return[o,s];case 270:return[o,-s];default:return[-o,-s]}}get _mustFixPosition(){return!0}fixAndSetPosition(e=this.rotation){const[i,r]=this.pageDimensions;let{x:o,y:s,width:n,height:a}=this;if(n*=i,a*=r,o*=i,s*=r,this._mustFixPosition)switch(e){case 0:o=Math.max(0,Math.min(i-n,o)),s=Math.max(0,Math.min(r-a,s));break;case 90:o=Math.max(0,Math.min(i-a,o)),s=Math.min(r,Math.max(n,s));break;case 180:o=Math.min(i,Math.max(n,o)),s=Math.min(r,Math.max(a,s));break;case 270:o=Math.min(i,Math.max(a,o)),s=Math.max(0,Math.min(r-n,s));break}this.x=o/=i,this.y=s/=r;const[l,c]=this.getBaseTranslation();o+=l,s+=c;const{style:d}=this.div;d.left=`${(100*o).toFixed(2)}%`,d.top=`${(100*s).toFixed(2)}%`,this.moveInDOM()}screenToPageTranslation(e,i){var r;return Z(r=ms,xM,GV).call(r,e,i,this.parentRotation)}pageTranslationToScreen(e,i){var r;return Z(r=ms,xM,GV).call(r,e,i,360-this.parentRotation)}get parentScale(){return this._uiManager.viewParameters.realScale}get parentRotation(){return(this._uiManager.viewParameters.rotation+this.pageRotation)%360}get parentDimensions(){const{parentScale:e,pageDimensions:[i,r]}=this;return[i*e,r*e]}setDims(e,i){const[r,o]=this.parentDimensions;this.div.style.width=`${(100*e/r).toFixed(2)}%`,M(this,Uv)||(this.div.style.height=`${(100*i/o).toFixed(2)}%`)}fixDims(){const{style:e}=this.div,{height:i,width:r}=e,o=r.endsWith("%"),s=!M(this,Uv)&&i.endsWith("%");if(o&&s)return;const[n,a]=this.parentDimensions;o||(e.width=`${(100*parseFloat(r)/n).toFixed(2)}%`),!M(this,Uv)&&!s&&(e.height=`${(100*parseFloat(i)/a).toFixed(2)}%`)}getInitialTranslation(){return[0,0]}altTextFinish(){var e;(e=M(this,Fo))==null||e.finish()}async addEditToolbar(){return this._editToolbar||M(this,jv)?this._editToolbar:(this._editToolbar=new _ki(this),this.div.append(this._editToolbar.render()),M(this,Fo)&&await this._editToolbar.addAltText(M(this,Fo)),this._editToolbar)}removeEditToolbar(){var e;this._editToolbar&&(this._editToolbar.remove(),this._editToolbar=null,(e=M(this,Fo))==null||e.destroy())}addContainer(e){var i;const r=(i=this._editToolbar)==null?void 0:i.div;r?r.before(e):this.div.append(e)}getClientDimensions(){return this.div.getBoundingClientRect()}async addAltTextButton(){M(this,Fo)||(Wve.initialize(ms._l10n),te(this,Fo,new Wve(this)),M(this,Nv)&&(M(this,Fo).data=M(this,Nv),te(this,Nv,null)),await this.addEditToolbar())}get altTextData(){var e;return(e=M(this,Fo))==null?void 0:e.data}set altTextData(e){M(this,Fo)&&(M(this,Fo).data=e)}get guessedAltText(){var e;return(e=M(this,Fo))==null?void 0:e.guessedText}async setGuessedAltText(e){var i;await((i=M(this,Fo))==null?void 0:i.setGuessedText(e))}serializeAltText(e){var i;return(i=M(this,Fo))==null?void 0:i.serialize(e)}hasAltText(){return!!M(this,Fo)&&!M(this,Fo).isEmpty()}hasAltTextData(){var e;return((e=M(this,Fo))==null?void 0:e.hasData())??!1}render(){this.div=document.createElement("div"),this.div.setAttribute("data-editor-rotation",(360-this.rotation)%360),this.div.className=this.name,this.div.setAttribute("id",this.id),this.div.tabIndex=M(this,ly)?-1:0,this._isVisible||this.div.classList.add("hidden"),this.setInForeground(),Z(this,Jr,KV).call(this);const[e,i]=this.parentDimensions;this.parentRotation%180!==0&&(this.div.style.maxWidth=`${(100*i/e).toFixed(2)}%`,this.div.style.maxHeight=`${(100*e/i).toFixed(2)}%`);const[r,o]=this.getInitialTranslation();return this.translate(r,o),cM(this,this.div,["pointerdown"]),this.div}pointerdown(e){const{isMac:i}=ga.platform;if(e.button!==0||e.ctrlKey&&i){e.preventDefault();return}if(te(this,Hv,!0),this._isDraggable){Z(this,Jr,$ve).call(this,e);return}Z(this,Jr,zV).call(this,e)}get isSelected(){return this._uiManager.isSelected(this)}moveInDOM(){M(this,Wu)&&clearTimeout(M(this,Wu)),te(this,Wu,setTimeout(()=>{var e;te(this,Wu,null),(e=this.parent)==null||e.moveEditorInDOM(this)},0))}_setParentAndPosition(e,i,r){e.changeParent(this),this.x=i,this.y=r,this.fixAndSetPosition()}getRect(e,i,r=this.rotation){const o=this.parentScale,[s,n]=this.pageDimensions,[a,l]=this.pageTranslation,c=e/o,d=i/o,A=this.x*s,u=this.y*n,h=this.width*s,g=this.height*n;switch(r){case 0:return[A+c+a,n-u-d-g+l,A+c+h+a,n-u-d+l];case 90:return[A+d+a,n-u+c+l,A+d+g+a,n-u+c+h+l];case 180:return[A-c-h+a,n-u+d+l,A-c+a,n-u+d+g+l];case 270:return[A-d-g+a,n-u-c-h+l,A-d+a,n-u-c+l];default:throw new Error("Invalid rotation")}}getRectInCurrentCoords(e,i){const[r,o,s,n]=e,a=s-r,l=n-o;switch(this.rotation){case 0:return[r,i-n,a,l];case 90:return[r,i-o,l,a];case 180:return[s,i-o,a,l];case 270:return[s,i-n,l,a];default:throw new Error("Invalid rotation")}}onceAdded(){}isEmpty(){return!1}enableEditMode(){te(this,jv,!0)}disableEditMode(){te(this,jv,!1)}isInEditMode(){return M(this,jv)}shouldGetKeyboardEvents(){return M(this,n0)}needsToBeRebuilt(){return this.div&&!this.isAttachedToDOM}rebuild(){Z(this,Jr,KV).call(this)}rotate(e){}serializeDeleted(){var e;return{id:this.annotationElementId,deleted:!0,pageIndex:this.pageIndex,popupRef:((e=this._initialData)==null?void 0:e.popupRef)||""}}serialize(e=!1,i=null){to("An editor must be serializable")}static async deserialize(e,i,r){const o=new this.prototype.constructor({parent:i,id:i.getNextId(),uiManager:r});o.rotation=e.rotation,te(o,Nv,e.accessibilityData);const[s,n]=o.pageDimensions,[a,l,c,d]=o.getRectInCurrentCoords(e.rect,n);return o.x=a/s,o.y=l/n,o.width=c/s,o.height=d/n,o}get hasBeenModified(){return!!this.annotationElementId&&(this.deleted||this.serialize()!==null)}remove(){var e;if((e=M(this,of))==null||e.abort(),te(this,of,null),this.isEmpty()||this.commit(),this.parent?this.parent.remove(this):this._uiManager.removeEditor(this),M(this,Wu)&&(clearTimeout(M(this,Wu)),te(this,Wu,null)),Z(this,Jr,Ay).call(this),this.removeEditToolbar(),M(this,hc)){for(const i of M(this,hc).values())clearTimeout(i);te(this,hc,null)}this.parent=null}get isResizable(){return!1}makeResizable(){this.isResizable&&(Z(this,Jr,Zve).call(this),M(this,Ls).classList.remove("hidden"),cM(this,this.div,["keydown"]))}get toolbarPosition(){return null}keydown(e){if(!this.isResizable||e.target!==this.div||e.key!=="Enter")return;this._uiManager.setSelected(this),te(this,Ov,{savedX:this.x,savedY:this.y,savedWidth:this.width,savedHeight:this.height});const i=M(this,Ls).children;if(!M(this,gA)){te(this,gA,Array.from(i));const n=Z(this,Jr,e4e).bind(this),a=Z(this,Jr,t4e).bind(this),l=this._uiManager._signal;for(const c of M(this,gA)){const d=c.getAttribute("data-resizer-name");c.setAttribute("role","spinbutton"),c.addEventListener("keydown",n,{signal:l}),c.addEventListener("blur",a,{signal:l}),c.addEventListener("focus",Z(this,Jr,i4e).bind(this,d),{signal:l}),c.setAttribute("data-l10n-id",ms._l10nResizer[d])}}const r=M(this,gA)[0];let o=0;for(const n of i){if(n===r)break;o++}const s=(360-this.rotation+this.parentRotation)%360/90*(M(this,gA).length/4);if(s!==o){if(s<o)for(let a=0;a<o-s;a++)M(this,Ls).append(M(this,Ls).firstChild);else if(s>o)for(let a=0;a<s-o;a++)M(this,Ls).firstChild.before(M(this,Ls).lastChild);let n=0;for(const a of i){const l=M(this,gA)[n++].getAttribute("data-resizer-name");a.setAttribute("data-l10n-id",ms._l10nResizer[l])}}Z(this,Jr,JV).call(this,0),te(this,n0,!0),M(this,Ls).firstChild.focus({focusVisible:!0}),e.preventDefault(),e.stopImmediatePropagation()}_resizeWithKeyboard(e,i){M(this,n0)&&Z(this,Jr,_V).call(this,M(this,BM),{movementX:e,movementY:i})}_stopResizingWithKeyboard(){Z(this,Jr,Ay).call(this),this.div.focus()}select(){var e,i,r;if(this.makeResizable(),(e=this.div)==null||e.classList.add("selectedEditor"),!this._editToolbar){this.addEditToolbar().then(()=>{var o,s;(o=this.div)!=null&&o.classList.contains("selectedEditor")&&((s=this._editToolbar)==null||s.show())});return}(i=this._editToolbar)==null||i.show(),(r=M(this,Fo))==null||r.toggleAltTextBadge(!1)}unselect(){var e,i,r,o,s;(e=M(this,Ls))==null||e.classList.add("hidden"),(i=this.div)==null||i.classList.remove("selectedEditor"),(r=this.div)!=null&&r.contains(document.activeElement)&&this._uiManager.currentLayer.div.focus({preventScroll:!0}),(o=this._editToolbar)==null||o.hide(),(s=M(this,Fo))==null||s.toggleAltTextBadge(!0)}updateParams(e,i){}disableEditing(){}enableEditing(){}enterInEditMode(){}getImageForAltText(){return null}get contentDiv(){return this.div}get isEditing(){return M(this,EM)}set isEditing(e){te(this,EM,e),this.parent&&(e?(this.parent.setSelected(this),this.parent.setActiveEditor(this)):this.parent.setActiveEditor(null))}setAspectRatio(e,i){te(this,Uv,!0);const r=e/i,{style:o}=this.div;o.aspectRatio=r,o.height="auto"}static get MIN_SIZE(){return 16}static canCreateNewEmptyEditor(){return!0}get telemetryInitialData(){return{action:"added"}}get telemetryFinalData(){return null}_reportTelemetry(e,i=!1){if(i){M(this,hc)||te(this,hc,new Map);const{action:r}=e;let o=M(this,hc).get(r);o&&clearTimeout(o),o=setTimeout(()=>{this._reportTelemetry(e),M(this,hc).delete(r),M(this,hc).size===0&&te(this,hc,null)},ms._telemetryTimeout),M(this,hc).set(r,o);return}e.type||(e.type=this.editorType),this._uiManager._eventBus.dispatch("reporttelemetry",{source:this,details:{type:"editing",data:e}})}show(e=this._isVisible){this.div.classList.toggle("hidden",!e),this._isVisible=e}enable(){this.div&&(this.div.tabIndex=0),te(this,ly,!1)}disable(){this.div&&(this.div.tabIndex=-1),te(this,ly,!0)}renderAnnotationElement(e){let i=e.container.querySelector(".annotationContent");if(!i)i=document.createElement("div"),i.classList.add("annotationContent",this.editorType),e.container.prepend(i);else if(i.nodeName==="CANVAS"){const r=i;i=document.createElement("div"),i.classList.add("annotationContent",this.editorType),r.before(i)}return i}resetAnnotationElement(e){const{firstChild:i}=e.container;i?.nodeName==="DIV"&&i.classList.contains("annotationContent")&&i.remove()}};Nv=new WeakMap,gA=new WeakMap,Fo=new WeakMap,ly=new WeakMap,Uv=new WeakMap,Ls=new WeakMap,Ov=new WeakMap,of=new WeakMap,BM=new WeakMap,Hv=new WeakMap,Yu=new WeakMap,EM=new WeakMap,jv=new WeakMap,n0=new WeakMap,Wu=new WeakMap,cy=new WeakMap,dy=new WeakMap,hc=new WeakMap,kM=new WeakMap,HV=new WeakMap,Jr=new WeakSet,jV=function([t,e],i,r){[i,r]=this.screenToPageTranslation(i,r),this.x+=i/t,this.y+=r/e,this.fixAndSetPosition()},xM=new WeakSet,GV=function(t,e,i){switch(i){case 90:return[e,-t];case 180:return[-t,-e];case 270:return[-e,t];default:return[t,e]}},VV=function(t){switch(t){case 90:{const[e,i]=this.pageDimensions;return[0,-e/i,i/e,0]}case 180:return[-1,0,0,-1];case 270:{const[e,i]=this.pageDimensions;return[0,e/i,-i/e,0]}default:return[1,0,0,1]}},Zve=function(){if(M(this,Ls))return;te(this,Ls,document.createElement("div")),M(this,Ls).classList.add("resizers");const t=this._willKeepAspectRatio?["topLeft","topRight","bottomRight","bottomLeft"]:["topLeft","topMiddle","topRight","middleRight","bottomRight","bottomMiddle","bottomLeft","middleLeft"],e=this._uiManager._signal;for(const i of t){const r=document.createElement("div");M(this,Ls).append(r),r.classList.add("resizer",i),r.setAttribute("data-resizer-name",i),r.addEventListener("pointerdown",Z(this,Jr,Xve).bind(this,i),{signal:e}),r.addEventListener("contextmenu",dc,{signal:e}),r.tabIndex=-1}this.div.prepend(M(this,Ls))},Xve=function(t,e){var i;e.preventDefault();const{isMac:r}=ga.platform;if(e.button!==0||e.ctrlKey&&r)return;(i=M(this,Fo))==null||i.toggle(!1);const o=this._isDraggable;this._isDraggable=!1;const s=new AbortController,n=this._uiManager.combinedSignal(s);this.parent.togglePointerEvents(!1),window.addEventListener("pointermove",Z(this,Jr,_V).bind(this,t),{passive:!0,capture:!0,signal:n}),window.addEventListener("contextmenu",dc,{signal:n});const a=this.x,l=this.y,c=this.width,d=this.height,A=this.parent.div.style.cursor,u=this.div.style.cursor;this.div.style.cursor=this.parent.div.style.cursor=window.getComputedStyle(e.target).cursor;const h=()=>{var g;s.abort(),this.parent.togglePointerEvents(!0),(g=M(this,Fo))==null||g.toggle(!0),this._isDraggable=o,this.parent.div.style.cursor=A,this.div.style.cursor=u,Z(this,Jr,qV).call(this,a,l,c,d)};window.addEventListener("pointerup",h,{signal:n}),window.addEventListener("blur",h,{signal:n})},qV=function(t,e,i,r){const o=this.x,s=this.y,n=this.width,a=this.height;o===t&&s===e&&n===i&&a===r||this.addCommands({cmd:()=>{this.width=n,this.height=a,this.x=o,this.y=s;const[l,c]=this.parentDimensions;this.setDims(l*n,c*a),this.fixAndSetPosition()},undo:()=>{this.width=i,this.height=r,this.x=t,this.y=e;const[l,c]=this.parentDimensions;this.setDims(l*i,c*r),this.fixAndSetPosition()},mustExec:!0})},_V=function(t,e){const[i,r]=this.parentDimensions,o=this.x,s=this.y,n=this.width,a=this.height,l=ld.MIN_SIZE/i,c=ld.MIN_SIZE/r,d=O=>Math.round(O*1e4)/1e4,A=Z(this,Jr,VV).call(this,this.rotation),u=(O,j)=>[A[0]*O+A[2]*j,A[1]*O+A[3]*j],h=Z(this,Jr,VV).call(this,360-this.rotation),g=(O,j)=>[h[0]*O+h[2]*j,h[1]*O+h[3]*j];let p,m,f=!1,v=!1;switch(t){case"topLeft":f=!0,p=(O,j)=>[0,0],m=(O,j)=>[O,j];break;case"topMiddle":p=(O,j)=>[O/2,0],m=(O,j)=>[O/2,j];break;case"topRight":f=!0,p=(O,j)=>[O,0],m=(O,j)=>[0,j];break;case"middleRight":v=!0,p=(O,j)=>[O,j/2],m=(O,j)=>[0,j/2];break;case"bottomRight":f=!0,p=(O,j)=>[O,j],m=(O,j)=>[0,0];break;case"bottomMiddle":p=(O,j)=>[O/2,j],m=(O,j)=>[O/2,0];break;case"bottomLeft":f=!0,p=(O,j)=>[0,j],m=(O,j)=>[O,0];break;case"middleLeft":v=!0,p=(O,j)=>[0,j/2],m=(O,j)=>[O,j/2];break}const C=p(n,a),y=m(n,a);let I=u(...y);const B=d(o+I[0]),E=d(s+I[1]);let k=1,Q=1,[S,D]=this.screenToPageTranslation(e.movementX,e.movementY);if([S,D]=g(S/i,D/r),f){const O=Math.hypot(n,a);k=Q=Math.max(Math.min(Math.hypot(y[0]-C[0]-S,y[1]-C[1]-D)/O,1/n,1/a),l/n,c/a)}else v?k=Math.max(l,Math.min(1,Math.abs(y[0]-C[0]-S)))/n:Q=Math.max(c,Math.min(1,Math.abs(y[1]-C[1]-D)))/a;const R=d(n*k),T=d(a*Q);I=u(...m(R,T));const H=B-I[0],q=E-I[1];this.width=R,this.height=T,this.x=H,this.y=q,this.setDims(i*R,r*T),this.fixAndSetPosition()},zV=function(t){const{isMac:e}=ga.platform;t.ctrlKey&&!e||t.shiftKey||t.metaKey&&e?this.parent.toggleSelected(this):this.parent.setSelected(this)},$ve=function(t){const{isSelected:e}=this;this._uiManager.setUpDragSession();const i=new AbortController,r=this._uiManager.combinedSignal(i);if(e){this.div.classList.add("moving"),te(this,cy,t.clientX),te(this,dy,t.clientY);const s=n=>{const{clientX:a,clientY:l}=n,[c,d]=this.screenToPageTranslation(a-M(this,cy),l-M(this,dy));te(this,cy,a),te(this,dy,l),this._uiManager.dragSelectedEditors(c,d)};window.addEventListener("pointermove",s,{passive:!0,capture:!0,signal:r})}const o=()=>{i.abort(),e&&this.div.classList.remove("moving"),te(this,Hv,!1),this._uiManager.endDragSession()||Z(this,Jr,zV).call(this,t)};window.addEventListener("pointerup",o,{signal:r}),window.addEventListener("blur",o,{signal:r})},KV=function(){if(M(this,of)||!this.div)return;te(this,of,new AbortController);const t=this._uiManager.combinedSignal(M(this,of));this.div.addEventListener("focusin",this.focusin.bind(this),{signal:t}),this.div.addEventListener("focusout",this.focusout.bind(this),{signal:t})},e4e=function(t){ld._resizerKeyboardManager.exec(this,t)},t4e=function(t){var e;M(this,n0)&&((e=t.relatedTarget)==null?void 0:e.parentNode)!==M(this,Ls)&&Z(this,Jr,Ay).call(this)},i4e=function(t){te(this,BM,M(this,n0)?t:"")},JV=function(t){if(M(this,gA))for(const e of M(this,gA))e.tabIndex=t},Ay=function(){if(te(this,n0,!1),Z(this,Jr,JV).call(this,-1),M(this,Ov)){const{savedX:t,savedY:e,savedWidth:i,savedHeight:r}=M(this,Ov);Z(this,Jr,qV).call(this,t,e,i,r),te(this,Ov,null)}},le(ld,xM),ei(ld,"_l10n",null),ei(ld,"_l10nResizer",null),ei(ld,"_borderLineWidth",-1),ei(ld,"_colorManager",new Zki),ei(ld,"_zIndex",1),ei(ld,"_telemetryTimeout",1e3);let Ur=ld;class Xki extends Ur{constructor(e){super(e),this.annotationElementId=e.annotationElementId,this.deleted=!0}serialize(){return this.serializeDeleted()}}const r4e=3285377520,pc=4294901760,fA=65535;let o4e=class{constructor(t){this.h1=t?t&4294967295:r4e,this.h2=t?t&4294967295:r4e}update(t){let e,i;if(typeof t=="string"){e=new Uint8Array(t.length*2),i=0;for(let g=0,p=t.length;g<p;g++){const m=t.charCodeAt(g);m<=255?e[i++]=m:(e[i++]=m>>>8,e[i++]=m&255)}}else if(ArrayBuffer.isView(t))e=t.slice(),i=e.byteLength;else throw new Error("Invalid data format, must be a string or TypedArray.");const r=i>>2,o=i-r*4,s=new Uint32Array(e.buffer,0,r);let n=0,a=0,l=this.h1,c=this.h2;const d=3432918353,A=461845907,u=d&fA,h=A&fA;for(let g=0;g<r;g++)g&1?(n=s[g],n=n*d&pc|n*u&fA,n=n<<15|n>>>17,n=n*A&pc|n*h&fA,l^=n,l=l<<13|l>>>19,l=l*5+3864292196):(a=s[g],a=a*d&pc|a*u&fA,a=a<<15|a>>>17,a=a*A&pc|a*h&fA,c^=a,c=c<<13|c>>>19,c=c*5+3864292196);switch(n=0,o){case 3:n^=e[r*4+2]<<16;case 2:n^=e[r*4+1]<<8;case 1:n^=e[r*4],n=n*d&pc|n*u&fA,n=n<<15|n>>>17,n=n*A&pc|n*h&fA,r&1?l^=n:c^=n}this.h1=l,this.h2=c}hexdigest(){let t=this.h1,e=this.h2;return t^=e>>>1,t=t*3981806797&pc|t*36045&fA,e=e*4283543511&pc|((e<<16|t>>>16)*2950163797&pc)>>>16,t^=e>>>1,t=t*444984403&pc|t*60499&fA,e=e*3301882366&pc|((e<<16|t>>>16)*3120437893&pc)>>>16,t^=e>>>1,(t>>>0).toString(16).padStart(8,"0")+(e>>>0).toString(16).padStart(8,"0")}};const YV=Object.freeze({map:null,hash:"",transfer:void 0});var Gv,Vv,ls,WV,n4e;class ZV{constructor(){le(this,WV),le(this,Gv,!1),le(this,Vv,null),le(this,ls,new Map),this.onSetModified=null,this.onResetModified=null,this.onAnnotationEditor=null}getValue(e,i){const r=M(this,ls).get(e);return r===void 0?i:Object.assign(i,r)}getRawValue(e){return M(this,ls).get(e)}remove(e){if(M(this,ls).delete(e),M(this,ls).size===0&&this.resetModified(),typeof this.onAnnotationEditor=="function"){for(const i of M(this,ls).values())if(i instanceof Ur)return;this.onAnnotationEditor(null)}}setValue(e,i){const r=M(this,ls).get(e);let o=!1;if(r!==void 0)for(const[s,n]of Object.entries(i))r[s]!==n&&(o=!0,r[s]=n);else o=!0,M(this,ls).set(e,i);o&&Z(this,WV,n4e).call(this),i instanceof Ur&&typeof this.onAnnotationEditor=="function"&&this.onAnnotationEditor(i.constructor._type)}has(e){return M(this,ls).has(e)}getAll(){return M(this,ls).size>0?mV(M(this,ls)):null}setAll(e){for(const[i,r]of Object.entries(e))this.setValue(i,r)}get size(){return M(this,ls).size}resetModified(){M(this,Gv)&&(te(this,Gv,!1),typeof this.onResetModified=="function"&&this.onResetModified())}get print(){return new s4e(this)}get serializable(){if(M(this,ls).size===0)return YV;const e=new Map,i=new o4e,r=[],o=Object.create(null);let s=!1;for(const[n,a]of M(this,ls)){const l=a instanceof Ur?a.serialize(!1,o):a;l&&(e.set(n,l),i.update(`${n}:${JSON.stringify(l)}`),s||(s=!!l.bitmap))}if(s)for(const n of e.values())n.bitmap&&r.push(n.bitmap);return e.size>0?{map:e,hash:i.hexdigest(),transfer:r}:YV}get editorStats(){let e=null;const i=new Map;for(const r of M(this,ls).values()){if(!(r instanceof Ur))continue;const o=r.telemetryFinalData;if(!o)continue;const{type:s}=o;i.has(s)||i.set(s,Object.getPrototypeOf(r).constructor),e||(e=Object.create(null));const n=e[s]||(e[s]=new Map);for(const[a,l]of Object.entries(o)){if(a==="type")continue;let c=n.get(a);c||(c=new Map,n.set(a,c));const d=c.get(l)??0;c.set(l,d+1)}}for(const[r,o]of i)e[r]=o.computeTelemetryFinalData(e[r]);return e}resetModifiedIds(){te(this,Vv,null)}get modifiedIds(){if(M(this,Vv))return M(this,Vv);const e=[];for(const i of M(this,ls).values())!(i instanceof Ur)||!i.annotationElementId||!i.serialize()||e.push(i.annotationElementId);return te(this,Vv,{ids:new Set(e),hash:e.join(",")})}}Gv=new WeakMap,Vv=new WeakMap,ls=new WeakMap,WV=new WeakSet,n4e=function(){M(this,Gv)||(te(this,Gv,!0),typeof this.onSetModified=="function"&&this.onSetModified())};var QM;class s4e extends ZV{constructor(e){super(),le(this,QM);const{map:i,hash:r,transfer:o}=e.serializable,s=structuredClone(i,o?{transfer:o}:null);te(this,QM,{map:s,hash:r,transfer:o})}get print(){to("Should not call PrintAnnotationStorage.print")}get serializable(){return M(this,QM)}get modifiedIds(){return $i(this,"modifiedIds",{ids:new Set,hash:""})}}QM=new WeakMap;var uy;class $ki{constructor({ownerDocument:e=globalThis.document,styleElement:i=null}){le(this,uy,new Set),this._document=e,this.nativeFontFaces=new Set,this.styleElement=null,this.loadingRequests=[],this.loadTestFontId=0}addNativeFontFace(e){this.nativeFontFaces.add(e),this._document.fonts.add(e)}removeNativeFontFace(e){this.nativeFontFaces.delete(e),this._document.fonts.delete(e)}insertRule(e){this.styleElement||(this.styleElement=this._document.createElement("style"),this._document.documentElement.getElementsByTagName("head")[0].append(this.styleElement));const i=this.styleElement.sheet;i.insertRule(e,i.cssRules.length)}clear(){for(const e of this.nativeFontFaces)this._document.fonts.delete(e);this.nativeFontFaces.clear(),M(this,uy).clear(),this.styleElement&&(this.styleElement.remove(),this.styleElement=null)}async loadSystemFont({systemFontInfo:e,_inspectFont:i}){if(!(!e||M(this,uy).has(e.loadedName))){if(In(!this.disableFontFace,"loadSystemFont shouldn't be called when `disableFontFace` is set."),this.isFontLoadingAPISupported){const{loadedName:r,src:o,style:s}=e,n=new FontFace(r,o,s);this.addNativeFontFace(n);try{await n.load(),M(this,uy).add(r),i?.(e)}catch{Ui(`Cannot load system font: ${e.baseFontName}, installing it could help to improve PDF rendering.`),this.removeNativeFontFace(n)}return}to("Not implemented: loadSystemFont without the Font Loading API.")}}async bind(e){if(e.attached||e.missingFile&&!e.systemFontInfo)return;if(e.attached=!0,e.systemFontInfo){await this.loadSystemFont(e);return}if(this.isFontLoadingAPISupported){const r=e.createNativeFontFace();if(r){this.addNativeFontFace(r);try{await r.loaded}catch(o){throw Ui(`Failed to load font '${r.family}': '${o}'.`),e.disableFontFace=!0,o}}return}const i=e.createFontFaceRule();if(i){if(this.insertRule(i),this.isSyncFontLoadingSupported)return;await new Promise(r=>{const o=this._queueLoadingCallback(r);this._prepareFontLoadEvent(e,o)})}}get isFontLoadingAPISupported(){var e;const i=!!((e=this._document)!=null&&e.fonts);return $i(this,"isFontLoadingAPISupported",i)}get isSyncFontLoadingSupported(){let e=!1;return(Ps||typeof navigator<"u"&&typeof navigator?.userAgent=="string"&&/Mozilla\/5.0.*?rv:\d+.*? Gecko/.test(navigator.userAgent))&&(e=!0),$i(this,"isSyncFontLoadingSupported",e)}_queueLoadingCallback(e){function i(){for(In(!o.done,"completeRequest() cannot be called twice."),o.done=!0;r.length>0&&r[0].done;){const s=r.shift();setTimeout(s.callback,0)}}const{loadingRequests:r}=this,o={done:!1,complete:i,callback:e};return r.push(o),o}get _loadTestFont(){const e=atob("T1RUTwALAIAAAwAwQ0ZGIDHtZg4AAAOYAAAAgUZGVE1lkzZwAAAEHAAAABxHREVGABQAFQAABDgAAAAeT1MvMlYNYwkAAAEgAAAAYGNtYXABDQLUAAACNAAAAUJoZWFk/xVFDQAAALwAAAA2aGhlYQdkA+oAAAD0AAAAJGhtdHgD6AAAAAAEWAAAAAZtYXhwAAJQAAAAARgAAAAGbmFtZVjmdH4AAAGAAAAAsXBvc3T/hgAzAAADeAAAACAAAQAAAAEAALZRFsRfDzz1AAsD6AAAAADOBOTLAAAAAM4KHDwAAAAAA+gDIQAAAAgAAgAAAAAAAAABAAADIQAAAFoD6AAAAAAD6AABAAAAAAAAAAAAAAAAAAAAAQAAUAAAAgAAAAQD6AH0AAUAAAKKArwAAACMAooCvAAAAeAAMQECAAACAAYJAAAAAAAAAAAAAQAAAAAAAAAAAAAAAFBmRWQAwAAuAC4DIP84AFoDIQAAAAAAAQAAAAAAAAAAACAAIAABAAAADgCuAAEAAAAAAAAAAQAAAAEAAAAAAAEAAQAAAAEAAAAAAAIAAQAAAAEAAAAAAAMAAQAAAAEAAAAAAAQAAQAAAAEAAAAAAAUAAQAAAAEAAAAAAAYAAQAAAAMAAQQJAAAAAgABAAMAAQQJAAEAAgABAAMAAQQJAAIAAgABAAMAAQQJAAMAAgABAAMAAQQJAAQAAgABAAMAAQQJAAUAAgABAAMAAQQJAAYAAgABWABYAAAAAAAAAwAAAAMAAAAcAAEAAAAAADwAAwABAAAAHAAEACAAAAAEAAQAAQAAAC7//wAAAC7////TAAEAAAAAAAABBgAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAD/gwAyAAAAAQAAAAAAAAAAAAAAAAAAAAABAAQEAAEBAQJYAAEBASH4DwD4GwHEAvgcA/gXBIwMAYuL+nz5tQXkD5j3CBLnEQACAQEBIVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYAAABAQAADwACAQEEE/t3Dov6fAH6fAT+fPp8+nwHDosMCvm1Cvm1DAz6fBQAAAAAAAABAAAAAMmJbzEAAAAAzgTjFQAAAADOBOQpAAEAAAAAAAAADAAUAAQAAAABAAAAAgABAAAAAAAAAAAD6AAAAAAAAA==");return $i(this,"_loadTestFont",e)}_prepareFontLoadEvent(e,i){function r(C,y){return C.charCodeAt(y)<<24|C.charCodeAt(y+1)<<16|C.charCodeAt(y+2)<<8|C.charCodeAt(y+3)&255}function o(C,y,I,B){const E=C.substring(0,y),k=C.substring(y+I);return E+B+k}let s,n;const a=this._document.createElement("canvas");a.width=1,a.height=1;const l=a.getContext("2d");let c=0;function d(C,y){if(++c>30){Ui("Load test font never loaded."),y();return}if(l.font="30px "+C,l.fillText(".",0,20),l.getImageData(0,0,1,1).data[3]>0){y();return}setTimeout(d.bind(null,C,y))}const A=`lt${Date.now()}${this.loadTestFontId++}`;let u=this._loadTestFont;u=o(u,976,A.length,A);const h=16,g=1482184792;let p=r(u,h);for(s=0,n=A.length-3;s<n;s+=4)p=p-g+r(A,s)|0;s<A.length&&(p=p-g+r(A+"XXX",s)|0),u=o(u,h,4,Fki(p));const m=`url(data:font/opentype;base64,${btoa(u)});`,f=`@font-face {font-family:"${A}";src:${m}}`;this.insertRule(f);const v=this._document.createElement("div");v.style.visibility="hidden",v.style.width=v.style.height="10px",v.style.position="absolute",v.style.top=v.style.left="0px";for(const C of[e.loadedName,A]){const y=this._document.createElement("span");y.textContent="Hi",y.style.fontFamily=C,v.append(y)}this._document.body.append(v),d(A,()=>{v.remove(),i.complete()})}}uy=new WeakMap;class exi{constructor(e,{disableFontFace:i=!1,inspectFont:r=null}){this.compiledGlyphs=Object.create(null);for(const o in e)this[o]=e[o];this.disableFontFace=i===!0,this._inspectFont=r}createNativeFontFace(){var e;if(!this.data||this.disableFontFace)return null;let i;if(!this.cssFontInfo)i=new FontFace(this.loadedName,this.data,{});else{const r={weight:this.cssFontInfo.fontWeight};this.cssFontInfo.italicAngle&&(r.style=`oblique ${this.cssFontInfo.italicAngle}deg`),i=new FontFace(this.cssFontInfo.fontFamily,this.data,r)}return(e=this._inspectFont)==null||e.call(this,this),i}createFontFaceRule(){var e;if(!this.data||this.disableFontFace)return null;const i=`url(data:${this.mimetype};base64,${Hki(this.data)});`;let r;if(!this.cssFontInfo)r=`@font-face {font-family:"${this.loadedName}";src:${i}}`;else{let o=`font-weight: ${this.cssFontInfo.fontWeight};`;this.cssFontInfo.italicAngle&&(o+=`font-style: oblique ${this.cssFontInfo.italicAngle}deg;`),r=`@font-face {font-family:"${this.cssFontInfo.fontFamily}";${o}src:${i}}`}return(e=this._inspectFont)==null||e.call(this,this,i),r}getPathGenerator(e,i){if(this.compiledGlyphs[i]!==void 0)return this.compiledGlyphs[i];let r;try{r=e.get(this.loadedName+"_path_"+i)}catch(s){Ui(`getPathGenerator - ignoring character: "${s}".`)}if(!Array.isArray(r)||r.length===0)return this.compiledGlyphs[i]=function(s,n){};const o=[];for(let s=0,n=r.length;s<n;)switch(r[s++]){case Uu.BEZIER_CURVE_TO:{const[a,l,c,d,A,u]=r.slice(s,s+6);o.push(h=>h.bezierCurveTo(a,l,c,d,A,u)),s+=6}break;case Uu.MOVE_TO:{const[a,l]=r.slice(s,s+2);o.push(c=>c.moveTo(a,l)),s+=2}break;case Uu.LINE_TO:{const[a,l]=r.slice(s,s+2);o.push(c=>c.lineTo(a,l)),s+=2}break;case Uu.QUADRATIC_CURVE_TO:{const[a,l,c,d]=r.slice(s,s+4);o.push(A=>A.quadraticCurveTo(a,l,c,d)),s+=4}break;case Uu.RESTORE:o.push(a=>a.restore());break;case Uu.SAVE:o.push(a=>a.save());break;case Uu.SCALE:In(o.length===2,"Scale command is only valid at the third position.");break;case Uu.TRANSFORM:{const[a,l,c,d,A,u]=r.slice(s,s+6);o.push(h=>h.transform(a,l,c,d,A,u)),s+=6}break;case Uu.TRANSLATE:{const[a,l]=r.slice(s,s+2);o.push(c=>c.translate(a,l)),s+=2}break}return this.compiledGlyphs[i]=function(s,n){o[0](s),o[1](s),s.scale(n,-n);for(let a=2,l=o.length;a<l;a++)o[a](s)}}}var MM;class a4e{constructor({enableHWA:e=!1}){le(this,MM,!1),te(this,MM,e)}create(e,i){if(e<=0||i<=0)throw new Error("Invalid canvas size");const r=this._createCanvas(e,i);return{canvas:r,context:r.getContext("2d",{willReadFrequently:!M(this,MM)})}}reset(e,i,r){if(!e.canvas)throw new Error("Canvas is not specified");if(i<=0||r<=0)throw new Error("Invalid canvas size");e.canvas.width=i,e.canvas.height=r}destroy(e){if(!e.canvas)throw new Error("Canvas is not specified");e.canvas.width=0,e.canvas.height=0,e.canvas=null,e.context=null}_createCanvas(e,i){to("Abstract method `_createCanvas` called.")}}MM=new WeakMap;class txi extends a4e{constructor({ownerDocument:e=globalThis.document,enableHWA:i=!1}){super({enableHWA:i}),this._document=e}_createCanvas(e,i){const r=this._document.createElement("canvas");return r.width=e,r.height=i,r}}class l4e{constructor({baseUrl:e=null,isCompressed:i=!0}){this.baseUrl=e,this.isCompressed=i}async fetch({name:e}){if(!this.baseUrl)throw new Error("Ensure that the `cMapUrl` and `cMapPacked` API parameters are provided.");if(!e)throw new Error("CMap name must be specified.");const i=this.baseUrl+e+(this.isCompressed?".bcmap":"");return this._fetch(i).then(r=>({cMapData:r,isCompressed:this.isCompressed})).catch(r=>{throw new Error(`Unable to load ${this.isCompressed?"binary ":""}CMap at: ${i}`)})}async _fetch(e){to("Abstract method `_fetch` called.")}}class c4e extends l4e{async _fetch(e){const i=await rM(e,this.isCompressed?"arraybuffer":"text");return i instanceof ArrayBuffer?new Uint8Array(i):tM(i)}}class d4e{addFilter(e){return"none"}addHCMFilter(e,i){return"none"}addAlphaFilter(e){return"none"}addLuminosityFilter(e){return"none"}addHighlightHCMFilter(e,i,r,o,s){return"none"}destroy(e=!1){}}var qv,nf,Zu,s0,ma,SM,_v,oi,Ts,zv,Kv,DM,Jv,A4e,XV,Yv,hy,py,$V,gy;class ixi extends d4e{constructor({docId:e,ownerDocument:i=globalThis.document}){super(),le(this,oi),le(this,qv),le(this,nf),le(this,Zu),le(this,s0),le(this,ma),le(this,SM),le(this,_v,0),te(this,s0,e),te(this,ma,i)}addFilter(e){if(!e)return"none";let i=M(this,oi,Ts).get(e);if(i)return i;const[r,o,s]=Z(this,oi,DM).call(this,e),n=e.length===1?r:`${r}${o}${s}`;if(i=M(this,oi,Ts).get(n),i)return M(this,oi,Ts).set(e,i),i;const a=`g_${M(this,s0)}_transfer_map_${Ma(this,_v)._++}`,l=Z(this,oi,Jv).call(this,a);M(this,oi,Ts).set(e,l),M(this,oi,Ts).set(n,l);const c=Z(this,oi,Yv).call(this,a);return Z(this,oi,py).call(this,r,o,s,c),l}addHCMFilter(e,i){var r;const o=`${e}-${i}`,s="base";let n=M(this,oi,zv).get(s);if(n?.key===o||(n?((r=n.filter)==null||r.remove(),n.key=o,n.url="none",n.filter=null):(n={key:o,url:"none",filter:null},M(this,oi,zv).set(s,n)),!e||!i))return n.url;const a=Z(this,oi,gy).call(this,e);e=ri.makeHexColor(...a);const l=Z(this,oi,gy).call(this,i);if(i=ri.makeHexColor(...l),M(this,oi,Kv).style.color="",e==="#000000"&&i==="#ffffff"||e===i)return n.url;const c=new Array(256);for(let g=0;g<=255;g++){const p=g/255;c[g]=p<=.03928?p/12.92:((p+.055)/1.055)**2.4}const d=c.join(","),A=`g_${M(this,s0)}_hcm_filter`,u=n.filter=Z(this,oi,Yv).call(this,A);Z(this,oi,py).call(this,d,d,d,u),Z(this,oi,XV).call(this,u);const h=(g,p)=>{const m=a[g]/255,f=l[g]/255,v=new Array(p+1);for(let C=0;C<=p;C++)v[C]=m+C/p*(f-m);return v.join(",")};return Z(this,oi,py).call(this,h(0,5),h(1,5),h(2,5),u),n.url=Z(this,oi,Jv).call(this,A),n.url}addAlphaFilter(e){let i=M(this,oi,Ts).get(e);if(i)return i;const[r]=Z(this,oi,DM).call(this,[e]),o=`alpha_${r}`;if(i=M(this,oi,Ts).get(o),i)return M(this,oi,Ts).set(e,i),i;const s=`g_${M(this,s0)}_alpha_map_${Ma(this,_v)._++}`,n=Z(this,oi,Jv).call(this,s);M(this,oi,Ts).set(e,n),M(this,oi,Ts).set(o,n);const a=Z(this,oi,Yv).call(this,s);return Z(this,oi,$V).call(this,r,a),n}addLuminosityFilter(e){let i=M(this,oi,Ts).get(e||"luminosity");if(i)return i;let r,o;if(e?([r]=Z(this,oi,DM).call(this,[e]),o=`luminosity_${r}`):o="luminosity",i=M(this,oi,Ts).get(o),i)return M(this,oi,Ts).set(e,i),i;const s=`g_${M(this,s0)}_luminosity_map_${Ma(this,_v)._++}`,n=Z(this,oi,Jv).call(this,s);M(this,oi,Ts).set(e,n),M(this,oi,Ts).set(o,n);const a=Z(this,oi,Yv).call(this,s);return Z(this,oi,A4e).call(this,a),e&&Z(this,oi,$V).call(this,r,a),n}addHighlightHCMFilter(e,i,r,o,s){var n;const a=`${i}-${r}-${o}-${s}`;let l=M(this,oi,zv).get(e);if(l?.key===a||(l?((n=l.filter)==null||n.remove(),l.key=a,l.url="none",l.filter=null):(l={key:a,url:"none",filter:null},M(this,oi,zv).set(e,l)),!i||!r))return l.url;const[c,d]=[i,r].map(Z(this,oi,gy).bind(this));let A=Math.round(.2126*c[0]+.7152*c[1]+.0722*c[2]),u=Math.round(.2126*d[0]+.7152*d[1]+.0722*d[2]),[h,g]=[o,s].map(Z(this,oi,gy).bind(this));u<A&&([A,u,h,g]=[u,A,g,h]),M(this,oi,Kv).style.color="";const p=(v,C,y)=>{const I=new Array(256),B=(u-A)/y,E=v/255,k=(C-v)/(255*y);let Q=0;for(let S=0;S<=y;S++){const D=Math.round(A+S*B),R=E+S*k;for(let T=Q;T<=D;T++)I[T]=R;Q=D+1}for(let S=Q;S<256;S++)I[S]=I[Q-1];return I.join(",")},m=`g_${M(this,s0)}_hcm_${e}_filter`,f=l.filter=Z(this,oi,Yv).call(this,m);return Z(this,oi,XV).call(this,f),Z(this,oi,py).call(this,p(h[0],g[0],5),p(h[1],g[1],5),p(h[2],g[2],5),f),l.url=Z(this,oi,Jv).call(this,m),l.url}destroy(e=!1){e&&M(this,oi,zv).size!==0||(M(this,Zu)&&(M(this,Zu).parentNode.parentNode.remove(),te(this,Zu,null)),M(this,nf)&&(M(this,nf).clear(),te(this,nf,null)),te(this,_v,0))}}qv=new WeakMap,nf=new WeakMap,Zu=new WeakMap,s0=new WeakMap,ma=new WeakMap,SM=new WeakMap,_v=new WeakMap,oi=new WeakSet,Ts=function(){return M(this,nf)||te(this,nf,new Map)},zv=function(){return M(this,SM)||te(this,SM,new Map)},Kv=function(){if(!M(this,Zu)){const t=M(this,ma).createElement("div"),{style:e}=t;e.visibility="hidden",e.contain="strict",e.width=e.height=0,e.position="absolute",e.top=e.left=0,e.zIndex=-1;const i=M(this,ma).createElementNS(Ou,"svg");i.setAttribute("width",0),i.setAttribute("height",0),te(this,Zu,M(this,ma).createElementNS(Ou,"defs")),t.append(i),i.append(M(this,Zu)),M(this,ma).body.append(t)}return M(this,Zu)},DM=function(t){if(t.length===1){const a=t[0],l=new Array(256);for(let d=0;d<256;d++)l[d]=a[d]/255;const c=l.join(",");return[c,c,c]}const[e,i,r]=t,o=new Array(256),s=new Array(256),n=new Array(256);for(let a=0;a<256;a++)o[a]=e[a]/255,s[a]=i[a]/255,n[a]=r[a]/255;return[o.join(","),s.join(","),n.join(",")]},Jv=function(t){if(M(this,qv)===void 0){te(this,qv,"");const e=M(this,ma).URL;e!==M(this,ma).baseURI&&(oM(e)?Ui('#createUrl: ignore "data:"-URL for performance reasons.'):te(this,qv,e.split("#",1)[0]))}return`url(${M(this,qv)}#${t})`},A4e=function(t){const e=M(this,ma).createElementNS(Ou,"feColorMatrix");e.setAttribute("type","matrix"),e.setAttribute("values","0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.3 0.59 0.11 0 0"),t.append(e)},XV=function(t){const e=M(this,ma).createElementNS(Ou,"feColorMatrix");e.setAttribute("type","matrix"),e.setAttribute("values","0.2126 0.7152 0.0722 0 0 0.2126 0.7152 0.0722 0 0 0.2126 0.7152 0.0722 0 0 0 0 0 1 0"),t.append(e)},Yv=function(t){const e=M(this,ma).createElementNS(Ou,"filter");return e.setAttribute("color-interpolation-filters","sRGB"),e.setAttribute("id",t),M(this,oi,Kv).append(e),e},hy=function(t,e,i){const r=M(this,ma).createElementNS(Ou,e);r.setAttribute("type","discrete"),r.setAttribute("tableValues",i),t.append(r)},py=function(t,e,i,r){const o=M(this,ma).createElementNS(Ou,"feComponentTransfer");r.append(o),Z(this,oi,hy).call(this,o,"feFuncR",t),Z(this,oi,hy).call(this,o,"feFuncG",e),Z(this,oi,hy).call(this,o,"feFuncB",i)},$V=function(t,e){const i=M(this,ma).createElementNS(Ou,"feComponentTransfer");e.append(i),Z(this,oi,hy).call(this,i,"feFuncA",t)},gy=function(t){return M(this,oi,Kv).style.color=t,kV(getComputedStyle(M(this,oi,Kv)).getPropertyValue("color"))};class u4e{constructor({baseUrl:e=null}){this.baseUrl=e}async fetch({filename:e}){if(!this.baseUrl)throw new Error("Ensure that the `standardFontDataUrl` API parameter is provided.");if(!e)throw new Error("Font filename must be specified.");const i=`${this.baseUrl}${e}`;return this._fetch(i).catch(r=>{throw new Error(`Unable to load font data at: ${i}`)})}async _fetch(e){to("Abstract method `_fetch` called.")}}class h4e extends u4e{async _fetch(e){const i=await rM(e,"arraybuffer");return new Uint8Array(i)}}if(Ps){var eq=Promise.withResolvers(),PM=null;(async()=>{const t=await Promise.resolve().then(()=>Dx),e=await Promise.resolve().then(()=>Dx),i=await Promise.resolve().then(()=>Dx),r=await Promise.resolve().then(()=>Dx);let o,s;return new Map(Object.entries({fs:t,http:e,https:i,url:r,canvas:o,path2d:s}))})().then(t=>{PM=t,eq.resolve()},t=>{Ui(`loadPackages: ${t}`),PM=new Map,eq.resolve()})}class a0{static get promise(){return eq.promise}static get(e){return PM?.get(e)}}async function p4e(t){const e=await a0.get("fs").promises.readFile(t);return new Uint8Array(e)}class rxi extends d4e{}class oxi extends a4e{_createCanvas(e,i){return a0.get("canvas").createCanvas(e,i)}}class nxi extends l4e{async _fetch(e){return p4e(e)}}class sxi extends u4e{async _fetch(e){return p4e(e)}}const va={FILL:"Fill",STROKE:"Stroke",SHADING:"Shading"};function tq(t,e){if(!e)return;const i=e[2]-e[0],r=e[3]-e[1],o=new Path2D;o.rect(e[0],e[1],i,r),t.clip(o)}class iq{getPattern(){to("Abstract method `getPattern` called.")}}class axi extends iq{constructor(e){super(),this._type=e[1],this._bbox=e[2],this._colorStops=e[3],this._p0=e[4],this._p1=e[5],this._r0=e[6],this._r1=e[7],this.matrix=null}_createGradient(e){let i;this._type==="axial"?i=e.createLinearGradient(this._p0[0],this._p0[1],this._p1[0],this._p1[1]):this._type==="radial"&&(i=e.createRadialGradient(this._p0[0],this._p0[1],this._r0,this._p1[0],this._p1[1],this._r1));for(const r of this._colorStops)i.addColorStop(r[0],r[1]);return i}getPattern(e,i,r,o){let s;if(o===va.STROKE||o===va.FILL){const n=i.current.getClippedPathBoundingBox(o,Bo(e))||[0,0,0,0],a=Math.ceil(n[2]-n[0])||1,l=Math.ceil(n[3]-n[1])||1,c=i.cachedCanvases.getCanvas("pattern",a,l),d=c.context;d.clearRect(0,0,d.canvas.width,d.canvas.height),d.beginPath(),d.rect(0,0,d.canvas.width,d.canvas.height),d.translate(-n[0],-n[1]),r=ri.transform(r,[1,0,0,1,n[0],n[1]]),d.transform(...i.baseTransform),this.matrix&&d.transform(...this.matrix),tq(d,this._bbox),d.fillStyle=this._createGradient(d),d.fill(),s=e.createPattern(c.canvas,"no-repeat");const A=new DOMMatrix(r);s.setTransform(A)}else tq(e,this._bbox),s=this._createGradient(e);return s}}function rq(t,e,i,r,o,s,n,a){const l=e.coords,c=e.colors,d=t.data,A=t.width*4;let u;l[i+1]>l[r+1]&&(u=i,i=r,r=u,u=s,s=n,n=u),l[r+1]>l[o+1]&&(u=r,r=o,o=u,u=n,n=a,a=u),l[i+1]>l[r+1]&&(u=i,i=r,r=u,u=s,s=n,n=u);const h=(l[i]+e.offsetX)*e.scaleX,g=(l[i+1]+e.offsetY)*e.scaleY,p=(l[r]+e.offsetX)*e.scaleX,m=(l[r+1]+e.offsetY)*e.scaleY,f=(l[o]+e.offsetX)*e.scaleX,v=(l[o+1]+e.offsetY)*e.scaleY;if(g>=v)return;const C=c[s],y=c[s+1],I=c[s+2],B=c[n],E=c[n+1],k=c[n+2],Q=c[a],S=c[a+1],D=c[a+2],R=Math.round(g),T=Math.round(v);let H,q,O,j,X,ne,ie,we;for(let fe=R;fe<=T;fe++){if(fe<m){const $=fe<g?0:(g-fe)/(g-m);H=h-(h-p)*$,q=C-(C-B)*$,O=y-(y-E)*$,j=I-(I-k)*$}else{let $;fe>v?$=1:m===v?$=0:$=(m-fe)/(m-v),H=p-(p-f)*$,q=B-(B-Q)*$,O=E-(E-S)*$,j=k-(k-D)*$}let Ee;fe<g?Ee=0:fe>v?Ee=1:Ee=(g-fe)/(g-v),X=h-(h-f)*Ee,ne=C-(C-Q)*Ee,ie=y-(y-S)*Ee,we=I-(I-D)*Ee;const Me=Math.round(Math.min(H,X)),Ze=Math.round(Math.max(H,X));let De=A*fe+Me*4;for(let $=Me;$<=Ze;$++)Ee=(H-$)/(H-X),Ee<0?Ee=0:Ee>1&&(Ee=1),d[De++]=q-(q-ne)*Ee|0,d[De++]=O-(O-ie)*Ee|0,d[De++]=j-(j-we)*Ee|0,d[De++]=255}}function lxi(t,e,i){const r=e.coords,o=e.colors;let s,n;switch(e.type){case"lattice":const a=e.verticesPerRow,l=Math.floor(r.length/a)-1,c=a-1;for(s=0;s<l;s++){let d=s*a;for(let A=0;A<c;A++,d++)rq(t,i,r[d],r[d+1],r[d+a],o[d],o[d+1],o[d+a]),rq(t,i,r[d+a+1],r[d+1],r[d+a],o[d+a+1],o[d+1],o[d+a])}break;case"triangles":for(s=0,n=r.length;s<n;s+=3)rq(t,i,r[s],r[s+1],r[s+2],o[s],o[s+1],o[s+2]);break;default:throw new Error("illegal figure")}}class cxi extends iq{constructor(e){super(),this._coords=e[2],this._colors=e[3],this._figures=e[4],this._bounds=e[5],this._bbox=e[7],this._background=e[8],this.matrix=null}_createMeshCanvas(e,i,r){const o=Math.floor(this._bounds[0]),s=Math.floor(this._bounds[1]),n=Math.ceil(this._bounds[2])-o,a=Math.ceil(this._bounds[3])-s,l=Math.min(Math.ceil(Math.abs(n*e[0]*1.1)),3e3),c=Math.min(Math.ceil(Math.abs(a*e[1]*1.1)),3e3),d=n/l,A=a/c,u={coords:this._coords,colors:this._colors,offsetX:-o,offsetY:-s,scaleX:1/d,scaleY:1/A},h=l+2*2,g=c+2*2,p=r.getCanvas("mesh",h,g),m=p.context,f=m.createImageData(l,c);if(i){const v=f.data;for(let C=0,y=v.length;C<y;C+=4)v[C]=i[0],v[C+1]=i[1],v[C+2]=i[2],v[C+3]=255}for(const v of this._figures)lxi(f,v,u);return m.putImageData(f,2,2),{canvas:p.canvas,offsetX:o-2*d,offsetY:s-2*A,scaleX:d,scaleY:A}}getPattern(e,i,r,o){tq(e,this._bbox);let s;if(o===va.SHADING)s=ri.singularValueDecompose2dScale(Bo(e));else if(s=ri.singularValueDecompose2dScale(i.baseTransform),this.matrix){const a=ri.singularValueDecompose2dScale(this.matrix);s=[s[0]*a[0],s[1]*a[1]]}const n=this._createMeshCanvas(s,o===va.SHADING?null:this._background,i.cachedCanvases);return o!==va.SHADING&&(e.setTransform(...i.baseTransform),this.matrix&&e.transform(...this.matrix)),e.translate(n.offsetX,n.offsetY),e.scale(n.scaleX,n.scaleY),e.createPattern(n.canvas,"no-repeat")}}class dxi extends iq{getPattern(){return"hotpink"}}function Axi(t){switch(t[0]){case"RadialAxial":return new axi(t);case"Mesh":return new cxi(t);case"Dummy":return new dxi}throw new Error(`Unknown IR type: ${t[0]}`)}const g4e={COLORED:1,UNCOLORED:2},f4e=class e7e{constructor(e,i,r,o,s){this.operatorList=e[2],this.matrix=e[3],this.bbox=e[4],this.xstep=e[5],this.ystep=e[6],this.paintType=e[7],this.tilingType=e[8],this.color=i,this.ctx=r,this.canvasGraphicsFactory=o,this.baseTransform=s}createPatternCanvas(e){const{bbox:i,operatorList:r,paintType:o,tilingType:s,color:n,canvasGraphicsFactory:a}=this;let{xstep:l,ystep:c}=this;l=Math.abs(l),c=Math.abs(c),$Q("TilingType: "+s);const d=i[0],A=i[1],u=i[2],h=i[3],g=u-d,p=h-A,m=ri.singularValueDecompose2dScale(this.matrix),f=ri.singularValueDecompose2dScale(this.baseTransform),v=m[0]*f[0],C=m[1]*f[1];let y=g,I=p,B=!1,E=!1;const k=Math.ceil(l*v),Q=Math.ceil(c*C),S=Math.ceil(g*v),D=Math.ceil(p*C);k>=S?y=l:B=!0,Q>=D?I=c:E=!0;const R=this.getSizeAndScale(y,this.ctx.canvas.width,v),T=this.getSizeAndScale(I,this.ctx.canvas.height,C),H=e.cachedCanvases.getCanvas("pattern",R.size,T.size),q=H.context,O=a.createCanvasGraphics(q);if(O.groupLevel=e.groupLevel,this.setFillAndStrokeStyleToContext(O,o,n),q.translate(-R.scale*d,-T.scale*A),O.transform(R.scale,0,0,T.scale,0,0),q.save(),this.clipBbox(O,d,A,u,h),O.baseTransform=Bo(O.ctx),O.executeOperatorList(r),O.endDrawing(),q.restore(),B||E){const j=H.canvas;B&&(y=l),E&&(I=c);const X=this.getSizeAndScale(y,this.ctx.canvas.width,v),ne=this.getSizeAndScale(I,this.ctx.canvas.height,C),ie=X.size,we=ne.size,fe=e.cachedCanvases.getCanvas("pattern-workaround",ie,we),Ee=fe.context,Me=B?Math.floor(g/l):0,Ze=E?Math.floor(p/c):0;for(let De=0;De<=Me;De++)for(let $=0;$<=Ze;$++)Ee.drawImage(j,ie*De,we*$,ie,we,0,0,ie,we);return{canvas:fe.canvas,scaleX:X.scale,scaleY:ne.scale,offsetX:d,offsetY:A}}return{canvas:H.canvas,scaleX:R.scale,scaleY:T.scale,offsetX:d,offsetY:A}}getSizeAndScale(e,i,r){const o=Math.max(e7e.MAX_PATTERN_SIZE,i);let s=Math.ceil(e*r);return s>=o?s=o:r=s/e,{scale:r,size:s}}clipBbox(e,i,r,o,s){const n=o-i,a=s-r;e.ctx.rect(i,r,n,a),e.current.updateRectMinMax(Bo(e.ctx),[i,r,o,s]),e.clip(),e.endPath()}setFillAndStrokeStyleToContext(e,i,r){const o=e.ctx,s=e.current;switch(i){case g4e.COLORED:const n=this.ctx;o.fillStyle=n.fillStyle,o.strokeStyle=n.strokeStyle,s.fillColor=n.fillStyle,s.strokeColor=n.strokeStyle;break;case g4e.UNCOLORED:const a=ri.makeHexColor(r[0],r[1],r[2]);o.fillStyle=a,o.strokeStyle=a,s.fillColor=a,s.strokeColor=a;break;default:throw new Rki(`Unsupported paint type: ${i}`)}}getPattern(e,i,r,o){let s=r;o!==va.SHADING&&(s=ri.transform(s,i.baseTransform),this.matrix&&(s=ri.transform(s,this.matrix)));const n=this.createPatternCanvas(i);let a=new DOMMatrix(s);a=a.translate(n.offsetX,n.offsetY),a=a.scale(1/n.scaleX,1/n.scaleY);const l=e.createPattern(n.canvas,"repeat");return l.setTransform(a),l}};ei(f4e,"MAX_PATTERN_SIZE",3e3);let uxi=f4e;function hxi({src:t,srcPos:e=0,dest:i,width:r,height:o,nonBlackColor:s=4294967295,inverseDecode:n=!1}){const a=ga.isLittleEndian?4278190080:255,[l,c]=n?[s,a]:[a,s],d=r>>3,A=r&7,u=t.length;i=new Uint32Array(i.buffer);let h=0;for(let g=0;g<o;g++){for(const m=e+d;e<m;e++){const f=e<u?t[e]:255;i[h++]=f&128?c:l,i[h++]=f&64?c:l,i[h++]=f&32?c:l,i[h++]=f&16?c:l,i[h++]=f&8?c:l,i[h++]=f&4?c:l,i[h++]=f&2?c:l,i[h++]=f&1?c:l}if(A===0)continue;const p=e<u?t[e++]:255;for(let m=0;m<A;m++)i[h++]=p&1<<7-m?c:l}return{srcPos:e,destPos:h}}const m4e=16,v4e=100,pxi=15,C4e=10,y4e=1e3,Xa=16;function gxi(t,e){if(t._removeMirroring)throw new Error("Context is already forwarding operations.");t.__originalSave=t.save,t.__originalRestore=t.restore,t.__originalRotate=t.rotate,t.__originalScale=t.scale,t.__originalTranslate=t.translate,t.__originalTransform=t.transform,t.__originalSetTransform=t.setTransform,t.__originalResetTransform=t.resetTransform,t.__originalClip=t.clip,t.__originalMoveTo=t.moveTo,t.__originalLineTo=t.lineTo,t.__originalBezierCurveTo=t.bezierCurveTo,t.__originalRect=t.rect,t.__originalClosePath=t.closePath,t.__originalBeginPath=t.beginPath,t._removeMirroring=()=>{t.save=t.__originalSave,t.restore=t.__originalRestore,t.rotate=t.__originalRotate,t.scale=t.__originalScale,t.translate=t.__originalTranslate,t.transform=t.__originalTransform,t.setTransform=t.__originalSetTransform,t.resetTransform=t.__originalResetTransform,t.clip=t.__originalClip,t.moveTo=t.__originalMoveTo,t.lineTo=t.__originalLineTo,t.bezierCurveTo=t.__originalBezierCurveTo,t.rect=t.__originalRect,t.closePath=t.__originalClosePath,t.beginPath=t.__originalBeginPath,delete t._removeMirroring},t.save=function(){e.save(),this.__originalSave()},t.restore=function(){e.restore(),this.__originalRestore()},t.translate=function(i,r){e.translate(i,r),this.__originalTranslate(i,r)},t.scale=function(i,r){e.scale(i,r),this.__originalScale(i,r)},t.transform=function(i,r,o,s,n,a){e.transform(i,r,o,s,n,a),this.__originalTransform(i,r,o,s,n,a)},t.setTransform=function(i,r,o,s,n,a){e.setTransform(i,r,o,s,n,a),this.__originalSetTransform(i,r,o,s,n,a)},t.resetTransform=function(){e.resetTransform(),this.__originalResetTransform()},t.rotate=function(i){e.rotate(i),this.__originalRotate(i)},t.clip=function(i){e.clip(i),this.__originalClip(i)},t.moveTo=function(i,r){e.moveTo(i,r),this.__originalMoveTo(i,r)},t.lineTo=function(i,r){e.lineTo(i,r),this.__originalLineTo(i,r)},t.bezierCurveTo=function(i,r,o,s,n,a){e.bezierCurveTo(i,r,o,s,n,a),this.__originalBezierCurveTo(i,r,o,s,n,a)},t.rect=function(i,r,o,s){e.rect(i,r,o,s),this.__originalRect(i,r,o,s)},t.closePath=function(){e.closePath(),this.__originalClosePath()},t.beginPath=function(){e.beginPath(),this.__originalBeginPath()}}class fxi{constructor(e){this.canvasFactory=e,this.cache=Object.create(null)}getCanvas(e,i,r){let o;return this.cache[e]!==void 0?(o=this.cache[e],this.canvasFactory.reset(o,i,r)):(o=this.canvasFactory.create(i,r),this.cache[e]=o),o}delete(e){delete this.cache[e]}clear(){for(const e in this.cache){const i=this.cache[e];this.canvasFactory.destroy(i),delete this.cache[e]}}}function RM(t,e,i,r,o,s,n,a,l,c){const[d,A,u,h,g,p]=Bo(t);if(A===0&&u===0){const v=n*d+g,C=Math.round(v),y=a*h+p,I=Math.round(y),B=(n+l)*d+g,E=Math.abs(Math.round(B)-C)||1,k=(a+c)*h+p,Q=Math.abs(Math.round(k)-I)||1;return t.setTransform(Math.sign(d),0,0,Math.sign(h),C,I),t.drawImage(e,i,r,o,s,0,0,E,Q),t.setTransform(d,A,u,h,g,p),[E,Q]}if(d===0&&h===0){const v=a*u+g,C=Math.round(v),y=n*A+p,I=Math.round(y),B=(a+c)*u+g,E=Math.abs(Math.round(B)-C)||1,k=(n+l)*A+p,Q=Math.abs(Math.round(k)-I)||1;return t.setTransform(0,Math.sign(A),Math.sign(u),0,C,I),t.drawImage(e,i,r,o,s,0,0,Q,E),t.setTransform(d,A,u,h,g,p),[Q,E]}t.drawImage(e,i,r,o,s,n,a,l,c);const m=Math.hypot(d,A),f=Math.hypot(u,h);return[m*l,f*c]}function mxi(t){const{width:e,height:i}=t;if(e>y4e||i>y4e)return null;const r=1e3,o=new Uint8Array([0,2,4,0,1,0,5,4,8,10,0,8,0,2,1,0]),s=e+1;let n=new Uint8Array(s*(i+1)),a,l,c;const d=e+7&-8;let A=new Uint8Array(d*i),u=0;for(const m of t.data){let f=128;for(;f>0;)A[u++]=m&f?0:255,f>>=1}let h=0;for(u=0,A[u]!==0&&(n[0]=1,++h),l=1;l<e;l++)A[u]!==A[u+1]&&(n[l]=A[u]?2:1,++h),u++;for(A[u]!==0&&(n[l]=2,++h),a=1;a<i;a++){u=a*d,c=a*s,A[u-d]!==A[u]&&(n[c]=A[u]?1:8,++h);let m=(A[u]?4:0)+(A[u-d]?8:0);for(l=1;l<e;l++)m=(m>>2)+(A[u+1]?4:0)+(A[u-d+1]?8:0),o[m]&&(n[c+l]=o[m],++h),u++;if(A[u-d]!==A[u]&&(n[c+l]=A[u]?2:4,++h),h>r)return null}for(u=d*(i-1),c=a*s,A[u]!==0&&(n[c]=8,++h),l=1;l<e;l++)A[u]!==A[u+1]&&(n[c+l]=A[u]?4:8,++h),u++;if(A[u]!==0&&(n[c+l]=4,++h),h>r)return null;const g=new Int32Array([0,s,-1,0,-s,0,0,0,1]),p=new Path2D;for(a=0;h&&a<=i;a++){let m=a*s;const f=m+e;for(;m<f&&!n[m];)m++;if(m===f)continue;p.moveTo(m%s,a);const v=m;let C=n[m];do{const y=g[C];do m+=y;while(!n[m]);const I=n[m];I!==5&&I!==10?(C=I,n[m]=0):(C=I&51*C>>4,n[m]&=C>>2|C<<2),p.lineTo(m%s,m/s|0),n[m]||--h}while(v!==m);--a}return A=null,n=null,function(m){m.save(),m.scale(1/e,-1/i),m.translate(0,-i),m.fill(p),m.beginPath(),m.restore()}}class I4e{constructor(e,i){this.alphaIsShape=!1,this.fontSize=0,this.fontSizeScale=1,this.textMatrix=Bve,this.textMatrixScale=1,this.fontMatrix=hV,this.leading=0,this.x=0,this.y=0,this.lineX=0,this.lineY=0,this.charSpacing=0,this.wordSpacing=0,this.textHScale=1,this.textRenderingMode=Rs.FILL,this.textRise=0,this.fillColor="#000000",this.strokeColor="#000000",this.patternFill=!1,this.fillAlpha=1,this.strokeAlpha=1,this.lineWidth=1,this.activeSMask=null,this.transferMaps="none",this.startNewPathAndClipBox([0,0,e,i])}clone(){const e=Object.create(this);return e.clipBox=this.clipBox.slice(),e}setCurrentPoint(e,i){this.x=e,this.y=i}updatePathMinMax(e,i,r){[i,r]=ri.applyTransform([i,r],e),this.minX=Math.min(this.minX,i),this.minY=Math.min(this.minY,r),this.maxX=Math.max(this.maxX,i),this.maxY=Math.max(this.maxY,r)}updateRectMinMax(e,i){const r=ri.applyTransform(i,e),o=ri.applyTransform(i.slice(2),e),s=ri.applyTransform([i[0],i[3]],e),n=ri.applyTransform([i[2],i[1]],e);this.minX=Math.min(this.minX,r[0],o[0],s[0],n[0]),this.minY=Math.min(this.minY,r[1],o[1],s[1],n[1]),this.maxX=Math.max(this.maxX,r[0],o[0],s[0],n[0]),this.maxY=Math.max(this.maxY,r[1],o[1],s[1],n[1])}updateScalingPathMinMax(e,i){ri.scaleMinMax(e,i),this.minX=Math.min(this.minX,i[0]),this.minY=Math.min(this.minY,i[1]),this.maxX=Math.max(this.maxX,i[2]),this.maxY=Math.max(this.maxY,i[3])}updateCurvePathMinMax(e,i,r,o,s,n,a,l,c,d){const A=ri.bezierBoundingBox(i,r,o,s,n,a,l,c,d);d||this.updateRectMinMax(e,A)}getPathBoundingBox(e=va.FILL,i=null){const r=[this.minX,this.minY,this.maxX,this.maxY];if(e===va.STROKE){i||to("Stroke bounding box must include transform.");const o=ri.singularValueDecompose2dScale(i),s=o[0]*this.lineWidth/2,n=o[1]*this.lineWidth/2;r[0]-=s,r[1]-=n,r[2]+=s,r[3]+=n}return r}updateClipFromPath(){const e=ri.intersect(this.clipBox,this.getPathBoundingBox());this.startNewPathAndClipBox(e||[0,0,0,0])}isEmptyClip(){return this.minX===1/0}startNewPathAndClipBox(e){this.clipBox=e,this.minX=1/0,this.minY=1/0,this.maxX=0,this.maxY=0}getClippedPathBoundingBox(e=va.FILL,i=null){return ri.intersect(this.clipBox,this.getPathBoundingBox(e,i))}}function w4e(t,e){if(typeof ImageData<"u"&&e instanceof ImageData){t.putImageData(e,0,0);return}const i=e.height,r=e.width,o=i%Xa,s=(i-o)/Xa,n=o===0?s:s+1,a=t.createImageData(r,Xa);let l=0,c;const d=e.data,A=a.data;let u,h,g,p;if(e.kind===WQ.GRAYSCALE_1BPP){const m=d.byteLength,f=new Uint32Array(A.buffer,0,A.byteLength>>2),v=f.length,C=r+7>>3,y=4294967295,I=ga.isLittleEndian?4278190080:255;for(u=0;u<n;u++){for(g=u<s?Xa:o,c=0,h=0;h<g;h++){const B=m-l;let E=0;const k=B>C?r:B*8-7,Q=k&-8;let S=0,D=0;for(;E<Q;E+=8)D=d[l++],f[c++]=D&128?y:I,f[c++]=D&64?y:I,f[c++]=D&32?y:I,f[c++]=D&16?y:I,f[c++]=D&8?y:I,f[c++]=D&4?y:I,f[c++]=D&2?y:I,f[c++]=D&1?y:I;for(;E<k;E++)S===0&&(D=d[l++],S=128),f[c++]=D&S?y:I,S>>=1}for(;c<v;)f[c++]=0;t.putImageData(a,0,u*Xa)}}else if(e.kind===WQ.RGBA_32BPP){for(h=0,p=r*Xa*4,u=0;u<s;u++)A.set(d.subarray(l,l+p)),l+=p,t.putImageData(a,0,h),h+=Xa;u<n&&(p=r*o*4,A.set(d.subarray(l,l+p)),t.putImageData(a,0,h))}else if(e.kind===WQ.RGB_24BPP)for(g=Xa,p=r*g,u=0;u<n;u++){for(u>=s&&(g=o,p=r*g),c=0,h=p;h--;)A[c++]=d[l++],A[c++]=d[l++],A[c++]=d[l++],A[c++]=255;t.putImageData(a,0,u*Xa)}else throw new Error(`bad image kind: ${e.kind}`)}function b4e(t,e){if(e.bitmap){t.drawImage(e.bitmap,0,0);return}const i=e.height,r=e.width,o=i%Xa,s=(i-o)/Xa,n=o===0?s:s+1,a=t.createImageData(r,Xa);let l=0;const c=e.data,d=a.data;for(let A=0;A<n;A++){const u=A<s?Xa:o;({srcPos:l}=hxi({src:c,srcPos:l,dest:d,width:r,height:u,nonBlackColor:0})),t.putImageData(a,0,A*Xa)}}function fy(t,e){const i=["strokeStyle","fillStyle","fillRule","globalAlpha","lineWidth","lineCap","lineJoin","miterLimit","globalCompositeOperation","font","filter"];for(const r of i)t[r]!==void 0&&(e[r]=t[r]);t.setLineDash!==void 0&&(e.setLineDash(t.getLineDash()),e.lineDashOffset=t.lineDashOffset)}function FM(t){if(t.strokeStyle=t.fillStyle="#000000",t.fillRule="nonzero",t.globalAlpha=1,t.lineWidth=1,t.lineCap="butt",t.lineJoin="miter",t.miterLimit=10,t.globalCompositeOperation="source-over",t.font="10px sans-serif",t.setLineDash!==void 0&&(t.setLineDash([]),t.lineDashOffset=0),!Ps){const{filter:e}=t;e!=="none"&&e!==""&&(t.filter="none")}}function B4e(t,e){if(e)return!0;const i=ri.singularValueDecompose2dScale(t);i[0]=Math.fround(i[0]),i[1]=Math.fround(i[1]);const r=Math.fround((globalThis.devicePixelRatio||1)*xv.PDF_TO_CSS_UNITS);return i[0]<=r&&i[1]<=r}const vxi=["butt","round","square"],Cxi=["miter","round","bevel"],yxi={},E4e={};var Wv,oq,nq;const Ixi=class t7e{constructor(e,i,r,o,s,{optionalContentConfig:n,markedContentStack:a=null},l,c){le(this,Wv),this.ctx=e,this.current=new I4e(this.ctx.canvas.width,this.ctx.canvas.height),this.stateStack=[],this.pendingClip=null,this.pendingEOFill=!1,this.res=null,this.xobjs=null,this.commonObjs=i,this.objs=r,this.canvasFactory=o,this.filterFactory=s,this.groupStack=[],this.processingType3=null,this.baseTransform=null,this.baseTransformStack=[],this.groupLevel=0,this.smaskStack=[],this.smaskCounter=0,this.tempSMask=null,this.suspendedCtx=null,this.contentVisible=!0,this.markedContentStack=a||[],this.optionalContentConfig=n,this.cachedCanvases=new fxi(this.canvasFactory),this.cachedPatterns=new Map,this.annotationCanvasMap=l,this.viewportScale=1,this.outputScaleX=1,this.outputScaleY=1,this.pageColors=c,this._cachedScaleForStroking=[-1,0],this._cachedGetSinglePixelWidth=null,this._cachedBitmapsMap=new Map}getObject(e,i=null){return typeof e=="string"?e.startsWith("g_")?this.commonObjs.get(e):this.objs.get(e):i}beginDrawing({transform:e,viewport:i,transparency:r=!1,background:o=null}){const s=this.ctx.canvas.width,n=this.ctx.canvas.height,a=this.ctx.fillStyle;if(this.ctx.fillStyle=o||"#ffffff",this.ctx.fillRect(0,0,s,n),this.ctx.fillStyle=a,r){const l=this.cachedCanvases.getCanvas("transparent",s,n);this.compositeCtx=this.ctx,this.transparentCanvas=l.canvas,this.ctx=l.context,this.ctx.save(),this.ctx.transform(...Bo(this.compositeCtx))}this.ctx.save(),FM(this.ctx),e&&(this.ctx.transform(...e),this.outputScaleX=e[0],this.outputScaleY=e[0]),this.ctx.transform(...i.transform),this.viewportScale=i.scale,this.baseTransform=Bo(this.ctx)}executeOperatorList(e,i,r,o){const s=e.argsArray,n=e.fnArray;let a=i||0;const l=s.length;if(l===a)return a;const c=l-a>C4e&&typeof r=="function",d=c?Date.now()+pxi:0;let A=0;const u=this.commonObjs,h=this.objs;let g;for(;;){if(o!==void 0&&a===o.nextBreakPoint)return o.breakIt(a,r),a;if(g=n[a],g!==sd.dependency)this[g].apply(this,s[a]);else for(const p of s[a]){const m=p.startsWith("g_")?u:h;if(!m.has(p))return m.get(p,r),a}if(a++,a===l)return a;if(c&&++A>C4e){if(Date.now()>d)return r(),a;A=0}}}endDrawing(){Z(this,Wv,oq).call(this),this.cachedCanvases.clear(),this.cachedPatterns.clear();for(const e of this._cachedBitmapsMap.values()){for(const i of e.values())typeof HTMLCanvasElement<"u"&&i instanceof HTMLCanvasElement&&(i.width=i.height=0);e.clear()}this._cachedBitmapsMap.clear(),Z(this,Wv,nq).call(this)}_scaleImage(e,i){const r=e.width??e.displayWidth,o=e.height??e.displayHeight;let s=Math.max(Math.hypot(i[0],i[1]),1),n=Math.max(Math.hypot(i[2],i[3]),1),a=r,l=o,c="prescale1",d,A;for(;s>2&&a>1||n>2&&l>1;){let u=a,h=l;s>2&&a>1&&(u=a>=16384?Math.floor(a/2)-1||1:Math.ceil(a/2),s/=a/u),n>2&&l>1&&(h=l>=16384?Math.floor(l/2)-1||1:Math.ceil(l)/2,n/=l/h),d=this.cachedCanvases.getCanvas(c,u,h),A=d.context,A.clearRect(0,0,u,h),A.drawImage(e,0,0,a,l,0,0,u,h),e=d.canvas,a=u,l=h,c=c==="prescale1"?"prescale2":"prescale1"}return{img:e,paintWidth:a,paintHeight:l}}_createMaskCanvas(e){const i=this.ctx,{width:r,height:o}=e,s=this.current.fillColor,n=this.current.patternFill,a=Bo(i);let l,c,d,A;if((e.bitmap||e.data)&&e.count>1){const k=e.bitmap||e.data.buffer;c=JSON.stringify(n?a:[a.slice(0,4),s]),l=this._cachedBitmapsMap.get(k),l||(l=new Map,this._cachedBitmapsMap.set(k,l));const Q=l.get(c);if(Q&&!n){const S=Math.round(Math.min(a[0],a[2])+a[4]),D=Math.round(Math.min(a[1],a[3])+a[5]);return{canvas:Q,offsetX:S,offsetY:D}}d=Q}d||(A=this.cachedCanvases.getCanvas("maskCanvas",r,o),b4e(A.context,e));let u=ri.transform(a,[1/r,0,0,-1/o,0,0]);u=ri.transform(u,[1,0,0,1,0,-o]);const[h,g,p,m]=ri.getAxialAlignedBoundingBox([0,0,r,o],u),f=Math.round(p-h)||1,v=Math.round(m-g)||1,C=this.cachedCanvases.getCanvas("fillCanvas",f,v),y=C.context,I=h,B=g;y.translate(-I,-B),y.transform(...u),d||(d=this._scaleImage(A.canvas,Hu(y)),d=d.img,l&&n&&l.set(c,d)),y.imageSmoothingEnabled=B4e(Bo(y),e.interpolate),RM(y,d,0,0,d.width,d.height,0,0,r,o),y.globalCompositeOperation="source-in";const E=ri.transform(Hu(y),[1,0,0,1,-I,-B]);return y.fillStyle=n?s.getPattern(i,this,E,va.FILL):s,y.fillRect(0,0,r,o),l&&!n&&(this.cachedCanvases.delete("fillCanvas"),l.set(c,C.canvas)),{canvas:C.canvas,offsetX:Math.round(I),offsetY:Math.round(B)}}setLineWidth(e){e!==this.current.lineWidth&&(this._cachedScaleForStroking[0]=-1),this.current.lineWidth=e,this.ctx.lineWidth=e}setLineCap(e){this.ctx.lineCap=vxi[e]}setLineJoin(e){this.ctx.lineJoin=Cxi[e]}setMiterLimit(e){this.ctx.miterLimit=e}setDash(e,i){const r=this.ctx;r.setLineDash!==void 0&&(r.setLineDash(e),r.lineDashOffset=i)}setRenderingIntent(e){}setFlatness(e){}setGState(e){for(const[i,r]of e)switch(i){case"LW":this.setLineWidth(r);break;case"LC":this.setLineCap(r);break;case"LJ":this.setLineJoin(r);break;case"ML":this.setMiterLimit(r);break;case"D":this.setDash(r[0],r[1]);break;case"RI":this.setRenderingIntent(r);break;case"FL":this.setFlatness(r);break;case"Font":this.setFont(r[0],r[1]);break;case"CA":this.current.strokeAlpha=r;break;case"ca":this.current.fillAlpha=r,this.ctx.globalAlpha=r;break;case"BM":this.ctx.globalCompositeOperation=r;break;case"SMask":this.current.activeSMask=r?this.tempSMask:null,this.tempSMask=null,this.checkSMaskState();break;case"TR":this.ctx.filter=this.current.transferMaps=this.filterFactory.addFilter(r);break}}get inSMaskMode(){return!!this.suspendedCtx}checkSMaskState(){const e=this.inSMaskMode;this.current.activeSMask&&!e?this.beginSMaskMode():!this.current.activeSMask&&e&&this.endSMaskMode()}beginSMaskMode(){if(this.inSMaskMode)throw new Error("beginSMaskMode called while already in smask mode");const e=this.ctx.canvas.width,i=this.ctx.canvas.height,r="smaskGroupAt"+this.groupLevel,o=this.cachedCanvases.getCanvas(r,e,i);this.suspendedCtx=this.ctx,this.ctx=o.context;const s=this.ctx;s.setTransform(...Bo(this.suspendedCtx)),fy(this.suspendedCtx,s),gxi(s,this.suspendedCtx),this.setGState([["BM","source-over"],["ca",1],["CA",1]])}endSMaskMode(){if(!this.inSMaskMode)throw new Error("endSMaskMode called while not in smask mode");this.ctx._removeMirroring(),fy(this.ctx,this.suspendedCtx),this.ctx=this.suspendedCtx,this.suspendedCtx=null}compose(e){if(!this.current.activeSMask)return;e?(e[0]=Math.floor(e[0]),e[1]=Math.floor(e[1]),e[2]=Math.ceil(e[2]),e[3]=Math.ceil(e[3])):e=[0,0,this.ctx.canvas.width,this.ctx.canvas.height];const i=this.current.activeSMask,r=this.suspendedCtx;this.composeSMask(r,i,this.ctx,e),this.ctx.save(),this.ctx.setTransform(1,0,0,1,0,0),this.ctx.clearRect(0,0,this.ctx.canvas.width,this.ctx.canvas.height),this.ctx.restore()}composeSMask(e,i,r,o){const s=o[0],n=o[1],a=o[2]-s,l=o[3]-n;a===0||l===0||(this.genericComposeSMask(i.context,r,a,l,i.subtype,i.backdrop,i.transferMap,s,n,i.offsetX,i.offsetY),e.save(),e.globalAlpha=1,e.globalCompositeOperation="source-over",e.setTransform(1,0,0,1,0,0),e.drawImage(r.canvas,0,0),e.restore())}genericComposeSMask(e,i,r,o,s,n,a,l,c,d,A){let u=e.canvas,h=l-d,g=c-A;if(n){const m=ri.makeHexColor(...n);if(h<0||g<0||h+r>u.width||g+o>u.height){const f=this.cachedCanvases.getCanvas("maskExtension",r,o),v=f.context;v.drawImage(u,-h,-g),v.globalCompositeOperation="destination-atop",v.fillStyle=m,v.fillRect(0,0,r,o),v.globalCompositeOperation="source-over",u=f.canvas,h=g=0}else{e.save(),e.globalAlpha=1,e.setTransform(1,0,0,1,0,0);const f=new Path2D;f.rect(h,g,r,o),e.clip(f),e.globalCompositeOperation="destination-atop",e.fillStyle=m,e.fillRect(h,g,r,o),e.restore()}}i.save(),i.globalAlpha=1,i.setTransform(1,0,0,1,0,0),s==="Alpha"&&a?i.filter=this.filterFactory.addAlphaFilter(a):s==="Luminosity"&&(i.filter=this.filterFactory.addLuminosityFilter(a));const p=new Path2D;p.rect(l,c,r,o),i.clip(p),i.globalCompositeOperation="destination-in",i.drawImage(u,h,g,r,o,l,c,r,o),i.restore()}save(){this.inSMaskMode?(fy(this.ctx,this.suspendedCtx),this.suspendedCtx.save()):this.ctx.save();const e=this.current;this.stateStack.push(e),this.current=e.clone()}restore(){this.stateStack.length===0&&this.inSMaskMode&&this.endSMaskMode(),this.stateStack.length!==0&&(this.current=this.stateStack.pop(),this.inSMaskMode?(this.suspendedCtx.restore(),fy(this.suspendedCtx,this.ctx)):this.ctx.restore(),this.checkSMaskState(),this.pendingClip=null,this._cachedScaleForStroking[0]=-1,this._cachedGetSinglePixelWidth=null)}transform(e,i,r,o,s,n){this.ctx.transform(e,i,r,o,s,n),this._cachedScaleForStroking[0]=-1,this._cachedGetSinglePixelWidth=null}constructPath(e,i,r){const o=this.ctx,s=this.current;let n=s.x,a=s.y,l,c;const d=Bo(o),A=d[0]===0&&d[3]===0||d[1]===0&&d[2]===0,u=A?r.slice(0):null;for(let h=0,g=0,p=e.length;h<p;h++)switch(e[h]|0){case sd.rectangle:n=i[g++],a=i[g++];const m=i[g++],f=i[g++],v=n+m,C=a+f;o.moveTo(n,a),m===0||f===0?o.lineTo(v,C):(o.lineTo(v,a),o.lineTo(v,C),o.lineTo(n,C)),A||s.updateRectMinMax(d,[n,a,v,C]),o.closePath();break;case sd.moveTo:n=i[g++],a=i[g++],o.moveTo(n,a),A||s.updatePathMinMax(d,n,a);break;case sd.lineTo:n=i[g++],a=i[g++],o.lineTo(n,a),A||s.updatePathMinMax(d,n,a);break;case sd.curveTo:l=n,c=a,n=i[g+4],a=i[g+5],o.bezierCurveTo(i[g],i[g+1],i[g+2],i[g+3],n,a),s.updateCurvePathMinMax(d,l,c,i[g],i[g+1],i[g+2],i[g+3],n,a,u),g+=6;break;case sd.curveTo2:l=n,c=a,o.bezierCurveTo(n,a,i[g],i[g+1],i[g+2],i[g+3]),s.updateCurvePathMinMax(d,l,c,n,a,i[g],i[g+1],i[g+2],i[g+3],u),n=i[g+2],a=i[g+3],g+=4;break;case sd.curveTo3:l=n,c=a,n=i[g+2],a=i[g+3],o.bezierCurveTo(i[g],i[g+1],n,a,n,a),s.updateCurvePathMinMax(d,l,c,i[g],i[g+1],n,a,n,a,u),g+=4;break;case sd.closePath:o.closePath();break}A&&s.updateScalingPathMinMax(d,u),s.setCurrentPoint(n,a)}closePath(){this.ctx.closePath()}stroke(e=!0){const i=this.ctx,r=this.current.strokeColor;i.globalAlpha=this.current.strokeAlpha,this.contentVisible&&(typeof r=="object"&&r!=null&&r.getPattern?(i.save(),i.strokeStyle=r.getPattern(i,this,Hu(i),va.STROKE),this.rescaleAndStroke(!1),i.restore()):this.rescaleAndStroke(!0)),e&&this.consumePath(this.current.getClippedPathBoundingBox()),i.globalAlpha=this.current.fillAlpha}closeStroke(){this.closePath(),this.stroke()}fill(e=!0){const i=this.ctx,r=this.current.fillColor,o=this.current.patternFill;let s=!1;o&&(i.save(),i.fillStyle=r.getPattern(i,this,Hu(i),va.FILL),s=!0);const n=this.current.getClippedPathBoundingBox();this.contentVisible&&n!==null&&(this.pendingEOFill?(i.fill("evenodd"),this.pendingEOFill=!1):i.fill()),s&&i.restore(),e&&this.consumePath(n)}eoFill(){this.pendingEOFill=!0,this.fill()}fillStroke(){this.fill(!1),this.stroke(!1),this.consumePath()}eoFillStroke(){this.pendingEOFill=!0,this.fillStroke()}closeFillStroke(){this.closePath(),this.fillStroke()}closeEOFillStroke(){this.pendingEOFill=!0,this.closePath(),this.fillStroke()}endPath(){this.consumePath()}clip(){this.pendingClip=yxi}eoClip(){this.pendingClip=E4e}beginText(){this.current.textMatrix=Bve,this.current.textMatrixScale=1,this.current.x=this.current.lineX=0,this.current.y=this.current.lineY=0}endText(){const e=this.pendingTextPaths,i=this.ctx;if(e===void 0){i.beginPath();return}i.save(),i.beginPath();for(const r of e)i.setTransform(...r.transform),i.translate(r.x,r.y),r.addToPath(i,r.fontSize);i.restore(),i.clip(),i.beginPath(),delete this.pendingTextPaths}setCharSpacing(e){this.current.charSpacing=e}setWordSpacing(e){this.current.wordSpacing=e}setHScale(e){this.current.textHScale=e/100}setLeading(e){this.current.leading=-e}setFont(e,i){var r;const o=this.commonObjs.get(e),s=this.current;if(!o)throw new Error(`Can't find font for ${e}`);if(s.fontMatrix=o.fontMatrix||hV,(s.fontMatrix[0]===0||s.fontMatrix[3]===0)&&Ui("Invalid font matrix for font "+e),i<0?(i=-i,s.fontDirection=-1):s.fontDirection=1,this.current.font=o,this.current.fontSize=i,o.isType3Font)return;const n=o.loadedName||"sans-serif",a=((r=o.systemFontInfo)==null?void 0:r.css)||`"${n}", ${o.fallbackName}`;let l="normal";o.black?l="900":o.bold&&(l="bold");const c=o.italic?"italic":"normal";let d=i;i<m4e?d=m4e:i>v4e&&(d=v4e),this.current.fontSizeScale=i/d,this.ctx.font=`${c} ${l} ${d}px ${a}`}setTextRenderingMode(e){this.current.textRenderingMode=e}setTextRise(e){this.current.textRise=e}moveText(e,i){this.current.x=this.current.lineX+=e,this.current.y=this.current.lineY+=i}setLeadingMoveText(e,i){this.setLeading(-i),this.moveText(e,i)}setTextMatrix(e,i,r,o,s,n){this.current.textMatrix=[e,i,r,o,s,n],this.current.textMatrixScale=Math.hypot(e,i),this.current.x=this.current.lineX=0,this.current.y=this.current.lineY=0}nextLine(){this.moveText(0,this.current.leading)}paintChar(e,i,r,o){const s=this.ctx,n=this.current,a=n.font,l=n.textRenderingMode,c=n.fontSize/n.fontSizeScale,d=l&Rs.FILL_STROKE_MASK,A=!!(l&Rs.ADD_TO_PATH_FLAG),u=n.patternFill&&!a.missingFile;let h;(a.disableFontFace||A||u)&&(h=a.getPathGenerator(this.commonObjs,e)),a.disableFontFace||u?(s.save(),s.translate(i,r),s.beginPath(),h(s,c),o&&s.setTransform(...o),(d===Rs.FILL||d===Rs.FILL_STROKE)&&s.fill(),(d===Rs.STROKE||d===Rs.FILL_STROKE)&&s.stroke(),s.restore()):((d===Rs.FILL||d===Rs.FILL_STROKE)&&s.fillText(e,i,r),(d===Rs.STROKE||d===Rs.FILL_STROKE)&&s.strokeText(e,i,r)),A&&(this.pendingTextPaths||(this.pendingTextPaths=[])).push({transform:Bo(s),x:i,y:r,fontSize:c,addToPath:h})}get isFontSubpixelAAEnabled(){const{context:e}=this.cachedCanvases.getCanvas("isFontSubpixelAAEnabled",10,10);e.scale(1.5,1),e.fillText("I",0,10);const i=e.getImageData(0,0,10,10).data;let r=!1;for(let o=3;o<i.length;o+=4)if(i[o]>0&&i[o]<255){r=!0;break}return $i(this,"isFontSubpixelAAEnabled",r)}showText(e){const i=this.current,r=i.font;if(r.isType3Font)return this.showType3Text(e);const o=i.fontSize;if(o===0)return;const s=this.ctx,n=i.fontSizeScale,a=i.charSpacing,l=i.wordSpacing,c=i.fontDirection,d=i.textHScale*c,A=e.length,u=r.vertical,h=u?1:-1,g=r.defaultVMetrics,p=o*i.fontMatrix[0],m=i.textRenderingMode===Rs.FILL&&!r.disableFontFace&&!i.patternFill;s.save(),s.transform(...i.textMatrix),s.translate(i.x,i.y+i.textRise),c>0?s.scale(d,-1):s.scale(d,1);let f;if(i.patternFill){s.save();const B=i.fillColor.getPattern(s,this,Hu(s),va.FILL);f=Bo(s),s.restore(),s.fillStyle=B}let v=i.lineWidth;const C=i.textMatrixScale;if(C===0||v===0){const B=i.textRenderingMode&Rs.FILL_STROKE_MASK;(B===Rs.STROKE||B===Rs.FILL_STROKE)&&(v=this.getSinglePixelWidth())}else v/=C;if(n!==1&&(s.scale(n,n),v/=n),s.lineWidth=v,r.isInvalidPDFjsFont){const B=[];let E=0;for(const k of e)B.push(k.unicode),E+=k.width;s.fillText(B.join(""),0,0),i.x+=E*p*d,s.restore(),this.compose();return}let y=0,I;for(I=0;I<A;++I){const B=e[I];if(typeof B=="number"){y+=h*B*o/1e3;continue}let E=!1;const k=(B.isSpace?l:0)+a,Q=B.fontChar,S=B.accent;let D,R,T=B.width;if(u){const q=B.vmetric||g,O=-(B.vmetric?q[1]:T*.5)*p,j=q[2]*p;T=q?-q[0]:T,D=O/n,R=(y+j)/n}else D=y/n,R=0;if(r.remeasure&&T>0){const q=s.measureText(Q).width*1e3/o*n;if(T<q&&this.isFontSubpixelAAEnabled){const O=T/q;E=!0,s.save(),s.scale(O,1),D/=O}else T!==q&&(D+=(T-q)/2e3*o/n)}if(this.contentVisible&&(B.isInFont||r.missingFile)){if(m&&!S)s.fillText(Q,D,R);else if(this.paintChar(Q,D,R,f),S){const q=D+o*S.offset.x/n,O=R-o*S.offset.y/n;this.paintChar(S.fontChar,q,O,f)}}const H=u?T*p-k*c:T*p+k*c;y+=H,E&&s.restore()}u?i.y-=y:i.x+=y*d,s.restore(),this.compose()}showType3Text(e){const i=this.ctx,r=this.current,o=r.font,s=r.fontSize,n=r.fontDirection,a=o.vertical?1:-1,l=r.charSpacing,c=r.wordSpacing,d=r.textHScale*n,A=r.fontMatrix||hV,u=e.length,h=r.textRenderingMode===Rs.INVISIBLE;let g,p,m,f;if(!(h||s===0)){for(this._cachedScaleForStroking[0]=-1,this._cachedGetSinglePixelWidth=null,i.save(),i.transform(...r.textMatrix),i.translate(r.x,r.y),i.scale(d,n),g=0;g<u;++g){if(p=e[g],typeof p=="number"){f=a*p*s/1e3,this.ctx.translate(f,0),r.x+=f*d;continue}const v=(p.isSpace?c:0)+l,C=o.charProcOperatorList[p.operatorListId];if(!C){Ui(`Type3 character "${p.operatorListId}" is not available.`);continue}this.contentVisible&&(this.processingType3=p,this.save(),i.scale(s,s),i.transform(...A),this.executeOperatorList(C),this.restore()),m=ri.applyTransform([p.width,0],A)[0]*s+v,i.translate(m,0),r.x+=m*d}i.restore(),this.processingType3=null}}setCharWidth(e,i){}setCharWidthAndBounds(e,i,r,o,s,n){this.ctx.rect(r,o,s-r,n-o),this.ctx.clip(),this.endPath()}getColorN_Pattern(e){let i;if(e[0]==="TilingPattern"){const r=e[1],o=this.baseTransform||Bo(this.ctx),s={createCanvasGraphics:n=>new t7e(n,this.commonObjs,this.objs,this.canvasFactory,this.filterFactory,{optionalContentConfig:this.optionalContentConfig,markedContentStack:this.markedContentStack})};i=new uxi(e,r,this.ctx,s,o)}else i=this._getPattern(e[1],e[2]);return i}setStrokeColorN(){this.current.strokeColor=this.getColorN_Pattern(arguments)}setFillColorN(){this.current.fillColor=this.getColorN_Pattern(arguments),this.current.patternFill=!0}setStrokeRGBColor(e,i,r){this.ctx.strokeStyle=this.current.strokeColor=ri.makeHexColor(e,i,r)}setStrokeTransparent(){this.ctx.strokeStyle=this.current.strokeColor="transparent"}setFillRGBColor(e,i,r){this.ctx.fillStyle=this.current.fillColor=ri.makeHexColor(e,i,r),this.current.patternFill=!1}setFillTransparent(){this.ctx.fillStyle=this.current.fillColor="transparent",this.current.patternFill=!1}_getPattern(e,i=null){let r;return this.cachedPatterns.has(e)?r=this.cachedPatterns.get(e):(r=Axi(this.getObject(e)),this.cachedPatterns.set(e,r)),i&&(r.matrix=i),r}shadingFill(e){if(!this.contentVisible)return;const i=this.ctx;this.save();const r=this._getPattern(e);i.fillStyle=r.getPattern(i,this,Hu(i),va.SHADING);const o=Hu(i);if(o){const{width:s,height:n}=i.canvas,[a,l,c,d]=ri.getAxialAlignedBoundingBox([0,0,s,n],o);this.ctx.fillRect(a,l,c-a,d-l)}else this.ctx.fillRect(-1e10,-1e10,2e10,2e10);this.compose(this.current.getClippedPathBoundingBox()),this.restore()}beginInlineImage(){to("Should not call beginInlineImage")}beginImageData(){to("Should not call beginImageData")}paintFormXObjectBegin(e,i){if(this.contentVisible&&(this.save(),this.baseTransformStack.push(this.baseTransform),e&&this.transform(...e),this.baseTransform=Bo(this.ctx),i)){const r=i[2]-i[0],o=i[3]-i[1];this.ctx.rect(i[0],i[1],r,o),this.current.updateRectMinMax(Bo(this.ctx),i),this.clip(),this.endPath()}}paintFormXObjectEnd(){this.contentVisible&&(this.restore(),this.baseTransform=this.baseTransformStack.pop())}beginGroup(e){if(!this.contentVisible)return;this.save(),this.inSMaskMode&&(this.endSMaskMode(),this.current.activeSMask=null);const i=this.ctx;e.isolated||$Q("TODO: Support non-isolated groups."),e.knockout&&Ui("Knockout groups not supported.");const r=Bo(i);if(e.matrix&&i.transform(...e.matrix),!e.bbox)throw new Error("Bounding box is required.");let o=ri.getAxialAlignedBoundingBox(e.bbox,Bo(i));const s=[0,0,i.canvas.width,i.canvas.height];o=ri.intersect(o,s)||[0,0,0,0];const n=Math.floor(o[0]),a=Math.floor(o[1]),l=Math.max(Math.ceil(o[2])-n,1),c=Math.max(Math.ceil(o[3])-a,1);this.current.startNewPathAndClipBox([0,0,l,c]);let d="groupAt"+this.groupLevel;e.smask&&(d+="_smask_"+this.smaskCounter++%2);const A=this.cachedCanvases.getCanvas(d,l,c),u=A.context;u.translate(-n,-a),u.transform(...r),e.smask?this.smaskStack.push({canvas:A.canvas,context:u,offsetX:n,offsetY:a,subtype:e.smask.subtype,backdrop:e.smask.backdrop,transferMap:e.smask.transferMap||null,startTransformInverse:null}):(i.setTransform(1,0,0,1,0,0),i.translate(n,a),i.save()),fy(i,u),this.ctx=u,this.setGState([["BM","source-over"],["ca",1],["CA",1]]),this.groupStack.push(i),this.groupLevel++}endGroup(e){if(!this.contentVisible)return;this.groupLevel--;const i=this.ctx,r=this.groupStack.pop();if(this.ctx=r,this.ctx.imageSmoothingEnabled=!1,e.smask)this.tempSMask=this.smaskStack.pop(),this.restore();else{this.ctx.restore();const o=Bo(this.ctx);this.restore(),this.ctx.save(),this.ctx.setTransform(...o);const s=ri.getAxialAlignedBoundingBox([0,0,i.canvas.width,i.canvas.height],o);this.ctx.drawImage(i.canvas,0,0),this.ctx.restore(),this.compose(s)}}beginAnnotation(e,i,r,o,s){if(Z(this,Wv,oq).call(this),FM(this.ctx),this.ctx.save(),this.save(),this.baseTransform&&this.ctx.setTransform(...this.baseTransform),i){const n=i[2]-i[0],a=i[3]-i[1];if(s&&this.annotationCanvasMap){r=r.slice(),r[4]-=i[0],r[5]-=i[1],i=i.slice(),i[0]=i[1]=0,i[2]=n,i[3]=a;const[l,c]=ri.singularValueDecompose2dScale(Bo(this.ctx)),{viewportScale:d}=this,A=Math.ceil(n*this.outputScaleX*d),u=Math.ceil(a*this.outputScaleY*d);this.annotationCanvas=this.canvasFactory.create(A,u);const{canvas:h,context:g}=this.annotationCanvas;this.annotationCanvasMap.set(e,h),this.annotationCanvas.savedCtx=this.ctx,this.ctx=g,this.ctx.save(),this.ctx.setTransform(l,0,0,-c,0,a*c),FM(this.ctx)}else FM(this.ctx),this.endPath(),this.ctx.rect(i[0],i[1],n,a),this.ctx.clip(),this.ctx.beginPath()}this.current=new I4e(this.ctx.canvas.width,this.ctx.canvas.height),this.transform(...r),this.transform(...o)}endAnnotation(){this.annotationCanvas&&(this.ctx.restore(),Z(this,Wv,nq).call(this),this.ctx=this.annotationCanvas.savedCtx,delete this.annotationCanvas.savedCtx,delete this.annotationCanvas)}paintImageMaskXObject(e){if(!this.contentVisible)return;const i=e.count;e=this.getObject(e.data,e),e.count=i;const r=this.ctx,o=this.processingType3;if(o&&(o.compiled===void 0&&(o.compiled=mxi(e)),o.compiled)){o.compiled(r);return}const s=this._createMaskCanvas(e),n=s.canvas;r.save(),r.setTransform(1,0,0,1,0,0),r.drawImage(n,s.offsetX,s.offsetY),r.restore(),this.compose()}paintImageMaskXObjectRepeat(e,i,r=0,o=0,s,n){if(!this.contentVisible)return;e=this.getObject(e.data,e);const a=this.ctx;a.save();const l=Bo(a);a.transform(i,r,o,s,0,0);const c=this._createMaskCanvas(e);a.setTransform(1,0,0,1,c.offsetX-l[4],c.offsetY-l[5]);for(let d=0,A=n.length;d<A;d+=2){const u=ri.transform(l,[i,r,o,s,n[d],n[d+1]]),[h,g]=ri.applyTransform([0,0],u);a.drawImage(c.canvas,h,g)}a.restore(),this.compose()}paintImageMaskXObjectGroup(e){if(!this.contentVisible)return;const i=this.ctx,r=this.current.fillColor,o=this.current.patternFill;for(const s of e){const{data:n,width:a,height:l,transform:c}=s,d=this.cachedCanvases.getCanvas("maskCanvas",a,l),A=d.context;A.save();const u=this.getObject(n,s);b4e(A,u),A.globalCompositeOperation="source-in",A.fillStyle=o?r.getPattern(A,this,Hu(i),va.FILL):r,A.fillRect(0,0,a,l),A.restore(),i.save(),i.transform(...c),i.scale(1,-1),RM(i,d.canvas,0,0,a,l,0,-1,1,1),i.restore()}this.compose()}paintImageXObject(e){if(!this.contentVisible)return;const i=this.getObject(e);if(!i){Ui("Dependent image isn't ready yet");return}this.paintInlineImageXObject(i)}paintImageXObjectRepeat(e,i,r,o){if(!this.contentVisible)return;const s=this.getObject(e);if(!s){Ui("Dependent image isn't ready yet");return}const n=s.width,a=s.height,l=[];for(let c=0,d=o.length;c<d;c+=2)l.push({transform:[i,0,0,r,o[c],o[c+1]],x:0,y:0,w:n,h:a});this.paintInlineImageXObjectGroup(s,l)}applyTransferMapsToCanvas(e){return this.current.transferMaps!=="none"&&(e.filter=this.current.transferMaps,e.drawImage(e.canvas,0,0),e.filter="none"),e.canvas}applyTransferMapsToBitmap(e){if(this.current.transferMaps==="none")return e.bitmap;const{bitmap:i,width:r,height:o}=e,s=this.cachedCanvases.getCanvas("inlineImage",r,o),n=s.context;return n.filter=this.current.transferMaps,n.drawImage(i,0,0),n.filter="none",s.canvas}paintInlineImageXObject(e){if(!this.contentVisible)return;const i=e.width,r=e.height,o=this.ctx;if(this.save(),!Ps){const{filter:a}=o;a!=="none"&&a!==""&&(o.filter="none")}o.scale(1/i,-1/r);let s;if(e.bitmap)s=this.applyTransferMapsToBitmap(e);else if(typeof HTMLElement=="function"&&e instanceof HTMLElement||!e.data)s=e;else{const a=this.cachedCanvases.getCanvas("inlineImage",i,r).context;w4e(a,e),s=this.applyTransferMapsToCanvas(a)}const n=this._scaleImage(s,Hu(o));o.imageSmoothingEnabled=B4e(Bo(o),e.interpolate),RM(o,n.img,0,0,n.paintWidth,n.paintHeight,0,-r,i,r),this.compose(),this.restore()}paintInlineImageXObjectGroup(e,i){if(!this.contentVisible)return;const r=this.ctx;let o;if(e.bitmap)o=e.bitmap;else{const s=e.width,n=e.height,a=this.cachedCanvases.getCanvas("inlineImage",s,n).context;w4e(a,e),o=this.applyTransferMapsToCanvas(a)}for(const s of i)r.save(),r.transform(...s.transform),r.scale(1,-1),RM(r,o,s.x,s.y,s.w,s.h,0,-1,1,1),r.restore();this.compose()}paintSolidColorImageMask(){this.contentVisible&&(this.ctx.fillRect(0,0,1,1),this.compose())}markPoint(e){}markPointProps(e,i){}beginMarkedContent(e){this.markedContentStack.push({visible:!0})}beginMarkedContentProps(e,i){e==="OC"?this.markedContentStack.push({visible:this.optionalContentConfig.isVisible(i)}):this.markedContentStack.push({visible:!0}),this.contentVisible=this.isContentVisible()}endMarkedContent(){this.markedContentStack.pop(),this.contentVisible=this.isContentVisible()}beginCompat(){}endCompat(){}consumePath(e){const i=this.current.isEmptyClip();this.pendingClip&&this.current.updateClipFromPath(),this.pendingClip||this.compose(e);const r=this.ctx;this.pendingClip&&(i||(this.pendingClip===E4e?r.clip("evenodd"):r.clip()),this.pendingClip=null),this.current.startNewPathAndClipBox(this.current.clipBox),r.beginPath()}getSinglePixelWidth(){if(!this._cachedGetSinglePixelWidth){const e=Bo(this.ctx);if(e[1]===0&&e[2]===0)this._cachedGetSinglePixelWidth=1/Math.min(Math.abs(e[0]),Math.abs(e[3]));else{const i=Math.abs(e[0]*e[3]-e[2]*e[1]),r=Math.hypot(e[0],e[2]),o=Math.hypot(e[1],e[3]);this._cachedGetSinglePixelWidth=Math.max(r,o)/i}}return this._cachedGetSinglePixelWidth}getScaleForStroking(){if(this._cachedScaleForStroking[0]===-1){const{lineWidth:e}=this.current,{a:i,b:r,c:o,d:s}=this.ctx.getTransform();let n,a;if(r===0&&o===0){const l=Math.abs(i),c=Math.abs(s);if(l===c)if(e===0)n=a=1/l;else{const d=l*e;n=a=d<1?1/d:1}else if(e===0)n=1/l,a=1/c;else{const d=l*e,A=c*e;n=d<1?1/d:1,a=A<1?1/A:1}}else{const l=Math.abs(i*s-r*o),c=Math.hypot(i,r),d=Math.hypot(o,s);if(e===0)n=d/l,a=c/l;else{const A=e*l;n=d>A?d/A:1,a=c>A?c/A:1}}this._cachedScaleForStroking[0]=n,this._cachedScaleForStroking[1]=a}return this._cachedScaleForStroking}rescaleAndStroke(e){const{ctx:i}=this,{lineWidth:r}=this.current,[o,s]=this.getScaleForStroking();if(i.lineWidth=r||1,o===1&&s===1){i.stroke();return}const n=i.getLineDash();if(e&&i.save(),i.scale(o,s),n.length>0){const a=Math.max(o,s);i.setLineDash(n.map(l=>l/a)),i.lineDashOffset/=a}i.stroke(),e&&i.restore()}isContentVisible(){for(let e=this.markedContentStack.length-1;e>=0;e--)if(!this.markedContentStack[e].visible)return!1;return!0}};Wv=new WeakSet,oq=function(){for(;this.stateStack.length||this.inSMaskMode;)this.restore();this.current.activeSMask=null,this.ctx.restore(),this.transparentCanvas&&(this.ctx=this.compositeCtx,this.ctx.save(),this.ctx.setTransform(1,0,0,1,0,0),this.ctx.drawImage(this.transparentCanvas,0,0),this.ctx.restore(),this.transparentCanvas=null)},nq=function(){if(this.pageColors){const t=this.filterFactory.addHCMFilter(this.pageColors.foreground,this.pageColors.background);if(t!=="none"){const e=this.ctx.filter;this.ctx.filter=t,this.ctx.drawImage(this.ctx.canvas,0,0),this.ctx.filter=e}}};let LM=Ixi;for(const t in sd)LM.prototype[t]!==void 0&&(LM.prototype[sd[t]]=LM.prototype[t]);var TM,NM;class l0{static get workerPort(){return M(this,TM)}static set workerPort(e){if(!(typeof Worker<"u"&&e instanceof Worker)&&e!==null)throw new Error("Invalid `workerPort` type.");te(this,TM,e)}static get workerSrc(){return M(this,NM)}static set workerSrc(e){if(typeof e!="string")throw new Error("Invalid `workerSrc` type.");te(this,NM,e)}}TM=new WeakMap,NM=new WeakMap,le(l0,TM,null),le(l0,NM,"");const UM={UNKNOWN:0,DATA:1,ERROR:2},ln={UNKNOWN:0,CANCEL:1,CANCEL_COMPLETE:2,CLOSE:3,ENQUEUE:4,ERROR:5,PULL:6,PULL_COMPLETE:7,START_COMPLETE:8};function Dl(t){switch(t instanceof Error||typeof t=="object"&&t!==null||to('wrapReason: Expected "reason" to be a (possibly cloned) Error.'),t.name){case"AbortException":return new _g(t.message);case"MissingPDFException":return new qg(t.message);case"PasswordException":return new gV(t.message,t.code);case"UnexpectedResponseException":return new eM(t.message,t.status);case"UnknownErrorException":return new fV(t.message,t.details);default:return new fV(t.message,t.toString())}}var my,c0,k4e,x4e,Q4e,OM,M4e;let vy=(M4e=class{constructor(t,e,i){le(this,c0),le(this,my,new AbortController),this.sourceName=t,this.targetName=e,this.comObj=i,this.callbackId=1,this.streamId=1,this.streamSinks=Object.create(null),this.streamControllers=Object.create(null),this.callbackCapabilities=Object.create(null),this.actionHandler=Object.create(null),i.addEventListener("message",Z(this,c0,k4e).bind(this),{signal:M(this,my).signal})}on(t,e){const i=this.actionHandler;if(i[t])throw new Error(`There is already an actionName called "${t}"`);i[t]=e}send(t,e,i){this.comObj.postMessage({sourceName:this.sourceName,targetName:this.targetName,action:t,data:e},i)}sendWithPromise(t,e,i){const r=this.callbackId++,o=Promise.withResolvers();this.callbackCapabilities[r]=o;try{this.comObj.postMessage({sourceName:this.sourceName,targetName:this.targetName,action:t,callbackId:r,data:e},i)}catch(s){o.reject(s)}return o.promise}sendWithStream(t,e,i,r){const o=this.streamId++,s=this.sourceName,n=this.targetName,a=this.comObj;return new ReadableStream({start:l=>{const c=Promise.withResolvers();return this.streamControllers[o]={controller:l,startCall:c,pullCall:null,cancelCall:null,isClosed:!1},a.postMessage({sourceName:s,targetName:n,action:t,streamId:o,data:e,desiredSize:l.desiredSize},r),c.promise},pull:l=>{const c=Promise.withResolvers();return this.streamControllers[o].pullCall=c,a.postMessage({sourceName:s,targetName:n,stream:ln.PULL,streamId:o,desiredSize:l.desiredSize}),c.promise},cancel:l=>{In(l instanceof Error,"cancel must have a valid reason");const c=Promise.withResolvers();return this.streamControllers[o].cancelCall=c,this.streamControllers[o].isClosed=!0,a.postMessage({sourceName:s,targetName:n,stream:ln.CANCEL,streamId:o,reason:Dl(l)}),c.promise}},i)}destroy(){var t;(t=M(this,my))==null||t.abort(),te(this,my,null)}},my=new WeakMap,c0=new WeakSet,k4e=function({data:t}){if(t.targetName!==this.sourceName)return;if(t.stream){Z(this,c0,Q4e).call(this,t);return}if(t.callback){const i=t.callbackId,r=this.callbackCapabilities[i];if(!r)throw new Error(`Cannot resolve callback ${i}`);if(delete this.callbackCapabilities[i],t.callback===UM.DATA)r.resolve(t.data);else if(t.callback===UM.ERROR)r.reject(Dl(t.reason));else throw new Error("Unexpected callback case");return}const e=this.actionHandler[t.action];if(!e)throw new Error(`Unknown action from worker: ${t.action}`);if(t.callbackId){const i=this.sourceName,r=t.sourceName,o=this.comObj;new Promise(function(s){s(e(t.data))}).then(function(s){o.postMessage({sourceName:i,targetName:r,callback:UM.DATA,callbackId:t.callbackId,data:s})},function(s){o.postMessage({sourceName:i,targetName:r,callback:UM.ERROR,callbackId:t.callbackId,reason:Dl(s)})});return}if(t.streamId){Z(this,c0,x4e).call(this,t);return}e(t.data)},x4e=function(t){const e=t.streamId,i=this.sourceName,r=t.sourceName,o=this.comObj,s=this,n=this.actionHandler[t.action],a={enqueue(l,c=1,d){if(this.isCancelled)return;const A=this.desiredSize;this.desiredSize-=c,A>0&&this.desiredSize<=0&&(this.sinkCapability=Promise.withResolvers(),this.ready=this.sinkCapability.promise),o.postMessage({sourceName:i,targetName:r,stream:ln.ENQUEUE,streamId:e,chunk:l},d)},close(){this.isCancelled||(this.isCancelled=!0,o.postMessage({sourceName:i,targetName:r,stream:ln.CLOSE,streamId:e}),delete s.streamSinks[e])},error(l){In(l instanceof Error,"error must have a valid reason"),!this.isCancelled&&(this.isCancelled=!0,o.postMessage({sourceName:i,targetName:r,stream:ln.ERROR,streamId:e,reason:Dl(l)}))},sinkCapability:Promise.withResolvers(),onPull:null,onCancel:null,isCancelled:!1,desiredSize:t.desiredSize,ready:null};a.sinkCapability.resolve(),a.ready=a.sinkCapability.promise,this.streamSinks[e]=a,new Promise(function(l){l(n(t.data,a))}).then(function(){o.postMessage({sourceName:i,targetName:r,stream:ln.START_COMPLETE,streamId:e,success:!0})},function(l){o.postMessage({sourceName:i,targetName:r,stream:ln.START_COMPLETE,streamId:e,reason:Dl(l)})})},Q4e=function(t){const e=t.streamId,i=this.sourceName,r=t.sourceName,o=this.comObj,s=this.streamControllers[e],n=this.streamSinks[e];switch(t.stream){case ln.START_COMPLETE:t.success?s.startCall.resolve():s.startCall.reject(Dl(t.reason));break;case ln.PULL_COMPLETE:t.success?s.pullCall.resolve():s.pullCall.reject(Dl(t.reason));break;case ln.PULL:if(!n){o.postMessage({sourceName:i,targetName:r,stream:ln.PULL_COMPLETE,streamId:e,success:!0});break}n.desiredSize<=0&&t.desiredSize>0&&n.sinkCapability.resolve(),n.desiredSize=t.desiredSize,new Promise(function(a){var l;a((l=n.onPull)==null?void 0:l.call(n))}).then(function(){o.postMessage({sourceName:i,targetName:r,stream:ln.PULL_COMPLETE,streamId:e,success:!0})},function(a){o.postMessage({sourceName:i,targetName:r,stream:ln.PULL_COMPLETE,streamId:e,reason:Dl(a)})});break;case ln.ENQUEUE:if(In(s,"enqueue should have stream controller"),s.isClosed)break;s.controller.enqueue(t.chunk);break;case ln.CLOSE:if(In(s,"close should have stream controller"),s.isClosed)break;s.isClosed=!0,s.controller.close(),Z(this,c0,OM).call(this,s,e);break;case ln.ERROR:In(s,"error should have stream controller"),s.controller.error(Dl(t.reason)),Z(this,c0,OM).call(this,s,e);break;case ln.CANCEL_COMPLETE:t.success?s.cancelCall.resolve():s.cancelCall.reject(Dl(t.reason)),Z(this,c0,OM).call(this,s,e);break;case ln.CANCEL:if(!n)break;new Promise(function(a){var l;a((l=n.onCancel)==null?void 0:l.call(n,Dl(t.reason)))}).then(function(){o.postMessage({sourceName:i,targetName:r,stream:ln.CANCEL_COMPLETE,streamId:e,success:!0})},function(a){o.postMessage({sourceName:i,targetName:r,stream:ln.CANCEL_COMPLETE,streamId:e,reason:Dl(a)})}),n.sinkCapability.reject(Dl(t.reason)),n.isCancelled=!0,delete this.streamSinks[e];break;default:throw new Error("Unexpected stream case")}},OM=async function(t,e){var i,r,o;await Promise.allSettled([(i=t.startCall)==null?void 0:i.promise,(r=t.pullCall)==null?void 0:r.promise,(o=t.cancelCall)==null?void 0:o.promise]),delete this.streamControllers[e]},M4e);var Zv,HM;class wxi{constructor({parsedData:e,rawData:i}){le(this,Zv),le(this,HM),te(this,Zv,e),te(this,HM,i)}getRaw(){return M(this,HM)}get(e){return M(this,Zv).get(e)??null}getAll(){return mV(M(this,Zv))}has(e){return M(this,Zv).has(e)}}Zv=new WeakMap,HM=new WeakMap;const Xv=Symbol("INTERNAL");var jM,GM,VM,Cy;class bxi{constructor(e,{name:i,intent:r,usage:o,rbGroups:s}){le(this,jM,!1),le(this,GM,!1),le(this,VM,!1),le(this,Cy,!0),te(this,jM,!!(e&Ml.DISPLAY)),te(this,GM,!!(e&Ml.PRINT)),this.name=i,this.intent=r,this.usage=o,this.rbGroups=s}get visible(){if(M(this,VM))return M(this,Cy);if(!M(this,Cy))return!1;const{print:e,view:i}=this.usage;return M(this,jM)?i?.viewState!=="OFF":M(this,GM)?e?.printState!=="OFF":!0}_setVisible(e,i,r=!1){e!==Xv&&to("Internal method `_setVisible` called."),te(this,VM,r),te(this,Cy,i)}}jM=new WeakMap,GM=new WeakMap,VM=new WeakMap,Cy=new WeakMap;var sf,Nr,yy,Iy,qM,sq;class Bxi{constructor(e,i=Ml.DISPLAY){if(le(this,qM),le(this,sf,null),le(this,Nr,new Map),le(this,yy,null),le(this,Iy,null),this.renderingIntent=i,this.name=null,this.creator=null,e!==null){this.name=e.name,this.creator=e.creator,te(this,Iy,e.order);for(const r of e.groups)M(this,Nr).set(r.id,new bxi(i,r));if(e.baseState==="OFF")for(const r of M(this,Nr).values())r._setVisible(Xv,!1);for(const r of e.on)M(this,Nr).get(r)._setVisible(Xv,!0);for(const r of e.off)M(this,Nr).get(r)._setVisible(Xv,!1);te(this,yy,this.getHash())}}isVisible(e){if(M(this,Nr).size===0)return!0;if(!e)return $Q("Optional content group not defined."),!0;if(e.type==="OCG")return M(this,Nr).has(e.id)?M(this,Nr).get(e.id).visible:(Ui(`Optional content group not found: ${e.id}`),!0);if(e.type==="OCMD"){if(e.expression)return Z(this,qM,sq).call(this,e.expression);if(!e.policy||e.policy==="AnyOn"){for(const i of e.ids){if(!M(this,Nr).has(i))return Ui(`Optional content group not found: ${i}`),!0;if(M(this,Nr).get(i).visible)return!0}return!1}else if(e.policy==="AllOn"){for(const i of e.ids){if(!M(this,Nr).has(i))return Ui(`Optional content group not found: ${i}`),!0;if(!M(this,Nr).get(i).visible)return!1}return!0}else if(e.policy==="AnyOff"){for(const i of e.ids){if(!M(this,Nr).has(i))return Ui(`Optional content group not found: ${i}`),!0;if(!M(this,Nr).get(i).visible)return!0}return!1}else if(e.policy==="AllOff"){for(const i of e.ids){if(!M(this,Nr).has(i))return Ui(`Optional content group not found: ${i}`),!0;if(M(this,Nr).get(i).visible)return!1}return!0}return Ui(`Unknown optional content policy ${e.policy}.`),!0}return Ui(`Unknown group type ${e.type}.`),!0}setVisibility(e,i=!0,r=!0){var o;const s=M(this,Nr).get(e);if(!s){Ui(`Optional content group not found: ${e}`);return}if(r&&i&&s.rbGroups.length)for(const n of s.rbGroups)for(const a of n)a!==e&&((o=M(this,Nr).get(a))==null||o._setVisible(Xv,!1,!0));s._setVisible(Xv,!!i,!0),te(this,sf,null)}setOCGState({state:e,preserveRB:i}){let r;for(const o of e){switch(o){case"ON":case"OFF":case"Toggle":r=o;continue}const s=M(this,Nr).get(o);if(s)switch(r){case"ON":this.setVisibility(o,!0,i);break;case"OFF":this.setVisibility(o,!1,i);break;case"Toggle":this.setVisibility(o,!s.visible,i);break}}te(this,sf,null)}get hasInitialVisibility(){return M(this,yy)===null||this.getHash()===M(this,yy)}getOrder(){return M(this,Nr).size?M(this,Iy)?M(this,Iy).slice():[...M(this,Nr).keys()]:null}getGroups(){return M(this,Nr).size>0?mV(M(this,Nr)):null}getGroup(e){return M(this,Nr).get(e)||null}getHash(){if(M(this,sf)!==null)return M(this,sf);const e=new o4e;for(const[i,r]of M(this,Nr))e.update(`${i}:${r.visible}`);return te(this,sf,e.hexdigest())}}sf=new WeakMap,Nr=new WeakMap,yy=new WeakMap,Iy=new WeakMap,qM=new WeakSet,sq=function(t){const e=t.length;if(e<2)return!0;const i=t[0];for(let r=1;r<e;r++){const o=t[r];let s;if(Array.isArray(o))s=Z(this,qM,sq).call(this,o);else if(M(this,Nr).has(o))s=M(this,Nr).get(o).visible;else return Ui(`Optional content group not found: ${o}`),!0;switch(i){case"And":if(!s)return!1;break;case"Or":if(s)return!0;break;case"Not":return!s;default:return!0}}return i==="And"};class Exi{constructor(e,{disableRange:i=!1,disableStream:r=!1}){In(e,'PDFDataTransportStream - missing required "pdfDataRangeTransport" argument.');const{length:o,initialData:s,progressiveDone:n,contentDispositionFilename:a}=e;if(this._queuedChunks=[],this._progressiveDone=n,this._contentDispositionFilename=a,s?.length>0){const l=s instanceof Uint8Array&&s.byteLength===s.buffer.byteLength?s.buffer:new Uint8Array(s).buffer;this._queuedChunks.push(l)}this._pdfDataRangeTransport=e,this._isStreamingSupported=!r,this._isRangeSupported=!i,this._contentLength=o,this._fullRequestReader=null,this._rangeReaders=[],e.addRangeListener((l,c)=>{this._onReceiveData({begin:l,chunk:c})}),e.addProgressListener((l,c)=>{this._onProgress({loaded:l,total:c})}),e.addProgressiveReadListener(l=>{this._onReceiveData({chunk:l})}),e.addProgressiveDoneListener(()=>{this._onProgressiveDone()}),e.transportReady()}_onReceiveData({begin:e,chunk:i}){const r=i instanceof Uint8Array&&i.byteLength===i.buffer.byteLength?i.buffer:new Uint8Array(i).buffer;if(e===void 0)this._fullRequestReader?this._fullRequestReader._enqueue(r):this._queuedChunks.push(r);else{const o=this._rangeReaders.some(function(s){return s._begin!==e?!1:(s._enqueue(r),!0)});In(o,"_onReceiveData - no `PDFDataTransportStreamRangeReader` instance found.")}}get _progressiveDataLength(){var e;return((e=this._fullRequestReader)==null?void 0:e._loaded)??0}_onProgress(e){var i,r,o,s;e.total===void 0?(r=(i=this._rangeReaders[0])==null?void 0:i.onProgress)==null||r.call(i,{loaded:e.loaded}):(s=(o=this._fullRequestReader)==null?void 0:o.onProgress)==null||s.call(o,{loaded:e.loaded,total:e.total})}_onProgressiveDone(){var e;(e=this._fullRequestReader)==null||e.progressiveDone(),this._progressiveDone=!0}_removeRangeReader(e){const i=this._rangeReaders.indexOf(e);i>=0&&this._rangeReaders.splice(i,1)}getFullReader(){In(!this._fullRequestReader,"PDFDataTransportStream.getFullReader can only be called once.");const e=this._queuedChunks;return this._queuedChunks=null,new kxi(this,e,this._progressiveDone,this._contentDispositionFilename)}getRangeReader(e,i){if(i<=this._progressiveDataLength)return null;const r=new xxi(this,e,i);return this._pdfDataRangeTransport.requestDataRange(e,i),this._rangeReaders.push(r),r}cancelAllRequests(e){var i;(i=this._fullRequestReader)==null||i.cancel(e);for(const r of this._rangeReaders.slice(0))r.cancel(e);this._pdfDataRangeTransport.abort()}}class kxi{constructor(e,i,r=!1,o=null){this._stream=e,this._done=r||!1,this._filename=BV(o)?o:null,this._queuedChunks=i||[],this._loaded=0;for(const s of this._queuedChunks)this._loaded+=s.byteLength;this._requests=[],this._headersReady=Promise.resolve(),e._fullRequestReader=this,this.onProgress=null}_enqueue(e){this._done||(this._requests.length>0?this._requests.shift().resolve({value:e,done:!1}):this._queuedChunks.push(e),this._loaded+=e.byteLength)}get headersReady(){return this._headersReady}get filename(){return this._filename}get isRangeSupported(){return this._stream._isRangeSupported}get isStreamingSupported(){return this._stream._isStreamingSupported}get contentLength(){return this._stream._contentLength}async read(){if(this._queuedChunks.length>0)return{value:this._queuedChunks.shift(),done:!1};if(this._done)return{value:void 0,done:!0};const e=Promise.withResolvers();return this._requests.push(e),e.promise}cancel(e){this._done=!0;for(const i of this._requests)i.resolve({value:void 0,done:!0});this._requests.length=0}progressiveDone(){this._done||(this._done=!0)}}class xxi{constructor(e,i,r){this._stream=e,this._begin=i,this._end=r,this._queuedChunk=null,this._requests=[],this._done=!1,this.onProgress=null}_enqueue(e){if(!this._done){if(this._requests.length===0)this._queuedChunk=e;else{this._requests.shift().resolve({value:e,done:!1});for(const i of this._requests)i.resolve({value:void 0,done:!0});this._requests.length=0}this._done=!0,this._stream._removeRangeReader(this)}}get isStreamingSupported(){return!1}async read(){if(this._queuedChunk){const i=this._queuedChunk;return this._queuedChunk=null,{value:i,done:!1}}if(this._done)return{value:void 0,done:!0};const e=Promise.withResolvers();return this._requests.push(e),e.promise}cancel(e){this._done=!0;for(const i of this._requests)i.resolve({value:void 0,done:!0});this._requests.length=0,this._stream._removeRangeReader(this)}}function Qxi(t){let e=!0,i=r("filename\\*","i").exec(t);if(i){i=i[1];let d=a(i);return d=unescape(d),d=l(d),d=c(d),s(d)}if(i=n(t),i){const d=c(i);return s(d)}if(i=r("filename","i").exec(t),i){i=i[1];let d=a(i);return d=c(d),s(d)}function r(d,A){return new RegExp("(?:^|;)\\s*"+d+'\\s*=\\s*([^";\\s][^;\\s]*|"(?:[^"\\\\]|\\\\"?)+"?)',A)}function o(d,A){if(d){if(!/^[\x00-\xFF]+$/.test(A))return A;try{const u=new TextDecoder(d,{fatal:!0}),h=tM(A);A=u.decode(h),e=!1}catch{}}return A}function s(d){return e&&/[\x80-\xff]/.test(d)&&(d=o("utf-8",d),e&&(d=o("iso-8859-1",d))),d}function n(d){const A=[];let u;const h=r("filename\\*((?!0\\d)\\d+)(\\*?)","ig");for(;(u=h.exec(d))!==null;){let[,p,m,f]=u;if(p=parseInt(p,10),p in A){if(p===0)break;continue}A[p]=[m,f]}const g=[];for(let p=0;p<A.length&&p in A;++p){let[m,f]=A[p];f=a(f),m&&(f=unescape(f),p===0&&(f=l(f))),g.push(f)}return g.join("")}function a(d){if(d.startsWith('"')){const A=d.slice(1).split('\\"');for(let u=0;u<A.length;++u){const h=A[u].indexOf('"');h!==-1&&(A[u]=A[u].slice(0,h),A.length=u+1),A[u]=A[u].replaceAll(/\\(.)/g,"$1")}d=A.join('"')}return d}function l(d){const A=d.indexOf("'");if(A===-1)return d;const u=d.slice(0,A),h=d.slice(A+1).replace(/^[^']*'/,"");return o(u,h)}function c(d){return!d.startsWith("=?")||/[\x00-\x19\x80-\xff]/.test(d)?d:d.replaceAll(/=\?([\w-]*)\?([QqBb])\?((?:[^?]|\?(?!=))*)\?=/g,function(A,u,h,g){if(h==="q"||h==="Q")return g=g.replaceAll("_"," "),g=g.replaceAll(/=([0-9a-fA-F]{2})/g,function(p,m){return String.fromCharCode(parseInt(m,16))}),o(u,g);try{g=atob(g)}catch{}return o(u,g)})}return""}function aq(t,e){const i=new Headers;if(!t||!e||typeof e!="object")return i;for(const r in e){const o=e[r];o!==void 0&&i.append(r,o)}return i}function lq({responseHeaders:t,isHttp:e,rangeChunkSize:i,disableRange:r}){const o={allowRangeRequests:!1,suggestedLength:void 0},s=parseInt(t.get("Content-Length"),10);return!Number.isInteger(s)||(o.suggestedLength=s,s<=2*i)||r||!e||t.get("Accept-Ranges")!=="bytes"||(t.get("Content-Encoding")||"identity")!=="identity"||(o.allowRangeRequests=!0),o}function cq(t){const e=t.get("Content-Disposition");if(e){let i=Qxi(e);if(i.includes("%"))try{i=decodeURIComponent(i)}catch{}if(BV(i))return i}return null}function _M(t,e){return t===404||t===0&&e.startsWith("file:")?new qg('Missing PDF "'+e+'".'):new eM(`Unexpected server response (${t}) while retrieving PDF "${e}".`,t)}function S4e(t){return t===200||t===206}function D4e(t,e,i){return{method:"GET",headers:t,signal:i.signal,mode:"cors",credentials:e?"include":"same-origin",redirect:"follow"}}function P4e(t){return t instanceof Uint8Array?t.buffer:t instanceof ArrayBuffer?t:(Ui(`getArrayBuffer - unexpected data format: ${t}`),new Uint8Array(t).buffer)}class R4e{constructor(e){this.source=e,this.isHttp=/^https?:/i.test(e.url),this.headers=aq(this.isHttp,e.httpHeaders),this._fullRequestReader=null,this._rangeRequestReaders=[]}get _progressiveDataLength(){var e;return((e=this._fullRequestReader)==null?void 0:e._loaded)??0}getFullReader(){return In(!this._fullRequestReader,"PDFFetchStream.getFullReader can only be called once."),this._fullRequestReader=new Mxi(this),this._fullRequestReader}getRangeReader(e,i){if(i<=this._progressiveDataLength)return null;const r=new Sxi(this,e,i);return this._rangeRequestReaders.push(r),r}cancelAllRequests(e){var i;(i=this._fullRequestReader)==null||i.cancel(e);for(const r of this._rangeRequestReaders.slice(0))r.cancel(e)}}class Mxi{constructor(e){this._stream=e,this._reader=null,this._loaded=0,this._filename=null;const i=e.source;this._withCredentials=i.withCredentials||!1,this._contentLength=i.length,this._headersCapability=Promise.withResolvers(),this._disableRange=i.disableRange||!1,this._rangeChunkSize=i.rangeChunkSize,!this._rangeChunkSize&&!this._disableRange&&(this._disableRange=!0),this._abortController=new AbortController,this._isStreamingSupported=!i.disableStream,this._isRangeSupported=!i.disableRange;const r=new Headers(e.headers),o=i.url;fetch(o,D4e(r,this._withCredentials,this._abortController)).then(s=>{if(!S4e(s.status))throw _M(s.status,o);this._reader=s.body.getReader(),this._headersCapability.resolve();const n=s.headers,{allowRangeRequests:a,suggestedLength:l}=lq({responseHeaders:n,isHttp:e.isHttp,rangeChunkSize:this._rangeChunkSize,disableRange:this._disableRange});this._isRangeSupported=a,this._contentLength=l||this._contentLength,this._filename=cq(n),!this._isStreamingSupported&&this._isRangeSupported&&this.cancel(new _g("Streaming is disabled."))}).catch(this._headersCapability.reject),this.onProgress=null}get headersReady(){return this._headersCapability.promise}get filename(){return this._filename}get contentLength(){return this._contentLength}get isRangeSupported(){return this._isRangeSupported}get isStreamingSupported(){return this._isStreamingSupported}async read(){var e;await this._headersCapability.promise;const{value:i,done:r}=await this._reader.read();return r?{value:i,done:r}:(this._loaded+=i.byteLength,(e=this.onProgress)==null||e.call(this,{loaded:this._loaded,total:this._contentLength}),{value:P4e(i),done:!1})}cancel(e){var i;(i=this._reader)==null||i.cancel(e),this._abortController.abort()}}class Sxi{constructor(e,i,r){this._stream=e,this._reader=null,this._loaded=0;const o=e.source;this._withCredentials=o.withCredentials||!1,this._readCapability=Promise.withResolvers(),this._isStreamingSupported=!o.disableStream,this._abortController=new AbortController;const s=new Headers(e.headers);s.append("Range",`bytes=${i}-${r-1}`);const n=o.url;fetch(n,D4e(s,this._withCredentials,this._abortController)).then(a=>{if(!S4e(a.status))throw _M(a.status,n);this._readCapability.resolve(),this._reader=a.body.getReader()}).catch(this._readCapability.reject),this.onProgress=null}get isStreamingSupported(){return this._isStreamingSupported}async read(){var e;await this._readCapability.promise;const{value:i,done:r}=await this._reader.read();return r?{value:i,done:r}:(this._loaded+=i.byteLength,(e=this.onProgress)==null||e.call(this,{loaded:this._loaded}),{value:P4e(i),done:!1})}cancel(e){var i;(i=this._reader)==null||i.cancel(e),this._abortController.abort()}}const dq=200,Aq=206;function Dxi(t){const e=t.response;return typeof e!="string"?e:tM(e).buffer}class Pxi{constructor({url:e,httpHeaders:i,withCredentials:r}){this.url=e,this.isHttp=/^https?:/i.test(e),this.headers=aq(this.isHttp,i),this.withCredentials=r||!1,this.currXhrId=0,this.pendingRequests=Object.create(null)}requestRange(e,i,r){const o={begin:e,end:i};for(const s in r)o[s]=r[s];return this.request(o)}requestFull(e){return this.request(e)}request(e){const i=new XMLHttpRequest,r=this.currXhrId++,o=this.pendingRequests[r]={xhr:i};i.open("GET",this.url),i.withCredentials=this.withCredentials;for(const[s,n]of this.headers)i.setRequestHeader(s,n);return this.isHttp&&"begin"in e&&"end"in e?(i.setRequestHeader("Range",`bytes=${e.begin}-${e.end-1}`),o.expectedStatus=Aq):o.expectedStatus=dq,i.responseType="arraybuffer",e.onError&&(i.onerror=function(s){e.onError(i.status)}),i.onreadystatechange=this.onStateChange.bind(this,r),i.onprogress=this.onProgress.bind(this,r),o.onHeadersReceived=e.onHeadersReceived,o.onDone=e.onDone,o.onError=e.onError,o.onProgress=e.onProgress,i.send(null),r}onProgress(e,i){var r;const o=this.pendingRequests[e];o&&((r=o.onProgress)==null||r.call(o,i))}onStateChange(e,i){var r,o,s;const n=this.pendingRequests[e];if(!n)return;const a=n.xhr;if(a.readyState>=2&&n.onHeadersReceived&&(n.onHeadersReceived(),delete n.onHeadersReceived),a.readyState!==4||!(e in this.pendingRequests))return;if(delete this.pendingRequests[e],a.status===0&&this.isHttp){(r=n.onError)==null||r.call(n,a.status);return}const l=a.status||dq;if(!(l===dq&&n.expectedStatus===Aq)&&l!==n.expectedStatus){(o=n.onError)==null||o.call(n,a.status);return}const c=Dxi(a);if(l===Aq){const d=a.getResponseHeader("Content-Range"),A=/bytes (\d+)-(\d+)\/(\d+)/.exec(d);n.onDone({begin:parseInt(A[1],10),chunk:c})}else c?n.onDone({begin:0,chunk:c}):(s=n.onError)==null||s.call(n,a.status)}getRequestXhr(e){return this.pendingRequests[e].xhr}isPendingRequest(e){return e in this.pendingRequests}abortRequest(e){const i=this.pendingRequests[e].xhr;delete this.pendingRequests[e],i.abort()}}class Rxi{constructor(e){this._source=e,this._manager=new Pxi(e),this._rangeChunkSize=e.rangeChunkSize,this._fullRequestReader=null,this._rangeRequestReaders=[]}_onRangeRequestReaderClosed(e){const i=this._rangeRequestReaders.indexOf(e);i>=0&&this._rangeRequestReaders.splice(i,1)}getFullReader(){return In(!this._fullRequestReader,"PDFNetworkStream.getFullReader can only be called once."),this._fullRequestReader=new Fxi(this._manager,this._source),this._fullRequestReader}getRangeReader(e,i){const r=new Lxi(this._manager,e,i);return r.onClosed=this._onRangeRequestReaderClosed.bind(this),this._rangeRequestReaders.push(r),r}cancelAllRequests(e){var i;(i=this._fullRequestReader)==null||i.cancel(e);for(const r of this._rangeRequestReaders.slice(0))r.cancel(e)}}class Fxi{constructor(e,i){this._manager=e;const r={onHeadersReceived:this._onHeadersReceived.bind(this),onDone:this._onDone.bind(this),onError:this._onError.bind(this),onProgress:this._onProgress.bind(this)};this._url=i.url,this._fullRequestId=e.requestFull(r),this._headersCapability=Promise.withResolvers(),this._disableRange=i.disableRange||!1,this._contentLength=i.length,this._rangeChunkSize=i.rangeChunkSize,!this._rangeChunkSize&&!this._disableRange&&(this._disableRange=!0),this._isStreamingSupported=!1,this._isRangeSupported=!1,this._cachedChunks=[],this._requests=[],this._done=!1,this._storedError=void 0,this._filename=null,this.onProgress=null}_onHeadersReceived(){const e=this._fullRequestId,i=this._manager.getRequestXhr(e),r=new Headers(i.getAllResponseHeaders().trim().split(/[\r\n]+/).map(n=>{const[a,...l]=n.split(": ");return[a,l.join(": ")]})),{allowRangeRequests:o,suggestedLength:s}=lq({responseHeaders:r,isHttp:this._manager.isHttp,rangeChunkSize:this._rangeChunkSize,disableRange:this._disableRange});o&&(this._isRangeSupported=!0),this._contentLength=s||this._contentLength,this._filename=cq(r),this._isRangeSupported&&this._manager.abortRequest(e),this._headersCapability.resolve()}_onDone(e){if(e&&(this._requests.length>0?this._requests.shift().resolve({value:e.chunk,done:!1}):this._cachedChunks.push(e.chunk)),this._done=!0,!(this._cachedChunks.length>0)){for(const i of this._requests)i.resolve({value:void 0,done:!0});this._requests.length=0}}_onError(e){this._storedError=_M(e,this._url),this._headersCapability.reject(this._storedError);for(const i of this._requests)i.reject(this._storedError);this._requests.length=0,this._cachedChunks.length=0}_onProgress(e){var i;(i=this.onProgress)==null||i.call(this,{loaded:e.loaded,total:e.lengthComputable?e.total:this._contentLength})}get filename(){return this._filename}get isRangeSupported(){return this._isRangeSupported}get isStreamingSupported(){return this._isStreamingSupported}get contentLength(){return this._contentLength}get headersReady(){return this._headersCapability.promise}async read(){if(this._storedError)throw this._storedError;if(this._cachedChunks.length>0)return{value:this._cachedChunks.shift(),done:!1};if(this._done)return{value:void 0,done:!0};const e=Promise.withResolvers();return this._requests.push(e),e.promise}cancel(e){this._done=!0,this._headersCapability.reject(e);for(const i of this._requests)i.resolve({value:void 0,done:!0});this._requests.length=0,this._manager.isPendingRequest(this._fullRequestId)&&this._manager.abortRequest(this._fullRequestId),this._fullRequestReader=null}}class Lxi{constructor(e,i,r){this._manager=e;const o={onDone:this._onDone.bind(this),onError:this._onError.bind(this),onProgress:this._onProgress.bind(this)};this._url=e.url,this._requestId=e.requestRange(i,r,o),this._requests=[],this._queuedChunk=null,this._done=!1,this._storedError=void 0,this.onProgress=null,this.onClosed=null}_close(){var e;(e=this.onClosed)==null||e.call(this,this)}_onDone(e){const i=e.chunk;this._requests.length>0?this._requests.shift().resolve({value:i,done:!1}):this._queuedChunk=i,this._done=!0;for(const r of this._requests)r.resolve({value:void 0,done:!0});this._requests.length=0,this._close()}_onError(e){this._storedError=_M(e,this._url);for(const i of this._requests)i.reject(this._storedError);this._requests.length=0,this._queuedChunk=null}_onProgress(e){var i;this.isStreamingSupported||(i=this.onProgress)==null||i.call(this,{loaded:e.loaded})}get isStreamingSupported(){return!1}async read(){if(this._storedError)throw this._storedError;if(this._queuedChunk!==null){const i=this._queuedChunk;return this._queuedChunk=null,{value:i,done:!1}}if(this._done)return{value:void 0,done:!0};const e=Promise.withResolvers();return this._requests.push(e),e.promise}cancel(e){this._done=!0;for(const i of this._requests)i.resolve({value:void 0,done:!0});this._requests.length=0,this._manager.isPendingRequest(this._requestId)&&this._manager.abortRequest(this._requestId),this._close()}}const Txi=/^[a-z][a-z0-9\-+.]+:/i;function Nxi(t){if(Txi.test(t))return new URL(t);const e=a0.get("url");return new URL(e.pathToFileURL(t))}function F4e(t,e,i){return t.protocol==="http:"?a0.get("http").request(t,{headers:e},i):a0.get("https").request(t,{headers:e},i)}class Uxi{constructor(e){this.source=e,this.url=Nxi(e.url),this.isHttp=this.url.protocol==="http:"||this.url.protocol==="https:",this.isFsUrl=this.url.protocol==="file:",this.headers=aq(this.isHttp,e.httpHeaders),this._fullRequestReader=null,this._rangeRequestReaders=[]}get _progressiveDataLength(){var e;return((e=this._fullRequestReader)==null?void 0:e._loaded)??0}getFullReader(){return In(!this._fullRequestReader,"PDFNodeStream.getFullReader can only be called once."),this._fullRequestReader=this.isFsUrl?new jxi(this):new Oxi(this),this._fullRequestReader}getRangeReader(e,i){if(i<=this._progressiveDataLength)return null;const r=this.isFsUrl?new Gxi(this,e,i):new Hxi(this,e,i);return this._rangeRequestReaders.push(r),r}cancelAllRequests(e){var i;(i=this._fullRequestReader)==null||i.cancel(e);for(const r of this._rangeRequestReaders.slice(0))r.cancel(e)}}class L4e{constructor(e){this._url=e.url,this._done=!1,this._storedError=null,this.onProgress=null;const i=e.source;this._contentLength=i.length,this._loaded=0,this._filename=null,this._disableRange=i.disableRange||!1,this._rangeChunkSize=i.rangeChunkSize,!this._rangeChunkSize&&!this._disableRange&&(this._disableRange=!0),this._isStreamingSupported=!i.disableStream,this._isRangeSupported=!i.disableRange,this._readableStream=null,this._readCapability=Promise.withResolvers(),this._headersCapability=Promise.withResolvers()}get headersReady(){return this._headersCapability.promise}get filename(){return this._filename}get contentLength(){return this._contentLength}get isRangeSupported(){return this._isRangeSupported}get isStreamingSupported(){return this._isStreamingSupported}async read(){var e;if(await this._readCapability.promise,this._done)return{value:void 0,done:!0};if(this._storedError)throw this._storedError;const i=this._readableStream.read();return i===null?(this._readCapability=Promise.withResolvers(),this.read()):(this._loaded+=i.length,(e=this.onProgress)==null||e.call(this,{loaded:this._loaded,total:this._contentLength}),{value:new Uint8Array(i).buffer,done:!1})}cancel(e){if(!this._readableStream){this._error(e);return}this._readableStream.destroy(e)}_error(e){this._storedError=e,this._readCapability.resolve()}_setReadableStream(e){this._readableStream=e,e.on("readable",()=>{this._readCapability.resolve()}),e.on("end",()=>{e.destroy(),this._done=!0,this._readCapability.resolve()}),e.on("error",i=>{this._error(i)}),!this._isStreamingSupported&&this._isRangeSupported&&this._error(new _g("streaming is disabled")),this._storedError&&this._readableStream.destroy(this._storedError)}}class T4e{constructor(e){this._url=e.url,this._done=!1,this._storedError=null,this.onProgress=null,this._loaded=0,this._readableStream=null,this._readCapability=Promise.withResolvers();const i=e.source;this._isStreamingSupported=!i.disableStream}get isStreamingSupported(){return this._isStreamingSupported}async read(){var e;if(await this._readCapability.promise,this._done)return{value:void 0,done:!0};if(this._storedError)throw this._storedError;const i=this._readableStream.read();return i===null?(this._readCapability=Promise.withResolvers(),this.read()):(this._loaded+=i.length,(e=this.onProgress)==null||e.call(this,{loaded:this._loaded}),{value:new Uint8Array(i).buffer,done:!1})}cancel(e){if(!this._readableStream){this._error(e);return}this._readableStream.destroy(e)}_error(e){this._storedError=e,this._readCapability.resolve()}_setReadableStream(e){this._readableStream=e,e.on("readable",()=>{this._readCapability.resolve()}),e.on("end",()=>{e.destroy(),this._done=!0,this._readCapability.resolve()}),e.on("error",i=>{this._error(i)}),this._storedError&&this._readableStream.destroy(this._storedError)}}class Oxi extends L4e{constructor(e){super(e);const i=Object.fromEntries(e.headers),r=o=>{if(o.statusCode===404){const l=new qg(`Missing PDF "${this._url}".`);this._storedError=l,this._headersCapability.reject(l);return}this._headersCapability.resolve(),this._setReadableStream(o);const s=new Headers(this._readableStream.headers),{allowRangeRequests:n,suggestedLength:a}=lq({responseHeaders:s,isHttp:e.isHttp,rangeChunkSize:this._rangeChunkSize,disableRange:this._disableRange});this._isRangeSupported=n,this._contentLength=a||this._contentLength,this._filename=cq(s)};this._request=F4e(this._url,i,r),this._request.on("error",o=>{this._storedError=o,this._headersCapability.reject(o)}),this._request.end()}}class Hxi extends T4e{constructor(e,i,r){super(e);const o=Object.fromEntries(e.headers);o.Range=`bytes=${i}-${r-1}`;const s=n=>{if(n.statusCode===404){const a=new qg(`Missing PDF "${this._url}".`);this._storedError=a;return}this._setReadableStream(n)};this._request=F4e(this._url,o,s),this._request.on("error",n=>{this._storedError=n}),this._request.end()}}class jxi extends L4e{constructor(e){super(e);const i=a0.get("fs");i.promises.lstat(this._url).then(r=>{this._contentLength=r.size,this._setReadableStream(i.createReadStream(this._url)),this._headersCapability.resolve()},r=>{r.code==="ENOENT"&&(r=new qg(`Missing PDF "${this._url}".`)),this._storedError=r,this._headersCapability.reject(r)})}}class Gxi extends T4e{constructor(e,i,r){super(e);const o=a0.get("fs");this._setReadableStream(o.createReadStream(this._url,{start:i,end:r-1}))}}const Vxi=1e5,$a=30,qxi=.8;var N4e,af,Pl,zM,KM,lf,d0,JM,YM,$v,wy,by,cf,By,WM,Ey,e4,ZM,XM,t4,i4,$M,df,ky,r4,U4e,O4e,uq,Xu,eS,hq,H4e,j4e;const el=class uw{constructor({textContentSource:e,container:i,viewport:r}){le(this,r4),le(this,af,Promise.withResolvers()),le(this,Pl,null),le(this,zM,!1),le(this,KM,!!((N4e=globalThis.FontInspector)!=null&&N4e.enabled)),le(this,lf,null),le(this,d0,null),le(this,JM,0),le(this,YM,0),le(this,$v,null),le(this,wy,null),le(this,by,0),le(this,cf,0),le(this,By,Object.create(null)),le(this,WM,[]),le(this,Ey,null),le(this,e4,[]),le(this,ZM,new WeakMap),le(this,XM,null);var o;if(e instanceof ReadableStream)te(this,Ey,e);else if(typeof e=="object")te(this,Ey,new ReadableStream({start(c){c.enqueue(e),c.close()}}));else throw new Error('No "textContentSource" parameter specified.');te(this,Pl,te(this,wy,i)),te(this,cf,r.scale*(globalThis.devicePixelRatio||1)),te(this,by,r.rotation),te(this,d0,{div:null,properties:null,ctx:null});const{pageWidth:s,pageHeight:n,pageX:a,pageY:l}=r.rawDims;te(this,XM,[1,0,0,-1,-a,l+n]),te(this,YM,s),te(this,JM,n),Z(o=uw,Xu,H4e).call(o),Kg(i,r),M(this,af).promise.finally(()=>{M(uw,ky).delete(this),te(this,d0,null),te(this,By,null)}).catch(()=>{})}static get fontFamilyMap(){const{isWindows:e,isFirefox:i}=ga.platform;return $i(this,"fontFamilyMap",new Map([["sans-serif",`${e&&i?"Calibri, ":""}sans-serif`],["monospace",`${e&&i?"Lucida Console, ":""}monospace`]]))}render(){const e=()=>{M(this,$v).read().then(({value:i,done:r})=>{if(r){M(this,af).resolve();return}M(this,lf)??te(this,lf,i.lang),Object.assign(M(this,By),i.styles),Z(this,r4,U4e).call(this,i.items),e()},M(this,af).reject)};return te(this,$v,M(this,Ey).getReader()),M(uw,ky).add(this),e(),M(this,af).promise}update({viewport:e,onBefore:i=null}){var r;const o=e.scale*(globalThis.devicePixelRatio||1),s=e.rotation;if(s!==M(this,by)&&(i?.(),te(this,by,s),Kg(M(this,wy),{rotation:s})),o!==M(this,cf)){i?.(),te(this,cf,o);const n={div:null,properties:null,ctx:Z(r=uw,Xu,eS).call(r,M(this,lf))};for(const a of M(this,e4))n.properties=M(this,ZM).get(a),n.div=a,Z(this,r4,uq).call(this,n)}}cancel(){var e;const i=new _g("TextLayer task cancelled.");(e=M(this,$v))==null||e.cancel(i).catch(()=>{}),te(this,$v,null),M(this,af).reject(i)}get textDivs(){return M(this,e4)}get textContentItemsStr(){return M(this,WM)}static cleanup(){if(!(M(this,ky).size>0)){M(this,t4).clear();for(const{canvas:e}of M(this,i4).values())e.remove();M(this,i4).clear()}}};af=new WeakMap,Pl=new WeakMap,zM=new WeakMap,KM=new WeakMap,lf=new WeakMap,d0=new WeakMap,JM=new WeakMap,YM=new WeakMap,$v=new WeakMap,wy=new WeakMap,by=new WeakMap,cf=new WeakMap,By=new WeakMap,WM=new WeakMap,Ey=new WeakMap,e4=new WeakMap,ZM=new WeakMap,XM=new WeakMap,t4=new WeakMap,i4=new WeakMap,$M=new WeakMap,df=new WeakMap,ky=new WeakMap,r4=new WeakSet,U4e=function(t){var e,i;if(M(this,zM))return;(i=M(this,d0)).ctx??(i.ctx=Z(e=el,Xu,eS).call(e,M(this,lf)));const r=M(this,e4),o=M(this,WM);for(const s of t){if(r.length>Vxi){Ui("Ignoring additional textDivs for performance reasons."),te(this,zM,!0);return}if(s.str===void 0){if(s.type==="beginMarkedContentProps"||s.type==="beginMarkedContent"){const n=M(this,Pl);te(this,Pl,document.createElement("span")),M(this,Pl).classList.add("markedContent"),s.id!==null&&M(this,Pl).setAttribute("id",`${s.id}`),n.append(M(this,Pl))}else s.type==="endMarkedContent"&&te(this,Pl,M(this,Pl).parentNode);continue}o.push(s.str),Z(this,r4,O4e).call(this,s)}},O4e=function(t){var e;const i=document.createElement("span"),r={angle:0,canvasWidth:0,hasText:t.str!=="",hasEOL:t.hasEOL,fontSize:0};M(this,e4).push(i);const o=ri.transform(M(this,XM),t.transform);let s=Math.atan2(o[1],o[0]);const n=M(this,By)[t.fontName];n.vertical&&(s+=Math.PI/2);let a=M(this,KM)&&n.fontSubstitution||n.fontFamily;a=el.fontFamilyMap.get(a)||a;const l=Math.hypot(o[2],o[3]),c=l*Z(e=el,Xu,j4e).call(e,a,M(this,lf));let d,A;s===0?(d=o[4],A=o[5]-c):(d=o[4]+c*Math.sin(s),A=o[5]-c*Math.cos(s));const u="calc(var(--scale-factor)*",h=i.style;M(this,Pl)===M(this,wy)?(h.left=`${(100*d/M(this,YM)).toFixed(2)}%`,h.top=`${(100*A/M(this,JM)).toFixed(2)}%`):(h.left=`${u}${d.toFixed(2)}px)`,h.top=`${u}${A.toFixed(2)}px)`),h.fontSize=`${u}${(M(el,df)*l).toFixed(2)}px)`,h.fontFamily=a,r.fontSize=l,i.setAttribute("role","presentation"),i.textContent=t.str,i.dir=t.dir,M(this,KM)&&(i.dataset.fontName=n.fontSubstitutionLoadedName||t.fontName),s!==0&&(r.angle=s*(180/Math.PI));let g=!1;if(t.str.length>1)g=!0;else if(t.str!==" "&&t.transform[0]!==t.transform[3]){const p=Math.abs(t.transform[0]),m=Math.abs(t.transform[3]);p!==m&&Math.max(p,m)/Math.min(p,m)>1.5&&(g=!0)}if(g&&(r.canvasWidth=n.vertical?t.height:t.width),M(this,ZM).set(i,r),M(this,d0).div=i,M(this,d0).properties=r,Z(this,r4,uq).call(this,M(this,d0)),r.hasText&&M(this,Pl).append(i),r.hasEOL){const p=document.createElement("br");p.setAttribute("role","presentation"),M(this,Pl).append(p)}},uq=function(t){var e;const{div:i,properties:r,ctx:o}=t,{style:s}=i;let n="";if(M(el,df)>1&&(n=`scale(${1/M(el,df)})`),r.canvasWidth!==0&&r.hasText){const{fontFamily:a}=s,{canvasWidth:l,fontSize:c}=r;Z(e=el,Xu,hq).call(e,o,c*M(this,cf),a);const{width:d}=o.measureText(i.textContent);d>0&&(n=`scaleX(${l*M(this,cf)/d}) ${n}`)}r.angle!==0&&(n=`rotate(${r.angle}deg) ${n}`),n.length>0&&(s.transform=n)},Xu=new WeakSet,eS=function(t=null){let e=M(this,i4).get(t||(t=""));if(!e){const i=document.createElement("canvas");i.className="hiddenCanvasElement",i.lang=t,document.body.append(i),e=i.getContext("2d",{alpha:!1,willReadFrequently:!0}),M(this,i4).set(t,e),M(this,$M).set(e,{size:0,family:""})}return e},hq=function(t,e,i){const r=M(this,$M).get(t);e===r.size&&i===r.family||(t.font=`${e}px ${i}`,r.size=e,r.family=i)},H4e=function(){if(M(this,df)!==null)return;const t=document.createElement("div");t.style.opacity=0,t.style.lineHeight=1,t.style.fontSize="1px",t.style.position="absolute",t.textContent="X",document.body.append(t),te(this,df,t.getBoundingClientRect().height),t.remove()},j4e=function(t,e){const i=M(this,t4).get(t);if(i)return i;const r=Z(this,Xu,eS).call(this,e);r.canvas.width=r.canvas.height=$a,Z(this,Xu,hq).call(this,r,$a,t);const o=r.measureText("");let s=o.fontBoundingBoxAscent,n=Math.abs(o.fontBoundingBoxDescent);if(s){const c=s/(s+n);return M(this,t4).set(t,c),r.canvas.width=r.canvas.height=0,c}r.strokeStyle="red",r.clearRect(0,0,$a,$a),r.strokeText("g",0,0);let a=r.getImageData(0,0,$a,$a).data;n=0;for(let c=a.length-1-3;c>=0;c-=4)if(a[c]>0){n=Math.ceil(c/4/$a);break}r.clearRect(0,0,$a,$a),r.strokeText("A",0,$a),a=r.getImageData(0,0,$a,$a).data,s=0;for(let c=0,d=a.length;c<d;c+=4)if(a[c]>0){s=$a-Math.floor(c/4/$a);break}r.canvas.width=r.canvas.height=0;const l=s?s/(s+n):qxi;return M(this,t4).set(t,l),l},le(el,Xu),le(el,t4,new Map),le(el,i4,new Map),le(el,$M,new WeakMap),le(el,df,null),le(el,ky,new Set);let pq=el;class ww{static textContent(e){const i=[],r={items:i,styles:Object.create(null)};function o(s){var n;if(!s)return;let a=null;const l=s.name;if(l==="#text")a=s.value;else if(ww.shouldBuildText(l))(n=s?.attributes)!=null&&n.textContent?a=s.attributes.textContent:s.value&&(a=s.value);else return;if(a!==null&&i.push({str:a}),!!s.children)for(const c of s.children)o(c)}return o(e),r}static shouldBuildText(e){return!(e==="textarea"||e==="input"||e==="option"||e==="select")}}const _xi=65536,zxi=100,Kxi=5e3,Jxi=Ps?oxi:txi,Yxi=Ps?nxi:c4e,Wxi=Ps?rxi:ixi,Zxi=Ps?sxi:h4e;function Xxi(t={}){typeof t=="string"||t instanceof URL?t={url:t}:(t instanceof ArrayBuffer||ArrayBuffer.isView(t))&&(t={data:t});const e=new tQi,{docId:i}=e,r=t.url?$xi(t.url):null,o=t.data?eQi(t.data):null,s=t.httpHeaders||null,n=t.withCredentials===!0,a=t.password??null,l=t.range instanceof q4e?t.range:null,c=Number.isInteger(t.rangeChunkSize)&&t.rangeChunkSize>0?t.rangeChunkSize:_xi;let d=t.worker instanceof oS?t.worker:null;const A=t.verbosity,u=typeof t.docBaseUrl=="string"&&!oM(t.docBaseUrl)?t.docBaseUrl:null,h=typeof t.cMapUrl=="string"?t.cMapUrl:null,g=t.cMapPacked!==!1,p=t.CMapReaderFactory||Yxi,m=typeof t.standardFontDataUrl=="string"?t.standardFontDataUrl:null,f=t.StandardFontDataFactory||Zxi,v=t.stopAtErrors!==!0,C=Number.isInteger(t.maxImageSize)&&t.maxImageSize>-1?t.maxImageSize:-1,y=t.isEvalSupported!==!1,I=typeof t.isOffscreenCanvasSupported=="boolean"?t.isOffscreenCanvasSupported:!Ps,B=typeof t.isChrome=="boolean"?t.isChrome:!ga.platform.isFirefox&&typeof window<"u"&&!!(window!=null&&window.chrome),E=Number.isInteger(t.canvasMaxAreaInBytes)?t.canvasMaxAreaInBytes:-1,k=typeof t.disableFontFace=="boolean"?t.disableFontFace:Ps,Q=t.fontExtraProperties===!0,S=t.enableXfa===!0,D=t.ownerDocument||globalThis.document,R=t.disableRange===!0,T=t.disableStream===!0,H=t.disableAutoFetch===!0,q=t.pdfBug===!0,O=t.CanvasFactory||Jxi,j=t.FilterFactory||Wxi,X=t.enableHWA===!0,ne=l?l.length:t.length??NaN,ie=typeof t.useSystemFonts=="boolean"?t.useSystemFonts:!Ps&&!k,we=typeof t.useWorkerFetch=="boolean"?t.useWorkerFetch:p===c4e&&f===h4e&&h&&m&&V7(h,document.baseURI)&&V7(m,document.baseURI);t.canvasFactory&&Mve("`canvasFactory`-instance option, please use `CanvasFactory` instead."),t.filterFactory&&Mve("`filterFactory`-instance option, please use `FilterFactory` instead.");const fe=null;Mki(A);const Ee={canvasFactory:new O({ownerDocument:D,enableHWA:X}),filterFactory:new j({docId:i,ownerDocument:D}),cMapReaderFactory:we?null:new p({baseUrl:h,isCompressed:g}),standardFontDataFactory:we?null:new f({baseUrl:m})};if(!d){const De={verbosity:A,port:l0.workerPort};d=De.port?oS.fromPort(De):new oS(De),e._worker=d}const Me={docId:i,apiVersion:"4.8.69",data:o,password:a,disableAutoFetch:H,rangeChunkSize:c,length:ne,docBaseUrl:u,enableXfa:S,evaluatorOptions:{maxImageSize:C,disableFontFace:k,ignoreErrors:v,isEvalSupported:y,isOffscreenCanvasSupported:I,isChrome:B,canvasMaxAreaInBytes:E,fontExtraProperties:Q,useSystemFonts:ie,cMapUrl:we?h:null,standardFontDataUrl:we?m:null}},Ze={disableFontFace:k,fontExtraProperties:Q,ownerDocument:D,pdfBug:q,styleElement:fe,loadingParams:{disableAutoFetch:H,enableXfa:S}};return d.promise.then(function(){if(e.destroyed)throw new Error("Loading aborted");if(d.destroyed)throw new Error("Worker was destroyed");const De=d.messageHandler.sendWithPromise("GetDocRequest",Me,o?[o.buffer]:null);let $;if(l)$=new Exi(l,{disableRange:R,disableStream:T});else if(!o){if(!r)throw new Error("getDocument - no `url` parameter provided.");let ae;Ps?ae=typeof fetch<"u"&&typeof Response<"u"&&"body"in Response.prototype&&V7(r)?R4e:Uxi:ae=V7(r)?R4e:Rxi,$=new ae({url:r,length:ne,httpHeaders:s,withCredentials:n,rangeChunkSize:c,disableRange:R,disableStream:T})}return De.then(ae=>{if(e.destroyed)throw new Error("Loading aborted");if(d.destroyed)throw new Error("Worker was destroyed");const se=new vy(i,ae,d.port),ue=new nQi(se,e,$,Ze,Ee);e._transport=ue,se.send("Ready",null)})}).catch(e._capability.reject),e}function $xi(t){if(t instanceof URL)return t.href;try{return new URL(t,window.location).href}catch{if(Ps&&typeof t=="string")return t}throw new Error("Invalid PDF url data: either string or URL-object is expected in the url property.")}function eQi(t){if(Ps&&typeof Buffer<"u"&&t instanceof Buffer)throw new Error("Please provide binary data as `Uint8Array`, rather than `Buffer`.");if(t instanceof Uint8Array&&t.byteLength===t.buffer.byteLength)return t;if(typeof t=="string")return tM(t);if(t instanceof ArrayBuffer||ArrayBuffer.isView(t)||typeof t=="object"&&!isNaN(t?.length))return new Uint8Array(t);throw new Error("Invalid PDF binary data: either TypedArray, string, or array-like object is expected in the data property.")}function G4e(t){return typeof t=="object"&&Number.isInteger(t?.num)&&t.num>=0&&Number.isInteger(t?.gen)&&t.gen>=0}var gq;const V4e=class i7e{constructor(){this._capability=Promise.withResolvers(),this._transport=null,this._worker=null,this.docId=`d${Ma(i7e,gq)._++}`,this.destroyed=!1,this.onPassword=null,this.onProgress=null}get promise(){return this._capability.promise}async destroy(){var e,i,r;this.destroyed=!0;try{(e=this._worker)!=null&&e.port&&(this._worker._pendingDestroy=!0),await((i=this._transport)==null?void 0:i.destroy())}catch(o){throw(r=this._worker)!=null&&r.port&&delete this._worker._pendingDestroy,o}this._transport=null,this._worker&&(this._worker.destroy(),this._worker=null)}};gq=new WeakMap,le(V4e,gq,0);let tQi=V4e;class q4e{constructor(e,i,r=!1,o=null){this.length=e,this.initialData=i,this.progressiveDone=r,this.contentDispositionFilename=o,this._rangeListeners=[],this._progressListeners=[],this._progressiveReadListeners=[],this._progressiveDoneListeners=[],this._readyCapability=Promise.withResolvers()}addRangeListener(e){this._rangeListeners.push(e)}addProgressListener(e){this._progressListeners.push(e)}addProgressiveReadListener(e){this._progressiveReadListeners.push(e)}addProgressiveDoneListener(e){this._progressiveDoneListeners.push(e)}onDataRange(e,i){for(const r of this._rangeListeners)r(e,i)}onDataProgress(e,i){this._readyCapability.promise.then(()=>{for(const r of this._progressListeners)r(e,i)})}onDataProgressiveRead(e){this._readyCapability.promise.then(()=>{for(const i of this._progressiveReadListeners)i(e)})}onDataProgressiveDone(){this._readyCapability.promise.then(()=>{for(const e of this._progressiveDoneListeners)e()})}transportReady(){this._readyCapability.resolve()}requestDataRange(e,i){to("Abstract method PDFDataRangeTransport.requestDataRange")}abort(){}}class iQi{constructor(e,i){this._pdfInfo=e,this._transport=i}get annotationStorage(){return this._transport.annotationStorage}get canvasFactory(){return this._transport.canvasFactory}get filterFactory(){return this._transport.filterFactory}get numPages(){return this._pdfInfo.numPages}get fingerprints(){return this._pdfInfo.fingerprints}get isPureXfa(){return $i(this,"isPureXfa",!!this._transport._htmlForXfa)}get allXfaHtml(){return this._transport._htmlForXfa}getPage(e){return this._transport.getPage(e)}getPageIndex(e){return this._transport.getPageIndex(e)}getDestinations(){return this._transport.getDestinations()}getDestination(e){return this._transport.getDestination(e)}getPageLabels(){return this._transport.getPageLabels()}getPageLayout(){return this._transport.getPageLayout()}getPageMode(){return this._transport.getPageMode()}getViewerPreferences(){return this._transport.getViewerPreferences()}getOpenAction(){return this._transport.getOpenAction()}getAttachments(){return this._transport.getAttachments()}getJSActions(){return this._transport.getDocJSActions()}getOutline(){return this._transport.getOutline()}getOptionalContentConfig({intent:e="display"}={}){const{renderingIntent:i}=this._transport.getRenderingIntent(e);return this._transport.getOptionalContentConfig(i)}getPermissions(){return this._transport.getPermissions()}getMetadata(){return this._transport.getMetadata()}getMarkInfo(){return this._transport.getMarkInfo()}getData(){return this._transport.getData()}saveDocument(){return this._transport.saveDocument()}getDownloadInfo(){return this._transport.downloadInfoCapability.promise}cleanup(e=!1){return this._transport.startCleanup(e||this.isPureXfa)}destroy(){return this.loadingTask.destroy()}cachedPageNumber(e){return this._transport.cachedPageNumber(e)}get loadingParams(){return this._transport.loadingParams}get loadingTask(){return this._transport.loadingTask}getFieldObjects(){return this._transport.getFieldObjects()}hasJSActions(){return this._transport.hasJSActions()}getCalculationOrderIds(){return this._transport.getCalculationOrderIds()}}var Af,A0,mA,o4,tS;class rQi{constructor(e,i,r,o=!1){le(this,mA),le(this,Af,null),le(this,A0,!1),this._pageIndex=e,this._pageInfo=i,this._transport=r,this._stats=o?new Qve:null,this._pdfBug=o,this.commonObjs=r.commonObjs,this.objs=new _4e,this._maybeCleanupAfterRender=!1,this._intentStates=new Map,this.destroyed=!1}get pageNumber(){return this._pageIndex+1}get rotate(){return this._pageInfo.rotate}get ref(){return this._pageInfo.ref}get userUnit(){return this._pageInfo.userUnit}get view(){return this._pageInfo.view}getViewport({scale:e,rotation:i=this.rotate,offsetX:r=0,offsetY:o=0,dontFlip:s=!1}={}){return new Iw({viewBox:this.view,scale:e,rotation:i,offsetX:r,offsetY:o,dontFlip:s})}getAnnotations({intent:e="display"}={}){const{renderingIntent:i}=this._transport.getRenderingIntent(e);return this._transport.getAnnotations(this._pageIndex,i)}getJSActions(){return this._transport.getPageJSActions(this._pageIndex)}get filterFactory(){return this._transport.filterFactory}get isPureXfa(){return $i(this,"isPureXfa",!!this._transport._htmlForXfa)}async getXfa(){var e;return((e=this._transport._htmlForXfa)==null?void 0:e.children[this._pageIndex])||null}render({canvasContext:e,viewport:i,intent:r="display",annotationMode:o=Z1.ENABLE,transform:s=null,background:n=null,optionalContentConfigPromise:a=null,annotationCanvasMap:l=null,pageColors:c=null,printAnnotationStorage:d=null,isEditing:A=!1}){var u,h;(u=this._stats)==null||u.time("Overall");const g=this._transport.getRenderingIntent(r,o,d,A),{renderingIntent:p,cacheKey:m}=g;te(this,A0,!1),Z(this,mA,tS).call(this),a||(a=this._transport.getOptionalContentConfig(p));let f=this._intentStates.get(m);f||(f=Object.create(null),this._intentStates.set(m,f)),f.streamReaderCancelTimeout&&(clearTimeout(f.streamReaderCancelTimeout),f.streamReaderCancelTimeout=null);const v=!!(p&Ml.PRINT);f.displayReadyCapability||(f.displayReadyCapability=Promise.withResolvers(),f.operatorList={fnArray:[],argsArray:[],lastChunk:!1,separateAnnots:null},(h=this._stats)==null||h.time("Page Request"),this._pumpOperatorList(g));const C=B=>{var E;f.renderTasks.delete(y),(this._maybeCleanupAfterRender||v)&&te(this,A0,!0),Z(this,mA,o4).call(this,!v),B?(y.capability.reject(B),this._abortOperatorList({intentState:f,reason:B instanceof Error?B:new Error(B)})):y.capability.resolve(),this._stats&&(this._stats.timeEnd("Rendering"),this._stats.timeEnd("Overall"),(E=globalThis.Stats)!=null&&E.enabled&&globalThis.Stats.add(this.pageNumber,this._stats))},y=new aQi({callback:C,params:{canvasContext:e,viewport:i,transform:s,background:n},objs:this.objs,commonObjs:this.commonObjs,annotationCanvasMap:l,operatorList:f.operatorList,pageIndex:this._pageIndex,canvasFactory:this._transport.canvasFactory,filterFactory:this._transport.filterFactory,useRequestAnimationFrame:!v,pdfBug:this._pdfBug,pageColors:c});(f.renderTasks||(f.renderTasks=new Set)).add(y);const I=y.task;return Promise.all([f.displayReadyCapability.promise,a]).then(([B,E])=>{var k;if(this.destroyed){C();return}if((k=this._stats)==null||k.time("Rendering"),!(E.renderingIntent&p))throw new Error("Must use the same `intent`-argument when calling the `PDFPageProxy.render` and `PDFDocumentProxy.getOptionalContentConfig` methods.");y.initializeGraphics({transparency:B,optionalContentConfig:E}),y.operatorListChanged()}).catch(C),I}getOperatorList({intent:e="display",annotationMode:i=Z1.ENABLE,printAnnotationStorage:r=null,isEditing:o=!1}={}){var s;function n(){l.operatorList.lastChunk&&(l.opListReadCapability.resolve(l.operatorList),l.renderTasks.delete(c))}const a=this._transport.getRenderingIntent(e,i,r,o,!0);let l=this._intentStates.get(a.cacheKey);l||(l=Object.create(null),this._intentStates.set(a.cacheKey,l));let c;return l.opListReadCapability||(c=Object.create(null),c.operatorListChanged=n,l.opListReadCapability=Promise.withResolvers(),(l.renderTasks||(l.renderTasks=new Set)).add(c),l.operatorList={fnArray:[],argsArray:[],lastChunk:!1,separateAnnots:null},(s=this._stats)==null||s.time("Page Request"),this._pumpOperatorList(a)),l.opListReadCapability.promise}streamTextContent({includeMarkedContent:e=!1,disableNormalization:i=!1}={}){return this._transport.messageHandler.sendWithStream("GetTextContent",{pageIndex:this._pageIndex,includeMarkedContent:e===!0,disableNormalization:i===!0},{highWaterMark:100,size(r){return r.items.length}})}getTextContent(e={}){if(this._transport._htmlForXfa)return this.getXfa().then(r=>ww.textContent(r));const i=this.streamTextContent(e);return new Promise(function(r,o){function s(){n.read().then(function({value:l,done:c}){if(c){r(a);return}a.lang??(a.lang=l.lang),Object.assign(a.styles,l.styles),a.items.push(...l.items),s()},o)}const n=i.getReader(),a={items:[],styles:Object.create(null),lang:null};s()})}getStructTree(){return this._transport.getStructTree(this._pageIndex)}_destroy(){this.destroyed=!0;const e=[];for(const i of this._intentStates.values())if(this._abortOperatorList({intentState:i,reason:new Error("Page was destroyed."),force:!0}),!i.opListReadCapability)for(const r of i.renderTasks)e.push(r.completed),r.cancel();return this.objs.clear(),te(this,A0,!1),Z(this,mA,tS).call(this),Promise.all(e)}cleanup(e=!1){te(this,A0,!0);const i=Z(this,mA,o4).call(this,!1);return e&&i&&this._stats&&(this._stats=new Qve),i}_startRenderPage(e,i){var r,o;const s=this._intentStates.get(i);s&&((r=this._stats)==null||r.timeEnd("Page Request"),(o=s.displayReadyCapability)==null||o.resolve(e))}_renderPageChunk(e,i){for(let r=0,o=e.length;r<o;r++)i.operatorList.fnArray.push(e.fnArray[r]),i.operatorList.argsArray.push(e.argsArray[r]);i.operatorList.lastChunk=e.lastChunk,i.operatorList.separateAnnots=e.separateAnnots;for(const r of i.renderTasks)r.operatorListChanged();e.lastChunk&&Z(this,mA,o4).call(this,!0)}_pumpOperatorList({renderingIntent:e,cacheKey:i,annotationStorageSerializable:r,modifiedIds:o}){const{map:s,transfer:n}=r,a=this._transport.messageHandler.sendWithStream("GetOperatorList",{pageIndex:this._pageIndex,intent:e,cacheKey:i,annotationStorage:s,modifiedIds:o},n).getReader(),l=this._intentStates.get(i);l.streamReader=a;const c=()=>{a.read().then(({value:d,done:A})=>{if(A){l.streamReader=null;return}this._transport.destroyed||(this._renderPageChunk(d,l),c())},d=>{if(l.streamReader=null,!this._transport.destroyed){if(l.operatorList){l.operatorList.lastChunk=!0;for(const A of l.renderTasks)A.operatorListChanged();Z(this,mA,o4).call(this,!0)}if(l.displayReadyCapability)l.displayReadyCapability.reject(d);else if(l.opListReadCapability)l.opListReadCapability.reject(d);else throw d}})};c()}_abortOperatorList({intentState:e,reason:i,force:r=!1}){if(e.streamReader){if(e.streamReaderCancelTimeout&&(clearTimeout(e.streamReaderCancelTimeout),e.streamReaderCancelTimeout=null),!r){if(e.renderTasks.size>0)return;if(i instanceof bV){let o=zxi;i.extraDelay>0&&i.extraDelay<1e3&&(o+=i.extraDelay),e.streamReaderCancelTimeout=setTimeout(()=>{e.streamReaderCancelTimeout=null,this._abortOperatorList({intentState:e,reason:i,force:!0})},o);return}}if(e.streamReader.cancel(new _g(i.message)).catch(()=>{}),e.streamReader=null,!this._transport.destroyed){for(const[o,s]of this._intentStates)if(s===e){this._intentStates.delete(o);break}this.cleanup()}}}get stats(){return this._stats}}Af=new WeakMap,A0=new WeakMap,mA=new WeakSet,o4=function(t=!1){if(Z(this,mA,tS).call(this),!M(this,A0)||this.destroyed)return!1;if(t)return te(this,Af,setTimeout(()=>{te(this,Af,null),Z(this,mA,o4).call(this,!1)},Kxi)),!1;for(const{renderTasks:e,operatorList:i}of this._intentStates.values())if(e.size>0||!i.lastChunk)return!1;return this._intentStates.clear(),this.objs.clear(),te(this,A0,!1),!0},tS=function(){M(this,Af)&&(clearTimeout(M(this,Af)),te(this,Af,null))};var u0,fq;class oQi{constructor(){le(this,u0,new Map),le(this,fq,Promise.resolve())}postMessage(e,i){const r={data:structuredClone(e,i?{transfer:i}:null)};M(this,fq).then(()=>{for(const[o]of M(this,u0))o.call(this,r)})}addEventListener(e,i,r=null){let o=null;if(r?.signal instanceof AbortSignal){const{signal:s}=r;if(s.aborted){Ui("LoopbackPort - cannot use an `aborted` signal.");return}const n=()=>this.removeEventListener(e,i);o=()=>s.removeEventListener("abort",n),s.addEventListener("abort",n)}M(this,u0).set(i,o)}removeEventListener(e,i){const r=M(this,u0).get(i);r?.(),M(this,u0).delete(i)}terminate(){for(const[,e]of M(this,u0))e?.();M(this,u0).clear()}}u0=new WeakMap,fq=new WeakMap;var mq,n4,uf,xy,iS,Qy,rS;const h0=class Qa{constructor({name:e=null,port:i=null,verbosity:r=Ski()}={}){le(this,xy);var o;if(this.name=e,this.destroyed=!1,this.verbosity=r,this._readyCapability=Promise.withResolvers(),this._port=null,this._webWorker=null,this._messageHandler=null,i){if((o=M(Qa,uf))!=null&&o.has(i))throw new Error("Cannot use more than one PDFWorker per port.");(M(Qa,uf)||te(Qa,uf,new WeakMap)).set(i,this),this._initializeFromPort(i);return}this._initialize()}get promise(){return Ps?Promise.all([a0.promise,this._readyCapability.promise]):this._readyCapability.promise}get port(){return this._port}get messageHandler(){return this._messageHandler}_initializeFromPort(e){this._port=e,this._messageHandler=new vy("main","worker",e),this._messageHandler.on("ready",function(){}),Z(this,xy,iS).call(this)}_initialize(){if(M(Qa,n4)||M(Qa,Qy,rS)){this._setupFakeWorker();return}let{workerSrc:e}=Qa;try{Qa._isSameOrigin(window.location.href,e)||(e=Qa._createCDNWrapper(new URL(e,window.location).href));const i=new Worker(e,{type:"module"}),r=new vy("main","worker",i),o=()=>{s.abort(),r.destroy(),i.terminate(),this.destroyed?this._readyCapability.reject(new Error("Worker was destroyed")):this._setupFakeWorker()},s=new AbortController;i.addEventListener("error",()=>{this._webWorker||o()},{signal:s.signal}),r.on("test",a=>{if(s.abort(),this.destroyed||!a){o();return}this._messageHandler=r,this._port=i,this._webWorker=i,Z(this,xy,iS).call(this)}),r.on("ready",a=>{if(s.abort(),this.destroyed){o();return}try{n()}catch{this._setupFakeWorker()}});const n=()=>{const a=new Uint8Array;r.send("test",a,[a.buffer])};n();return}catch{$Q("The worker has been disabled.")}this._setupFakeWorker()}_setupFakeWorker(){M(Qa,n4)||(Ui("Setting up fake worker."),te(Qa,n4,!0)),Qa._setupFakeWorkerGlobal.then(e=>{if(this.destroyed){this._readyCapability.reject(new Error("Worker was destroyed"));return}const i=new oQi;this._port=i;const r=`fake${Ma(Qa,mq)._++}`,o=new vy(r+"_worker",r,i);e.setup(o,i),this._messageHandler=new vy(r,r+"_worker",i),Z(this,xy,iS).call(this)}).catch(e=>{this._readyCapability.reject(new Error(`Setting up fake worker failed: "${e.message}".`))})}destroy(){var e;this.destroyed=!0,this._webWorker&&(this._webWorker.terminate(),this._webWorker=null),(e=M(Qa,uf))==null||e.delete(this._port),this._port=null,this._messageHandler&&(this._messageHandler.destroy(),this._messageHandler=null)}static fromPort(e){var i;if(!(e!=null&&e.port))throw new Error("PDFWorker.fromPort - invalid method signature.");const r=(i=M(this,uf))==null?void 0:i.get(e.port);if(r){if(r._pendingDestroy)throw new Error("PDFWorker.fromPort - the worker is being destroyed.\nPlease remember to await `PDFDocumentLoadingTask.destroy()`-calls.");return r}return new Qa(e)}static get workerSrc(){if(l0.workerSrc)return l0.workerSrc;throw new Error('No "GlobalWorkerOptions.workerSrc" specified.')}static get _setupFakeWorkerGlobal(){return $i(this,"_setupFakeWorkerGlobal",(async()=>M(this,Qy,rS)?M(this,Qy,rS):(await import(this.workerSrc)).WorkerMessageHandler)())}};mq=new WeakMap,n4=new WeakMap,uf=new WeakMap,xy=new WeakSet,iS=function(){this._readyCapability.resolve(),this._messageHandler.send("configure",{verbosity:this.verbosity})},Qy=new WeakSet,rS=function(){var t;try{return((t=globalThis.pdfjsWorker)==null?void 0:t.WorkerMessageHandler)||null}catch{return null}},le(h0,Qy),le(h0,mq,0),le(h0,n4,!1),le(h0,uf),Ps&&(te(h0,n4,!0),l0.workerSrc||(l0.workerSrc="./pdf.worker.mjs")),h0._isSameOrigin=(t,e)=>{let i;try{if(i=new URL(t),!i.origin||i.origin==="null")return!1}catch{return!1}const r=new URL(e,i);return i.origin===r.origin},h0._createCDNWrapper=t=>{const e=`await import("${t}");`;return URL.createObjectURL(new Blob([e],{type:"text/javascript"}))};let oS=h0;var p0,$u,My,Sy,eh,s4,Dy;class nQi{constructor(e,i,r,o,s){le(this,s4),le(this,p0,new Map),le(this,$u,new Map),le(this,My,new Map),le(this,Sy,new Map),le(this,eh,null),this.messageHandler=e,this.loadingTask=i,this.commonObjs=new _4e,this.fontLoader=new $ki({ownerDocument:o.ownerDocument,styleElement:o.styleElement}),this.loadingParams=o.loadingParams,this._params=o,this.canvasFactory=s.canvasFactory,this.filterFactory=s.filterFactory,this.cMapReaderFactory=s.cMapReaderFactory,this.standardFontDataFactory=s.standardFontDataFactory,this.destroyed=!1,this.destroyCapability=null,this._networkStream=r,this._fullReader=null,this._lastProgress=null,this.downloadInfoCapability=Promise.withResolvers(),this.setupMessageHandler()}get annotationStorage(){return $i(this,"annotationStorage",new ZV)}getRenderingIntent(e,i=Z1.ENABLE,r=null,o=!1,s=!1){let n=Ml.DISPLAY,a=YV;switch(e){case"any":n=Ml.ANY;break;case"display":break;case"print":n=Ml.PRINT;break;default:Ui(`getRenderingIntent - invalid intent: ${e}`)}const l=n&Ml.PRINT&&r instanceof s4e?r:this.annotationStorage;switch(i){case Z1.DISABLE:n+=Ml.ANNOTATIONS_DISABLE;break;case Z1.ENABLE:break;case Z1.ENABLE_FORMS:n+=Ml.ANNOTATIONS_FORMS;break;case Z1.ENABLE_STORAGE:n+=Ml.ANNOTATIONS_STORAGE,a=l.serializable;break;default:Ui(`getRenderingIntent - invalid annotationMode: ${i}`)}o&&(n+=Ml.IS_EDITING),s&&(n+=Ml.OPLIST);const{ids:c,hash:d}=l.modifiedIds,A=[n,a.hash,d];return{renderingIntent:n,cacheKey:A.join("_"),annotationStorageSerializable:a,modifiedIds:c}}destroy(){var e;if(this.destroyCapability)return this.destroyCapability.promise;this.destroyed=!0,this.destroyCapability=Promise.withResolvers(),(e=M(this,eh))==null||e.reject(new Error("Worker was destroyed during onPassword callback"));const i=[];for(const o of M(this,$u).values())i.push(o._destroy());M(this,$u).clear(),M(this,My).clear(),M(this,Sy).clear(),this.hasOwnProperty("annotationStorage")&&this.annotationStorage.resetModified();const r=this.messageHandler.sendWithPromise("Terminate",null);return i.push(r),Promise.all(i).then(()=>{var o;this.commonObjs.clear(),this.fontLoader.clear(),M(this,p0).clear(),this.filterFactory.destroy(),pq.cleanup(),(o=this._networkStream)==null||o.cancelAllRequests(new _g("Worker was terminated.")),this.messageHandler&&(this.messageHandler.destroy(),this.messageHandler=null),this.destroyCapability.resolve()},this.destroyCapability.reject),this.destroyCapability.promise}setupMessageHandler(){const{messageHandler:e,loadingTask:i}=this;e.on("GetReader",(r,o)=>{In(this._networkStream,"GetReader - no `IPDFStream` instance available."),this._fullReader=this._networkStream.getFullReader(),this._fullReader.onProgress=s=>{this._lastProgress={loaded:s.loaded,total:s.total}},o.onPull=()=>{this._fullReader.read().then(function({value:s,done:n}){if(n){o.close();return}In(s instanceof ArrayBuffer,"GetReader - expected an ArrayBuffer."),o.enqueue(new Uint8Array(s),1,[s])}).catch(s=>{o.error(s)})},o.onCancel=s=>{this._fullReader.cancel(s),o.ready.catch(n=>{if(!this.destroyed)throw n})}}),e.on("ReaderHeadersReady",async r=>{var o;await this._fullReader.headersReady;const{isStreamingSupported:s,isRangeSupported:n,contentLength:a}=this._fullReader;return(!s||!n)&&(this._lastProgress&&((o=i.onProgress)==null||o.call(i,this._lastProgress)),this._fullReader.onProgress=l=>{var c;(c=i.onProgress)==null||c.call(i,{loaded:l.loaded,total:l.total})}),{isStreamingSupported:s,isRangeSupported:n,contentLength:a}}),e.on("GetRangeReader",(r,o)=>{In(this._networkStream,"GetRangeReader - no `IPDFStream` instance available.");const s=this._networkStream.getRangeReader(r.begin,r.end);if(!s){o.close();return}o.onPull=()=>{s.read().then(function({value:n,done:a}){if(a){o.close();return}In(n instanceof ArrayBuffer,"GetRangeReader - expected an ArrayBuffer."),o.enqueue(new Uint8Array(n),1,[n])}).catch(n=>{o.error(n)})},o.onCancel=n=>{s.cancel(n),o.ready.catch(a=>{if(!this.destroyed)throw a})}}),e.on("GetDoc",({pdfInfo:r})=>{this._numPages=r.numPages,this._htmlForXfa=r.htmlForXfa,delete r.htmlForXfa,i._capability.resolve(new iQi(r,this))}),e.on("DocException",function(r){let o;switch(r.name){case"PasswordException":o=new gV(r.message,r.code);break;case"InvalidPDFException":o=new Eve(r.message);break;case"MissingPDFException":o=new qg(r.message);break;case"UnexpectedResponseException":o=new eM(r.message,r.status);break;case"UnknownErrorException":o=new fV(r.message,r.details);break;default:to("DocException - expected a valid Error.")}i._capability.reject(o)}),e.on("PasswordRequest",r=>{if(te(this,eh,Promise.withResolvers()),i.onPassword){const o=s=>{s instanceof Error?M(this,eh).reject(s):M(this,eh).resolve({password:s})};try{i.onPassword(o,r.code)}catch(s){M(this,eh).reject(s)}}else M(this,eh).reject(new gV(r.message,r.code));return M(this,eh).promise}),e.on("DataLoaded",r=>{var o;(o=i.onProgress)==null||o.call(i,{loaded:r.length,total:r.length}),this.downloadInfoCapability.resolve(r)}),e.on("StartRenderPage",r=>{this.destroyed||M(this,$u).get(r.pageIndex)._startRenderPage(r.transparency,r.cacheKey)}),e.on("commonobj",([r,o,s])=>{var n;if(this.destroyed||this.commonObjs.has(r))return null;switch(o){case"Font":const{disableFontFace:a,fontExtraProperties:l,pdfBug:c}=this._params;if("error"in s){const h=s.error;Ui(`Error during font loading: ${h}`),this.commonObjs.resolve(r,h);break}const d=c&&(n=globalThis.FontInspector)!=null&&n.enabled?(h,g)=>globalThis.FontInspector.fontAdded(h,g):null,A=new exi(s,{disableFontFace:a,inspectFont:d});this.fontLoader.bind(A).catch(()=>e.sendWithPromise("FontFallback",{id:r})).finally(()=>{!l&&A.data&&(A.data=null),this.commonObjs.resolve(r,A)});break;case"CopyLocalImage":const{imageRef:u}=s;In(u,"The imageRef must be defined.");for(const h of M(this,$u).values())for(const[,g]of h.objs)if(g?.ref===u)return g.dataLen?(this.commonObjs.resolve(r,structuredClone(g)),g.dataLen):null;break;case"FontPath":case"Image":case"Pattern":this.commonObjs.resolve(r,s);break;default:throw new Error(`Got unknown common object type ${o}`)}return null}),e.on("obj",([r,o,s,n])=>{var a;if(this.destroyed)return;const l=M(this,$u).get(o);if(!l.objs.has(r)){if(l._intentStates.size===0){(a=n?.bitmap)==null||a.close();return}switch(s){case"Image":l.objs.resolve(r,n),n?.dataLen>Eki&&(l._maybeCleanupAfterRender=!0);break;case"Pattern":l.objs.resolve(r,n);break;default:throw new Error(`Got unknown object type ${s}`)}}}),e.on("DocProgress",r=>{var o;this.destroyed||(o=i.onProgress)==null||o.call(i,{loaded:r.loaded,total:r.total})}),e.on("FetchBuiltInCMap",async r=>{if(this.destroyed)throw new Error("Worker was destroyed.");if(!this.cMapReaderFactory)throw new Error("CMapReaderFactory not initialized, see the `useWorkerFetch` parameter.");return this.cMapReaderFactory.fetch(r)}),e.on("FetchStandardFontData",async r=>{if(this.destroyed)throw new Error("Worker was destroyed.");if(!this.standardFontDataFactory)throw new Error("StandardFontDataFactory not initialized, see the `useWorkerFetch` parameter.");return this.standardFontDataFactory.fetch(r)})}getData(){return this.messageHandler.sendWithPromise("GetData",null)}saveDocument(){var e;this.annotationStorage.size<=0&&Ui("saveDocument called while `annotationStorage` is empty, please use the getData-method instead.");const{map:i,transfer:r}=this.annotationStorage.serializable;return this.messageHandler.sendWithPromise("SaveDocument",{isPureXfa:!!this._htmlForXfa,numPages:this._numPages,annotationStorage:i,filename:((e=this._fullReader)==null?void 0:e.filename)??null},r).finally(()=>{this.annotationStorage.resetModified()})}getPage(e){if(!Number.isInteger(e)||e<=0||e>this._numPages)return Promise.reject(new Error("Invalid page request."));const i=e-1,r=M(this,My).get(i);if(r)return r;const o=this.messageHandler.sendWithPromise("GetPage",{pageIndex:i}).then(s=>{if(this.destroyed)throw new Error("Transport destroyed");s.refStr&&M(this,Sy).set(s.refStr,e);const n=new rQi(i,s,this,this._params.pdfBug);return M(this,$u).set(i,n),n});return M(this,My).set(i,o),o}getPageIndex(e){return G4e(e)?this.messageHandler.sendWithPromise("GetPageIndex",{num:e.num,gen:e.gen}):Promise.reject(new Error("Invalid pageIndex request."))}getAnnotations(e,i){return this.messageHandler.sendWithPromise("GetAnnotations",{pageIndex:e,intent:i})}getFieldObjects(){return Z(this,s4,Dy).call(this,"GetFieldObjects")}hasJSActions(){return Z(this,s4,Dy).call(this,"HasJSActions")}getCalculationOrderIds(){return this.messageHandler.sendWithPromise("GetCalculationOrderIds",null)}getDestinations(){return this.messageHandler.sendWithPromise("GetDestinations",null)}getDestination(e){return typeof e!="string"?Promise.reject(new Error("Invalid destination request.")):this.messageHandler.sendWithPromise("GetDestination",{id:e})}getPageLabels(){return this.messageHandler.sendWithPromise("GetPageLabels",null)}getPageLayout(){return this.messageHandler.sendWithPromise("GetPageLayout",null)}getPageMode(){return this.messageHandler.sendWithPromise("GetPageMode",null)}getViewerPreferences(){return this.messageHandler.sendWithPromise("GetViewerPreferences",null)}getOpenAction(){return this.messageHandler.sendWithPromise("GetOpenAction",null)}getAttachments(){return this.messageHandler.sendWithPromise("GetAttachments",null)}getDocJSActions(){return Z(this,s4,Dy).call(this,"GetDocJSActions")}getPageJSActions(e){return this.messageHandler.sendWithPromise("GetPageJSActions",{pageIndex:e})}getStructTree(e){return this.messageHandler.sendWithPromise("GetStructTree",{pageIndex:e})}getOutline(){return this.messageHandler.sendWithPromise("GetOutline",null)}getOptionalContentConfig(e){return Z(this,s4,Dy).call(this,"GetOptionalContentConfig").then(i=>new Bxi(i,e))}getPermissions(){return this.messageHandler.sendWithPromise("GetPermissions",null)}getMetadata(){const e="GetMetadata",i=M(this,p0).get(e);if(i)return i;const r=this.messageHandler.sendWithPromise(e,null).then(o=>{var s,n;return{info:o[0],metadata:o[1]?new wxi(o[1]):null,contentDispositionFilename:((s=this._fullReader)==null?void 0:s.filename)??null,contentLength:((n=this._fullReader)==null?void 0:n.contentLength)??null}});return M(this,p0).set(e,r),r}getMarkInfo(){return this.messageHandler.sendWithPromise("GetMarkInfo",null)}async startCleanup(e=!1){if(!this.destroyed){await this.messageHandler.sendWithPromise("Cleanup",null);for(const i of M(this,$u).values())if(!i.cleanup())throw new Error(`startCleanup: Page ${i.pageNumber} is currently rendering.`);this.commonObjs.clear(),e||this.fontLoader.clear(),M(this,p0).clear(),this.filterFactory.destroy(!0),pq.cleanup()}}cachedPageNumber(e){if(!G4e(e))return null;const i=e.gen===0?`${e.num}R`:`${e.num}R${e.gen}`;return M(this,Sy).get(i)??null}}p0=new WeakMap,$u=new WeakMap,My=new WeakMap,Sy=new WeakMap,eh=new WeakMap,s4=new WeakSet,Dy=function(t,e=null){const i=M(this,p0).get(t);if(i)return i;const r=this.messageHandler.sendWithPromise(t,e);return M(this,p0).set(t,r),r};const nS=Symbol("INITIAL_DATA");var vA,sS,vq;class _4e{constructor(){le(this,sS),le(this,vA,Object.create(null))}get(e,i=null){if(i){const o=Z(this,sS,vq).call(this,e);return o.promise.then(()=>i(o.data)),null}const r=M(this,vA)[e];if(!r||r.data===nS)throw new Error(`Requesting object that isn't resolved yet ${e}.`);return r.data}has(e){const i=M(this,vA)[e];return!!i&&i.data!==nS}resolve(e,i=null){const r=Z(this,sS,vq).call(this,e);r.data=i,r.resolve()}clear(){var e;for(const i in M(this,vA)){const{data:r}=M(this,vA)[i];(e=r?.bitmap)==null||e.close()}te(this,vA,Object.create(null))}*[Symbol.iterator](){for(const e in M(this,vA)){const{data:i}=M(this,vA)[e];i!==nS&&(yield[e,i])}}}vA=new WeakMap,sS=new WeakSet,vq=function(t){var e;return(e=M(this,vA))[t]||(e[t]={...Promise.withResolvers(),data:nS})};var hf;class sQi{constructor(e){le(this,hf,null),te(this,hf,e),this.onContinue=null}get promise(){return M(this,hf).capability.promise}cancel(e=0){M(this,hf).cancel(null,e)}get separateAnnots(){const{separateAnnots:e}=M(this,hf).operatorList;if(!e)return!1;const{annotationCanvasMap:i}=M(this,hf);return e.form||e.canvas&&i?.size>0}}hf=new WeakMap;var pf,a4;const z4e=class hw{constructor({callback:e,params:i,objs:r,commonObjs:o,annotationCanvasMap:s,operatorList:n,pageIndex:a,canvasFactory:l,filterFactory:c,useRequestAnimationFrame:d=!1,pdfBug:A=!1,pageColors:u=null}){le(this,pf,null),this.callback=e,this.params=i,this.objs=r,this.commonObjs=o,this.annotationCanvasMap=s,this.operatorListIdx=null,this.operatorList=n,this._pageIndex=a,this.canvasFactory=l,this.filterFactory=c,this._pdfBug=A,this.pageColors=u,this.running=!1,this.graphicsReadyCallback=null,this.graphicsReady=!1,this._useRequestAnimationFrame=d===!0&&typeof window<"u",this.cancelled=!1,this.capability=Promise.withResolvers(),this.task=new sQi(this),this._cancelBound=this.cancel.bind(this),this._continueBound=this._continue.bind(this),this._scheduleNextBound=this._scheduleNext.bind(this),this._nextBound=this._next.bind(this),this._canvas=i.canvasContext.canvas}get completed(){return this.capability.promise.catch(function(){})}initializeGraphics({transparency:e=!1,optionalContentConfig:i}){var r,o;if(this.cancelled)return;if(this._canvas){if(M(hw,a4).has(this._canvas))throw new Error("Cannot use the same canvas during multiple render() operations. Use different canvas or ensure previous operations were cancelled or completed.");M(hw,a4).add(this._canvas)}this._pdfBug&&(r=globalThis.StepperManager)!=null&&r.enabled&&(this.stepper=globalThis.StepperManager.create(this._pageIndex),this.stepper.init(this.operatorList),this.stepper.nextBreakPoint=this.stepper.getNextBreakPoint());const{canvasContext:s,viewport:n,transform:a,background:l}=this.params;this.gfx=new LM(s,this.commonObjs,this.objs,this.canvasFactory,this.filterFactory,{optionalContentConfig:i},this.annotationCanvasMap,this.pageColors),this.gfx.beginDrawing({transform:a,viewport:n,transparency:e,background:l}),this.operatorListIdx=0,this.graphicsReady=!0,(o=this.graphicsReadyCallback)==null||o.call(this)}cancel(e=null,i=0){var r;this.running=!1,this.cancelled=!0,(r=this.gfx)==null||r.endDrawing(),M(this,pf)&&(window.cancelAnimationFrame(M(this,pf)),te(this,pf,null)),M(hw,a4).delete(this._canvas),this.callback(e||new bV(`Rendering cancelled, page ${this._pageIndex+1}`,i))}operatorListChanged(){var e;if(!this.graphicsReady){this.graphicsReadyCallback||(this.graphicsReadyCallback=this._continueBound);return}(e=this.stepper)==null||e.updateOperatorList(this.operatorList),!this.running&&this._continue()}_continue(){this.running=!0,!this.cancelled&&(this.task.onContinue?this.task.onContinue(this._scheduleNextBound):this._scheduleNext())}_scheduleNext(){this._useRequestAnimationFrame?te(this,pf,window.requestAnimationFrame(()=>{te(this,pf,null),this._nextBound().catch(this._cancelBound)})):Promise.resolve().then(this._nextBound).catch(this._cancelBound)}async _next(){this.cancelled||(this.operatorListIdx=this.gfx.executeOperatorList(this.operatorList,this.operatorListIdx,this._continueBound,this.stepper),this.operatorListIdx===this.operatorList.argsArray.length&&(this.running=!1,this.operatorList.lastChunk&&(this.gfx.endDrawing(),M(hw,a4).delete(this._canvas),this.callback())))}};pf=new WeakMap,a4=new WeakMap,le(z4e,a4,new WeakSet);let aQi=z4e;const lQi="4.8.69",cQi="3634dab10";function K4e(t){return Math.floor(Math.max(0,Math.min(1,t))*255).toString(16).padStart(2,"0")}function Py(t){return Math.max(0,Math.min(255,255*t))}class J4e{static CMYK_G([e,i,r,o]){return["G",1-Math.min(1,.3*e+.59*r+.11*i+o)]}static G_CMYK([e]){return["CMYK",0,0,0,1-e]}static G_RGB([e]){return["RGB",e,e,e]}static G_rgb([e]){return e=Py(e),[e,e,e]}static G_HTML([e]){const i=K4e(e);return`#${i}${i}${i}`}static RGB_G([e,i,r]){return["G",.3*e+.59*i+.11*r]}static RGB_rgb(e){return e.map(Py)}static RGB_HTML(e){return`#${e.map(K4e).join("")}`}static T_HTML(){return"#00000000"}static T_rgb(){return[null]}static CMYK_RGB([e,i,r,o]){return["RGB",1-Math.min(1,e+o),1-Math.min(1,r+o),1-Math.min(1,i+o)]}static CMYK_rgb([e,i,r,o]){return[Py(1-Math.min(1,e+o)),Py(1-Math.min(1,r+o)),Py(1-Math.min(1,i+o))]}static CMYK_HTML(e){const i=this.CMYK_RGB(e).slice(1);return this.RGB_HTML(i)}static RGB_CMYK([e,i,r]){const o=1-e,s=1-i,n=1-r,a=Math.min(o,s,n);return["CMYK",o,s,n,a]}}class dQi{create(e,i,r=!1){if(e<=0||i<=0)throw new Error("Invalid SVG dimensions");const o=this._createSVG("svg:svg");return o.setAttribute("version","1.1"),r||(o.setAttribute("width",`${e}px`),o.setAttribute("height",`${i}px`)),o.setAttribute("preserveAspectRatio","none"),o.setAttribute("viewBox",`0 0 ${e} ${i}`),o}createElement(e){if(typeof e!="string")throw new Error("Invalid SVG element type");return this._createSVG(e)}_createSVG(e){to("Abstract method `_createSVG` called.")}}class Cq extends dQi{_createSVG(e){return document.createElementNS(Ou,e)}}class Y4e{static setupStorage(e,i,r,o,s){const n=o.getValue(i,{value:null});switch(r.name){case"textarea":if(n.value!==null&&(e.textContent=n.value),s==="print")break;e.addEventListener("input",a=>{o.setValue(i,{value:a.target.value})});break;case"input":if(r.attributes.type==="radio"||r.attributes.type==="checkbox"){if(n.value===r.attributes.xfaOn?e.setAttribute("checked",!0):n.value===r.attributes.xfaOff&&e.removeAttribute("checked"),s==="print")break;e.addEventListener("change",a=>{o.setValue(i,{value:a.target.checked?a.target.getAttribute("xfaOn"):a.target.getAttribute("xfaOff")})})}else{if(n.value!==null&&e.setAttribute("value",n.value),s==="print")break;e.addEventListener("input",a=>{o.setValue(i,{value:a.target.value})})}break;case"select":if(n.value!==null){e.setAttribute("value",n.value);for(const a of r.children)a.attributes.value===n.value?a.attributes.selected=!0:a.attributes.hasOwnProperty("selected")&&delete a.attributes.selected}e.addEventListener("input",a=>{const l=a.target.options,c=l.selectedIndex===-1?"":l[l.selectedIndex].value;o.setValue(i,{value:c})});break}}static setAttributes({html:e,element:i,storage:r=null,intent:o,linkService:s}){const{attributes:n}=i,a=e instanceof HTMLAnchorElement;n.type==="radio"&&(n.name=`${n.name}-${o}`);for(const[l,c]of Object.entries(n))if(c!=null)switch(l){case"class":c.length&&e.setAttribute(l,c.join(" "));break;case"dataId":break;case"id":e.setAttribute("data-element-id",c);break;case"style":Object.assign(e.style,c);break;case"textContent":e.textContent=c;break;default:(!a||l!=="href"&&l!=="newWindow")&&e.setAttribute(l,c)}a&&s.addLinkAttributes(e,n.href,n.newWindow),r&&n.dataId&&this.setupStorage(e,n.dataId,i,r)}static render(e){var i,r;const o=e.annotationStorage,s=e.linkService,n=e.xfaHtml,a=e.intent||"display",l=document.createElement(n.name);n.attributes&&this.setAttributes({html:l,element:n,intent:a,linkService:s});const c=a!=="richText",d=e.div;if(d.append(l),e.viewport){const h=`matrix(${e.viewport.transform.join(",")})`;d.style.transform=h}c&&d.setAttribute("class","xfaLayer xfaFont");const A=[];if(n.children.length===0){if(n.value){const h=document.createTextNode(n.value);l.append(h),c&&ww.shouldBuildText(n.name)&&A.push(h)}return{textDivs:A}}const u=[[n,-1,l]];for(;u.length>0;){const[h,g,p]=u.at(-1);if(g+1===h.children.length){u.pop();continue}const m=h.children[++u.at(-1)[1]];if(m===null)continue;const{name:f}=m;if(f==="#text"){const C=document.createTextNode(m.value);A.push(C),p.append(C);continue}const v=(i=m?.attributes)!=null&&i.xmlns?document.createElementNS(m.attributes.xmlns,f):document.createElement(f);if(p.append(v),m.attributes&&this.setAttributes({html:v,element:m,storage:o,intent:a,linkService:s}),((r=m.children)==null?void 0:r.length)>0)u.push([m,-1,v]);else if(m.value){const C=document.createTextNode(m.value);c&&ww.shouldBuildText(f)&&A.push(C),v.append(C)}}for(const h of d.querySelectorAll(".xfaNonInteractive input, .xfaNonInteractive textarea"))h.setAttribute("readOnly",!0);return{textDivs:A}}static update(e){const i=`matrix(${e.viewport.transform.join(",")})`;e.div.style.transform=i,e.div.hidden=!1}}const Ry=1e3,AQi=9,gf=new WeakSet;function th(t){return{width:t[2]-t[0],height:t[3]-t[1]}}class uQi{static create(e){switch(e.data.annotationType){case yn.LINK:return new X4e(e);case yn.TEXT:return new pQi(e);case yn.WIDGET:switch(e.data.fieldType){case"Tx":return new gQi(e);case"Btn":return e.data.radioButton?new $4e(e):e.data.checkBox?new mQi(e):new vQi(e);case"Ch":return new CQi(e);case"Sig":return new fQi(e)}return new vf(e);case yn.POPUP:return new Iq(e);case yn.FREETEXT:return new o5e(e);case yn.LINE:return new IQi(e);case yn.SQUARE:return new wQi(e);case yn.CIRCLE:return new bQi(e);case yn.POLYLINE:return new n5e(e);case yn.CARET:return new EQi(e);case yn.INK:return new kq(e);case yn.POLYGON:return new BQi(e);case yn.HIGHLIGHT:return new s5e(e);case yn.UNDERLINE:return new kQi(e);case yn.SQUIGGLY:return new xQi(e);case yn.STRIKEOUT:return new QQi(e);case yn.STAMP:return new a5e(e);case yn.FILEATTACHMENT:return new MQi(e);default:return new Bn(e)}}}var ff,Fy,Ly,aS,yq;const hQi=class r7e{constructor(e,{isRenderable:i=!1,ignoreBorder:r=!1,createQuadrilaterals:o=!1}={}){le(this,aS),le(this,ff,null),le(this,Fy,!1),le(this,Ly,null),this.isRenderable=i,this.data=e.data,this.layer=e.layer,this.linkService=e.linkService,this.downloadManager=e.downloadManager,this.imageResourcesPath=e.imageResourcesPath,this.renderForms=e.renderForms,this.svgFactory=e.svgFactory,this.annotationStorage=e.annotationStorage,this.enableScripting=e.enableScripting,this.hasJSActions=e.hasJSActions,this._fieldObjects=e.fieldObjects,this.parent=e.parent,i&&(this.container=this._createContainer(r)),o&&this._createQuadrilaterals()}static _hasPopupData({titleObj:e,contentsObj:i,richText:r}){return!!(e!=null&&e.str||i!=null&&i.str||r!=null&&r.str)}get _isEditable(){return this.data.isEditable}get hasPopupData(){return r7e._hasPopupData(this.data)}updateEdited(e){var i;if(!this.container)return;M(this,ff)||te(this,ff,{rect:this.data.rect.slice(0)});const{rect:r}=e;r&&Z(this,aS,yq).call(this,r),(i=M(this,Ly))==null||i.popup.updateEdited(e)}resetEdited(){var e;M(this,ff)&&(Z(this,aS,yq).call(this,M(this,ff).rect),(e=M(this,Ly))==null||e.popup.resetEdited(),te(this,ff,null))}_createContainer(e){const{data:i,parent:{page:r,viewport:o}}=this,s=document.createElement("section");s.setAttribute("data-annotation-id",i.id),this instanceof vf||(s.tabIndex=Ry);const{style:n}=s;if(n.zIndex=this.parent.zIndex++,i.alternativeText&&(s.title=i.alternativeText),i.noRotate&&s.classList.add("norotate"),!i.rect||this instanceof Iq){const{rotation:p}=i;return!i.hasOwnCanvas&&p!==0&&this.setRotation(p,s),s}const{width:a,height:l}=th(i.rect);if(!e&&i.borderStyle.width>0){n.borderWidth=`${i.borderStyle.width}px`;const p=i.borderStyle.horizontalCornerRadius,m=i.borderStyle.verticalCornerRadius;if(p>0||m>0){const v=`calc(${p}px * var(--scale-factor)) / calc(${m}px * var(--scale-factor))`;n.borderRadius=v}else if(this instanceof $4e){const v=`calc(${a}px * var(--scale-factor)) / calc(${l}px * var(--scale-factor))`;n.borderRadius=v}switch(i.borderStyle.style){case G7.SOLID:n.borderStyle="solid";break;case G7.DASHED:n.borderStyle="dashed";break;case G7.BEVELED:Ui("Unimplemented border style: beveled");break;case G7.INSET:Ui("Unimplemented border style: inset");break;case G7.UNDERLINE:n.borderBottomStyle="solid";break}const f=i.borderColor||null;f?(te(this,Fy,!0),n.borderColor=ri.makeHexColor(f[0]|0,f[1]|0,f[2]|0)):n.borderWidth=0}const c=ri.normalizeRect([i.rect[0],r.view[3]-i.rect[1]+r.view[1],i.rect[2],r.view[3]-i.rect[3]+r.view[1]]),{pageWidth:d,pageHeight:A,pageX:u,pageY:h}=o.rawDims;n.left=`${100*(c[0]-u)/d}%`,n.top=`${100*(c[1]-h)/A}%`;const{rotation:g}=i;return i.hasOwnCanvas||g===0?(n.width=`${100*a/d}%`,n.height=`${100*l/A}%`):this.setRotation(g,s),s}setRotation(e,i=this.container){if(!this.data.rect)return;const{pageWidth:r,pageHeight:o}=this.parent.viewport.rawDims,{width:s,height:n}=th(this.data.rect);let a,l;e%180===0?(a=100*s/r,l=100*n/o):(a=100*n/r,l=100*s/o),i.style.width=`${a}%`,i.style.height=`${l}%`,i.setAttribute("data-main-rotation",(360-e)%360)}get _commonActions(){const e=(i,r,o)=>{const s=o.detail[i],n=s[0],a=s.slice(1);o.target.style[r]=J4e[`${n}_HTML`](a),this.annotationStorage.setValue(this.data.id,{[r]:J4e[`${n}_rgb`](a)})};return $i(this,"_commonActions",{display:i=>{const{display:r}=i.detail,o=r%2===1;this.container.style.visibility=o?"hidden":"visible",this.annotationStorage.setValue(this.data.id,{noView:o,noPrint:r===1||r===2})},print:i=>{this.annotationStorage.setValue(this.data.id,{noPrint:!i.detail.print})},hidden:i=>{const{hidden:r}=i.detail;this.container.style.visibility=r?"hidden":"visible",this.annotationStorage.setValue(this.data.id,{noPrint:r,noView:r})},focus:i=>{setTimeout(()=>i.target.focus({preventScroll:!1}),0)},userName:i=>{i.target.title=i.detail.userName},readonly:i=>{i.target.disabled=i.detail.readonly},required:i=>{this._setRequired(i.target,i.detail.required)},bgColor:i=>{e("bgColor","backgroundColor",i)},fillColor:i=>{e("fillColor","backgroundColor",i)},fgColor:i=>{e("fgColor","color",i)},textColor:i=>{e("textColor","color",i)},borderColor:i=>{e("borderColor","borderColor",i)},strokeColor:i=>{e("strokeColor","borderColor",i)},rotation:i=>{const r=i.detail.rotation;this.setRotation(r),this.annotationStorage.setValue(this.data.id,{rotation:r})}})}_dispatchEventFromSandbox(e,i){const r=this._commonActions;for(const o of Object.keys(i.detail)){const s=e[o]||r[o];s?.(i)}}_setDefaultPropertiesFromJS(e){if(!this.enableScripting)return;const i=this.annotationStorage.getRawValue(this.data.id);if(!i)return;const r=this._commonActions;for(const[o,s]of Object.entries(i)){const n=r[o];if(n){const a={detail:{[o]:s},target:e};n(a),delete i[o]}}}_createQuadrilaterals(){if(!this.container)return;const{quadPoints:e}=this.data;if(!e)return;const[i,r,o,s]=this.data.rect.map(p=>Math.fround(p));if(e.length===8){const[p,m,f,v]=e.subarray(2,6);if(o===p&&s===m&&i===f&&r===v)return}const{style:n}=this.container;let a;if(M(this,Fy)){const{borderColor:p,borderWidth:m}=n;n.borderWidth=0,a=["url('data:image/svg+xml;utf8,",'<svg xmlns="http://www.w3.org/2000/svg"',' preserveAspectRatio="none" viewBox="0 0 1 1">',`<g fill="transparent" stroke="${p}" stroke-width="${m}">`],this.container.classList.add("hasBorder")}const l=o-i,c=s-r,{svgFactory:d}=this,A=d.createElement("svg");A.classList.add("quadrilateralsContainer"),A.setAttribute("width",0),A.setAttribute("height",0);const u=d.createElement("defs");A.append(u);const h=d.createElement("clipPath"),g=`clippath_${this.data.id}`;h.setAttribute("id",g),h.setAttribute("clipPathUnits","objectBoundingBox"),u.append(h);for(let p=2,m=e.length;p<m;p+=8){const f=e[p],v=e[p+1],C=e[p+2],y=e[p+3],I=d.createElement("rect"),B=(C-i)/l,E=(s-v)/c,k=(f-C)/l,Q=(v-y)/c;I.setAttribute("x",B),I.setAttribute("y",E),I.setAttribute("width",k),I.setAttribute("height",Q),h.append(I),a?.push(`<rect vector-effect="non-scaling-stroke" x="${B}" y="${E}" width="${k}" height="${Q}"/>`)}M(this,Fy)&&(a.push("</g></svg>')"),n.backgroundImage=a.join("")),this.container.append(A),this.container.style.clipPath=`url(#${g})`}_createPopup(){const{data:e}=this,i=te(this,Ly,new Iq({data:{color:e.color,titleObj:e.titleObj,modificationDate:e.modificationDate,contentsObj:e.contentsObj,richText:e.richText,parentRect:e.rect,borderStyle:0,id:`popup_${e.id}`,rotation:e.rotation},parent:this.parent,elements:[this]}));this.parent.div.append(i.render())}render(){to("Abstract method `AnnotationElement.render` called")}_getElementsByName(e,i=null){const r=[];if(this._fieldObjects){const o=this._fieldObjects[e];if(o)for(const{page:s,id:n,exportValues:a}of o){if(s===-1||n===i)continue;const l=typeof a=="string"?a:null,c=document.querySelector(`[data-element-id="${n}"]`);if(c&&!gf.has(c)){Ui(`_getElementsByName - element not allowed: ${n}`);continue}r.push({id:n,exportValue:l,domElement:c})}return r}for(const o of document.getElementsByName(e)){const{exportValue:s}=o,n=o.getAttribute("data-element-id");n!==i&&gf.has(o)&&r.push({id:n,exportValue:s,domElement:o})}return r}show(){var e;this.container&&(this.container.hidden=!1),(e=this.popup)==null||e.maybeShow()}hide(){var e;this.container&&(this.container.hidden=!0),(e=this.popup)==null||e.forceHide()}getElementsToTriggerPopup(){return this.container}addHighlightArea(){const e=this.getElementsToTriggerPopup();if(Array.isArray(e))for(const i of e)i.classList.add("highlightArea");else e.classList.add("highlightArea")}_editOnDoubleClick(){if(!this._isEditable)return;const{annotationEditorType:e,data:{id:i}}=this;this.container.addEventListener("dblclick",()=>{var r;(r=this.linkService.eventBus)==null||r.dispatch("switchannotationeditormode",{source:this,mode:e,editId:i})})}};ff=new WeakMap,Fy=new WeakMap,Ly=new WeakMap,aS=new WeakSet,yq=function(t){const{container:{style:e},data:{rect:i,rotation:r},parent:{viewport:{rawDims:{pageWidth:o,pageHeight:s,pageX:n,pageY:a}}}}=this;i?.splice(0,4,...t);const{width:l,height:c}=th(t);e.left=`${100*(t[0]-n)/o}%`,e.top=`${100*(s-t[3]+a)/s}%`,r===0?(e.width=`${100*l/o}%`,e.height=`${100*c/s}%`):this.setRotation(r)};let Bn=hQi;var CA,mf,W4e,Z4e;class X4e extends Bn{constructor(e,i=null){super(e,{isRenderable:!0,ignoreBorder:!!(i!=null&&i.ignoreBorder),createQuadrilaterals:!0}),le(this,CA),this.isTooltipOnly=e.data.isTooltipOnly}render(){const{data:e,linkService:i}=this,r=document.createElement("a");r.setAttribute("data-element-id",e.id);let o=!1;return e.url?(i.addLinkAttributes(r,e.url,e.newWindow),o=!0):e.action?(this._bindNamedAction(r,e.action),o=!0):e.attachment?(Z(this,CA,W4e).call(this,r,e.attachment,e.attachmentDest),o=!0):e.setOCGState?(Z(this,CA,Z4e).call(this,r,e.setOCGState),o=!0):e.dest?(this._bindLink(r,e.dest),o=!0):(e.actions&&(e.actions.Action||e.actions["Mouse Up"]||e.actions["Mouse Down"])&&this.enableScripting&&this.hasJSActions&&(this._bindJSAction(r,e),o=!0),e.resetForm?(this._bindResetFormAction(r,e.resetForm),o=!0):this.isTooltipOnly&&!o&&(this._bindLink(r,""),o=!0)),this.container.classList.add("linkAnnotation"),o&&this.container.append(r),this.container}_bindLink(e,i){e.href=this.linkService.getDestinationHash(i),e.onclick=()=>(i&&this.linkService.goToDestination(i),!1),(i||i==="")&&Z(this,CA,mf).call(this)}_bindNamedAction(e,i){e.href=this.linkService.getAnchorUrl(""),e.onclick=()=>(this.linkService.executeNamedAction(i),!1),Z(this,CA,mf).call(this)}_bindJSAction(e,i){e.href=this.linkService.getAnchorUrl("");const r=new Map([["Action","onclick"],["Mouse Up","onmouseup"],["Mouse Down","onmousedown"]]);for(const o of Object.keys(i.actions)){const s=r.get(o);s&&(e[s]=()=>{var n;return(n=this.linkService.eventBus)==null||n.dispatch("dispatcheventinsandbox",{source:this,detail:{id:i.id,name:o}}),!1})}e.onclick||(e.onclick=()=>!1),Z(this,CA,mf).call(this)}_bindResetFormAction(e,i){const r=e.onclick;if(r||(e.href=this.linkService.getAnchorUrl("")),Z(this,CA,mf).call(this),!this._fieldObjects){Ui('_bindResetFormAction - "resetForm" action not supported, ensure that the `fieldObjects` parameter is provided.'),r||(e.onclick=()=>!1);return}e.onclick=()=>{var o;r?.();const{fields:s,refs:n,include:a}=i,l=[];if(s.length!==0||n.length!==0){const A=new Set(n);for(const u of s){const h=this._fieldObjects[u]||[];for(const{id:g}of h)A.add(g)}for(const u of Object.values(this._fieldObjects))for(const h of u)A.has(h.id)===a&&l.push(h)}else for(const A of Object.values(this._fieldObjects))l.push(...A);const c=this.annotationStorage,d=[];for(const A of l){const{id:u}=A;switch(d.push(u),A.type){case"text":{const g=A.defaultValue||"";c.setValue(u,{value:g});break}case"checkbox":case"radiobutton":{const g=A.defaultValue===A.exportValues;c.setValue(u,{value:g});break}case"combobox":case"listbox":{const g=A.defaultValue||"";c.setValue(u,{value:g});break}default:continue}const h=document.querySelector(`[data-element-id="${u}"]`);if(h){if(!gf.has(h)){Ui(`_bindResetFormAction - element not allowed: ${u}`);continue}}else continue;h.dispatchEvent(new Event("resetform"))}return this.enableScripting&&((o=this.linkService.eventBus)==null||o.dispatch("dispatcheventinsandbox",{source:this,detail:{id:"app",ids:d,name:"ResetForm"}})),!1}}}CA=new WeakSet,mf=function(){this.container.setAttribute("data-internal-link","")},W4e=function(t,e,i=null){t.href=this.linkService.getAnchorUrl(""),e.description&&(t.title=e.description),t.onclick=()=>{var r;return(r=this.downloadManager)==null||r.openOrDownloadData(e.content,e.filename,i),!1},Z(this,CA,mf).call(this)},Z4e=function(t,e){t.href=this.linkService.getAnchorUrl(""),t.onclick=()=>(this.linkService.executeSetOCGState(e),!1),Z(this,CA,mf).call(this)};class pQi extends Bn{constructor(e){super(e,{isRenderable:!0})}render(){this.container.classList.add("textAnnotation");const e=document.createElement("img");return e.src=this.imageResourcesPath+"annotation-"+this.data.name.toLowerCase()+".svg",e.setAttribute("data-l10n-id","pdfjs-text-annotation-type"),e.setAttribute("data-l10n-args",JSON.stringify({type:this.data.name})),!this.data.popupRef&&this.hasPopupData&&this._createPopup(),this.container.append(e),this.container}}class vf extends Bn{render(){return this.container}showElementAndHideCanvas(e){var i;this.data.hasOwnCanvas&&(((i=e.previousSibling)==null?void 0:i.nodeName)==="CANVAS"&&(e.previousSibling.hidden=!0),e.hidden=!1)}_getKeyModifier(e){return ga.platform.isMac?e.metaKey:e.ctrlKey}_setEventListener(e,i,r,o,s){r.includes("mouse")?e.addEventListener(r,n=>{var a;(a=this.linkService.eventBus)==null||a.dispatch("dispatcheventinsandbox",{source:this,detail:{id:this.data.id,name:o,value:s(n),shift:n.shiftKey,modifier:this._getKeyModifier(n)}})}):e.addEventListener(r,n=>{var a;if(r==="blur"){if(!i.focused||!n.relatedTarget)return;i.focused=!1}else if(r==="focus"){if(i.focused)return;i.focused=!0}s&&((a=this.linkService.eventBus)==null||a.dispatch("dispatcheventinsandbox",{source:this,detail:{id:this.data.id,name:o,value:s(n)}}))})}_setEventListeners(e,i,r,o){var s,n,a;for(const[l,c]of r)(c==="Action"||(s=this.data.actions)!=null&&s[c])&&((c==="Focus"||c==="Blur")&&(i||(i={focused:!1})),this._setEventListener(e,i,l,c,o),c==="Focus"&&!((n=this.data.actions)!=null&&n.Blur)?this._setEventListener(e,i,"blur","Blur",null):c==="Blur"&&!((a=this.data.actions)!=null&&a.Focus)&&this._setEventListener(e,i,"focus","Focus",null))}_setBackgroundColor(e){const i=this.data.backgroundColor||null;e.style.backgroundColor=i===null?"transparent":ri.makeHexColor(i[0],i[1],i[2])}_setTextStyle(e){const i=["left","center","right"],{fontColor:r}=this.data.defaultAppearanceData,o=this.data.defaultAppearanceData.fontSize||AQi,s=e.style;let n;const a=2,l=c=>Math.round(10*c)/10;if(this.data.multiLine){const c=Math.abs(this.data.rect[3]-this.data.rect[1]-a),d=Math.round(c/(pV*o))||1,A=c/d;n=Math.min(o,l(A/pV))}else{const c=Math.abs(this.data.rect[3]-this.data.rect[1]-a);n=Math.min(o,l(c/pV))}s.fontSize=`calc(${n}px * var(--scale-factor))`,s.color=ri.makeHexColor(r[0],r[1],r[2]),this.data.textAlignment!==null&&(s.textAlign=i[this.data.textAlignment])}_setRequired(e,i){i?e.setAttribute("required",!0):e.removeAttribute("required"),e.setAttribute("aria-required",i)}}class gQi extends vf{constructor(e){const i=e.renderForms||e.data.hasOwnCanvas||!e.data.hasAppearance&&!!e.data.fieldValue;super(e,{isRenderable:i})}setPropertyOnSiblings(e,i,r,o){const s=this.annotationStorage;for(const n of this._getElementsByName(e.name,e.id))n.domElement&&(n.domElement[i]=r),s.setValue(n.id,{[o]:r})}render(){var e,i;const r=this.annotationStorage,o=this.data.id;this.container.classList.add("textWidgetAnnotation");let s=null;if(this.renderForms){const n=r.getValue(o,{value:this.data.fieldValue});let a=n.value||"";const l=r.getValue(o,{charLimit:this.data.maxLen}).charLimit;l&&a.length>l&&(a=a.slice(0,l));let c=n.formattedValue||((e=this.data.textContent)==null?void 0:e.join(`
1631
1631
  `))||null;c&&this.data.comb&&(c=c.replaceAll(/\s+/g,""));const d={userValue:a,formattedValue:c,lastCommittedValue:null,commitKey:1,focused:!1};this.data.multiLine?(s=document.createElement("textarea"),s.textContent=c??a,this.data.doNotScroll&&(s.style.overflowY="hidden")):(s=document.createElement("input"),s.type="text",s.setAttribute("value",c??a),this.data.doNotScroll&&(s.style.overflowX="hidden")),this.data.hasOwnCanvas&&(s.hidden=!0),gf.add(s),s.setAttribute("data-element-id",o),s.disabled=this.data.readOnly,s.name=this.data.fieldName,s.tabIndex=Ry,this._setRequired(s,this.data.required),l&&(s.maxLength=l),s.addEventListener("input",u=>{r.setValue(o,{value:u.target.value}),this.setPropertyOnSiblings(s,"value",u.target.value,"value"),d.formattedValue=null}),s.addEventListener("resetform",u=>{const h=this.data.defaultFieldValue??"";s.value=d.userValue=h,d.formattedValue=null});let A=u=>{const{formattedValue:h}=d;h!=null&&(u.target.value=h),u.target.scrollLeft=0};if(this.enableScripting&&this.hasJSActions){s.addEventListener("focus",h=>{var g;if(d.focused)return;const{target:p}=h;d.userValue&&(p.value=d.userValue),d.lastCommittedValue=p.value,d.commitKey=1,(g=this.data.actions)!=null&&g.Focus||(d.focused=!0)}),s.addEventListener("updatefromsandbox",h=>{this.showElementAndHideCanvas(h.target);const g={value(p){d.userValue=p.detail.value??"",r.setValue(o,{value:d.userValue.toString()}),p.target.value=d.userValue},formattedValue(p){const{formattedValue:m}=p.detail;d.formattedValue=m,m!=null&&p.target!==document.activeElement&&(p.target.value=m),r.setValue(o,{formattedValue:m})},selRange(p){p.target.setSelectionRange(...p.detail.selRange)},charLimit:p=>{var m;const{charLimit:f}=p.detail,{target:v}=p;if(f===0){v.removeAttribute("maxLength");return}v.setAttribute("maxLength",f);let C=d.userValue;!C||C.length<=f||(C=C.slice(0,f),v.value=d.userValue=C,r.setValue(o,{value:C}),(m=this.linkService.eventBus)==null||m.dispatch("dispatcheventinsandbox",{source:this,detail:{id:o,name:"Keystroke",value:C,willCommit:!0,commitKey:1,selStart:v.selectionStart,selEnd:v.selectionEnd}}))}};this._dispatchEventFromSandbox(g,h)}),s.addEventListener("keydown",h=>{var g;d.commitKey=1;let p=-1;if(h.key==="Escape"?p=0:h.key==="Enter"&&!this.data.multiLine?p=2:h.key==="Tab"&&(d.commitKey=3),p===-1)return;const{value:m}=h.target;d.lastCommittedValue!==m&&(d.lastCommittedValue=m,d.userValue=m,(g=this.linkService.eventBus)==null||g.dispatch("dispatcheventinsandbox",{source:this,detail:{id:o,name:"Keystroke",value:m,willCommit:!0,commitKey:p,selStart:h.target.selectionStart,selEnd:h.target.selectionEnd}}))});const u=A;A=null,s.addEventListener("blur",h=>{var g,p;if(!d.focused||!h.relatedTarget)return;(g=this.data.actions)!=null&&g.Blur||(d.focused=!1);const{value:m}=h.target;d.userValue=m,d.lastCommittedValue!==m&&((p=this.linkService.eventBus)==null||p.dispatch("dispatcheventinsandbox",{source:this,detail:{id:o,name:"Keystroke",value:m,willCommit:!0,commitKey:d.commitKey,selStart:h.target.selectionStart,selEnd:h.target.selectionEnd}})),u(h)}),(i=this.data.actions)!=null&&i.Keystroke&&s.addEventListener("beforeinput",h=>{var g;d.lastCommittedValue=null;const{data:p,target:m}=h,{value:f,selectionStart:v,selectionEnd:C}=m;let y=v,I=C;switch(h.inputType){case"deleteWordBackward":{const B=f.substring(0,v).match(/\w*[^\w]*$/);B&&(y-=B[0].length);break}case"deleteWordForward":{const B=f.substring(v).match(/^[^\w]*\w*/);B&&(I+=B[0].length);break}case"deleteContentBackward":v===C&&(y-=1);break;case"deleteContentForward":v===C&&(I+=1);break}h.preventDefault(),(g=this.linkService.eventBus)==null||g.dispatch("dispatcheventinsandbox",{source:this,detail:{id:o,name:"Keystroke",value:f,change:p||"",willCommit:!1,selStart:y,selEnd:I}})}),this._setEventListeners(s,d,[["focus","Focus"],["blur","Blur"],["mousedown","Mouse Down"],["mouseenter","Mouse Enter"],["mouseleave","Mouse Exit"],["mouseup","Mouse Up"]],h=>h.target.value)}if(A&&s.addEventListener("blur",A),this.data.comb){const u=(this.data.rect[2]-this.data.rect[0])/l;s.classList.add("comb"),s.style.letterSpacing=`calc(${u}px * var(--scale-factor) - 1ch)`}}else s=document.createElement("div"),s.textContent=this.data.fieldValue,s.style.verticalAlign="middle",s.style.display="table-cell",this.data.hasOwnCanvas&&(s.hidden=!0);return this._setTextStyle(s),this._setBackgroundColor(s),this._setDefaultPropertiesFromJS(s),this.container.append(s),this.container}}class fQi extends vf{constructor(e){super(e,{isRenderable:!!e.data.hasOwnCanvas})}}class mQi extends vf{constructor(e){super(e,{isRenderable:e.renderForms})}render(){const e=this.annotationStorage,i=this.data,r=i.id;let o=e.getValue(r,{value:i.exportValue===i.fieldValue}).value;typeof o=="string"&&(o=o!=="Off",e.setValue(r,{value:o})),this.container.classList.add("buttonWidgetAnnotation","checkBox");const s=document.createElement("input");return gf.add(s),s.setAttribute("data-element-id",r),s.disabled=i.readOnly,this._setRequired(s,this.data.required),s.type="checkbox",s.name=i.fieldName,o&&s.setAttribute("checked",!0),s.setAttribute("exportValue",i.exportValue),s.tabIndex=Ry,s.addEventListener("change",n=>{const{name:a,checked:l}=n.target;for(const c of this._getElementsByName(a,r)){const d=l&&c.exportValue===i.exportValue;c.domElement&&(c.domElement.checked=d),e.setValue(c.id,{value:d})}e.setValue(r,{value:l})}),s.addEventListener("resetform",n=>{const a=i.defaultFieldValue||"Off";n.target.checked=a===i.exportValue}),this.enableScripting&&this.hasJSActions&&(s.addEventListener("updatefromsandbox",n=>{const a={value(l){l.target.checked=l.detail.value!=="Off",e.setValue(r,{value:l.target.checked})}};this._dispatchEventFromSandbox(a,n)}),this._setEventListeners(s,null,[["change","Validate"],["change","Action"],["focus","Focus"],["blur","Blur"],["mousedown","Mouse Down"],["mouseenter","Mouse Enter"],["mouseleave","Mouse Exit"],["mouseup","Mouse Up"]],n=>n.target.checked)),this._setBackgroundColor(s),this._setDefaultPropertiesFromJS(s),this.container.append(s),this.container}}class $4e extends vf{constructor(e){super(e,{isRenderable:e.renderForms})}render(){this.container.classList.add("buttonWidgetAnnotation","radioButton");const e=this.annotationStorage,i=this.data,r=i.id;let o=e.getValue(r,{value:i.fieldValue===i.buttonValue}).value;if(typeof o=="string"&&(o=o!==i.buttonValue,e.setValue(r,{value:o})),o)for(const n of this._getElementsByName(i.fieldName,r))e.setValue(n.id,{value:!1});const s=document.createElement("input");if(gf.add(s),s.setAttribute("data-element-id",r),s.disabled=i.readOnly,this._setRequired(s,this.data.required),s.type="radio",s.name=i.fieldName,o&&s.setAttribute("checked",!0),s.tabIndex=Ry,s.addEventListener("change",n=>{const{name:a,checked:l}=n.target;for(const c of this._getElementsByName(a,r))e.setValue(c.id,{value:!1});e.setValue(r,{value:l})}),s.addEventListener("resetform",n=>{const a=i.defaultFieldValue;n.target.checked=a!=null&&a===i.buttonValue}),this.enableScripting&&this.hasJSActions){const n=i.buttonValue;s.addEventListener("updatefromsandbox",a=>{const l={value:c=>{const d=n===c.detail.value;for(const A of this._getElementsByName(c.target.name)){const u=d&&A.id===r;A.domElement&&(A.domElement.checked=u),e.setValue(A.id,{value:u})}}};this._dispatchEventFromSandbox(l,a)}),this._setEventListeners(s,null,[["change","Validate"],["change","Action"],["focus","Focus"],["blur","Blur"],["mousedown","Mouse Down"],["mouseenter","Mouse Enter"],["mouseleave","Mouse Exit"],["mouseup","Mouse Up"]],a=>a.target.checked)}return this._setBackgroundColor(s),this._setDefaultPropertiesFromJS(s),this.container.append(s),this.container}}class vQi extends X4e{constructor(e){super(e,{ignoreBorder:e.data.hasAppearance})}render(){const e=super.render();e.classList.add("buttonWidgetAnnotation","pushButton");const i=e.lastChild;return this.enableScripting&&this.hasJSActions&&i&&(this._setDefaultPropertiesFromJS(i),i.addEventListener("updatefromsandbox",r=>{this._dispatchEventFromSandbox({},r)})),e}}class CQi extends vf{constructor(e){super(e,{isRenderable:e.renderForms})}render(){this.container.classList.add("choiceWidgetAnnotation");const e=this.annotationStorage,i=this.data.id,r=e.getValue(i,{value:this.data.fieldValue}),o=document.createElement("select");gf.add(o),o.setAttribute("data-element-id",i),o.disabled=this.data.readOnly,this._setRequired(o,this.data.required),o.name=this.data.fieldName,o.tabIndex=Ry;let s=this.data.combo&&this.data.options.length>0;this.data.combo||(o.size=this.data.options.length,this.data.multiSelect&&(o.multiple=!0)),o.addEventListener("resetform",d=>{const A=this.data.defaultFieldValue;for(const u of o.options)u.selected=u.value===A});for(const d of this.data.options){const A=document.createElement("option");A.textContent=d.displayValue,A.value=d.exportValue,r.value.includes(d.exportValue)&&(A.setAttribute("selected",!0),s=!1),o.append(A)}let n=null;if(s){const d=document.createElement("option");d.value=" ",d.setAttribute("hidden",!0),d.setAttribute("selected",!0),o.prepend(d),n=()=>{d.remove(),o.removeEventListener("input",n),n=null},o.addEventListener("input",n)}const a=d=>{const A=d?"value":"textContent",{options:u,multiple:h}=o;return h?Array.prototype.filter.call(u,g=>g.selected).map(g=>g[A]):u.selectedIndex===-1?null:u[u.selectedIndex][A]};let l=a(!1);const c=d=>{const A=d.target.options;return Array.prototype.map.call(A,u=>({displayValue:u.textContent,exportValue:u.value}))};return this.enableScripting&&this.hasJSActions?(o.addEventListener("updatefromsandbox",d=>{const A={value(u){n?.();const h=u.detail.value,g=new Set(Array.isArray(h)?h:[h]);for(const p of o.options)p.selected=g.has(p.value);e.setValue(i,{value:a(!0)}),l=a(!1)},multipleSelection(u){o.multiple=!0},remove(u){const h=o.options,g=u.detail.remove;h[g].selected=!1,o.remove(g),h.length>0&&Array.prototype.findIndex.call(h,p=>p.selected)===-1&&(h[0].selected=!0),e.setValue(i,{value:a(!0),items:c(u)}),l=a(!1)},clear(u){for(;o.length!==0;)o.remove(0);e.setValue(i,{value:null,items:[]}),l=a(!1)},insert(u){const{index:h,displayValue:g,exportValue:p}=u.detail.insert,m=o.children[h],f=document.createElement("option");f.textContent=g,f.value=p,m?m.before(f):o.append(f),e.setValue(i,{value:a(!0),items:c(u)}),l=a(!1)},items(u){const{items:h}=u.detail;for(;o.length!==0;)o.remove(0);for(const g of h){const{displayValue:p,exportValue:m}=g,f=document.createElement("option");f.textContent=p,f.value=m,o.append(f)}o.options.length>0&&(o.options[0].selected=!0),e.setValue(i,{value:a(!0),items:c(u)}),l=a(!1)},indices(u){const h=new Set(u.detail.indices);for(const g of u.target.options)g.selected=h.has(g.index);e.setValue(i,{value:a(!0)}),l=a(!1)},editable(u){u.target.disabled=!u.detail.editable}};this._dispatchEventFromSandbox(A,d)}),o.addEventListener("input",d=>{var A;const u=a(!0),h=a(!1);e.setValue(i,{value:u}),d.preventDefault(),(A=this.linkService.eventBus)==null||A.dispatch("dispatcheventinsandbox",{source:this,detail:{id:i,name:"Keystroke",value:l,change:h,changeEx:u,willCommit:!1,commitKey:1,keyDown:!1}})}),this._setEventListeners(o,null,[["focus","Focus"],["blur","Blur"],["mousedown","Mouse Down"],["mouseenter","Mouse Enter"],["mouseleave","Mouse Exit"],["mouseup","Mouse Up"],["input","Action"],["input","Validate"]],d=>d.target.value)):o.addEventListener("input",function(d){e.setValue(i,{value:a(!0)})}),this.data.combo&&this._setTextStyle(o),this._setBackgroundColor(o),this._setDefaultPropertiesFromJS(o),this.container.append(o),this.container}}class Iq extends Bn{constructor(e){const{data:i,elements:r}=e;super(e,{isRenderable:Bn._hasPopupData(i)}),this.elements=r,this.popup=null}render(){this.container.classList.add("popupAnnotation");const e=this.popup=new yQi({container:this.container,color:this.data.color,titleObj:this.data.titleObj,modificationDate:this.data.modificationDate,contentsObj:this.data.contentsObj,richText:this.data.richText,rect:this.data.rect,parentRect:this.data.parentRect||null,parent:this.parent,elements:this.elements,open:this.data.open}),i=[];for(const r of this.elements)r.popup=e,r.container.ariaHasPopup="dialog",i.push(r.data.id),r.addHighlightArea();return this.container.setAttribute("aria-controls",i.map(r=>`${wV}${r}`).join(",")),this.container}}var Ty,wq,bq,Ny,l4,$o,g0,Uy,lS,cS,Oy,f0,yA,m0,dS,v0,AS,Cf,c4,En,uS,Bq,e5e,t5e,i5e,r5e,hS,pS,Eq;class yQi{constructor({container:e,color:i,elements:r,titleObj:o,modificationDate:s,contentsObj:n,richText:a,parent:l,rect:c,parentRect:d,open:A}){le(this,En),le(this,Ty,Z(this,En,i5e).bind(this)),le(this,wq,Z(this,En,Eq).bind(this)),le(this,bq,Z(this,En,pS).bind(this)),le(this,Ny,Z(this,En,hS).bind(this)),le(this,l4,null),le(this,$o,null),le(this,g0,null),le(this,Uy,null),le(this,lS,null),le(this,cS,null),le(this,Oy,null),le(this,f0,!1),le(this,yA,null),le(this,m0,null),le(this,dS,null),le(this,v0,null),le(this,AS,null),le(this,Cf,null),le(this,c4,!1);var u;te(this,$o,e),te(this,AS,o),te(this,g0,n),te(this,v0,a),te(this,cS,l),te(this,l4,i),te(this,dS,c),te(this,Oy,d),te(this,lS,r),te(this,Uy,EV.toDateObject(s)),this.trigger=r.flatMap(h=>h.getElementsToTriggerPopup());for(const h of this.trigger)h.addEventListener("click",M(this,Ny)),h.addEventListener("mouseenter",M(this,bq)),h.addEventListener("mouseleave",M(this,wq)),h.classList.add("popupTriggerArea");for(const h of r)(u=h.container)==null||u.addEventListener("keydown",M(this,Ty));M(this,$o).hidden=!0,A&&Z(this,En,hS).call(this)}render(){if(M(this,yA))return;const e=te(this,yA,document.createElement("div"));if(e.className="popup",M(this,l4)){const s=e.style.outlineColor=ri.makeHexColor(...M(this,l4));CSS.supports("background-color","color-mix(in srgb, red 30%, white)")?e.style.backgroundColor=`color-mix(in srgb, ${s} 30%, white)`:e.style.backgroundColor=ri.makeHexColor(...M(this,l4).map(n=>Math.floor(.7*(255-n)+n)))}const i=document.createElement("span");i.className="header";const r=document.createElement("h1");if(i.append(r),{dir:r.dir,str:r.textContent}=M(this,AS),e.append(i),M(this,Uy)){const s=document.createElement("span");s.classList.add("popupDate"),s.setAttribute("data-l10n-id","pdfjs-annotation-date-time-string"),s.setAttribute("data-l10n-args",JSON.stringify({dateObj:M(this,Uy).valueOf()})),i.append(s)}const o=M(this,En,uS);if(o)Y4e.render({xfaHtml:o,intent:"richText",div:e}),e.lastChild.classList.add("richText","popupContent");else{const s=this._formatContents(M(this,g0));e.append(s)}M(this,$o).append(e)}_formatContents({str:e,dir:i}){const r=document.createElement("p");r.classList.add("popupContent"),r.dir=i;const o=e.split(/(?:\r\n?|\n)/);for(let s=0,n=o.length;s<n;++s){const a=o[s];r.append(document.createTextNode(a)),s<n-1&&r.append(document.createElement("br"))}return r}updateEdited({rect:e,popupContent:i}){var r;M(this,Cf)||te(this,Cf,{contentsObj:M(this,g0),richText:M(this,v0)}),e&&te(this,m0,null),i&&(te(this,v0,Z(this,En,t5e).call(this,i)),te(this,g0,null)),(r=M(this,yA))==null||r.remove(),te(this,yA,null)}resetEdited(){var e;M(this,Cf)&&({contentsObj:Ma(this,g0)._,richText:Ma(this,v0)._}=M(this,Cf),te(this,Cf,null),(e=M(this,yA))==null||e.remove(),te(this,yA,null),te(this,m0,null))}forceHide(){te(this,c4,this.isVisible),M(this,c4)&&(M(this,$o).hidden=!0)}maybeShow(){M(this,c4)&&(M(this,yA)||Z(this,En,pS).call(this),te(this,c4,!1),M(this,$o).hidden=!1)}get isVisible(){return M(this,$o).hidden===!1}}Ty=new WeakMap,wq=new WeakMap,bq=new WeakMap,Ny=new WeakMap,l4=new WeakMap,$o=new WeakMap,g0=new WeakMap,Uy=new WeakMap,lS=new WeakMap,cS=new WeakMap,Oy=new WeakMap,f0=new WeakMap,yA=new WeakMap,m0=new WeakMap,dS=new WeakMap,v0=new WeakMap,AS=new WeakMap,Cf=new WeakMap,c4=new WeakMap,En=new WeakSet,uS=function(){const t=M(this,v0),e=M(this,g0);return t!=null&&t.str&&(!(e!=null&&e.str)||e.str===t.str)&&M(this,v0).html||null},Bq=function(){var t,e,i;return((i=(e=(t=M(this,En,uS))==null?void 0:t.attributes)==null?void 0:e.style)==null?void 0:i.fontSize)||0},e5e=function(){var t,e,i;return((i=(e=(t=M(this,En,uS))==null?void 0:t.attributes)==null?void 0:e.style)==null?void 0:i.color)||null},t5e=function(t){const e=[],i={str:t,html:{name:"div",attributes:{dir:"auto"},children:[{name:"p",children:e}]}},r={style:{color:M(this,En,e5e),fontSize:M(this,En,Bq)?`calc(${M(this,En,Bq)}px * var(--scale-factor))`:""}};for(const o of t.split(`