@bimdata/viewer 2.17.0-beta.1 → 2.17.0-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
--dashoffset-to: ${i.dashOffsetTo};`),onAnimationiteration:e[0]||(e[0]=s=>t.$emit("lap",(i.delay*i.laps-s.elapsedTime)/i.delay)),onAnimationend:e[1]||(e[1]=s=>t.$emit("stop"))},null,44,jft)],8,Lft)),C("div",{class:"bimdata-pie-spinner__inside",style:Ee({width:i.width+"px",height:i.width+"px"})},[jt(t.$slots,"default",{},void 0,!0)],4)])}const Oft=G(Dft,[["render",Fft],["__scopeId","data-v-70da4628"]]),qft={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)}}},Uft=["disabled"],Nft={class:"bimdata-radio__text"};function Hft(t,e,i,r,n,o){return P(),j("button",{type:"button",class:Be(["bimdata-radio",{disabled:i.disabled,"bimdata-radio--checked":o.checked,"bimdata-radio--big":i.big}]),disabled:i.disabled,onClick:e[0]||(e[0]=(...s)=>o.onClick&&o.onClick(...s))},[e[1]||(e[1]=C("div",{class:"bimdata-radio__btn"},[C("div",{class:"bimdata-radio__background"}),C("div",{class:"bimdata-radio__circle"}),C("div",{class:"bimdata-radio__dot"})],-1)),C("div",Nft,[jt(t.$slots,"default",{},()=>[lt(Z(i.text),1)],!0)])],10,Uft)}const zft=G(qft,[["render",Hft],["__scopeId","data-v-91eb0639"]]),Vft={props:{itemWidth:{type:String,default:"100px"},rowGap:{type:String,default:"12px"},columnGap:{type:String,default:"12px"},isRepeatFit:{type:Boolean,default:!1}}};function Gft(t,e,i,r,n,o){return P(),j("div",{class:"bimdata-responsive-grid",style:Ee({gridTemplateColumns:i.isRepeatFit?`repeat(auto-fit, minmax(${i.itemWidth}, 1fr))`:`repeat(auto-fill, minmax(${i.itemWidth}, 1fr))`,rowGap:i.rowGap,columnGap:i.columnGap})},[jt(t.$slots,"default",{},void 0,!0)],4)}const Qft=G(Vft,[["render",Gft],["__scopeId","data-v-b626b0fb"]]),Kft={components:{BIMDataIconClose:vC,BIMDataButton:_o},props:{reverse:{type:Boolean,default:!1}},emits:["confirm-delete","cancel-delete"]},Wft={class:"safe-zone-inline"};function Jft(t,e,i,r,n,o){const s=R("BIMDataButton"),a=R("BIMDataIconClose");return P(),j("div",Wft,[D(s,{class:"safe-zone-inline__btn-delete",color:"high",fill:"",radius:"",onClick:e[0]||(e[0]=l=>t.$emit("confirm-delete"))},{default:H(()=>[jt(t.$slots,"content",{},()=>[e[2]||(e[2]=lt("Delete",-1))],!0)]),_:3}),D(s,{class:"safe-zone-inline__btn-close",style:Ee({width:"15px",order:i.reverse?-1:0}),width:"0px",radius:"",onClick:e[1]||(e[1]=l=>t.$emit("cancel-delete"))},{default:H(()=>[D(a,{size:"xxs",color:"granite"})]),_:1},8,["style"])])}const Yft=G(Kft,[["render",Jft],["__scopeId","data-v-b2effc6d"]]),Zft={components:{BIMDataIconClose:vC,BIMDataIconSearch:JD,BIMDataButton:_o},directives:{focus:{inserted:function(t,{value:e}){e&&t.focus()}},clickaway:mu},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=>zD.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")}}},Xft={class:"bimdata-search-icon"},$ft=["value","placeholder","autocomplete","disabled"];function e0t(t,e,i,r,n,o){const s=R("BIMDataIconSearch"),a=R("BIMDataIconClose"),l=R("BIMDataButton"),c=er("focus"),d=er("clickaway");return Ht((P(),j("div",{class:Be(["bimdata-search-bar",{focus:n.focused,disabled:i.disabled,...o.classes}]),style:Ee({width:i.width,height:i.height})},[C("span",Xft,[D(s,{size:"xxs"})]),Ht(C("input",{ref:"input",value:i.modelValue,onFocus:e[0]||(e[0]=u=>n.focused=!0),onBlur:e[1]||(e[1]=u=>n.focused=!1),onInput:e[2]||(e[2]=u=>t.$emit("update:modelValue",u.target.value)),placeholder:i.placeholder,onKeyup:e[3]||(e[3]=ui(u=>t.$emit("enter",u.target.value),["enter"])),autocomplete:i.autocomplete?"on":"off",disabled:i.disabled},null,40,$ft),[[c,i.autofocus]]),i.clear&&i.modelValue!==""?(P(),X(l,{key:0,width:"25px",onClick:e[4]||(e[4]=u=>o.clickClear())},{default:H(()=>[D(a,{size:"xxs"})]),_:1})):ye("",!0)],6)),[[d,o.away]])}const t0t=G(Zft,[["render",e0t],["__scopeId","data-v-c3818791"]]),i0t={components:{BIMDataIconDefault:ute,BIMDataIconSearch:JD,BIMDataTextbox:bC},directives:{clickaway:mu},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}}},r0t={class:"bimdata-search-autocomplete"},n0t={class:"bimdata-search-autocomplete__input flex items-center"},o0t={class:"bimdata-search-icon flex"},s0t=["placeholder"],a0t={class:"bimdata-list p-y-6"},l0t={key:0,class:"loading"},c0t=["onClick"],d0t={class:"bimdata-search-autocomplete__dropdown__left m-r-12"},u0t=["src"],h0t={class:"bimdata-search-autocomplete__dropdown__right flex flex-col"},p0t={key:0,class:"title"},f0t={key:1,class:"text"};function g0t(t,e,i,r,n,o){const s=R("BIMDataIconSearch"),a=R("BIMDataIconDefault"),l=R("BIMDataTextbox"),c=er("clickaway");return Ht((P(),j("div",r0t,[C("div",n0t,[C("span",o0t,[D(s,{fill:"",color:"default",size:"xxs"})]),Ht(C("input",{class:"form-control p-l-36 p-r-12",type:"text","onUpdate:modelValue":e[0]||(e[0]=d=>n.search=d),placeholder:i.placeholder,onKeydown:[e[1]||(e[1]=ui((...d)=>o.onEnter&&o.onEnter(...d),["enter"])),e[2]||(e[2]=ui((...d)=>o.onArrowDown&&o.onArrowDown(...d),["down"])),e[3]||(e[3]=ui((...d)=>o.onArrowUp&&o.onArrowUp(...d),["up"]))],onInput:e[4]||(e[4]=(...d)=>o.onChange&&o.onChange(...d)),onFocus:e[5]||(e[5]=(...d)=>o.focus&&o.focus(...d))},null,40,s0t),[[o0,n.search]])]),C("div",{class:Be(["bimdata-search-autocomplete__dropdown",{open:o.openResults}])},[C("ul",a0t,[i.loading?(P(),j("li",l0t,[jt(t.$slots,"loading",{},()=>[e[7]||(e[7]=C("p",{class:"text-center"},"loading results...",-1))],!0)])):(P(!0),j(mt,{key:1},Xt(o.results,(d,u)=>(P(),j("li",{key:u,class:Be([{active:u===n.current},"p-y-6 p-x-12 flex items-center"]),onClick:h=>o.onElementClick(d)},[jt(t.$slots,"left",{result:d},()=>[C("div",d0t,[d&&d.logo?(P(),j("img",{key:0,class:"logo",src:d.logo},null,8,u0t)):jt(t.$slots,"logoPlaceholder",{key:1},()=>[D(a,{fill:"",color:"default"})],!0)])],!0),C("div",h0t,[d&&d.title?(P(),j("span",p0t,Z(d.title),1)):ye("",!0),d&&d.text?(P(),j("span",f0t,[D(l,{text:d.text,width:"260px",cutPosition:"end",tooltip:!1},null,8,["text"])])):ye("",!0)])],10,c0t))),128))]),i.isAllResultatsBtnActive?(P(),j("div",{key:0,class:"bimdata-search-autocomplete__dropdown__button flex items-center justify-center",onClick:e[6]||(e[6]=(...d)=>o.onAllResultatsBtnClick&&o.onAllResultatsBtnClick(...d))},' See all results for "'+Z(n.search)+'" ',1)):ye("",!0)],2)])),[[c,o.away]])}const m0t=G(i0t,[["render",g0t],["__scopeId","data-v-b485ea22"]]),A0t={components:{BIMDataCheckbox:gC,BIMDataIconChevron:wd},directives:{clickaway:mu},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()}}},v0t={class:"bimdata-select__content"},b0t={class:"bimdata-select__content__label"},w0t={class:"bimdata-select__option-list"},y0t={key:1},x0t={class:"bimdata-list m-y-6"},C0t=["onClick"];function k0t(t,e,i,r,n,o){const s=R("BIMDataIconChevron"),a=R("BIMDataSearch"),l=R("BIMDataCheckbox"),c=er("clickaway");return Ht((P(),j("div",{class:Be(["bimdata-select",{disabled:i.disabled,active:n.isOpen,"not-empty":i.modelValue.length>0}]),style:Ee({width:i.width})},[C("div",v0t,[C("div",{class:"bimdata-select__content__value",onClick:e[0]||(e[0]=(...d)=>o.toggle&&o.toggle(...d))},[C("span",null,Z(o.displayedValue),1),D(s,{size:"xxs",rotate:n.isOpen?90:0},null,8,["rotate"])]),C("label",b0t,Z(i.label),1),e[2]||(e[2]=C("span",{class:"bimdata-select__content__underline"},null,-1))]),D(hr,{name:"slide-fade-down"},{default:H(()=>[Ht(C("div",w0t,[i.search?(P(),X(a,{key:0,width:"calc(100% - 12px)",color:"primary",radius:"",placeholder:i.searchPlaceholder,modelValue:n.searchText,"onUpdate:modelValue":e[1]||(e[1]=d=>n.searchText=d),class:"m-6"},null,8,["placeholder","modelValue"])):ye("",!0),o.filteredOptions.length===0?(P(),j("div",y0t,[jt(t.$slots,"empty",{},void 0,!0)])):ye("",!0),C("ul",x0t,[(P(!0),j(mt,null,Xt(o.filteredOptions,(d,u)=>(P(),j("li",{class:Be(["bimdata-select__option-list__entry",{selected:o.isSelected(d),disabled:o.isDisabled(d),"option-group":o.isOptionGroup(d)}]),key:u,onClick:h=>o.onOptionClick(d)},[o.isOptionGroup(d)?(P(),j(mt,{key:0},[lt(Z(o.optionLabel(d)),1)],64)):(P(),X(l,{key:1,modelValue:o.isSelected(d),disabled:o.isDisabled(d),text:o.optionLabel(d)},null,8,["modelValue","disabled","text"]))],10,C0t))),128))])],512),[[wi,!i.disabled&&n.isOpen]])]),_:3})],6)),[[c,o.away]])}const Bte=G(A0t,[["render",k0t],["__scopeId","data-v-cfb01881"]]),M0t={components:{BIMDataIconChevron:wd},directives:{clickaway:mu},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()}}},E0t={class:"bimdata-select__content"},B0t={class:"bimdata-select__content__label"},P0t={class:"bimdata-select__option-list"},I0t={key:1},S0t={class:"bimdata-list m-y-6"},T0t=["onClick"];function R0t(t,e,i,r,n,o){const s=R("BIMDataIconChevron"),a=R("BIMDataSearch"),l=er("clickaway");return Ht((P(),j("div",{class:Be(["bimdata-select",{disabled:i.disabled,active:n.isOpen,"not-empty":i.modelValue!==void 0&&i.modelValue!==null}]),style:Ee({width:i.width})},[C("div",E0t,[C("div",{class:"bimdata-select__content__value",onClick:e[0]||(e[0]=(...c)=>o.toggle&&o.toggle(...c))},[C("span",null,Z(o.displayedValue),1),D(s,{size:"xxs",rotate:n.isOpen?90:0},null,8,["rotate"])]),C("label",B0t,Z(i.label),1),e[3]||(e[3]=C("span",{class:"bimdata-select__content__underline"},null,-1))]),D(hr,{name:"slide-fade-down"},{default:H(()=>[Ht(C("div",P0t,[i.search?(P(),X(a,{key:0,width:"calc(100% - 12px)",color:"primary",radius:"",placeholder:i.searchPlaceholder,modelValue:n.searchText,"onUpdate:modelValue":e[1]||(e[1]=c=>n.searchText=c),class:"m-6"},null,8,["placeholder","modelValue"])):ye("",!0),o.filteredOptions.length===0?(P(),j("div",I0t,[jt(t.$slots,"empty",{},void 0,!0)])):ye("",!0),C("ul",S0t,[i.nullValue?(P(),j("li",{key:0,class:"bimdata-select__option-list__entry",onClick:e[2]||(e[2]=c=>o.onNullValueClick())},Z(i.nullLabel||"None"),1)):ye("",!0),(P(!0),j(mt,null,Xt(o.filteredOptions,(c,d)=>(P(),j("li",{class:Be(["bimdata-select__option-list__entry",{selected:o.isSelected(c),disabled:o.isDisabled(c),"option-group":o.isOptionGroup(c)}]),key:d,onClick:u=>o.onOptionClick(c)},Z(o.optionLabel(c)),11,T0t))),128))])],512),[[wi,!i.disabled&&n.isOpen]])]),_:3})],6)),[[l,o.away]])}const Pte=G(M0t,[["render",R0t],["__scopeId","data-v-53825b9f"]]),D0t={components:{BIMDataSelectMulti:Bte,BIMDataSelectSingle:Pte},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()=>Tn(t.multi?Bte:Pte,{...t,"onUpdate:modelValue":r=>e("update:modelValue",r)},{empty:()=>i.empty?.()})}},_0t={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),n=this.barDistanceFromCenter;return`M${r.x},${r.y} A${n} ${n} 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,n=e*Math.sin(i)+this.center;return{x:r,y:n}},getTarget(t,e){const i=t>50?1:0,{x:r,y:n}=this.getPercentagePosition(t+e);return`${i} 1 ${r},${n}`}}},L0t={class:"bimdata-simple-pie-chart",ref:"container"},j0t=["viewBox"],F0t=["cx","cy","r","stroke-width","stroke"],O0t=["d","stroke-width","stroke"];function q0t(t,e,i,r,n,o){return P(),j("div",L0t,[(P(),j("svg",{viewBox:o.viewBox,style:Ee(`--graph-draw-time: ${i.graphDrawTime}s;`)},[i.placeholder?(P(),j("circle",{key:0,cx:o.center,cy:o.center,r:i.barDistanceFromCenter,"stroke-width":i.placeholderStrokeWidth,stroke:i.placeholderColor,fill:"none"},null,8,F0t)):ye("",!0),(P(!0),j(mt,null,Xt(o.displayedBarsData,(s,a)=>(P(),j("g",{key:a},[s.percentage>0?(P(),j("path",{key:0,class:"path",d:o.getPath(s),"stroke-width":i.barStrokeWidth,stroke:s.color,fill:"none"},null,8,O0t)):ye("",!0)]))),128))],12,j0t))],512)}const U0t=G(_0t,[["render",q0t],["__scopeId","data-v-4572e7e7"]]),N0t={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))`}}},H0t={class:"bimdata-slider"},z0t=["min","max","step","value","disabled"];function V0t(t,e,i,r,n,o){return P(),j("div",H0t,[C("input",{ref:"input",class:"bimdata-slider-input",type:"range",style:Ee(`--background-size: ${n.backgroundSize}%`),min:i.min,max:i.max,step:i.step,value:i.modelValue,disabled:i.disabled,onInput:e[0]||(e[0]=(...s)=>o.onInput&&o.onInput(...s))},null,44,z0t),i.tooltip?(P(),j("output",{key:0,class:"bimdata-slider-tooltip",style:Ee({left:n.tooltipPosition})},Z(i.modelValue),5)):ye("",!0)])}const G0t=G(N0t,[["render",V0t],["__scopeId","data-v-de9cce2c"]]);function Q0t(t,e,{rowSelectionUpdateEffect:i=()=>{},rowSelectionToggleEffect:r=()=>{},fullSelectionToggleEffect:n=()=>{}}={}){const o=xe(new Map);return Rt(t,()=>{o.value=new Map(t.value.filter(({key:s})=>e.value.has(s)).map(({key:s,data:a})=>[s,a]))},{immediate:!0}),Rt(e,()=>{o.value=e.value},{immediate:!0}),Rt(o,()=>{i(o.value)}),{rowSelection:o,toggleRowSelection:({key:s,data:a})=>{const l=()=>o.value.has(s);l()?o.value.delete(s):o.value.set(s,a),o.value=new Map([...o.value.entries()]),r(l(),{key:s,data:a})},toggleFullSelection:()=>{const s=()=>o.value.size>0;s()?o.value=new Map:o.value=new Map(t.value.map(({key:a,data:l})=>[a,l])),n(s())}}}const K0t={components:{BIMDataButton:_o,BIMDataIconCaret:KD},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 W0t(t,e,i,r,n,o){const s=R("BIMDataIconCaret"),a=R("BIMDataButton");return P(),j("span",{class:Be([i.sortOrder==="asc"?"asc":"desc","m-l-6"]),onMousedown:e[0]||(e[0]=Ut(()=>{},["prevent"]))},[D(a,{color:"primary",ghost:"",rounded:"",icon:"",class:Be({active:i.active}),onClick:r.toggleActive},{default:H(()=>[D(s,{rotate:i.sortOrder==="desc"?180:0,size:"xxxs",fill:"",color:"default"},null,8,["rotate"])]),_:1},8,["class","onClick"])],34)}const J0t=G(K0t,[["render",W0t],["__scopeId","data-v-cddfddda"]]),Y0t={components:{BIMDataCheckbox:gC},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=Je(()=>{const n=t.columnData.filter(o=>o!==null);return[...new Set(n.flatMap(o=>typeof i.filterFunction=="function"?i.filterFunction(o):(Array.isArray(o)||(o=[o]),i?.filterKey?o.map(s=>s[i?.filterKey]):o)))]});return{columnElements:Je(()=>r.value.map(n=>({data:n,checked:t.filters.includes(n)}))),toggle:(n,o)=>{const s=new Set(t.filters);o?s.add(n):s.delete(n),e("filter",[...s])}}}},Z0t={class:"column-filters p-12"},X0t={key:0,class:"column-filters__element flex align-center"};function $0t(t,e,i,r,n,o){const s=R("BIMDataCheckbox");return P(),j("div",Z0t,[r.columnElements.length===0?(P(),j("div",X0t,[jt(t.$slots,"column-filter-empty",{},void 0,!0)])):ye("",!0),(P(!0),j(mt,null,Xt(r.columnElements,a=>(P(),j("div",{key:a.data,class:"column-filters__element flex align-center"},[D(s,{text:a.data,modelValue:a.checked,"onUpdate:modelValue":l=>r.toggle(a.data,l)},null,8,["text","modelValue","onUpdate:modelValue"])]))),128))])}const egt=G(Y0t,[["render",$0t],["__scopeId","data-v-6192724c"]]),tgt={components:{BIMDataButton:_o,BIMDataCheckbox:gC,BIMDataIconCaret:KD,BIMDataIconChevron:wd,ColumnSorting:J0t,ColumnFilters:egt},directives:{clickaway:mu},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=Je(()=>t.rows.map((S,T)=>({key:S[t.rowKey]??T,data:S}))),{rowSelection:r,toggleRowSelection:n,toggleFullSelection:o}=Q0t(i,Je(()=>t.selection),{rowSelectionUpdateEffect:S=>{e("update:selection",S),e("selection-changed",Array.from(S.values()))},rowSelectionToggleEffect:(S,{data:T})=>{e(S?"row-selected":"row-deselected",T)},fullSelectionToggleEffect:S=>{e(S?"all-selected":"all-deselected")}}),s=Je(()=>r.value.size<t.rows.length?r.value.size>0?null:!1:r.value.size>0),a=S=>{t.selectable&&n(S)},l=()=>{t.selectable&&o()},c=(S,T)=>{t.canDragOverRow(S)&&(e("row-drop",{data:S,event:T}),d.value=null)},d=xe(null),u=(S,T,_)=>{t.canDragOverRow(T)&&(_.preventDefault(),d.value=S)},h=()=>{d.value=null},p=xe(null),g=S=>{p.value===S.id?p.value=null:p.value=S.id},f=S=>{S.id===p.value&&(p.value=null)},A=Qo({column:null,order:null}),m=xe([]),b=Je(()=>{if(A.column){const S=A.order!=="desc"?1:-1;if(A.column.sortFunction){const T=(_,O)=>A.column.sortFunction(_.data,O.data)*S;return Array.from(i.value).sort(T)}else return Array.from(i.value).sort((T,_)=>T.data[A.column.id]<_.data[A.column.id]?S:T.data[A.column.id]>_.data[A.column.id]?-S:0)}return m.value.length>0?Array.from(i.value).filter(S=>S.data[m.value[0].id]===m.value[0].text):i.value}),v=S=>{A.column===S?A.order=A.order==="asc"?"desc":"asc":(A.column=S,A.order=S.defaultSortOrder??"asc")},w=xe([]),y=Je(()=>b.value.filter(S=>w.value.every(T=>{const _=t.columns.find(N=>N.id===T.columnKey),O=S.data[T.columnKey];if(O!==null)return Array.isArray(O)?O.some(N=>T.columnFilters.includes(typeof _.filterFunction=="function"?_.filterFunction(N):_.filterKey?N[_.filterKey]:N)):T.columnFilters.includes(typeof _.filterFunction=="function"?_.filterFunction(O):_.filterKey?O[_.filterKey]:O)}))),x=(S,T)=>{w.value=w.value.filter(_=>_.columnKey!==S.id),T.length>0&&w.value.push({columnKey:S.id,columnFilters:T})},k=xe([]),E=xe(0),B=xe(1),I=xe(t.perPage);return Rt([y,()=>t.perPage],()=>{E.value=0},{immediate:!0}),Rt([y,()=>t.paginated,()=>t.perPage,E],([S,T,_,O])=>{const N=S.map(U=>U.key);if(T){const U=_*O,V=U+_;k.value=N.slice(U,V),B.value=U+1,I.value=Math.min(V,S.length)}else k.value=N},{immediate:!0}),{activeHeadercolumnKey:null,computedRows:i,paginatedRows:k,pageIndex:E,pageIndexEnd:I,pageIndexStart:B,rowSelection:r,dragOveredRowKey:d,displayedColumnFilterId:p,filteringColumns:m,filters:w,selectionState:s,sortObject:A,awayFromFilter:f,onDrop:c,onDragover:u,onDragleave:h,toggleAll:l,toggleRow:a,toggleSorting:v,updateFilters:x,toggleFiltersMenu:g,displayedRows:y}}},igt={class:"bimdata-table"},rgt={key:0,class:"cell-checkbox"},ngt={style:{display:"inline-flex","align-items":"center"}},ogt={key:1},sgt={key:"head-row-1"},agt=["colspan"],lgt=["onDrop","onDragover"],cgt={key:0,class:"cell-checkbox"},dgt={class:"bimdata-table__page-nav__text"};function ugt(t,e,i,r,n,o){const s=R("BIMDataCheckbox"),a=R("ColumnSorting"),l=R("BIMDataIconCaret"),c=R("BIMDataButton"),d=R("ColumnFilters"),u=R("BIMDataIconChevron"),h=er("clickaway");return P(),j("div",igt,[C("div",{class:"bimdata-table__container",style:Ee({height:i.paginated?`${(i.perPage+1)*i.rowHeight}px`:void 0})},[C("table",{style:Ee({width:i.tableWidth,tableLayout:i.tableLayout})},[C("thead",null,[C("tr",{key:"head-row-0",style:Ee({height:`${i.rowHeight}px`})},[i.selectable?(P(),j("th",rgt,[D(s,{disabled:i.rows.length===0,modelValue:r.selectionState,"onUpdate:modelValue":r.toggleAll},null,8,["disabled","modelValue","onUpdate:modelValue"])])):ye("",!0),(P(!0),j(mt,null,Xt(i.columns,(p,g)=>(P(),j("th",{key:`head-row-0-col-${g}`,style:Ee({width:p.width||"auto",textAlign:p.align||"left"})},[C("div",ngt,[lt(Z(p.id?p.label||p.id:p)+" ",1),jt(t.$slots,"column-header-right",{},void 0,!0),p.sortable?(P(),X(a,{key:0,sortOrder:!r.sortObject.order||r.sortObject.column!==p?"asc":r.sortObject.order,index:g,active:g===r.activeHeadercolumnKey,onClick:f=>r.toggleSorting(p),onSetActive:e[0]||(e[0]=f=>r.activeHeadercolumnKey=f)},null,8,["sortOrder","index","active","onClick"])):ye("",!0),p.filter?Ht((P(),j("div",ogt,[D(c,{color:"primary",ghost:"",rounded:"",icon:"",class:Be(["m-l-6",{active:r.filters.some(f=>f.columnKey===p.id)}]),onClick:f=>r.toggleFiltersMenu(p)},{default:H(()=>[D(l,{size:"xxxs",fill:"",color:"default"})]),_:1},8,["class","onClick"]),r.displayedColumnFilterId===p.id?(P(),X(d,{key:0,column:p,columnData:r.computedRows.map(f=>f.data[p.id]),filters:r.filters.find(f=>f.columnKey===p.id)?.columnFilters??[],onFilter:f=>r.updateFilters(p,f)},{"column-filter-empty":H(()=>[jt(t.$slots,"column-filter-empty",{},void 0,!0)]),_:3},8,["column","columnData","filters","onFilter"])):ye("",!0)])),[[h,()=>r.awayFromFilter(p)]]):ye("",!0)])],4))),128))],4),C("tr",sgt,[C("th",{class:"cell-sub-header",colspan:i.columns.length+i.selectable},[jt(t.$slots,"sub-header",{},void 0,!0)],8,agt)])]),C("tbody",{onDragleave:e[1]||(e[1]=(...p)=>r.onDragleave&&r.onDragleave(...p))},[(P(!0),j(mt,null,Xt(r.displayedRows,({key:p,data:g})=>Ht((P(),j("tr",{key:`body-row-${p}`,style:Ee({height:`${i.rowHeight}px`}),onDrop:f=>r.onDrop(g,f),onDragover:f=>r.onDragover(p,g,f),class:Be({"bimdata-table__row--drag-overed":r.dragOveredRowKey===p})},[i.selectable?(P(),j("td",cgt,[D(s,{modelValue:r.rowSelection.has(p),"onUpdate:modelValue":f=>r.toggleRow({key:p,data:g})},null,8,["modelValue","onUpdate:modelValue"])])):ye("",!0),(P(!0),j(mt,null,Xt(i.columns,(f,A)=>(P(),j("td",{key:`body-row-${p}-col-${A}`,style:Ee({width:f.width||"auto",textAlign:f.align||"left"})},[jt(t.$slots,`cell-${f.id}`,{row:g},()=>[lt(Z(g[f.id]||g[A]),1)],!0)],4))),128))],46,lgt)),[[wi,r.paginatedRows.includes(p)]])),128))],32)],4),i.rows.length===0?(P(),j("div",{key:0,class:"bimdata-table__container__placeholder",style:Ee({height:`calc(100% - ${i.rowHeight}px)`})},[jt(t.$slots,"placeholder",{},()=>[lt(Z(i.placeholder),1)],!0)],4)):ye("",!0)],4),i.paginated?(P(),j("div",{key:0,class:"bimdata-table__page-nav",style:Ee({visibility:r.displayedRows.length>i.perPage?"visible":"hidden"})},[D(c,{ghost:"",rounded:"",icon:"",disabled:r.pageIndexStart===1,onClick:e[2]||(e[2]=p=>r.pageIndex--)},{default:H(()=>[D(u,{size:"s",rotate:180})]),_:1},8,["disabled"]),C("span",dgt,Z(`${r.pageIndexStart} - ${r.pageIndexEnd} / ${r.displayedRows.length}`),1),D(c,{ghost:"",rounded:"",icon:"",disabled:r.pageIndexEnd===r.displayedRows.length,onClick:e[3]||(e[3]=p=>r.pageIndex++)},{default:H(()=>[D(u,{size:"s"})]),_:1},8,["disabled"])],4)):ye("",!0)])}const hgt=G(tgt,[["render",ugt],["__scopeId","data-v-e91e8e65"]]),pgt={components:{BIMDataButton:_o,BIMDataIconChevron:wd},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=[]}}}},fgt=["onClick"];function ggt(t,e,i,r,n,o){const s=R("BIMDataIconChevron"),a=R("BIMDataButton");return P(),j("div",{class:"bimdata-tabs",style:Ee({width:i.width})},[Ht(D(a,{disabled:n.displayIndex===0,onClick:o.prev},{default:H(()=>[D(s,{class:"fill-primary",size:"xxs",rotate:180})]),_:1},8,["disabled","onClick"]),[[wi,n.scrollValues.length>1]]),C("ul",{ref:"container",class:"bimdata-tabs__container",style:Ee({width:o.containerWidth,minHeight:o.containerHeight})},[(P(!0),j(mt,null,Xt(i.tabs,l=>(P(),j("li",{key:l.id,class:Be(["bimdata-tabs__container__tab",{active:l.id===n.activeTab.id}]),style:Ee({minWidth:o.tabWidth}),onClick:c=>o.onTabClick(l)},[jt(t.$slots,"tab",{tab:l,active:l.id===n.activeTab.id},()=>[lt(Z(l.label),1)],!0)],14,fgt))),128))],4),Ht(D(a,{disabled:n.displayIndex===n.scrollValues.length-1,onClick:o.next},{default:H(()=>[D(s,{class:"fill-primary",size:"xxs"})]),_:1},8,["disabled","onClick"]),[[wi,n.scrollValues.length>1]])],4)}const mgt=G(pgt,[["render",ggt],["__scopeId","data-v-7da61e21"]]),Agt={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()}}},vgt=["name","id","value","placeholder"],bgt=["for"],wgt={key:0,class:"error"},ygt={key:1,class:"success"};function xgt(t,e,i,r,n,o){return P(),j("div",{class:Be(["bimdata-textarea",{"not-empty":i.modelValue!==null&&i.modelValue!==""||i.placeholder!==null,error:i.error,success:i.success}]),style:Ee({"min-width":i.width,"min-height":i.height})},[C("textarea",Ha({ref:"textarea",name:i.name,id:i.name,value:i.modelValue,placeholder:i.placeholder,style:`${i.resizable?"":"resize: none;"}`,onInput:e[0]||(e[0]=(...s)=>o.onInput&&o.onInput(...s))},t.$attrs),null,16,vgt),C("label",{for:i.name},Z(i.label),9,bgt),e[1]||(e[1]=C("span",{class:"bar"},null,-1)),i.error?(P(),j("span",wgt,Z(i.errorMessage),1)):ye("",!0),i.success?(P(),j("span",ygt,Z(i.successMessage),1)):ye("",!0)],6)}const Cgt=G(Agt,[["render",xgt],["__scopeId","data-v-77c71958"]]),kgt={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()}},Mgt=["for"],Egt=["disabled","id"];function Bgt(t,e,i,r,n,o){return P(),j("label",{for:`bimdata-toggle-${n.uniqueId}`,class:Be([{active:i.modelValue,disabled:i.disabled},"toggle__button"])},[jt(t.$slots,"default",{},void 0,!0),Ht(C("input",{type:"checkbox",disabled:i.disabled,id:`bimdata-toggle-${n.uniqueId}`,"onUpdate:modelValue":e[0]||(e[0]=s=>o.checkedValue=s)},null,8,Egt),[[_6,o.checkedValue]]),e[1]||(e[1]=C("span",{class:"toggle__switch"},null,-1)),jt(t.$slots,"right",{},void 0,!0)],10,Mgt)}const Pgt=G(kgt,[["render",Bgt],["__scopeId","data-v-ab3de434"]]),Igt={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()}}},Sgt={class:"bimdata-tooltip"};function Tgt(t,e,i,r,n,o){return P(),j("div",Sgt,[C("div",{class:"bimdata-tooltip__content",onMouseover:e[0]||(e[0]=s=>n.hover=!0),onMouseleave:e[1]||(e[1]=s=>n.hover=!1)},[jt(t.$slots,"content",{},void 0,!0),jt(t.$slots,"default",{},void 0,!0)],32),D(hr,{name:"fade"},{default:H(()=>[Ht(C("div",{ref:"tooltipText",class:Be(["bimdata-tooltip__tooltip",[`bimdata-tooltip__tooltip--${i.position}`,`bimdata-tooltip__tooltip--${i.color}`,...o._className]]),style:Ee({maxWidth:i.maxWidth})},Z(o._text),7),[[wi,o.isDisplayed]])]),_:1})])}const Rgt=G(Igt,[["render",Tgt],["__scopeId","data-v-36856a43"]]);let $D,Ite;Ite={inject:["root"],props:{node:{type:Object,required:!0,validator:t=>Number.isFinite(t?.id)||typeof t?.id=="string"},depth:{type:Number,default:0},dragAndDrop:{type:Boolean,default:!1}},render(){const{node:t,depth:e,dragAndDrop:i,root:r}=this,n=r.state;return t.children.map(o=>Tn($D,{node:o,depth:e,dragAndDrop:i,key:o.id},()=>r.$slots.node?.({node:o,depth:e,selected:o.id===n.selectedId,hovered:o.id===n.hoveredNode?.id,ancestorSelected:n.hasAncestorSelected(o),dragAndDrop:i})))}},$D={name:"Node",components:{NodeChildren:Ite},inject:["root"],props:{node:{type:Object,required:!0},depth:{type:Number,default:0},dragAndDrop:{type:Boolean,default:!1}},setup(t){const e=Mt("state");let i=null;xn(t.node.visibleRef)?i=t.node.visibleRef:i=xe(!0);let r=null;xn(t.node.expandedRef)?r=t.node.expandedRef:r=xe(!1);const n=xe(null);let o=null;const s=()=>{if(!t.node.children?.length||!e.dragPosition||e.hoveredNode?.id!==t.node.id||r.value){clearTimeout(o),o=null;return}const h=e.getNodeDropPosition(t.node,n.value);if(h!=="center"&&h!=="bottom"){clearTimeout(o),o=null;return}o===null&&(o=setTimeout(()=>{r.value=!0,o=null},500))};Rt(()=>e.dragPosition&&e.hoveredNode,s);const a=()=>e.onNodeMouseEnter(t.node),l=h=>e.onNodeMouseDown(t.node,h),c=h=>{e.onNodeMouseMove(h),s()},d=Je(()=>!t.dragAndDrop||!e.dragPosition||e.hoveredNode?.id!==t.node.id?null:e.getNodeDropPosition(t.node,n.value)),u=()=>e.onNodeMouseUp(t.node,n.value,r.value);return{state:e,nodeRef:n,expanded:r,visible:i,dropHelperPosition:d,hasAncestorSelected:e.hasAncestorSelected,onMouseEnter:a,onMouseDown:l,onMouseMove:c,onMouseUp:u}}};const Dgt=$D,_gt={class:"bimdata-tree__node__content__element"};function Lgt(t,e,i,r,n,o){const s=R("BIMDataIcon"),a=R("NodeChildren");return P(),j(mt,null,[Ht(C("div",{ref:"nodeRef",class:Be(["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]=(...l)=>t.onMouseEnter&&t.onMouseEnter(...l)),onMousedown:e[3]||(e[3]=(...l)=>t.onMouseDown&&t.onMouseDown(...l)),onMousemove:e[4]||(e[4]=(...l)=>t.onMouseMove&&t.onMouseMove(...l)),onMouseup:e[5]||(e[5]=(...l)=>t.onMouseUp&&t.onMouseUp(...l))},[t.dropHelperPosition==="top"||t.dropHelperPosition==="bottom"?(P(),j("div",{key:0,class:"bimdata-tree__node__drop-helper",style:Ee(`--drop-helper-top: ${t.dropHelperPosition==="top"?"0px":"30px"};`)},null,4)):ye("",!0),C("div",{class:"bimdata-tree__node__content",style:Ee(`padding-left: calc(var(--spacing-unit) * 2 * ${t.depth});`)},[C("div",{class:"bimdata-tree__node__content__arrow",onMousedown:e[1]||(e[1]=Ut(()=>{},["stop"]))},[t.node.children?.length>0?(P(),j("div",{key:0,class:"bimdata-tree__node__content__arrow__content",onClick:e[0]||(e[0]=l=>t.expanded=!t.expanded)},[D(s,{name:"chevron",size:"xxxs",rotate:t.expanded?90:0},null,8,["rotate"])])):ye("",!0)],32),C("div",_gt,[jt(t.$slots,"default",{},()=>[lt(Z(t.node.label),1)],!0)])],4)],34),[[wi,t.visible]]),t.node.children?.length>0&&t.expanded?(P(),X(a,{key:0,node:t.node,depth:t.depth+1,"drag-and-drop":t.dragAndDrop},null,8,["node","depth","drag-and-drop"])):ye("",!0)],64)}const jgt=G(Dgt,[["render",Lgt],["__scopeId","data-v-72a6c509"]]);function Fgt(t,e){const i=Qo({selectedId:null,highlightedId:null,hoveredNode:null,trees:t.data,dragPosition:null});Rt(()=>t.selectedId,()=>{i.selectedId=t.selectedId??null}),Rt(()=>t.highlightedId,()=>{i.highlightedId=t.highlightedId??null}),Rt(()=>i.hoveredNode,()=>e("hover",i.hoveredNode));const r=ar(null);Rt(()=>t.data,b=>{i.trees=b});const n=()=>{r.value=null,i.dragPosition=null},o=b=>{i.hoveredNode=b},s=(b,v)=>{v.stopPropagation(),e("click",b),r.value=b,window.addEventListener("mouseup",n,{once:!0})},a=b=>{if(!r.value)return;const{clientX:v,clientY:w}=b;i.dragPosition={x:v,y:w}},l=(b,v,w)=>{if(!t.dragAndDrop||!i.dragPosition||i.hoveredNode?.id===r.value?.id||i.isDescendant(b,r.value))return;const y=h(b,v);let x=null,k=null;const E=p(r.value);switch(y){case"top":x=p(b),k=(x?.children??i.trees).findIndex(S=>S.id===b.id);break;case"bottom":b.children&&w?(x=b,k=0):(x=p(b),k=(x?.children??i.trees).findIndex(S=>S.id===b.id)+1);break;case"center":x=b,k=0;break}const B=x?.id===E?.id,I=(E?.children??i.trees).findIndex(S=>S.id===r.value.id);B&&(y==="top"||y==="bottom")&&I<k&&k--,!(B&&k===I)&&e("drop",{node:r.value,previousParent:E,parent:x,index:k,position:y})},c=()=>{i.hoveredNode=null},d=()=>{e("click",null)},u=()=>{if(!t.dragAndDrop||!i.dragPosition||i.trees.indexOf(r.value)===i.trees.length-1)return;const b=i.trees.includes(r.value);e("drop",{node:r.value,parent:null,index:b?i.trees.length-1:i.trees.length,previousParent:p(r.value)})};i.onNodeMouseEnter=o,i.onNodeMouseDown=s,i.onNodeMouseMove=a,i.onNodeMouseUp=l,i.onNodesMouseLeave=c,i.onTreeMouseDown=d,i.onTreeMouseUp=u;const h=(b,v)=>{const{y:w}=i.dragPosition,{top:y,height:x}=v.getBoundingClientRect();return b.children?w<y+x/3?"top":w>y+x*2/3?"bottom":"center":w<y+x/2?"top":"bottom"},p=(b,v=i.trees)=>{for(const w of v)if(w.children?.length){if(w.children.some(x=>x.id===b.id))return w;const y=p(b,w.children);if(y)return y}},g=(b,v=i.trees)=>{for(const w of v)if(w.id===b.id||w.children?.length&&g(b,w.children))return!0;return!1},f=(b,v=i.trees)=>{const w=[];for(const y of v)y.id!==b.id&&y.children?.length&&g(b,y.children)&&w.push(y,...f(b,y.children));return w},A=b=>i.selectedId===null?!1:f(b).some(v=>v.id===i.selectedId),m=(b,v)=>v?.children?.some(w=>w.id===b.id||m(b,w))??!1;return i.getNodeDropPosition=h,i.getParent=p,i.getAncestors=f,i.hasAncestorSelected=A,i.isDescendant=m,i}const Ogt={components:{Node:jgt},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)&&typeof i?.id!="string"||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=Fgt(t,e);qr("state",i);const r=()=>i.onNodesMouseLeave(),n=()=>i.onTreeMouseDown(),o=xe(!1),s=()=>{o.value=!0},a=()=>{o.value=!1},l=()=>i.onTreeMouseUp(),c=Je(()=>t.dragAndDrop&&o.value&&i.dragPosition!==null&&i.hoveredNode===null);return{state:i,dropHelperDisplayed:c,onMouseEnter:s,onMouseLeave:a,onNodesMouseLeave:r,onTreeMouseDown:n,onMouseUp:l}}},qgt={key:0,class:"bimdata-tree__drop-helper"};function Ugt(t,e,i,r,n,o){const s=R("Node");return P(),j("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]=Ut((...a)=>r.onMouseUp&&r.onMouseUp(...a),["self"]))},[C("div",{class:"bimdata-tree__nodes",onMouseleave:e[0]||(e[0]=(...a)=>r.onNodesMouseLeave&&r.onNodesMouseLeave(...a))},[(P(!0),j(mt,null,Xt(i.data,a=>(P(),X(s,{key:a.id,node:a,"drag-and-drop":i.dragAndDrop},{default:H(()=>[jt(t.$slots,"node",{node:a,depth:0,selected:a.id===r.state.selectedId,hovered:a.id===r.state.hoveredNode?.id,ancestorSelected:r.state.hasAncestorSelected(a)},void 0,!0)]),_:2},1032,["node","drag-and-drop"]))),128))],32),r.dropHelperDisplayed?(P(),j("div",qgt)):ye("",!0)],32)}const Ngt=G(Ogt,[["render",Ugt],["__scopeId","data-v-54b04432"]]),Hgt=Object.freeze(Object.defineProperty({__proto__:null,BIMDataBigSpinner:XHe,BIMDataButton:_o,BIMDataCard:fC,BIMDataCarousel:Eze,BIMDataCheckbox:gC,BIMDataColorSelector:_ze,BIMDataDatePicker:Uut,BIMDataDropdownList:pht,BIMDataDropdownMenu:Cht,BIMDataFileIcon:zht,BIMDataIcon:Qht,BIMDataIconAddFile:vVe,BIMDataIconAddFolder:MVe,BIMDataIconAddGavel:TVe,BIMDataIconAddList:FVe,BIMDataIconAddUser:VVe,BIMDataIconAlphabeticalAscending:YVe,BIMDataIconAlphabeticalDescending:iGe,BIMDataIconAlphabeticalSort:lGe,BIMDataIconAlt:fGe,BIMDataIconAngle:wGe,BIMDataIconApi:BGe,BIMDataIconApp:DGe,BIMDataIconArchive:UGe,BIMDataIconArrow:KGe,BIMDataIconAttach:eQe,BIMDataIconBack:sQe,BIMDataIconBcf:pQe,BIMDataIconBcfPolychrome:uct,BIMDataIconBuilding:wQe,BIMDataIconBurgerMenu:EQe,BIMDataIconCalendar:DQe,BIMDataIconCaliper:UQe,BIMDataIconCamera:KQe,BIMDataIconCancelCamera:$Qe,BIMDataIconCaret:KD,BIMDataIconCheck:hKe,BIMDataIconChevron:wd,BIMDataIconClassificationCategory:vKe,BIMDataIconClassificationElement:kKe,BIMDataIconClick:TKe,BIMDataIconClose:vC,BIMDataIconCloud:VKe,BIMDataIconColor:ZKe,BIMDataIconComment:mWe,BIMDataIconCreateSpace:rWe,BIMDataIconCreateWindowPolychrome:Act,BIMDataIconCreateZone:cWe,BIMDataIconDateAscending:xWe,BIMDataIconDateDescending:PWe,BIMDataIconDefault:ute,BIMDataIconDelete:mC,BIMDataIconDeniedFile:UWe,BIMDataIconDetach:KWe,BIMDataIconDistance:$We,BIMDataIconDocInfoPolychrome:Cct,BIMDataIconDoubleChevron:WD,BIMDataIconDown:hJe,BIMDataIconDownload:bJe,BIMDataIconDrag:MJe,BIMDataIconEdit:RJe,BIMDataIconEllipsis:hte,BIMDataIconExpanded:zJe,BIMDataIconExplosion:YJe,BIMDataIconExport:iYe,BIMDataIconExportIfc:lYe,BIMDataIconExportXlsx:fYe,BIMDataIconFailed:yYe,BIMDataIconFileDwgPolychrome:Ict,BIMDataIconFileDxfPolychrome:Lct,BIMDataIconFileIfcPolychrome:Nct,BIMDataIconFileImagePolychrome:Kct,BIMDataIconFileJpegPolychrome:$ct,BIMDataIconFilePdfPolychrome:odt,BIMDataIconFilePhotospherePolychrome:udt,BIMDataIconFilePlanPolychrome:Adt,BIMDataIconFilePngPolychrome:Cdt,BIMDataIconFilePointCloudPolychrome:Idt,BIMDataIconFilterList:PYe,BIMDataIconFitView:_Ye,BIMDataIconFolder:NYe,BIMDataIconFolderLocation:WYe,BIMDataIconFolderMove:eZe,BIMDataIconFolderOpen:aZe,BIMDataIconFolderPolychrome:Ldt,BIMDataIconFullscreen:fZe,BIMDataIconGavel:yZe,BIMDataIconGrid:BZe,BIMDataIconGroup:DZe,BIMDataIconHide:UZe,BIMDataIconHome:QZe,BIMDataIconIfc:$Ze,BIMDataIconIfcFile:sXe,BIMDataIconImport:pXe,BIMDataIconInProgressFile:OXe,BIMDataIconIndexAscending:bXe,BIMDataIconIndexDescending:MXe,BIMDataIconInformation:RXe,BIMDataIconInvitation:GXe,BIMDataIconIsolate:XXe,BIMDataIconKey:o$e,BIMDataIconLeft:h$e,BIMDataIconLinkedDocument:b$e,BIMDataIconList:M$e,BIMDataIconListManage:R$e,BIMDataIconLocation:q$e,BIMDataIconLock:Q$e,BIMDataIconLogout:$$e,BIMDataIconMeasure:set,BIMDataIconMinus:fet,BIMDataIconModel3D:yet,BIMDataIconNamingConvention:Bet,BIMDataIconNavigation:Let,BIMDataIconOrganization:Het,BIMDataIconParameters:Jet,BIMDataIconPathway:itt,BIMDataIconPieGraph:ltt,BIMDataIconPipette:gtt,BIMDataIconPlan:xtt,BIMDataIconPlus:Itt,BIMDataIconPreview:jtt,BIMDataIconProject:ztt,BIMDataIconQuickSelect:Jtt,BIMDataIconReadonlyFolder:iit,BIMDataIconRedo:cit,BIMDataIconReduced:git,BIMDataIconRefresh:xit,BIMDataIconRemoveModel:Pit,BIMDataIconRename:_it,BIMDataIconReprocessIfc:Uit,BIMDataIconReset:Kit,BIMDataIconRestore:ert,BIMDataIconRight:art,BIMDataIconRotate:prt,BIMDataIconRules:wrt,BIMDataIconSandglass:Brt,BIMDataIconSave:_rt,BIMDataIconScreenConfig:Urt,BIMDataIconScreenshot:Qrt,BIMDataIconSearch:JD,BIMDataIconSection:ont,BIMDataIconSetAsModel:unt,BIMDataIconSettings:vnt,BIMDataIconShare:Mnt,BIMDataIconShow:Rnt,BIMDataIconShowSelected:Ont,BIMDataIconSmartview:Vnt,BIMDataIconSocotec:Znt,BIMDataIconSpace:rot,BIMDataIconSpace2:cot,BIMDataIconSpacing:got,BIMDataIconSplit:yot,BIMDataIconStorey:Pot,BIMDataIconStructure:Lot,BIMDataIconStructurePolychrome:Ndt,BIMDataIconSuccess:Hot,BIMDataIconSurface:Wot,BIMDataIconSwap:est,BIMDataIconSynchro2D:sst,BIMDataIconSystem:pst,BIMDataIconTag:wst,BIMDataIconTranslate:Est,BIMDataIconTree:Dst,BIMDataIconUnarchive:Ust,BIMDataIconUndo:Kst,BIMDataIconUnion:eat,BIMDataIconUnknownFile:sat,BIMDataIconUp:pat,BIMDataIconUpload:bat,BIMDataIconUser:Eat,BIMDataIconValidate:Dat,BIMDataIconValidatedFile:qat,BIMDataIconVersioning:Qat,BIMDataIconVideocam:$at,BIMDataIconViewer2DPolychrome:Kdt,BIMDataIconViewer3DPolychrome:$dt,BIMDataIconVisa:olt,BIMDataIconWarning:hlt,BIMDataIconWindowBottom:blt,BIMDataIconWindowLeft:Dlt,BIMDataIconWindowRight:Ult,BIMDataIconWindowTop:Klt,BIMDataIconWindowed:Elt,BIMDataIconZone:$lt,BIMDataIconZone2:oct,BIMDataIllustration:D1t,BIMDataInfobox:O1t,BIMDataInput:Q1t,BIMDataInputOutlined:nft,BIMDataList:aft,BIMDataLoading:pft,BIMDataMenu:yft,BIMDataMenuInline:Mft,BIMDataMultiplePieChart:Rft,BIMDataPaginatedList:gte,BIMDataPieSpinner:Oft,BIMDataRadio:zft,BIMDataResponsiveGrid:Qft,BIMDataSafeZoneInline:Yft,BIMDataSearch:t0t,BIMDataSearchAutocomplete:m0t,BIMDataSelect:D0t,BIMDataSimplePieChart:U0t,BIMDataSlider:G0t,BIMDataSpinner:fte,BIMDataTable:hgt,BIMDataTabs:mgt,BIMDataText:Ete,BIMDataTextarea:Cgt,BIMDataTextbox:bC,BIMDataToggle:Pgt,BIMDataTooltip:Rgt,BIMDataTree:Ngt},Symbol.toStringTag,{value:"Module"})),Ste=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}),zgt=["bisque","khaki","greenyellow","lightcyan","plum","ghostwhite"];function Au(){const t=Object.entries(Ste).filter(([i])=>!zgt.includes(i)),e=Math.floor(Math.random()*t.length);return t[e][1]}const Vgt={props:{message:{type:String,required:!0},active:{type:Boolean,default:!0}}},Ggt={key:0,class:"bimdata-empty"},Qgt={class:"m-t-6"};function Kgt(t,e,i,r,n,o){return i.active?(P(),j("div",Ggt,[jt(t.$slots,"default",{},void 0,!0),C("p",Qgt,Z(i.message),1),jt(t.$slots,"footer",{},void 0,!0)])):ye("",!0)}const c1=G(Vgt,[["render",Kgt],["__scopeId","data-v-5eb55030"]]),Wgt=Object.entries(Ste).reduce((t,e,i)=>(i%5===0?t.push([e]):t[t.length-1].push(e),t),[]),Jgt={props:{selectedColor:{type:Number,default:null}},emits:["color-select"],data(){return{colorLines:Wgt}},methods:{toColorString(t){return`#${t.toString(16).padStart(6,0)}`}}},Ygt=["title","onClick"];function Zgt(t,e,i,r,n,o){const s=R("BIMDataCard");return P(),X(s,{class:"color-selector"},{content:H(()=>[(P(!0),j(mt,null,Xt(n.colorLines,(a,l)=>(P(),j("div",{key:`colorLine${l}`,class:"color-selector__line"},[(P(!0),j(mt,null,Xt(a,([c,d],u)=>(P(),j("div",{key:`colorElement${u}ofColorLine${l}`,class:Be(["color-selector__line__element",{selected:d===i.selectedColor}]),style:Ee(`background-color: ${o.toColorString(d)}`),title:c,onClick:h=>t.$emit("color-select",{name:c,value:d})},null,14,Ygt))),128))]))),128))]),_:1})}const wC=G(Jgt,[["render",Zgt],["__scopeId","data-v-502a89ad"]]),Xgt="data:image/gif;base64,R0lGODlhxAF6AfcAAAEBAQAAAAMDAxwdHwAAAiotPg8PEAUFBdbW1vHy9/39/P38/vv7+gEAAERFSp6gqSEkMiwuOiotOPr7/01RXc7W2oeIizw8PNXY2D5BTf////T09KzAwqu+v//+//Pz8/Xz9LLFxef3+a+/wvXx9u7x+Y+RlPTz9v///PHy8/3+/vL086nAwa/Cw+X29i0tLUFBQi8vL+rr7i4uM3JycicqNS0uN3Jzc21tbd3d3aurq62trUVIVX19fnBwcHx8fBgWGtPT04yRnPPy9yUlJeXt9ikpKU1PV+Tk6tXa3AwMDCIiIoKCgszN1Hp6egoKChcXF0JGThIUHFZVWSotQPf5/O7v8ggICVhZX4uLjKCgoLCwsebn552dniguQR8fIIqMlRITEzI0PiYsPenp6gMLC6mqtPX19fX19uzs7Li4ubu7u7S0tMjIyZeZoCkvOff7/1JSUlNZXiYuPDMzM87Pz+Tk5JeXl97g3ywsLMDAwE9PT0tLSzc3N66trX19faenp+3t7bS0tb29vWRkZPDy7/Hx8UZHSSctQMPExN7h4SguQiEtRHV1dYSEhJGRkRgYGFhYWDo6OiguP9LS0mZmZvz+/15fX/Pz8f3/+6WlpaKnsjc9S36Ci+Xl5eTi4oGGlSoxQ/L29+Tm5j9GVVNcZmVlZHh6g9bc4sHGy+Lm6vD09ygvPnN1ft7h6hcWFauxt3Bzfd7h5Oz2+PLy9mVka2lqcsPL0lpdaHx6gmtwfl9nbW9vbwgICLS4xWxvdPTy8bCyu8DAxF9ibL7AzDQ4SJCaoF1lY2hoae719I6XohoaGlVVVS40QlVWVYmSn8rU1RMYFwgJBm5zf+n298DNzrfGx7fLzMvf32Rse7zMzsTS08DU1eHu8KStq7C/v9vv79To6M/j5KK4uExcXVBgZsbW2jxFSKLCx6CwtMjc3Y+ps5CfpUlhZ7S1sS83Sr/R3bTN6qnQ+zI6TjU8UzlBXTtEWzpCWTlCWzpDXDtCXDZCWra0sgAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh/ilPcHRpbWl6ZWQgd2l0aCBodHRwczovL2V6Z2lmLmNvbS9vcHRpbWl6ZQAh+QQECgD/ACwAAAAAxAF6AQAI/wA3CBxIsKDBgwgTKlzIsKHDhwzzQCoEAqLFixgzatzIsaPHjxdpBBhJsqTJkyZ3gFzJsqXLjxYCAPrwsqbNmzhz6iQoEqXPnzJ3Ch1KNCEeJZGKKl3KtKnHnkCjklTptKrVjpKWXN3KtatQqFKjUvVKtqxAJgH0mF3Ltu1CsGF/jnVLV6meAI3O1N3LlyvcuCjn9h1s0wAdwogT7/wLOKXixyv7fIFMuXJHxo2nWt4cUgnnz6ATYs4cNLTpg3cEJDrNmvPozIJbh75bSbbtx68bx77NucEy3sD75ga8OzjlGE+4GF/Odnjc4swT3xCQQ2/061udh4WOva+mAEG6i/93ql0q9/F01wBQg7490fJi3SNuAyALTfn4bcIHej4/WQwNEOLfgC3tJxeBewEgyX0INqiRgT7156BVSkw04YUWQRgYhmvRAUAgHIb4FmkR3qbciSimqOKKLLbo4oswtngJeNaJaCNPJG7YmiQ59ujjjyTVceOQA2l4koRt3bHHkkwmRdASAdAhyZRUVmnllVhmqeWWXHaJ5RMBpEEkkUY69hiURzKYB3WsfREmGmPeWGZJSLK1hBEpWPfdFjWueWKNnLlJUZw2zqnZmXjqWZqYBgDgKJCQRhoViISKaOhIda71RaICpYbSpneGKuqopJZq6qmopqqqqYcAWumFly7/mtimhgxEXx644holg6/2ClmsmZpFq1ENHObrsbhFGmxZjUrp7LNSAgAJIaZQa2212F6r7bbcduvtt+CGK+645JZr7rnopqvuuuy26+61Hj7q47JkHSDpvfjmq+++/Pbr778AA0mvV43KG/DBCCes8MIMN3zwwF0V7PDEFFds8cUY6wsxVxJn7PHHIIcsMsIbb9XxyCinrPLKLB+q2MktxyzzzDT/W/JVMNes884898wfZDn7LPTQRK98M4UGF6300kxXfHRVYTQt9dRUB/y0U1EnXfXWXHdNHNBehy322Gk+pgTZaKe99dVNHRLD23DHLffcdNdt991456333nz3/+3334AHLvjghBdueOGQKIvs4ow/pXjjkEf+0HSQsi355ZY+jvnmmwPL+eeXew766IyLTvrpvZqO+upjqs7665lXDvvssQtM++2wak2i5bj3HprrvgePHvDCF38d8cYnHxzyyjcvG/POR/+77qTxLv31ZUGP/fbJys7995tpD/74dYlP/vlrmY/++l2pz/77VbkP//xKyU///Ytpjv/+5OnP//9FsR8A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itIuK4Fw6ModMEegmQG/8O5dzNihSr9Ci9ptTLmywsdML1q0zLkzYIlIMXsebVk0UNOkSVtNy3Zoyr41UaeerbY13deyX+amTXk179/AgwsfTry48ePIkytfzry58+fQo0ufTr269etDsWvXu3u796aav4v/v9p9vPme4c+rX8++vfv3VevCny9TK/37LrVakoq//0jf/gVYlYAEFmjggQgmqOCCDDbo4IMQRijhhBRWaOGFGGao4YYW4lYeh955CBqI7IlIYnsmnrjeY7CpqJ6HLq7owYwebBajeTus4dqN5oUyUDFC8HgeFZuVskCNQn7XFVtBtpWkkhY16eSTId5G5XlHXjleBmdp+d2MXoYp5phklmnmmWimqeaabLbp5ptwxinnnHTWaeedeOap55589unnn4AGKuighBZq6KGIJqrooow26uifKtj32aNiRUrQBRFI8IamnG7qaaegfipqqKSOamqplzaKCKV5seLFIml5/0HpJLSyihattdqq66689urrr8AGK+ywxBbr0CTGTtUVRpsmS9MYVSREzVvOhsRpKRzN4WO1O9HxF2GwcmutCYoBNplBnJwrbkeWwFGFL8syJB9h64bE5Y+chHuQqzwg4mq9Jb0Krrr0QgbwwQgnrLBxsi7s8MPedbIqxLpRbPHFGGes8cYcd+zxxyCHTFMAInNEMsklm5zyQwCsnFEABAzAzgDo5EXLzSfgTAuhBBBQDjvj1DyABePQDFbOSONs6C7klHEMOuuE5bJAAACwhxgCCLDLNNIYtEEyNoUQbAMDVF32AWgDggkmZQcVyABcwM1q1QJ4EAfdalO1gq1VH/8JQ89qf7AFdzorvWfLMHswwwR/B+5HyxuwVnjOfPbcswcELH6BFikIHoAjZ3gNgorWQFXNANssZzkBC5QdAwNbkBHI46CTCQ3qqWtjtHBkN9AA5nZpYAcXtEfe9hnIh85h5F8371XzySM/XO+/mw0AHQoQ//nXx4Pg/YnRh/8B9NzzfrYGdLvugSBDUy6k9/DHL//3vPsOgALp94w9DD10eeP8AISfcRB3Nsth7w5vSxL5Fki+6VENf4TJ3JEmaIcnMfCCxiPO/QizgxgEoAt64EUAcDA8U7RsamVTwOsa8YPracARiOGCIUyIws9A7gUf1MP2PlDDEy7lBq7DgAA4mMDDHhKQLnTY4B+KWMOD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UapcybKly5cwWe7YQDOmzZs4c+rcybOnz59AgwodSrSo0aNIkypdyrSp06dQo0qdSrWq1atYs2rdyrWr169gw4odS7as2bNo06pdy7at27dw48qdS7eu3bt48+rdy7ev37+AAwseTLiw4cOIEytezLix48eQI0ueTLmy5ZhpEOBAkPmy562bO38eTVU06dNRFahWgLq169ewY8ueTbu27du4c+vezbu379/AgwsfTry48ePIkytfzry58+fQo0ufTr269evYs2vfzr279+/gw4v/H0++vPnz6NOrX8++vfv38OPLn0+/vv37+PPr38+/v///AAYo4IAEFmjggQgmqOCCDDbo4IMQRijhhBRWaOGFGGao4YYcdujhhyCGKOKIJJZo4okopqjiiiy26OKLMMYo44w01mjjjTjmqOOOPPbo449ABinkkERyuMiRSHqh5CQQLelFkS4l6eQkVD7ZkJNQtlTAllUuKRCTV06ZpUpcdjklkgudOSZJiLSJyAAEQBABK3QqKZAlD0lp5ZoguTlGGVVIIeccSm6igkAP4KmQn17yKVKSCxjzRZm+VBHBlQQVMYEqjoaU5BdVNDFom3xYUgICoTwERxOniNKpRmXG/0rJBge8EsYyXxzgQBsewAFGAQgcMVAwVPj66kixcvlKFgoA0AUZALRRBwG3VqCCLZwgMQFBqRx70pxl1BqHAnncoYEAhjDQAAZGQEBQMwQN461JEhhQgi9PhLHavrPSIS8C3RoEx7x9fgqNJYOgq8G+ZPQaRzAFdTOQBAQXvOQAEqiiARcLN6IBL+ROgAIdo84pwRsVP0rFpxSosLAGMMAc8iqC+pkymyt/KsjLMV+gQh+RLsPozd8myesEN1xrSR+JQIAx0St9KkAqvS4sQw4X1Awm1PR2KYXCyVBLc8lnNso1rGOkDQEBMERBcjTUkl32nmdvpLagNWtNZd2ezv/NKCNy842Snn4TbqfgaP9dp5iI41T14x40zhLkVUu+EuW9Wq4S5pFrfhLnnn+OeegmgU46SaafrvrqrLfu+uuwxy4btQHU3oDtgNDkRwCO0FRJAGnQJPwJxBdv/PHIJ6/88Mw37/zz0Ec//EDSV2/99R2p+jIDZ2DvvfSX0W477rrz7jvw3y+vfvrst18TZx+4L3/zEG3f/fzsfzb+7QTkfsLuvTvB72SwPvwZEBMITKAC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SZKkPHgcS6pcybKlS4IePDy09LKmzZs4D8bMybOnz5w7fwodSvRj0KJIkypdyrSp06dQo0qdSrWq1atYs2rdyrWr169gw4odS9ZnhQIR0EpQy7ZthSYVBEALUrauyJht81LZy3eCX0t+7QoOGbOj4cKICw9efPew48QLFDCebBGy5cuKKWtWiLlz4s2gCX8OTbry6NKoU6tezbq169ewY8ueTbu27du4c+vezbu379/AgwsfTry48ePIkytfzry58+fQo0ufTr269evYs2vfzr279+/gw4v/H0++vPnz6NOrX8++vfv38OPLn0+/vv37+PPr38+/v///AAYo4IAEFmggRCckqOCCDDbo4IMbRCjhhBRWaOGFGGI4UIYcdughhRI99uGIJEJo4oklpqjihAIZ8sGKMF4YomMx1mjjjZjkqOOOPPbo4486VgKAAEAWaeSRP87IQCFINunkkzhCKeWTdBE55ZVFKonlllyiGOWXE8ZgJZgqaknmmV6miSaJPwQw5poemgmnhiOJg42deN5pZ07h9Onnn3/WcJCfAwEKzqGIJqroooW6AM5djkYqqQskScrNpZhmqumm2nBKUKecgirqqNeQWuqppQ5kTapyCYRqCLDGdhrrp7OSxEELuHbAwje75rrrRL0GK6yuxA5rLK4gzXnGssw26+yzXwokDQYrQGvttTciGMi23DLpbbfgpiHuuOSWOy5BaRAJlFNuvinVi/Aqa+F68nJIb710pgfCvvz26++/AAcsML/3DmzwwQgXjG+FCi88YUAAIfkEBQoAAgAsQADAANAAaAAACP8ANwgcSLCgwYMHVShcuFCAw4cQI0qcSLGixYsYM2rcyLGjx48SGYpU+FCew3jxRIBcybKly5cwY44cGVEePJUxc+rcybOnxZkia6a0ZMmn0aNIk14EqqGpBqVQo0pVytTpRBFPp2rdyhVj1aZdw4odG/KrvLNob2Yly7YtV6dW3cqdS7eu3bt48+rdy7ev37+AAwseTLiw4cOIE8tE4cFDgceQJ0meTLmyl8uYM2vezLmz58+gQ3eeoNgj48aRLateLbq169ewUz+GU7pjY7i4c+vezbu379/Ag/uuzfG28K/HkytfPpy4aePQmUufTr23c5DRq2vfrv267ezIw4P/H0++vPnz6L1rRC+evfv38N2rn0+/vv37+PPr38+/v///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stZcey32QWCHPfbZt5U9Itpst+3223DHLffcdNdt991456333lxZax0yCIAHLvjghBdueOB8j5Vzzt0d7vjjjifeN2YbVG755ZhnrvnmnEu+FeWchy766JZ7/nnakBOeXOqqm54VCH+zXvjqrLuuuMoi4L6ySbnnbrtUHHQg3wgdED+CfMgfb/zyzC/fUAjInxYQACH5BAUKAAAALNcA6AB6ADgAAAj/APMJHEiwoMGDCBMqXMiwoUN9ECNK1AegoiUVFTNq3Mixo8ePIEOKHEmy4sSTEAFoKMmypcuXME2iPDkBY8ybOHOWnElTgYaHQIMKHUqU50QVNnUqXarUqESkTKNKfek0ItSpWLN+rArxqtavYDsa9OAhrNmzY8ueXas1Ldu3U93Cndu0IFm6eHHKzcu35d6+gEX+DUxYrF21FMp0LFG4b1oNylRW9EWqMWG5UdSahGPZ8eHOoAE8rmcxdODBpgGjTs13NWuzXO15fc029mzaaO3p3s3balLcuXsLl/0beFjbxY1/Ra48uFGVyZtjdWrxovTr2LNr3869u/fv4MOLcx9Pvrz58+jTq1/Pvv1UDfCrb5hPv779+/jz198Of2Vp/QAGCCB/GK1g4IEIJqjgggw2yB90DUYo4YQGcreBfALap1GG+FkIIYf5bQgieC6UKJkLJ0aFIoraseDiizB2IOOMHNRo44045tjCjjz22AJwAQEAIfkEBQoAAwAseAC4ANkAaAAACP8ABwgEILCgwYMIEypcyLChw4cQI0qcSLGiRYMKNGggeLGjx48gQ4ocWVEAyZMoU6pcGVIBR5YwY8qcORLNS5o4c+rcOSBAT55Agwod6dPn0KNIkz68qbSp06FdmD6dSlUmgEFGq2rdmhIAHqlcw4qtGGfj2LNoKYJNy7btQLdw466NS5dqRrN18+rdy7ev37+AAwseTLiw4cOIEytezLix48eQI0ueTLmy5cuYM2vezLmz58+gQ4seTbq06dOoU6tezbq169ewY8ueTbu27du4c+suna+379/1CsKxtLsq8OP17g0gXpwqcuQam099PiD5PXv2LGl/zr279+/gw4v/H0++vPnz6L1rl/40/Hr2Td0zh59UPv2t139Hv288//X9/E3n3z0ABujUgARqYKCA+im44IEDFvggUghKOOFQFTp4IYURarghhh1+yGGDIh6VYYkg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Sc1qRjOZQaSkNbfJzW1ic0wxCac4x0nOcpqznN88pzrXyU5xKrOb8PyAPOMpzXfOk5747OYyRyRJgn76858ADahABwrQZHKgAwgdQUIVytCFNvShEG1ICGi3z8kk4aIYxahfzsDRjnr0o7j0DTWSMdKSknQWKE0pSiuaEZB61CYBAQAh+QQFCgAAACywAHUA8ACuAAAI/wABCBxIsKDBgwgTKlzIsKHDhxAjSpxIseLBDRYzatzIsaPHjyALYgxJsqTJkyhP7tjAMqXLlzBjypxJs6bNmzhz6tzJs6fPn0CDCh1KtKjRo0iTKl3KtKnTp1CjSp1KtarVq1izat3KtavXr2DDih1LtqzZs2jTql3Ltq3bt3Djyp1Lt67du3jz6pWYBgAOAH33Cjb4N/DgwYYPI1aQRoHix5AjS55MubLly5gza97MubPnz6BDix5NurTp06hTq17NurXr17Bjy55Nu7bt27hz697Nu7fv38CDCx9OvLjx48iTK1/OvLnz59CjS59Ovbr169iza9/Ovbv37+DDi94fT768+fPo06tfz769+/fw48ufT7++/fv48+vfz7+///8ABijggAQWaOCBCCao4IIMNujggxBGKOGEFFZo4YUYZqjhhhx26OGHIIYo4ogklmjiiSimqOKKLLYYlAYwCsTSjDTWaOONON54HYwaDIRRjkAGCeSOKgC2wpFIJqnkkkw22eSORjop5ZRUHondSELiSFCWOkLJZZBbfsmdC2QCZqYLZnqEJprWseDmm3B2IOecHNRp55145tnCnnz22YKLOlWAATaDCkqoTV+O9FsyjFLT6CyPRkqfomHaFBAAOw==",$gt={distance:"m",path:"m",angle:"\xB0",surface:"m\xB2"},emt="measure2d_measurements",tmt={name:"BIMDataMeasure2D",components:{ColorSelector:wC,BIMDataEmpty:c1},data(){return{guide:Xgt,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`${emt}-${this.carrier}`},model(){return this.pluginViewer.model?ur(this.carrier==="dwg"?this.pluginViewer.model.stateModel:this.pluginViewer.model):null},isCalibrated(){return this.carrier!=="plan"||this.model&&this.model.sizeRatio!=null},standard(){return this.model.sizeRatio||1}},watch:{model(t){this.measurements.forEach(e=>e.destroy()),this.measurements=[],t&&(this.restoreSavedMeasurements(),this.setStandard(t.sizeRatio))},currentGroup(t){this.measurements.forEach(e=>{e.visible=this.hasBeenOpened&&e.group===t})},measurements(t){t.forEach(e=>{e.visible=this.hasBeenOpened&&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 Tn(fC,{width:"100%",class:"bimdata-measure2d__path-validation"},{content:()=>Tn("div",{style:"display: flex; justify-content: space-between; align-items: center;"},[Tn("div",this.$t("measure2d.validate_path")),Tn(_o,{fill:!0,radius:!0,color:"high",width:"121px",onClick:i.onPathCancel},{default:()=>this.$t("global.cancel")}),Tn(_o,{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(){const t=this.$viewer.localContext.viewer;if(!t||!t.viewer){const o="Measure2d plugin cannot work without a viewer2d, dwg or plan plugin and viewer.";throw console.error(o),new Error(o)}this.carrier=t.plugin.name,this.pluginViewer=t;const e=t.plugins?.ruler,i=t.plugins?.surface,r=t.plugins?.angle,n=t.plugins?.path;this.measurementPlugins=new Map,e&&(this.measurementPlugins.set("distance",e),this.ruler2dPluginAvailable=!0,e.on("add",o=>{this.isUpdated=!0,this.makeMeasurement({type:"distance",get value(){return o.length},color:this.currentColor,object:o}),this.selectedMeasurementPlugin=null,this.currentColor=Au()})),i&&(this.measurementPlugins.set("surface",i),this.surface2dPluginAvailable=!0,i.on("add",o=>{this.isUpdated=!0,this.makeMeasurement({type:"surface",get value(){return o.surface},color:this.currentColor,object:o}),this.selectedMeasurementPlugin=null,this.currentColor=Au()})),r&&(this.measurementPlugins.set("angle",r),this.angle2dPluginAvailable=!0,r.on("add",o=>{this.isUpdated=!0,this.makeMeasurement({type:"angle",get value(){return o.angle},color:this.currentColor,object:o}),this.selectedMeasurementPlugin=null,this.currentColor=Au()})),n&&(this.measurementPlugins.set("path",n),this.path2dPluginAvailable=!0,n.on("add",o=>{this.isUpdated=!0,this.makeMeasurement({type:"path",get value(){return o.length},color:this.currentColor,object:o}),this.selectedMeasurementPlugin=null,this.currentColor=Au()})),this.currentColor=Au(),this.carrier==="viewer2d"||this.carrier==="plan"?this.$watch(()=>this.pluginViewer.selectedStorey,o=>{this.currentGroup=o?.name}):this.$watch(()=>this.pluginViewer.model,o=>{this.currentGroup=o?.id})},onOpen(){document.addEventListener("keydown",this.onKeyDown),this.pluginViewer.viewer.ui.mode=null,this.hasBeenOpened=!0,this.measurements.forEach(t=>{t.visible=t.group===this.currentGroup})},onClose(){document.removeEventListener("keydown",this.onKeyDown),this.pluginViewer.viewer.ui.mode="pick",this.selectedMeasurementPlugin=null,this.pluginViewer.plugins.caliper?.disable(),this.calibrating=!1},methods:{setStandard(t){[this.pluginViewer.plugins?.ruler,this.pluginViewer.plugins?.surface,this.pluginViewer.plugins?.path].filter(Boolean).forEach(e=>{e.standard=t||1})},toggleCalibrate(){this.calibrating?(this.pluginViewer.plugins.caliper?.disable(),this.calibrating=!1):this.onCalibrateClick()},onCalibrateClick(){this.pluginViewer.plugins.caliper.enable(this.onCalibrationValidated,this.onCalibrationCancel),this.calibrating=!0},async onCalibrationValidated(t){this.pluginViewer.plugins.caliper.disable();const e=this.$viewer.api.cloudId,i=this.$viewer.api.projectId;try{this.model.sizeRatio=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:n,object:o}=t;let s=n,a=!0,l;switch(e){case"distance":l=[o.startPoint,o.endPoint];break;case"angle":l=[o.startPoint,o.anglePoint,o.endPoint];break;case"surface":l=o.points;break;case"path":l=o.points;break}const c=this,d={id:o.id,group:i||this.currentGroup,unit:$gt[e],get value(){return c.standard,t.value.toFixed(2)},name:r||e,type:e,get color(){return s},get colorString(){return`#${s.toString(16).padStart(6,0)}`},set color(u){s=u,o.colorize(u)},get visible(){return a},set visible(u){a=u,o.visible=u},get points(){return l},destroy(){o.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(e){console.error(e),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),r=(this.model.storeys??[]).find(o=>o.name===e.group)?.plans[0]??{plan:this.model},n=i.create(e.points,r);n.colorize(e.color),this.makeMeasurement({type:e.type,group:e.group,name:e.name,color:e.color,object:n,get value(){return e.type==="surface"?n.surface:e.type==="angle"?n.angle:n.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}}},imt={class:"bimdata-measure2d"},rmt={key:0,class:"bimdata-measure2d__actions-0"},nmt={class:"bimdata-measure2d__actions-1"},omt={class:"bimdata-measure2d__actions-2"},smt={class:"bimdata-measure2d__list"},amt={class:"bimdata-measure2d__list__element"},lmt={class:"bimdata-measure2d__list__element__label"},cmt=["onClick"],dmt={class:"bimdata-measure2d__list__element__tag"},umt=["onClick"],hmt={class:"bimdata-measure2d__list__element__buttons"},pmt={key:2,class:"bimdata-measure2d--not-calibrated"},fmt={key:0,class:"bimdata-measure2d--not-calibrated__guide"},gmt=["src"];function mmt(t,e,i,r,n,o){const s=R("BIMDataIconSave"),a=R("BIMDataButton"),l=R("BIMDataIconCaliper"),c=R("BIMDataTooltip"),d=R("BIMDataIconDistance"),u=R("BIMDataIconAngle"),h=R("BIMDataIconSurface"),p=R("BIMDataIconPathway"),g=R("BIMDataIcon"),f=R("BIMDataInput"),A=R("ColorSelector"),m=R("BIMDataIconHide"),b=R("BIMDataIconShow"),v=R("BIMDataIconDelete"),w=R("BIMDataPaginatedList"),y=R("BIMDataIllustration"),x=R("BIMDataEmpty"),k=er("click-away");return P(),j("div",imt,[o.model?o.isCalibrated?(P(),j(mt,{key:1},[C("div",nmt,[D(a,{class:"bimdata-measure2d__actions-1__btn-save",color:"primary",fill:"",radius:"",icon:"",disabled:!n.isUpdated,onClick:o.onSaveMeasurementsClick},{default:H(()=>[D(s,{size:"xs",margin:"0 6px 0 0"}),C("span",null,Z(t.$t("measure2d.save_measurements")),1)]),_:1},8,["disabled","onClick"]),D(c,{text:t.$t("measure2d.calibrate")},{default:H(()=>[t.$viewer.api.permissions.hasModelWritePermission&&(n.carrier==="plan"||n.carrier==="dwg")?(P(),X(a,{key:0,color:n.calibrating?"primary":"default",fill:"",radius:"",icon:"",class:"bimdata-measure2d__actions-1__caliper",onClick:o.toggleCalibrate},{default:H(()=>[D(l,{size:"xs"})]),_:1},8,["color","onClick"])):ye("",!0)]),_:1},8,["text"])]),C("div",omt,[n.ruler2dPluginAvailable?(P(),X(a,{key:0,color:n.selectedMeasurementPlugin==="distance"?"primary":"default",fill:"",radius:"",onClick:e[0]||(e[0]=E=>o.onAddMeasurementClick("distance"))},{default:H(()=>[D(d,{size:"s",margin:"0 6px 0 0"}),C("span",null," + "+Z(t.$t("measure2d.distance_measurement")),1)]),_:1},8,["color"])):ye("",!0),n.angle2dPluginAvailable?(P(),X(a,{key:1,color:n.selectedMeasurementPlugin==="angle"?"primary":"default",fill:"",radius:"",onClick:e[1]||(e[1]=E=>o.onAddMeasurementClick("angle"))},{default:H(()=>[D(u,{size:"s",margin:"0 6px 0 0"}),C("span",null," + "+Z(t.$t("measure2d.angle_measurement")),1)]),_:1},8,["color"])):ye("",!0),n.surface2dPluginAvailable?(P(),X(a,{key:2,color:n.selectedMeasurementPlugin==="surface"?"primary":"default",fill:"",radius:"",onClick:e[2]||(e[2]=E=>o.onAddMeasurementClick("surface"))},{default:H(()=>[D(h,{size:"s",margin:"0 6px 0 0"}),C("span",null," + "+Z(t.$t("measure2d.surface_measurement")),1)]),_:1},8,["color"])):ye("",!0),n.path2dPluginAvailable?(P(),X(a,{key:3,color:n.selectedMeasurementPlugin==="path"?"primary":"default",fill:"",radius:"",onClick:e[3]||(e[3]=E=>o.onAddMeasurementClick("path"))},{default:H(()=>[D(p,{size:"s",margin:"0 6px 0 0"}),C("span",null," + "+Z(t.$t("measure2d.path_measurement")),1)]),_:1},8,["color"])):ye("",!0)]),C("div",smt,[n.measurements.length>0?(P(),X(w,{key:0,list:n.measurements,"element-key":"id",style:{overflow:"unset"}},{element:H(({element:E})=>[C("div",amt,[C("div",lmt,[D(g,{name:E.type==="path"?"pathway":E.type,size:"m",margin:"0 12px 0 0"},null,8,["name"]),E.nameEditing?(P(),X(f,{key:0,ref:"elementInput",modelValue:E.name,"onUpdate:modelValue":B=>E.name=B,onBlur:B=>E.nameEditing=!1,onKeypress:ui(B=>E.nameEditing=!1,["enter"])},null,8,["modelValue","onUpdate:modelValue","onBlur","onKeypress"])):(P(),j("span",{key:1,onClick:B=>o.onElementNameClick(E)},Z(E.name),9,cmt))]),C("div",dmt,[C("span",{class:"bimdata-measure2d__list__element__tag__content",style:Ee(`color: ${E.colorString}; background-color: ${E.colorString}20;`),onClick:B=>o.onTagClick(E)},Z(E.value)+" "+Z(E.unit),13,umt),E.colorEditing?Ht((P(),X(A,{key:0,class:"bimdata-measure2d__list__element__tag__color-selector","selected-color":E.color,onColorSelect:B=>{E.color=B.value,E.colorEditing=!1}},null,8,["selected-color","onColorSelect"])),[[k,()=>{E.colorEditing=!1}]]):ye("",!0)]),C("div",hmt,[D(a,{icon:"",class:"m-r-6",color:"granite",ghost:"",radius:"",disabled:o.isHideElementDisabled(E),onClick:B=>o.onHideMeasurementClick(E)},{default:H(()=>[E.visible?(P(),X(m,{key:0,size:"s"})):(P(),X(b,{key:1,size:"s"}))]),_:2},1032,["disabled","onClick"]),D(a,{icon:"",ghost:"",radius:"",color:"granite",onClick:B=>o.onDeleteMeasurementClick(E)},{default:H(()=>[D(v,{size:"m"})]),_:1},8,["onClick"])])])]),_:1},8,["list"])):(P(),X(x,{key:1,message:t.$t("measure2d.empty")},{default:H(()=>[D(y,{name:"emptyBucket"})]),_:1},8,["message"]))])],64)):(P(),j("div",pmt,[n.calibrating?(P(),j("div",fmt,[C("img",{src:n.guide},null,8,gmt)])):(P(),X(y,{key:1,name:"emptyMeasure"})),C("div",null,Z(n.calibrating?t.$t("measure2d.calibrating"):t.$t("measure2d.not_calibrated")),1),D(a,{color:"primary",fill:"",radius:"",icon:"",width:"150px",disabled:n.calibrating,onClick:e[4]||(e[4]=E=>o.onCalibrateClick())},{default:H(()=>[D(l,{size:"s",margin:"0 var(--spacing-unit) 0 0"}),lt(" "+Z(t.$t("measure2d.calibrate")),1)]),_:1},8,["disabled"])])):(P(),j("div",rmt,Z(t.$t("measure2d.no_model"))+". ",1))])}const Amt=G(tmt,[["render",mmt],["__scopeId","data-v-be54f8aa"]]),vmt="Speichern",bmt="Entfernung",wmt="Winkel",ymt="Oberfl\xE4che",xmt="Weg",Cmt="Sie haben derzeit keine gespeicherten Messungen.",kmt="Messen",Mmt="Klicken Sie auf \u201EBest\xE4tigen\u201C, um die Zeichnung zu beenden.",Emt="Kalibrierung",Bmt="Bitte skizzieren und best\xE4tigen Sie Ihren Standard",Pmt="Um das Messwerkzeug verwenden zu k\xF6nnen, stellen Sie sicher, dass Sie Ihren Plan kalibriert haben.",Imt="W\xE4hlen Sie ein Modell aus, um Messungen durchf\xFChren zu k\xF6nnen.",Smt="Es muss sich um eine strikte positive Zahl handeln",Tmt="Plan erfolgreich kalibriert",Rmt={save_measurements:vmt,distance_measurement:bmt,angle_measurement:wmt,surface_measurement:ymt,path_measurement:xmt,empty:Cmt,tooltip:kmt,validate_path:Mmt,calibrate:Emt,calibrating:Bmt,not_calibrated:Pmt,no_model:Imt,modal_error:Smt,calibration_success:Tmt},Dmt="Save",_mt="Distance",Lmt="Angle",jmt="Surface",Fmt="Path",Omt="There is currently no saved measurement.",qmt="Measurement tool",Umt="Click on \u201Cvalidate\u201D to end the path.",Nmt="Calibration",Hmt="Please trace and validate your stallion",zmt="To use the measurement tool, make sure you have calibrated your plan.",Vmt="Select a model to be able to perform measurements",Gmt="Must be a strictly positive number",Qmt="Successfully calibrated plan",Kmt={save_measurements:Dmt,distance_measurement:_mt,angle_measurement:Lmt,surface_measurement:jmt,path_measurement:Fmt,empty:Omt,tooltip:qmt,validate_path:Umt,calibrate:Nmt,calibrating:Hmt,not_calibrated:zmt,no_model:Vmt,modal_error:Gmt,calibration_success:Qmt},Wmt="Guardar",Jmt="Distancia",Ymt="\xC1ngulo",Zmt="Superficie",Xmt="Camino",$mt="Actualmente no hay ninguna medici\xF3n guardada.",e2t="Herramienta de medici\xF3n",t2t="Haga clic en \xE2\u20AC\u0153validar\xE2\u20AC para finalizar el camino.",i2t="Calibraci\xF3n",r2t="Rastree y valide su patr\xF3n",n2t="Para poder utilizar la herramienta de medici\xF3n, aseg\xFArese de haber calibrado su plano.",o2t="Seleccionar un modelo para poder realizar mediciones",s2t="El n\xFAmero debe ser necesariamente positivo",a2t="Plano calibrado de forma correcta",l2t={save_measurements:Wmt,distance_measurement:Jmt,angle_measurement:Ymt,surface_measurement:Zmt,path_measurement:Xmt,empty:$mt,tooltip:e2t,validate_path:t2t,calibrate:i2t,calibrating:r2t,not_calibrated:n2t,no_model:o2t,modal_error:s2t,calibration_success:a2t},c2t="Sauvegarder",d2t="Distance",u2t="Angle",h2t="Surface",p2t="Chemin",f2t="Vous n\u2019avez actuellement aucune mesure enregistr\xE9e.",g2t="Outil de mesure",m2t="Cliquer sur \u201Cvalider\u201D pour terminer le trac\xE9.",A2t="Etalonnage",v2t="Veuillez tra\xE7er et valider votre \xE9talon",b2t="Pour pouvoir utiliser l\u2019outil de mesure, assurez-vous d\u2019avoir calibr\xE9 votre plan.",w2t="Selectionner un model pour pouvoir r\xE9aliser des mesures",y2t="Doit \xEAtre un nombre strictement positif",x2t="Plan calibr\xE9 avec succ\xE8s",C2t={save_measurements:c2t,distance_measurement:d2t,angle_measurement:u2t,surface_measurement:h2t,path_measurement:p2t,empty:f2t,tooltip:g2t,validate_path:m2t,calibrate:A2t,calibrating:v2t,not_calibrated:b2t,no_model:w2t,modal_error:y2t,calibration_success:x2t},k2t="Salva",M2t="Distanza",E2t="Angolo",B2t="Superficie",P2t="Percorso",I2t="Attualmente non hai misure salvate.",S2t="Strumento di misura",T2t='Clicca su "OK" per completare il percorso.',R2t="Calibrazione",D2t="Indica e conferma il tuo campione",_2t="Per poter utilizzare lo strumento di misurazione, assicurati di aver calibrato il tuo progetto.",L2t="Seleziona un modello per eseguire delle misurazioni",j2t="Deve essere un numero positivo",F2t="Progetto calibrato correttamente",O2t={save_measurements:k2t,distance_measurement:M2t,angle_measurement:E2t,surface_measurement:B2t,path_measurement:P2t,empty:I2t,tooltip:S2t,validate_path:T2t,calibrate:R2t,calibrating:D2t,not_calibrated:_2t,no_model:L2t,modal_error:j2t,calibration_success:F2t},q2t={name:"measure2d",i18n:{de:Rmt,en:Kmt,es:l2t,fr:C2t,it:O2t},component:Amt,addToWindows:["2d","plan"],button:{tooltip:"measure2d.tooltip",position:"right",content:"panel",keepOpen:!0,icon:{component:"BIMDataIconMeasure",options:{size:"m"}}}};function U2t(t){return{created(){t.pathValidationModal=this},render(){return Tn(fC,{width:"100%",class:"bimdata-measure-dwg__path-validation"},{content:()=>Tn("div",{style:"display: flex; justify-content: space-between; align-items: center;"},[Tn("div",this.$t("measureDwg.validate_path")),Tn(_o,{fill:!0,radius:!0,color:"high",width:"121px",onClick:t.onPathCancel},{default:()=>this.$t("global.cancel")}),Tn(_o,{fill:!0,radius:!0,color:"primary",width:"121px",onClick:t.onPathValidate},{default:()=>this.$t("global.validate")})])})}}}const Tte="BIMDataViewer-DWG_measurements",N2t={name:"BIMDataMeasureDWG",components:{ColorSelector:wC,BIMDataEmpty:c1},data(){return{distanceMeasurementPluginAvailable:!1,surfaceMeasurementPluginAvailable:!1,angleMeasurementPluginAvailable:!1,pathMeasurementPluginAvailable:!1,selectedMeasurementPlugin:null,currentColor:null,currentPlugin:null,measurements:[],isUpdated:!1,hasBeenOpened:!1,pluginViewer:{},calibrating:!1}},computed:{model(){return ur(this.pluginViewer.model)},modelId(){return this.model?.id??null},standard(){return this.model?.stateModel?.sizeRatio??1}},watch:{model(t){this.measurements.forEach(e=>e.destroy()),this.measurements=[],t&&this.restoreSavedMeasurements(t)},modelId(t){this.measurements.forEach(e=>{e.visible=this.hasBeenOpened&&e.modelId===t})},measurements(t){t.forEach(e=>{e.visible=this.hasBeenOpened&&e.modelId===this.modelId})},selectedMeasurementPlugin(t){const e=this.measurementPlugins.get(t);this.currentPlugin&&this.currentPlugin!==e&&(this.currentPlugin.disable(),this.pathValidationModal&&this.closePathValidationModal()),e&&(e.enable(i=>{this.isUpdated=!0,this.measurements.push(i),this.selectedMeasurementPlugin=null,this.currentColor=Au()}),t==="path"&&this.$viewer.localContext.modals.pushModal(U2t(this),null,{display:"banner"})),this.currentPlugin=e},currentColor(t){this.measurementPlugins.forEach(e=>{e.color=t})}},unmounted(){this.pluginViewer.plugins.caliper.disable(),this.pluginViewer.viewer.inputs.pickSnapMargin=0},mounted(){const t=this.$viewer.localContext.viewer;if(!t||!t.viewer){const o="Measure2d plugin cannot work without a viewer dwg plugin and viewer (engine2d).";throw console.error(o),new Error(o)}this.pluginViewer=t;const e=t.plugins?.distanceMeasurementPlugin,i=t.plugins?.surfaceMeasurementPlugin,r=t.plugins?.angleMeasurementPlugin,n=t.plugins?.pathMeasurementPlugin;this.measurementPlugins=new Map,e&&(this.measurementPlugins.set("distance",e),this.distanceMeasurementPluginAvailable=!0),i&&(this.measurementPlugins.set("surface",i),this.surfaceMeasurementPluginAvailable=!0),r&&(this.measurementPlugins.set("angle",r),this.angleMeasurementPluginAvailable=!0),n&&(this.measurementPlugins.set("path",n),this.pathMeasurementPluginAvailable=!0),this.currentColor=Au()},onOpen(){document.addEventListener("keydown",this.onKeyDown),this.pluginViewer.ui.disableAll(),this.hasBeenOpened=!0,this.measurements.forEach(t=>{t.visible=t.modelId===this.modelId})},onClose(){document.removeEventListener("keydown",this.onKeyDown),this.pluginViewer.ui.enableAll(),this.selectedMeasurementPlugin=null,this.pluginViewer.plugins.caliper.disable(),this.calibrating=!1,this.pluginViewer.viewer.inputs.pickSnapMargin=0},methods:{onSaveMeasurementsClick(){if(!this.model||!this.isUpdated)return;const t=Tte+"_"+this.model.id,e=this.measurements.map(i=>i.serialize());localStorage.setItem(t,JSON.stringify(e)),this.isUpdated=!1},restoreSavedMeasurements(t){const e=Tte+"_"+t.id;(JSON.parse(localStorage.getItem(e))||[]).forEach(i=>{const r=this.measurementPlugins.get(i.type);if(r){const n=r.deserialize(i);this.measurements.push(n)}}),this.isUpdated=!1},toggleCalibrate(){this.calibrating?(this.pluginViewer.plugins.caliper.disable(),this.calibrating=!1):this.onCalibrateClick()},onCalibrateClick(){this.pluginViewer.plugins.caliper.enable(this.onCalibrationValidated,this.onCalibrationCancel),this.calibrating=!0},async onCalibrationValidated(t){this.pluginViewer.plugins.caliper.disable();const e=this.$viewer.api.cloudId,i=this.$viewer.api.projectId;try{this.model.stateModel.sizeRatio=t,this.$viewer.api.permissions.hasModelWritePermission&&await this.$viewer.api.apiClient.modelApi.updateModel(e,this.model.stateModel.id,i,{size_ratio:t}),this.measurements.forEach(r=>r.updateText()),this.$viewer.localContext.hub.emit("alert",{type:"success",message:this.$t("measureDwg.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()},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)},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()})},onAddMeasurementClick(t){this.selectedMeasurementPlugin===t?this.selectedMeasurementPlugin=null:this.selectedMeasurementPlugin=t},onKeyDown(t){t.key==="Escape"?(this.selectedMeasurementPlugin=null,this.measurements.forEach(e=>{e.nameEditing=!1,e.colorEditing=!1})):t.key==="Enter"&&this.pathValidationModal&&this.onPathValidate()},onDeleteMeasurementClick(t){t.destroy(),this.measurements.splice(this.measurements.indexOf(t),1),this.isUpdated=!0}}},H2t={class:"bimdata-measure-dwg"},z2t={key:0,class:"bimdata-measure-dwg__actions-0"},V2t={class:"bimdata-measure-dwg__actions-1"},G2t={class:"bimdata-measure-dwg__actions-2"},Q2t={class:"bimdata-measure-dwg__list"},K2t={class:"bimdata-measure-dwg__list__element"},W2t={class:"bimdata-measure-dwg__list__element__label"},J2t=["onClick"],Y2t={class:"bimdata-measure-dwg__list__element__tag"},Z2t=["onClick"],X2t={class:"bimdata-measure-dwg__list__element__buttons"};function $2t(t,e,i,r,n,o){const s=R("BIMDataIconSave"),a=R("BIMDataButton"),l=R("BIMDataIconCaliper"),c=R("BIMDataIconDistance"),d=R("BIMDataIconAngle"),u=R("BIMDataIconSurface"),h=R("BIMDataIconPathway"),p=R("BIMDataIcon"),g=R("BIMDataInput"),f=R("ColorSelector"),A=R("BIMDataIconHide"),m=R("BIMDataIconShow"),b=R("BIMDataIconDelete"),v=R("BIMDataPaginatedList"),w=R("BIMDataIllustration"),y=R("BIMDataEmpty"),x=er("click-away");return P(),j("div",H2t,[o.model?(P(),j(mt,{key:1},[C("div",V2t,[D(a,{class:"bimdata-measure-dwg__actions-1__btn-save",color:"primary",fill:"",radius:"",icon:"",disabled:!n.isUpdated,onClick:o.onSaveMeasurementsClick},{default:H(()=>[D(s,{size:"xs",margin:"0 6px 0 0"}),C("span",null,Z(t.$t("measureDwg.save_measurements")),1)]),_:1},8,["disabled","onClick"]),t.$viewer.api.permissions.hasModelWritePermission?(P(),X(a,{key:0,color:n.calibrating?"primary":"default",fill:"",radius:"",icon:"",class:"bimdata-measure-dwg__actions-1__caliper",onClick:o.toggleCalibrate},{default:H(()=>[D(l,{size:"xs"})]),_:1},8,["color","onClick"])):ye("",!0)]),C("div",G2t,[n.distanceMeasurementPluginAvailable?(P(),X(a,{key:0,color:n.selectedMeasurementPlugin==="distance"?"primary":"default",fill:"",radius:"",onClick:e[0]||(e[0]=k=>o.onAddMeasurementClick("distance"))},{default:H(()=>[D(c,{size:"s",margin:"0 6px 0 0"}),C("span",null," + "+Z(t.$t("measureDwg.distance_measurement")),1)]),_:1},8,["color"])):ye("",!0),n.angleMeasurementPluginAvailable?(P(),X(a,{key:1,color:n.selectedMeasurementPlugin==="angle"?"primary":"default",fill:"",radius:"",onClick:e[1]||(e[1]=k=>o.onAddMeasurementClick("angle"))},{default:H(()=>[D(d,{size:"s",margin:"0 6px 0 0"}),C("span",null," + "+Z(t.$t("measureDwg.angle_measurement")),1)]),_:1},8,["color"])):ye("",!0),n.surfaceMeasurementPluginAvailable?(P(),X(a,{key:2,color:n.selectedMeasurementPlugin==="surface"?"primary":"default",fill:"",radius:"",onClick:e[2]||(e[2]=k=>o.onAddMeasurementClick("surface"))},{default:H(()=>[D(u,{size:"s",margin:"0 6px 0 0"}),C("span",null," + "+Z(t.$t("measureDwg.surface_measurement")),1)]),_:1},8,["color"])):ye("",!0),n.pathMeasurementPluginAvailable?(P(),X(a,{key:3,color:n.selectedMeasurementPlugin==="path"?"primary":"default",fill:"",radius:"",onClick:e[3]||(e[3]=k=>o.onAddMeasurementClick("path"))},{default:H(()=>[D(h,{size:"s",margin:"0 6px 0 0"}),C("span",null," + "+Z(t.$t("measureDwg.path_measurement")),1)]),_:1},8,["color"])):ye("",!0)]),C("div",Q2t,[n.measurements.length>0?(P(),X(v,{key:0,list:n.measurements,"element-key":"id",style:{overflow:"unset"}},{element:H(({element:k})=>[C("div",K2t,[C("div",W2t,[D(p,{name:k.type==="path"?"pathway":k.type,size:"m",margin:"0 12px 0 0"},null,8,["name"]),k.nameEditing?(P(),X(g,{key:0,ref:"elementInput",modelValue:k.name,"onUpdate:modelValue":E=>k.name=E,onBlur:E=>k.nameEditing=!1,onKeypress:ui(E=>k.nameEditing=!1,["enter"])},null,8,["modelValue","onUpdate:modelValue","onBlur","onKeypress"])):(P(),j("span",{key:1,onClick:E=>o.onElementNameClick(k)},Z(k.name),9,J2t))]),C("div",Y2t,[C("span",{class:"bimdata-measure-dwg__list__element__tag__content",style:Ee(`color: ${k.colorString}; background-color: ${k.colorString}20;`),onClick:E=>o.onTagClick(k)},Z(k.getFormattedValue()),13,Z2t),k.colorEditing?Ht((P(),X(f,{key:0,class:"bimdata-measure-dwg__list__element__tag__color-selector","selected-color":k.color,onColorSelect:E=>{k.color=E.value,k.colorEditing=!1}},null,8,["selected-color","onColorSelect"])),[[x,()=>{k.colorEditing=!1}]]):ye("",!0)]),C("div",X2t,[D(a,{icon:"",class:"m-r-6",color:"granite",ghost:"",radius:"",disabled:k.modelId!==o.modelId,onClick:E=>k.visible=!k.visible},{default:H(()=>[k.visible?(P(),X(A,{key:0,size:"s"})):(P(),X(m,{key:1,size:"s"}))]),_:2},1032,["disabled","onClick"]),D(a,{icon:"",ghost:"",radius:"",color:"granite",onClick:E=>o.onDeleteMeasurementClick(k)},{default:H(()=>[D(b,{size:"m"})]),_:1},8,["onClick"])])])]),_:1},8,["list"])):(P(),X(y,{key:1,message:t.$t("measureDwg.empty")},{default:H(()=>[D(w,{name:"emptyBucket"})]),_:1},8,["message"]))])],64)):(P(),j("div",z2t,Z(t.$t("measureDwg.no_model"))+". ",1))])}const eAt=G(N2t,[["render",$2t],["__scopeId","data-v-2d1329e7"]]),tAt="Speichern",iAt="Entfernung",rAt="Winkel",nAt="Oberfl\xE4che",oAt="Weg",sAt="Sie haben derzeit keine gespeicherten Messungen.",aAt="Messger\xE4t",lAt="Klicken Sie auf \u201EBest\xE4tigen\u201C, um die Zeichnung zu beenden.",cAt="Kalibrierung",dAt="Bitte skizzieren und best\xE4tigen Sie Ihren Standard",uAt="Um das Messwerkzeug verwenden zu k\xF6nnen, stellen Sie sicher, dass Sie Ihren Plan kalibriert haben.",hAt="W\xE4hlen Sie ein Modell aus, um Messungen durchf\xFChren zu k\xF6nnen.",pAt="Es muss sich um eine strikte positive Zahl handeln",fAt="Plan erfolgreich kalibriert",gAt={save_measurements:tAt,distance_measurement:iAt,angle_measurement:rAt,surface_measurement:nAt,path_measurement:oAt,empty:sAt,tooltip:aAt,validate_path:lAt,calibrate:cAt,calibrating:dAt,not_calibrated:uAt,no_model:hAt,modal_error:pAt,calibration_success:fAt},mAt="Save",AAt="Distance",vAt="Angle",bAt="Surface",wAt="Path",yAt="There is currently no saved measurement.",xAt="Measurement tool",CAt="Click on \u201Cvalidate\u201D to end the path.",kAt="Calibration",MAt="Please trace and validate your stallion",EAt="To use the measurement tool, make sure you have calibrated your plan.",BAt="Select a model to be able to perform measurements",PAt="Must be a strictly positive number",IAt="Successfully calibrated plan",SAt={save_measurements:mAt,distance_measurement:AAt,angle_measurement:vAt,surface_measurement:bAt,path_measurement:wAt,empty:yAt,tooltip:xAt,validate_path:CAt,calibrate:kAt,calibrating:MAt,not_calibrated:EAt,no_model:BAt,modal_error:PAt,calibration_success:IAt},TAt="Guardar",RAt="Distancia",DAt="\xC1ngulo",_At="Superficie",LAt="Camino",jAt="Actualmente no hay ninguna medici\xF3n guardada.",FAt="Herramienta de medici\xF3n",OAt="Haga clic en \xE2\u20AC\u0153validar\xE2\u20AC para finalizar el camino.",qAt="Calibraci\xF3n",UAt="Rastree y valide su patr\xF3n",NAt="Para poder utilizar la herramienta de medici\xF3n, aseg\xFArese de haber calibrado su plano.",HAt="Seleccionar un modelo para poder realizar mediciones",zAt="El n\xFAmero debe ser necesariamente positivo",VAt="Plano calibrado de forma correcta",GAt={save_measurements:TAt,distance_measurement:RAt,angle_measurement:DAt,surface_measurement:_At,path_measurement:LAt,empty:jAt,tooltip:FAt,validate_path:OAt,calibrate:qAt,calibrating:UAt,not_calibrated:NAt,no_model:HAt,modal_error:zAt,calibration_success:VAt},QAt="Sauvegarder",KAt="Distance",WAt="Angle",JAt="Surface",YAt="Chemin",ZAt="Vous n\u2019avez actuellement aucune mesure enregistr\xE9e.",XAt="Outil de mesure",$At="Cliquer sur \u201Cvalider\u201D pour terminer le trac\xE9.",evt="Etalonnage",tvt="Veuillez tra\xE7er et valider votre \xE9talon",ivt="Pour pouvoir utiliser l\u2019outil de mesure, assurez-vous d\u2019avoir calibr\xE9 votre plan.",rvt="Selectionner un model pour pouvoir r\xE9aliser des mesures",nvt="Doit \xEAtre un nombre strictement positif",ovt="Plan calibr\xE9 avec succ\xE8s",svt={save_measurements:QAt,distance_measurement:KAt,angle_measurement:WAt,surface_measurement:JAt,path_measurement:YAt,empty:ZAt,tooltip:XAt,validate_path:$At,calibrate:evt,calibrating:tvt,not_calibrated:ivt,no_model:rvt,modal_error:nvt,calibration_success:ovt},avt="Salva",lvt="Distanza",cvt="Angolo",dvt="Superficie",uvt="Percorso",hvt="Attualmente non hai misure salvate.",pvt="Strumento di misura",fvt='Clicca su "OK" per completare il percorso.',gvt="Calibrazione",mvt="Indica e conferma il tuo campione",Avt="Per poter utilizzare lo strumento di misurazione, assicurati di aver calibrato il tuo progetto.",vvt="Seleziona un modello per eseguire delle misurazioni",bvt="Deve essere un numero positivo",wvt="Progetto calibrato correttamente",yvt={save_measurements:avt,distance_measurement:lvt,angle_measurement:cvt,surface_measurement:dvt,path_measurement:uvt,empty:hvt,tooltip:pvt,validate_path:fvt,calibrate:gvt,calibrating:mvt,not_calibrated:Avt,no_model:vvt,modal_error:bvt,calibration_success:wvt},xvt={name:"measureDwg",i18n:{de:gAt,en:SAt,es:GAt,fr:svt,it:yvt},component:eAt,addToWindows:["dwg","dxf"],button:{tooltip:"measureDwg.tooltip",position:"right",content:"panel",keepOpen:!0,icon:{component:"BIMDataIconMeasure",options:{size:"m"}}}},Cvt={name:"BIMDataMeasure3D",components:{BIMDataEmpty:c1,ColorSelector:wC},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(){this.viewer3d.highlightOnHover=!0,this.viewer3d.selectOnClick=!0,this.selectedMeasurementPlugin&&this.plugins.get(this.selectedMeasurementPlugin)?.control.deactivate(),document.removeEventListener("keydown",this.onKeyDown),this.selectedMeasurementPlugin=null},unmounted(){this.viewer3d.distanceMeasurementsPlugin.off(this.distanceMeasurementSubscription),this.viewer3d.angleMeasurementsPlugin.off(this.angleMeasurementSubscription),this.viewer3d.spacingMeasurementsPlugin?.off(this.spacingMeasurementSubscription)},methods:{onTagClick(t){this.measurements.filter(e=>e!==t).forEach(e=>e.colorEditing=!1),t.colorEditing=!0,this.isUpdated=!0},updateCurrentColor(){this.currentColor=Au(),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,n,o){let s=!0,a=!1,l=o;return{nameEditing:!1,get visible(){return s},set visible(c){s=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:n,modelIds:this.$viewer.localContext.loadedModelIds,destroy(){a||(t.destroy(),a=!0)},get destroyed(){return a}}}}},kvt={class:"bimdata-measure3d"},Mvt={class:"bimdata-measure3d__actions"},Evt={class:"bimdata-measure3d__content"},Bvt={class:"bimdata-measure3d__list__element"},Pvt={class:"bimdata-measure3d__list__element__label"},Ivt=["onClick"],Svt={class:"bimdata-measure3d__list__element__tag"},Tvt=["onClick"],Rvt={class:"bimdata-measure3d__list__element__buttons"};function Dvt(t,e,i,r,n,o){const s=R("BIMDataIconDistance"),a=R("BIMDataButton"),l=R("BIMDataIconAngle"),c=R("BIMDataIcon"),d=R("BIMDataIllustration"),u=R("BIMDataEmpty"),h=R("BIMDataInput"),p=R("ColorSelector"),g=R("BIMDataIconHide"),f=R("BIMDataIconShow"),A=R("BIMDataIconDelete"),m=R("BIMDataPaginatedList"),b=er("click-away");return P(),j("div",kvt,[C("div",Mvt,[D(a,{color:n.selectedMeasurementPlugin==="distance"?"primary":"default",fill:"",radius:"",onClick:e[0]||(e[0]=v=>o.onAddMeasurementClick("distance"))},{default:H(()=>[D(s,{size:"s",margin:"0 6px 0 0"}),C("span",null," + "+Z(t.$t("measure3d.distance_measurement")),1)]),_:1},8,["color"]),D(a,{color:n.selectedMeasurementPlugin==="angle"?"primary":"default",fill:"",radius:"",onClick:e[1]||(e[1]=v=>o.onAddMeasurementClick("angle"))},{default:H(()=>[D(l,{size:"s",margin:"0 6px 0 0"}),C("span",null," + "+Z(t.$t("measure3d.angle_measurement")),1)]),_:1},8,["color"]),n.spacingMeasurementEnabled?(P(),X(a,{key:0,color:n.selectedMeasurementPlugin==="spacing"?"primary":"default",fill:"",radius:"",onClick:e[2]||(e[2]=v=>o.onAddMeasurementClick("spacing"))},{default:H(()=>[D(c,{name:"spacing",size:"xs",margin:"0 6px 0 0"}),C("span",null," + "+Z(t.$t("measure3d.spacing_measurement")),1)]),_:1},8,["color"])):ye("",!0)]),C("div",Evt,[D(m,{list:o.displayedMeasurements,"element-key":"id",style:{overflow:"unset"}},{empty:H(()=>[D(u,{message:t.$t("measure3d.empty")},{default:H(()=>[D(d,{name:"emptyBucket"})]),_:1},8,["message"])]),element:H(({element:v})=>[C("div",Bvt,[C("div",Pvt,[D(c,{name:v.type,size:"m",margin:"0 12px 0 0"},null,8,["name"]),v.nameEditing?(P(),X(h,{key:0,ref:"elementInput",modelValue:v.name,"onUpdate:modelValue":w=>v.name=w,onBlur:w=>v.nameEditing=!1,onKeypress:ui(w=>v.nameEditing=!1,["enter"])},null,8,["modelValue","onUpdate:modelValue","onBlur","onKeypress"])):(P(),j("span",{key:1,onClick:w=>o.onElementNameClick(v)},Z(v.name),9,Ivt))]),C("div",Svt,[C("span",{class:"bimdata-measure3d__list__element__tag__content",style:Ee(`color: ${v.color}; background-color: ${v.color}20;`),onClick:w=>o.onTagClick(v)},Z(v.value)+" "+Z(v.unit),13,Tvt),v.colorEditing?Ht((P(),X(p,{key:0,class:"bimdata-measure3d__list__element__tag__color-selector","selected-color":parseInt(v.color.slice(1),16),onColorSelect:w=>{v.color=`#${w.value.toString(16).padStart(6,0)}`,v.colorEditing=!1}},null,8,["selected-color","onColorSelect"])),[[b,()=>{v.colorEditing=!1}]]):ye("",!0)]),C("div",Rvt,[D(a,{icon:"",class:"m-r-6",color:"granite",ghost:"",radius:"",onClick:w=>o.onHideMeasurementClick(v)},{default:H(()=>[v.visible?(P(),X(g,{key:0,size:"s"})):(P(),X(f,{key:1,size:"s"}))]),_:2},1032,["onClick"]),D(a,{icon:"",ghost:"",radius:"",color:"granite",onClick:w=>o.onDeleteMeasurementClick(v)},{default:H(()=>[D(A,{size:"m"})]),_:1},8,["onClick"])])])]),_:1},8,["list"])])])}const _vt=G(Cvt,[["render",Dvt],["__scopeId","data-v-b6e2d727"]]),Lvt="Entfernungsmessung",jvt="Winkelmessung",Fvt="Messung",Ovt="Keine Messung",qvt="Abstand",Uvt={distance_measurement:Lvt,angle_measurement:jvt,tooltip:Fvt,empty:Ovt,spacing_measurement:qvt},Nvt="Distance",Hvt="Angle",zvt="Measurement",Vvt="No measure",Gvt="Spacing",Qvt={distance_measurement:Nvt,angle_measurement:Hvt,tooltip:zvt,empty:Vvt,spacing_measurement:Gvt},Kvt="Medir distancia",Wvt="Medici\xF3n angular",Jvt="Medici\xF3n",Yvt="Sin mediciones",Zvt="Espaciado",Xvt={distance_measurement:Kvt,angle_measurement:Wvt,tooltip:Jvt,empty:Yvt,spacing_measurement:Zvt},$vt="Distance",e3t="Angle",t3t="Mesure",i3t="Pas de mesure",r3t="Espacement",n3t={distance_measurement:$vt,angle_measurement:e3t,tooltip:t3t,empty:i3t,spacing_measurement:r3t},o3t="Misura distanza",s3t="Misura angolo",a3t="Misura",l3t="Nessuna misurazione",c3t={distance_measurement:o3t,angle_measurement:s3t,tooltip:a3t,empty:l3t},d3t={name:"measure3d",i18n:{de:Uvt,en:Qvt,es:Xvt,fr:n3t,it:c3t},component:_vt,addToWindows:["3d"],button:{tooltip:"measure3d.tooltip",position:"right",content:"panel",keepOpen:!0,icon:{component:"BIMDataIconMeasure",options:{size:"m"}}}},u3t={render(){return null},async onOpen(t){const e=this.$viewer.localContext.viewer,i=await e.exportAsPDF(t);if(i){let r=this.$viewer.localContext.loadedModels[0];r.parent_id&&(r=e.pdfPages[0]);const n=document.createElement("a");n.href=URL.createObjectURL(i),n.download=r.document.file_name,n.click(),n.remove()}setTimeout(()=>this.$close())}},h3t="data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20preserveAspectRatio='xMidYMid%20meet'%20viewBox='-5%20-5%2034%2034'%20%3e%3cpath%20d='M18.5438%209.77808C17.8921%206.47183%2014.9883%203.98975%2011.5%203.98975C8.73042%203.98975%206.325%205.56141%205.12708%207.86141C2.2425%208.16808%200%2010.6118%200%2013.5731C0%2016.7452%202.57792%2019.3231%205.75%2019.3231H18.2083C20.8533%2019.3231%2023%2017.1764%2023%2014.5314C23%2012.0014%2021.0354%209.95058%2018.5438%209.77808ZM16.2917%2012.6147L11.5%2017.4064L6.70833%2012.6147H9.58333V8.78141H13.4167V12.6147H16.2917Z'%20/%3e%3c/svg%3e",p3t={name:"pdfExport",component:u3t,addToWindows:["plan"],button:{position:"right",tooltip:"pdfExport.title",icon:{imgUri:h3t}},i18n:{en:{title:"PDF Export"},fr:{title:"Export PDF"}}},f3t={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)}}},g3t=["accept"];function m3t(t,e,i,r,n,o){const s=R("BIMDataIconAddFile"),a=R("BIMDataButton");return P(),X(a,{style:{padding:"5px"},width:i.width,height:i.height,color:"primary",outline:"",radius:"",icon:"",onClick:o.onClick},{default:H(()=>[D(s,{size:"xs"}),jt(t.$slots,"default"),C("input",{ref:"input",type:"file",hidden:"",accept:i.accept,onChange:e[0]||(e[0]=(...l)=>o.onFileChange&&o.onFileChange(...l))},null,40,g3t)]),_:3},8,["width","height","onClick"])}const Rte=G(f3t,[["render",m3t]]),A3t={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 v3t(t,e,i,r,n,o){const s=R("BIMDataFileManager");return P(),X(s,{ref:"fileManager",class:"bimdata_ged","space-id":n.spaceId,"project-id":n.projectId,"api-url":n.apiUrl,"archive-url":n.archiveUrl,"access-token":n.accessToken,select:o.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:o.onSelectionChange,onError:o.onError,onSuccess:o.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 yC=G(A3t,[["render",v3t],["__scopeId","data-v-dd663a74"]]),b3t={components:{FileInput:Rte,BIMDataGED:yC},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()}}},w3t={class:"pdf-viewer"},y3t={class:"pdf-viewer__content"},x3t={key:1},C3t={key:0,class:"pdf-viewer__content--empty"},k3t={class:"flex items-center justify-center m-t-18"},M3t={class:"m-l-6"},E3t={class:"m-l-6"},B3t={key:1,class:"pdf-viewer__content--ged"},P3t={class:"p-x-12"},I3t={class:"pdf-viewer__content--ged__buttons flex items-center justify-between"};function S3t(t,e,i,r,n,o){const s=R("BIMDataIconArrow"),a=R("BIMDataButton"),l=R("BIMDataPDFViewer",!0),c=R("BIMDataIllustration"),d=R("FileInput"),u=R("BIMDataIconFolder"),h=R("BIMDataGED");return P(),j("div",w3t,[C("div",y3t,[n.pdfToView?(P(),X(l,{key:0,pdf:n.pdfToView,header:""},{"header-left":H(()=>[D(a,{class:"m-l-12",width:"32px",height:"32px",color:"primary",ghost:"",radius:"",icon:"",onClick:o.onCloseClick},{default:H(()=>[D(s,{size:"xxs"})]),_:1},8,["onClick"])]),_:1},8,["pdf"])):(P(),j("div",x3t,[n.isGedOpen?ye("",!0):(P(),j("div",C3t,[D(c,{name:"emptyPdf",x:"90",y:"90"}),C("h3",null,Z(t.$t("pdf.title")),1),C("div",k3t,[D(d,{accept:"application/pdf",onChange:o.loadFile},{default:H(()=>[C("div",M3t,Z(t.$t("pdf.empty")),1)]),_:1},8,["onChange"]),D(a,{class:"m-l-12",color:"primary",outline:"",radius:"",onClick:o.onOpenGedClick},{default:H(()=>[D(u,{fill:"",color:"default",size:"xxs"}),C("span",E3t,Z(t.$t("pdf.openGed")),1)]),_:1},8,["onClick"])])])),n.isGedOpen?(P(),j("div",B3t,[C("div",null,[C("h3",P3t,Z(t.$t("pdf.title")),1)]),D(h,{"header-buttons":!0,"single-select-mode":"","selectable-file-types":["pdf"],onSelectionChange:e[0]||(e[0]=p=>n.file=p[0])}),C("div",I3t,[D(a,{class:"pdf-viewer__content--ged__validate",outline:"",color:"primary",radius:"",width:"48%",onClick:o.back},{default:H(()=>[C("span",null,Z(t.$t("global.cancel")),1)]),_:1},8,["onClick"]),D(a,{class:"pdf-viewer__content--ged__validate",fill:"",color:"primary",radius:"",width:"48%",onClick:o.loadFile},{default:H(()=>[C("span",null,Z(t.$t("global.validate")),1)]),_:1},8,["onClick"])])])):ye("",!0)]))])])}const T3t=G(b3t,[["render",S3t],["__scopeId","data-v-30af43b3"]]),R3t="PDF-Viewer",D3t="Bitte w\xE4hlen Sie eine Datei aus oder legen Sie sie in diesem Fenster ab.",_3t="PDF-Viewer",L3t="Dateisystem \xF6ffnen",j3t={window_label:R3t,empty:D3t,title:_3t,openGed:L3t},F3t="PDF Viewer",O3t="No file selected. Please select a file or drag it on the window.",q3t="PDF Viewer",U3t="Files",N3t={window_label:F3t,empty:O3t,title:q3t,openGed:U3t},H3t="Visor de PDF",z3t="No hay ning\xFAn archivo seleccionado. Seleccione un archivo o arr\xE1strelo a la ventana.",V3t="Visor de PDF",G3t="Abrir la GED",Q3t={window_label:H3t,empty:z3t,title:V3t,openGed:G3t},K3t="Visionneuse PDF",W3t="Selectionner un fichier",J3t="Visionneuse PDF",Y3t="Ouvrir la GED",Z3t={window_label:K3t,empty:W3t,title:J3t,openGed:Y3t},X3t="Visualizzatore PDF",$3t="Seleziona un file.",e4t={window_label:X3t,empty:$3t},t4t="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",i4t={name:"pdf",i18n:{de:j3t,en:N3t,es:Q3t,fr:Z3t,it:e4t},component:T3t,window:{name:"pdf",noModel:!0,label:"pdf.window_label",icon:{imgUri:t4t}}};var e_,Dte;function r4t(){if(Dte)return e_;Dte=1;function t(e){return function(i){return e?.[i]}}return e_=t,e_}var t_,_te;function n4t(){if(_te)return t_;_te=1;var t=r4t(),e={\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"},i=t(e);return t_=i,t_}var i_,Lte;function jte(){if(Lte)return i_;Lte=1;var t=typeof oC=="object"&&oC&&oC.Object===Object&&oC;return i_=t,i_}var r_,Fte;function vu(){if(Fte)return r_;Fte=1;var t=jte(),e=typeof self=="object"&&self&&self.Object===Object&&self,i=t||e||Function("return this")();return r_=i,r_}var n_,Ote;function xC(){if(Ote)return n_;Ote=1;var t=vu(),e=t.Symbol;return n_=e,n_}var o_,qte;function o4t(){if(qte)return o_;qte=1;function t(e,i){for(var r=-1,n=e==null?0:e.length,o=Array(n);++r<n;)o[r]=i(e[r],r,e);return o}return o_=t,o_}var s_,Ute;function CC(){if(Ute)return s_;Ute=1;var t=Array.isArray;return s_=t,s_}var a_,Nte;function s4t(){if(Nte)return a_;Nte=1;var t=xC(),e=Object.prototype,i=e.hasOwnProperty,r=e.toString,n=t?t.toStringTag:void 0;function o(s){var a=i.call(s,n),l=s[n];try{s[n]=void 0;var c=!0}catch{}var d=r.call(s);return c&&(a?s[n]=l:delete s[n]),d}return a_=o,a_}var l_,Hte;function a4t(){if(Hte)return l_;Hte=1;var t=Object.prototype,e=t.toString;function i(r){return e.call(r)}return l_=i,l_}var c_,zte;function ew(){if(zte)return c_;zte=1;var t=xC(),e=s4t(),i=a4t(),r="[object Null]",n="[object Undefined]",o=t?t.toStringTag:void 0;function s(a){return a==null?a===void 0?n:r:o&&o in Object(a)?e(a):i(a)}return c_=s,c_}var d_,Vte;function Om(){if(Vte)return d_;Vte=1;function t(e){return e!=null&&typeof e=="object"}return d_=t,d_}var u_,Gte;function l4t(){if(Gte)return u_;Gte=1;var t=ew(),e=Om(),i="[object Symbol]";function r(n){return typeof n=="symbol"||e(n)&&t(n)==i}return u_=r,u_}var h_,Qte;function c4t(){if(Qte)return h_;Qte=1;var t=xC(),e=o4t(),i=CC(),r=l4t(),n=t?t.prototype:void 0,o=n?n.toString:void 0;function s(a){if(typeof a=="string")return a;if(i(a))return e(a,s)+"";if(r(a))return o?o.call(a):"";var l=a+"";return l=="0"&&1/a==-1/0?"-0":l}return h_=s,h_}var p_,Kte;function d4t(){if(Kte)return p_;Kte=1;var t=c4t();function e(i){return i==null?"":t(i)}return p_=e,p_}var f_,Wte;function u4t(){if(Wte)return f_;Wte=1;var t=n4t(),e=d4t(),i=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,r="\\u0300-\\u036f",n="\\ufe20-\\ufe2f",o="\\u20d0-\\u20ff",s=r+n+o,a="["+s+"]",l=RegExp(a,"g");function c(d){return d=e(d),d&&d.replace(i,t).replace(l,"")}return f_=c,f_}var h4t=u4t();const Jte=Y6(h4t),p4t=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"}),f4t={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:p4t}},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"}}},g4t={key:0,class:"editable-label__input"},m4t={class:"flex justify-between items-center"},A4t={key:0,class:"editable-label__input--buttons flex m-l-6"},v4t={class:"editable-label__text flex items-center"},b4t=["href"];function w4t(t,e,i,r,n,o){const s=R("BIMDataInput"),a=R("BIMDataIconValidate"),l=R("BIMDataButton"),c=R("BIMDataIconClose"),d=R("BIMDataIconEdit"),u=er("click-away");return Ht((P(),j("div",{class:Be(["editable-label",{disabled:i.disabled}]),onClick:e[1]||(e[1]=(...h)=>o.onClick&&o.onClick(...h)),onContextmenu:e[2]||(e[2]=Ut((...h)=>o.onRightClick&&o.onRightClick(...h),["right"]))},[n.edit?(P(),j("div",g4t,[C("div",m4t,[D(s,{ref:"input",modelValue:n.editedText,"onUpdate:modelValue":e[0]||(e[0]=h=>n.editedText=h),loading:n.loading,disabled:n.loading||i.disabled,margin:"0px"},null,8,["modelValue","loading","disabled"]),n.loading?ye("",!0):(P(),j("div",A4t,[D(l,{color:"primary",ghost:"",rounded:"",icon:"",onClick:Ut(o.onValidate,["stop"])},{default:H(()=>[D(a,{size:"xxs",class:"fill-primary"})]),_:1},8,["onClick"]),D(l,{color:"primary",ghost:"",rounded:"",icon:"",onClick:Ut(o.onCancel,["stop"])},{default:H(()=>[D(c,{size:"xxxs",class:"fill-primary"})]),_:1},8,["onClick"])]))]),C("span",{class:Be({error:!o.isIfcTypeFormatValid(n.editedText)})},Z(t.$t("properties.requested_format"))+" "+Z(t.$t(`properties.${o.ifcTypeFormat(i.valueType)}`)),3)])):ye("",!0),C("div",v4t,[!n.edit&&i.editOnClick?(P(),X(d,{key:0,size:"xxs",color:"granite",margin:"0 8px 0 0"})):ye("",!0),!n.edit&&o.isValidUrl(i.text)?(P(),j("a",{key:1,target:"_blank",href:i.text},Z(i.text),9,b4t)):ye("",!0),!n.edit&&!o.isValidUrl(i.text)?(P(),j("span",{key:2,class:Be({error:n.error,success:n.success})},Z(`${i.text!=null?i.text:""} ${i.units}`),3)):ye("",!0)])],34)),[[u,()=>i.cancelOnClickAway&&!n.loading&&(n.edit=!1)]])}const y4t=G(f4t,[["render",w4t],["__scopeId","data-v-97f502a6"]]),x4t={name:"BimdataProperties",components:{BIMDataEditableLabel:y4t},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 Jte(this.filter).toLowerCase()}},watch:{highlightedProperties(){this.highlightedProperties.length===0&&Object.values(this.$refs)[0]?.[0]?.scrollIntoView()},selectedObject:{async handler(t){t?this.displayedElement=await this.getDisplayedElement(t):this.displayedElement=null},immediate:!0},filter(t){t?this.highlightedProperties=C4t(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){if(t.key==="Enter"&&this.highlightedProperties.length>0){let e=this.$refs[this.highlightedProperties[0].ref]?.[0];e||(this.highlightedProperties[0].parent.displayed=!0,await this.$nextTick(),e=this.$refs[this.highlightedProperties[0].ref]?.[0]),e&&e.scrollIntoView(),this.highlightedProperties.push(this.highlightedProperties.shift())}},async onValidate(t,e,i,r){const n={...i,value:t};delete n.parent,this.editLoading=!0;try{const o=this.$viewer.api.cloudId,s=this.$viewer.api.projectId,a=this.displayedElement.stateObject.model.id;e?(await this.$viewer.api.apiClient.modelApi.updateElementPropertySetProperty(o,this.displayedElement.uuid,i.id,a,s,r,n),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:M4t(i,this),stateObject:t,uuid:t.uuid}}catch(i){console.error(i)}finally{this.loading=!1}}return e},onPropertiesEdited({object:t,author:e}){e!==this&&this.displayedElement?.uuid===t.uuid&&this.refreshDisplayedElement()}}};function C4t(t){const e=[];return t.forEach(i=>{i.highlighted&&e.push(i),e.push(...i.children.filter(r=>r.highlighted))}),e}const Yte={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"},Zte={KILO:"k",DECA:"da",CENTI:"c",MILLI:"m",MEGA:"M",GIGA:"M",HECTO:"h",DEKA:"da",DECI:"d",MICRO:"\u03BC"};function Xte({id:t,property_set_id:e,definition:i,value:r,nonEditable:n},o,s,a){let l=i.unit?.name||"",c=i.unit?.prefix||"";c&&Zte[c]&&(c=Zte[c]),l&&Yte[l]&&(l=Yte[l]);let d=c+l,u;const h=`properties.attributes_name.${i.name}`,p=i.value_type;return a.name==="Attributs"&&s.$viewer.i18n.$te(h)?u=s.$viewer.i18n.$t(h):u=i.name,{id:t,ref:o,property_set_id:e,name:u,value:r,valueType:p,unit:d,nonEditable:n,searchContent:Jte(`${u||""}${r||""} ${d}`).toLowerCase(),get highlighted(){return s.filter!==""&&this.searchContent.includes(s.slugFilter)},parent:a}}function k4t(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 M4t(t,e){let i=1;const r=[],n=k4t(t),{classifications:o,property_sets:s}=t;if(n){const a={id:n.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=n.map(l=>Xte(l,`element${i++}`,e,a)),r.push(a)}if(o?.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=o.map(l=>({...l,searchContent:`${l.name||""} ${l.notation||""} - ${l.title||""}
|
|
38
38
|
`.toLowerCase(),ref:`element${i++}`,get highlighted(){return e.filter!==""&&this.searchContent.includes(e.slugFilter)},parent:a})),r.push(a)}return s&&s.forEach(({id:a,name:l,properties:c,type:d})=>{const u={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)}};u.children=c.map(h=>Xte(h,`element${i++}`,e,u)),r.push(u)}),r}const E4t={class:"bimdata-properties__properties"},B4t={key:0,class:"bimdata-properties__properties__content"},P4t={class:"bimdata-properties__properties__content__searchbar"},I4t={class:"bimdata-properties__properties__content__list"},S4t=["onClick"],T4t={key:0,class:"bimdata-properties__properties__content__list__element__detail"},R4t={class:"bimdata-properties__properties__content__list__element__detail__property__name"},D4t={class:"bimdata-properties__properties__content__list__element__detail__property__value"},_4t={key:0,class:"bimdata-properties__properties__content__list__element__detail"},L4t={class:"bimdata-properties__properties__content__list__element__detail__property__name"},j4t={class:"bimdata-properties__properties__content__list__element__detail__property__value"};function F4t(t,e,i,r,n,o){const s=R("BIMDataSearch"),a=R("BIMDataIconChevron"),l=R("BIMDataEditableLabel"),c=R("BIMDataLoading");return P(),j("div",E4t,[n.displayedElement?(P(),j("div",B4t,[C("div",P4t,[D(s,{modelValue:n.filter,"onUpdate:modelValue":e[0]||(e[0]=d=>n.filter=d),placeholder:t.$t("global.search"),height:"36px",radius:"",width:"100%",color:"primary"},null,8,["modelValue","placeholder"])]),C("div",I4t,[(P(!0),j(mt,null,Xt(n.displayedElement.properties,d=>(P(),j("div",{key:d.id,class:"bimdata-properties__properties__content__list__element"},[C("div",{ref_for:!0,ref:d.ref,class:Be(["bimdata-properties__properties__content__list__element__title",{"bimdata-properties__properties__content__list__element__title--highlighted":d.highlighted}]),onClick:u=>d.displayed=!d.displayed},[C("span",null,Z(d.name+(d.isType?` (${t.$t("properties.property_set_type")})`:"")),1),D(a,{class:"fill-primary",size:"xxxs",rotate:d.displayed?-90:90},null,8,["rotate"])],10,S4t),d.name!==t.$t("properties.classification")?(P(),j(mt,{key:0},[d.displayed?(P(),j("div",T4t,[(P(!0),j(mt,null,Xt(d.children,u=>(P(),j("div",{key:u.id,ref_for:!0,ref:u.ref,class:Be(["bimdata-properties__properties__content__list__element__detail__property",{"bimdata-properties__properties__content__list__element__detail__property--highlighted":u.highlighted}])},[C("div",R4t,[C("span",null,Z(u.name),1)]),C("span",D4t,[D(l,{disabled:n.editLoading,"validate-callback":o.onValidate,"validate-callback-args":[u,d.id,"attributes"],"edit-on-click":i.editAllowed&&!u.nonEditable,"edit-on-right-click":i.editAllowed&&!u.nonEditable,text:u.value,units:u.unit,"value-type":u.valueType},null,8,["disabled","validate-callback","validate-callback-args","edit-on-click","edit-on-right-click","text","units","value-type"])])],2))),128))])):ye("",!0)],64)):(P(),j(mt,{key:1},[d.displayed?(P(),j("div",_4t,[(P(!0),j(mt,null,Xt(d.children,u=>(P(),j("div",{key:u.id,class:Be(["bimdata-properties__properties__content__list__element__detail__property",{"bimdata-properties__properties__content__list__element__detail__property--highlighted":u.highlighted}])},[C("span",L4t,Z(u.name),1),C("span",j4t,Z(u.notation)+" - "+Z(u.title),1)],2))),128))])):ye("",!0)],64))]))),128))])])):ye("",!0),n.loading?(P(),X(c,{key:1})):ye("",!0)])}const O4t=G(x4t,[["render",F4t],["__scopeId","data-v-edab0325"]]);var g_={exports:{}},m_={exports:{}},$te;function q4t(){return $te||($te=1,(function(t,e){Object.defineProperty(e,"__esModule",{value:!0});var i=Ree(),r=l(i),n=sC(),o=l(n),s=Kee(),a=l(s);function l(c){return c&&c.__esModule?c:{default:c}}e.default=(0,a.default)((c,d,u)=>{var h=(0,r.default)(d)?[]:{};c(d,(p,g,f)=>{(0,o.default)(p)((A,...m)=>{m.length<2&&([m]=m),h[g]=m,f(A)})},p=>u(p,h))},3),t.exports=e.default})(m_,m_.exports)),m_.exports}var eie;function U4t(){return eie||(eie=1,(function(t,e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=a;var i=Vee(),r=s(i),n=q4t(),o=s(n);function s(l){return l&&l.__esModule?l:{default:l}}function a(l,c,d){return(0,o.default)((0,r.default)(c),l,d)}t.exports=e.default})(g_,g_.exports)),g_.exports}var N4t=U4t();const H4t=Y6(N4t),tie="Folder";function iie(t){return new Promise(e=>setTimeout(e,t))}async function z4t({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 iie(100),i.remove(),await iie(500)}function V4t(t){const e=[],i=[];for(const r of t)r.type===tie?e.push(r):i.push(r);return{folders:e,documents:i}}function G4t(t,e){const{projectId:i,spaceId:r,accessToken:n,apiUrl:o="https://api.bimdata.io"}=e,s=Q4t(o),{folders:a,documents:l}=V4t(t);let c="";return(a.length>0||l.length>0)&&(c+=`${s}/cloud/${r}/project/${i}?`,c+=`accessToken=${n}&`,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 Q4t(t){const e=new URL(t),i=e.hostname;let r="";const[n,...o]=i.split("."),s=o.join(".");return n.includes("-staging")?r="-staging":n.includes("-next")&&(r="-next"),e.protocol+"//archive"+r+"."+s}async function K4t(t,e={}){try{if(t.length===0)return;let i=null;const r=t[0].name;return t.length===1&&t[0].type!==tie?i=t[0].file:i=G4t(t,e),await z4t({name:r,url:i})}catch(i){throw new Error(i)}}const W4t={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")}}},J4t={class:"bimdata-properties__delete-modal"},Y4t={class:"bimdata-properties__delete-modal__content"},Z4t={class:"bimdata-properties__delete-modal__content__close"},X4t={class:"bimdata-properties__delete-modal__content__title"},$4t={class:"bimdata-properties__delete-modal__content__description"},e5t={class:"bimdata-properties__delete-modal__content__list"},t5t={class:"bimdata-properties__delete-modal__content__footer"};function i5t(t,e,i,r,n,o){const s=R("BIMDataIconClose"),a=R("BIMDataButton"),l=R("BIMDataTextbox");return P(),j("div",J4t,[C("div",Y4t,[C("div",Z4t,[D(a,{color:"primary",ghost:"",rounded:"",icon:"",onClick:o.onCloseClick},{default:H(()=>[D(s,{size:"s"})]),_:1},8,["onClick"])]),C("h2",X4t,Z(t.$t("properties.delete_modal_title")),1),C("div",$4t,Z(t.$t("properties.delete_modal_description"))+" : ",1),C("ul",e5t,[(P(!0),j(mt,null,Xt(i.documents,c=>(P(),j("li",{key:c.id},[D(l,{text:c.name,width:"calc(100% - 40px)"},null,8,["text"])]))),128))]),C("div",t5t,[D(a,{color:"granite",outline:"",radius:"",width:"120px",onClick:o.onCancelClick},{default:H(()=>[lt(Z(t.$t("global.cancel")),1)]),_:1},8,["onClick"]),D(a,{color:"high",fill:"",radius:"",width:"120px",onClick:o.onDeleteClick},{default:H(()=>[lt(Z(t.$t("global.delete")),1)]),_:1},8,["onClick"])])])])}const r5t=G(W4t,[["render",i5t],["__scopeId","data-v-7f2b9947"]]),n5t={components:{BIMDataEmpty:c1},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(o=>o.id),r=await Promise.all(i.map(o=>this.$viewer.api.apiClient.modelApi.getElementLinkedDocuments(t,o,e))),n=Array.from(new Set(r.flat().flatMap(o=>o.element_uuids)));this.elements=this.$viewer.state.getObjectsByUuids(n)}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")}}},o5t={class:"bimdata-properties-linked-element"},s5t={class:"bimdata-properties-linked-element__header"},a5t={class:"bimdata-properties-linked-element__header__text"},l5t={key:0,class:"bimdata-properties-linked-element__list--empty"},c5t={key:1,class:"bimdata-properties-linked-element__list"},d5t=["onClick"],u5t={class:"bimdata-properties-linked-element__list__element__icon"};function h5t(t,e,i,r,n,o){const s=R("BIMDataIconArrow"),a=R("BIMDataButton"),l=R("BIMDataSearch"),c=R("BIMDataIllustration"),d=R("BIMDataEmpty"),u=R("BIMDataIconModel3D"),h=R("BIMDataTextbox"),p=R("BIMDataLoading");return P(),j("div",o5t,[C("div",s5t,[D(a,{color:"primary",ghost:"",radius:"",icon:"",height:"36px",width:"36px",onClick:e[0]||(e[0]=g=>t.$emit("back"))},{default:H(()=>[D(s,{size:"xs"})]),_:1}),C("h4",a5t,Z(t.$t("properties.linked_element_list")),1)]),D(l,{modelValue:n.filter,"onUpdate:modelValue":e[1]||(e[1]=g=>n.filter=g),placeholder:t.$t("global.search"),height:"36px",width:"100%",radius:"",color:"primary",class:"bimdata-properties-linked-element__searchbar"},null,8,["modelValue","placeholder"]),o.emptySearch?(P(),j("div",l5t,[D(d,{message:t.$t("properties.empty_search")},{default:H(()=>[D(c,{name:"emptyProperties"})]),_:1},8,["message"])])):(P(),j("ul",c5t,[(P(!0),j(mt,null,Xt(o.filteredElements,g=>(P(),j("li",{key:g.id,class:"bimdata-properties-linked-element__list__element",onClick:f=>o.onElementClick(g)},[C("div",u5t,[D(u,{size:"xs"})]),D(h,{text:g.name,width:"calc(100% - 18px)"},null,8,["text"])],8,d5t))),128))])),n.loading?(P(),X(p,{key:2})):ye("",!0)])}const p5t=G(n5t,[["render",h5t],["__scopeId","data-v-ca5185fc"]]),f5t={name:"BimdataDocument",components:{BIMDataEmpty:c1,BIMDataGED:yC,DeleteModal:r5t,LinkedElement:p5t},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){if(t?.name?.match?.(/\.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};K4t(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 H4t(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(n=>n.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}}}},g5t={class:"bimdata-properties__documents"},m5t={class:"bimdata-properties__documents__searchbar"},A5t={key:0,class:"bimdata-properties__documents__list"},v5t={class:"bimdata-properties__documents__list__header"},b5t={class:"bimdata-properties__documents__list__header__start"},w5t={key:1,class:"bimdata-properties__documents__list__header__buttons"},y5t={class:"bimdata-properties__documents__list__spacer"},x5t={key:1,class:"bimdata-properties__documents__empty"},C5t={class:"bimdata-properties__documents__selection__buttons"},k5t={key:0,class:"bimdata-properties__documents__selection__buttons__length"};function M5t(t,e,i,r,n,o){const s=R("LinkedElement"),a=R("BIMDataIconLinkedDocument"),l=R("BIMDataButton"),c=R("BIMDataSearch"),d=R("BIMDataCheckbox"),u=R("BIMDataIconDelete"),h=R("BIMDataIconDownload"),p=R("BIMDataFileIcon"),g=R("BIMDataTextbox"),f=R("BIMDataIconPlus"),A=R("BIMDataIllustration"),m=R("BIMDataEmpty"),b=R("DeleteModal"),v=R("BIMDataGED"),w=R("BIMDataLoading");return P(),j("div",g5t,[i.linkedElementsShown||n.view==="linked"?(P(),X(s,{key:0,onBack:o.onLinkedElementBack,onSelected:o.onLinkedElementSelected},null,8,["onBack","onSelected"])):n.view==="list"?(P(),j(mt,{key:1},[n.documents.length>0?(P(),j(mt,{key:0},[C("div",m5t,[D(l,{icon:"",fill:"",radius:"",height:"36px",width:"36px",onClick:o.onLinkedElementClick},{default:H(()=>[D(a,{class:"fill-primary",size:"m"})]),_:1},8,["onClick"]),D(c,{modelValue:n.filter,"onUpdate:modelValue":e[0]||(e[0]=y=>n.filter=y),placeholder:t.$t("global.search"),height:"36px",radius:"",width:"calc(100% - 42px)",color:"primary"},null,8,["modelValue","placeholder"])]),o.emptySearch?ye("",!0):(P(),j("ul",A5t,[C("li",v5t,[C("div",b5t,[D(d,{"model-value":o.headerCheckboxValue,"onUpdate:modelValue":o.onHeaderCheckboxClick},null,8,["model-value","onUpdate:modelValue"]),n.selectedLineDocuments.length===0?(P(),j(mt,{key:0},[e[2]||(e[2]=C("div",{class:"bimdata-properties__documents__list__spacer"},null,-1)),C("span",null,Z(t.$t("properties.name")),1)],64)):(P(),j("div",w5t,[D(l,{color:"high",ghost:"",radius:"",class:"bimdata-properties__documents__list__header__buttons__delete",onClick:o.onDeleteClick},{default:H(()=>[D(u,{size:"xs",margin:"0 12px 0 0"}),C("span",null,Z(t.$t("global.delete")),1)]),_:1},8,["onClick"]),D(l,{color:"primary",ghost:"",radius:"",class:"bimdata-properties__documents__list__header__buttons__download",onClick:o.onDownloadClick},{default:H(()=>[D(h,{size:"xs",margin:"0 12px 0 0"}),C("span",null,Z(t.$t("global.download")),1)]),_:1},8,["onClick"])]))])]),(P(!0),j(mt,null,Xt(o.filteredDocuments,y=>(P(),j("li",{key:y.id,class:"bimdata-properties__documents__list__element"},[D(d,{"model-value":o.isSelected(y),"onUpdate:modelValue":x=>o.toggleLineDocumentSelection(y)},null,8,["model-value","onUpdate:modelValue"]),C("div",y5t,[D(p,{"file-name":y.name,size:20,onClick:x=>o.toggleLineDocumentSelection(y)},null,8,["file-name","onClick"])]),D(g,{width:"calc(100% - 100px)",text:y.name,onClick:x=>o.onLineDocumentClick(y)},null,8,["text","onClick"])]))),128))])),D(l,{class:"bimdata-properties__documents__list__header__add-button",color:"primary",fill:"",radius:"",icon:"",onClick:o.onAddDocumentClick},{default:H(()=>[D(f,{size:"xxxs"})]),_:1},8,["onClick"]),o.emptySearch?(P(),X(m,{key:1,message:t.$t("properties.empty_search")},{default:H(()=>[D(A,{name:"emptyProperties"})]),_:1},8,["message"])):ye("",!0),n.deleteModalDisplayed?(P(),X(b,{key:2,class:"bimdata-properties__documents__delete-modal",documents:n.selectedLineDocuments,onClose:e[1]||(e[1]=y=>n.deleteModalDisplayed=!1),onValidate:o.onDeleteModalValidate},null,8,["documents","onValidate"])):ye("",!0)],64)):(P(),j("div",x5t,[D(m,{message:t.$t("properties.no_document")},{default:H(()=>[D(A,{name:"emptyProperties"})]),_:1},8,["message"]),D(l,{color:"primary",fill:"",radius:"",width:"296px",class:"bimdata-properties__documents__empty__button",disabled:!i.selectedObject,onClick:o.onFromDMSClick},{default:H(()=>[lt(Z(t.$t("properties.from_dms")),1)]),_:1},8,["disabled","onClick"]),D(l,{color:"primary",fill:"",radius:"",width:"296px",class:"bimdata-properties__documents__empty__button--linked-element",onClick:o.onLinkedElementClick},{default:H(()=>[lt(Z(t.$t("properties.linked_element_list")),1)]),_:1},8,["onClick"])]))],64)):(P(),j(mt,{key:2},[D(v,{ref:"ged",class:"bimdata-properties__documents__ged","header-buttons":!0,"multi-select-mode":!0,"already-selected-ids":o.alreadySelectedIds,onSelectionChange:o.onDocumentSelectionChange},null,8,["already-selected-ids","onSelectionChange"]),C("div",C5t,[D(l,{key:"cancelButton",width:"45%",color:"granite",outline:"",radius:"",onClick:o.onCancelClick},{default:H(()=>[lt(Z(t.$t("global.cancel")),1)]),_:1},8,["onClick"]),D(l,{key:"validateButton",width:"45%",color:"primary",fill:"",radius:"",disabled:n.selectedGEDDocuments.length===0,onClick:o.onValidateSelectionClick},{default:H(()=>[lt(Z(t.$t("properties.validate_selection"))+" ",1),n.selectedGEDDocuments.length>0?(P(),j("div",k5t,Z(n.selectedGEDDocuments.length),1)):ye("",!0)]),_:1},8,["disabled","onClick"])])],64)),n.loading?(P(),X(w,{key:3})):ye("",!0)])}const E5t=G(f5t,[["render",M5t],["__scopeId","data-v-32f0c66a"]]),B5t={key:0,class:"bimdata-properties__bucket"},P5t={key:0,class:"bimdata-properties__bucket__edit-switch"},I5t={class:"bimdata-properties__bucket__selection-list__header"},S5t={class:"bimdata-info-length"},T5t=["onClick"],R5t={class:"bimdata-properties__content"},D5t={__name:"BIMDataProperties",props:{fromWrapper:{type:Boolean,default:!1}},setup(t){const e=Mt("$viewer"),i=Mt("$plugin"),r=t,n=xe("properties"),o=ar(null),s=ar([]),a=xe(!1),l=xe(!1),c=xe(0),d=Je(()=>[{id:1,get label(){return e.i18n.$t("properties.title")}},{id:2,get label(){return e.i18n.$t("properties.technical_documents")}}]),u=Je(()=>o.value?.model.document.user_permission===100),h=Je(()=>e.pluginsCfg[i.name]?.editProperties),p=Je(()=>h.value&&n.value==="properties"&&e.api.permissions.hasModelWritePermission),g=Je(()=>`${l.value?"--content-height: calc(100% - 44px)":"--content-height: calc(100% - 92px)"};
|
|
39
39
|
${p.value?"--bucket-width: calc(100% - 38px)":"--bucket-width: 100%"};
|
|
40
|
-
`),f=Je(()=>s.value.length>0?`${o.value?.name??e.i18n.$t("properties.no_name")}`:e.i18n.$t("properties.no_element"));Rt(c,()=>l.value=!1);const A=()=>{if(r.fromWrapper){const E=e.localContext.pluginComponentInstances.get("viewer3d"),B=[];for(const I of E.loadedIfcIds)for(const S of e.state.modelsMap.get(I).objects)S.selected&&B.push(S);return B}else return e.state.selectedObjects},m=E=>{E.id===1?n.value="properties":n.value="documents"},b=E=>{o.value=E},v=E=>E?.uuid===o.value?.uuid,w=()=>{l.value=!0};let y=Array.from(A());const x=()=>{const E=A();s.value=[],o.value=null,E.length>0&&(s.value=Array.from(E),o.value=s.value.find(B=>B.model!=null&&B.uuid&&!y.some(I=>I.id===B.id))??null,o.value||(o.value=s.value.find(B=>B.model!=null&&B.uuid)??null)),y=Array.from(A())},k=[e.state.hub.on("objects-deselected",x),e.state.hub.on("objects-selected",x)];if(r.fromWrapper)Rt(()=>e.localContext.pluginComponentInstances.get("viewer3d").loadedIfcIds,E=>{c.value=E.length});else{const E=()=>{c.value=e.state.models.length};k.push(e.state.hub.on("ifcs-loaded",E,{getLastEvent:!0}),e.state.hub.on("ifcs-unloaded",E))}return x(),br(()=>{k.forEach(E=>e.state.hub.off(E))}),(E,B)=>{const I=R("BIMDataTabs"),S=R("BIMDataIconEdit"),T=R("BIMDataButton"),_=R("BIMDataTooltip"),O=R("BIMDataTextbox"),N=R("BIMDataDropdownList"),U=R("BIMDataIllustration");return P(),j("div",{class:"bimdata-properties",style:Ee(g.value)},[D(I,{tabs:d.value,"tab-size":"50%",selected:0,class:"bimdata-properties__tabs",onTabSelected:m},null,8,["tabs"]),l.value?ye("",!0):(P(),j("div",B5t,[p.value?(P(),j("div",P5t,[D(_,{text:E.$t("properties.tooltip"),color:"granite-light"},{default:H(()=>[D(T,{class:Be(["bimdata-properties__bucket__edit-switch__button",{active:a.value}]),icon:"",fill:"",radius:"",height:"35px",disabled:!u.value,onClick:B[0]||(B[0]=V=>a.value=!a.value)},{default:H(()=>[D(S,{class:"fill-primary",size:"xs"})]),_:1},8,["class","disabled"])]),_:1},8,["text"])])):ye("",!0),l.value?ye("",!0):(P(),X(N,{key:1,ref:"propertiesHeaderList",class:"bimdata-properties__bucket__selection-list",list:s.value,disabled:s.value.length===0,"per-page":30,"element-key":"id"},{header:H(()=>[C("div",I5t,[C("div",S5t,Z(s.value.length),1),D(O,{text:f.value,tooltip:!1,width:"calc(100% - 42px)"},null,8,["text"])])]),element:H(({element:V,close:Q})=>[C("span",{class:Be({"bimdata-properties__bucket__selection-list--selected":v(V)}),onClick:$=>{Q(),b(V)}},[D(O,{text:V.name||E.$t("properties.no_name"),tooltip:!1},null,8,["text"])],10,T5t)]),_:1},8,["list","disabled"]))])),C("div",R5t,[o.value||n.value==="documents"&&l.value?(P(),j(mt,{key:0},[Ht(D(O4t,{"edit-allowed":a.value,"selected-object":o.value},null,8,["edit-allowed","selected-object"]),[[wi,n.value==="properties"]]),Ht(D(E5t,{"selected-object":o.value,"linked-elements-shown":l.value,onLinkClose:B[1]||(B[1]=V=>l.value=!1)},null,8,["selected-object","linked-elements-shown"]),[[wi,n.value==="documents"]])],64)):(P(),X(c1,{key:1,message:n.value==="properties"?E.$t("properties.new_properties"):E.$t("properties.new_documents")},{footer:H(()=>[n.value==="documents"?(P(),X(T,{key:0,color:"primary",fill:"",radius:"",width:"296px",disabled:c.value===0,onClick:w},{default:H(()=>[lt(Z(E.$t("properties.linked_element_list")),1)]),_:1},8,["disabled"])):ye("",!0)]),default:H(()=>[C("h2",null,Z(n.value==="properties"?E.$t("properties.title"):E.$t("properties.title_secondary")),1),D(U,{name:"emptyProperties"})]),_:1},8,["message"]))])],4)}}},A_=G(D5t,[["__scopeId","data-v-6c18d011"]]),_5t="Eigenschaften",L5t="Ausgabe",j5t="Bitte w\xE4hlen Sie im Modell ein Element aus, um seine Eigenschaften anzuzeigen",F5t="Gegenstand",O5t="Gegenst\xE4nde",q5t="Kein Element ausgew\xE4hlt",U5t="Nicht spezifiziert",N5t="Klassifizierung",H5t="Attribute",z5t="Dokumente",V5t="Bitte w\xE4hlen Sie einen Artikel im Modell aus, damit seine Dokumente angezeigt werden.",G5t="Die Suche liefert keine Erkenntnisse",Q5t="Technische Dokumente",K5t="Kein Dokument",W5t="Datei aus Projekt ausw\xE4hlen",J5t="Die Auswahl best\xE4tigen",Y5t="Dokumente erfolgreich verkn\xFCpft",Z5t="Beim Verkn\xFCpfen der Dokumente ist ein Fehler aufgetreten.",X5t="Beim Aufheben der Verkn\xFCpfung der Dokumente ist ein Fehler aufgetreten.",$5t="Verkn\xFCpfung der Dokumente erfolgreich aufgehoben.",ebt="Name",tbt="Verkn\xFCpfung von Dokumenten aufheben",ibt="Durch diese Aktion wird die Verkn\xFCpfung der folgenden Dokumente aufgehoben.",rbt="Liste verkn\xFCpfter Elemente",nbt="Verkn\xFCpfte Elemente k\xF6nnen nicht abgerufen werden.",obt={CompositionType:"Art der Zusammensetzung",Description:"Beschreibung",Elevation:"Erhebung",LongName:"Vollst\xE4ndiger Name",ObjectType:"Art des Objekts",Representation:"Vertretung",type:"Art",Name:"Name"},sbt="Erwartetes Format:",abt="Typ",v_={title:_5t,tooltip:L5t,new_properties:j5t,object:F5t,objects:O5t,no_element:q5t,no_name:U5t,classification:N5t,attributes:H5t,"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:z5t,new_documents:V5t,empty_search:G5t,technical_documents:Q5t,no_document:K5t,from_dms:W5t,validate_selection:J5t,link_documents_success:Y5t,link_documents_error:Z5t,unlink_documents_error:X5t,unlink_documents_success:$5t,name:ebt,delete_modal_title:tbt,delete_modal_description:ibt,linked_element_list:rbt,linked_documents_error:nbt,attributes_name:obt,"invalid-format":"Ung\xFCltiges Format",requested_format:sbt,property_set_type:abt},lbt="Properties",cbt="Editing",dbt="Please select an element in the model to display its properties",ubt="Object",hbt="Objects",pbt="No element",fbt="Not specified",gbt="Classification",mbt="Attributes",Abt="Documents",vbt="Please select an item in the template to view its documents",bbt="The search did not give any results",wbt="Technical documents",ybt="No document",xbt="From the project's DMS",Cbt="Validate the selection",kbt="Successfully linked documents",Mbt="An error occurred in linking the documents",Ebt="An error occurred while untying the documents",Bbt="Documents successfully untied",Pbt="Name",Ibt="Untie the documents",Sbt="This action will untie the following documents",Tbt="List of related items",Rbt="Unable to retrieve linked items",Dbt={CompositionType:"Type of composition",Description:"Description",Elevation:"Elevation",LongName:"Full name",ObjectType:"Type of object",Representation:"Representation",type:"Type",Name:"Name"},_bt="Expected format:",Lbt="Type",b_={title:lbt,tooltip:cbt,new_properties:dbt,object:ubt,objects:hbt,no_element:pbt,no_name:fbt,classification:gbt,attributes:mbt,"edit-success":"Propertie updated","edit-error":"Impossible to update propertie","get-error":"Error fetching data, you should refresh the page",title_secondary:Abt,new_documents:vbt,empty_search:bbt,technical_documents:wbt,no_document:ybt,from_dms:xbt,validate_selection:Cbt,link_documents_success:kbt,link_documents_error:Mbt,unlink_documents_error:Ebt,unlink_documents_success:Bbt,name:Pbt,delete_modal_title:Ibt,delete_modal_description:Sbt,linked_element_list:Tbt,linked_documents_error:Rbt,attributes_name:Dbt,"invalid-format":"Invalid format",requested_format:_bt,property_set_type:Lbt},jbt="Propiedades",Fbt="Correcci\xF3n",Obt="Seleccione un elemento del modelo para mostrar sus propiedades",qbt="Objeto",Ubt="Objetos",Nbt="Sin elemento",Hbt="No especificado",zbt="Clasificaci\xF3n",Vbt="Atributos",Gbt="Documentos",Qbt="Seleccione un elemento de la plantilla para ver sus documentos",Kbt="La b\xFAsqueda no ha arrojado ning\xFAn resultado",Wbt="Documentos t\xE9cnicos",Jbt="Sin documentos",Ybt="De la GED del proyecto",Zbt="Confirmar la selecci\xF3n",Xbt="Se han vinculado correctamente los documentos",$bt="Se ha producido un error al vincular los documentos",e6t="Se ha producido un error al desvincular los documentos",t6t="Se han desvinculado correctamente los documentos",i6t="Nombre",r6t="Desvincular los documentos",n6t="Esta acci\xF3n desvincular\xE1 los siguientes documentos",o6t="Lista de elementos vinculados",s6t="No se pueden recuperar los elementos vinculados",a6t={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"},l6t="Formato esperado :",c6t="Tipo",rie={title:jbt,tooltip:Fbt,new_properties:Obt,object:qbt,objects:Ubt,no_element:Nbt,no_name:Hbt,classification:zbt,attributes:Vbt,"edit-success":"Propiedad actualizada","edit-error":"Imposible actualizar la propiedad","get-error":"Error al obtener datos, debe actualizar la p\xE1gina",title_secondary:Gbt,new_documents:Qbt,empty_search:Kbt,technical_documents:Wbt,no_document:Jbt,from_dms:Ybt,validate_selection:Zbt,link_documents_success:Xbt,link_documents_error:$bt,unlink_documents_error:e6t,unlink_documents_success:t6t,name:i6t,delete_modal_title:r6t,delete_modal_description:n6t,linked_element_list:o6t,linked_documents_error:s6t,attributes_name:a6t,"invalid-format":"Formato no v\xE1lido",requested_format:l6t,property_set_type:c6t},d6t="Propri\xE9t\xE9s",u6t="\xC9dition",h6t="Veuillez s\xE9lectionner un \xE9l\xE9ment dans le mod\xE8le pour afficher ses propri\xE9t\xE9s",p6t="Objet",f6t="Objets",g6t="Pas d'\xE9l\xE9ment selectionn\xE9",m6t="Non sp\xE9cifi\xE9",A6t="Classification",v6t="Attributs",b6t="Documents",w6t="Veuillez s\xE9lectionner un \xE9l\xE9ment dans le mod\xE8le pour afficher ses documents",y6t="La recherche ne donne aucun r\xE9sultat",x6t="Documents techniques",C6t="Aucun document",k6t="Depuis la GED du projet",M6t="Valider la selection",E6t="Documents li\xE9s avec succ\xE8s",B6t="Une erreur est survenue en liant les documents",P6t="Une erreur est survenue en d\xE9liant les documents",I6t="Documents d\xE9li\xE9s avec succ\xE8s",S6t="Nom",T6t="D\xE9lier les documents",R6t="Cette action va d\xE9lier les documents suivants",D6t="Liste des \xE9l\xE9ments li\xE9s",_6t="Impossible de r\xE9cup\xE9rer les \xE9l\xE9ments li\xE9s",L6t={CompositionType:"Type de composition",Description:"Description",Elevation:"\xC9l\xE9vation",LongName:"Nom complet",ObjectType:"Type d'objet",Representation:"Repr\xE9sentation",type:"Type",Name:"Nom"},j6t="Format attendu :",F6t="Type",w_={title:d6t,tooltip:u6t,new_properties:h6t,object:p6t,objects:f6t,no_element:g6t,no_name:m6t,classification:A6t,attributes:v6t,"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:b6t,new_documents:w6t,empty_search:y6t,technical_documents:x6t,no_document:C6t,from_dms:k6t,validate_selection:M6t,link_documents_success:E6t,link_documents_error:B6t,unlink_documents_error:P6t,unlink_documents_success:I6t,name:S6t,delete_modal_title:T6t,delete_modal_description:R6t,linked_element_list:D6t,linked_documents_error:_6t,attributes_name:L6t,"invalid-format":"Format invalide",requested_format:j6t,property_set_type:F6t},O6t="Propriet\xE0",q6t="Modifica",U6t="Seleziona un elemento nel modello per visualizzare le sue propriet\xE0",N6t="Oggetto",H6t="Oggetti",z6t="Nessun elemento selezionato",V6t="Non specificato",G6t="Classificazione",Q6t="Attributi",K6t="Documenti",W6t="Seleziona un elemento nel modello per visualizzare i relativi documenti",J6t="La ricerca non ha fornito risultati",Y6t="Documenti tecnici",Z6t="Nessun documento",X6t="Dalla GED del progetto",$6t="Conferma la selezione",ewt="Documenti collegati correttamente",twt="Si \xE8 verificato un errore durante il collegamento dei documenti",iwt="Si \xE8 verificato un errore durante lo scollegamento dei documenti",rwt="Documenti scollegati correttamente",nwt="Nome",owt="Scollega i documenti",swt="Questa azione scollegher\xE0 i documenti seguenti",awt="Elenco degli elementi collegati",lwt="Impossibile recuperare gli elementi collegati",cwt={CompositionType:"Tipo di composizione",Description:"Descrizione",Elevation:"Elevazione",LongName:"Nome completo",ObjectType:"Tipo di oggetto",Representation:"Rappresentazione",type:"Tipo",Name:"Nome"},nie={title:O6t,tooltip:q6t,new_properties:U6t,object:N6t,objects:H6t,no_element:z6t,no_name:V6t,classification:G6t,attributes:Q6t,"edit-success":"Propriet\xE0 aggiornata","edit-error":"Impossibile aggiornare la propriet\xE0","get-error":"Impossibile recuperare i dati, aggiorna la pagina",title_secondary:K6t,new_documents:W6t,empty_search:J6t,technical_documents:Y6t,no_document:Z6t,from_dms:X6t,validate_selection:$6t,link_documents_success:ewt,link_documents_error:twt,unlink_documents_error:iwt,unlink_documents_success:rwt,name:nwt,delete_modal_title:owt,delete_modal_description:swt,linked_element_list:awt,linked_documents_error:lwt,attributes_name:cwt},dwt="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",uwt={name:"properties",i18n:{de:v_,en:b_,es:rie,fr:w_,it:nie},component:A_,window:{name:"properties",label:"properties.title",icon:{imgUri:dwt}}},hwt={name:"button-properties",addToWindows:["3d"],i18nTokenPrefix:"properties",i18n:{de:v_,en:b_,es:rie,fr:w_,it:nie},component:A_,button:{position:"left",stance:-1,content:"panel",tooltip:"properties.title",keepOpen:!0,icon:{component:"BIMDataIconList",options:{size:"m"}}}},pwt={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(){const t=this.viewer3d.xeokit,e=this.$viewer.localContext.loadedModels[0];if(!e){setTimeout(()=>this.$close());return}const i=this.$viewer.state.getStoreyFromAbsoluteElevation(e,t.camera.eye[1]);if(i&&i.key!==this.$viewer.localContext.selectedStorey?.key&&this.$viewer.localContext.selectStorey(i),!i)return;const{math:r}=this.viewer3d.xeokitSdk,n=Object.values(t.scene.models).find(g=>g.ifc.id===i.model.id);if(!n)return;const o=new Map(Array.from(Object.values(n.objects)).map(g=>[g.originalSystemId,g])),s=i.objects.map(g=>g.uuid).map(g=>o.get(g)).filter(Boolean),{eye:a}=t.scene.camera;let l=1/0,c=null;for(const g of s){const[f,,A,m,,b]=g.aabb,v={x:(f+m)/2,y:(A+b)/2},w={x:v.x+(m-f)/2,y:v.y+(b-A)/2},y=Math.sqrt((w.x-a[0])**2+(w.y-a[2])**2);y<l&&(l=y,c=w)}if(!c)return;const d=[c.x,c.y],u=r.mulVec2Scalar(r.normalizeVec2(r.subVec2([a[0],a[2]],d,r.vec2())),3),h=[d[0]+u[0],d[1]+u[1]],p=[h[0],i.absoluteElevation+this.viewer3d.STOREY_HEIGHT_CAMERA_OFFSET,h[1]];return t.cameraFlight.flyTo({eye:p,duration:.5}),new Promise(g=>setTimeout(()=>{this.viewer3d.firstPersonView=!0,g()},500))},onClose(){this.viewer3d.firstPersonView=!1}},fwt={},gwt={width:"14",height:"23",viewBox:"0 0 14 23",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function mwt(t,e){return P(),j("svg",gwt,[...e[0]||(e[0]=[C("path",{d:"M7.96154 4.27907C9.12923 4.27907 10.0846 3.31628 10.0846 2.13953C10.0846 0.962791 9.12923 0 7.96154 0C6.79385 0 5.83846 0.962791 5.83846 2.13953C5.83846 3.31628 6.79385 4.27907 7.96154 4.27907ZM4.03385 7.91628L1.06154 23H3.29077L5.20154 14.4419L7.43077 16.5814V23H9.55385V14.9767L7.32461 12.8372L7.96154 9.62791C9.34154 11.2326 11.4646 12.3023 13.8 12.3023V10.1628C11.7831 10.1628 10.0846 9.09302 9.23538 7.59535L8.17385 5.88372C7.74923 5.24186 7.11231 4.81395 6.36923 4.81395C6.05077 4.81395 5.83846 4.92093 5.52 4.92093L0 7.27442V12.3023H2.12308V8.66512L4.03385 7.91628Z",fill:"black"},null,-1)])])}const Awt=G(fwt,[["render",mwt]]),vwt={},bwt={width:"21",height:"23",viewBox:"0 0 21 23",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function wwt(t,e){return P(),j("svg",bwt,[...e[0]||(e[0]=[C("path",{d:"M10.35 0C11.615 0 12.65 1.035 12.65 2.3C12.65 3.565 11.615 4.6 10.35 4.6C9.085 4.6 8.05 3.565 8.05 2.3C8.05 1.035 9.085 0 10.35 0ZM20.7 8.05H13.8V23H11.5V16.1H9.2V23H6.9V8.05H0V5.75H20.7V8.05Z",fill:"black"},null,-1)])])}const ywt=G(vwt,[["render",wwt]]),xwt="First-person view",Cwt={tooltip:xwt},kwt="Vue premi\xE8re personne",Mwt={tooltip:kwt},Ewt={name:"firstPersonView",i18n:{en:Cwt,fr:Mwt},addToWindows:["3d"],component:pwt,button:{tooltip:"firstPersonView.tooltip",position:"right",content:"free",keepOpen:!0,icon:{component:ywt},iconOpen:{component:Awt}}};var Uh=(t=>(t[t.WEBGL_LEGACY=0]="WEBGL_LEGACY",t[t.WEBGL=1]="WEBGL",t[t.WEBGL2=2]="WEBGL2",t))(Uh||{}),oie=(t=>(t[t.UNKNOWN=0]="UNKNOWN",t[t.WEBGL=1]="WEBGL",t[t.CANVAS=2]="CANVAS",t))(oie||{}),kC=(t=>(t[t.COLOR=16384]="COLOR",t[t.DEPTH=256]="DEPTH",t[t.STENCIL=1024]="STENCIL",t))(kC||{}),_i=(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))(_i||{}),Jl=(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))(Jl||{}),ci=(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))(ci||{}),g0=(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))(g0||{}),lr=(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))(lr||{}),MC=(t=>(t[t.FLOAT=0]="FLOAT",t[t.INT=1]="INT",t[t.UINT=2]="UINT",t))(MC||{}),yd=(t=>(t[t.NEAREST=0]="NEAREST",t[t.LINEAR=1]="LINEAR",t))(yd||{}),d1=(t=>(t[t.CLAMP=33071]="CLAMP",t[t.REPEAT=10497]="REPEAT",t[t.MIRRORED_REPEAT=33648]="MIRRORED_REPEAT",t))(d1||{}),Nh=(t=>(t[t.OFF=0]="OFF",t[t.POW2=1]="POW2",t[t.ON=2]="ON",t[t.ON_MANUAL=3]="ON_MANUAL",t))(Nh||{}),bu=(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))(bu||{}),u1=(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))(u1||{}),EC=(t=>(t[t.AUTO=0]="AUTO",t[t.MANUAL=1]="MANUAL",t))(EC||{}),Yl=(t=>(t.LOW="lowp",t.MEDIUM="mediump",t.HIGH="highp",t))(Yl||{}),Wo=(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))(Wo||{}),sie=(t=>(t[t.RED=1]="RED",t[t.GREEN=2]="GREEN",t[t.BLUE=4]="BLUE",t[t.ALPHA=8]="ALPHA",t))(sie||{}),bo=(t=>(t[t.NONE=0]="NONE",t[t.LOW=2]="LOW",t[t.MEDIUM=4]="MEDIUM",t[t.HIGH=8]="HIGH",t))(bo||{}),xd=(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))(xd||{});const m0=2*Math.PI,aie=180/Math.PI,lie=Math.PI/180;var Nr=(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))(Nr||{});let co=class xMe{constructor(e=0,i=0){this.x=0,this.y=0,this.x=e,this.y=i}clone(){return new xMe(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 BC=[new co,new co,new co,new co];let An=class oW{constructor(e=0,i=0,r=0,n=0){this.x=Number(e),this.y=Number(i),this.width=Number(r),this.height=Number(n),this.type=Nr.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 oW(0,0,0,0)}clone(){return new oW(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 E=this.x<e.x?e.x:this.x;if((this.right>e.right?e.right:this.right)<=E)return!1;const B=this.y<e.y?e.y:this.y;return(this.bottom>e.bottom?e.bottom:this.bottom)>B}const r=this.left,n=this.right,o=this.top,s=this.bottom;if(n<=r||s<=o)return!1;const a=BC[0].set(e.left,e.top),l=BC[1].set(e.left,e.bottom),c=BC[2].set(e.right,e.top),d=BC[3].set(e.right,e.bottom);if(c.x<=a.x||l.y<=a.y)return!1;const u=Math.sign(i.a*i.d-i.b*i.c);if(u===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)>=n||Math.max(a.y,l.y,c.y,d.y)<=o||Math.min(a.y,l.y,c.y,d.y)>=s))return!1;const h=u*(l.y-a.y),p=u*(a.x-l.x),g=h*r+p*o,f=h*n+p*o,A=h*r+p*s,m=h*n+p*s;if(Math.max(g,f,A,m)<=h*a.x+p*a.y||Math.min(g,f,A,m)>=h*d.x+p*d.y)return!1;const b=u*(a.y-c.y),v=u*(c.x-a.x),w=b*r+v*o,y=b*n+v*o,x=b*r+v*s,k=b*n+v*s;return!(Math.max(w,y,x,k)<=b*a.x+v*a.y||Math.min(w,y,x,k)>=b*d.x+v*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),n=Math.max(this.y,e.y),o=Math.min(this.y+this.height,e.y+e.height);return this.x=i,this.width=Math.max(r-i,0),this.y=n,this.height=Math.max(o-n,0),this}ceil(e=1,i=.001){const r=Math.ceil((this.x+this.width-i)*e)/e,n=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=n-this.y,this}enlarge(e){const i=Math.min(this.x,e.x),r=Math.max(this.x+this.width,e.x+e.width),n=Math.min(this.y,e.y),o=Math.max(this.y+this.height,e.y+e.height);return this.x=i,this.width=r-i,this.y=n,this.height=o-n,this}toString(){return`[@pixi/math:Rectangle x=${this.x} y=${this.y} width=${this.width} height=${this.height}]`}},y_=class CMe{constructor(e=0,i=0,r=0){this.x=e,this.y=i,this.radius=r,this.type=Nr.CIRC}clone(){return new CMe(this.x,this.y,this.radius)}contains(e,i){if(this.radius<=0)return!1;const r=this.radius*this.radius;let n=this.x-e,o=this.y-i;return n*=n,o*=o,n+o<=r}getBounds(){return new An(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}]`}},x_=class kMe{constructor(e=0,i=0,r=0,n=0){this.x=e,this.y=i,this.width=r,this.height=n,this.type=Nr.ELIP}clone(){return new kMe(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,n=(i-this.y)/this.height;return r*=r,n*=n,r+n<=1}getBounds(){return new An(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}]`}},h1=class MMe{constructor(...e){let i=Array.isArray(e[0])?e[0]:e;if(typeof i[0]!="number"){const r=[];for(let n=0,o=i.length;n<o;n++)r.push(i[n].x,i[n].y);i=r}this.points=i,this.type=Nr.POLY,this.closeStroke=!0}clone(){const e=this.points.slice(),i=new MMe(e);return i.closeStroke=this.closeStroke,i}contains(e,i){let r=!1;const n=this.points.length/2;for(let o=0,s=n-1;o<n;s=o++){const a=this.points[2*o],l=this.points[2*o+1],c=this.points[2*s],d=this.points[2*s+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}`),"")}]`}},C_=class EMe{constructor(e=0,i=0,r=0,n=0,o=20){this.x=e,this.y=i,this.width=r,this.height=n,this.radius=o,this.type=Nr.RREC}clone(){return new EMe(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 n=e-(this.x+r),o=i-(this.y+r);const s=r*r;if(n*n+o*o<=s||(n=e-(this.x+this.width-r),n*n+o*o<=s)||(o=i-(this.y+this.height-r),n*n+o*o<=s)||(n=e-(this.x+r),n*n+o*o<=s))return!0}return!1}toString(){return`[@pixi/math:RoundedRectangle x=${this.x} y=${this.y}width=${this.width} height=${this.height} radius=${this.radius}]`}},qm=class BMe{constructor(e,i,r=0,n=0){this._x=r,this._y=n,this.cb=e,this.scope=i}clone(e=this.cb,i=this.scope){return new BMe(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))}},kr=class SS{constructor(e=1,i=0,r=0,n=1,o=0,s=0){this.array=null,this.a=e,this.b=i,this.c=r,this.d=n,this.tx=o,this.ty=s}fromArray(e){this.a=e[0],this.b=e[1],this.c=e[3],this.d=e[4],this.tx=e[2],this.ty=e[5]}set(e,i,r,n,o,s){return this.a=e,this.b=i,this.c=r,this.d=n,this.tx=o,this.ty=s,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 co;const r=e.x,n=e.y;return i.x=this.a*r+this.c*n+this.tx,i.y=this.b*r+this.d*n+this.ty,i}applyInverse(e,i){i=i||new co;const r=1/(this.a*this.d+this.c*-this.b),n=e.x,o=e.y;return i.x=this.d*r*n+-this.c*r*o+(this.ty*this.c-this.tx*this.d)*r,i.y=this.a*r*o+-this.b*r*n+(-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),n=this.a,o=this.c,s=this.tx;return this.a=n*i-this.b*r,this.b=n*r+this.b*i,this.c=o*i-this.d*r,this.d=o*r+this.d*i,this.tx=s*i-this.ty*r,this.ty=s*r+this.ty*i,this}append(e){const i=this.a,r=this.b,n=this.c,o=this.d;return this.a=e.a*i+e.b*n,this.b=e.a*r+e.b*o,this.c=e.c*i+e.d*n,this.d=e.c*r+e.d*o,this.tx=e.tx*i+e.ty*n+this.tx,this.ty=e.tx*r+e.ty*o+this.ty,this}setTransform(e,i,r,n,o,s,a,l,c){return this.a=Math.cos(a+c)*o,this.b=Math.sin(a+c)*o,this.c=-Math.sin(a-l)*s,this.d=Math.cos(a-l)*s,this.tx=e-(r*this.a+n*this.c),this.ty=i-(r*this.b+n*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,n=this.c;this.a=r*e.a+this.b*e.c,this.b=r*e.b+this.b*e.d,this.c=n*e.a+this.d*e.c,this.d=n*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,n=this.c,o=this.d,s=e.pivot,a=-Math.atan2(-n,o),l=Math.atan2(r,i),c=Math.abs(a+l);return c<1e-5||Math.abs(m0-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(n*n+o*o),e.position.x=this.tx+(s.x*i+s.y*n),e.position.y=this.ty+(s.x*r+s.y*o),e}invert(){const e=this.a,i=this.b,r=this.c,n=this.d,o=this.tx,s=e*n-i*r;return this.a=n/s,this.b=-i/s,this.c=-r/s,this.d=e/s,this.tx=(r*this.ty-n*o)/s,this.ty=-(e*this.ty-i*o)/s,this}identity(){return this.a=1,this.b=0,this.c=0,this.d=1,this.tx=0,this.ty=0,this}clone(){const e=new SS;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 SS}static get TEMP_MATRIX(){return new SS}};const A0=[1,1,0,-1,-1,-1,0,1,1,1,0,-1,-1,-1,0,1],v0=[0,1,1,1,0,-1,-1,-1,0,1,1,1,0,-1,-1,-1],b0=[0,-1,-1,-1,0,1,1,1,0,1,1,1,0,-1,-1,-1],w0=[1,1,0,-1,-1,-1,0,1,-1,-1,0,1,1,1,0,-1],k_=[],cie=[],PC=Math.sign;(function(){for(let t=0;t<16;t++){const e=[];k_.push(e);for(let i=0;i<16;i++){const r=PC(A0[t]*A0[i]+b0[t]*v0[i]),n=PC(v0[t]*A0[i]+w0[t]*v0[i]),o=PC(A0[t]*b0[i]+b0[t]*w0[i]),s=PC(v0[t]*b0[i]+w0[t]*w0[i]);for(let a=0;a<16;a++)if(A0[a]===r&&v0[a]===n&&b0[a]===o&&w0[a]===s){e.push(a);break}}}for(let t=0;t<16;t++){const e=new kr;e.set(A0[t],v0[t],b0[t],w0[t],0,0),cie.push(e)}})();const Xn={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=>A0[t],uY:t=>v0[t],vX:t=>b0[t],vY:t=>w0[t],inv:t=>8&t?15&t:7&-t,add:(t,e)=>k_[t][e],sub:(t,e)=>k_[t][Xn.inv(e)],rotate180:t=>4^t,isVertical:t=>(3&t)==2,byDirection:(t,e)=>2*Math.abs(t)<=Math.abs(e)?e>=0?Xn.S:Xn.N:2*Math.abs(e)<=Math.abs(t)?t>0?Xn.E:Xn.W:e>0?t>0?Xn.SE:Xn.SW:t>0?Xn.NE:Xn.NW,matrixAppendRotationInv:(t,e,i=0,r=0)=>{const n=cie[Xn.inv(e)];n.tx=i,n.ty=r,t.append(n)}},die=class{constructor(){this.worldTransform=new kr,this.localTransform=new kr,this.position=new qm(this.onChange,this,0,0),this.scale=new qm(this.onChange,this,1,1),this.pivot=new qm(this.onChange,this,0,0),this.skew=new qm(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 Um=die;Um.IDENTITY=new die;let Zl=class{constructor(t){this.items=[],this._name=t,this._aliasCount=0}emit(t,e,i,r,n,o,s,a){if(arguments.length>8)throw new Error("max arguments reached");const{name:l,items:c}=this;this._aliasCount++;for(let d=0,u=c.length;d<u;d++)c[d][l](t,e,i,r,n,o,s,a);return c===this.items&&this._aliasCount--,this}ensureNonAliasedItems(){this._aliasCount>0&&this.items.length>1&&(this._aliasCount=0,this.items=this.items.slice(0))}add(t){return t[this._name]&&(this.ensureNonAliasedItems(),this.remove(t),this.items.push(t)),this}remove(t){const e=this.items.indexOf(t);return e!==-1&&(this.ensureNonAliasedItems(),this.items.splice(e,1)),this}contains(t){return this.items.includes(t)}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(Zl.prototype,{dispatch:{value:Zl.prototype.emit},run:{value:Zl.prototype.emit}});const uie={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 M_=/iPhone/i,hie=/iPod/i,pie=/iPad/i,fie=/\biOS-universal(?:.+)Mac\b/i,E_=/\bAndroid(?:.+)Mobile\b/i,gie=/Android/i,Nm=/(?:SD4930UR|\bSilk(?:.+)Mobile\b)/i,IC=/Silk/i,Hh=/Windows Phone/i,mie=/\bWindows(?:.+)ARM\b/i,Aie=/BlackBerry/i,vie=/BB10/i,bie=/Opera Mini/i,wie=/\b(CriOS|Chrome)(?:.+)Mobile/i,yie=/Mobile(?:.+)Firefox\b/i,xie=function(t){return typeof t<"u"&&t.platform==="MacIntel"&&typeof t.maxTouchPoints=="number"&&t.maxTouchPoints>1&&typeof MSStream>"u"};const p1=(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 n=(function(s){return function(a){return a.test(s)}})(i),o={apple:{phone:n(M_)&&!n(Hh),ipod:n(hie),tablet:!n(M_)&&(n(pie)||xie(e))&&!n(Hh),universal:n(fie),device:(n(M_)||n(hie)||n(pie)||n(fie)||xie(e))&&!n(Hh)},amazon:{phone:n(Nm),tablet:!n(Nm)&&n(IC),device:n(Nm)||n(IC)},android:{phone:!n(Hh)&&n(Nm)||!n(Hh)&&n(E_),tablet:!n(Hh)&&!n(Nm)&&!n(E_)&&(n(IC)||n(gie)),device:!n(Hh)&&(n(Nm)||n(IC)||n(E_)||n(gie))||n(/\bokhttp\b/i)},windows:{phone:n(Hh),tablet:n(mie),device:n(Hh)||n(mie)},other:{blackberry:n(Aie),blackberry10:n(vie),opera:n(bie),firefox:n(yie),chrome:n(wie),device:n(Aie)||n(vie)||n(bie)||n(yie)||n(wie)},any:!1,phone:!1,tablet:!1};return o.any=o.apple.device||o.android.device||o.windows.device||o.other.device,o.phone=o.apple.phone||o.android.phone||o.windows.phone,o.tablet=o.apple.tablet||o.android.tablet||o.windows.tablet,o})(globalThis.navigator),Ai={ADAPTER:uie,MIPMAP_TEXTURES:Nh.POW2,ANISOTROPIC_LEVEL:0,RESOLUTION:1,FILTER_RESOLUTION:1,FILTER_MULTISAMPLE:bo.NONE,SPRITE_MAX_TEXTURES:(function(t){let e=!0;if(p1.tablet||p1.phone){if(p1.apple.device){const i=navigator.userAgent.match(/OS (\d+)_(\d+)?/);i&&parseInt(i[1],10)<11&&(e=!1)}if(p1.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:EC.AUTO,GC_MAX_IDLE:3600,GC_MAX_CHECK_COUNT:600,WRAP_MODE:d1.CLAMP,SCALE_MODE:yd.LINEAR,PRECISION_VERTEX:Yl.HIGH,PRECISION_FRAGMENT:p1.apple.device?Yl.HIGH:Yl.MEDIUM,CAN_UPLOAD_SAME_BUFFER:!p1.apple.device,CREATE_IMAGE_BITMAP:!1,ROUND_PIXELS:!1,TARGET_FPMS:.06};var tw=(t=>(t[t.HIGH=25]="HIGH",t[t.NORMAL=0]="NORMAL",t[t.LOW=-25]="LOW",t[t.UTILITY=-50]="UTILITY",t))(tw||{});let B_=class{constructor(t,e=null,i=0,r=!1){this.next=null,this.previous=null,this._destroyed=!1,this.fn=t,this.context=e,this.priority=i,this.once=r}match(t,e=null){return this.fn===t&&this.context===e}emit(t){this.fn&&(this.context?this.fn.call(this.context,t):this.fn(t));const e=this.next;return this.once&&this.destroy(!0),this._destroyed&&(this.next=null),e}connect(t){this.previous=t,t.next&&(t.next.previous=this),this.next=t.next,t.next=this}destroy(t=!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 e=this.next;return this.next=t?null:e,this.previous=null,e}},zh=class zp{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 B_(null,null,1/0),this.deltaMS=1/Ai.TARGET_FPMS,this.elapsedMS=1/Ai.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=tw.NORMAL){return this._addListener(new B_(e,i,r))}addOnce(e,i,r=tw.NORMAL){return this._addListener(new B_(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 o=e-this._lastFrame|0;if(o<this._minElapsedMS)return;this._lastFrame=e-o%this._minElapsedMS}this.deltaMS=i,this.deltaTime=this.deltaMS*Ai.TARGET_FPMS;const r=this._head;let n=r.next;for(;n;)n=n.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,Ai.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(!zp._shared){const e=zp._shared=new zp;e.autoStart=!0,e._protected=!0}return zp._shared}static get system(){if(!zp._system){const e=zp._system=new zp;e.autoStart=!0,e._protected=!0}return zp._system}};var Mr=(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))(Mr||{});const P_=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},Cie=(t,e)=>P_(t).priority??e,dn={_addHandlers:{},_removeHandlers:{},_queue:{},remove(...t){return t.map(P_).forEach((e=>{e.type.forEach((i=>{var r,n;return(n=(r=this._removeHandlers)[i])==null?void 0:n.call(r,e)}))})),this},add(...t){return t.map(P_).forEach((e=>{e.type.forEach((i=>{const r=this._addHandlers,n=this._queue;r[i]?r[i](e):(n[i]=n[i]||[],n[i].push(e))}))})),this},handle(t,e,i){const r=this._addHandlers,n=this._removeHandlers;if(r[t]||n[t])throw new Error(`Extension type ${t} already has a handler`);r[t]=e,n[t]=i;const o=this._queue;return o[t]&&(o[t].forEach((s=>e(s))),delete o[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(((n,o)=>Cie(o,i)-Cie(n,i))))}),(r=>{const n=e.indexOf(r.ref);n!==-1&&e.splice(n,1)}))}};class I_{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,tw.LOW)},get(){return this._ticker}}),this.stop=()=>{this._ticker.stop()},this.start=()=>{this._ticker.start()},this._ticker=null,this.ticker=e.sharedTicker?zh.shared:new zh,e.autoStart&&this.start()}static destroy(){if(this._ticker){const e=this._ticker;this.ticker=null,e.destroy()}}}I_.extension=Mr.Application,dn.add(I_);var S_=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function kie(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var Mie={exports:{}};(function(t){var e=Object.prototype.hasOwnProperty,i="~";function r(){}function n(l,c,d){this.fn=l,this.context=c,this.once=d||!1}function o(l,c,d,u,h){if(typeof d!="function")throw new TypeError("The listener must be a function");var p=new n(d,u||l,h),g=i?i+c:c;return l._events[g]?l._events[g].fn?l._events[g]=[l._events[g],p]:l._events[g].push(p):(l._events[g]=p,l._eventsCount++),l}function s(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 u=0,h=d.length,p=new Array(h);u<h;u++)p[u]=d[u].fn;return p},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,u,h,p){var g=i?i+l:l;if(!this._events[g])return!1;var f,A,m=this._events[g],b=arguments.length;if(m.fn){switch(m.once&&this.removeListener(l,m.fn,void 0,!0),b){case 1:return m.fn.call(m.context),!0;case 2:return m.fn.call(m.context,c),!0;case 3:return m.fn.call(m.context,c,d),!0;case 4:return m.fn.call(m.context,c,d,u),!0;case 5:return m.fn.call(m.context,c,d,u,h),!0;case 6:return m.fn.call(m.context,c,d,u,h,p),!0}for(A=1,f=new Array(b-1);A<b;A++)f[A-1]=arguments[A];m.fn.apply(m.context,f)}else{var v,w=m.length;for(A=0;A<w;A++)switch(m[A].once&&this.removeListener(l,m[A].fn,void 0,!0),b){case 1:m[A].fn.call(m[A].context);break;case 2:m[A].fn.call(m[A].context,c);break;case 3:m[A].fn.call(m[A].context,c,d);break;case 4:m[A].fn.call(m[A].context,c,d,u);break;default:if(!f)for(v=1,f=new Array(b-1);v<b;v++)f[v-1]=arguments[v];m[A].fn.apply(m[A].context,f)}}return!0},a.prototype.on=function(l,c,d){return o(this,l,c,d,!1)},a.prototype.once=function(l,c,d){return o(this,l,c,d,!0)},a.prototype.removeListener=function(l,c,d,u){var h=i?i+l:l;if(!this._events[h])return this;if(!c)return s(this,h),this;var p=this._events[h];if(p.fn)p.fn===c&&(!u||p.once)&&(!d||p.context===d)&&s(this,h);else{for(var g=0,f=[],A=p.length;g<A;g++)(p[g].fn!==c||u&&!p[g].once||d&&p[g].context!==d)&&f.push(p[g]);f.length?this._events[h]=f.length===1?f[0]:f:s(this,h)}return this},a.prototype.removeAllListeners=function(l){var c;return l?(c=i?i+l:l,this._events[c]&&s(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})(Mie);const iw=kie(Mie.exports);var T_={exports:{}};function SC(t,e,i){i=i||2;var r,n,o,s,a,l,c,d=e&&e.length,u=d?e[0]*i:t.length,h=Eie(t,0,u,i,!0),p=[];if(!h||h.next===h.prev)return p;if(d&&(h=(function(f,A,m,b){var v,w,y,x,k,E=[];for(v=0,w=A.length;v<w;v++)y=A[v]*b,x=v<w-1?A[v+1]*b:f.length,(k=Eie(f,y,x,b,!1))===k.next&&(k.steiner=!0),E.push(_wt(k));for(E.sort(Twt),v=0;v<E.length;v++)m=Rwt(E[v],m);return m})(t,e,h,i)),t.length>80*i){r=o=t[0],n=s=t[1];for(var g=i;g<u;g+=i)(a=t[g])<r&&(r=a),(l=t[g+1])<n&&(n=l),a>o&&(o=a),l>s&&(s=l);c=(c=Math.max(o-r,s-n))!==0?32767/c:0}return rw(h,p,i,r,n,c,0),p}function Eie(t,e,i,r,n){var o,s;if(n===__(t,e,i,r)>0)for(o=e;o<i;o+=r)s=Iie(o,t[o],t[o+1],s);else for(o=i-r;o>=e;o-=r)s=Iie(o,t[o],t[o+1],s);return s&&TC(s,s.next)&&(ow(s),s=s.next),s}function y0(t,e){if(!t)return t;e||(e=t);var i,r=t;do if(i=!1,r.steiner||!TC(r,r.next)&&uo(r.prev,r,r.next)!==0)r=r.next;else{if(ow(r),(r=e=r.prev)===r.next)break;i=!0}while(i||r!==e);return e}function rw(t,e,i,r,n,o,s){if(t){!s&&o&&(function(d,u,h,p){var g=d;do g.z===0&&(g.z=R_(g.x,g.y,u,h,p)),g.prevZ=g.prev,g.nextZ=g.next,g=g.next;while(g!==d);g.prevZ.nextZ=null,g.prevZ=null,(function(f){var A,m,b,v,w,y,x,k,E=1;do{for(m=f,f=null,w=null,y=0;m;){for(y++,b=m,x=0,A=0;A<E&&(x++,b=b.nextZ);A++);for(k=E;x>0||k>0&&b;)x!==0&&(k===0||!b||m.z<=b.z)?(v=m,m=m.nextZ,x--):(v=b,b=b.nextZ,k--),w?w.nextZ=v:f=v,v.prevZ=w,w=v;m=b}w.nextZ=null,E*=2}while(y>1)})(g)})(t,r,n,o);for(var a,l,c=t;t.prev!==t.next;)if(a=t.prev,l=t.next,o?Pwt(t,r,n,o):Bwt(t))e.push(a.i/i|0),e.push(t.i/i|0),e.push(l.i/i|0),ow(t),t=l.next,c=l.next;else if((t=l)===c){s?s===1?rw(t=Iwt(y0(t),e,i),e,i,r,n,o,2):s===2&&Swt(t,e,i,r,n,o):rw(y0(t),e,i,r,n,o,1);break}}}function Bwt(t){var e=t.prev,i=t,r=t.next;if(uo(e,i,r)>=0)return!1;for(var n=e.x,o=i.x,s=r.x,a=e.y,l=i.y,c=r.y,d=n<o?n<s?n:s:o<s?o:s,u=a<l?a<c?a:c:l<c?l:c,h=n>o?n>s?n:s:o>s?o:s,p=a>l?a>c?a:c:l>c?l:c,g=r.next;g!==e;){if(g.x>=d&&g.x<=h&&g.y>=u&&g.y<=p&&Hm(n,a,o,l,s,c,g.x,g.y)&&uo(g.prev,g,g.next)>=0)return!1;g=g.next}return!0}function Pwt(t,e,i,r){var n=t.prev,o=t,s=t.next;if(uo(n,o,s)>=0)return!1;for(var a=n.x,l=o.x,c=s.x,d=n.y,u=o.y,h=s.y,p=a<l?a<c?a:c:l<c?l:c,g=d<u?d<h?d:h:u<h?u:h,f=a>l?a>c?a:c:l>c?l:c,A=d>u?d>h?d:h:u>h?u:h,m=R_(p,g,e,i,r),b=R_(f,A,e,i,r),v=t.prevZ,w=t.nextZ;v&&v.z>=m&&w&&w.z<=b;){if(v.x>=p&&v.x<=f&&v.y>=g&&v.y<=A&&v!==n&&v!==s&&Hm(a,d,l,u,c,h,v.x,v.y)&&uo(v.prev,v,v.next)>=0||(v=v.prevZ,w.x>=p&&w.x<=f&&w.y>=g&&w.y<=A&&w!==n&&w!==s&&Hm(a,d,l,u,c,h,w.x,w.y)&&uo(w.prev,w,w.next)>=0))return!1;w=w.nextZ}for(;v&&v.z>=m;){if(v.x>=p&&v.x<=f&&v.y>=g&&v.y<=A&&v!==n&&v!==s&&Hm(a,d,l,u,c,h,v.x,v.y)&&uo(v.prev,v,v.next)>=0)return!1;v=v.prevZ}for(;w&&w.z<=b;){if(w.x>=p&&w.x<=f&&w.y>=g&&w.y<=A&&w!==n&&w!==s&&Hm(a,d,l,u,c,h,w.x,w.y)&&uo(w.prev,w,w.next)>=0)return!1;w=w.nextZ}return!0}function Iwt(t,e,i){var r=t;do{var n=r.prev,o=r.next.next;!TC(n,o)&&Bie(n,r,r.next,o)&&nw(n,o)&&nw(o,n)&&(e.push(n.i/i|0),e.push(r.i/i|0),e.push(o.i/i|0),ow(r),ow(r.next),r=t=o),r=r.next}while(r!==t);return y0(r)}function Swt(t,e,i,r,n,o){var s=t;do{for(var a=s.next.next;a!==s.prev;){if(s.i!==a.i&&Lwt(s,a)){var l=Pie(s,a);return s=y0(s,s.next),l=y0(l,l.next),rw(s,e,i,r,n,o,0),void rw(l,e,i,r,n,o,0)}a=a.next}s=s.next}while(s!==t)}function Twt(t,e){return t.x-e.x}function Rwt(t,e){var i=(function(n,o){var s,a=o,l=n.x,c=n.y,d=-1/0;do{if(c<=a.y&&c>=a.next.y&&a.next.y!==a.y){var u=a.x+(c-a.y)*(a.next.x-a.x)/(a.next.y-a.y);if(u<=l&&u>d&&(d=u,s=a.x<a.next.x?a:a.next,u===l))return s}a=a.next}while(a!==o);if(!s)return null;var h,p=s,g=s.x,f=s.y,A=1/0;a=s;do l>=a.x&&a.x>=g&&l!==a.x&&Hm(c<f?l:d,c,g,f,c<f?d:l,c,a.x,a.y)&&(h=Math.abs(c-a.y)/(l-a.x),nw(a,n)&&(h<A||h===A&&(a.x>s.x||a.x===s.x&&Dwt(s,a)))&&(s=a,A=h)),a=a.next;while(a!==p);return s})(t,e);if(!i)return e;var r=Pie(i,t);return y0(r,r.next),y0(i,i.next)}function Dwt(t,e){return uo(t.prev,t,e.prev)<0&&uo(e.next,t,t.next)<0}function R_(t,e,i,r,n){return(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t=(t-i)*n|0)|t<<8))|t<<4))|t<<2))|t<<1))|(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=(e-r)*n|0)|e<<8))|e<<4))|e<<2))|e<<1))<<1}function _wt(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 Hm(t,e,i,r,n,o,s,a){return(n-s)*(e-a)>=(t-s)*(o-a)&&(t-s)*(r-a)>=(i-s)*(e-a)&&(i-s)*(o-a)>=(n-s)*(r-a)}function Lwt(t,e){return t.next.i!==e.i&&t.prev.i!==e.i&&!(function(i,r){var n=i;do{if(n.i!==i.i&&n.next.i!==i.i&&n.i!==r.i&&n.next.i!==r.i&&Bie(n,n.next,i,r))return!0;n=n.next}while(n!==i);return!1})(t,e)&&(nw(t,e)&&nw(e,t)&&(function(i,r){var n=i,o=!1,s=(i.x+r.x)/2,a=(i.y+r.y)/2;do n.y>a!=n.next.y>a&&n.next.y!==n.y&&s<(n.next.x-n.x)*(a-n.y)/(n.next.y-n.y)+n.x&&(o=!o),n=n.next;while(n!==i);return o})(t,e)&&(uo(t.prev,t,e.prev)||uo(t,e.prev,e))||TC(t,e)&&uo(t.prev,t,t.next)>0&&uo(e.prev,e,e.next)>0)}function uo(t,e,i){return(e.y-t.y)*(i.x-e.x)-(e.x-t.x)*(i.y-e.y)}function TC(t,e){return t.x===e.x&&t.y===e.y}function Bie(t,e,i,r){var n=DC(uo(t,e,i)),o=DC(uo(t,e,r)),s=DC(uo(i,r,t)),a=DC(uo(i,r,e));return!!(n!==o&&s!==a||n===0&&RC(t,i,e)||o===0&&RC(t,r,e)||s===0&&RC(i,t,r)||a===0&&RC(i,e,r))}function RC(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 DC(t){return t>0?1:t<0?-1:0}function nw(t,e){return uo(t.prev,t,t.next)<0?uo(t,e,t.next)>=0&&uo(t,t.prev,e)>=0:uo(t,e,t.prev)<0||uo(t,t.next,e)<0}function Pie(t,e){var i=new D_(t.i,t.x,t.y),r=new D_(e.i,e.x,e.y),n=t.next,o=e.prev;return t.next=e,e.prev=t,i.next=n,n.prev=i,r.next=i,i.prev=r,o.next=r,r.prev=o,r}function Iie(t,e,i,r){var n=new D_(t,e,i);return r?(n.next=r.next,n.prev=r,r.next.prev=n,r.next=n):(n.prev=n,n.next=n),n}function ow(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 D_(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 __(t,e,i,r){for(var n=0,o=e,s=i-r;o<i;o+=r)n+=(t[s]-t[o])*(t[o+1]+t[s+1]),s=o;return n}T_.exports=SC,T_.exports.default=SC,SC.deviation=function(t,e,i,r){var n=e&&e.length,o=n?e[0]*i:t.length,s=Math.abs(__(t,0,o,i));if(n)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;s-=Math.abs(__(t,c,d,i))}var u=0;for(a=0;a<r.length;a+=3){var h=r[a]*i,p=r[a+1]*i,g=r[a+2]*i;u+=Math.abs((t[h]-t[g])*(t[p+1]-t[h+1])-(t[h]-t[p])*(t[g+1]-t[h+1]))}return s===0&&u===0?0:Math.abs((u-s)/s)},SC.flatten=function(t){for(var e=t[0][0].length,i={vertices:[],holes:[],dimensions:e},r=0,n=0;n<t.length;n++){for(var o=0;o<t[n].length;o++)for(var s=0;s<e;s++)i.vertices.push(t[n][o][s]);n>0&&(r+=t[n-1].length,i.holes.push(r))}return i};const L_=kie(T_.exports);var sw,_C,j_={exports:{}};sw=j_,_C=j_.exports,(function(t){var e=_C&&!_C.nodeType&&_C,i=sw&&!sw.nodeType&&sw,r=typeof S_=="object"&&S_;(r.global===r||r.window===r||r.self===r)&&(t=r);var n,o,s=2147483647,a=36,l=1,c=26,d=38,u=700,h=72,p=128,g="-",f=/^xn--/,A=/[^\x20-\x7E]/,m=/[\x2E\u3002\uFF0E\uFF61]/g,b={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},v=a-l,w=Math.floor,y=String.fromCharCode;function x(U){throw RangeError(b[U])}function k(U,V){for(var Q=U.length,$=[];Q--;)$[Q]=V(U[Q]);return $}function E(U,V){var Q=U.split("@"),$="";return Q.length>1&&($=Q[0]+"@",U=Q[1]),$+k((U=U.replace(m,".")).split("."),V).join(".")}function B(U){for(var V,Q,$=[],be=0,ce=U.length;be<ce;)(V=U.charCodeAt(be++))>=55296&&V<=56319&&be<ce?(64512&(Q=U.charCodeAt(be++)))==56320?$.push(((1023&V)<<10)+(1023&Q)+65536):($.push(V),be--):$.push(V);return $}function I(U){return k(U,(function(V){var Q="";return V>65535&&(Q+=y((V-=65536)>>>10&1023|55296),V=56320|1023&V),Q+=y(V)})).join("")}function S(U){return U-48<10?U-22:U-65<26?U-65:U-97<26?U-97:a}function T(U,V){return U+22+75*(U<26)-((V!=0)<<5)}function _(U,V,Q){var $=0;for(U=Q?w(U/u):U>>1,U+=w(U/V);U>v*c>>1;$+=a)U=w(U/v);return w($+(v+1)*U/(U+d))}function O(U){var V,Q,$,be,ce,ke,De,pe,re,ee,se=[],ne=U.length,ge=0,Ae=p,we=h;for((Q=U.lastIndexOf(g))<0&&(Q=0),$=0;$<Q;++$)U.charCodeAt($)>=128&&x("not-basic"),se.push(U.charCodeAt($));for(be=Q>0?Q+1:0;be<ne;){for(ce=ge,ke=1,De=a;be>=ne&&x("invalid-input"),((pe=S(U.charCodeAt(be++)))>=a||pe>w((s-ge)/ke))&&x("overflow"),ge+=pe*ke,!(pe<(re=De<=we?l:De>=we+c?c:De-we));De+=a)ke>w(s/(ee=a-re))&&x("overflow"),ke*=ee;we=_(ge-ce,V=se.length+1,ce==0),w(ge/V)>s-Ae&&x("overflow"),Ae+=w(ge/V),ge%=V,se.splice(ge++,0,Ae)}return I(se)}function N(U){var V,Q,$,be,ce,ke,De,pe,re,ee,se,ne,ge,Ae,we,ze=[];for(ne=(U=B(U)).length,V=p,Q=0,ce=h,ke=0;ke<ne;++ke)(se=U[ke])<128&&ze.push(y(se));for($=be=ze.length,be&&ze.push(g);$<ne;){for(De=s,ke=0;ke<ne;++ke)(se=U[ke])>=V&&se<De&&(De=se);for(De-V>w((s-Q)/(ge=$+1))&&x("overflow"),Q+=(De-V)*ge,V=De,ke=0;ke<ne;++ke)if((se=U[ke])<V&&++Q>s&&x("overflow"),se==V){for(pe=Q,re=a;!(pe<(ee=re<=ce?l:re>=ce+c?c:re-ce));re+=a)we=pe-ee,Ae=a-ee,ze.push(y(T(ee+we%Ae,0))),pe=w(we/Ae);ze.push(y(T(pe,0))),ce=_(Q,ge,$==be),Q=0,++$}++Q,++V}return ze.join("")}if(n={version:"1.3.2",ucs2:{decode:B,encode:I},decode:O,encode:N,toASCII:function(U){return E(U,(function(V){return A.test(V)?"xn--"+N(V):V}))},toUnicode:function(U){return E(U,(function(V){return f.test(V)?O(V.slice(4).toLowerCase()):V}))}},e&&i)if(sw.exports==e)i.exports=n;else for(o in n)n.hasOwnProperty(o)&&(e[o]=n[o]);else t.punycode=n})(S_);var jwt=j_.exports,aw={};function Fwt(t,e){return Object.prototype.hasOwnProperty.call(t,e)}var lw=function(t){switch(typeof t){case"string":return t;case"boolean":return t?"true":"false";case"number":return isFinite(t)?t:"";default:return""}};aw.decode=aw.parse=function(t,e,i,r){e=e||"&",i=i||"=";var n={};if(typeof t!="string"||t.length===0)return n;var o=/\+/g;t=t.split(e);var s=1e3;r&&typeof r.maxKeys=="number"&&(s=r.maxKeys);var a=t.length;s>0&&a>s&&(a=s);for(var l=0;l<a;++l){var c,d,u,h,p=t[l].replace(o,"%20"),g=p.indexOf(i);g>=0?(c=p.substr(0,g),d=p.substr(g+1)):(c=p,d=""),u=decodeURIComponent(c),h=decodeURIComponent(d),Fwt(n,u)?Array.isArray(n[u])?n[u].push(h):n[u]=[n[u],h]:n[u]=h}return n},aw.encode=aw.stringify=function(t,e,i,r){return e=e||"&",i=i||"=",t===null&&(t=void 0),typeof t=="object"?Object.keys(t).map((function(n){var o=encodeURIComponent(lw(n))+i;return Array.isArray(t[n])?t[n].map((function(s){return o+encodeURIComponent(lw(s))})).join(e):o+encodeURIComponent(lw(t[n]))})).join(e):r?encodeURIComponent(lw(r))+i+encodeURIComponent(lw(t)):""};var Owt=jwt,wu={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}},qwt=LC,Uwt=function(t,e){return LC(t,!1,!0).resolve(e)},Nwt=function(t){return wu.isString(t)&&(t=LC(t)),t instanceof Cd?t.format():Cd.prototype.format.call(t)};function Cd(){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 Hwt=/^([a-z0-9.+-]+:)/i,zwt=/:[0-9]*$/,Vwt=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,Gwt=["{","}","|","\\","^","`"].concat(["<",">",'"',"`"," ","\r",`
|
|
40
|
+
`),f=Je(()=>s.value.length>0?`${o.value?.name??e.i18n.$t("properties.no_name")}`:e.i18n.$t("properties.no_element"));Rt(c,()=>l.value=!1);const A=()=>{if(r.fromWrapper){const E=e.localContext.pluginComponentInstances.get("viewer3d"),B=[];for(const I of E.loadedIfcIds)for(const S of e.state.modelsMap.get(I).objects)S.selected&&B.push(S);return B}else return e.state.selectedObjects},m=E=>{E.id===1?n.value="properties":n.value="documents"},b=E=>{o.value=E},v=E=>E?.uuid===o.value?.uuid,w=()=>{l.value=!0};let y=Array.from(A());const x=()=>{const E=A();s.value=[],o.value=null,E.length>0&&(s.value=Array.from(E),o.value=s.value.find(B=>B.model!=null&&B.uuid&&!y.some(I=>I.id===B.id))??null,o.value||(o.value=s.value.find(B=>B.model!=null&&B.uuid)??null)),y=Array.from(A())},k=[e.state.hub.on("objects-deselected",x),e.state.hub.on("objects-selected",x)];if(r.fromWrapper)Rt(()=>e.localContext.pluginComponentInstances.get("viewer3d").loadedIfcIds,E=>{c.value=E.length});else{const E=()=>{c.value=e.state.models.length};k.push(e.state.hub.on("ifcs-loaded",E,{getLastEvent:!0}),e.state.hub.on("ifcs-unloaded",E))}return x(),br(()=>{k.forEach(E=>e.state.hub.off(E))}),(E,B)=>{const I=R("BIMDataTabs"),S=R("BIMDataIconEdit"),T=R("BIMDataButton"),_=R("BIMDataTooltip"),O=R("BIMDataTextbox"),N=R("BIMDataDropdownList"),U=R("BIMDataIllustration");return P(),j("div",{class:"bimdata-properties",style:Ee(g.value)},[D(I,{tabs:d.value,"tab-size":"50%",selected:0,class:"bimdata-properties__tabs",onTabSelected:m},null,8,["tabs"]),l.value?ye("",!0):(P(),j("div",B5t,[p.value?(P(),j("div",P5t,[D(_,{text:E.$t("properties.tooltip"),color:"granite-light"},{default:H(()=>[D(T,{class:Be(["bimdata-properties__bucket__edit-switch__button",{active:a.value}]),icon:"",fill:"",radius:"",height:"35px",disabled:!u.value,onClick:B[0]||(B[0]=V=>a.value=!a.value)},{default:H(()=>[D(S,{class:"fill-primary",size:"xs"})]),_:1},8,["class","disabled"])]),_:1},8,["text"])])):ye("",!0),l.value?ye("",!0):(P(),X(N,{key:1,ref:"propertiesHeaderList",class:"bimdata-properties__bucket__selection-list",list:s.value,disabled:s.value.length===0,"per-page":30,"element-key":"id"},{header:H(()=>[C("div",I5t,[C("div",S5t,Z(s.value.length),1),D(O,{text:f.value,tooltip:!1,width:"calc(100% - 42px)"},null,8,["text"])])]),element:H(({element:V,close:Q})=>[C("span",{class:Be({"bimdata-properties__bucket__selection-list--selected":v(V)}),onClick:$=>{Q(),b(V)}},[D(O,{text:V.name||E.$t("properties.no_name"),tooltip:!1},null,8,["text"])],10,T5t)]),_:1},8,["list","disabled"]))])),C("div",R5t,[o.value||n.value==="documents"&&l.value?(P(),j(mt,{key:0},[Ht(D(O4t,{"edit-allowed":a.value,"selected-object":o.value},null,8,["edit-allowed","selected-object"]),[[wi,n.value==="properties"]]),Ht(D(E5t,{"selected-object":o.value,"linked-elements-shown":l.value,onLinkClose:B[1]||(B[1]=V=>l.value=!1)},null,8,["selected-object","linked-elements-shown"]),[[wi,n.value==="documents"]])],64)):(P(),X(c1,{key:1,message:n.value==="properties"?E.$t("properties.new_properties"):E.$t("properties.new_documents")},{footer:H(()=>[n.value==="documents"?(P(),X(T,{key:0,color:"primary",fill:"",radius:"",width:"296px",disabled:c.value===0,onClick:w},{default:H(()=>[lt(Z(E.$t("properties.linked_element_list")),1)]),_:1},8,["disabled"])):ye("",!0)]),default:H(()=>[C("h2",null,Z(n.value==="properties"?E.$t("properties.title"):E.$t("properties.title_secondary")),1),D(U,{name:"emptyProperties"})]),_:1},8,["message"]))])],4)}}},A_=G(D5t,[["__scopeId","data-v-6c18d011"]]),_5t="Eigenschaften",L5t="Ausgabe",j5t="Bitte w\xE4hlen Sie im Modell ein Element aus, um seine Eigenschaften anzuzeigen",F5t="Gegenstand",O5t="Gegenst\xE4nde",q5t="Kein Element ausgew\xE4hlt",U5t="Nicht spezifiziert",N5t="Klassifizierung",H5t="Attribute",z5t="Dokumente",V5t="Bitte w\xE4hlen Sie einen Artikel im Modell aus, damit seine Dokumente angezeigt werden.",G5t="Die Suche liefert keine Erkenntnisse",Q5t="Technische Dokumente",K5t="Kein Dokument",W5t="Datei aus Projekt ausw\xE4hlen",J5t="Die Auswahl best\xE4tigen",Y5t="Dokumente erfolgreich verkn\xFCpft",Z5t="Beim Verkn\xFCpfen der Dokumente ist ein Fehler aufgetreten.",X5t="Beim Aufheben der Verkn\xFCpfung der Dokumente ist ein Fehler aufgetreten.",$5t="Verkn\xFCpfung der Dokumente erfolgreich aufgehoben.",ebt="Name",tbt="Verkn\xFCpfung von Dokumenten aufheben",ibt="Durch diese Aktion wird die Verkn\xFCpfung der folgenden Dokumente aufgehoben.",rbt="Liste verkn\xFCpfter Elemente",nbt="Verkn\xFCpfte Elemente k\xF6nnen nicht abgerufen werden.",obt={CompositionType:"Art der Zusammensetzung",Description:"Beschreibung",Elevation:"Erhebung",LongName:"Vollst\xE4ndiger Name",ObjectType:"Art des Objekts",Representation:"Vertretung",type:"Art",Name:"Name"},sbt="Erwartetes Format:",abt="Typ",v_={title:_5t,tooltip:L5t,new_properties:j5t,object:F5t,objects:O5t,no_element:q5t,no_name:U5t,classification:N5t,attributes:H5t,"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:z5t,new_documents:V5t,empty_search:G5t,technical_documents:Q5t,no_document:K5t,from_dms:W5t,validate_selection:J5t,link_documents_success:Y5t,link_documents_error:Z5t,unlink_documents_error:X5t,unlink_documents_success:$5t,name:ebt,delete_modal_title:tbt,delete_modal_description:ibt,linked_element_list:rbt,linked_documents_error:nbt,attributes_name:obt,"invalid-format":"Ung\xFCltiges Format",requested_format:sbt,property_set_type:abt},lbt="Properties",cbt="Editing",dbt="Please select an element in the model to display its properties",ubt="Object",hbt="Objects",pbt="No element",fbt="Not specified",gbt="Classification",mbt="Attributes",Abt="Documents",vbt="Please select an item in the template to view its documents",bbt="The search did not give any results",wbt="Technical documents",ybt="No document",xbt="From the project's DMS",Cbt="Validate the selection",kbt="Successfully linked documents",Mbt="An error occurred in linking the documents",Ebt="An error occurred while untying the documents",Bbt="Documents successfully untied",Pbt="Name",Ibt="Untie the documents",Sbt="This action will untie the following documents",Tbt="List of related items",Rbt="Unable to retrieve linked items",Dbt={CompositionType:"Type of composition",Description:"Description",Elevation:"Elevation",LongName:"Full name",ObjectType:"Type of object",Representation:"Representation",type:"Type",Name:"Name"},_bt="Expected format:",Lbt="Type",b_={title:lbt,tooltip:cbt,new_properties:dbt,object:ubt,objects:hbt,no_element:pbt,no_name:fbt,classification:gbt,attributes:mbt,"edit-success":"Propertie updated","edit-error":"Impossible to update propertie","get-error":"Error fetching data, you should refresh the page",title_secondary:Abt,new_documents:vbt,empty_search:bbt,technical_documents:wbt,no_document:ybt,from_dms:xbt,validate_selection:Cbt,link_documents_success:kbt,link_documents_error:Mbt,unlink_documents_error:Ebt,unlink_documents_success:Bbt,name:Pbt,delete_modal_title:Ibt,delete_modal_description:Sbt,linked_element_list:Tbt,linked_documents_error:Rbt,attributes_name:Dbt,"invalid-format":"Invalid format",requested_format:_bt,property_set_type:Lbt},jbt="Propiedades",Fbt="Correcci\xF3n",Obt="Seleccione un elemento del modelo para mostrar sus propiedades",qbt="Objeto",Ubt="Objetos",Nbt="Sin elemento",Hbt="No especificado",zbt="Clasificaci\xF3n",Vbt="Atributos",Gbt="Documentos",Qbt="Seleccione un elemento de la plantilla para ver sus documentos",Kbt="La b\xFAsqueda no ha arrojado ning\xFAn resultado",Wbt="Documentos t\xE9cnicos",Jbt="Sin documentos",Ybt="De la GED del proyecto",Zbt="Confirmar la selecci\xF3n",Xbt="Se han vinculado correctamente los documentos",$bt="Se ha producido un error al vincular los documentos",e6t="Se ha producido un error al desvincular los documentos",t6t="Se han desvinculado correctamente los documentos",i6t="Nombre",r6t="Desvincular los documentos",n6t="Esta acci\xF3n desvincular\xE1 los siguientes documentos",o6t="Lista de elementos vinculados",s6t="No se pueden recuperar los elementos vinculados",a6t={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"},l6t="Formato esperado :",c6t="Tipo",rie={title:jbt,tooltip:Fbt,new_properties:Obt,object:qbt,objects:Ubt,no_element:Nbt,no_name:Hbt,classification:zbt,attributes:Vbt,"edit-success":"Propiedad actualizada","edit-error":"Imposible actualizar la propiedad","get-error":"Error al obtener datos, debe actualizar la p\xE1gina",title_secondary:Gbt,new_documents:Qbt,empty_search:Kbt,technical_documents:Wbt,no_document:Jbt,from_dms:Ybt,validate_selection:Zbt,link_documents_success:Xbt,link_documents_error:$bt,unlink_documents_error:e6t,unlink_documents_success:t6t,name:i6t,delete_modal_title:r6t,delete_modal_description:n6t,linked_element_list:o6t,linked_documents_error:s6t,attributes_name:a6t,"invalid-format":"Formato no v\xE1lido",requested_format:l6t,property_set_type:c6t},d6t="Propri\xE9t\xE9s",u6t="\xC9dition",h6t="Veuillez s\xE9lectionner un \xE9l\xE9ment dans le mod\xE8le pour afficher ses propri\xE9t\xE9s",p6t="Objet",f6t="Objets",g6t="Pas d'\xE9l\xE9ment selectionn\xE9",m6t="Non sp\xE9cifi\xE9",A6t="Classification",v6t="Attributs",b6t="Documents",w6t="Veuillez s\xE9lectionner un \xE9l\xE9ment dans le mod\xE8le pour afficher ses documents",y6t="La recherche ne donne aucun r\xE9sultat",x6t="Documents techniques",C6t="Aucun document",k6t="Depuis la GED du projet",M6t="Valider la selection",E6t="Documents li\xE9s avec succ\xE8s",B6t="Une erreur est survenue en liant les documents",P6t="Une erreur est survenue en d\xE9liant les documents",I6t="Documents d\xE9li\xE9s avec succ\xE8s",S6t="Nom",T6t="D\xE9lier les documents",R6t="Cette action va d\xE9lier les documents suivants",D6t="Liste des \xE9l\xE9ments li\xE9s",_6t="Impossible de r\xE9cup\xE9rer les \xE9l\xE9ments li\xE9s",L6t={CompositionType:"Type de composition",Description:"Description",Elevation:"\xC9l\xE9vation",LongName:"Nom complet",ObjectType:"Type d'objet",Representation:"Repr\xE9sentation",type:"Type",Name:"Nom"},j6t="Format attendu :",F6t="Type",w_={title:d6t,tooltip:u6t,new_properties:h6t,object:p6t,objects:f6t,no_element:g6t,no_name:m6t,classification:A6t,attributes:v6t,"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:b6t,new_documents:w6t,empty_search:y6t,technical_documents:x6t,no_document:C6t,from_dms:k6t,validate_selection:M6t,link_documents_success:E6t,link_documents_error:B6t,unlink_documents_error:P6t,unlink_documents_success:I6t,name:S6t,delete_modal_title:T6t,delete_modal_description:R6t,linked_element_list:D6t,linked_documents_error:_6t,attributes_name:L6t,"invalid-format":"Format invalide",requested_format:j6t,property_set_type:F6t},O6t="Propriet\xE0",q6t="Modifica",U6t="Seleziona un elemento nel modello per visualizzare le sue propriet\xE0",N6t="Oggetto",H6t="Oggetti",z6t="Nessun elemento selezionato",V6t="Non specificato",G6t="Classificazione",Q6t="Attributi",K6t="Documenti",W6t="Seleziona un elemento nel modello per visualizzare i relativi documenti",J6t="La ricerca non ha fornito risultati",Y6t="Documenti tecnici",Z6t="Nessun documento",X6t="Dalla GED del progetto",$6t="Conferma la selezione",ewt="Documenti collegati correttamente",twt="Si \xE8 verificato un errore durante il collegamento dei documenti",iwt="Si \xE8 verificato un errore durante lo scollegamento dei documenti",rwt="Documenti scollegati correttamente",nwt="Nome",owt="Scollega i documenti",swt="Questa azione scollegher\xE0 i documenti seguenti",awt="Elenco degli elementi collegati",lwt="Impossibile recuperare gli elementi collegati",cwt={CompositionType:"Tipo di composizione",Description:"Descrizione",Elevation:"Elevazione",LongName:"Nome completo",ObjectType:"Tipo di oggetto",Representation:"Rappresentazione",type:"Tipo",Name:"Nome"},nie={title:O6t,tooltip:q6t,new_properties:U6t,object:N6t,objects:H6t,no_element:z6t,no_name:V6t,classification:G6t,attributes:Q6t,"edit-success":"Propriet\xE0 aggiornata","edit-error":"Impossibile aggiornare la propriet\xE0","get-error":"Impossibile recuperare i dati, aggiorna la pagina",title_secondary:K6t,new_documents:W6t,empty_search:J6t,technical_documents:Y6t,no_document:Z6t,from_dms:X6t,validate_selection:$6t,link_documents_success:ewt,link_documents_error:twt,unlink_documents_error:iwt,unlink_documents_success:rwt,name:nwt,delete_modal_title:owt,delete_modal_description:swt,linked_element_list:awt,linked_documents_error:lwt,attributes_name:cwt},dwt="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",uwt={name:"properties",i18n:{de:v_,en:b_,es:rie,fr:w_,it:nie},component:A_,window:{name:"properties",label:"properties.title",icon:{imgUri:dwt}}},hwt={name:"button-properties",addToWindows:["3d"],i18nTokenPrefix:"properties",i18n:{de:v_,en:b_,es:rie,fr:w_,it:nie},component:A_,button:{position:"left",stance:-1,content:"panel",tooltip:"properties.title",keepOpen:!0,icon:{component:"BIMDataIconList",options:{size:"m"}}}},pwt={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(){const t=this.viewer3d.xeokit,e=this.$viewer.localContext.loadedModels[0];if(!e){setTimeout(()=>this.$close());return}const i=()=>{this.viewer3d.firstPersonView=!0},r=this.$viewer.state.getStoreyFromAbsoluteElevation(e,t.camera.eye[1]);if(r&&r.key!==this.$viewer.localContext.selectedStorey?.key&&this.$viewer.localContext.selectStorey(r),!r){i();return}const{math:n}=this.viewer3d.xeokitSdk,o=Object.values(t.scene.models).find(f=>f.ifc.id===r.model.id);if(!o){i();return}const s=new Map(Array.from(Object.values(o.objects)).map(f=>[f.originalSystemId,f])),a=r.objects.map(f=>f.uuid).map(f=>s.get(f)).filter(Boolean),{eye:l}=t.scene.camera;let c=1/0,d=null;for(const f of a){const[A,,m,b,,v]=f.aabb,w={x:(A+b)/2,y:(m+v)/2},y={x:w.x+(b-A)/2,y:w.y+(v-m)/2},x=Math.sqrt((y.x-l[0])**2+(y.y-l[2])**2);x<c&&(c=x,d=y)}if(!d){i();return}const u=[d.x,d.y],h=n.mulVec2Scalar(n.normalizeVec2(n.subVec2([l[0],l[2]],u,n.vec2())),3),p=[u[0]+h[0],u[1]+h[1]],g=[p[0],r.absoluteElevation+this.viewer3d.STOREY_HEIGHT_CAMERA_OFFSET,p[1]];return t.cameraFlight.flyTo({eye:g,duration:.5}),new Promise(f=>setTimeout(()=>{i(),f()},500))},onClose(){this.viewer3d.firstPersonView=!1}},fwt={},gwt={width:"14",height:"23",viewBox:"0 0 14 23",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function mwt(t,e){return P(),j("svg",gwt,[...e[0]||(e[0]=[C("path",{d:"M7.96154 4.27907C9.12923 4.27907 10.0846 3.31628 10.0846 2.13953C10.0846 0.962791 9.12923 0 7.96154 0C6.79385 0 5.83846 0.962791 5.83846 2.13953C5.83846 3.31628 6.79385 4.27907 7.96154 4.27907ZM4.03385 7.91628L1.06154 23H3.29077L5.20154 14.4419L7.43077 16.5814V23H9.55385V14.9767L7.32461 12.8372L7.96154 9.62791C9.34154 11.2326 11.4646 12.3023 13.8 12.3023V10.1628C11.7831 10.1628 10.0846 9.09302 9.23538 7.59535L8.17385 5.88372C7.74923 5.24186 7.11231 4.81395 6.36923 4.81395C6.05077 4.81395 5.83846 4.92093 5.52 4.92093L0 7.27442V12.3023H2.12308V8.66512L4.03385 7.91628Z",fill:"black"},null,-1)])])}const Awt=G(fwt,[["render",mwt]]),vwt={},bwt={width:"21",height:"23",viewBox:"0 0 21 23",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function wwt(t,e){return P(),j("svg",bwt,[...e[0]||(e[0]=[C("path",{d:"M10.35 0C11.615 0 12.65 1.035 12.65 2.3C12.65 3.565 11.615 4.6 10.35 4.6C9.085 4.6 8.05 3.565 8.05 2.3C8.05 1.035 9.085 0 10.35 0ZM20.7 8.05H13.8V23H11.5V16.1H9.2V23H6.9V8.05H0V5.75H20.7V8.05Z",fill:"black"},null,-1)])])}const ywt=G(vwt,[["render",wwt]]),xwt="First-person view",Cwt={tooltip:xwt},kwt="Vue premi\xE8re personne",Mwt={tooltip:kwt},Ewt={name:"firstPersonView",i18n:{en:Cwt,fr:Mwt},addToWindows:["3d"],component:pwt,button:{tooltip:"firstPersonView.tooltip",position:"right",content:"free",keepOpen:!0,icon:{component:ywt},iconOpen:{component:Awt}}};var Uh=(t=>(t[t.WEBGL_LEGACY=0]="WEBGL_LEGACY",t[t.WEBGL=1]="WEBGL",t[t.WEBGL2=2]="WEBGL2",t))(Uh||{}),oie=(t=>(t[t.UNKNOWN=0]="UNKNOWN",t[t.WEBGL=1]="WEBGL",t[t.CANVAS=2]="CANVAS",t))(oie||{}),kC=(t=>(t[t.COLOR=16384]="COLOR",t[t.DEPTH=256]="DEPTH",t[t.STENCIL=1024]="STENCIL",t))(kC||{}),_i=(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))(_i||{}),Jl=(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))(Jl||{}),ci=(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))(ci||{}),g0=(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))(g0||{}),lr=(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))(lr||{}),MC=(t=>(t[t.FLOAT=0]="FLOAT",t[t.INT=1]="INT",t[t.UINT=2]="UINT",t))(MC||{}),yd=(t=>(t[t.NEAREST=0]="NEAREST",t[t.LINEAR=1]="LINEAR",t))(yd||{}),d1=(t=>(t[t.CLAMP=33071]="CLAMP",t[t.REPEAT=10497]="REPEAT",t[t.MIRRORED_REPEAT=33648]="MIRRORED_REPEAT",t))(d1||{}),Nh=(t=>(t[t.OFF=0]="OFF",t[t.POW2=1]="POW2",t[t.ON=2]="ON",t[t.ON_MANUAL=3]="ON_MANUAL",t))(Nh||{}),bu=(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))(bu||{}),u1=(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))(u1||{}),EC=(t=>(t[t.AUTO=0]="AUTO",t[t.MANUAL=1]="MANUAL",t))(EC||{}),Yl=(t=>(t.LOW="lowp",t.MEDIUM="mediump",t.HIGH="highp",t))(Yl||{}),Wo=(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))(Wo||{}),sie=(t=>(t[t.RED=1]="RED",t[t.GREEN=2]="GREEN",t[t.BLUE=4]="BLUE",t[t.ALPHA=8]="ALPHA",t))(sie||{}),bo=(t=>(t[t.NONE=0]="NONE",t[t.LOW=2]="LOW",t[t.MEDIUM=4]="MEDIUM",t[t.HIGH=8]="HIGH",t))(bo||{}),xd=(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))(xd||{});const m0=2*Math.PI,aie=180/Math.PI,lie=Math.PI/180;var Nr=(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))(Nr||{});let co=class xMe{constructor(e=0,i=0){this.x=0,this.y=0,this.x=e,this.y=i}clone(){return new xMe(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 BC=[new co,new co,new co,new co];let An=class oW{constructor(e=0,i=0,r=0,n=0){this.x=Number(e),this.y=Number(i),this.width=Number(r),this.height=Number(n),this.type=Nr.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 oW(0,0,0,0)}clone(){return new oW(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 E=this.x<e.x?e.x:this.x;if((this.right>e.right?e.right:this.right)<=E)return!1;const B=this.y<e.y?e.y:this.y;return(this.bottom>e.bottom?e.bottom:this.bottom)>B}const r=this.left,n=this.right,o=this.top,s=this.bottom;if(n<=r||s<=o)return!1;const a=BC[0].set(e.left,e.top),l=BC[1].set(e.left,e.bottom),c=BC[2].set(e.right,e.top),d=BC[3].set(e.right,e.bottom);if(c.x<=a.x||l.y<=a.y)return!1;const u=Math.sign(i.a*i.d-i.b*i.c);if(u===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)>=n||Math.max(a.y,l.y,c.y,d.y)<=o||Math.min(a.y,l.y,c.y,d.y)>=s))return!1;const h=u*(l.y-a.y),p=u*(a.x-l.x),g=h*r+p*o,f=h*n+p*o,A=h*r+p*s,m=h*n+p*s;if(Math.max(g,f,A,m)<=h*a.x+p*a.y||Math.min(g,f,A,m)>=h*d.x+p*d.y)return!1;const b=u*(a.y-c.y),v=u*(c.x-a.x),w=b*r+v*o,y=b*n+v*o,x=b*r+v*s,k=b*n+v*s;return!(Math.max(w,y,x,k)<=b*a.x+v*a.y||Math.min(w,y,x,k)>=b*d.x+v*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),n=Math.max(this.y,e.y),o=Math.min(this.y+this.height,e.y+e.height);return this.x=i,this.width=Math.max(r-i,0),this.y=n,this.height=Math.max(o-n,0),this}ceil(e=1,i=.001){const r=Math.ceil((this.x+this.width-i)*e)/e,n=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=n-this.y,this}enlarge(e){const i=Math.min(this.x,e.x),r=Math.max(this.x+this.width,e.x+e.width),n=Math.min(this.y,e.y),o=Math.max(this.y+this.height,e.y+e.height);return this.x=i,this.width=r-i,this.y=n,this.height=o-n,this}toString(){return`[@pixi/math:Rectangle x=${this.x} y=${this.y} width=${this.width} height=${this.height}]`}},y_=class CMe{constructor(e=0,i=0,r=0){this.x=e,this.y=i,this.radius=r,this.type=Nr.CIRC}clone(){return new CMe(this.x,this.y,this.radius)}contains(e,i){if(this.radius<=0)return!1;const r=this.radius*this.radius;let n=this.x-e,o=this.y-i;return n*=n,o*=o,n+o<=r}getBounds(){return new An(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}]`}},x_=class kMe{constructor(e=0,i=0,r=0,n=0){this.x=e,this.y=i,this.width=r,this.height=n,this.type=Nr.ELIP}clone(){return new kMe(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,n=(i-this.y)/this.height;return r*=r,n*=n,r+n<=1}getBounds(){return new An(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}]`}},h1=class MMe{constructor(...e){let i=Array.isArray(e[0])?e[0]:e;if(typeof i[0]!="number"){const r=[];for(let n=0,o=i.length;n<o;n++)r.push(i[n].x,i[n].y);i=r}this.points=i,this.type=Nr.POLY,this.closeStroke=!0}clone(){const e=this.points.slice(),i=new MMe(e);return i.closeStroke=this.closeStroke,i}contains(e,i){let r=!1;const n=this.points.length/2;for(let o=0,s=n-1;o<n;s=o++){const a=this.points[2*o],l=this.points[2*o+1],c=this.points[2*s],d=this.points[2*s+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}`),"")}]`}},C_=class EMe{constructor(e=0,i=0,r=0,n=0,o=20){this.x=e,this.y=i,this.width=r,this.height=n,this.radius=o,this.type=Nr.RREC}clone(){return new EMe(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 n=e-(this.x+r),o=i-(this.y+r);const s=r*r;if(n*n+o*o<=s||(n=e-(this.x+this.width-r),n*n+o*o<=s)||(o=i-(this.y+this.height-r),n*n+o*o<=s)||(n=e-(this.x+r),n*n+o*o<=s))return!0}return!1}toString(){return`[@pixi/math:RoundedRectangle x=${this.x} y=${this.y}width=${this.width} height=${this.height} radius=${this.radius}]`}},qm=class BMe{constructor(e,i,r=0,n=0){this._x=r,this._y=n,this.cb=e,this.scope=i}clone(e=this.cb,i=this.scope){return new BMe(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))}},kr=class SS{constructor(e=1,i=0,r=0,n=1,o=0,s=0){this.array=null,this.a=e,this.b=i,this.c=r,this.d=n,this.tx=o,this.ty=s}fromArray(e){this.a=e[0],this.b=e[1],this.c=e[3],this.d=e[4],this.tx=e[2],this.ty=e[5]}set(e,i,r,n,o,s){return this.a=e,this.b=i,this.c=r,this.d=n,this.tx=o,this.ty=s,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 co;const r=e.x,n=e.y;return i.x=this.a*r+this.c*n+this.tx,i.y=this.b*r+this.d*n+this.ty,i}applyInverse(e,i){i=i||new co;const r=1/(this.a*this.d+this.c*-this.b),n=e.x,o=e.y;return i.x=this.d*r*n+-this.c*r*o+(this.ty*this.c-this.tx*this.d)*r,i.y=this.a*r*o+-this.b*r*n+(-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),n=this.a,o=this.c,s=this.tx;return this.a=n*i-this.b*r,this.b=n*r+this.b*i,this.c=o*i-this.d*r,this.d=o*r+this.d*i,this.tx=s*i-this.ty*r,this.ty=s*r+this.ty*i,this}append(e){const i=this.a,r=this.b,n=this.c,o=this.d;return this.a=e.a*i+e.b*n,this.b=e.a*r+e.b*o,this.c=e.c*i+e.d*n,this.d=e.c*r+e.d*o,this.tx=e.tx*i+e.ty*n+this.tx,this.ty=e.tx*r+e.ty*o+this.ty,this}setTransform(e,i,r,n,o,s,a,l,c){return this.a=Math.cos(a+c)*o,this.b=Math.sin(a+c)*o,this.c=-Math.sin(a-l)*s,this.d=Math.cos(a-l)*s,this.tx=e-(r*this.a+n*this.c),this.ty=i-(r*this.b+n*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,n=this.c;this.a=r*e.a+this.b*e.c,this.b=r*e.b+this.b*e.d,this.c=n*e.a+this.d*e.c,this.d=n*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,n=this.c,o=this.d,s=e.pivot,a=-Math.atan2(-n,o),l=Math.atan2(r,i),c=Math.abs(a+l);return c<1e-5||Math.abs(m0-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(n*n+o*o),e.position.x=this.tx+(s.x*i+s.y*n),e.position.y=this.ty+(s.x*r+s.y*o),e}invert(){const e=this.a,i=this.b,r=this.c,n=this.d,o=this.tx,s=e*n-i*r;return this.a=n/s,this.b=-i/s,this.c=-r/s,this.d=e/s,this.tx=(r*this.ty-n*o)/s,this.ty=-(e*this.ty-i*o)/s,this}identity(){return this.a=1,this.b=0,this.c=0,this.d=1,this.tx=0,this.ty=0,this}clone(){const e=new SS;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 SS}static get TEMP_MATRIX(){return new SS}};const A0=[1,1,0,-1,-1,-1,0,1,1,1,0,-1,-1,-1,0,1],v0=[0,1,1,1,0,-1,-1,-1,0,1,1,1,0,-1,-1,-1],b0=[0,-1,-1,-1,0,1,1,1,0,1,1,1,0,-1,-1,-1],w0=[1,1,0,-1,-1,-1,0,1,-1,-1,0,1,1,1,0,-1],k_=[],cie=[],PC=Math.sign;(function(){for(let t=0;t<16;t++){const e=[];k_.push(e);for(let i=0;i<16;i++){const r=PC(A0[t]*A0[i]+b0[t]*v0[i]),n=PC(v0[t]*A0[i]+w0[t]*v0[i]),o=PC(A0[t]*b0[i]+b0[t]*w0[i]),s=PC(v0[t]*b0[i]+w0[t]*w0[i]);for(let a=0;a<16;a++)if(A0[a]===r&&v0[a]===n&&b0[a]===o&&w0[a]===s){e.push(a);break}}}for(let t=0;t<16;t++){const e=new kr;e.set(A0[t],v0[t],b0[t],w0[t],0,0),cie.push(e)}})();const Xn={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=>A0[t],uY:t=>v0[t],vX:t=>b0[t],vY:t=>w0[t],inv:t=>8&t?15&t:7&-t,add:(t,e)=>k_[t][e],sub:(t,e)=>k_[t][Xn.inv(e)],rotate180:t=>4^t,isVertical:t=>(3&t)==2,byDirection:(t,e)=>2*Math.abs(t)<=Math.abs(e)?e>=0?Xn.S:Xn.N:2*Math.abs(e)<=Math.abs(t)?t>0?Xn.E:Xn.W:e>0?t>0?Xn.SE:Xn.SW:t>0?Xn.NE:Xn.NW,matrixAppendRotationInv:(t,e,i=0,r=0)=>{const n=cie[Xn.inv(e)];n.tx=i,n.ty=r,t.append(n)}},die=class{constructor(){this.worldTransform=new kr,this.localTransform=new kr,this.position=new qm(this.onChange,this,0,0),this.scale=new qm(this.onChange,this,1,1),this.pivot=new qm(this.onChange,this,0,0),this.skew=new qm(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 Um=die;Um.IDENTITY=new die;let Zl=class{constructor(t){this.items=[],this._name=t,this._aliasCount=0}emit(t,e,i,r,n,o,s,a){if(arguments.length>8)throw new Error("max arguments reached");const{name:l,items:c}=this;this._aliasCount++;for(let d=0,u=c.length;d<u;d++)c[d][l](t,e,i,r,n,o,s,a);return c===this.items&&this._aliasCount--,this}ensureNonAliasedItems(){this._aliasCount>0&&this.items.length>1&&(this._aliasCount=0,this.items=this.items.slice(0))}add(t){return t[this._name]&&(this.ensureNonAliasedItems(),this.remove(t),this.items.push(t)),this}remove(t){const e=this.items.indexOf(t);return e!==-1&&(this.ensureNonAliasedItems(),this.items.splice(e,1)),this}contains(t){return this.items.includes(t)}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(Zl.prototype,{dispatch:{value:Zl.prototype.emit},run:{value:Zl.prototype.emit}});const uie={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 M_=/iPhone/i,hie=/iPod/i,pie=/iPad/i,fie=/\biOS-universal(?:.+)Mac\b/i,E_=/\bAndroid(?:.+)Mobile\b/i,gie=/Android/i,Nm=/(?:SD4930UR|\bSilk(?:.+)Mobile\b)/i,IC=/Silk/i,Hh=/Windows Phone/i,mie=/\bWindows(?:.+)ARM\b/i,Aie=/BlackBerry/i,vie=/BB10/i,bie=/Opera Mini/i,wie=/\b(CriOS|Chrome)(?:.+)Mobile/i,yie=/Mobile(?:.+)Firefox\b/i,xie=function(t){return typeof t<"u"&&t.platform==="MacIntel"&&typeof t.maxTouchPoints=="number"&&t.maxTouchPoints>1&&typeof MSStream>"u"};const p1=(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 n=(function(s){return function(a){return a.test(s)}})(i),o={apple:{phone:n(M_)&&!n(Hh),ipod:n(hie),tablet:!n(M_)&&(n(pie)||xie(e))&&!n(Hh),universal:n(fie),device:(n(M_)||n(hie)||n(pie)||n(fie)||xie(e))&&!n(Hh)},amazon:{phone:n(Nm),tablet:!n(Nm)&&n(IC),device:n(Nm)||n(IC)},android:{phone:!n(Hh)&&n(Nm)||!n(Hh)&&n(E_),tablet:!n(Hh)&&!n(Nm)&&!n(E_)&&(n(IC)||n(gie)),device:!n(Hh)&&(n(Nm)||n(IC)||n(E_)||n(gie))||n(/\bokhttp\b/i)},windows:{phone:n(Hh),tablet:n(mie),device:n(Hh)||n(mie)},other:{blackberry:n(Aie),blackberry10:n(vie),opera:n(bie),firefox:n(yie),chrome:n(wie),device:n(Aie)||n(vie)||n(bie)||n(yie)||n(wie)},any:!1,phone:!1,tablet:!1};return o.any=o.apple.device||o.android.device||o.windows.device||o.other.device,o.phone=o.apple.phone||o.android.phone||o.windows.phone,o.tablet=o.apple.tablet||o.android.tablet||o.windows.tablet,o})(globalThis.navigator),Ai={ADAPTER:uie,MIPMAP_TEXTURES:Nh.POW2,ANISOTROPIC_LEVEL:0,RESOLUTION:1,FILTER_RESOLUTION:1,FILTER_MULTISAMPLE:bo.NONE,SPRITE_MAX_TEXTURES:(function(t){let e=!0;if(p1.tablet||p1.phone){if(p1.apple.device){const i=navigator.userAgent.match(/OS (\d+)_(\d+)?/);i&&parseInt(i[1],10)<11&&(e=!1)}if(p1.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:EC.AUTO,GC_MAX_IDLE:3600,GC_MAX_CHECK_COUNT:600,WRAP_MODE:d1.CLAMP,SCALE_MODE:yd.LINEAR,PRECISION_VERTEX:Yl.HIGH,PRECISION_FRAGMENT:p1.apple.device?Yl.HIGH:Yl.MEDIUM,CAN_UPLOAD_SAME_BUFFER:!p1.apple.device,CREATE_IMAGE_BITMAP:!1,ROUND_PIXELS:!1,TARGET_FPMS:.06};var tw=(t=>(t[t.HIGH=25]="HIGH",t[t.NORMAL=0]="NORMAL",t[t.LOW=-25]="LOW",t[t.UTILITY=-50]="UTILITY",t))(tw||{});let B_=class{constructor(t,e=null,i=0,r=!1){this.next=null,this.previous=null,this._destroyed=!1,this.fn=t,this.context=e,this.priority=i,this.once=r}match(t,e=null){return this.fn===t&&this.context===e}emit(t){this.fn&&(this.context?this.fn.call(this.context,t):this.fn(t));const e=this.next;return this.once&&this.destroy(!0),this._destroyed&&(this.next=null),e}connect(t){this.previous=t,t.next&&(t.next.previous=this),this.next=t.next,t.next=this}destroy(t=!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 e=this.next;return this.next=t?null:e,this.previous=null,e}},zh=class zp{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 B_(null,null,1/0),this.deltaMS=1/Ai.TARGET_FPMS,this.elapsedMS=1/Ai.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=tw.NORMAL){return this._addListener(new B_(e,i,r))}addOnce(e,i,r=tw.NORMAL){return this._addListener(new B_(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 o=e-this._lastFrame|0;if(o<this._minElapsedMS)return;this._lastFrame=e-o%this._minElapsedMS}this.deltaMS=i,this.deltaTime=this.deltaMS*Ai.TARGET_FPMS;const r=this._head;let n=r.next;for(;n;)n=n.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,Ai.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(!zp._shared){const e=zp._shared=new zp;e.autoStart=!0,e._protected=!0}return zp._shared}static get system(){if(!zp._system){const e=zp._system=new zp;e.autoStart=!0,e._protected=!0}return zp._system}};var Mr=(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))(Mr||{});const P_=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},Cie=(t,e)=>P_(t).priority??e,dn={_addHandlers:{},_removeHandlers:{},_queue:{},remove(...t){return t.map(P_).forEach((e=>{e.type.forEach((i=>{var r,n;return(n=(r=this._removeHandlers)[i])==null?void 0:n.call(r,e)}))})),this},add(...t){return t.map(P_).forEach((e=>{e.type.forEach((i=>{const r=this._addHandlers,n=this._queue;r[i]?r[i](e):(n[i]=n[i]||[],n[i].push(e))}))})),this},handle(t,e,i){const r=this._addHandlers,n=this._removeHandlers;if(r[t]||n[t])throw new Error(`Extension type ${t} already has a handler`);r[t]=e,n[t]=i;const o=this._queue;return o[t]&&(o[t].forEach((s=>e(s))),delete o[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(((n,o)=>Cie(o,i)-Cie(n,i))))}),(r=>{const n=e.indexOf(r.ref);n!==-1&&e.splice(n,1)}))}};class I_{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,tw.LOW)},get(){return this._ticker}}),this.stop=()=>{this._ticker.stop()},this.start=()=>{this._ticker.start()},this._ticker=null,this.ticker=e.sharedTicker?zh.shared:new zh,e.autoStart&&this.start()}static destroy(){if(this._ticker){const e=this._ticker;this.ticker=null,e.destroy()}}}I_.extension=Mr.Application,dn.add(I_);var S_=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function kie(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var Mie={exports:{}};(function(t){var e=Object.prototype.hasOwnProperty,i="~";function r(){}function n(l,c,d){this.fn=l,this.context=c,this.once=d||!1}function o(l,c,d,u,h){if(typeof d!="function")throw new TypeError("The listener must be a function");var p=new n(d,u||l,h),g=i?i+c:c;return l._events[g]?l._events[g].fn?l._events[g]=[l._events[g],p]:l._events[g].push(p):(l._events[g]=p,l._eventsCount++),l}function s(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 u=0,h=d.length,p=new Array(h);u<h;u++)p[u]=d[u].fn;return p},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,u,h,p){var g=i?i+l:l;if(!this._events[g])return!1;var f,A,m=this._events[g],b=arguments.length;if(m.fn){switch(m.once&&this.removeListener(l,m.fn,void 0,!0),b){case 1:return m.fn.call(m.context),!0;case 2:return m.fn.call(m.context,c),!0;case 3:return m.fn.call(m.context,c,d),!0;case 4:return m.fn.call(m.context,c,d,u),!0;case 5:return m.fn.call(m.context,c,d,u,h),!0;case 6:return m.fn.call(m.context,c,d,u,h,p),!0}for(A=1,f=new Array(b-1);A<b;A++)f[A-1]=arguments[A];m.fn.apply(m.context,f)}else{var v,w=m.length;for(A=0;A<w;A++)switch(m[A].once&&this.removeListener(l,m[A].fn,void 0,!0),b){case 1:m[A].fn.call(m[A].context);break;case 2:m[A].fn.call(m[A].context,c);break;case 3:m[A].fn.call(m[A].context,c,d);break;case 4:m[A].fn.call(m[A].context,c,d,u);break;default:if(!f)for(v=1,f=new Array(b-1);v<b;v++)f[v-1]=arguments[v];m[A].fn.apply(m[A].context,f)}}return!0},a.prototype.on=function(l,c,d){return o(this,l,c,d,!1)},a.prototype.once=function(l,c,d){return o(this,l,c,d,!0)},a.prototype.removeListener=function(l,c,d,u){var h=i?i+l:l;if(!this._events[h])return this;if(!c)return s(this,h),this;var p=this._events[h];if(p.fn)p.fn===c&&(!u||p.once)&&(!d||p.context===d)&&s(this,h);else{for(var g=0,f=[],A=p.length;g<A;g++)(p[g].fn!==c||u&&!p[g].once||d&&p[g].context!==d)&&f.push(p[g]);f.length?this._events[h]=f.length===1?f[0]:f:s(this,h)}return this},a.prototype.removeAllListeners=function(l){var c;return l?(c=i?i+l:l,this._events[c]&&s(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})(Mie);const iw=kie(Mie.exports);var T_={exports:{}};function SC(t,e,i){i=i||2;var r,n,o,s,a,l,c,d=e&&e.length,u=d?e[0]*i:t.length,h=Eie(t,0,u,i,!0),p=[];if(!h||h.next===h.prev)return p;if(d&&(h=(function(f,A,m,b){var v,w,y,x,k,E=[];for(v=0,w=A.length;v<w;v++)y=A[v]*b,x=v<w-1?A[v+1]*b:f.length,(k=Eie(f,y,x,b,!1))===k.next&&(k.steiner=!0),E.push(_wt(k));for(E.sort(Twt),v=0;v<E.length;v++)m=Rwt(E[v],m);return m})(t,e,h,i)),t.length>80*i){r=o=t[0],n=s=t[1];for(var g=i;g<u;g+=i)(a=t[g])<r&&(r=a),(l=t[g+1])<n&&(n=l),a>o&&(o=a),l>s&&(s=l);c=(c=Math.max(o-r,s-n))!==0?32767/c:0}return rw(h,p,i,r,n,c,0),p}function Eie(t,e,i,r,n){var o,s;if(n===__(t,e,i,r)>0)for(o=e;o<i;o+=r)s=Iie(o,t[o],t[o+1],s);else for(o=i-r;o>=e;o-=r)s=Iie(o,t[o],t[o+1],s);return s&&TC(s,s.next)&&(ow(s),s=s.next),s}function y0(t,e){if(!t)return t;e||(e=t);var i,r=t;do if(i=!1,r.steiner||!TC(r,r.next)&&uo(r.prev,r,r.next)!==0)r=r.next;else{if(ow(r),(r=e=r.prev)===r.next)break;i=!0}while(i||r!==e);return e}function rw(t,e,i,r,n,o,s){if(t){!s&&o&&(function(d,u,h,p){var g=d;do g.z===0&&(g.z=R_(g.x,g.y,u,h,p)),g.prevZ=g.prev,g.nextZ=g.next,g=g.next;while(g!==d);g.prevZ.nextZ=null,g.prevZ=null,(function(f){var A,m,b,v,w,y,x,k,E=1;do{for(m=f,f=null,w=null,y=0;m;){for(y++,b=m,x=0,A=0;A<E&&(x++,b=b.nextZ);A++);for(k=E;x>0||k>0&&b;)x!==0&&(k===0||!b||m.z<=b.z)?(v=m,m=m.nextZ,x--):(v=b,b=b.nextZ,k--),w?w.nextZ=v:f=v,v.prevZ=w,w=v;m=b}w.nextZ=null,E*=2}while(y>1)})(g)})(t,r,n,o);for(var a,l,c=t;t.prev!==t.next;)if(a=t.prev,l=t.next,o?Pwt(t,r,n,o):Bwt(t))e.push(a.i/i|0),e.push(t.i/i|0),e.push(l.i/i|0),ow(t),t=l.next,c=l.next;else if((t=l)===c){s?s===1?rw(t=Iwt(y0(t),e,i),e,i,r,n,o,2):s===2&&Swt(t,e,i,r,n,o):rw(y0(t),e,i,r,n,o,1);break}}}function Bwt(t){var e=t.prev,i=t,r=t.next;if(uo(e,i,r)>=0)return!1;for(var n=e.x,o=i.x,s=r.x,a=e.y,l=i.y,c=r.y,d=n<o?n<s?n:s:o<s?o:s,u=a<l?a<c?a:c:l<c?l:c,h=n>o?n>s?n:s:o>s?o:s,p=a>l?a>c?a:c:l>c?l:c,g=r.next;g!==e;){if(g.x>=d&&g.x<=h&&g.y>=u&&g.y<=p&&Hm(n,a,o,l,s,c,g.x,g.y)&&uo(g.prev,g,g.next)>=0)return!1;g=g.next}return!0}function Pwt(t,e,i,r){var n=t.prev,o=t,s=t.next;if(uo(n,o,s)>=0)return!1;for(var a=n.x,l=o.x,c=s.x,d=n.y,u=o.y,h=s.y,p=a<l?a<c?a:c:l<c?l:c,g=d<u?d<h?d:h:u<h?u:h,f=a>l?a>c?a:c:l>c?l:c,A=d>u?d>h?d:h:u>h?u:h,m=R_(p,g,e,i,r),b=R_(f,A,e,i,r),v=t.prevZ,w=t.nextZ;v&&v.z>=m&&w&&w.z<=b;){if(v.x>=p&&v.x<=f&&v.y>=g&&v.y<=A&&v!==n&&v!==s&&Hm(a,d,l,u,c,h,v.x,v.y)&&uo(v.prev,v,v.next)>=0||(v=v.prevZ,w.x>=p&&w.x<=f&&w.y>=g&&w.y<=A&&w!==n&&w!==s&&Hm(a,d,l,u,c,h,w.x,w.y)&&uo(w.prev,w,w.next)>=0))return!1;w=w.nextZ}for(;v&&v.z>=m;){if(v.x>=p&&v.x<=f&&v.y>=g&&v.y<=A&&v!==n&&v!==s&&Hm(a,d,l,u,c,h,v.x,v.y)&&uo(v.prev,v,v.next)>=0)return!1;v=v.prevZ}for(;w&&w.z<=b;){if(w.x>=p&&w.x<=f&&w.y>=g&&w.y<=A&&w!==n&&w!==s&&Hm(a,d,l,u,c,h,w.x,w.y)&&uo(w.prev,w,w.next)>=0)return!1;w=w.nextZ}return!0}function Iwt(t,e,i){var r=t;do{var n=r.prev,o=r.next.next;!TC(n,o)&&Bie(n,r,r.next,o)&&nw(n,o)&&nw(o,n)&&(e.push(n.i/i|0),e.push(r.i/i|0),e.push(o.i/i|0),ow(r),ow(r.next),r=t=o),r=r.next}while(r!==t);return y0(r)}function Swt(t,e,i,r,n,o){var s=t;do{for(var a=s.next.next;a!==s.prev;){if(s.i!==a.i&&Lwt(s,a)){var l=Pie(s,a);return s=y0(s,s.next),l=y0(l,l.next),rw(s,e,i,r,n,o,0),void rw(l,e,i,r,n,o,0)}a=a.next}s=s.next}while(s!==t)}function Twt(t,e){return t.x-e.x}function Rwt(t,e){var i=(function(n,o){var s,a=o,l=n.x,c=n.y,d=-1/0;do{if(c<=a.y&&c>=a.next.y&&a.next.y!==a.y){var u=a.x+(c-a.y)*(a.next.x-a.x)/(a.next.y-a.y);if(u<=l&&u>d&&(d=u,s=a.x<a.next.x?a:a.next,u===l))return s}a=a.next}while(a!==o);if(!s)return null;var h,p=s,g=s.x,f=s.y,A=1/0;a=s;do l>=a.x&&a.x>=g&&l!==a.x&&Hm(c<f?l:d,c,g,f,c<f?d:l,c,a.x,a.y)&&(h=Math.abs(c-a.y)/(l-a.x),nw(a,n)&&(h<A||h===A&&(a.x>s.x||a.x===s.x&&Dwt(s,a)))&&(s=a,A=h)),a=a.next;while(a!==p);return s})(t,e);if(!i)return e;var r=Pie(i,t);return y0(r,r.next),y0(i,i.next)}function Dwt(t,e){return uo(t.prev,t,e.prev)<0&&uo(e.next,t,t.next)<0}function R_(t,e,i,r,n){return(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t=(t-i)*n|0)|t<<8))|t<<4))|t<<2))|t<<1))|(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=(e-r)*n|0)|e<<8))|e<<4))|e<<2))|e<<1))<<1}function _wt(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 Hm(t,e,i,r,n,o,s,a){return(n-s)*(e-a)>=(t-s)*(o-a)&&(t-s)*(r-a)>=(i-s)*(e-a)&&(i-s)*(o-a)>=(n-s)*(r-a)}function Lwt(t,e){return t.next.i!==e.i&&t.prev.i!==e.i&&!(function(i,r){var n=i;do{if(n.i!==i.i&&n.next.i!==i.i&&n.i!==r.i&&n.next.i!==r.i&&Bie(n,n.next,i,r))return!0;n=n.next}while(n!==i);return!1})(t,e)&&(nw(t,e)&&nw(e,t)&&(function(i,r){var n=i,o=!1,s=(i.x+r.x)/2,a=(i.y+r.y)/2;do n.y>a!=n.next.y>a&&n.next.y!==n.y&&s<(n.next.x-n.x)*(a-n.y)/(n.next.y-n.y)+n.x&&(o=!o),n=n.next;while(n!==i);return o})(t,e)&&(uo(t.prev,t,e.prev)||uo(t,e.prev,e))||TC(t,e)&&uo(t.prev,t,t.next)>0&&uo(e.prev,e,e.next)>0)}function uo(t,e,i){return(e.y-t.y)*(i.x-e.x)-(e.x-t.x)*(i.y-e.y)}function TC(t,e){return t.x===e.x&&t.y===e.y}function Bie(t,e,i,r){var n=DC(uo(t,e,i)),o=DC(uo(t,e,r)),s=DC(uo(i,r,t)),a=DC(uo(i,r,e));return!!(n!==o&&s!==a||n===0&&RC(t,i,e)||o===0&&RC(t,r,e)||s===0&&RC(i,t,r)||a===0&&RC(i,e,r))}function RC(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 DC(t){return t>0?1:t<0?-1:0}function nw(t,e){return uo(t.prev,t,t.next)<0?uo(t,e,t.next)>=0&&uo(t,t.prev,e)>=0:uo(t,e,t.prev)<0||uo(t,t.next,e)<0}function Pie(t,e){var i=new D_(t.i,t.x,t.y),r=new D_(e.i,e.x,e.y),n=t.next,o=e.prev;return t.next=e,e.prev=t,i.next=n,n.prev=i,r.next=i,i.prev=r,o.next=r,r.prev=o,r}function Iie(t,e,i,r){var n=new D_(t,e,i);return r?(n.next=r.next,n.prev=r,r.next.prev=n,r.next=n):(n.prev=n,n.next=n),n}function ow(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 D_(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 __(t,e,i,r){for(var n=0,o=e,s=i-r;o<i;o+=r)n+=(t[s]-t[o])*(t[o+1]+t[s+1]),s=o;return n}T_.exports=SC,T_.exports.default=SC,SC.deviation=function(t,e,i,r){var n=e&&e.length,o=n?e[0]*i:t.length,s=Math.abs(__(t,0,o,i));if(n)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;s-=Math.abs(__(t,c,d,i))}var u=0;for(a=0;a<r.length;a+=3){var h=r[a]*i,p=r[a+1]*i,g=r[a+2]*i;u+=Math.abs((t[h]-t[g])*(t[p+1]-t[h+1])-(t[h]-t[p])*(t[g+1]-t[h+1]))}return s===0&&u===0?0:Math.abs((u-s)/s)},SC.flatten=function(t){for(var e=t[0][0].length,i={vertices:[],holes:[],dimensions:e},r=0,n=0;n<t.length;n++){for(var o=0;o<t[n].length;o++)for(var s=0;s<e;s++)i.vertices.push(t[n][o][s]);n>0&&(r+=t[n-1].length,i.holes.push(r))}return i};const L_=kie(T_.exports);var sw,_C,j_={exports:{}};sw=j_,_C=j_.exports,(function(t){var e=_C&&!_C.nodeType&&_C,i=sw&&!sw.nodeType&&sw,r=typeof S_=="object"&&S_;(r.global===r||r.window===r||r.self===r)&&(t=r);var n,o,s=2147483647,a=36,l=1,c=26,d=38,u=700,h=72,p=128,g="-",f=/^xn--/,A=/[^\x20-\x7E]/,m=/[\x2E\u3002\uFF0E\uFF61]/g,b={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},v=a-l,w=Math.floor,y=String.fromCharCode;function x(U){throw RangeError(b[U])}function k(U,V){for(var Q=U.length,$=[];Q--;)$[Q]=V(U[Q]);return $}function E(U,V){var Q=U.split("@"),$="";return Q.length>1&&($=Q[0]+"@",U=Q[1]),$+k((U=U.replace(m,".")).split("."),V).join(".")}function B(U){for(var V,Q,$=[],be=0,ce=U.length;be<ce;)(V=U.charCodeAt(be++))>=55296&&V<=56319&&be<ce?(64512&(Q=U.charCodeAt(be++)))==56320?$.push(((1023&V)<<10)+(1023&Q)+65536):($.push(V),be--):$.push(V);return $}function I(U){return k(U,(function(V){var Q="";return V>65535&&(Q+=y((V-=65536)>>>10&1023|55296),V=56320|1023&V),Q+=y(V)})).join("")}function S(U){return U-48<10?U-22:U-65<26?U-65:U-97<26?U-97:a}function T(U,V){return U+22+75*(U<26)-((V!=0)<<5)}function _(U,V,Q){var $=0;for(U=Q?w(U/u):U>>1,U+=w(U/V);U>v*c>>1;$+=a)U=w(U/v);return w($+(v+1)*U/(U+d))}function O(U){var V,Q,$,be,ce,ke,De,pe,re,ee,se=[],ne=U.length,ge=0,Ae=p,we=h;for((Q=U.lastIndexOf(g))<0&&(Q=0),$=0;$<Q;++$)U.charCodeAt($)>=128&&x("not-basic"),se.push(U.charCodeAt($));for(be=Q>0?Q+1:0;be<ne;){for(ce=ge,ke=1,De=a;be>=ne&&x("invalid-input"),((pe=S(U.charCodeAt(be++)))>=a||pe>w((s-ge)/ke))&&x("overflow"),ge+=pe*ke,!(pe<(re=De<=we?l:De>=we+c?c:De-we));De+=a)ke>w(s/(ee=a-re))&&x("overflow"),ke*=ee;we=_(ge-ce,V=se.length+1,ce==0),w(ge/V)>s-Ae&&x("overflow"),Ae+=w(ge/V),ge%=V,se.splice(ge++,0,Ae)}return I(se)}function N(U){var V,Q,$,be,ce,ke,De,pe,re,ee,se,ne,ge,Ae,we,ze=[];for(ne=(U=B(U)).length,V=p,Q=0,ce=h,ke=0;ke<ne;++ke)(se=U[ke])<128&&ze.push(y(se));for($=be=ze.length,be&&ze.push(g);$<ne;){for(De=s,ke=0;ke<ne;++ke)(se=U[ke])>=V&&se<De&&(De=se);for(De-V>w((s-Q)/(ge=$+1))&&x("overflow"),Q+=(De-V)*ge,V=De,ke=0;ke<ne;++ke)if((se=U[ke])<V&&++Q>s&&x("overflow"),se==V){for(pe=Q,re=a;!(pe<(ee=re<=ce?l:re>=ce+c?c:re-ce));re+=a)we=pe-ee,Ae=a-ee,ze.push(y(T(ee+we%Ae,0))),pe=w(we/Ae);ze.push(y(T(pe,0))),ce=_(Q,ge,$==be),Q=0,++$}++Q,++V}return ze.join("")}if(n={version:"1.3.2",ucs2:{decode:B,encode:I},decode:O,encode:N,toASCII:function(U){return E(U,(function(V){return A.test(V)?"xn--"+N(V):V}))},toUnicode:function(U){return E(U,(function(V){return f.test(V)?O(V.slice(4).toLowerCase()):V}))}},e&&i)if(sw.exports==e)i.exports=n;else for(o in n)n.hasOwnProperty(o)&&(e[o]=n[o]);else t.punycode=n})(S_);var jwt=j_.exports,aw={};function Fwt(t,e){return Object.prototype.hasOwnProperty.call(t,e)}var lw=function(t){switch(typeof t){case"string":return t;case"boolean":return t?"true":"false";case"number":return isFinite(t)?t:"";default:return""}};aw.decode=aw.parse=function(t,e,i,r){e=e||"&",i=i||"=";var n={};if(typeof t!="string"||t.length===0)return n;var o=/\+/g;t=t.split(e);var s=1e3;r&&typeof r.maxKeys=="number"&&(s=r.maxKeys);var a=t.length;s>0&&a>s&&(a=s);for(var l=0;l<a;++l){var c,d,u,h,p=t[l].replace(o,"%20"),g=p.indexOf(i);g>=0?(c=p.substr(0,g),d=p.substr(g+1)):(c=p,d=""),u=decodeURIComponent(c),h=decodeURIComponent(d),Fwt(n,u)?Array.isArray(n[u])?n[u].push(h):n[u]=[n[u],h]:n[u]=h}return n},aw.encode=aw.stringify=function(t,e,i,r){return e=e||"&",i=i||"=",t===null&&(t=void 0),typeof t=="object"?Object.keys(t).map((function(n){var o=encodeURIComponent(lw(n))+i;return Array.isArray(t[n])?t[n].map((function(s){return o+encodeURIComponent(lw(s))})).join(e):o+encodeURIComponent(lw(t[n]))})).join(e):r?encodeURIComponent(lw(r))+i+encodeURIComponent(lw(t)):""};var Owt=jwt,wu={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}},qwt=LC,Uwt=function(t,e){return LC(t,!1,!0).resolve(e)},Nwt=function(t){return wu.isString(t)&&(t=LC(t)),t instanceof Cd?t.format():Cd.prototype.format.call(t)};function Cd(){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 Hwt=/^([a-z0-9.+-]+:)/i,zwt=/:[0-9]*$/,Vwt=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,Gwt=["{","}","|","\\","^","`"].concat(["<",">",'"',"`"," ","\r",`
|
|
41
41
|
`," "]),F_=["'"].concat(Gwt),Sie=["%","/","?",";","#"].concat(F_),Tie=["/","?","#"],Rie=/^[+a-z0-9A-Z_-]{0,63}$/,Qwt=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,Kwt={javascript:!0,"javascript:":!0},O_={javascript:!0,"javascript:":!0},zm={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},q_=aw;function LC(t,e,i){if(t&&wu.isObject(t)&&t instanceof Cd)return t;var r=new Cd;return r.parse(t,e,i),r}Cd.prototype.parse=function(t,e,i){if(!wu.isString(t))throw new TypeError("Parameter 'url' must be a string, not "+typeof t);var r=t.indexOf("?"),n=r!==-1&&r<t.indexOf("#")?"?":"#",o=t.split(n);o[0]=o[0].replace(/\\/g,"/");var s=t=o.join(n);if(s=s.trim(),!i&&t.split("#").length===1){var a=Vwt.exec(s);if(a)return this.path=s,this.href=s,this.pathname=a[1],a[2]?(this.search=a[2],this.query=e?q_.parse(this.search.substr(1)):this.search.substr(1)):e&&(this.search="",this.query={}),this}var l=Hwt.exec(s);if(l){var c=(l=l[0]).toLowerCase();this.protocol=c,s=s.substr(l.length)}if(i||l||s.match(/^\/\/[^@\/]+@[^@\/]+/)){var d=s.substr(0,2)==="//";d&&(!l||!O_[l])&&(s=s.substr(2),this.slashes=!0)}if(!O_[l]&&(d||l&&!zm[l])){for(var u=-1,h=0;h<Tie.length;h++)(f=s.indexOf(Tie[h]))!==-1&&(u===-1||f<u)&&(u=f);var p,g;for((g=u===-1?s.lastIndexOf("@"):s.lastIndexOf("@",u))!==-1&&(p=s.slice(0,g),s=s.slice(g+1),this.auth=decodeURIComponent(p)),u=-1,h=0;h<Sie.length;h++){var f;(f=s.indexOf(Sie[h]))!==-1&&(u===-1||f<u)&&(u=f)}u===-1&&(u=s.length),this.host=s.slice(0,u),s=s.slice(u),this.parseHost(),this.hostname=this.hostname||"";var A=this.hostname[0]==="["&&this.hostname[this.hostname.length-1]==="]";if(!A)for(var m=this.hostname.split(/\./),b=(h=0,m.length);h<b;h++){var v=m[h];if(v&&!v.match(Rie)){for(var w="",y=0,x=v.length;y<x;y++)v.charCodeAt(y)>127?w+="x":w+=v[y];if(!w.match(Rie)){var k=m.slice(0,h),E=m.slice(h+1),B=v.match(Qwt);B&&(k.push(B[1]),E.unshift(B[2])),E.length&&(s="/"+E.join(".")+s),this.hostname=k.join(".");break}}}this.hostname.length>255?this.hostname="":this.hostname=this.hostname.toLowerCase(),A||(this.hostname=Owt.toASCII(this.hostname));var I=this.port?":"+this.port:"",S=this.hostname||"";this.host=S+I,this.href+=this.host,A&&(this.hostname=this.hostname.substr(1,this.hostname.length-2),s[0]!=="/"&&(s="/"+s))}if(!Kwt[c])for(h=0,b=F_.length;h<b;h++){var T=F_[h];if(s.indexOf(T)!==-1){var _=encodeURIComponent(T);_===T&&(_=escape(T)),s=s.split(T).join(_)}}var O=s.indexOf("#");O!==-1&&(this.hash=s.substr(O),s=s.slice(0,O));var N=s.indexOf("?");if(N!==-1?(this.search=s.substr(N),this.query=s.substr(N+1),e&&(this.query=q_.parse(this.query)),s=s.slice(0,N)):e&&(this.search="",this.query={}),s&&(this.pathname=s),zm[c]&&this.hostname&&!this.pathname&&(this.pathname="/"),this.pathname||this.search){I=this.pathname||"";var U=this.search||"";this.path=I+U}return this.href=this.format(),this},Cd.prototype.format=function(){var t=this.auth||"";t&&(t=(t=encodeURIComponent(t)).replace(/%3A/i,":"),t+="@");var e=this.protocol||"",i=this.pathname||"",r=this.hash||"",n=!1,o="";this.host?n=t+this.host:this.hostname&&(n=t+(this.hostname.indexOf(":")===-1?this.hostname:"["+this.hostname+"]"),this.port&&(n+=":"+this.port)),this.query&&wu.isObject(this.query)&&Object.keys(this.query).length&&(o=q_.stringify(this.query));var s=this.search||o&&"?"+o||"";return e&&e.substr(-1)!==":"&&(e+=":"),this.slashes||(!e||zm[e])&&n!==!1?(n="//"+(n||""),i&&i.charAt(0)!=="/"&&(i="/"+i)):n||(n=""),r&&r.charAt(0)!=="#"&&(r="#"+r),s&&s.charAt(0)!=="?"&&(s="?"+s),e+n+(i=i.replace(/[?#]/g,(function(a){return encodeURIComponent(a)})))+(s=s.replace("#","%23"))+r},Cd.prototype.resolve=function(t){return this.resolveObject(LC(t,!1,!0)).format()},Cd.prototype.resolveObject=function(t){if(wu.isString(t)){var e=new Cd;e.parse(t,!1,!0),t=e}for(var i=new Cd,r=Object.keys(this),n=0;n<r.length;n++){var o=r[n];i[o]=this[o]}if(i.hash=t.hash,t.href==="")return i.href=i.format(),i;if(t.slashes&&!t.protocol){for(var s=Object.keys(t),a=0;a<s.length;a++){var l=s[a];l!=="protocol"&&(i[l]=t[l])}return zm[i.protocol]&&i.hostname&&!i.pathname&&(i.path=i.pathname="/"),i.href=i.format(),i}if(t.protocol&&t.protocol!==i.protocol){if(!zm[t.protocol]){for(var c=Object.keys(t),d=0;d<c.length;d++){var u=c[d];i[u]=t[u]}return i.href=i.format(),i}if(i.protocol=t.protocol,t.host||O_[t.protocol])i.pathname=t.pathname;else{for(var h=(t.pathname||"").split("/");h.length&&!(t.host=h.shift()););t.host||(t.host=""),t.hostname||(t.hostname=""),h[0]!==""&&h.unshift(""),h.length<2&&h.unshift(""),i.pathname=h.join("/")}if(i.search=t.search,i.query=t.query,i.host=t.host||"",i.auth=t.auth,i.hostname=t.hostname||t.host,i.port=t.port,i.pathname||i.search){var p=i.pathname||"",g=i.search||"";i.path=p+g}return i.slashes=i.slashes||t.slashes,i.href=i.format(),i}var f=i.pathname&&i.pathname.charAt(0)==="/",A=t.host||t.pathname&&t.pathname.charAt(0)==="/",m=A||f||i.host&&t.pathname,b=m,v=i.pathname&&i.pathname.split("/")||[],w=(h=t.pathname&&t.pathname.split("/")||[],i.protocol&&!zm[i.protocol]);if(w&&(i.hostname="",i.port=null,i.host&&(v[0]===""?v[0]=i.host:v.unshift(i.host)),i.host="",t.protocol&&(t.hostname=null,t.port=null,t.host&&(h[0]===""?h[0]=t.host:h.unshift(t.host)),t.host=null),m=m&&(h[0]===""||v[0]==="")),A)i.host=t.host||t.host===""?t.host:i.host,i.hostname=t.hostname||t.hostname===""?t.hostname:i.hostname,i.search=t.search,i.query=t.query,v=h;else if(h.length)v||(v=[]),v.pop(),v=v.concat(h),i.search=t.search,i.query=t.query;else if(!wu.isNullOrUndefined(t.search))return w&&(i.hostname=i.host=v.shift(),(B=!!(i.host&&i.host.indexOf("@")>0)&&i.host.split("@"))&&(i.auth=B.shift(),i.host=i.hostname=B.shift())),i.search=t.search,i.query=t.query,(!wu.isNull(i.pathname)||!wu.isNull(i.search))&&(i.path=(i.pathname?i.pathname:"")+(i.search?i.search:"")),i.href=i.format(),i;if(!v.length)return i.pathname=null,i.search?i.path="/"+i.search:i.path=null,i.href=i.format(),i;for(var y=v.slice(-1)[0],x=(i.host||t.host||v.length>1)&&(y==="."||y==="..")||y==="",k=0,E=v.length;E>=0;E--)(y=v[E])==="."?v.splice(E,1):y===".."?(v.splice(E,1),k++):k&&(v.splice(E,1),k--);if(!m&&!b)for(;k--;k)v.unshift("..");m&&v[0]!==""&&(!v[0]||v[0].charAt(0)!=="/")&&v.unshift(""),x&&v.join("/").substr(-1)!=="/"&&v.push("");var B,I=v[0]===""||v[0]&&v[0].charAt(0)==="/";return w&&(i.hostname=i.host=I?"":v.length?v.shift():"",(B=!!(i.host&&i.host.indexOf("@")>0)&&i.host.split("@"))&&(i.auth=B.shift(),i.host=i.hostname=B.shift())),(m=m||i.host&&v.length)&&!I&&v.unshift(""),v.length?i.pathname=v.join("/"):(i.pathname=null,i.path=null),(!wu.isNull(i.pathname)||!wu.isNull(i.search))&&(i.path=(i.pathname?i.pathname:"")+(i.search?i.search:"")),i.auth=t.auth||i.auth,i.slashes=i.slashes||t.slashes,i.href=i.format(),i},Cd.prototype.parseHost=function(){var t=this.host,e=zwt.exec(t);e&&((e=e[0])!==":"&&(this.port=e.substr(1)),t=t.substr(0,t.length-e.length)),t&&(this.hostname=t)};const Die={parse:qwt,format:Nwt,resolve:Uwt};function kd(t){if(typeof t!="string")throw new TypeError(`Path must be a string. Received ${JSON.stringify(t)}`)}function _ie(t){return t.split("?")[0].split("#")[0]}const Lie={toPosix:t=>(function(e,i,r){return e.replace(new RegExp((function(n){return n.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")})(i),"g"),r)})(t,"\\","/"),isUrl(t){return/^https?:/.test(this.toPosix(t))},isDataUrl:t=>/^data:([a-z]+\/[a-z0-9-+.]+(;[a-z0-9-.!#$%*+.{}|~`]+=[a-z0-9-.!#$%*+.{}()_|~`]+)*)?(;base64)?,([a-z0-9!$&',()*+;=\-._~:@\/?%\s<>]*?)$/i.test(t),hasProtocol(t){return/^[^/:]+:\//.test(this.toPosix(t))},getProtocol(t){kd(t),t=this.toPosix(t);let e="";const i=/^file:\/\/\//.exec(t),r=/^[^/:]+:\/\//.exec(t),n=/^[^/:]+:\//.exec(t);if(i||r||n){const o=i?.[0]||r?.[0]||n?.[0];e=o,t=t.slice(o.length)}return e},toAbsolute(t,e,i){if(this.isDataUrl(t))return t;const r=_ie(this.toPosix(e??Ai.ADAPTER.getBaseUrl())),n=_ie(this.toPosix(i??this.rootname(r)));return kd(t),(t=this.toPosix(t)).startsWith("/")?Lie.join(n,t.slice(1)):this.isAbsolute(t)?t:this.join(r,t)},normalize(t){if(kd(t=this.toPosix(t)),t.length===0)return".";let e="";const i=t.startsWith("/");this.hasProtocol(t)&&(e=this.rootname(t),t=t.slice(e.length));const r=t.endsWith("/");return t=(function(n,o){let s,a="",l=0,c=-1,d=0;for(let u=0;u<=n.length;++u){if(u<n.length)s=n.charCodeAt(u);else{if(s===47)break;s=47}if(s===47){if(c!==u-1&&d!==1)if(c!==u-1&&d===2){if(a.length<2||l!==2||a.charCodeAt(a.length-1)!==46||a.charCodeAt(a.length-2)!==46){if(a.length>2){const h=a.lastIndexOf("/");if(h!==a.length-1){h===-1?(a="",l=0):(a=a.slice(0,h),l=a.length-1-a.lastIndexOf("/")),c=u,d=0;continue}}else if(a.length===2||a.length===1){a="",l=0,c=u,d=0;continue}}}else a.length>0?a+=`/${n.slice(c+1,u)}`:a=n.slice(c+1,u),l=u-c-1;c=u,d=0}else s===46&&d!==-1?++d:d=-1}return a})(t),t.length>0&&r&&(t+="/"),i?`/${t}`:e+t},isAbsolute(t){return kd(t),t=this.toPosix(t),!!this.hasProtocol(t)||t.startsWith("/")},join(...t){if(t.length===0)return".";let e;for(let i=0;i<t.length;++i){const r=t[i];if(kd(r),r.length>0)if(e===void 0)e=r;else{const n=t[i-1]??"";this.extname(n)?e+=`/../${r}`:e+=`/${r}`}}return e===void 0?".":this.normalize(e)},dirname(t){if(kd(t),t.length===0)return".";let e=(t=this.toPosix(t)).charCodeAt(0);const i=e===47;let r=-1,n=!0;const o=this.getProtocol(t),s=t;for(let a=(t=t.slice(o.length)).length-1;a>=1;--a)if(e=t.charCodeAt(a),e===47){if(!n){r=a;break}}else n=!1;return r===-1?i?"/":this.isUrl(s)?o+t:o:i&&r===1?"//":o+t.slice(0,r)},rootname(t){kd(t);let e="";if(e=(t=this.toPosix(t)).startsWith("/")?"/":this.getProtocol(t),this.isUrl(t)){const i=t.indexOf("/",e.length);e=i!==-1?t.slice(0,i):t,e.endsWith("/")||(e+="/")}return e},basename(t,e){kd(t),e&&kd(e),t=this.toPosix(t);let i,r=0,n=-1,o=!0;if(e!==void 0&&e.length>0&&e.length<=t.length){if(e.length===t.length&&e===t)return"";let s=e.length-1,a=-1;for(i=t.length-1;i>=0;--i){const l=t.charCodeAt(i);if(l===47){if(!o){r=i+1;break}}else a===-1&&(o=!1,a=i+1),s>=0&&(l===e.charCodeAt(s)?--s==-1&&(n=i):(s=-1,n=a))}return r===n?n=a:n===-1&&(n=t.length),t.slice(r,n)}for(i=t.length-1;i>=0;--i)if(t.charCodeAt(i)===47){if(!o){r=i+1;break}}else n===-1&&(o=!1,n=i+1);return n===-1?"":t.slice(r,n)},extname(t){kd(t);let e=-1,i=0,r=-1,n=!0,o=0;for(let s=(t=this.toPosix(t)).length-1;s>=0;--s){const a=t.charCodeAt(s);if(a!==47)r===-1&&(n=!1,r=s+1),a===46?e===-1?e=s:o!==1&&(o=1):e!==-1&&(o=-1);else if(!n){i=s+1;break}}return e===-1||r===-1||o===0||o===1&&e===r-1&&e===i+1?"":t.slice(e,r)},parse(t){kd(t);const e={root:"",dir:"",base:"",ext:"",name:""};if(t.length===0)return e;let i=(t=this.toPosix(t)).charCodeAt(0);const r=this.isAbsolute(t);let n;e.root=this.rootname(t),n=r||this.hasProtocol(t)?1:0;let o=-1,s=0,a=-1,l=!0,c=t.length-1,d=0;for(;c>=n;--c)if(i=t.charCodeAt(c),i!==47)a===-1&&(l=!1,a=c+1),i===46?o===-1?o=c:d!==1&&(d=1):o!==-1&&(d=-1);else if(!l){s=c+1;break}return o===-1||a===-1||d===0||d===1&&o===a-1&&o===s+1?a!==-1&&(e.base=e.name=s===0&&r?t.slice(1,a):t.slice(s,a)):(s===0&&r?(e.name=t.slice(1,o),e.base=t.slice(1,a)):(e.name=t.slice(s,o),e.base=t.slice(s,a)),e.ext=t.slice(o,a)),e.dir=this.dirname(t),e},sep:"/",delimiter:":"};Ai.RETINA_PREFIX=/@([0-9\.]+)x/,Ai.FAIL_IF_MAJOR_PERFORMANCE_CAVEAT=!1;const jie={};function za(t,e,i=3){if(jie[e])return;let r=new Error().stack;typeof r>"u"?console.warn("PixiJS Deprecation Warning: ",`${e}
|
|
42
42
|
Deprecated since v${t}`):(r=r.split(`
|
|
43
43
|
`).splice(i).join(`
|
|
@@ -6433,7 +6433,7 @@ void main() {
|
|
|
6433
6433
|
--bimdata-local-context-width: ${r.width}px;
|
|
6434
6434
|
--bimdata-local-context-center-width: ${r.centerWidth}px;
|
|
6435
6435
|
--bimdata-local-context-resolution: ${r.resolution};
|
|
6436
|
-
`),onMouseenter:e[0]||(e[0]=(...h)=>r.onMouseEnter&&r.onMouseEnter(...h)),onMouseleave:e[1]||(e[1]=(...h)=>r.onMouseLeave&&r.onMouseLeave(...h))},[D(s,{ref:"modalManagerTemplateRef"},null,512),C("div",Eqi,[r.windowPlugins.leftSidePanel?(P(),X(a,{key:0,plugin:r.windowPlugins.leftSidePanel},null,8,["plugin"])):ye("",!0),C("div",Bqi,[(P(!0),j(mt,null,Xt(r.windowPlugins.free,h=>(P(),X(l,{key:h.name,class:Be({"window-container__content__center__viewer":h.isViewer}),plugin:h},null,8,["class","plugin"]))),128)),D(c,{position:"left",plugins:r.windowPlugins.leftButtonColumn},null,8,["plugins"]),D(c,{position:"right",plugins:r.windowPlugins.rightButtonColumn},null,8,["plugins"])]),r.windowPlugins.rightSidePanel?(P(),X(a,{key:1,plugin:r.windowPlugins.rightSidePanel},null,8,["plugin"])):ye("",!0)]),r.loading?(P(),j("div",Pqi,[r.spinner&&r.spinner.component?(P(),X(Sn(r.spinner.component),kc(Ha({key:0},r.spinner.props)),null,16)):(P(),X(d,{key:1,size:"20px",border:"3px"}))])):ye("",!0),r.layoutSettingsDisplayed?(P(),j("div",Iqi,[D(u)])):ye("",!0)],36)}const Tqi=G(Mqi,[["render",Sqi],["__scopeId","data-v-485f288e"]]);let Rqi=class{constructor(t=!0){const e=bOi(cee,null,{resizable:t});e.registerContent("default",Tqi),this.settings=Qo({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?wOi(t):null}copy(t,e=!0){return yOi(this.areas.layout,t,e)}open({ratio:t,direction:e,insertAfter:i,windowName:r=null,windowState:n=null,localContextId:o=null}={}){const s=r?{options:{windowName:r,windowState:n}}:null;return o===null?this.areas.splitLayout(t,e,i,s):this.areas.split(o,t,e,i,s)}swap(t,e){return this.areas.swap(t,e)}close(t){return this.areas.delete(t)}compare(t,e){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 i=new Set(t.windowState?.modelIds),r=new Set(e.windowState?.modelIds);return i.size===r.size&&[...i].every(n=>r.has(n))}return t.windowName||e.windowName||t.direction!==e.direction||t.children.length!==e.children.length?!1:t.children.every((i,r)=>this.compare(i,e.children[r]))}};const Dqi="2.17.0-beta.1",_qi={version:Dqi};let Lqi=1;class jqi{math=f7t;constructor({plugins:e,api:i,ui:r,locale:n="fr"}){this.instanceId=Lqi++,this.pluginManager=new l_i(e),this.windowManager=new d_i,this.windowManager.registerAndAddPluginsToWindows([...this.pluginManager.registeredPlugins.values()]),this.api=new MFi(i),this.globalContext=new o_e(this),this.state=OFi(this),this.shortcutManager=XEe(this.state),this.uiSettings=r||{},this.i18n=new r_e(n),this._contextMenu=null,this.layout=new Rqi(this.uiSettings.resizable!==!1),this._darkTheme=xe(r?.darkTheme??!1),this.localContext=null,window.$viewer=this}get darkTheme(){return this._darkTheme.value}set darkTheme(e){this._darkTheme.value=e}get version(){return _qi.version}get locale(){return this.i18n.locale}get contextMenu(){return this._contextMenu||YEe}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 Fqi(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 Oqi=Object.freeze({25:"GUEST",50:"USER",100:"ADMIN"}),ub=Object.freeze({READ:"read",WRITE:"write"});function D7e(t){const e={};return t.forEach(i=>{const[r,n]=i.split(":");e[r]?e[r].push(n):e[r]=[n]}),e}const qqi={token_scopes:[],usable_scopes:[],user_role:25};function _7e(t=qqi){const e=D7e(t.token_scopes),i=D7e(t.usable_scopes);return{...uoe(t),tokenScopes:e,usableScopes:i,userRole:Oqi[t.user_role],user:t.user?uoe(t.user):null,hasBcfReadPermission:i.bcf?.includes(ub.READ)??!1,hasBcfWritePermission:i.bcf?.includes(ub.WRITE)??!1,hasModelReadPermission:i.model?.includes(ub.READ)??!1,hasModelWritePermission:i.model?.includes(ub.WRITE)??!1,hasDocReadPermission:i.document?.includes(ub.READ)??!1,hasDocWritePermission:i.document?.includes(ub.WRITE)??!1}}const Uqi={back:"Zur\xFCck",BcfFilters:{filtersButton:"Filter",filtersTitle:"Filter",priorityLabel:"Priorit\xE4t",statusLabel:"Status",stageLabel:"Phase",assignedToLabel:"Zugewiesen an",creatorsLabel:"Erstellt von",tagsLabel:"Tags",resetButton:"Zur\xFCcksetzen",searchButton:"Suchen",undefined:"Nicht definiert",datePlaceholder:"Erstellungsdatum"},BcfSettings:{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",documentsLabel:"Dokumente",documentsCount:"Dokumente \u2013 {count} ausgew\xE4hlte Dokumente",groupsLabel:"Berechtigungen",groupsCount:"Berechtigungen \u2013 {count} ausgew\xE4hlte Gruppen",groupsText:"W\xE4hlen Sie die Benutzergruppen aus, die dieses Thema sehen und damit interagieren d\xFCrfen.",validate:"Best\xE4tigen"},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",edited:"bearbeitet"},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"}}},Nqi={BcfComponents:Uqi},Hqi={back:"Back",BcfFilters:{filtersButton:"Filters",filtersTitle:"Filters",priorityLabel:"Priority",statusLabel:"Status",stageLabel:"Stage",assignedToLabel:"Assigned to",creatorsLabel:"Created by",tagsLabel:"Tags",resetButton:"Reset",searchButton:"Search",undefined:"Not defined",datePlaceholder:"Creation date"},BcfSettings:{title:"BCF Settings",text:"Create, enter in, and list the BCF settings you would like to have for this project",validateButton:"Validate BCF settings"},BcfStatistics:{emptyText:"Add BCF Topics to start to have some stats here.",issues:"issues",extension:{Priority:"Priority",PriorityNotDefined:"No priority",PriorityTitle:"Priorities",Status:"Status",StatusNotDefined:"No status",StatusTitle:"Status"}},BcfTopicCard:{priority:"Priority",noPriority:"None",assignedTo:"Assigned to",elements:"Elements",notSpecified:"Not specified",see:"See"},BcfTopicCreationCard:{text:"Create a new BCF topic",createBcfSideTitle:"Report a problem"},BcfTopicForm:{dragDropImageText:"Please select a file",addObjectButton:"Object",addAnnotationButton:"Annotation",annotationButtonTooltip:"This topic has no viewpoint",addPictureButton:"Add a picture",titlePlaceholder:"Title *",titleErrorMessage:"Missing title",typeLabel:"Type",priorityLabel:"Priority",statusLabel:"Status",stageLabel:"Stage",assignedToLabel:"Assigned to",dueDateLabel:"Due date",descriptionLabel:"Description",labelsLabel:"Tags",createButton:"Validate",updateButton:"Modify this BCF",modalText:"You are about to quit editing issue {name} but there are unsaved changes.",cancelButton:"Discard changes",continueButton:"Continue editing",createTitle:"Report a problem",dragDropImageTextTablet:"Take a picture",takeSnapshot:"Take a snapshot",importFile:"Import a file",searchPlaceholder:"Search",emptySearch:"No result",documentsLabel:"Add a file",documentsCount:"Files - {count} selected files",groupsLabel:"Permissions",groupsCount:"Permissions - {count} selected groups",groupsText:"You are now setting the access rights: choose the user group(s) that will be exclusively authorized to see and interact with this topic.",validate:"Validate"},BcfTopicOverview:{openViewer:"Open in viewer",openViewerNoModels:"No model to open",elements:"{count} Elements",noElements:"No element",type:"Type",noTypeSpecified:"No type specified",description:"Description",noDescriptionProvided:"No description provided",assignedTo:"Assigned to",notAssigned:"Not assigned",dueDate:"Due date",noDueDate:"No due date",informations:"Informations",status:"Status",noStatusSpecified:"No status specified",stage:"Stage",noStageProvided:"No stage provided",priority:"Priority",priorityNotDefined:"Not defined",tags:"Tags",noTags:"No tags",commentButton:"Post a comment",deleteText:"You are about to delete {name}",deleteBcfButton:"Delete this BCF",keepBcfButton:"Keep this BCF",author:"Author"},BcfTopicsTable:{headers:{index:"#",priority:"Priority",status:"Status",title:"Title",creator:"Author",date:"Date"}},BcfTopicActionsCell:{seeButton:"See"},BcfTopicComments:{commentButton:"Post a comment",commentLabel:"Post a comment",commentText:"Comment",cancelButton:"Cancel",publishButton:"Publish",commentsText:"Comments",deleteCommentText:"Delete this comment ?",deleteButton:"Delete",takeSnapshot:"Take a snapshot",edited:"edited"},BcfTopicPriorityCell:{noPriority:"None"},SettingCard:{addButton:"add an element",cancelButton:"Cancel",validateButton:"Validate",deleteExtensionText:"Remove this setting",deleteButton:"Delete",title:{Priority:"Priorities",Label:"Labels",Status:"Status",Type:"Types",Stage:"Stages"},input:{Priority:"Add a new priority",Label:"Add a new label",Status:"Add new status",Type:"Add a new type",Stage:"Add a new stage"},text:{Priority:"Priority list",Label:"Labels list",Status:"Status list",Type:"Type list",Stage:"Stage list"}}},zqi={BcfComponents:Hqi},Vqi={back:"Volver",BcfFilters:{filtersButton:"Filtros",filtersTitle:"Filtros",priorityLabel:"Prioridad",statusLabel:"Estado",stageLabel:"Fase",assignedToLabel:"Asignado a",creatorsLabel:"Creado por",tagsLabel:"Etiquetas:",resetButton:"Restablecer",searchButton:"Buscar en",undefined:"No definido",datePlaceholder:"Fecha de creaci\xF3n"},BcfSettings:{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"}}},Gqi={BcfComponents:Vqi},Qqi={back:"Retour",BcfFilters:{filtersButton:"Filtres",filtersTitle:"Filtres",priorityLabel:"Priorit\xE9",statusLabel:"Statut",stageLabel:"Phase",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:{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",documentsLabel:"Documents",documentsCount:"Documents - {count} documents s\xE9lectionn\xE9s",groupsLabel:"Permissions",groupsCount:"Permissions - {count} groupes s\xE9lectionn\xE9s",groupsText:"S\xE9lectionner les groupes utilisateur qui peuvent voir ce topic et int\xE9ragir avec.",validate:"Valider"},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",edited:"edit\xE9"},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"}}},Kqi={BcfComponents:Qqi},Wqi={back:"Indietro",BcfFilters:{filtersButton:"Filtri",filtersTitle:"Filtri",priorityLabel:"Priorit\xE0",statusLabel:"Stato",stageLabel:"Fase",datePlaceholder:"Data di creazione",assignedToLabel:"Assegnato a",creatorsLabel:"Creato da",tagsLabel:"Etichette",resetButton:"Ripristina",searchButton:"Cerca",undefined:"Non definito"},BcfSettings:{title:"Parametri BCF",text:"Creare, notificare e elencare i parametri BCF che si desidera avere su questo progetto",validateButton:"Conferma i parametri BCF"},BcfStatistics:{emptyText:"Aggiungi delle domande per vedere le statistiche associate qui.",issues:"problemi",extension:{Priority:"Priorit\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"}}},Jqi={BcfComponents:Wqi},Yqi={de:Nqi,en:zqi,es:Gqi,fr:Kqi,it:Jqi},Zqi=({apiClient:t,fetchUsers:e,i18nPlugin:i}={})=>({install(r){t?Ur.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(Yqi).forEach(([n,o])=>{i.global.mergeLocaleMessage(n,o)}):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(Yqe).forEach(([n,o])=>{r.component(n,o)})}}),Xqi={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",addPlanButton:"Grundriss",closeButton:"Fertigstellen",submitFilesButton:"Best\xE4tigen"},storeyForm:{title:"Neue Etage",input:"Name",error:"Ung\xFCltiger Name",cancelButton:"Abbrechen",submitButton:"Best\xE4tigen"}},$qi={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"},eUi={BuildingMaker:Xqi,FileManager:$qi},tUi={t:{back:"Back",cancel:"Cancel",create:"Create",delete:"Delete",download:"Download",finish:"Finish",rename:"Rename",search:"Search",see:"View",storey:"Storey",validate:"Validate"}},iUi={title:"Building Maker",list:{text:"Create and edit storeys, then download your PDFs.",new:"New project"},form:{input:"Building name",error:"Invalid"},view:{addStorey:"Add Storey",addFile:"Add File",addPlan:"Add Plan"},storeyForm:{title:"New storey",input:"Name",error:"Invalid name"}},rUi={creationFormTitle:"Create folder",renameFormPlaceholder:"Folder/File name",nameInputPlaceholder:"Folder name",emptyFolder:"This folder is empty",newFolderSuccess:"New folder created",renameFolderSuccess:"Folder renamed",deleteFolderSuccess:"Folder deleted",newFileSuccess:"File added",renameFileSuccess:"File renamed",deleteFileSuccess:"File deleted",nameInputErrorMessage:"Invalid name",buttonText:"New folder",addFileButtonText:"Upload a file",deleteTitle:"Deleting Files",deleteDetail:"You are about to permanently delete the following files / folders",dmsRoot:"Root of the project's DMS",pdfPageSelectorTitle:"Select a page"},nUi={title:"Meta-Building Structure",tab:{structure:"Structure",zones:"Zones",equipments:"Equipments"},StoreySelector:{placeholder:"Select a storey"}},oUi={title:"Photosphere Building"},sUi={BIMDataComponents:tUi,BuildingMaker:iUi,FileManager:rUi,MetaBuildingStructure:nUi,PhotosphereBuilding:oUi},aUi={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",addPlanButton:"Plano",closeButton:"Terminar",submitFilesButton:"Validar"},storeyForm:{title:"Nuevo piso",input:"Nombre",error:"Nombre no v\xE1lido",cancelButton:"Anular",submitButton:"Validar"}},lUi={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"},cUi={BuildingMaker:aUi,FileManager:lUi},dUi={t:{back:"Retour",cancel:"Annuler",create:"Cr\xE9er",delete:"Supprimer",download:"T\xE9l\xE9charger",finish:"Terminer",rename:"Renommer",search:"Rechercher",see:"Voir",storey:"\xC9tage",validate:"Valider"}},uUi={title:"Building Maker",list:{text:"Cr\xE9ez et \xE9ditez les \xE9tages puis t\xE9l\xE9chagez vos PDF.",new:"Nouveau projet"},form:{input:"Nom du b\xE2timent",error:"Nom invalide"},view:{addStorey:"Ajouter un \xC9tage",addFile:"Ajouter un fichier",addPlan:"Ajouter un plan"},storeyForm:{title:"Nouvel \xE9tage",input:"Nom",error:"Nom invalide"}},hUi={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",buttonText:"Nouveau dossier",addFileButtonText:"Charger un fichier",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",pdfPageSelectorTitle:"S\xE9lectionner une page"},pUi={title:"Structure M\xE9ta-Building",tab:{structure:"Structure",zones:"Zones",equipments:"\xC9quipements"},StoreySelector:{placeholder:"S\xE9lectionner un \xE9tage"}},fUi={title:"Photosph\xE8re Building"},gUi={BIMDataComponents:dUi,BuildingMaker:uUi,FileManager:hUi,MetaBuildingStructure:pUi,PhotosphereBuilding:fUi},mUi={title:"Building Maker",back:"Reso",list:{text:"Crea e modifica i piani e poi scarica i tuoi PDF.",createButton:"Nuovo progetto",updateButton:"Rinominare",deleteButton:"Eliminare"},form:{text:"Crea e modifica i piani e poi scarica i tuoi PDF.",input:"Nome della costruzione",error:"Nome non corretto",createButton:"Creare",updateButton:"Convalidare"},view:{addStoreyButton:"Piano",addPlanButton:"Mappa",closeButton:"Finire",submitFilesButton:"Convalidare"},storeyForm:{title:"Nuovo piano",input:"Nome",error:"Nome non corretto",cancelButton:"Annullare",submitButton:"Convalidare"}},AUi={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"},vUi={BuildingMaker:mUi,FileManager:AUi},bUi={de:eUi,en:sUi,es:cUi,fr:gUi,it:vUi},wUi=({i18nPlugin:t}={})=>({install(e){t?Object.entries(bUi).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(F3i).forEach(([i,r])=>{e.component(i,r)})}}),yUi={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}},xUi=Object.freeze(Object.defineProperty({__proto__:null,BIMDataClickAway:mu,BIMDataClickInputAway:yUi},Symbol.toStringTag,{value:"Module"})),CUi=t=>({install(e){Object.entries(Hgt).forEach(([i,r])=>{e.component(i,r)}),Object.entries(xUi).forEach(([i,r])=>e.directive(i.split("BIMData")[1],r))}}),kUi={name:"LiWrapper",render(){return Tn("li",this.$slots.default())}};function MUi(t,e){var i=new Set([]);return t.forEach(r=>{e.has(r)||i.add(r)}),i}const Wu=ua("id"),EUi=({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(iu(Sr("visible"),Vf("selected"))).map(Wu)),predicate:()=>e.some(iu(Sr("visible"),Vf("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(Sr("selected")).map(Wu)),predicate:()=>e.some(Sr("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 n=e.filter(o=>o.visible&&o.type===this.selectedObject.type&&o.id!==this.selectedObject.id).map(Wu);i.selectObjects(n)},selectedObject:null,predicate(){const n=e.filter(iu(Sr("visible"),Sr("selected")));return n.length===1&&n[0].type!==void 0?(this.selectedObject=n[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 n=new Set(e.filter(Sr("selected")).map(Wu)),o=new Set(e.filter(Sr("visible")).map(Wu));i.selectObjects(Array.from(MUi(o,n)),{exclusive:!0})},predicate:()=>e.some(iu(Vf("selected"),Sr("visible")))&&e.some(iu(Sr("selected"),Sr("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(Vf("visible")).map(Wu)),predicate:()=>e.some(Vf("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 n=this.objectsToHide.filter(Sr("selected"));n.length>0&&i.deselectObjects(n.map(Wu)),i.hideObjects(this.objectsToHide.map(Wu))},predicate(){return this.objectsToHide=e.filter(iu(Sr("selected"),Sr("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 n=e.filter(Sr("visible"));n.some(Sr("selected"))&&i.deselectObjects(n.filter(Sr("selected")).map(Wu)),i.hideObjects(n.map(Wu))},predicate:()=>e.some(Sr("visible"))}].filter(n=>n.predicate()),BUi={components:{LiWrapper:kUi},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(n=>r.set(n.name,n.key)),EUi({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,n)=>(r.position=r.position||0,n.position=n.position||0,r.position-n.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}}},PUi={key:0,class:"separator"},IUi={class:"menu-text"},SUi={key:1,class:"menu-picto"},TUi={key:0,class:"context-menu__spinner"};function RUi(t,e,i,r,n,o){const s=R("BIMDataIconChevron"),a=R("LiWrapper"),l=R("BIMDataSpinner"),c=er("click-away");return n.displayed&&(n.currentCommands.length||n.asyncPredicateRunning)?Ht((P(),j("ul",{key:0,class:"bimdata-list context-menu",style:Ee(o.position)},[(P(!0),j(mt,null,Xt(n.currentCommands,(d,u)=>(P(),X(a,{key:d.label,class:"context-menu__element",onClick:h=>o.executeCommand(d)},{default:H(()=>[o.isGroupIntersection(u)?(P(),j("div",PUi)):ye("",!0),C("div",IUi,Z(d.label),1),!d.component&&d.picto?(P(),j("span",SUi,Z(d.picto),1)):d.component?(P(),X(s,{key:2,size:"xxs",class:"fill-primary"})):ye("",!0)]),_:2},1032,["onClick"]))),128)),n.asyncPredicateRunning?(P(),j("li",TUi,[D(l)])):ye("",!0)],4)),[[c,o.away]]):ye("",!0)}const DUi=G(BUi,[["render",RUi],["__scopeId","data-v-5b87d4a3"]]),_Ui={name:"ViewerHeader",inject:["$viewer"],props:{visible:{type:Boolean,default:!0}},setup(){const t=Mt("$viewer"),e=Qo(new Map),i=n=>{if(!n.name)throw new TypeError("[Viewer Header] Content must have a name");if(e.has(n.name))throw new Error(`[Viewer Header] Content with name ${n.name} already exists`);e.set(n.name,n)},r=n=>e.has(n)?(e.delete(n),!0):!1;return{logo:t.uiSettings.bimdataLogo!==!1,version:t.uiSettings.version!==!1?t.version:null,headerContent:e,headerRightContentComponents:Je(()=>Array.from(e.values()).filter(n=>n.position==="right").sort((n,o)=>n.order-o.order).map(n=>n.component)),headerLeftContentComponents:Je(()=>Array.from(e.values()).filter(n=>n.position==="left").sort((n,o)=>n.order-o.order).map(n=>n.component)),addContent:i,removeContent:r}}},LUi={class:"viewer-header"},jUi={class:"viewer-header__content"},FUi={class:"viewer-header__content__left"},OUi={class:"viewer-header__content__right"},qUi={key:0,class:"m-l-6 flex items-center"},UUi={key:1,class:"viewer-header__version"};function NUi(t,e,i,r,n,o){const s=R("BIMDataIllustration");return Ht((P(),j("div",LUi,[C("div",jUi,[C("div",FUi,[(P(!0),j(mt,null,Xt(r.headerLeftContentComponents,a=>(P(),X(Sn(a),{key:a.name}))),128))]),C("div",OUi,[(P(!0),j(mt,null,Xt(r.headerRightContentComponents,a=>(P(),X(Sn(a),{key:a.name}))),128))])]),r.logo||r.version?(P(),j("div",qUi,[r.logo?(P(),X(s,{key:0,name:"logo",width:"30px",height:"30px"})):ye("",!0),r.version?(P(),j("div",UUi,Z(r.version),1)):ye("",!0)])):ye("",!0)],512)),[[wi,i.visible]])}const HUi=G(_Ui,[["render",NUi],["__scopeId","data-v-5c9ea6b6"]]),zUi={emits:["resize"],setup(t,{emit:e}){return{onResizerMousedown:i=>{i.preventDefault();let r=i.clientX;const n=s=>{s.preventDefault();const a=s.clientX-r;r=s.clientX,e("resize",a)},o=s=>{s.preventDefault(),window.removeEventListener("mousemove",n),window.removeEventListener("mouseup",o)};window.addEventListener("mousemove",n),window.addEventListener("mouseup",o)}}}},VUi={class:"bimdata-separator"};function GUi(t,e,i,r,n,o){return P(),j("div",VUi,[e[1]||(e[1]=C("div",{class:"bimdata-separator__line"},null,-1)),C("div",{class:"bimdata-separator__resizer",onMousedown:e[0]||(e[0]=(...s)=>r.onResizerMousedown&&r.onResizerMousedown(...s))},null,32)])}const QUi=G(zUi,[["render",GUi],["__scopeId","data-v-79a3b3af"]]),KUi={components:{Separator:QUi},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=xe(null),i=xe(t.sidePanel.width??400),r=(n,o=1)=>{const s=i.value+n*o;i.value=Math.max(0,s)};return Rt(()=>t.sidePanel,()=>{Object.defineProperty(t.sidePanel,"width",{get(){return i.value},set(n){if(typeof n!="number"||n<=0){console.error(`[GlobalSidePanel] sidePanel.width must be a strictly positive number, received ${typeof n}`);return}i.value=n}}),Object.defineProperty(t.sidePanel,"componentInstance",{get(){return e.value},enumerable:!0})},{immediate:!0}),{componentInstance:e,width:i,onResize:r}}},WUi={class:"bimdata-global-side-panel__component"};function JUi(t,e,i,r,n,o){const s=R("Separator");return P(),j("div",{class:"bimdata-global-side-panel",style:Ee(`width: ${r.width}px`)},[i.sidePanel.resizable&&i.position==="right"?(P(),X(s,{key:0,onResize:e[0]||(e[0]=a=>r.onResize(a,-1))})):ye("",!0),C("div",WUi,[(P(),X(Sn(i.sidePanel.component),{ref:"componentInstance"},null,512))]),i.sidePanel.resizable&&i.position==="left"?(P(),X(s,{key:1,onResize:e[1]||(e[1]=a=>r.onResize(a))})):ye("",!0)],4)}const YUi=G(KUi,[["render",JUi],["__scopeId","data-v-82d0d4cb"]]),ZUi={name:"BimdataViewer",components:{ContextMenu:DUi,ViewerHeader:HUi,ModalManager:S7e,GlobalSidePanel:YUi},setup(){const t=Mt("$viewer"),{globalContext:e,shortcutManager:i}=t;br(()=>{i&&i.destroy(),e.hub.clear()}),Yi(()=>{t.pluginManager.runPluginsScripts(t)});const r=Je(()=>t.uiSettings.bimdataLogo!==!1&&(e.localContexts.length!==1||e.localContexts[0].window?.logoAndVersion)),n=Je(()=>t.uiSettings.version!==!1&&(e.localContexts.length!==1||e.localContexts[0].window?.logoAndVersion)?t.version:null),o=Je(()=>e.leftSidePanel),s=Je(()=>e.rightSidePanel),a=Je(()=>{const p=t.uiSettings.header!==!1,g=e.localContexts.length===1&&e.localContexts[0].window?.header===!1,f=!!(o.value||s.value);return p&&(!g||f)}),l=t.uiSettings.contextMenu!==!1,c=xe(null);function d(p){l&&c.value.open(p)}function u(){t.shortcutManager.active=!0}function h(){t.shortcutManager.active=!1}return{Layout:t.layout.areas.component,onContextMenu:d,onMouseenter:u,onMouseleave:h,isHeaderVisible:a,viewerTemplateRef:e.templateRef,modalManagerTemplateRef:e.modalManagerTemplateRef,headerTemplateRef:e.headerTemplateRef,contextMenuTemplateRef:c,contextMenuEnabled:l,bimdataLogoOnSingleWindow:r,viewerVersionOnSingleWindow:n,version:t.version,loading:Je(()=>e.loading),spinner:Je(()=>e.spinner),leftSidePanel:o,rightSidePanel:s}}},XUi={key:1,class:"bimdata-context-loading-overlay",style:{"z-index":"3"}},$Ui={key:2,class:"viewer__logo"},eNi={key:1,class:"version m-t-6"};function tNi(t,e,i,r,n,o){const s=R("ModalManager"),a=R("ContextMenu"),l=R("ViewerHeader"),c=R("GlobalSidePanel"),d=R("BIMDataSpinner"),u=R("BIMDataIllustration");return P(),j("div",{id:"bimdata-viewer",ref:"viewerTemplateRef",class:"bimdata-viewer bimdata-design-system bimdata-scrollbar",onContextmenu:e[0]||(e[0]=(...h)=>r.onContextMenu&&r.onContextMenu(...h)),onMouseenter:e[1]||(e[1]=(...h)=>r.onMouseenter&&r.onMouseenter(...h)),onMouseleave:e[2]||(e[2]=(...h)=>r.onMouseleave&&r.onMouseleave(...h))},[D(s,{ref:"modalManagerTemplateRef"},null,512),r.contextMenuEnabled?(P(),X(a,{key:0,ref:"contextMenuTemplateRef"},null,512)):ye("",!0),D(l,{ref:"headerTemplateRef",visible:r.isHeaderVisible},null,8,["visible"]),C("div",{class:"bimdata-viewer__content",style:Ee(r.isHeaderVisible?"height: calc(100% - var(--bimdata-viewer-header-height, 40px))":"height: 100%")},[r.leftSidePanel?(P(),X(c,{key:0,"side-panel":r.leftSidePanel,position:"left"},null,8,["side-panel"])):ye("",!0),(P(),X(Sn(r.Layout),{style:"height: 100%; flex-grow: 1;"})),r.rightSidePanel?(P(),X(c,{key:1,"side-panel":r.rightSidePanel,position:"right"},null,8,["side-panel"])):ye("",!0)],4),r.loading?(P(),j("div",XUi,[r.spinner&&r.spinner.component?(P(),X(Sn(r.spinner.component),kc(Ha({key:0},r.spinner.props)),null,16)):(P(),X(d,{key:1,size:"40px",border:"5px"}))])):ye("",!0),!r.isHeaderVisible&&(r.bimdataLogoOnSingleWindow||r.viewerVersionOnSingleWindow)?(P(),j("div",$Ui,[r.bimdataLogoOnSingleWindow?(P(),X(u,{key:0,name:"logo"})):ye("",!0),r.viewerVersionOnSingleWindow?(P(),j("div",eNi,Z(r.version),1)):ye("",!0)])):ye("",!0)],544)}const iNi=G(ZUi,[["render",tNi],["__scopeId","data-v-0c1c941a"]]),rNi=["src"],nNi={class:"bimdata-models__header"},oNi={key:0,class:"bimdata-models__header__loader"},sNi={class:"bimdata-models__header__picto"},aNi={class:"bimdata-models__header__name"},lNi={key:0,class:"bimdata-models__header__name--empty"},cNi={key:1,class:"bimdata-models__header__name--empty"},dNi={key:3},uNi=["onMousemove","onClick"],hNi={__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=Mt("$viewer"),r=xe(),n=xe(0),o=xe(0),s=xe(),a=ar([]),l=xe(!1),c=Je(()=>i.localContext.loadedModels),d=Je(()=>i.localContext.loadedModelIds),u=Je(()=>i.localContext.loadingModelIds),h=Je(()=>i.localContext.multiModel),p=Je(()=>(e.customFilter?a.value.filter(e.customFilter):a.value).map(x=>c.value.find(k=>k.document?.head_id!=null&&k.document.head_id===x.document.id)??x)),g=x=>d.value.includes(x),f=x=>u.value.includes(x),A=Je(()=>{const{x,y:k}=s.value?.getBoundingClientRect()??{x:0,y:0};return`top:${o.value-k}px; left:${n.value-x}px;`}),m=x=>{!h.value&&g(x.id)||u.value.length>0||(i.localContext.loadedModelIds.includes(x.id)?i.localContext.unloadModels([x.id]):i.localContext.loadModels([x.id]))},b=x=>{switch(x){case"C":return"success";case"E":return"failed";case"P":case"I":return"sandglass"}},v=(x,k)=>{x?.viewer_360_file&&(n.value=k.clientX,o.value=k.clientY),r.value=x?.viewer_360_file},w=async x=>{l.value=!0;try{return(await i.api.apiClient.modelApi.getModels(i.api.cloudId,i.api.projectId,void 0,void 0,x)).filter(k=>i.state.models.some(E=>E.archived)||!k.archived).sort(yu("updated_at",!1))}catch(k){console.error("[Models] Cannot get project models. Error: ",k)}finally{l.value=!1}return[]},y=x=>x.children?.some(k=>g(k.id))??!1;return w(i.localContext.modelTypes).then(x=>{a.value=x}),(x,k)=>{const E=R("BIMDataSpinner"),B=R("BIMDataIconModel3D"),I=R("BIMDataTextbox"),S=R("BIMDataCheckbox"),T=R("BIMDataRadio"),_=R("BIMDataIcon"),O=R("BIMDataDropdownList");return P(),j("div",{ref_key:"templateRef",ref:s,class:Be(["bimdata-models",{"bimdata-models--window-positioning":t.windowPositioning}])},[r.value?(P(),j("div",{key:0,class:"bimdata-models__preview",style:Ee(A.value)},[C("img",{src:r.value},null,8,rNi)],4)):ye("",!0),D(O,{style:Ee(`--bimdata-models-width: ${t.width};`),width:t.width,list:p.value,"element-key":"id","per-page":40,loading:l.value,class:"bimdata-models__list",disabled:p.value.length===0,onElementClick:m},{header:H(({isOpen:N})=>[C("div",nNi,[l.value||u.value.length>0?(P(),j("div",oNi,[D(E)])):(P(),j(mt,{key:1},[C("div",sNi,[D(B)]),C("div",{class:Be(["bimdata-models__header__number bimdata-info-length",{"bimdata-models__header__number--empty":d.value.length===0}])},[C("span",null,Z(d.value.length),1)],2),C("div",aNi,[p.value.length===0?(P(),j("span",lNi,Z(x.$t("model.no_model")),1)):d.value.length===0?(P(),j("span",cNi,Z(x.$t("model.no_loaded_model")),1)):d.value.length===1?(P(),X(I,{key:2,text:c.value[0].name,tooltip:!N},null,8,["text","tooltip"])):d.value.length>1?(P(),j("span",dNi,Z(x.$t("model.selected_models")),1)):ye("",!0)])],64))])]),element:H(({element:N,close:U})=>[C("div",{class:"bimdata-models__model",onMousemove:V=>t.preview&&v(N,V),onMouseout:k[0]||(k[0]=V=>t.preview&&v()),onClick:()=>{!h.value&&!g(N.id)&&U()}},[h.value?(P(),X(S,{key:0,"model-value":g(N.id)||y(N),disabled:N.status!=="C"||u.value.length>0},null,8,["model-value","disabled"])):(P(),X(T,{key:1,"model-value":g(N.id)||y(N),disabled:N.status!=="C"||u.value.length>0},null,8,["model-value","disabled"])),D(_,{margin:"0 calc(var(--spacing-unit) / 2)",name:b(N.status),size:"xs",class:Be({"fill-success":N.status==="C","fill-high":N.status==="E"})},null,8,["name","class"]),D(I,{class:Be({"bimdata-models__model__name":!0,"bimdata-models__model__name--disabled":N.status!=="C"||u.value.length>0}),text:N.name,width:`calc(100% -
|
|
6436
|
+
`),onMouseenter:e[0]||(e[0]=(...h)=>r.onMouseEnter&&r.onMouseEnter(...h)),onMouseleave:e[1]||(e[1]=(...h)=>r.onMouseLeave&&r.onMouseLeave(...h))},[D(s,{ref:"modalManagerTemplateRef"},null,512),C("div",Eqi,[r.windowPlugins.leftSidePanel?(P(),X(a,{key:0,plugin:r.windowPlugins.leftSidePanel},null,8,["plugin"])):ye("",!0),C("div",Bqi,[(P(!0),j(mt,null,Xt(r.windowPlugins.free,h=>(P(),X(l,{key:h.name,class:Be({"window-container__content__center__viewer":h.isViewer}),plugin:h},null,8,["class","plugin"]))),128)),D(c,{position:"left",plugins:r.windowPlugins.leftButtonColumn},null,8,["plugins"]),D(c,{position:"right",plugins:r.windowPlugins.rightButtonColumn},null,8,["plugins"])]),r.windowPlugins.rightSidePanel?(P(),X(a,{key:1,plugin:r.windowPlugins.rightSidePanel},null,8,["plugin"])):ye("",!0)]),r.loading?(P(),j("div",Pqi,[r.spinner&&r.spinner.component?(P(),X(Sn(r.spinner.component),kc(Ha({key:0},r.spinner.props)),null,16)):(P(),X(d,{key:1,size:"20px",border:"3px"}))])):ye("",!0),r.layoutSettingsDisplayed?(P(),j("div",Iqi,[D(u)])):ye("",!0)],36)}const Tqi=G(Mqi,[["render",Sqi],["__scopeId","data-v-485f288e"]]);let Rqi=class{constructor(t=!0){const e=bOi(cee,null,{resizable:t});e.registerContent("default",Tqi),this.settings=Qo({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?wOi(t):null}copy(t,e=!0){return yOi(this.areas.layout,t,e)}open({ratio:t,direction:e,insertAfter:i,windowName:r=null,windowState:n=null,localContextId:o=null}={}){const s=r?{options:{windowName:r,windowState:n}}:null;return o===null?this.areas.splitLayout(t,e,i,s):this.areas.split(o,t,e,i,s)}swap(t,e){return this.areas.swap(t,e)}close(t){return this.areas.delete(t)}compare(t,e){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 i=new Set(t.windowState?.modelIds),r=new Set(e.windowState?.modelIds);return i.size===r.size&&[...i].every(n=>r.has(n))}return t.windowName||e.windowName||t.direction!==e.direction||t.children.length!==e.children.length?!1:t.children.every((i,r)=>this.compare(i,e.children[r]))}};const Dqi="2.17.0-beta.2",_qi={version:Dqi};let Lqi=1;class jqi{math=f7t;constructor({plugins:e,api:i,ui:r,locale:n="fr"}){this.instanceId=Lqi++,this.pluginManager=new l_i(e),this.windowManager=new d_i,this.windowManager.registerAndAddPluginsToWindows([...this.pluginManager.registeredPlugins.values()]),this.api=new MFi(i),this.globalContext=new o_e(this),this.state=OFi(this),this.shortcutManager=XEe(this.state),this.uiSettings=r||{},this.i18n=new r_e(n),this._contextMenu=null,this.layout=new Rqi(this.uiSettings.resizable!==!1),this._darkTheme=xe(r?.darkTheme??!1),this.localContext=null,window.$viewer=this}get darkTheme(){return this._darkTheme.value}set darkTheme(e){this._darkTheme.value=e}get version(){return _qi.version}get locale(){return this.i18n.locale}get contextMenu(){return this._contextMenu||YEe}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 Fqi(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 Oqi=Object.freeze({25:"GUEST",50:"USER",100:"ADMIN"}),ub=Object.freeze({READ:"read",WRITE:"write"});function D7e(t){const e={};return t.forEach(i=>{const[r,n]=i.split(":");e[r]?e[r].push(n):e[r]=[n]}),e}const qqi={token_scopes:[],usable_scopes:[],user_role:25};function _7e(t=qqi){const e=D7e(t.token_scopes),i=D7e(t.usable_scopes);return{...uoe(t),tokenScopes:e,usableScopes:i,userRole:Oqi[t.user_role],user:t.user?uoe(t.user):null,hasBcfReadPermission:i.bcf?.includes(ub.READ)??!1,hasBcfWritePermission:i.bcf?.includes(ub.WRITE)??!1,hasModelReadPermission:i.model?.includes(ub.READ)??!1,hasModelWritePermission:i.model?.includes(ub.WRITE)??!1,hasDocReadPermission:i.document?.includes(ub.READ)??!1,hasDocWritePermission:i.document?.includes(ub.WRITE)??!1}}const Uqi={back:"Zur\xFCck",BcfFilters:{filtersButton:"Filter",filtersTitle:"Filter",priorityLabel:"Priorit\xE4t",statusLabel:"Status",stageLabel:"Phase",assignedToLabel:"Zugewiesen an",creatorsLabel:"Erstellt von",tagsLabel:"Tags",resetButton:"Zur\xFCcksetzen",searchButton:"Suchen",undefined:"Nicht definiert",datePlaceholder:"Erstellungsdatum"},BcfSettings:{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",documentsLabel:"Dokumente",documentsCount:"Dokumente \u2013 {count} ausgew\xE4hlte Dokumente",groupsLabel:"Berechtigungen",groupsCount:"Berechtigungen \u2013 {count} ausgew\xE4hlte Gruppen",groupsText:"W\xE4hlen Sie die Benutzergruppen aus, die dieses Thema sehen und damit interagieren d\xFCrfen.",validate:"Best\xE4tigen"},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",edited:"bearbeitet"},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"}}},Nqi={BcfComponents:Uqi},Hqi={back:"Back",BcfFilters:{filtersButton:"Filters",filtersTitle:"Filters",priorityLabel:"Priority",statusLabel:"Status",stageLabel:"Stage",assignedToLabel:"Assigned to",creatorsLabel:"Created by",tagsLabel:"Tags",resetButton:"Reset",searchButton:"Search",undefined:"Not defined",datePlaceholder:"Creation date"},BcfSettings:{title:"BCF Settings",text:"Create, enter in, and list the BCF settings you would like to have for this project",validateButton:"Validate BCF settings"},BcfStatistics:{emptyText:"Add BCF Topics to start to have some stats here.",issues:"issues",extension:{Priority:"Priority",PriorityNotDefined:"No priority",PriorityTitle:"Priorities",Status:"Status",StatusNotDefined:"No status",StatusTitle:"Status"}},BcfTopicCard:{priority:"Priority",noPriority:"None",assignedTo:"Assigned to",elements:"Elements",notSpecified:"Not specified",see:"See"},BcfTopicCreationCard:{text:"Create a new BCF topic",createBcfSideTitle:"Report a problem"},BcfTopicForm:{dragDropImageText:"Please select a file",addObjectButton:"Object",addAnnotationButton:"Annotation",annotationButtonTooltip:"This topic has no viewpoint",addPictureButton:"Add a picture",titlePlaceholder:"Title *",titleErrorMessage:"Missing title",typeLabel:"Type",priorityLabel:"Priority",statusLabel:"Status",stageLabel:"Stage",assignedToLabel:"Assigned to",dueDateLabel:"Due date",descriptionLabel:"Description",labelsLabel:"Tags",createButton:"Validate",updateButton:"Modify this BCF",modalText:"You are about to quit editing issue {name} but there are unsaved changes.",cancelButton:"Discard changes",continueButton:"Continue editing",createTitle:"Report a problem",dragDropImageTextTablet:"Take a picture",takeSnapshot:"Take a snapshot",importFile:"Import a file",searchPlaceholder:"Search",emptySearch:"No result",documentsLabel:"Add a file",documentsCount:"Files - {count} selected files",groupsLabel:"Permissions",groupsCount:"Permissions - {count} selected groups",groupsText:"You are now setting the access rights: choose the user group(s) that will be exclusively authorized to see and interact with this topic.",validate:"Validate"},BcfTopicOverview:{openViewer:"Open in viewer",openViewerNoModels:"No model to open",elements:"{count} Elements",noElements:"No element",type:"Type",noTypeSpecified:"No type specified",description:"Description",noDescriptionProvided:"No description provided",assignedTo:"Assigned to",notAssigned:"Not assigned",dueDate:"Due date",noDueDate:"No due date",informations:"Informations",status:"Status",noStatusSpecified:"No status specified",stage:"Stage",noStageProvided:"No stage provided",priority:"Priority",priorityNotDefined:"Not defined",tags:"Tags",noTags:"No tags",commentButton:"Post a comment",deleteText:"You are about to delete {name}",deleteBcfButton:"Delete this BCF",keepBcfButton:"Keep this BCF",author:"Author"},BcfTopicsTable:{headers:{index:"#",priority:"Priority",status:"Status",title:"Title",creator:"Author",date:"Date"}},BcfTopicActionsCell:{seeButton:"See"},BcfTopicComments:{commentButton:"Post a comment",commentLabel:"Post a comment",commentText:"Comment",cancelButton:"Cancel",publishButton:"Publish",commentsText:"Comments",deleteCommentText:"Delete this comment ?",deleteButton:"Delete",takeSnapshot:"Take a snapshot",edited:"edited"},BcfTopicPriorityCell:{noPriority:"None"},SettingCard:{addButton:"add an element",cancelButton:"Cancel",validateButton:"Validate",deleteExtensionText:"Remove this setting",deleteButton:"Delete",title:{Priority:"Priorities",Label:"Labels",Status:"Status",Type:"Types",Stage:"Stages"},input:{Priority:"Add a new priority",Label:"Add a new label",Status:"Add new status",Type:"Add a new type",Stage:"Add a new stage"},text:{Priority:"Priority list",Label:"Labels list",Status:"Status list",Type:"Type list",Stage:"Stage list"}}},zqi={BcfComponents:Hqi},Vqi={back:"Volver",BcfFilters:{filtersButton:"Filtros",filtersTitle:"Filtros",priorityLabel:"Prioridad",statusLabel:"Estado",stageLabel:"Fase",assignedToLabel:"Asignado a",creatorsLabel:"Creado por",tagsLabel:"Etiquetas:",resetButton:"Restablecer",searchButton:"Buscar en",undefined:"No definido",datePlaceholder:"Fecha de creaci\xF3n"},BcfSettings:{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"}}},Gqi={BcfComponents:Vqi},Qqi={back:"Retour",BcfFilters:{filtersButton:"Filtres",filtersTitle:"Filtres",priorityLabel:"Priorit\xE9",statusLabel:"Statut",stageLabel:"Phase",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:{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",documentsLabel:"Documents",documentsCount:"Documents - {count} documents s\xE9lectionn\xE9s",groupsLabel:"Permissions",groupsCount:"Permissions - {count} groupes s\xE9lectionn\xE9s",groupsText:"S\xE9lectionner les groupes utilisateur qui peuvent voir ce topic et int\xE9ragir avec.",validate:"Valider"},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",edited:"edit\xE9"},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"}}},Kqi={BcfComponents:Qqi},Wqi={back:"Indietro",BcfFilters:{filtersButton:"Filtri",filtersTitle:"Filtri",priorityLabel:"Priorit\xE0",statusLabel:"Stato",stageLabel:"Fase",datePlaceholder:"Data di creazione",assignedToLabel:"Assegnato a",creatorsLabel:"Creato da",tagsLabel:"Etichette",resetButton:"Ripristina",searchButton:"Cerca",undefined:"Non definito"},BcfSettings:{title:"Parametri BCF",text:"Creare, notificare e elencare i parametri BCF che si desidera avere su questo progetto",validateButton:"Conferma i parametri BCF"},BcfStatistics:{emptyText:"Aggiungi delle domande per vedere le statistiche associate qui.",issues:"problemi",extension:{Priority:"Priorit\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"}}},Jqi={BcfComponents:Wqi},Yqi={de:Nqi,en:zqi,es:Gqi,fr:Kqi,it:Jqi},Zqi=({apiClient:t,fetchUsers:e,i18nPlugin:i}={})=>({install(r){t?Ur.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(Yqi).forEach(([n,o])=>{i.global.mergeLocaleMessage(n,o)}):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(Yqe).forEach(([n,o])=>{r.component(n,o)})}}),Xqi={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",addPlanButton:"Grundriss",closeButton:"Fertigstellen",submitFilesButton:"Best\xE4tigen"},storeyForm:{title:"Neue Etage",input:"Name",error:"Ung\xFCltiger Name",cancelButton:"Abbrechen",submitButton:"Best\xE4tigen"}},$qi={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"},eUi={BuildingMaker:Xqi,FileManager:$qi},tUi={t:{back:"Back",cancel:"Cancel",create:"Create",delete:"Delete",download:"Download",finish:"Finish",rename:"Rename",search:"Search",see:"View",storey:"Storey",validate:"Validate"}},iUi={title:"Building Maker",list:{text:"Create and edit storeys, then download your PDFs.",new:"New project"},form:{input:"Building name",error:"Invalid"},view:{addStorey:"Add Storey",addFile:"Add File",addPlan:"Add Plan"},storeyForm:{title:"New storey",input:"Name",error:"Invalid name"}},rUi={creationFormTitle:"Create folder",renameFormPlaceholder:"Folder/File name",nameInputPlaceholder:"Folder name",emptyFolder:"This folder is empty",newFolderSuccess:"New folder created",renameFolderSuccess:"Folder renamed",deleteFolderSuccess:"Folder deleted",newFileSuccess:"File added",renameFileSuccess:"File renamed",deleteFileSuccess:"File deleted",nameInputErrorMessage:"Invalid name",buttonText:"New folder",addFileButtonText:"Upload a file",deleteTitle:"Deleting Files",deleteDetail:"You are about to permanently delete the following files / folders",dmsRoot:"Root of the project's DMS",pdfPageSelectorTitle:"Select a page"},nUi={title:"Meta-Building Structure",tab:{structure:"Structure",zones:"Zones",equipments:"Equipments"},StoreySelector:{placeholder:"Select a storey"}},oUi={title:"Photosphere Building"},sUi={BIMDataComponents:tUi,BuildingMaker:iUi,FileManager:rUi,MetaBuildingStructure:nUi,PhotosphereBuilding:oUi},aUi={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",addPlanButton:"Plano",closeButton:"Terminar",submitFilesButton:"Validar"},storeyForm:{title:"Nuevo piso",input:"Nombre",error:"Nombre no v\xE1lido",cancelButton:"Anular",submitButton:"Validar"}},lUi={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"},cUi={BuildingMaker:aUi,FileManager:lUi},dUi={t:{back:"Retour",cancel:"Annuler",create:"Cr\xE9er",delete:"Supprimer",download:"T\xE9l\xE9charger",finish:"Terminer",rename:"Renommer",search:"Rechercher",see:"Voir",storey:"\xC9tage",validate:"Valider"}},uUi={title:"Building Maker",list:{text:"Cr\xE9ez et \xE9ditez les \xE9tages puis t\xE9l\xE9chagez vos PDF.",new:"Nouveau projet"},form:{input:"Nom du b\xE2timent",error:"Nom invalide"},view:{addStorey:"Ajouter un \xC9tage",addFile:"Ajouter un fichier",addPlan:"Ajouter un plan"},storeyForm:{title:"Nouvel \xE9tage",input:"Nom",error:"Nom invalide"}},hUi={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",buttonText:"Nouveau dossier",addFileButtonText:"Charger un fichier",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",pdfPageSelectorTitle:"S\xE9lectionner une page"},pUi={title:"Structure M\xE9ta-Building",tab:{structure:"Structure",zones:"Zones",equipments:"\xC9quipements"},StoreySelector:{placeholder:"S\xE9lectionner un \xE9tage"}},fUi={title:"Photosph\xE8re Building"},gUi={BIMDataComponents:dUi,BuildingMaker:uUi,FileManager:hUi,MetaBuildingStructure:pUi,PhotosphereBuilding:fUi},mUi={title:"Building Maker",back:"Reso",list:{text:"Crea e modifica i piani e poi scarica i tuoi PDF.",createButton:"Nuovo progetto",updateButton:"Rinominare",deleteButton:"Eliminare"},form:{text:"Crea e modifica i piani e poi scarica i tuoi PDF.",input:"Nome della costruzione",error:"Nome non corretto",createButton:"Creare",updateButton:"Convalidare"},view:{addStoreyButton:"Piano",addPlanButton:"Mappa",closeButton:"Finire",submitFilesButton:"Convalidare"},storeyForm:{title:"Nuovo piano",input:"Nome",error:"Nome non corretto",cancelButton:"Annullare",submitButton:"Convalidare"}},AUi={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"},vUi={BuildingMaker:mUi,FileManager:AUi},bUi={de:eUi,en:sUi,es:cUi,fr:gUi,it:vUi},wUi=({i18nPlugin:t}={})=>({install(e){t?Object.entries(bUi).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(F3i).forEach(([i,r])=>{e.component(i,r)})}}),yUi={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}},xUi=Object.freeze(Object.defineProperty({__proto__:null,BIMDataClickAway:mu,BIMDataClickInputAway:yUi},Symbol.toStringTag,{value:"Module"})),CUi=t=>({install(e){Object.entries(Hgt).forEach(([i,r])=>{e.component(i,r)}),Object.entries(xUi).forEach(([i,r])=>e.directive(i.split("BIMData")[1],r))}}),kUi={name:"LiWrapper",render(){return Tn("li",this.$slots.default())}};function MUi(t,e){var i=new Set([]);return t.forEach(r=>{e.has(r)||i.add(r)}),i}const Wu=ua("id"),EUi=({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(iu(Sr("visible"),Vf("selected"))).map(Wu)),predicate:()=>e.some(iu(Sr("visible"),Vf("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(Sr("selected")).map(Wu)),predicate:()=>e.some(Sr("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 n=e.filter(o=>o.visible&&o.type===this.selectedObject.type&&o.id!==this.selectedObject.id).map(Wu);i.selectObjects(n)},selectedObject:null,predicate(){const n=e.filter(iu(Sr("visible"),Sr("selected")));return n.length===1&&n[0].type!==void 0?(this.selectedObject=n[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 n=new Set(e.filter(Sr("selected")).map(Wu)),o=new Set(e.filter(Sr("visible")).map(Wu));i.selectObjects(Array.from(MUi(o,n)),{exclusive:!0})},predicate:()=>e.some(iu(Vf("selected"),Sr("visible")))&&e.some(iu(Sr("selected"),Sr("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(Vf("visible")).map(Wu)),predicate:()=>e.some(Vf("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 n=this.objectsToHide.filter(Sr("selected"));n.length>0&&i.deselectObjects(n.map(Wu)),i.hideObjects(this.objectsToHide.map(Wu))},predicate(){return this.objectsToHide=e.filter(iu(Sr("selected"),Sr("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 n=e.filter(Sr("visible"));n.some(Sr("selected"))&&i.deselectObjects(n.filter(Sr("selected")).map(Wu)),i.hideObjects(n.map(Wu))},predicate:()=>e.some(Sr("visible"))}].filter(n=>n.predicate()),BUi={components:{LiWrapper:kUi},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(n=>r.set(n.name,n.key)),EUi({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,n)=>(r.position=r.position||0,n.position=n.position||0,r.position-n.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}}},PUi={key:0,class:"separator"},IUi={class:"menu-text"},SUi={key:1,class:"menu-picto"},TUi={key:0,class:"context-menu__spinner"};function RUi(t,e,i,r,n,o){const s=R("BIMDataIconChevron"),a=R("LiWrapper"),l=R("BIMDataSpinner"),c=er("click-away");return n.displayed&&(n.currentCommands.length||n.asyncPredicateRunning)?Ht((P(),j("ul",{key:0,class:"bimdata-list context-menu",style:Ee(o.position)},[(P(!0),j(mt,null,Xt(n.currentCommands,(d,u)=>(P(),X(a,{key:d.label,class:"context-menu__element",onClick:h=>o.executeCommand(d)},{default:H(()=>[o.isGroupIntersection(u)?(P(),j("div",PUi)):ye("",!0),C("div",IUi,Z(d.label),1),!d.component&&d.picto?(P(),j("span",SUi,Z(d.picto),1)):d.component?(P(),X(s,{key:2,size:"xxs",class:"fill-primary"})):ye("",!0)]),_:2},1032,["onClick"]))),128)),n.asyncPredicateRunning?(P(),j("li",TUi,[D(l)])):ye("",!0)],4)),[[c,o.away]]):ye("",!0)}const DUi=G(BUi,[["render",RUi],["__scopeId","data-v-5b87d4a3"]]),_Ui={name:"ViewerHeader",inject:["$viewer"],props:{visible:{type:Boolean,default:!0}},setup(){const t=Mt("$viewer"),e=Qo(new Map),i=n=>{if(!n.name)throw new TypeError("[Viewer Header] Content must have a name");if(e.has(n.name))throw new Error(`[Viewer Header] Content with name ${n.name} already exists`);e.set(n.name,n)},r=n=>e.has(n)?(e.delete(n),!0):!1;return{logo:t.uiSettings.bimdataLogo!==!1,version:t.uiSettings.version!==!1?t.version:null,headerContent:e,headerRightContentComponents:Je(()=>Array.from(e.values()).filter(n=>n.position==="right").sort((n,o)=>n.order-o.order).map(n=>n.component)),headerLeftContentComponents:Je(()=>Array.from(e.values()).filter(n=>n.position==="left").sort((n,o)=>n.order-o.order).map(n=>n.component)),addContent:i,removeContent:r}}},LUi={class:"viewer-header"},jUi={class:"viewer-header__content"},FUi={class:"viewer-header__content__left"},OUi={class:"viewer-header__content__right"},qUi={key:0,class:"m-l-6 flex items-center"},UUi={key:1,class:"viewer-header__version"};function NUi(t,e,i,r,n,o){const s=R("BIMDataIllustration");return Ht((P(),j("div",LUi,[C("div",jUi,[C("div",FUi,[(P(!0),j(mt,null,Xt(r.headerLeftContentComponents,a=>(P(),X(Sn(a),{key:a.name}))),128))]),C("div",OUi,[(P(!0),j(mt,null,Xt(r.headerRightContentComponents,a=>(P(),X(Sn(a),{key:a.name}))),128))])]),r.logo||r.version?(P(),j("div",qUi,[r.logo?(P(),X(s,{key:0,name:"logo",width:"30px",height:"30px"})):ye("",!0),r.version?(P(),j("div",UUi,Z(r.version),1)):ye("",!0)])):ye("",!0)],512)),[[wi,i.visible]])}const HUi=G(_Ui,[["render",NUi],["__scopeId","data-v-5c9ea6b6"]]),zUi={emits:["resize"],setup(t,{emit:e}){return{onResizerMousedown:i=>{i.preventDefault();let r=i.clientX;const n=s=>{s.preventDefault();const a=s.clientX-r;r=s.clientX,e("resize",a)},o=s=>{s.preventDefault(),window.removeEventListener("mousemove",n),window.removeEventListener("mouseup",o)};window.addEventListener("mousemove",n),window.addEventListener("mouseup",o)}}}},VUi={class:"bimdata-separator"};function GUi(t,e,i,r,n,o){return P(),j("div",VUi,[e[1]||(e[1]=C("div",{class:"bimdata-separator__line"},null,-1)),C("div",{class:"bimdata-separator__resizer",onMousedown:e[0]||(e[0]=(...s)=>r.onResizerMousedown&&r.onResizerMousedown(...s))},null,32)])}const QUi=G(zUi,[["render",GUi],["__scopeId","data-v-79a3b3af"]]),KUi={components:{Separator:QUi},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=xe(null),i=xe(t.sidePanel.width??400),r=(n,o=1)=>{const s=i.value+n*o;i.value=Math.max(0,s)};return Rt(()=>t.sidePanel,()=>{Object.defineProperty(t.sidePanel,"width",{get(){return i.value},set(n){if(typeof n!="number"||n<=0){console.error(`[GlobalSidePanel] sidePanel.width must be a strictly positive number, received ${typeof n}`);return}i.value=n}}),Object.defineProperty(t.sidePanel,"componentInstance",{get(){return e.value},enumerable:!0})},{immediate:!0}),{componentInstance:e,width:i,onResize:r}}},WUi={class:"bimdata-global-side-panel__component"};function JUi(t,e,i,r,n,o){const s=R("Separator");return P(),j("div",{class:"bimdata-global-side-panel",style:Ee(`width: ${r.width}px`)},[i.sidePanel.resizable&&i.position==="right"?(P(),X(s,{key:0,onResize:e[0]||(e[0]=a=>r.onResize(a,-1))})):ye("",!0),C("div",WUi,[(P(),X(Sn(i.sidePanel.component),{ref:"componentInstance"},null,512))]),i.sidePanel.resizable&&i.position==="left"?(P(),X(s,{key:1,onResize:e[1]||(e[1]=a=>r.onResize(a))})):ye("",!0)],4)}const YUi=G(KUi,[["render",JUi],["__scopeId","data-v-82d0d4cb"]]),ZUi={name:"BimdataViewer",components:{ContextMenu:DUi,ViewerHeader:HUi,ModalManager:S7e,GlobalSidePanel:YUi},setup(){const t=Mt("$viewer"),{globalContext:e,shortcutManager:i}=t;br(()=>{i&&i.destroy(),e.hub.clear()}),Yi(()=>{t.pluginManager.runPluginsScripts(t)});const r=Je(()=>t.uiSettings.bimdataLogo!==!1&&(e.localContexts.length!==1||e.localContexts[0].window?.logoAndVersion)),n=Je(()=>t.uiSettings.version!==!1&&(e.localContexts.length!==1||e.localContexts[0].window?.logoAndVersion)?t.version:null),o=Je(()=>e.leftSidePanel),s=Je(()=>e.rightSidePanel),a=Je(()=>{const p=t.uiSettings.header!==!1,g=e.localContexts.length===1&&e.localContexts[0].window?.header===!1,f=!!(o.value||s.value);return p&&(!g||f)}),l=t.uiSettings.contextMenu!==!1,c=xe(null);function d(p){l&&c.value.open(p)}function u(){t.shortcutManager.active=!0}function h(){t.shortcutManager.active=!1}return{Layout:t.layout.areas.component,onContextMenu:d,onMouseenter:u,onMouseleave:h,isHeaderVisible:a,viewerTemplateRef:e.templateRef,modalManagerTemplateRef:e.modalManagerTemplateRef,headerTemplateRef:e.headerTemplateRef,contextMenuTemplateRef:c,contextMenuEnabled:l,bimdataLogoOnSingleWindow:r,viewerVersionOnSingleWindow:n,version:t.version,loading:Je(()=>e.loading),spinner:Je(()=>e.spinner),leftSidePanel:o,rightSidePanel:s}}},XUi={key:1,class:"bimdata-context-loading-overlay",style:{"z-index":"3"}},$Ui={key:2,class:"viewer__logo"},eNi={key:1,class:"version m-t-6"};function tNi(t,e,i,r,n,o){const s=R("ModalManager"),a=R("ContextMenu"),l=R("ViewerHeader"),c=R("GlobalSidePanel"),d=R("BIMDataSpinner"),u=R("BIMDataIllustration");return P(),j("div",{id:"bimdata-viewer",ref:"viewerTemplateRef",class:"bimdata-viewer bimdata-design-system bimdata-scrollbar",onContextmenu:e[0]||(e[0]=(...h)=>r.onContextMenu&&r.onContextMenu(...h)),onMouseenter:e[1]||(e[1]=(...h)=>r.onMouseenter&&r.onMouseenter(...h)),onMouseleave:e[2]||(e[2]=(...h)=>r.onMouseleave&&r.onMouseleave(...h))},[D(s,{ref:"modalManagerTemplateRef"},null,512),r.contextMenuEnabled?(P(),X(a,{key:0,ref:"contextMenuTemplateRef"},null,512)):ye("",!0),D(l,{ref:"headerTemplateRef",visible:r.isHeaderVisible},null,8,["visible"]),C("div",{class:"bimdata-viewer__content",style:Ee(r.isHeaderVisible?"height: calc(100% - var(--bimdata-viewer-header-height, 40px))":"height: 100%")},[r.leftSidePanel?(P(),X(c,{key:0,"side-panel":r.leftSidePanel,position:"left"},null,8,["side-panel"])):ye("",!0),(P(),X(Sn(r.Layout),{style:"height: 100%; flex-grow: 1;"})),r.rightSidePanel?(P(),X(c,{key:1,"side-panel":r.rightSidePanel,position:"right"},null,8,["side-panel"])):ye("",!0)],4),r.loading?(P(),j("div",XUi,[r.spinner&&r.spinner.component?(P(),X(Sn(r.spinner.component),kc(Ha({key:0},r.spinner.props)),null,16)):(P(),X(d,{key:1,size:"40px",border:"5px"}))])):ye("",!0),!r.isHeaderVisible&&(r.bimdataLogoOnSingleWindow||r.viewerVersionOnSingleWindow)?(P(),j("div",$Ui,[r.bimdataLogoOnSingleWindow?(P(),X(u,{key:0,name:"logo"})):ye("",!0),r.viewerVersionOnSingleWindow?(P(),j("div",eNi,Z(r.version),1)):ye("",!0)])):ye("",!0)],544)}const iNi=G(ZUi,[["render",tNi],["__scopeId","data-v-0c1c941a"]]),rNi=["src"],nNi={class:"bimdata-models__header"},oNi={key:0,class:"bimdata-models__header__loader"},sNi={class:"bimdata-models__header__picto"},aNi={class:"bimdata-models__header__name"},lNi={key:0,class:"bimdata-models__header__name--empty"},cNi={key:1,class:"bimdata-models__header__name--empty"},dNi={key:3},uNi=["onMousemove","onClick"],hNi={__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=Mt("$viewer"),r=xe(),n=xe(0),o=xe(0),s=xe(),a=ar([]),l=xe(!1),c=Je(()=>i.localContext.loadedModels),d=Je(()=>i.localContext.loadedModelIds),u=Je(()=>i.localContext.loadingModelIds),h=Je(()=>i.localContext.multiModel),p=Je(()=>(e.customFilter?a.value.filter(e.customFilter):a.value).map(x=>c.value.find(k=>k.document?.head_id!=null&&k.document.head_id===x.document.id)??x)),g=x=>d.value.includes(x),f=x=>u.value.includes(x),A=Je(()=>{const{x,y:k}=s.value?.getBoundingClientRect()??{x:0,y:0};return`top:${o.value-k}px; left:${n.value-x}px;`}),m=x=>{!h.value&&g(x.id)||u.value.length>0||(i.localContext.loadedModelIds.includes(x.id)?i.localContext.unloadModels([x.id]):i.localContext.loadModels([x.id]))},b=x=>{switch(x){case"C":return"success";case"E":return"failed";case"P":case"I":return"sandglass"}},v=(x,k)=>{x?.viewer_360_file&&(n.value=k.clientX,o.value=k.clientY),r.value=x?.viewer_360_file},w=async x=>{l.value=!0;try{return(await i.api.apiClient.modelApi.getModels(i.api.cloudId,i.api.projectId,void 0,void 0,x)).filter(k=>i.state.models.some(E=>E.archived)||!k.archived).sort(yu("updated_at",!1))}catch(k){console.error("[Models] Cannot get project models. Error: ",k)}finally{l.value=!1}return[]},y=x=>x.children?.some(k=>g(k.id))??!1;return w(i.localContext.modelTypes).then(x=>{a.value=x}),(x,k)=>{const E=R("BIMDataSpinner"),B=R("BIMDataIconModel3D"),I=R("BIMDataTextbox"),S=R("BIMDataCheckbox"),T=R("BIMDataRadio"),_=R("BIMDataIcon"),O=R("BIMDataDropdownList");return P(),j("div",{ref_key:"templateRef",ref:s,class:Be(["bimdata-models",{"bimdata-models--window-positioning":t.windowPositioning}])},[r.value?(P(),j("div",{key:0,class:"bimdata-models__preview",style:Ee(A.value)},[C("img",{src:r.value},null,8,rNi)],4)):ye("",!0),D(O,{style:Ee(`--bimdata-models-width: ${t.width};`),width:t.width,list:p.value,"element-key":"id","per-page":40,loading:l.value,class:"bimdata-models__list",disabled:p.value.length===0,onElementClick:m},{header:H(({isOpen:N})=>[C("div",nNi,[l.value||u.value.length>0?(P(),j("div",oNi,[D(E)])):(P(),j(mt,{key:1},[C("div",sNi,[D(B)]),C("div",{class:Be(["bimdata-models__header__number bimdata-info-length",{"bimdata-models__header__number--empty":d.value.length===0}])},[C("span",null,Z(d.value.length),1)],2),C("div",aNi,[p.value.length===0?(P(),j("span",lNi,Z(x.$t("model.no_model")),1)):d.value.length===0?(P(),j("span",cNi,Z(x.$t("model.no_loaded_model")),1)):d.value.length===1?(P(),X(I,{key:2,text:c.value[0].name,tooltip:!N},null,8,["text","tooltip"])):d.value.length>1?(P(),j("span",dNi,Z(x.$t("model.selected_models")),1)):ye("",!0)])],64))])]),element:H(({element:N,close:U})=>[C("div",{class:"bimdata-models__model",onMousemove:V=>t.preview&&v(N,V),onMouseout:k[0]||(k[0]=V=>t.preview&&v()),onClick:()=>{!h.value&&!g(N.id)&&U()}},[h.value?(P(),X(S,{key:0,"model-value":g(N.id)||y(N),disabled:N.status!=="C"||u.value.length>0},null,8,["model-value","disabled"])):(P(),X(T,{key:1,"model-value":g(N.id)||y(N),disabled:N.status!=="C"||u.value.length>0},null,8,["model-value","disabled"])),D(_,{margin:"0 calc(var(--spacing-unit) / 2)",name:b(N.status),size:"xs",class:Be({"fill-success":N.status==="C","fill-high":N.status==="E"})},null,8,["name","class"]),D(I,{class:Be({"bimdata-models__model__name":!0,"bimdata-models__model__name--disabled":N.status!=="C"||u.value.length>0}),text:N.name,width:`calc(100% -
|
|
6437
6437
|
${h.value?13:23}px - 2 * 6px - 16px)`},null,8,["class","text","width"]),N.document&&!N.document.is_head_version?(P(),X(_,{key:2,name:"versioning",fill:"",color:"default",size:"xs",margin:"0 0 0 6px"})):ye("",!0)],40,uNi),f(N.id)?(P(),X(E,{key:0,class:"bimdata-models__model__spinner"})):ye("",!0)]),_:1},8,["style","width","list","loading","disabled"])],2)}}},L7e=G(hNi,[["__scopeId","data-v-34c2cf79"]]),pNi="data:image/svg+xml,%3csvg%20width='16'%20height='21'%20viewBox='0%200%2016%2021'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M7.47193%202.76644C7.65699%202.84439%207.77716%203.02565%207.777%203.22661L7.77339%207.94624C7.77318%208.22238%207.54916%208.44655%207.27301%208.44693L2.4192%208.45366C2.21569%208.45394%202.03258%208.33085%201.95617%208.1424C1.87975%207.95394%201.92528%207.73773%202.07129%207.59566L6.92872%202.86931C7.0729%202.72902%207.28688%202.6885%207.47193%202.76644ZM3.65141%207.45195L6.77378%207.44762L6.7761%204.41157L3.65141%207.45195ZM5.81657%200.893911L6.02338%200.893274L13.3879%200.870595C14.679%200.866619%2015.7208%201.91642%2015.722%203.20083L15.2221%203.20237L15.722%203.20052L15.722%203.20083L15.745%2017.8999L15.745%2017.9002C15.7462%2019.1846%2014.7063%2020.2408%2013.4153%2020.2448L2.35929%2020.2788C1.07114%2020.2828%200.0171799%2019.2362%200.0159721%2017.9486L0.00563138%206.92409L0.00543684%206.71668L0.152103%206.56972L5.67032%201.04045L5.81657%200.893911ZM6.23113%201.89264L1.00582%207.12841L1.01597%2017.9455C1.01666%2018.6791%201.62068%2019.2811%202.35835%2019.2788L13.4143%2019.2448C14.1484%2019.2425%2014.7456%2018.6402%2014.745%2017.9035C14.745%2017.9034%2014.745%2017.9033%2014.745%2017.9033L14.722%203.20423L14.722%203.20391C14.7213%202.46716%2014.123%201.86833%2013.3888%201.87059L6.23113%201.89264Z'%20fill='%232F374A'/%3e%3c/svg%3e",fNi=["src"],gNi={key:0,class:"bimdata-multi-model-loader__header-container"},mNi={key:0,class:"bimdata-multi-model-loader__header__loader"},ANi={class:"bimdata-multi-model-loader__header__picto"},vNi=["src"],bNi={class:"bimdata-multi-model-loader__header__name"},wNi={key:0,class:"bimdata-multi-model-loader__header__name--empty"},yNi={key:1,class:"bimdata-multi-model-loader__header__name--empty"},xNi={key:3},CNi={key:1,class:"bimdata-multi-model-loader__main"},kNi=["onMousemove","onClick"],MNi={__name:"BIMDataMultiModelLoader",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=Mt("$viewer"),r=xe(),n=xe(0),o=xe(0),s=xe(),a=ar([]),l=xe(!1),c=xe(!0),d=T=>{T.key==="Escape"?c.value=!0:T.key==="Enter"&&E()};Rt(c,T=>{T?(window.removeEventListener("keydown",d),v.clear(),b.clear(),r.value=null):window.addEventListener("keydown",d)});const u=Je(()=>i.localContext.loadedModels),h=Je(()=>i.localContext.loadedModelIds),p=Je(()=>i.localContext.loadingModelIds),g=Je(()=>i.localContext.multiModel),f=Je(()=>(e.customFilter?a.value.filter(e.customFilter):a.value).map(T=>u.value.find(_=>_.document?.head_id!=null&&_.document.head_id===T.document.id)??T)),A=T=>h.value.includes(T),m=T=>p.value.includes(T),b=Qo(new Set),v=Qo(new Set),w=T=>T.children?.some(_=>A(_.id))??!1,y=T=>(A(T.id)||w(T)||b.has(T))&&!v.has(T),x=Je(()=>{const{x:T,y:_}=s.value.getBoundingClientRect();return`top:${o.value-_}px; left:${n.value-T}px;`}),k=T=>{T.status==="C"&&(!g.value&&A(T.id)||(A(T.id)?v.has(T)?v.delete(T):v.add(T):b.has(T)?b.delete(T):b.add(T)))},E=()=>{b.size>0&&i.localContext.loadModels(Array.from(b).map(T=>T.id)),v.size>0&&i.localContext.unloadModels(Array.from(v).map(T=>T.id)),c.value=!0},B=T=>{switch(T){case"C":return"success";case"E":return"failed";case"P":case"I":return"sandglass"}},I=T=>T.document&&!T.document.is_head_version,S=(T,_)=>{!e.preview||c.value||(T?.viewer_360_file&&(n.value=_.clientX,o.value=_.clientY),r.value=T?.viewer_360_file)};return(async T=>{l.value=!0;try{return(await i.api.apiClient.modelApi.getModels(i.api.cloudId,i.api.projectId,void 0,void 0,T)).filter(_=>i.state.models.some(O=>O.archived)||!_.archived).sort(yu("updated_at",!1))}catch(_){console.error("[Models] Cannot get project models. Error: ",_)}finally{l.value=!1}return[]})(i.localContext.modelTypes).then(T=>{a.value=T}),(T,_)=>{const O=R("BIMDataSpinner"),N=R("BIMDataTextbox"),U=R("BIMDataIconChevron"),V=R("BIMDataButton"),Q=R("BIMDataIconFileIfcPolychrome"),$=R("BIMDataCheckbox"),be=R("BIMDataRadio"),ce=R("BIMDataIcon"),ke=R("BIMDataPaginatedList"),De=er("click-away");return P(),j("div",{ref_key:"templateRef",ref:s,class:Be(["bimdata-multi-model-loader",{"bimdata-multi-model-loader--window-positioning":t.windowPositioning}])},[r.value?(P(),j("div",{key:0,class:"bimdata-multi-model-loader__preview",style:Ee(x.value)},[C("img",{src:r.value},null,8,fNi)],4)):ye("",!0),D(hr,{name:"fade",mode:"out-in"},{default:H(()=>[c.value?(P(),j("div",gNi,[jt(T.$slots,"left",{},void 0,!0),C("div",{class:"bimdata-multi-model-loader__header",onClick:_[0]||(_[0]=pe=>c.value=!1)},[l.value||p.value.length>0?(P(),j("div",mNi,[D(O)])):(P(),j(mt,{key:1},[C("div",ANi,[C("img",{src:yt(pNi),alt:"file icon"},null,8,vNi)]),C("div",{class:Be(["bimdata-multi-model-loader__header__number bimdata-info-length",{"bimdata-multi-model-loader__header__number--empty":h.value.length===0}])},[C("span",null,Z(h.value.length),1)],2),C("div",bNi,[f.value.length===0?(P(),j("span",wNi,Z(T.$t("model.no_model")),1)):h.value.length===0?(P(),j("span",yNi,Z(T.$t("model.no_loaded_model")),1)):h.value.length===1?(P(),X(N,{key:2,text:u.value[0].name,tooltip:c.value,width:"233px"},null,8,["text","tooltip"])):h.value.length>1?(P(),j("span",xNi,Z(T.$t("model.selected_models")),1)):ye("",!0)]),D(V,{color:"default",icon:"",radius:"",fill:"",width:"21px",height:"21px"},{default:H(()=>[D(U,{size:"xxxs"})]),_:1})],64))]),jt(T.$slots,"right",{},void 0,!0)])):Ht((P(),j("div",CNi,[D(ke,{list:f.value,"per-page":10},{element:H(({element:pe})=>[C("div",{class:Be(["bimdata-multi-model-loader__main__model",{"bimdata-multi-model-loader__main__model--disabled":pe.status!=="C"}]),onMousemove:re=>S(pe,re),onMouseout:_[1]||(_[1]=re=>S()),onClick:re=>k(pe)},[D(Q,{fill:"",color:"default",size:"xs"}),g.value?(P(),X($,{key:0,"model-value":y(pe),disabled:pe.status!=="C"},null,8,["model-value","disabled"])):(P(),X(be,{key:1,"model-value":y(pe),disabled:pe.status!=="C"},null,8,["model-value","disabled"])),D(N,{class:Be({"bimdata-multi-model-loader__main__model__name":!0,"bimdata-multi-model-loader__main__model__name--disabled":pe.status!=="C"}),text:pe.name,width:I(pe)?"333px":"363px"},null,8,["class","text","width"]),I(pe)?(P(),X(ce,{key:2,name:"versioning",fill:"",color:"default",size:"xs",margin:"0 0 0 6px"})):ye("",!0),m(pe.id)?(P(),X(O,{key:3,class:"bimdata-multi-model-loader__main__model__spinner"})):(P(),X(ce,{key:4,name:B(pe.status),size:"xs",class:Be({"fill-success":pe.status==="C","fill-high":pe.status==="E"})},null,8,["name","class"]))],42,kNi)]),_:1},8,["list"]),D(V,{class:"bimdata-multi-model-loader__main__validate",width:"93px",color:"primary",fill:"",radius:"",disabled:yt(b).size===0&&yt(v).size===0,onClick:E},{default:H(()=>[lt(Z(T.$t("global.validate")),1)]),_:1},8,["disabled"])])),[[De,()=>c.value=!0]])]),_:3})],2)}}},ENi=G(MNi,[["__scopeId","data-v-44e6af66"]]),BNi={data(){return{shown:!1}},mounted(){setTimeout(()=>{this.shown=!0},500)}};function PNi(t,e,i,r,n,o){const s=R("BIMDataIllustration");return P(),j("div",{class:"bimdata__no-model",style:Ee({"--no-model--opacity":n.shown?1:0})},[D(s,{name:"emptyViewer",x:"90",y:"90"}),C("span",null,Z(t.$t("model.select_model")),1)],4)}const j7e=G(BNi,[["render",PNi],["__scopeId","data-v-5ffd9bc0"]]);window.BIMDataViewerVue=cee;class INi{constructor(e={}){const{api:i={},ui:r}=e;this.uiCfg=r,i.apiUrl||(console.info("[BIMData Viewer] INFO - Viewer config - `apiUrl` not set, use 'https://api.bimdata.io' by default."),i.apiUrl="https://api.bimdata.io"),i.archiveUrl||(console.info("[BIMData Viewer] INFO - Viewer config - `archiveUrl` not set, use 'https://archive.bimdata.io' by default."),i.archiveUrl="https://archive.bimdata.io"),i.pdfBackendUrl||(console.info("[BIMData Viewer] INFO - Viewer config - `pdfBackendUrl` not set, use 'https://pdf-backend.bimdata.io' by default."),i.pdfBackendUrl="https://pdf-backend.bimdata.io"),i.ifcIds&&(console.warn("[BIMData Viewer] DEPRECATED - Viewer config - please use the `modelIds` property instead of `ifcIds`."),i.modelIds===void 0&&(i.modelIds=i.ifcIds)),i.modelIds||(i.modelIds=[]),i.offline?.dataFile&&(i.offline.data=i.offline.dataFile),this.$viewer=new jqi(e),i.offline?.enabled?this.$viewer.api.enableOfflineMode(i.offline.data,i.offline.options).then(()=>this.state.loadModels(i.modelIds)):(this.$viewer.globalContext.loadingProcessStart(),this.state.loadModels(i.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"){const{$viewer:r}=this;await r.api.ready;try{const d=await r.api.apiClient.collaborationApi.checkProjectAccess(r.api.cloudId,r.api.projectId);r.api.permissions=_7e(d)}catch{r.api.permissions=_7e()}const n=this.api.accessToken,{i18n:o}=r;o.registerTranslations(r.pluginManager.pluginTranslations),r.layout.apply(i);const s={i18n:o.i18nVuePlugin,data(){return{accessToken:n}},render(){return Tn(iNi,{style:"height: 100%"})}},a=j6(s).use(o.i18nVuePlugin).use(CUi()).use(wUi({i18nPlugin:o.i18nVuePlugin})).use(Zqi({apiClient:r.api.apiClient,i18nPlugin:o.i18nVuePlugin}));a.provide("$viewer",r),a.provide("BIMDATA_DESIGN_SYSTEM_DARK_THEME",Je(()=>r.darkTheme)),a.component("BIMDataModelLoader",L7e),a.component("BIMDataMultiModelLoader",ENi),a.component("BIMDataNoModelWindowPlaceHolder",j7e),a.component("BIMDataStoreySelector",yF),a.component("ModelsLoader",L7e),a.component("NoModelWindowPlaceHolder",j7e);const l=e instanceof HTMLElement?e:document.querySelector(e);l&&(l.style.height="100%");const c=a.mount(e);return c.$viewer=r,Fqi(c.$el,this.uiCfg?.style),typeof window<"u"&&(window.bimdataViewer=c),this.vueApp=a,c}destroy(){this.vueApp?.unmount()}setLocale(e){if(!Eee.includes(e))throw new Error(`Viewer available locales are ${Eee.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 F7e=(t={})=>new INi(t);window.makeBIMDataViewer=F7e;const nl=typeof process=="object"&&process+""=="[object process]"&&!process.versions.nw&&!(process.versions.electron&&process.type&&process.type!=="browser"),LG=[.001,0,0,.001,0,0],jG=1.35,pc={ANY:1,DISPLAY:2,PRINT:4,ANNOTATIONS_FORMS:16,ANNOTATIONS_STORAGE:32,ANNOTATIONS_DISABLE:64,IS_EDITING:128,OPLIST:256},mf={DISABLE:0,ENABLE:1,ENABLE_FORMS:2,ENABLE_STORAGE:3},Q9="pdfjs_internal_editor_",ir={DISABLE:-1,NONE:0,FREETEXT:3,HIGHLIGHT:9,STAMP:13,INK:15,POPUP:16,SIGNATURE:101,COMMENT:102},Rr={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_THICKNESS:32,HIGHLIGHT_FREE:33,HIGHLIGHT_SHOW_ALL:34,DRAW_STEP:41},SNi={PRINT:4,MODIFY_CONTENTS:8,COPY:16,MODIFY_ANNOTATIONS:32,FILL_INTERACTIVE_FORMS:256,COPY_FOR_ACCESSIBILITY:512,ASSEMBLE:1024,PRINT_HIGH_QUALITY:2048},FG={TRIANGLES:1,LATTICE:2},ds={FILL:0,STROKE:1,FILL_STROKE:2,INVISIBLE:3,FILL_STROKE_MASK:3,ADD_TO_PATH_FLAG:4},tI={GRAYSCALE_1BPP:1,RGB_24BPP:2,RGBA_32BPP:3},Xo={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},hb={SOLID:1,DASHED:2,BEVELED:3,INSET:4,UNDERLINE:5},iI={ERRORS:0,WARNINGS:1,INFOS:5},K9={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,rawFillPath:94},W9={moveTo:0,lineTo:1,curveTo:2,quadraticCurveTo:3,closePath:4},TNi={NEED_PASSWORD:1,INCORRECT_PASSWORD:2};let rI=iI.WARNINGS;function RNi(t){Number.isInteger(t)&&(rI=t)}function DNi(){return rI}function nI(t){rI>=iI.INFOS&&console.info(`Info: ${t}`)}function rr(t){rI>=iI.WARNINGS&&console.warn(`Warning: ${t}`)}function on(t){throw new Error(t)}function Yr(t,e){t||on(e)}function _Ni(t){switch(t?.protocol){case"http:":case"https:":case"ftp:":case"mailto:":case"tel:":return!0;default:return!1}}function O7e(t,e=null,i=null){if(!t)return null;if(i&&typeof t=="string"&&(i.addDefaultProtocol&&t.startsWith("www.")&&t.match(/\./g)?.length>=2&&(t=`http://${t}`),i.tryConvertEncoding))try{t=UNi(t)}catch{}const r=e?URL.parse(t,e):URL.parse(t);return _Ni(r)?r:null}function q7e(t,e,i=!1){const r=URL.parse(t);return r?(r.hash=e,r.href):i&&O7e(t,"http://example.com")?t.split("#",1)[0]+`${e?`#${e}`:""}`:""}function OG(t){return t.substring(t.lastIndexOf("/")+1)}function Xi(t,e,i,r=!1){return Object.defineProperty(t,e,{value:i,enumerable:!r,configurable:!0,writable:!1}),i}const kg=(function(){function t(e,i){this.message=e,this.name=i}return t.prototype=new Error,t.constructor=t,t})();let U7e=class extends kg{constructor(t,e){super(t,"PasswordException"),this.code=e}},qG=class extends kg{constructor(t,e){super(t,"UnknownErrorException"),this.details=e}},UG=class extends kg{constructor(t){super(t,"InvalidPDFException")}},oI=class extends kg{constructor(t,e,i){super(t,"ResponseException"),this.status=e,this.missing=i}},LNi=class extends kg{constructor(t){super(t,"FormatError")}},Af=class extends kg{constructor(t){super(t,"AbortException")}};function jNi(t){(typeof t!="object"||t?.length===void 0)&&on("Invalid argument for bytesToString");const e=t.length,i=8192;if(e<i)return String.fromCharCode.apply(null,t);const r=[];for(let n=0;n<e;n+=i){const o=Math.min(n+i,e),s=t.subarray(n,o);r.push(String.fromCharCode.apply(null,s))}return r.join("")}function sI(t){typeof t!="string"&&on("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 FNi(t){return String.fromCharCode(t>>24&255,t>>16&255,t>>8&255,t&255)}function ONi(){const t=new Uint8Array(4);return t[0]=1,new Uint32Array(t.buffer,0,1)[0]===1}function qNi(){try{return new Function(""),!0}catch{return!1}}let us=class{static get isLittleEndian(){return Xi(this,"isLittleEndian",ONi())}static get isEvalSupported(){return Xi(this,"isEvalSupported",qNi())}static get isOffscreenCanvasSupported(){return Xi(this,"isOffscreenCanvasSupported",typeof OffscreenCanvas<"u")}static get isImageDecoderSupported(){return Xi(this,"isImageDecoderSupported",typeof ImageDecoder<"u")}static get isFloat16ArraySupported(){return Xi(this,"isFloat16ArraySupported",typeof Float16Array<"u")}static get isSanitizerSupported(){return Xi(this,"isSanitizerSupported",typeof Sanitizer<"u")}static get platform(){const{platform:t,userAgent:e}=navigator;return Xi(this,"platform",{isAndroid:e.includes("Android"),isLinux:t.includes("Linux"),isMac:t.includes("Mac"),isWindows:t.includes("Win"),isFirefox:e.includes("Firefox")})}static get isCSSRoundSupported(){return Xi(this,"isCSSRoundSupported",globalThis.CSS?.supports?.("width: round(1.5px, 1px)"))}};const NG=Array.from(Array(256).keys(),t=>t.toString(16).padStart(2,"0"));let li=class{static makeHexColor(t,e,i){return`#${NG[t]}${NG[e]}${NG[i]}`}static domMatrixToTransform(t){return[t.a,t.b,t.c,t.d,t.e,t.f]}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 multiplyByDOMMatrix(t,e){return[t[0]*e.a+t[2]*e.b,t[1]*e.a+t[3]*e.b,t[0]*e.c+t[2]*e.d,t[1]*e.c+t[3]*e.d,t[0]*e.e+t[2]*e.f+t[4],t[1]*e.e+t[3]*e.f+t[5]]}static applyTransform(t,e,i=0){const r=t[i],n=t[i+1];t[i]=r*e[0]+n*e[2]+e[4],t[i+1]=r*e[1]+n*e[3]+e[5]}static applyTransformToBezier(t,e,i=0){const r=e[0],n=e[1],o=e[2],s=e[3],a=e[4],l=e[5];for(let c=0;c<6;c+=2){const d=t[i+c],u=t[i+c+1];t[i+c]=d*r+u*o+a,t[i+c+1]=d*n+u*s+l}}static applyInverseTransform(t,e){const i=t[0],r=t[1],n=e[0]*e[3]-e[1]*e[2];t[0]=(i*e[3]-r*e[2]+e[2]*e[5]-e[4]*e[3])/n,t[1]=(-i*e[1]+r*e[0]+e[4]*e[1]-e[5]*e[0])/n}static axialAlignedBoundingBox(t,e,i){const r=e[0],n=e[1],o=e[2],s=e[3],a=e[4],l=e[5],c=t[0],d=t[1],u=t[2],h=t[3];let p=r*c+a,g=p,f=r*u+a,A=f,m=s*d+l,b=m,v=s*h+l,w=v;if(n!==0||o!==0){const y=n*c,x=n*u,k=o*d,E=o*h;p+=k,A+=k,f+=E,g+=E,m+=y,w+=y,v+=x,b+=x}i[0]=Math.min(i[0],p,f,g,A),i[1]=Math.min(i[1],m,v,b,w),i[2]=Math.max(i[2],p,f,g,A),i[3]=Math.max(i[3],m,v,b,w)}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,e){const i=t[0],r=t[1],n=t[2],o=t[3],s=i**2+r**2,a=i*n+r*o,l=n**2+o**2,c=(s+l)/2,d=Math.sqrt(c**2-(s*l-a**2));e[0]=Math.sqrt(c+d||1),e[1]=Math.sqrt(c-d||1)}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 n=Math.max(Math.min(t[1],t[3]),Math.min(e[1],e[3])),o=Math.min(Math.max(t[1],t[3]),Math.max(e[1],e[3]));return n>o?null:[i,n,r,o]}static pointBoundingBox(t,e,i){i[0]=Math.min(i[0],t),i[1]=Math.min(i[1],e),i[2]=Math.max(i[2],t),i[3]=Math.max(i[3],e)}static rectBoundingBox(t,e,i,r,n){n[0]=Math.min(n[0],t,i),n[1]=Math.min(n[1],e,r),n[2]=Math.max(n[2],t,i),n[3]=Math.max(n[3],e,r)}static#e(t,e,i,r,n,o,s,a,l,c){if(l<=0||l>=1)return;const d=1-l,u=l*l,h=u*l,p=d*(d*(d*t+3*l*e)+3*u*i)+h*r,g=d*(d*(d*n+3*l*o)+3*u*s)+h*a;c[0]=Math.min(c[0],p),c[1]=Math.min(c[1],g),c[2]=Math.max(c[2],p),c[3]=Math.max(c[3],g)}static#t(t,e,i,r,n,o,s,a,l,c,d,u){if(Math.abs(l)<1e-12){Math.abs(c)>=1e-12&&this.#e(t,e,i,r,n,o,s,a,-d/c,u);return}const h=c**2-4*d*l;if(h<0)return;const p=Math.sqrt(h),g=2*l;this.#e(t,e,i,r,n,o,s,a,(-c+p)/g,u),this.#e(t,e,i,r,n,o,s,a,(-c-p)/g,u)}static bezierBoundingBox(t,e,i,r,n,o,s,a,l){l[0]=Math.min(l[0],t,s),l[1]=Math.min(l[1],e,a),l[2]=Math.max(l[2],t,s),l[3]=Math.max(l[3],e,a),this.#t(t,i,n,s,e,r,o,a,3*(-t+3*(i-n)+s),6*(t-2*i+n),3*(i-t),l),this.#t(t,i,n,s,e,r,o,a,3*(-e+3*(r-o)+a),6*(e-2*r+o),3*(r-e),l)}};function UNi(t){return decodeURIComponent(escape(t))}let HG=null,N7e=null;function NNi(t){return HG||(HG=/([\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,N7e=new Map([["\uFB05","\u017Ft"]])),t.replaceAll(HG,(e,i,r)=>i?i.normalize("NFKC"):N7e.get(r))}function H7e(){if(typeof crypto.randomUUID=="function")return crypto.randomUUID();const t=new Uint8Array(32);return crypto.getRandomValues(t),jNi(t)}const pb="pdfjs_internal_id_";function HNi(t,e,i){if(!Array.isArray(i)||i.length<2)return!1;const[r,n,...o]=i;if(!t(r)&&!Number.isInteger(r)||!e(n))return!1;const s=o.length;let a=!0;switch(n.name){case"XYZ":if(s<2||s>3)return!1;break;case"Fit":case"FitB":return s===0;case"FitH":case"FitBH":case"FitV":case"FitBV":if(s>1)return!1;break;case"FitR":if(s!==4)return!1;a=!1;break;default:return!1}for(const l of o)if(!(typeof l=="number"||a&&l===null))return!1;return!0}const z7e=()=>[],zG=()=>new Map,VG=()=>Object.create(null);function Es(t,e,i){return Math.min(Math.max(t,e),i)}typeof Math.sumPrecise!="function"&&(Math.sumPrecise=function(t){return t.reduce((e,i)=>e+i,0)});class dy{static textContent(e){const i=[],r={items:i,styles:Object.create(null)};function n(o){if(!o)return;let s=null;const a=o.name;if(a==="#text")s=o.value;else if(dy.shouldBuildText(a))o?.attributes?.textContent?s=o.attributes.textContent:o.value&&(s=o.value);else return;if(s!==null&&i.push({str:s}),!!o.children)for(const l of o.children)n(l)}return n(e),r}static shouldBuildText(e){return!(e==="textarea"||e==="input"||e==="option"||e==="select")}}class V7e{static setupStorage(e,i,r,n,o){const s=n.getValue(i,{value:null});switch(r.name){case"textarea":if(s.value!==null&&(e.textContent=s.value),o==="print")break;e.addEventListener("input",a=>{n.setValue(i,{value:a.target.value})});break;case"input":if(r.attributes.type==="radio"||r.attributes.type==="checkbox"){if(s.value===r.attributes.xfaOn?e.setAttribute("checked",!0):s.value===r.attributes.xfaOff&&e.removeAttribute("checked"),o==="print")break;e.addEventListener("change",a=>{n.setValue(i,{value:a.target.checked?a.target.getAttribute("xfaOn"):a.target.getAttribute("xfaOff")})})}else{if(s.value!==null&&e.setAttribute("value",s.value),o==="print")break;e.addEventListener("input",a=>{n.setValue(i,{value:a.target.value})})}break;case"select":if(s.value!==null){e.setAttribute("value",s.value);for(const a of r.children)a.attributes.value===s.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;n.setValue(i,{value:c})});break}}static setAttributes({html:e,element:i,storage:r=null,intent:n,linkService:o}){const{attributes:s}=i,a=e instanceof HTMLAnchorElement;s.type==="radio"&&(s.name=`${s.name}-${n}`);for(const[l,c]of Object.entries(s))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&&o.addLinkAttributes(e,s.href,s.newWindow),r&&s.dataId&&this.setupStorage(e,s.dataId,i,r)}static render(e){const i=e.annotationStorage,r=e.linkService,n=e.xfaHtml,o=e.intent||"display",s=document.createElement(n.name);n.attributes&&this.setAttributes({html:s,element:n,intent:o,linkService:r});const a=o!=="richText",l=e.div;if(l.append(s),e.viewport){const u=`matrix(${e.viewport.transform.join(",")})`;l.style.transform=u}a&&l.setAttribute("class","xfaLayer xfaFont");const c=[];if(n.children.length===0){if(n.value){const u=document.createTextNode(n.value);s.append(u),a&&dy.shouldBuildText(n.name)&&c.push(u)}return{textDivs:c}}const d=[[n,-1,s]];for(;d.length>0;){const[u,h,p]=d.at(-1);if(h+1===u.children.length){d.pop();continue}const g=u.children[++d.at(-1)[1]];if(g===null)continue;const{name:f}=g;if(f==="#text"){const m=document.createTextNode(g.value);c.push(m),p.append(m);continue}const A=g?.attributes?.xmlns?document.createElementNS(g.attributes.xmlns,f):document.createElement(f);if(p.append(A),g.attributes&&this.setAttributes({html:A,element:g,storage:i,intent:o,linkService:r}),g.children?.length>0)d.push([g,-1,A]);else if(g.value){const m=document.createTextNode(g.value);a&&dy.shouldBuildText(f)&&c.push(m),A.append(m)}}for(const u of l.querySelectorAll(".xfaNonInteractive input, .xfaNonInteractive textarea"))u.setAttribute("readOnly",!0);return{textDivs:c}}static update(e){const i=`matrix(${e.viewport.transform.join(",")})`;e.div.style.transform=i,e.div.hidden=!1}}const Pp="http://www.w3.org/2000/svg";class fb{static CSS=96;static PDF=72;static PDF_TO_CSS_UNITS=this.CSS/this.PDF}async function J9(t,e="text"){if(Y9(t,document.baseURI)){const i=await fetch(t);if(!i.ok)throw new Error(i.statusText);switch(e){case"blob":return i.blob();case"bytes":return i.bytes();case"json":return i.json()}return i.text()}return new Promise((i,r)=>{const n=new XMLHttpRequest;n.open("GET",t,!0),n.responseType=e==="bytes"?"arraybuffer":e,n.onreadystatechange=()=>{if(n.readyState===XMLHttpRequest.DONE){if(n.status===200||n.status===0){switch(e){case"bytes":i(new Uint8Array(n.response));return;case"blob":case"json":i(n.response);return}i(n.responseText);return}r(new Error(n.statusText))}},n.send(null)})}class uy{constructor({viewBox:e,userUnit:i,scale:r,rotation:n,offsetX:o=0,offsetY:s=0,dontFlip:a=!1}){this.viewBox=e,this.userUnit=i,this.scale=r,this.rotation=n,this.offsetX=o,this.offsetY=s,r*=i;const l=(e[2]+e[0])/2,c=(e[3]+e[1])/2;let d,u,h,p;switch(n%=360,n<0&&(n+=360),n){case 180:d=-1,u=0,h=0,p=1;break;case 90:d=0,u=1,h=1,p=0;break;case 270:d=0,u=-1,h=-1,p=0;break;case 0:d=1,u=0,h=0,p=-1;break;default:throw new Error("PageViewport: Invalid rotation, must be a multiple of 90 degrees.")}a&&(h=-h,p=-p);let g,f,A,m;d===0?(g=Math.abs(c-e[1])*r+o,f=Math.abs(l-e[0])*r+s,A=(e[3]-e[1])*r,m=(e[2]-e[0])*r):(g=Math.abs(l-e[0])*r+o,f=Math.abs(c-e[1])*r+s,A=(e[2]-e[0])*r,m=(e[3]-e[1])*r),this.transform=[d*r,u*r,h*r,p*r,g-d*r*l-h*r*c,f-u*r*l-p*r*c],this.width=A,this.height=m}get rawDims(){const e=this.viewBox;return Xi(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:n=this.offsetY,dontFlip:o=!1}={}){return new uy({viewBox:this.viewBox.slice(),userUnit:this.userUnit,scale:e,rotation:i,offsetX:r,offsetY:n,dontFlip:o})}convertToViewportPoint(e,i){const r=[e,i];return li.applyTransform(r,this.transform),r}convertToViewportRectangle(e){const i=[e[0],e[1]];li.applyTransform(i,this.transform);const r=[e[2],e[3]];return li.applyTransform(r,this.transform),[i[0],i[1],r[0],r[1]]}convertToPdfPoint(e,i){const r=[e,i];return li.applyInverseTransform(r,this.transform),r}}class GG extends kg{constructor(e,i=0){super(e,"RenderingCancelledException"),this.extraDelay=i}}function aI(t){const e=t.length;let i=0;for(;i<e&&t[i].trim()==="";)i++;return t.substring(i,i+5).toLowerCase()==="data:"}function QG(t){return typeof t=="string"&&/\.pdf$/i.test(t)}function zNi(t){return[t]=t.split(/[#?]/,1),OG(t)}function VNi(t,e="document.pdf"){if(typeof t!="string")return e;if(aI(t))return rr('getPdfFilenameFromUrl: ignore "data:"-URL for performance reasons.'),e;const i=(s=>{try{return new URL(s)}catch{try{return new URL(decodeURIComponent(s))}catch{try{return new URL(s,"https://foo.bar")}catch{try{return new URL(decodeURIComponent(s),"https://foo.bar")}catch{return null}}}}})(t);if(!i)return e;const r=s=>{try{let a=decodeURIComponent(s);return a.includes("/")&&(a=OG(a),/^\.pdf$/i.test(a))?s:a}catch{return s}},n=/\.pdf$/i,o=OG(i.pathname);if(n.test(o))return r(o);if(i.searchParams.size>0){const s=l=>[...l].findLast(c=>n.test(c)),a=s(i.searchParams.values())??s(i.searchParams.keys());if(a)return r(a)}if(i.hash){const s=/[^/?#=]+\.pdf\b(?!.*\.pdf\b)/i.exec(i.hash);if(s)return r(s[0])}return e}class G7e{started=Object.create(null);times=[];time(e){e in this.started&&rr(`Timer is already running for ${e}`),this.started[e]=Date.now()}timeEnd(e){e in this.started||rr(`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:n,end:o}of this.times)e.push(`${r.padEnd(i)} ${o-n}ms
|
|
6438
6438
|
`);return e.join("")}}function Y9(t,e){const i=e?URL.parse(t,e):URL.parse(t);return/https?:/.test(i?.protocol??"")}function Jc(t){t.preventDefault()}function ko(t){t.preventDefault(),t.stopPropagation()}function Q7e(t){console.log("Deprecated API usage: "+t)}class KG{static#e;static toDateObject(e){if(e instanceof Date)return e;if(!e||typeof e!="string")return null;this.#e||=new RegExp("^D:(\\d{4})(\\d{2})?(\\d{2})?(\\d{2})?(\\d{2})?(\\d{2})?([Z|+|-])?(\\d{2})?'?(\\d{2})?'?");const i=this.#e.exec(e);if(!i)return null;const r=parseInt(i[1],10);let n=parseInt(i[2],10);n=n>=1&&n<=12?n-1:0;let o=parseInt(i[3],10);o=o>=1&&o<=31?o:1;let s=parseInt(i[4],10);s=s>=0&&s<=23?s: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 u=parseInt(i[9],10)||0;return u=u>=0&&u<=59?u:0,c==="-"?(s+=d,a+=u):c==="+"&&(s-=d,a-=u),new Date(Date.UTC(r,n,o,s,a,l))}}function GNi(t,{scale:e=1,rotation:i=0}){const{width:r,height:n}=t.attributes.style,o=[0,0,parseInt(r),parseInt(n)];return new uy({viewBox:o,userUnit:1,scale:e,rotation:i})}function Z9(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):(rr(`Not a valid color format: "${t}"`),[0,0,0])}function QNi(t){const e=document.createElement("span");e.style.visibility="hidden",e.style.colorScheme="only light",document.body.append(e);for(const i of t.keys()){e.style.color=i;const r=window.getComputedStyle(e).color;t.set(i,Z9(r))}e.remove()}function po(t){const{a:e,b:i,c:r,d:n,e:o,f:s}=t.getTransform();return[e,i,r,n,o,s]}function Ju(t){const{a:e,b:i,c:r,d:n,e:o,f:s}=t.getTransform().invertSelf();return[e,i,r,n,o,s]}function Mg(t,e,i=!1,r=!0){if(e instanceof uy){const{pageWidth:n,pageHeight:o}=e.rawDims,{style:s}=t,a=us.isCSSRoundSupported,l=`var(--total-scale-factor) * ${n}px`,c=`var(--total-scale-factor) * ${o}px`,d=a?`round(down, ${l}, var(--scale-round-x))`:`calc(${l})`,u=a?`round(down, ${c}, var(--scale-round-y))`:`calc(${c})`;!i||e.rotation%180===0?(s.width=d,s.height=u):(s.width=u,s.height=d)}r&&t.setAttribute("data-main-rotation",e.rotation)}class dh{constructor(){const{pixelRatio:e}=dh;this.sx=e,this.sy=e}get scaled(){return this.sx!==1||this.sy!==1}get symmetric(){return this.sx===this.sy}limitCanvas(e,i,r,n,o=-1){let s=1/0,a=1/0,l=1/0;r=dh.capPixels(r,o),r>0&&(s=Math.sqrt(r/(e*i))),n!==-1&&(a=n/e,l=n/i);const c=Math.min(s,a,l);return this.sx>c||this.sy>c?(this.sx=c,this.sy=c,!0):!1}static get pixelRatio(){return globalThis.devicePixelRatio||1}static capPixels(e,i){if(i>=0){const r=Math.ceil(window.screen.availWidth*window.screen.availHeight*this.pixelRatio**2*(1+i/100));return e>0?Math.min(e,r):r}return e}}const WG=["image/apng","image/avif","image/bmp","image/gif","image/jpeg","image/png","image/svg+xml","image/webp","image/x-icon"];class KNi{static get isDarkMode(){return Xi(this,"isDarkMode",!!window?.matchMedia?.("(prefers-color-scheme: dark)").matches)}}class WNi{static get commentForegroundColor(){const e=document.createElement("span");e.classList.add("comment","sidebar");const{style:i}=e;i.width=i.height="0",i.display="none",i.color="var(--comment-fg-color)",document.body.append(e);const{color:r}=window.getComputedStyle(e);return e.remove(),Xi(this,"commentForegroundColor",Z9(r))}}function JNi(t,e,i,r){r=Es(r??1,0,1);const n=255*(1-r);return t=Math.round(t*r+n),e=Math.round(e*r+n),i=Math.round(i*r+n),[t,e,i]}function K7e(t,e){const i=t[0]/255,r=t[1]/255,n=t[2]/255,o=Math.max(i,r,n),s=Math.min(i,r,n),a=(o+s)/2;if(o===s)e[0]=e[1]=0;else{const l=o-s;switch(e[1]=a<.5?l/(o+s):l/(2-o-s),o){case i:e[0]=((r-n)/l+(r<n?6:0))*60;break;case r:e[0]=((n-i)/l+2)*60;break;case n:e[0]=((i-r)/l+4)*60;break}}e[2]=a}function JG(t,e){const i=t[0],r=t[1],n=t[2],o=(1-Math.abs(2*n-1))*r,s=o*(1-Math.abs(i/60%2-1)),a=n-o/2;switch(Math.floor(i/60)){case 0:e[0]=o+a,e[1]=s+a,e[2]=a;break;case 1:e[0]=s+a,e[1]=o+a,e[2]=a;break;case 2:e[0]=a,e[1]=o+a,e[2]=s+a;break;case 3:e[0]=a,e[1]=s+a,e[2]=o+a;break;case 4:e[0]=s+a,e[1]=a,e[2]=o+a;break;case 5:case 6:e[0]=o+a,e[1]=a,e[2]=s+a;break}}function W7e(t){return t<=.03928?t/12.92:((t+.055)/1.055)**2.4}function J7e(t,e,i){JG(t,i),i.map(W7e);const r=.2126*i[0]+.7152*i[1]+.0722*i[2];JG(e,i),i.map(W7e);const n=.2126*i[0]+.7152*i[1]+.0722*i[2];return r>n?(r+.05)/(n+.05):(n+.05)/(r+.05)}const Y7e=new Map;function YNi(t,e){const i=t[0]+t[1]*256+t[2]*65536+e[0]*16777216+e[1]*4294967296+e[2]*1099511627776;let r=Y7e.get(i);if(r)return r;const n=new Float32Array(9),o=n.subarray(0,3),s=n.subarray(3,6);K7e(t,s);const a=n.subarray(6,9);K7e(e,a);const l=a[2]<.5,c=l?12:4.5;if(s[2]=l?Math.sqrt(s[2]):1-Math.sqrt(1-s[2]),J7e(s,a,o)<c){let d,u;l?(d=s[2],u=1):(d=0,u=s[2]);const h=.005;for(;u-d>h;){const p=s[2]=(d+u)/2;l===J7e(s,a,o)<c?d=p:u=p}s[2]=l?u:d}return JG(s,o),r=li.makeHexColor(Math.round(o[0]*255),Math.round(o[1]*255),Math.round(o[2]*255)),Y7e.set(i,r),r}function Z7e({html:t,dir:e,className:i},r){const n=document.createDocumentFragment();if(typeof t=="string"){const o=document.createElement("p");o.dir=e||"auto";const s=t.split(/(?:\r\n?|\n)/);for(let a=0,l=s.length;a<l;++a){const c=s[a];o.append(document.createTextNode(c)),a<l-1&&o.append(document.createElement("br"))}n.append(o)}else V7e.render({xfaHtml:t,div:n,intent:"richText"});n.firstElementChild.classList.add("richText",i),r.append(n)}function X7e(t){const e=new Path2D;if(!t)return e;for(let i=0,r=t.length;i<r;)switch(t[i++]){case W9.moveTo:e.moveTo(t[i++],t[i++]);break;case W9.lineTo:e.lineTo(t[i++],t[i++]);break;case W9.curveTo:e.bezierCurveTo(t[i++],t[i++],t[i++],t[i++],t[i++],t[i++]);break;case W9.quadraticCurveTo:e.quadraticCurveTo(t[i++],t[i++],t[i++],t[i++]);break;case W9.closePath:e.closePath();break;default:rr(`Unrecognized drawing path operator: ${t[i-1]}`);break}return e}class ZNi{#e=null;#t=null;#r=null;#i=0;#n=[];#o=null;#s=null;get pagesNumber(){return this.#i}set pagesNumber(e){this.#i!==e&&(this.#i=e,this.#a())}#a(){this.#t=null,this.#e=null}addListener(e){this.#n.push(e)}removeListener(e){const i=this.#n.indexOf(e);i>=0&&this.#n.splice(i,1)}#l(e){for(const i of this.#n)i(e)}#c(e){if(this.#t)return;const i=this.#i,r=this.#t=new Uint32Array(i);this.#r=new Int32Array(r);const n=this.#e=new Map;if(e)for(let o=1;o<=i;o++)r[o-1]=o,n.set(o,[o])}#d(){const e=this.#e,i=this.#t;e.clear();for(let r=0,n=this.#i;r<n;r++){const o=i[r],s=e.get(o);s?s.push(r+1):e.set(o,[r+1])}}movePages(e,i,r){this.#c(!0);const n=this.#t,o=this.#e,s=i.length,a=new Uint32Array(s);let l=0;for(let h=0;h<s;h++){const p=i[h]-1;a[h]=n[p],p<r&&(l+=1)}const c=this.#i;let d=r-l;const u=c-s;d=Es(d,0,u);for(let h=0,p=0;h<c;h++)e.has(h+1)||(n[p++]=n[h]);n.copyWithin(d+s,d,u),n.set(a,d),this.#h(o,null),this.#d(),this.#l({type:"move"}),n.every((h,p)=>h===p+1)&&this.#a()}deletePages(e){this.#c(!0);const i=this.#t,r=this.#e;this.pagesNumber-=e.length,this.#c(!1);const n=this.#t;let o=0,s=0;for(const a of e){const l=a-1;l!==o&&(n.set(i.subarray(o,l),s),s+=l-o),o=l+1}o<i.length&&n.set(i.subarray(o),s),this.#h(r,null),this.#d(),this.#l({type:"delete",pageNumbers:e})}copyPages(e){this.#c(!0),this.#s=e,this.#o=e.map(i=>this.#t[i-1]),this.#l({type:"copy",pageNumbers:e})}pastePages(e){this.#c(!0);const i=this.#t,r=this.#e,n=this.#s,o=new Map;let s=e;for(const l of n)o.set(++s,l);this.pagesNumber+=n.length,this.#c(!1);const a=this.#t;a.set(i.subarray(0,e),0),a.set(this.#o,e),a.set(i.subarray(e),e+n.length),this.#h(r,o),this.#d(),this.#l({type:"paste"}),this.#o=null}#h(e,i){const r=this.#r,n=this.#t,o=new Map;for(let s=0,a=this.#i;s<a;s++){const l=i?.get(s+1);if(l){r[s]=-l;continue}const c=n[s],d=o.get(c)||0;r[s]=e.get(c)?.[d],o.set(c,d+1)}}hasBeenAltered(){return this.#t!==null}getPageMappingForSaving(){const e=this.#e;let i=0;for(const n of e.values())i=Math.max(i,n.length);const r=new Array(i);for(let n=0;n<i;n++)r[n]={document:null,pageIndices:[],includePages:[]};for(const[n,o]of e)for(let s=0,a=o.length;s<a;s++)r[s].includePages.push([n-1,o[s]-1]);for(const{includePages:n,pageIndices:o}of r){n.sort((s,a)=>s[0]-a[0]);for(let s=0,a=n.length;s<a;s++)o.push(n[s][1]),n[s]=n[s][0]}return r}getPrevPageNumber(e){return this.#r[e-1]??0}getPageNumber(e){return this.#e?this.#e.get(e)?.[0]??0:e}getPageId(e){return this.#t?.[e-1]??e}getMapping(){return this.#t.subarray(0,this.pagesNumber)}}class hy{#e=null;#t=null;#r;#i=null;#n=null;#o=null;#s=null;#a=null;static#l=null;constructor(e){this.#r=e,hy.#l||=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",signature:"pdfjs-editor-remove-signature-button"})}render(){const e=this.#e=document.createElement("div");e.classList.add("editToolbar","hidden"),e.setAttribute("role","toolbar");const i=this.#r._uiManager._signal;i instanceof AbortSignal&&!i.aborted&&(e.addEventListener("contextmenu",Jc,{signal:i}),e.addEventListener("pointerdown",hy.#c,{signal:i}));const r=this.#i=document.createElement("div");r.className="buttons",e.append(r);const n=this.#r.toolbarPosition;if(n){const{style:o}=e,s=this.#r._uiManager.direction==="ltr"?1-n[0]:n[0];o.insetInlineEnd=`${100*s}%`,o.top=`calc(${100*n[1]}% + var(--editor-toolbar-vert-offset))`}return e}get div(){return this.#e}static#c(e){e.stopPropagation()}#d(e){this.#r._focusEventsAllowed=!1,ko(e)}#h(e){this.#r._focusEventsAllowed=!0,ko(e)}#p(e){const i=this.#r._uiManager._signal;return!(i instanceof AbortSignal)||i.aborted?!1:(e.addEventListener("focusin",this.#d.bind(this),{capture:!0,signal:i}),e.addEventListener("focusout",this.#h.bind(this),{capture:!0,signal:i}),e.addEventListener("contextmenu",Jc,{signal:i}),!0)}hide(){this.#e.classList.add("hidden"),this.#t?.hideDropdown()}show(){this.#e.classList.remove("hidden"),this.#n?.shown(),this.#o?.shown()}addDeleteButton(){const{editorType:e,_uiManager:i}=this.#r,r=document.createElement("button");r.classList.add("basic","deleteButton"),r.tabIndex=0,r.setAttribute("data-l10n-id",hy.#l[e]),this.#p(r)&&r.addEventListener("click",n=>{i.delete()},{signal:i._signal}),this.#i.append(r)}get#m(){const e=document.createElement("div");return e.className="divider",e}async addAltText(e){const i=await e.render();this.#p(i),this.#i.append(i,this.#m),this.#n=e}addComment(e,i=null){if(this.#o)return;const r=e.renderForToolbar();if(!r)return;this.#p(r);const n=this.#s=this.#m;i?(this.#i.insertBefore(r,i),this.#i.insertBefore(n,i)):this.#i.append(r,n),this.#o=e,e.toolbar=this}addColorPicker(e){if(this.#t)return;this.#t=e;const i=e.renderButton();this.#p(i),this.#i.append(i,this.#m)}async addEditSignatureButton(e){const i=this.#a=await e.renderEditButton(this.#r);this.#p(i),this.#i.append(i,this.#m)}removeButton(e){e==="comment"&&(this.#o?.removeToolbarCommentButton(),this.#o=null,this.#s?.remove(),this.#s=null)}async addButton(e,i){switch(e){case"colorPicker":i&&this.addColorPicker(i);break;case"altText":i&&await this.addAltText(i);break;case"editSignature":i&&await this.addEditSignatureButton(i);break;case"delete":this.addDeleteButton();break;case"comment":i&&this.addComment(i);break}}async addButtonBefore(e,i,r){if(!i&&e==="comment")return;const n=this.#i.querySelector(r);n&&e==="comment"&&this.addComment(i,n)}updateEditSignatureButton(e){this.#a&&(this.#a.title=e)}remove(){this.#e.remove(),this.#t?.destroy(),this.#t=null}}class XNi{#e=null;#t=null;#r;constructor(e){this.#r=e}#i(){const e=this.#t=document.createElement("div");e.className="editToolbar",e.setAttribute("role","toolbar");const i=this.#r._signal;i instanceof AbortSignal&&!i.aborted&&e.addEventListener("contextmenu",Jc,{signal:i});const r=this.#e=document.createElement("div");return r.className="buttons",e.append(r),this.#r.hasCommentManager()&&this.#o("commentButton","pdfjs-comment-floating-button","pdfjs-comment-floating-button-label",()=>{this.#r.commentSelection("floating_button")}),this.#o("highlightButton","pdfjs-highlight-floating-button1","pdfjs-highlight-floating-button-label",()=>{this.#r.highlightSelection("floating_button")}),e}#n(e,i){let r=0,n=0;for(const o of e){const s=o.y+o.height;if(s<r)continue;const a=o.x+(i?o.width:0);if(s>r){n=a,r=s;continue}i?a>n&&(n=a):a<n&&(n=a)}return[i?1-n:n,r]}show(e,i,r){const[n,o]=this.#n(i,r),{style:s}=this.#t||=this.#i();e.append(this.#t),s.insetInlineEnd=`${100*n}%`,s.top=`calc(${100*o}% + var(--editor-toolbar-vert-offset))`}hide(){this.#t.remove()}#o(e,i,r,n){const o=document.createElement("button");o.classList.add("basic",e),o.tabIndex=0,o.setAttribute("data-l10n-id",i);const s=document.createElement("span");o.append(s),s.className="visuallyHidden",s.setAttribute("data-l10n-id",r);const a=this.#r._signal;a instanceof AbortSignal&&!a.aborted&&(o.addEventListener("contextmenu",Jc,{signal:a}),o.addEventListener("click",n,{signal:a})),this.#e.append(o)}}function $7e(t,e,i){for(const r of i)e.addEventListener(r,t[r].bind(t))}class an{static#e=NaN;static#t=null;static#r=NaN;static#i=null;static initializeAndAddPointerId(e){(an.#t||=new Set).add(e)}static setPointer(e,i){an.#e||=i,an.#i??=e}static setTimeStamp(e){an.#r=e}static isSamePointerId(e){return an.#e===e}static isSamePointerIdOrRemove(e){return an.#e===e?!0:(an.#t?.delete(e),!1)}static isSamePointerType(e){return an.#i===e}static isInitializedAndDifferentPointerType(e){return an.#i!==null&&!an.isSamePointerType(e)}static isSameTimeStamp(e){return an.#r===e}static isUsingMultiplePointers(){return an.#t?.size>=1}static clearPointerType(){an.#i=null}static clearPointerIds(){an.#e=NaN,an.#t=null}static clearTimeStamp(){an.#r=NaN}}class $Ni{#e=0;get id(){return`${Q9}${this.#e++}`}}class fW{#e=H7e();#t=0;#r=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 n=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 Xi(this,"_isSVGFittingCanvas",n)}async#i(e,i){this.#r||=new Map;let r=this.#r.get(e);if(r===null)return null;if(r?.bitmap)return r.refCounter+=1,r;try{r||={bitmap:null,id:`image_${this.#e}_${this.#t++}`,refCounter:0,isSvg:!1};let n;if(typeof i=="string"?(r.url=i,n=await J9(i,"blob")):i instanceof File?n=r.file=i:i instanceof Blob&&(n=i),n.type==="image/svg+xml"){const o=fW._isSVGFittingCanvas,s=new FileReader,a=new Image,l=new Promise((c,d)=>{a.onload=()=>{r.bitmap=a,r.isSvg=!0,c()},s.onload=async()=>{const u=r.svgUrl=s.result;a.src=await o?`${u}#svgView(preserveAspectRatio(none))`:u},a.onerror=s.onerror=d});s.readAsDataURL(n),await l}else r.bitmap=await createImageBitmap(n);r.refCounter=1}catch(n){rr(n),r=null}return this.#r.set(e,r),r&&this.#r.set(r.id,r),r}async getFromFile(e){const{lastModified:i,name:r,size:n,type:o}=e;return this.#i(`${i}_${r}_${n}_${o}`,e)}async getFromUrl(e){return this.#i(e,e)}async getFromBlob(e,i){const r=await i;return this.#i(e,r)}async getFromId(e){this.#r||=new Map;const i=this.#r.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){this.#r||=new Map;let r=this.#r.get(e);if(r?.bitmap)return r.refCounter+=1,r;const n=new OffscreenCanvas(i.width,i.height);return n.getContext("2d").drawImage(i,0,0),r={bitmap:n.transferToImageBitmap(),id:`image_${this.#e}_${this.#t++}`,refCounter:1,isSvg:!1},this.#r.set(e,r),this.#r.set(r.id,r),r}getSvgUrl(e){const i=this.#r.get(e);return i?.isSvg?i.svgUrl:null}deleteId(e){this.#r||=new Map;const i=this.#r.get(e);if(!i||(i.refCounter-=1,i.refCounter!==0))return;const{bitmap:r}=i;if(!i.url&&!i.file){const n=new OffscreenCanvas(r.width,r.height);n.getContext("bitmaprenderer").transferFromImageBitmap(r),i.blobPromise=n.convertToBlob()}r.close?.(),i.bitmap=null}isValidId(e){return e.startsWith(`image_${this.#e}_`)}}class eHi{#e=[];#t=!1;#r;#i=-1;constructor(e=128){this.#r=e}add({cmd:e,undo:i,post:r,mustExec:n,type:o=NaN,overwriteIfSameType:s=!1,keepUndo:a=!1}){if(n&&e(),this.#t)return;const l={cmd:e,undo:i,post:r,type:o};if(this.#i===-1){this.#e.length>0&&(this.#e.length=0),this.#i=0,this.#e.push(l);return}if(s&&this.#e[this.#i].type===o){a&&(l.undo=this.#e[this.#i].undo),this.#e[this.#i]=l;return}const c=this.#i+1;c===this.#r?this.#e.splice(0,1):(this.#i=c,c<this.#e.length&&this.#e.splice(c)),this.#e.push(l)}undo(){if(this.#i===-1)return;this.#t=!0;const{undo:e,post:i}=this.#e[this.#i];e(),i?.(),this.#t=!1,this.#i-=1}redo(){if(this.#i<this.#e.length-1){this.#i+=1,this.#t=!0;const{cmd:e,post:i}=this.#e[this.#i];e(),i?.(),this.#t=!1}}hasSomethingToUndo(){return this.#i!==-1}hasSomethingToRedo(){return this.#i<this.#e.length-1}cleanType(e){if(this.#i!==-1){for(let i=this.#i;i>=0;i--)if(this.#e[i].type!==e){this.#e.splice(i+1,this.#i-i),this.#i=i;return}this.#e.length=0,this.#i=-1}}destroy(){this.#e=null}}class X9{constructor(e){this.buffer=[],this.callbacks=new Map,this.allKeys=new Set;const{isMac:i}=us.platform;for(const[r,n,o={}]of e)for(const s of r){const a=s.startsWith("mac+");i&&a?(this.callbacks.set(s.slice(4),{callback:n,options:o}),this.allKeys.add(s.split("+").at(-1))):!i&&!a&&(this.callbacks.set(s,{callback:n,options:o}),this.allKeys.add(s.split("+").at(-1)))}}#e(e){e.altKey&&this.buffer.push("alt"),e.ctrlKey&&this.buffer.push("ctrl"),e.metaKey&&this.buffer.push("meta"),e.shiftKey&&this.buffer.push("shift"),this.buffer.push(e.key);const i=this.buffer.join("+");return this.buffer.length=0,i}exec(e,i){if(!this.allKeys.has(i.key))return;const r=this.callbacks.get(this.#e(i));if(!r)return;const{callback:n,options:{bubbles:o=!1,args:s=[],checker:a=null}}=r;a&&!a(e,i)||(n.bind(e,...s,i)(),o||ko(i))}}class gW{static _colorsMapping=new Map([["CanvasText",[0,0,0]],["Canvas",[255,255,255]]]);get _colors(){const e=new Map([["CanvasText",null],["Canvas",null]]);return QNi(e),Xi(this,"_colors",e)}convert(e){const i=Z9(e);if(!window.matchMedia("(forced-colors: active)").matches)return i;for(const[r,n]of this._colors)if(n.every((o,s)=>o===i[s]))return gW._colorsMapping.get(r);return i}getHexCode(e){const i=this._colors.get(e);return i?li.makeHexColor(...i):e}}class qf{#e=new AbortController;#t=null;#r=null;#i=new Map;#n=new Map;#o=null;#s=null;#a=null;#l=new eHi;#c=null;#d=null;#h=null;#p=0;#m=new Set;#g=null;#u=null;#f=new Set;_editorUndoBar=null;#A=!1;#b=!1;#v=!1;#k=null;#C=null;#w=null;#E=null;#y=!1;#M=null;#S=new $Ni;#P=!1;#I=!1;#F=!1;#R=null;#_=null;#O=null;#L=null;#V=null;#B=ir.NONE;#x=new Set;#D=null;#q=null;#N=null;#K=null;#Q=null;#W={isEditing:!1,isEmpty:!0,hasSomethingToUndo:!1,hasSomethingToRedo:!1,hasSelectedEditor:!1,hasSelectedText:!1};#H=[0,0];#j=null;#G=null;#X=null;#$=null;#U=null;static TRANSLATE_SMALL=1;static TRANSLATE_BIG=10;static get _keyboardManager(){const e=qf.prototype,i=s=>s.#G.contains(document.activeElement)&&document.activeElement.tagName!=="BUTTON"&&s.hasSomethingToControl(),r=(s,{target:a})=>{if(a instanceof HTMLInputElement){const{type:l}=a;return l!=="text"&&l!=="number"}return!0},n=this.TRANSLATE_SMALL,o=this.TRANSLATE_BIG;return Xi(this,"_keyboardManager",new X9([[["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:(s,{target:a})=>!(a instanceof HTMLButtonElement)&&s.#G.contains(a)&&!s.isEnterHandled}],[[" ","mac+ "],e.addNewEditorFromKeyboard,{checker:(s,{target:a})=>!(a instanceof HTMLButtonElement)&&s.#G.contains(document.activeElement)}],[["Escape","mac+Escape"],e.unselectAll],[["ArrowLeft","mac+ArrowLeft"],e.translateSelectedEditors,{args:[-n,0],checker:i}],[["ctrl+ArrowLeft","mac+shift+ArrowLeft"],e.translateSelectedEditors,{args:[-o,0],checker:i}],[["ArrowRight","mac+ArrowRight"],e.translateSelectedEditors,{args:[n,0],checker:i}],[["ctrl+ArrowRight","mac+shift+ArrowRight"],e.translateSelectedEditors,{args:[o,0],checker:i}],[["ArrowUp","mac+ArrowUp"],e.translateSelectedEditors,{args:[0,-n],checker:i}],[["ctrl+ArrowUp","mac+shift+ArrowUp"],e.translateSelectedEditors,{args:[0,-o],checker:i}],[["ArrowDown","mac+ArrowDown"],e.translateSelectedEditors,{args:[0,n],checker:i}],[["ctrl+ArrowDown","mac+shift+ArrowDown"],e.translateSelectedEditors,{args:[0,o],checker:i}]]))}constructor(e,i,r,n,o,s,a,l,c,d,u,h,p,g,f,A){const m=this._signal=this.#e.signal;this.#G=e,this.#X=i,this.#$=r,this.#o=n,this.#c=o,this.#q=s,this.#Q=l,this._eventBus=a,a._on("editingaction",this.onEditingAction.bind(this),{signal:m}),a._on("pagechanging",this.onPageChanging.bind(this),{signal:m}),a._on("scalechanging",this.onScaleChanging.bind(this),{signal:m}),a._on("rotationchanging",this.onRotationChanging.bind(this),{signal:m}),a._on("setpreference",this.onSetPreference.bind(this),{signal:m}),a._on("switchannotationeditorparams",b=>this.updateParams(b.type,b.value),{signal:m}),window.addEventListener("pointerdown",()=>{this.#I=!0},{capture:!0,signal:m}),window.addEventListener("pointerup",()=>{this.#I=!1},{capture:!0,signal:m}),window.addEventListener("beforeunload",this.#ne.bind(this),{capture:!0,signal:m}),this.#ae(),this.#pe(),this.#te(),this.#s=l.annotationStorage,this.#k=l.filterFactory,this.#N=c,this.#E=d||null,this.#A=u,this.#b=h,this.#v=p,this.#V=g||null,this.viewParameters={realScale:fb.PDF_TO_CSS_UNITS,rotation:0},this.isShiftKeyDown=!1,this._editorUndoBar=f||null,this._supportsPinchToZoom=A!==!1,o?.setSidebarUiManager(this)}destroy(){this.#U?.resolve(),this.#U=null,this.#e?.abort(),this.#e=null,this._signal=null;for(const e of this.#n.values())e.destroy();this.#n.clear(),this.#i.clear(),this.#f.clear(),this.#L?.clear(),this.#t=null,this.#x.clear(),this.#l.destroy(),this.#o?.destroy(),this.#c?.destroy(),this.#q?.destroy(),this.#M?.hide(),this.#M=null,this.#O?.destroy(),this.#O=null,this.#r=null,this.#C&&(clearTimeout(this.#C),this.#C=null),this.#j&&(clearTimeout(this.#j),this.#j=null),this._editorUndoBar?.destroy(),this.#Q=null}combinedSignal(e){return AbortSignal.any([this._signal,e.signal])}get mlManager(){return this.#V}get useNewAltTextFlow(){return this.#b}get useNewAltTextWhenAddingImage(){return this.#v}get hcmFilter(){return Xi(this,"hcmFilter",this.#N?this.#k.addHCMFilter(this.#N.foreground,this.#N.background):"none")}get direction(){return Xi(this,"direction",getComputedStyle(this.#G).direction)}get _highlightColors(){return Xi(this,"_highlightColors",this.#E?new Map(this.#E.split(",").map(e=>(e=e.split("=").map(i=>i.trim()),e[1]=e[1].toUpperCase(),e))):null)}get highlightColors(){const{_highlightColors:e}=this;if(!e)return Xi(this,"highlightColors",null);const i=new Map,r=!!this.#N;for(const[n,o]of e){const s=n.endsWith("_HCM");if(r&&s){i.set(n.replace("_HCM",""),o);continue}!r&&!s&&i.set(n,o)}return Xi(this,"highlightColors",i)}get highlightColorNames(){return Xi(this,"highlightColorNames",this.highlightColors?new Map(Array.from(this.highlightColors,e=>e.reverse())):null)}getNonHCMColor(e){if(!this._highlightColors)return e;const i=this.highlightColorNames.get(e);return this._highlightColors.get(i)||e}getNonHCMColorName(e){return this.highlightColorNames.get(e)||e}setCurrentDrawingSession(e){e?(this.unselectAll(),this.disableUserSelect(!0)):this.disableUserSelect(!1),this.#h=e}setMainHighlightColorPicker(e){this.#O=e}editAltText(e,i=!1){this.#o?.editAltText(this,e,i)}hasCommentManager(){return!!this.#c}editComment(e,i,r,n){this.#c?.showDialog(this,e,i,r,n)}selectComment(e,i){this.#n.get(e)?.getEditorByUID(i)?.toggleComment(!0,!0)}updateComment(e){this.#c?.updateComment(e.getData())}updatePopupColor(e){this.#c?.updatePopupColor(e)}removeComment(e){this.#c?.removeComments([e.uid])}deleteComment(e,i){const r=()=>{e.comment=i},n=()=>{this._editorUndoBar?.show(r,"comment"),this.toggleComment(null),e.comment=null};this.addCommands({cmd:n,undo:r,mustExec:!0})}toggleComment(e,i,r=void 0){this.#c?.toggleCommentPopup(e,i,r)}makeCommentColor(e,i){return e&&this.#c?.makeCommentColor(e,i)||null}getCommentDialogElement(){return this.#c?.dialogElement||null}async waitForEditorsRendered(e){if(this.#n.has(e-1))return;const{resolve:i,promise:r}=Promise.withResolvers(),n=o=>{o.pageNumber===e&&(this._eventBus._off("editorsrendered",n),i())};this._eventBus.on("editorsrendered",n),await r}getSignature(e){this.#q?.getSignature({uiManager:this,editor:e})}get signatureManager(){return this.#q}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}){e==="enableNewAltTextWhenAddingImage"&&(this.#v=i)}onPageChanging({pageNumber:e}){this.#p=e-1}deletePage(e){for(const i of this.getEditors(e))i.remove();this.#n.delete(e),this.#p===e&&(this.#p=0)}focusMainContainer(){this.#G.focus()}findParent(e,i){for(const r of this.#n.values()){const{x:n,y:o,width:s,height:a}=r.div.getBoundingClientRect();if(e>=n&&e<=n+s&&i>=o&&i<=o+a)return r}return null}disableUserSelect(e=!1){this.#X.classList.toggle("noUserSelect",e)}addShouldRescale(e){this.#f.add(e)}removeShouldRescale(e){this.#f.delete(e)}onScaleChanging({scale:e}){this.commitOrRemove(),this.viewParameters.realScale=e*fb.PDF_TO_CSS_UNITS;for(const i of this.#f)i.onScaleChanging();this.#h?.onScaleChanging()}onRotationChanging({pagesRotation:e}){this.commitOrRemove(),this.viewParameters.rotation=e}#Z({anchorNode:e}){return e.nodeType===Node.TEXT_NODE?e.parentElement:e}#ee(e){const{currentLayer:i}=this;if(i.hasTextLayer(e))return i;for(const r of this.#n.values())if(r.hasTextLayer(e))return r;return null}highlightSelection(e="",i=!1){const r=document.getSelection();if(!r||r.isCollapsed)return;const{anchorNode:n,anchorOffset:o,focusNode:s,focusOffset:a}=r,l=r.toString(),c=this.#Z(r).closest(".textLayer"),d=this.getSelectionBoxes(c);if(!d)return;r.empty();const u=this.#ee(c),h=this.#B===ir.NONE,p=()=>{const g=u?.createAndAddNewEditor({x:0,y:0},!1,{methodOfCreation:e,boxes:d,anchorNode:n,anchorOffset:o,focusNode:s,focusOffset:a,text:l});h&&this.showAllEditors("highlight",!0,!0),i&&g?.editComment()};if(h){this.switchToMode(ir.HIGHLIGHT,p);return}p()}commentSelection(e=""){this.highlightSelection(e,!0)}#ne(e){this.commitOrRemove(),this.currentLayer?.endDrawingSession(!1)}#oe(){const e=document.getSelection();if(!e||e.isCollapsed)return;const i=this.#Z(e).closest(".textLayer"),r=this.getSelectionBoxes(i);r&&(this.#M||=new XNi(this),this.#M.show(i,r,this.direction==="ltr"))}getAndRemoveDataFromAnnotationStorage(e){if(!this.#s)return null;const i=`${Q9}${e}`,r=this.#s.getRawValue(i);return r&&this.#s.remove(i),r}addToAnnotationStorage(e){!e.isEmpty()&&this.#s&&!this.#s.has(e.id)&&this.#s.setValue(e.id,e)}a11yAlert(e,i=null){const r=this.#$;r&&(r.setAttribute("data-l10n-id",e),i?r.setAttribute("data-l10n-args",JSON.stringify(i)):r.removeAttribute("data-l10n-args"))}#se(){const e=document.getSelection();if(!e||e.isCollapsed){this.#D&&(this.#M?.hide(),this.#D=null,this.#T({hasSelectedText:!1}));return}const{anchorNode:i}=e;if(i===this.#D)return;const r=this.#Z(e).closest(".textLayer");if(!r){this.#D&&(this.#M?.hide(),this.#D=null,this.#T({hasSelectedText:!1}));return}if(this.#M?.hide(),this.#D=i,this.#T({hasSelectedText:!0}),!(this.#B!==ir.HIGHLIGHT&&this.#B!==ir.NONE)&&(this.#B===ir.HIGHLIGHT&&this.showAllEditors("highlight",!0,!0),this.#y=this.isShiftKeyDown,!this.isShiftKeyDown)){const n=this.#B===ir.HIGHLIGHT?this.#ee(r):null;if(n?.toggleDrawing(),this.#I){const o=new AbortController,s=this.combinedSignal(o),a=l=>{l.type==="pointerup"&&l.button!==0||(o.abort(),n?.toggleDrawing(!0),l.type==="pointerup"&&this.#J("main_toolbar"))};window.addEventListener("pointerup",a,{signal:s}),window.addEventListener("blur",a,{signal:s})}else n?.toggleDrawing(!0),this.#J("main_toolbar")}}#J(e=""){this.#B===ir.HIGHLIGHT?this.highlightSelection(e):this.#A&&this.#oe()}#ae(){document.addEventListener("selectionchange",this.#se.bind(this),{signal:this._signal})}#le(){if(this.#w)return;this.#w=new AbortController;const e=this.combinedSignal(this.#w);window.addEventListener("focus",this.focus.bind(this),{signal:e}),window.addEventListener("blur",this.blur.bind(this),{signal:e})}#ce(){this.#w?.abort(),this.#w=null}blur(){if(this.isShiftKeyDown=!1,this.#y&&(this.#y=!1,this.#J("main_toolbar")),!this.hasSelection)return;const{activeElement:e}=document;for(const i of this.#x)if(i.div.contains(e)){this.#_=[i,e],i._focusEventsAllowed=!1;break}}focus(){if(!this.#_)return;const[e,i]=this.#_;this.#_=null,i.addEventListener("focusin",()=>{e._focusEventsAllowed=!0},{once:!0,signal:this._signal}),i.focus()}#te(){if(this.#R)return;this.#R=new AbortController;const e=this.combinedSignal(this.#R);window.addEventListener("keydown",this.keydown.bind(this),{signal:e}),window.addEventListener("keyup",this.keyup.bind(this),{signal:e})}#de(){this.#R?.abort(),this.#R=null}#ue(){if(this.#d)return;this.#d=new AbortController;const e=this.combinedSignal(this.#d);document.addEventListener("copy",this.copy.bind(this),{signal:e}),document.addEventListener("cut",this.cut.bind(this),{signal:e}),document.addEventListener("paste",this.paste.bind(this),{signal:e})}#he(){this.#d?.abort(),this.#d=null}#pe(){const e=this._signal;document.addEventListener("dragover",this.dragOver.bind(this),{signal:e}),document.addEventListener("drop",this.drop.bind(this),{signal:e})}addEditListeners(){this.#te(),this.setEditingState(!0)}removeEditListeners(){this.#de(),this.setEditingState(!1)}dragOver(e){for(const{type:i}of e.dataTransfer.items)for(const r of this.#u)if(r.isHandlingMimeForPasting(i)){e.dataTransfer.dropEffect="copy",e.preventDefault();return}}drop(e){for(const i of e.dataTransfer.items)for(const r of this.#u)if(r.isHandlingMimeForPasting(i.type)){r.paste(i,this.currentLayer),e.preventDefault();return}}copy(e){if(e.preventDefault(),this.#t?.commitOrRemove(),!this.hasSelection)return;const i=[];for(const r of this.#x){const n=r.serialize(!0);n&&i.push(n)}i.length!==0&&e.clipboardData.setData("application/pdfjs",JSON.stringify(i))}cut(e){this.copy(e),this.delete()}async paste(e){e.preventDefault();const{clipboardData:i}=e;for(const o of i.items)for(const s of this.#u)if(s.isHandlingMimeForPasting(o.type)){s.paste(o,this.currentLayer);return}let r=i.getData("application/pdfjs");if(!r)return;try{r=JSON.parse(r)}catch(o){rr(`paste: "${o.message}".`);return}if(!Array.isArray(r))return;this.unselectAll();const n=this.currentLayer;try{const o=[];for(const l of r){const c=await n.deserialize(l);if(!c)return;o.push(c)}const s=()=>{for(const l of o)this.#ie(l);this.#re(o)},a=()=>{for(const l of o)l.remove()};this.addCommands({cmd:s,undo:a,mustExec:!0})}catch(o){rr(`paste: "${o.message}".`)}}keydown(e){!this.isShiftKeyDown&&e.key==="Shift"&&(this.isShiftKeyDown=!0),this.#B!==ir.NONE&&!this.isEditorHandlingKeyboard&&qf._keyboardManager.exec(this,e)}keyup(e){this.isShiftKeyDown&&e.key==="Shift"&&(this.isShiftKeyDown=!1,this.#y&&(this.#y=!1,this.#J("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;case"commentSelection":this.commentSelection("context_menu");break}}#T(e){Object.entries(e).some(([i,r])=>this.#W[i]!==r)&&(this._eventBus.dispatch("annotationeditorstateschanged",{source:this,details:Object.assign(this.#W,e)}),this.#B===ir.HIGHLIGHT&&e.hasSelectedEditor===!1&&this.#z([[Rr.HIGHLIGHT_FREE,!0]]))}#z(e){this._eventBus.dispatch("annotationeditorparamschanged",{source:this,details:e})}setEditingState(e){e?(this.#le(),this.#ue(),this.#T({isEditing:this.#B!==ir.NONE,isEmpty:this.#Y(),hasSomethingToUndo:this.#l.hasSomethingToUndo(),hasSomethingToRedo:this.#l.hasSomethingToRedo(),hasSelectedEditor:!1})):(this.#ce(),this.#he(),this.#T({isEditing:!1}),this.disableUserSelect(!1))}registerEditorTypes(e){if(!this.#u){this.#u=e;for(const i of this.#u)this.#z(i.defaultPropertiesToUpdate)}}getId(){return this.#S.id}get currentLayer(){return this.#n.get(this.#p)}getLayer(e){return this.#n.get(e)}get currentPageIndex(){return this.#p}addLayer(e){this.#n.set(e.pageIndex,e),this.#P?e.enable():e.disable()}removeLayer(e){this.#n.delete(e.pageIndex)}async updateMode(e,i=null,r=!1,n=!1,o=!1,s=!1){if(this.#B!==e&&!(this.#U&&(await this.#U.promise,!this.#U))){if(this.#U=Promise.withResolvers(),this.#h?.commitOrRemove(),this.#B===ir.POPUP&&this.#c?.hideSidebar(),this.#c?.destroyPopup(),this.#B=e,e===ir.NONE){this.setEditingState(!1),this.#ge();for(const a of this.#i.values())a.hideStandaloneCommentButton();this._editorUndoBar?.hide(),this.toggleComment(null),this.#U.resolve();return}for(const a of this.#i.values())a.addStandaloneCommentButton();e===ir.SIGNATURE&&await this.#q?.loadSignatures(),r&&an.clearPointerType(),this.setEditingState(!0),await this.#fe(),this.unselectAll();for(const a of this.#n.values())a.updateMode(e);if(e===ir.POPUP){this.#r||=await this.#Q.getAnnotationsByType(new Set(this.#u.map(c=>c._editorType)));const a=new Set,l=[];for(const c of this.#i.values()){const{annotationElementId:d,hasComment:u,deleted:h}=c;d&&a.add(d),u&&!h&&l.push(c.getData())}for(const c of this.#r){const{id:d,popupRef:u,contentsObj:h}=c;u&&h?.str&&!a.has(d)&&!this.#m.has(d)&&l.push(c)}this.#c?.showSidebar(l)}if(!i){n&&this.addNewEditorFromKeyboard(),this.#U.resolve();return}for(const a of this.#i.values())a.uid===i?(this.setSelected(a),s?a.editComment():o?a.enterInEditMode():a.focus()):a.unselect();this.#U.resolve()}}addNewEditorFromKeyboard(){this.currentLayer.canCreateNewEmptyEditor()&&this.currentLayer.addNewEditor()}updateToolbar(e){e.mode!==this.#B&&this._eventBus.dispatch("switchannotationeditormode",{source:this,...e})}updateParams(e,i){if(this.#u){switch(e){case Rr.CREATE:this.currentLayer.addNewEditor(i);return;case Rr.HIGHLIGHT_SHOW_ALL:this._eventBus.dispatch("reporttelemetry",{source:this,details:{type:"editing",data:{type:"highlight",action:"toggle_visibility"}}}),(this.#K||=new Map).set(e,i),this.showAllEditors("highlight",i);break}if(this.hasSelection)for(const r of this.#x)r.updateParams(e,i);else for(const r of this.#u)r.updateDefaultParams(e,i)}}showAllEditors(e,i,r=!1){for(const n of this.#i.values())n.editorType===e&&n.show(i);(this.#K?.get(Rr.HIGHLIGHT_SHOW_ALL)??!0)!==i&&this.#z([[Rr.HIGHLIGHT_SHOW_ALL,i]])}enableWaiting(e=!1){if(this.#F!==e){this.#F=e;for(const i of this.#n.values())e?i.disableClick():i.enableClick(),i.div.classList.toggle("waiting",e)}}async#fe(){if(!this.#P){this.#P=!0;const e=[];for(const i of this.#n.values())e.push(i.enable());await Promise.all(e);for(const i of this.#i.values())i.enable()}}#ge(){if(this.unselectAll(),this.#P){this.#P=!1;for(const e of this.#n.values())e.disable();for(const e of this.#i.values())e.disable()}}*getEditors(e){for(const i of this.#i.values())i.pageIndex===e&&(yield i)}getEditor(e){return this.#i.get(e)}addEditor(e){this.#i.set(e.id,e)}removeEditor(e){e.div.contains(document.activeElement)&&(this.#C&&clearTimeout(this.#C),this.#C=setTimeout(()=>{this.focusMainContainer(),this.#C=null},0)),this.#i.delete(e.id),e.annotationElementId&&this.#L?.delete(e.annotationElementId),this.unselect(e),(!e.annotationElementId||!this.#m.has(e.annotationElementId))&&this.#s?.remove(e.id)}addDeletedAnnotationElement(e){this.#m.add(e.annotationElementId),this.addChangedExistingAnnotation(e),e.deleted=!0}isDeletedAnnotationElement(e){return this.#m.has(e)}removeDeletedAnnotationElement(e){this.#m.delete(e.annotationElementId),this.removeChangedExistingAnnotation(e),e.deleted=!1}#ie(e){const i=this.#n.get(e.pageIndex);i?i.addOrRebuild(e):(this.addEditor(e),this.addToAnnotationStorage(e))}setActiveEditor(e){this.#t!==e&&(this.#t=e,e&&this.#z(e.propertiesToUpdate))}get#me(){let e=null;for(e of this.#x);return e}updateUI(e){this.#me===e&&this.#z(e.propertiesToUpdate)}updateUIForDefaultProperties(e){this.#z(e.defaultPropertiesToUpdate)}toggleSelected(e){if(this.#x.has(e)){this.#x.delete(e),e.unselect(),this.#T({hasSelectedEditor:this.hasSelection});return}this.#x.add(e),e.select(),this.#z(e.propertiesToUpdate),this.#T({hasSelectedEditor:!0})}setSelected(e){this.updateToolbar({mode:e.mode,editId:e.uid}),this.#h?.commitOrRemove();for(const i of this.#x)i!==e&&i.unselect();this.#x.clear(),this.#x.add(e),e.select(),this.#z(e.propertiesToUpdate),this.#T({hasSelectedEditor:!0})}isSelected(e){return this.#x.has(e)}get firstSelectedEditor(){return this.#x.values().next().value}unselect(e){e.unselect(),this.#x.delete(e),this.#T({hasSelectedEditor:this.hasSelection})}get hasSelection(){return this.#x.size!==0}get isEnterHandled(){return this.#x.size===1&&this.firstSelectedEditor.isEnterHandled}undo(){this.#l.undo(),this.#T({hasSomethingToUndo:this.#l.hasSomethingToUndo(),hasSomethingToRedo:!0,isEmpty:this.#Y()}),this._editorUndoBar?.hide()}redo(){this.#l.redo(),this.#T({hasSomethingToUndo:!0,hasSomethingToRedo:this.#l.hasSomethingToRedo(),isEmpty:this.#Y()})}addCommands(e){this.#l.add(e),this.#T({hasSomethingToUndo:!0,hasSomethingToRedo:!1,isEmpty:this.#Y()})}cleanUndoStack(e){this.#l.cleanType(e)}#Y(){if(this.#i.size===0)return!0;if(this.#i.size===1)for(const e of this.#i.values())return e.isEmpty();return!1}delete(){this.commitOrRemove();const e=this.currentLayer?.endDrawingSession(!0);if(!this.hasSelection&&!e)return;const i=e?[e]:[...this.#x],r=()=>{this._editorUndoBar?.show(n,i.length===1?i[0].editorType:i.length);for(const o of i)o.remove()},n=()=>{for(const o of i)this.#ie(o)};this.addCommands({cmd:r,undo:n,mustExec:!0})}commitOrRemove(){this.#t?.commitOrRemove()}hasSomethingToControl(){return this.#t||this.hasSelection}#re(e){for(const i of this.#x)i.unselect();this.#x.clear();for(const i of e)i.isEmpty()||(this.#x.add(i),i.select());this.#T({hasSelectedEditor:this.hasSelection})}selectAll(){for(const e of this.#x)e.commit();this.#re(this.#i.values())}unselectAll(){if(!(this.#t&&(this.#t.commitOrRemove(),this.#B!==ir.NONE))&&!this.#h?.commitOrRemove()&&this.hasSelection){for(const e of this.#x)e.unselect();this.#x.clear(),this.#T({hasSelectedEditor:!1})}}translateSelectedEditors(e,i,r=!1){if(r||this.commitOrRemove(),!this.hasSelection)return;this.#H[0]+=e,this.#H[1]+=i;const[n,o]=this.#H,s=[...this.#x],a=1e3;this.#j&&clearTimeout(this.#j),this.#j=setTimeout(()=>{this.#j=null,this.#H[0]=this.#H[1]=0,this.addCommands({cmd:()=>{for(const l of s)this.#i.has(l.id)&&(l.translateInPage(n,o),l.translationDone())},undo:()=>{for(const l of s)this.#i.has(l.id)&&(l.translateInPage(-n,-o),l.translationDone())},mustExec:!1})},a);for(const l of s)l.translateInPage(e,i),l.translationDone()}setUpDragSession(){if(this.hasSelection){this.disableUserSelect(!0),this.#g=new Map;for(const e of this.#x)this.#g.set(e,{savedX:e.x,savedY:e.y,savedPageIndex:e.pageIndex,newX:0,newY:0,newPageIndex:-1})}}endDragSession(){if(!this.#g)return!1;this.disableUserSelect(!1);const e=this.#g;this.#g=null;let i=!1;for(const[{x:n,y:o,pageIndex:s},a]of e)a.newX=n,a.newY=o,a.newPageIndex=s,i||=n!==a.savedX||o!==a.savedY||s!==a.savedPageIndex;if(!i)return!1;const r=(n,o,s,a)=>{if(this.#i.has(n.id)){const l=this.#n.get(a);l?n._setParentAndPosition(l,o,s):(n.pageIndex=a,n.x=o,n.y=s)}};return this.addCommands({cmd:()=>{for(const[n,{newX:o,newY:s,newPageIndex:a}]of e)r(n,o,s,a)},undo:()=>{for(const[n,{savedX:o,savedY:s,savedPageIndex:a}]of e)r(n,o,s,a)},mustExec:!0}),!0}dragSelectedEditors(e,i){if(this.#g)for(const r of this.#g.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(){return this.getActive()?.shouldGetKeyboardEvents()||this.#x.size===1&&this.firstSelectedEditor.shouldGetKeyboardEvents()}isActive(e){return this.#t===e}getActive(){return this.#t}getMode(){return this.#B}isEditingMode(){return this.#B!==ir.NONE}get imageManager(){return Xi(this,"imageManager",new fW)}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:n,width:o,height:s}=e.getBoundingClientRect();let a;switch(e.getAttribute("data-main-rotation")){case"90":a=(c,d,u,h)=>({x:(d-n)/s,y:1-(c+u-r)/o,width:h/s,height:u/o});break;case"180":a=(c,d,u,h)=>({x:1-(c+u-r)/o,y:1-(d+h-n)/s,width:u/o,height:h/s});break;case"270":a=(c,d,u,h)=>({x:1-(d+h-n)/s,y:(c-r)/o,width:h/s,height:u/o});break;default:a=(c,d,u,h)=>({x:(c-r)/o,y:(d-n)/s,width:u/o,height:h/s});break}const l=[];for(let c=0,d=i.rangeCount;c<d;c++){const u=i.getRangeAt(c);if(!u.collapsed)for(const{x:h,y:p,width:g,height:f}of u.getClientRects())g===0||f===0||l.push(a(h,p,g,f))}return l.length===0?null:l}addChangedExistingAnnotation({annotationElementId:e,id:i}){(this.#a||=new Map).set(e,i)}removeChangedExistingAnnotation({annotationElementId:e}){this.#a?.delete(e)}renderAnnotationElement(e){const i=this.#a?.get(e.data.id);if(!i)return;const r=this.#s.getRawValue(i);r&&(this.#B===ir.NONE&&!r.hasBeenModified||r.renderAnnotationElement(e))}setMissingCanvas(e,i,r){const n=this.#L?.get(e);n&&(n.setCanvas(i,r),this.#L.delete(e))}addMissingCanvas(e,i){(this.#L||=new Map).set(e,i)}}class uh{#e=null;#t=!1;#r=null;#i=null;#n=null;#o=null;#s=!1;#a=null;#l=null;#c=null;#d=null;#h=!1;static#p=null;static _l10n=null;constructor(e){this.#l=e,this.#h=e._uiManager.useNewAltTextFlow,uh.#p||=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){uh._l10n??=e}async render(){const e=this.#r=document.createElement("button");e.className="altText",e.tabIndex="0";const i=this.#i=document.createElement("span");e.append(i),this.#h?(e.classList.add("new"),e.setAttribute("data-l10n-id",uh.#p.missing),i.setAttribute("data-l10n-id",uh.#p["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=this.#l._uiManager._signal;e.addEventListener("contextmenu",Jc,{signal:r}),e.addEventListener("pointerdown",o=>o.stopPropagation(),{signal:r});const n=o=>{o.preventDefault(),this.#l._uiManager.editAltText(this.#l),this.#h&&this.#l._reportTelemetry({action:"pdfjs.image.alt_text.image_status_label_clicked",data:{label:this.#m}})};return e.addEventListener("click",n,{capture:!0,signal:r}),e.addEventListener("keydown",o=>{o.target===e&&o.key==="Enter"&&(this.#s=!0,n(o))},{signal:r}),await this.#g(),e}get#m(){return this.#e&&"added"||this.#e===null&&this.guessedText&&"review"||"missing"}finish(){this.#r&&(this.#r.focus({focusVisible:this.#s}),this.#s=!1)}isEmpty(){return this.#h?this.#e===null:!this.#e&&!this.#t}hasData(){return this.#h?this.#e!==null||!!this.#c:this.isEmpty()}get guessedText(){return this.#c}async setGuessedText(e){this.#e===null&&(this.#c=e,this.#d=await uh._l10n.get("pdfjs-editor-new-alt-text-generated-alt-text-with-disclaimer",{generatedAltText:e}),this.#g())}toggleAltTextBadge(e=!1){if(!this.#h||this.#e){this.#a?.remove(),this.#a=null;return}if(!this.#a){const i=this.#a=document.createElement("div");i.className="noAltTextBadge",this.#l.div.append(i)}this.#a.classList.toggle("hidden",!e)}serialize(e){let i=this.#e;return!e&&this.#c===i&&(i=this.#d),{altText:i,decorative:this.#t,guessedText:this.#c,textWithDisclaimer:this.#d}}get data(){return{altText:this.#e,decorative:this.#t}}set data({altText:e,decorative:i,guessedText:r,textWithDisclaimer:n,cancel:o=!1}){r&&(this.#c=r,this.#d=n),!(this.#e===e&&this.#t===i)&&(o||(this.#e=e,this.#t=i),this.#g())}toggle(e=!1){this.#r&&(!e&&this.#o&&(clearTimeout(this.#o),this.#o=null),this.#r.disabled=!e)}shown(){this.#l._reportTelemetry({action:"pdfjs.image.alt_text.image_status_label_displayed",data:{label:this.#m}})}destroy(){this.#r?.remove(),this.#r=null,this.#i=null,this.#n=null,this.#a?.remove(),this.#a=null}async#g(){const e=this.#r;if(!e)return;if(this.#h){if(e.classList.toggle("done",!!this.#e),e.setAttribute("data-l10n-id",uh.#p[this.#m]),this.#i?.setAttribute("data-l10n-id",uh.#p[`${this.#m}-label`]),!this.#e){this.#n?.remove();return}}else{if(!this.#e&&!this.#t){e.classList.remove("done"),this.#n?.remove();return}e.classList.add("done"),e.setAttribute("data-l10n-id","pdfjs-editor-alt-text-edit-button")}let i=this.#n;if(!i){this.#n=i=document.createElement("span"),i.className="tooltip",i.setAttribute("role","tooltip"),i.id=`alt-text-tooltip-${this.#l.id}`;const r=100,n=this.#l._uiManager._signal;n.addEventListener("abort",()=>{clearTimeout(this.#o),this.#o=null},{once:!0}),e.addEventListener("mouseenter",()=>{this.#o=setTimeout(()=>{this.#o=null,this.#n.classList.add("show"),this.#l._reportTelemetry({action:"alt_text_tooltip"})},r)},{signal:n}),e.addEventListener("mouseleave",()=>{this.#o&&(clearTimeout(this.#o),this.#o=null),this.#n?.classList.remove("show")},{signal:n})}this.#t?i.setAttribute("data-l10n-id","pdfjs-editor-alt-text-decorative-tooltip"):(i.removeAttribute("data-l10n-id"),i.textContent=this.#e),i.parentNode||e.append(i),this.#l.getElementForAltText()?.setAttribute("aria-describedby",i.id)}}class lI{#e=null;#t=null;#r=!1;#i=null;#n=null;#o=null;#s=null;#a=null;#l=!1;#c=null;constructor(e){this.#i=e}renderForToolbar(){const e=this.#t=document.createElement("button");return e.className="comment",this.#d(e,!1)}renderForStandalone(){const e=this.#e=document.createElement("button");e.className="annotationCommentButton";const i=this.#i.commentButtonPosition;if(i){const{style:r}=e;r.insetInlineEnd=`calc(${100*(this.#i._uiManager.direction==="ltr"?1-i[0]:i[0])}% - var(--comment-button-dim))`,r.top=`calc(${100*i[1]}% - var(--comment-button-dim))`;const n=this.#i.commentButtonColor;n&&(r.backgroundColor=n)}return this.#d(e,!0)}focusButton(){setTimeout(()=>{(this.#e??this.#t)?.focus()},0)}onUpdatedColor(){if(!this.#e)return;const e=this.#i.commentButtonColor;e&&(this.#e.style.backgroundColor=e),this.#i._uiManager.updatePopupColor(this.#i)}get commentButtonWidth(){return(this.#e?.getBoundingClientRect().width??0)/this.#i.parent.boundingClientRect.width}get commentPopupPositionInLayer(){if(this.#c)return this.#c;if(!this.#e)return null;const{x:e,y:i,height:r}=this.#e.getBoundingClientRect(),{x:n,y:o,width:s,height:a}=this.#i.parent.boundingClientRect;return[(e-n)/s,(i+r-o)/a]}set commentPopupPositionInLayer(e){this.#c=e}hasDefaultPopupPosition(){return this.#c===null}removeStandaloneCommentButton(){this.#e?.remove(),this.#e=null}removeToolbarCommentButton(){this.#t?.remove(),this.#t=null}setCommentButtonStates({selected:e,hasPopup:i}){this.#e&&(this.#e.classList.toggle("selected",e),this.#e.ariaExpanded=i)}#d(e,i){if(!this.#i._uiManager.hasCommentManager())return null;e.tabIndex="0",e.ariaHasPopup="dialog",i?(e.ariaControls="commentPopup",e.setAttribute("data-l10n-id","pdfjs-show-comment-button")):(e.ariaControlsElements=[this.#i._uiManager.getCommentDialogElement()],e.setAttribute("data-l10n-id","pdfjs-editor-add-comment-button"));const r=this.#i._uiManager._signal;if(!(r instanceof AbortSignal)||r.aborted)return e;e.addEventListener("contextmenu",Jc,{signal:r}),i&&(e.addEventListener("focusin",o=>{this.#i._focusEventsAllowed=!1,ko(o)},{capture:!0,signal:r}),e.addEventListener("focusout",o=>{this.#i._focusEventsAllowed=!0,ko(o)},{capture:!0,signal:r})),e.addEventListener("pointerdown",o=>o.stopPropagation(),{signal:r});const n=o=>{o.preventDefault(),e===this.#t?this.edit():this.#i.toggleComment(!0)};return e.addEventListener("click",n,{capture:!0,signal:r}),e.addEventListener("keydown",o=>{o.target===e&&o.key==="Enter"&&(this.#r=!0,n(o))},{signal:r}),e.addEventListener("pointerenter",()=>{this.#i.toggleComment(!1,!0)},{signal:r}),e.addEventListener("pointerleave",()=>{this.#i.toggleComment(!1,!1)},{signal:r}),e}edit(e){const i=this.commentPopupPositionInLayer;let r,n;if(i)[r,n]=i;else{[r,n]=this.#i.commentButtonPosition;const{width:d,height:u,x:h,y:p}=this.#i;r=h+r*d,n=p+n*u}const o=this.#i.parent.boundingClientRect,{x:s,y:a,width:l,height:c}=o;this.#i._uiManager.editComment(this.#i,s+r*l,a+n*c,{...e,parentDimensions:o})}finish(){this.#t&&(this.#t.focus({focusVisible:this.#r}),this.#r=!1)}isDeleted(){return this.#l||this.#s===""}isEmpty(){return this.#s===null}hasBeenEdited(){return this.isDeleted()||this.#s!==this.#n}serialize(){return this.data}get data(){return{text:this.#s,richText:this.#o,date:this.#a,deleted:this.isDeleted()}}set data(e){if(e!==this.#s&&(this.#o=null),e===null){this.#s="",this.#l=!0;return}this.#s=e,this.#a=new Date,this.#l=!1}restoreData({text:e,richText:i,date:r}){this.#s=e,this.#o=i,this.#a=r,this.#l=!1}setInitialText(e,i=null){this.#n=e,this.data=e,this.#a=null,this.#o=i}shown(){}destroy(){this.#t?.remove(),this.#t=null,this.#e?.remove(),this.#e=null,this.#s="",this.#o=null,this.#a=null,this.#i=null,this.#r=!1,this.#l=!1}}class OS{#e;#t=!1;#r=null;#i;#n;#o;#s;#a=null;#l;#c=null;#d;#h=null;constructor({container:e,isPinchingDisabled:i=null,isPinchingStopped:r=null,onPinchStart:n=null,onPinching:o=null,onPinchEnd:s=null,signal:a}){this.#e=e,this.#r=r,this.#i=i,this.#n=n,this.#o=o,this.#s=s,this.#d=new AbortController,this.#l=AbortSignal.any([a,this.#d.signal]),e.addEventListener("touchstart",this.#p.bind(this),{passive:!1,signal:this.#l})}get MIN_TOUCH_DISTANCE_TO_PINCH(){return 35/dh.pixelRatio}#p(e){if(this.#i?.())return;if(e.touches.length===1){if(this.#a)return;const n=this.#a=new AbortController,o=AbortSignal.any([this.#l,n.signal]),s=this.#e,a={capture:!0,signal:o,passive:!1},l=c=>{c.pointerType==="touch"&&(this.#a?.abort(),this.#a=null)};s.addEventListener("pointerdown",c=>{c.pointerType==="touch"&&(ko(c),l(c))},a),s.addEventListener("pointerup",l,a),s.addEventListener("pointercancel",l,a);return}if(!this.#h){this.#h=new AbortController;const n=AbortSignal.any([this.#l,this.#h.signal]),o=this.#e,s={signal:n,capture:!1,passive:!1};o.addEventListener("touchmove",this.#m.bind(this),s);const a=this.#g.bind(this);o.addEventListener("touchend",a,s),o.addEventListener("touchcancel",a,s),s.capture=!0,o.addEventListener("pointerdown",ko,s),o.addEventListener("pointermove",ko,s),o.addEventListener("pointercancel",ko,s),o.addEventListener("pointerup",ko,s),this.#n?.()}if(ko(e),e.touches.length!==2||this.#r?.()){this.#c=null;return}let[i,r]=e.touches;i.identifier>r.identifier&&([i,r]=[r,i]),this.#c={touch0X:i.screenX,touch0Y:i.screenY,touch1X:r.screenX,touch1Y:r.screenY}}#m(e){if(!this.#c||e.touches.length!==2)return;ko(e);let[i,r]=e.touches;i.identifier>r.identifier&&([i,r]=[r,i]);const{screenX:n,screenY:o}=i,{screenX:s,screenY:a}=r,l=this.#c,{touch0X:c,touch0Y:d,touch1X:u,touch1Y:h}=l,p=u-c,g=h-d,f=s-n,A=a-o,m=Math.hypot(f,A)||1,b=Math.hypot(p,g)||1;if(!this.#t&&Math.abs(b-m)<=OS.MIN_TOUCH_DISTANCE_TO_PINCH)return;if(l.touch0X=n,l.touch0Y=o,l.touch1X=s,l.touch1Y=a,!this.#t){this.#t=!0;return}const v=[(n+s)/2,(o+a)/2];this.#o?.(v,b,m)}#g(e){e.touches.length>=2||(this.#h&&(this.#h.abort(),this.#h=null,this.#s?.()),this.#c&&(ko(e),this.#c=null,this.#t=!1))}destroy(){this.#d?.abort(),this.#d=null,this.#a?.abort(),this.#a=null}}class Si{#e=null;#t=null;#r=null;#i=null;#n=null;#o=!1;#s=null;#a="";#l=null;#c=null;#d=null;#h=null;#p=null;#m="";#g=!1;#u=null;#f=!1;#A=!1;#b=!1;#v=null;#k=0;#C=0;#w=null;#E=null;isSelected=!1;_isCopy=!1;_editToolbar=null;_initialOptions=Object.create(null);_initialData=null;_isVisible=!0;_uiManager=null;_focusEventsAllowed=!0;static _l10n=null;static _l10nResizer=null;#y=!1;#M=Si._zIndex++;static _borderLineWidth=-1;static _colorManager=new gW;static _zIndex=1;static _telemetryTimeout=1e3;static get _resizerKeyboardManager(){const e=Si.prototype._resizeWithKeyboard,i=qf.TRANSLATE_SMALL,r=qf.TRANSLATE_BIG;return Xi(this,"_resizerKeyboardManager",new X9([[["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"],Si.prototype._stopResizingWithKeyboard]]))}constructor(e){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,this.annotationElementId=e.annotationElementId||null,this.creationDate=e.creationDate||new Date,this.modificationDate=e.modificationDate||null,this.canAddComment=!0;const{rotation:i,rawDims:{pageWidth:r,pageHeight:n,pageX:o,pageY:s}}=this.parent.viewport;this.rotation=i,this.pageRotation=(360+i-this._uiManager.viewParameters.rotation)%360,this.pageDimensions=[r,n],this.pageTranslation=[o,s];const[a,l]=this.parentDimensions;this.x=e.x/a,this.y=e.y/l,this.isAttachedToDOM=!1,this.deleted=!1}updatePageIndex(e){this.pageIndex=e}get editorType(){return Object.getPrototypeOf(this).constructor._type}get mode(){return Object.getPrototypeOf(this).constructor._editorType}static get isDrawer(){return!1}static get _defaultLineColor(){return Xi(this,"_defaultLineColor",this._colorManager.getHexCode("CanvasText"))}static deleteAnnotationElement(e){const i=new tHi({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(Si._l10n??=e,Si._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"}),Si._borderLineWidth!==-1)return;const r=getComputedStyle(document.documentElement);Si._borderLineWidth=parseFloat(r.getPropertyValue("--outline-width"))||0}static updateDefaultParams(e,i){}static get defaultPropertiesToUpdate(){return[]}static isHandlingMimeForPasting(e){return!1}static paste(e,i){on("Not implemented")}get propertiesToUpdate(){return[]}get _isDraggable(){return this.#y}set _isDraggable(e){this.#y=e,this.div?.classList.toggle("draggable",e)}get uid(){return this.annotationElementId||this.id}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=this.#M}setParent(e){e!==null?(this.pageIndex=e.pageIndex,this.pageDimensions=e.pageDimensions):(this.#j(),this.#h?.remove(),this.#h=null),this.parent=e}focusin(e){this._focusEventsAllowed&&(this.#g?this.#g=!1:this.parent.setSelected(this))}focusout(e){!this._focusEventsAllowed||!this.isAttachedToDOM||e.relatedTarget?.closest(`#${this.id}`)||(e.preventDefault(),this.parent?.isMultipleSelection||this.commitOrRemove())}commitOrRemove(){this.isEmpty()?this.remove():this.commit()}commit(){this.isInEditMode()&&this.addToAnnotationStorage()}addToAnnotationStorage(){this._uiManager.addToAnnotationStorage(this)}setAt(e,i,r,n){const[o,s]=this.parentDimensions;[r,n]=this.screenToPageTranslation(r,n),this.x=(e+r)/o,this.y=(i+n)/s,this.fixAndSetPosition()}_moveAfterPaste(e,i){const[r,n]=this.parentDimensions;this.setAt(e*r,i*n,this.width*r,this.height*n),this._onTranslated()}#S([e,i],r,n){[r,n]=this.screenToPageTranslation(r,n),this.x+=r/e,this.y+=n/i,this._onTranslating(this.x,this.y),this.fixAndSetPosition()}translate(e,i){this.#S(this.parentDimensions,e,i)}translateInPage(e,i){this.#u||=[this.x,this.y,this.width,this.height],this.#S(this.pageDimensions,e,i),this.div.scrollIntoView({block:"nearest"})}translationDone(){this._onTranslated(this.x,this.y)}drag(e,i){this.#u||=[this.x,this.y,this.width,this.height];const{div:r,parentDimensions:[n,o]}=this;if(this.x+=e/n,this.y+=i/o,this.parent&&(this.x<0||this.x>1||this.y<0||this.y>1)){const{x:u,y:h}=this.div.getBoundingClientRect();this.parent.findNewParent(this,u,h)&&(this.x-=Math.floor(this.x),this.y-=Math.floor(this.y))}let{x:s,y:a}=this;const[l,c]=this.getBaseTranslation();s+=l,a+=c;const{style:d}=r;d.left=`${(100*s).toFixed(2)}%`,d.top=`${(100*a).toFixed(2)}%`,this._onTranslating(s,a),r.scrollIntoView({block:"nearest"})}_onTranslating(e,i){}_onTranslated(e,i){}get _hasBeenMoved(){return!!this.#u&&(this.#u[0]!==this.x||this.#u[1]!==this.y)}get _hasBeenResized(){return!!this.#u&&(this.#u[2]!==this.width||this.#u[3]!==this.height)}getBaseTranslation(){const[e,i]=this.parentDimensions,{_borderLineWidth:r}=Si,n=r/e,o=r/i;switch(this.rotation){case 90:return[-n,o];case 180:return[n,o];case 270:return[n,-o];default:return[-n,-o]}}get _mustFixPosition(){return!0}fixAndSetPosition(e=this.rotation){const{div:{style:i},pageDimensions:[r,n]}=this;let{x:o,y:s,width:a,height:l}=this;if(a*=r,l*=n,o*=r,s*=n,this._mustFixPosition)switch(e){case 0:o=Es(o,0,r-a),s=Es(s,0,n-l);break;case 90:o=Es(o,0,r-l),s=Es(s,a,n);break;case 180:o=Es(o,a,r),s=Es(s,l,n);break;case 270:o=Es(o,l,r),s=Es(s,0,n-a);break}this.x=o/=r,this.y=s/=n;const[c,d]=this.getBaseTranslation();o+=c,s+=d,i.left=`${(100*o).toFixed(2)}%`,i.top=`${(100*s).toFixed(2)}%`,this.moveInDOM()}static#P(e,i,r){switch(r){case 90:return[i,-e];case 180:return[-e,-i];case 270:return[-i,e];default:return[e,i]}}screenToPageTranslation(e,i){return Si.#P(e,i,this.parentRotation)}pageTranslationToScreen(e,i){return Si.#P(e,i,360-this.parentRotation)}#I(e){switch(e){case 90:{const[i,r]=this.pageDimensions;return[0,-i/r,r/i,0]}case 180:return[-1,0,0,-1];case 270:{const[i,r]=this.pageDimensions;return[0,i/r,-r/i,0]}default:return[1,0,0,1]}}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(){const{div:{style:e},width:i,height:r}=this;e.width=`${(100*i).toFixed(2)}%`,e.height=`${(100*r).toFixed(2)}%`}getInitialTranslation(){return[0,0]}#F(){if(this.#l)return;this.#l=document.createElement("div"),this.#l.classList.add("resizers");const e=this._willKeepAspectRatio?["topLeft","topRight","bottomRight","bottomLeft"]:["topLeft","topMiddle","topRight","middleRight","bottomRight","bottomMiddle","bottomLeft","middleLeft"],i=this._uiManager._signal;for(const r of e){const n=document.createElement("div");this.#l.append(n),n.classList.add("resizer",r),n.setAttribute("data-resizer-name",r),n.addEventListener("pointerdown",this.#R.bind(this,r),{signal:i}),n.addEventListener("contextmenu",Jc,{signal:i}),n.tabIndex=-1}this.div.prepend(this.#l)}#R(e,i){i.preventDefault();const{isMac:r}=us.platform;if(i.button!==0||i.ctrlKey&&r)return;this.#r?.toggle(!1);const n=this._isDraggable;this._isDraggable=!1,this.#c=[i.screenX,i.screenY];const o=new AbortController,s=this._uiManager.combinedSignal(o);this.parent.togglePointerEvents(!1),window.addEventListener("pointermove",this.#L.bind(this,e),{passive:!0,capture:!0,signal:s}),window.addEventListener("touchmove",ko,{passive:!1,signal:s}),window.addEventListener("contextmenu",Jc,{signal:s}),this.#d={savedX:this.x,savedY:this.y,savedWidth:this.width,savedHeight:this.height};const a=this.parent.div.style.cursor,l=this.div.style.cursor;this.div.style.cursor=this.parent.div.style.cursor=window.getComputedStyle(i.target).cursor;const c=()=>{o.abort(),this.parent.togglePointerEvents(!0),this.#r?.toggle(!0),this._isDraggable=n,this.parent.div.style.cursor=a,this.div.style.cursor=l,this.#O()};window.addEventListener("pointerup",c,{signal:s}),window.addEventListener("blur",c,{signal:s})}#_(e,i,r,n){this.width=r,this.height=n,this.x=e,this.y=i,this.setDims(),this.fixAndSetPosition(),this._onResized()}_onResized(){}#O(){if(!this.#d)return;const{savedX:e,savedY:i,savedWidth:r,savedHeight:n}=this.#d;this.#d=null;const o=this.x,s=this.y,a=this.width,l=this.height;o===e&&s===i&&a===r&&l===n||this.addCommands({cmd:this.#_.bind(this,o,s,a,l),undo:this.#_.bind(this,e,i,r,n),mustExec:!0})}static _round(e){return Math.round(e*1e4)/1e4}#L(e,i){const[r,n]=this.parentDimensions,o=this.x,s=this.y,a=this.width,l=this.height,c=Si.MIN_SIZE/r,d=Si.MIN_SIZE/n,u=this.#I(this.rotation),h=(U,V)=>[u[0]*U+u[2]*V,u[1]*U+u[3]*V],p=this.#I(360-this.rotation),g=(U,V)=>[p[0]*U+p[2]*V,p[1]*U+p[3]*V];let f,A,m=!1,b=!1;switch(e){case"topLeft":m=!0,f=(U,V)=>[0,0],A=(U,V)=>[U,V];break;case"topMiddle":f=(U,V)=>[U/2,0],A=(U,V)=>[U/2,V];break;case"topRight":m=!0,f=(U,V)=>[U,0],A=(U,V)=>[0,V];break;case"middleRight":b=!0,f=(U,V)=>[U,V/2],A=(U,V)=>[0,V/2];break;case"bottomRight":m=!0,f=(U,V)=>[U,V],A=(U,V)=>[0,0];break;case"bottomMiddle":f=(U,V)=>[U/2,V],A=(U,V)=>[U/2,0];break;case"bottomLeft":m=!0,f=(U,V)=>[0,V],A=(U,V)=>[U,0];break;case"middleLeft":b=!0,f=(U,V)=>[0,V/2],A=(U,V)=>[U,V/2];break}const v=f(a,l),w=A(a,l);let y=h(...w);const x=Si._round(o+y[0]),k=Si._round(s+y[1]);let E=1,B=1,I,S;if(i.fromKeyboard)({deltaX:I,deltaY:S}=i);else{const{screenX:U,screenY:V}=i,[Q,$]=this.#c;[I,S]=this.screenToPageTranslation(U-Q,V-$),this.#c[0]=U,this.#c[1]=V}if([I,S]=g(I/r,S/n),m){const U=Math.hypot(a,l);E=B=Math.max(Math.min(Math.hypot(w[0]-v[0]-I,w[1]-v[1]-S)/U,1/a,1/l),c/a,d/l)}else b?E=Es(Math.abs(w[0]-v[0]-I),c,1)/a:B=Es(Math.abs(w[1]-v[1]-S),d,1)/l;const T=Si._round(a*E),_=Si._round(l*B);y=h(...A(T,_));const O=x-y[0],N=k-y[1];this.#u||=[this.x,this.y,this.width,this.height],this.width=T,this.height=_,this.x=O,this.y=N,this.setDims(),this.fixAndSetPosition(),this._onResizing()}_onResizing(){}altTextFinish(){this.#r?.finish()}get toolbarButtons(){return null}async addEditToolbar(){if(this._editToolbar||this.#A)return this._editToolbar;this._editToolbar=new hy(this),this.div.append(this._editToolbar.render());const{toolbarButtons:e}=this;if(e)for(const[i,r]of e)await this._editToolbar.addButton(i,r);return this.hasComment||this._editToolbar.addButton("comment",this.addCommentButton()),this._editToolbar.addButton("delete"),this._editToolbar}addCommentButtonInToolbar(){this._editToolbar?.addButtonBefore("comment",this.addCommentButton(),".deleteButton")}removeCommentButtonFromToolbar(){this._editToolbar?.removeButton("comment")}removeEditToolbar(){this._editToolbar?.remove(),this._editToolbar=null,this.#r?.destroy()}addContainer(e){const i=this._editToolbar?.div;i?i.before(e):this.div.append(e)}getClientDimensions(){return this.div.getBoundingClientRect()}createAltText(){return this.#r||(uh.initialize(Si._l10n),this.#r=new uh(this),this.#e&&(this.#r.data=this.#e,this.#e=null)),this.#r}get altTextData(){return this.#r?.data}set altTextData(e){this.#r&&(this.#r.data=e)}get guessedAltText(){return this.#r?.guessedText}async setGuessedAltText(e){await this.#r?.setGuessedText(e)}serializeAltText(e){return this.#r?.serialize(e)}hasAltText(){return!!this.#r&&!this.#r.isEmpty()}hasAltTextData(){return this.#r?.hasData()??!1}focusCommentButton(){this.#i?.focusButton()}addCommentButton(){return this.canAddComment?this.#i||=new lI(this):null}addStandaloneCommentButton(){if(this._uiManager.hasCommentManager()){if(this.#n){this._uiManager.isEditingMode()&&this.#n.classList.remove("hidden");return}this.hasComment&&(this.#n=this.#i.renderForStandalone(),this.div.append(this.#n))}}removeStandaloneCommentButton(){this.#i.removeStandaloneCommentButton(),this.#n=null}hideStandaloneCommentButton(){this.#n?.classList.add("hidden")}get comment(){if(!this.#i)return null;const{data:{richText:e,text:i,date:r,deleted:n}}=this.#i;return{text:i,richText:e,date:r,deleted:n,color:this.getNonHCMColor(),opacity:this.opacity??1}}set comment(e){this.#i||=new lI(this),typeof e=="object"&&e!==null?this.#i.restoreData(e):this.#i.data=e,this.hasComment?(this.removeCommentButtonFromToolbar(),this.addStandaloneCommentButton(),this._uiManager.updateComment(this)):(this.addCommentButtonInToolbar(),this.removeStandaloneCommentButton(),this._uiManager.removeComment(this))}setCommentData({comment:e,popupRef:i,richText:r}){if(!i||(this.#i||=new lI(this),this.#i.setInitialText(e,r),!this.annotationElementId))return;const n=this._uiManager.getAndRemoveDataFromAnnotationStorage(this.annotationElementId);n&&this.updateFromAnnotationLayer(n)}get hasEditedComment(){return this.#i?.hasBeenEdited()}get hasDeletedComment(){return this.#i?.isDeleted()}get hasComment(){return!!this.#i&&!this.#i.isEmpty()&&!this.#i.isDeleted()}async editComment(e){this.#i||=new lI(this),this.#i.edit(e)}toggleComment(e,i=void 0){this.hasComment&&this._uiManager.toggleComment(this,e,i)}setSelectedCommentButton(e){this.#i.setSelectedButton(e)}addComment(e){if(this.hasEditedComment){const[,,,i]=e.rect,[r]=this.pageDimensions,[n]=this.pageTranslation,o=n+r+1,s=i-100,a=o+180;e.popup={contents:this.comment.text,deleted:this.comment.deleted,rect:[o,s,a,i]}}}updateFromAnnotationLayer({popup:{contents:e,deleted:i}}){this.#i.data=i?null:e}get parentBoundingClientRect(){return this.parent.boundingClientRect}render(){const e=this.div=document.createElement("div");e.setAttribute("data-editor-rotation",(360-this.rotation)%360),e.className=this.name,e.setAttribute("id",this.id),e.tabIndex=this.#o?-1:0,e.setAttribute("role","application"),this.defaultL10nId&&e.setAttribute("data-l10n-id",this.defaultL10nId),this._isVisible||e.classList.add("hidden"),this.setInForeground(),this.#N();const[i,r]=this.parentDimensions;this.parentRotation%180!==0&&(e.style.maxWidth=`${(100*r/i).toFixed(2)}%`,e.style.maxHeight=`${(100*i/r).toFixed(2)}%`);const[n,o]=this.getInitialTranslation();return this.translate(n,o),$7e(this,e,["keydown","pointerdown","dblclick"]),this.isResizable&&this._uiManager._supportsPinchToZoom&&(this.#E||=new OS({container:e,isPinchingDisabled:()=>!this.isSelected,onPinchStart:this.#V.bind(this),onPinching:this.#B.bind(this),onPinchEnd:this.#x.bind(this),signal:this._uiManager._signal})),this.addStandaloneCommentButton(),this._uiManager._editorUndoBar?.hide(),e}#V(){this.#d={savedX:this.x,savedY:this.y,savedWidth:this.width,savedHeight:this.height},this.#r?.toggle(!1),this.parent.togglePointerEvents(!1)}#B(e,i,r){let n=.7*(r/i)+1-.7;if(n===1)return;const o=this.#I(this.rotation),s=(y,x)=>[o[0]*y+o[2]*x,o[1]*y+o[3]*x],[a,l]=this.parentDimensions,c=this.x,d=this.y,u=this.width,h=this.height,p=Si.MIN_SIZE/a,g=Si.MIN_SIZE/l;n=Math.max(Math.min(n,1/u,1/h),p/u,g/h);const f=Si._round(u*n),A=Si._round(h*n);if(f===u&&A===h)return;this.#u||=[c,d,u,h];const m=s(u/2,h/2),b=Si._round(c+m[0]),v=Si._round(d+m[1]),w=s(f/2,A/2);this.x=b-w[0],this.y=v-w[1],this.width=f,this.height=A,this.setDims(),this.fixAndSetPosition(),this._onResizing()}#x(){this.#r?.toggle(!0),this.parent.togglePointerEvents(!0),this.#O()}pointerdown(e){const{isMac:i}=us.platform;if(e.button!==0||e.ctrlKey&&i){e.preventDefault();return}if(this.#g=!0,this._isDraggable){this.#q(e);return}this.#D(e)}#D(e){const{isMac:i}=us.platform;e.ctrlKey&&!i||e.shiftKey||e.metaKey&&i?this.parent.toggleSelected(this):this.parent.setSelected(this)}#q(e){const{isSelected:i}=this;this._uiManager.setUpDragSession();let r=!1;const n=new AbortController,o=this._uiManager.combinedSignal(n),s={capture:!0,passive:!1,signal:o},a=c=>{n.abort(),this.#s=null,this.#g=!1,this._uiManager.endDragSession()||this.#D(c),r&&this._onStopDragging()};i&&(this.#k=e.clientX,this.#C=e.clientY,this.#s=e.pointerId,this.#a=e.pointerType,window.addEventListener("pointermove",c=>{r||(r=!0,this._uiManager.toggleComment(this,!0,!1),this._onStartDragging());const{clientX:d,clientY:u,pointerId:h}=c;if(h!==this.#s){ko(c);return}const[p,g]=this.screenToPageTranslation(d-this.#k,u-this.#C);this.#k=d,this.#C=u,this._uiManager.dragSelectedEditors(p,g)},s),window.addEventListener("touchmove",ko,s),window.addEventListener("pointerdown",c=>{c.pointerType===this.#a&&(this.#E||c.isPrimary)&&a(c),ko(c)},s));const l=c=>{if(!this.#s||this.#s===c.pointerId){a(c);return}ko(c)};window.addEventListener("pointerup",l,{signal:o}),window.addEventListener("blur",l,{signal:o})}_onStartDragging(){}_onStopDragging(){}moveInDOM(){this.#v&&clearTimeout(this.#v),this.#v=setTimeout(()=>{this.#v=null,this.parent?.moveEditorInDOM(this)},0)}_setParentAndPosition(e,i,r){e.changeParent(this),this.x=i,this.y=r,this.fixAndSetPosition(),this._onTranslated()}getRect(e,i,r=this.rotation){const n=this.parentScale,[o,s]=this.pageDimensions,[a,l]=this.pageTranslation,c=e/n,d=i/n,u=this.x*o,h=this.y*s,p=this.width*o,g=this.height*s;switch(r){case 0:return[u+c+a,s-h-d-g+l,u+c+p+a,s-h-d+l];case 90:return[u+d+a,s-h+c+l,u+d+g+a,s-h+c+p+l];case 180:return[u-c-p+a,s-h+d+l,u-c+a,s-h+d+g+l];case 270:return[u-d-g+a,s-h-c-p+l,u-d+a,s-h-c+l];default:throw new Error("Invalid rotation")}}getRectInCurrentCoords(e,i){const[r,n,o,s]=e,a=o-r,l=s-n;switch(this.rotation){case 0:return[r,i-s,a,l];case 90:return[r,i-n,l,a];case 180:return[o,i-n,a,l];case 270:return[o,i-s,l,a];default:throw new Error("Invalid rotation")}}getPDFRect(){return this.getRect(0,0)}getNonHCMColor(){return this.color&&Si._colorManager.convert(this._uiManager.getNonHCMColor(this.color))}onUpdatedColor(){this.#i?.onUpdatedColor()}getData(){const{comment:{text:e,color:i,date:r,opacity:n,deleted:o,richText:s},uid:a,pageIndex:l,creationDate:c,modificationDate:d}=this;return{id:a,pageIndex:l,rect:this.getPDFRect(),richText:s,contentsObj:{str:e},creationDate:c,modificationDate:r||d,popupRef:!o,color:i,opacity:n}}onceAdded(e){}isEmpty(){return!1}enableEditMode(){return this.isInEditMode()?!1:(this.parent.setEditingState(!1),this.#A=!0,!0)}disableEditMode(){return this.isInEditMode()?(this.parent.setEditingState(!0),this.#A=!1,!0):!1}isInEditMode(){return this.#A}shouldGetKeyboardEvents(){return this.#b}needsToBeRebuilt(){return this.div&&!this.isAttachedToDOM}get isOnScreen(){const{top:e,left:i,bottom:r,right:n}=this.getClientDimensions(),{innerHeight:o,innerWidth:s}=window;return i<s&&n>0&&e<o&&r>0}#N(){if(this.#p||!this.div)return;this.#p=new AbortController;const e=this._uiManager.combinedSignal(this.#p);this.div.addEventListener("focusin",this.focusin.bind(this),{signal:e}),this.div.addEventListener("focusout",this.focusout.bind(this),{signal:e})}rebuild(){this.#N()}rotate(e){}resize(){}serializeDeleted(){return{id:this.annotationElementId,deleted:!0,pageIndex:this.pageIndex,popupRef:this._initialData?.popupRef||""}}serialize(e=!1,i=null){return{annotationType:this.mode,pageIndex:this.pageIndex,rect:this.getPDFRect(),rotation:this.rotation,structTreeParentId:this._structTreeParentId,popupRef:this._initialData?.popupRef||""}}static async deserialize(e,i,r){const n=new this.prototype.constructor({parent:i,id:i.getNextId(),uiManager:r,annotationElementId:e.annotationElementId,creationDate:e.creationDate,modificationDate:e.modificationDate});n.rotation=e.rotation,n.#e=e.accessibilityData,n._isCopy=e.isCopy||!1;const[o,s]=n.pageDimensions,[a,l,c,d]=n.getRectInCurrentCoords(e.rect,s);return n.x=a/o,n.y=l/s,n.width=c/o,n.height=d/s,n}get hasBeenModified(){return!!this.annotationElementId&&(this.deleted||this.serialize()!==null)}remove(){if(this.#p?.abort(),this.#p=null,this.isEmpty()||this.commit(),this.parent?this.parent.remove(this):this._uiManager.removeEditor(this),this.hideCommentPopup(),this.#v&&(clearTimeout(this.#v),this.#v=null),this.#j(),this.removeEditToolbar(),this.#w){for(const e of this.#w.values())clearTimeout(e);this.#w=null}this.parent=null,this.#E?.destroy(),this.#E=null,this.#h?.remove(),this.#h=null}get isResizable(){return!1}makeResizable(){this.isResizable&&(this.#F(),this.#l.classList.remove("hidden"))}get toolbarPosition(){return null}get commentButtonPosition(){return this._uiManager.direction==="ltr"?[1,0]:[0,0]}get commentButtonPositionInPage(){const{commentButtonPosition:[e,i]}=this,[r,n,o,s]=this.getPDFRect();return[Si._round(r+(o-r)*e),Si._round(n+(s-n)*(1-i))]}get commentButtonColor(){return this._uiManager.makeCommentColor(this.getNonHCMColor(),this.opacity)}get commentPopupPosition(){return this.#i.commentPopupPositionInLayer}set commentPopupPosition(e){this.#i.commentPopupPositionInLayer=e}hasDefaultPopupPosition(){return this.#i.hasDefaultPopupPosition()}get commentButtonWidth(){return this.#i.commentButtonWidth}get elementBeforePopup(){return this.div}setCommentButtonStates(e){this.#i?.setCommentButtonStates(e)}keydown(e){if(!this.isResizable||e.target!==this.div||e.key!=="Enter")return;this._uiManager.setSelected(this),this.#d={savedX:this.x,savedY:this.y,savedWidth:this.width,savedHeight:this.height};const i=this.#l.children;if(!this.#t){this.#t=Array.from(i);const s=this.#K.bind(this),a=this.#Q.bind(this),l=this._uiManager._signal;for(const c of this.#t){const d=c.getAttribute("data-resizer-name");c.setAttribute("role","spinbutton"),c.addEventListener("keydown",s,{signal:l}),c.addEventListener("blur",a,{signal:l}),c.addEventListener("focus",this.#W.bind(this,d),{signal:l}),c.setAttribute("data-l10n-id",Si._l10nResizer[d])}}const r=this.#t[0];let n=0;for(const s of i){if(s===r)break;n++}const o=(360-this.rotation+this.parentRotation)%360/90*(this.#t.length/4);if(o!==n){if(o<n)for(let a=0;a<n-o;a++)this.#l.append(this.#l.firstElementChild);else if(o>n)for(let a=0;a<o-n;a++)this.#l.firstElementChild.before(this.#l.lastElementChild);let s=0;for(const a of i){const l=this.#t[s++].getAttribute("data-resizer-name");a.setAttribute("data-l10n-id",Si._l10nResizer[l])}}this.#H(0),this.#b=!0,this.#l.firstElementChild.focus({focusVisible:!0}),e.preventDefault(),e.stopImmediatePropagation()}#K(e){Si._resizerKeyboardManager.exec(this,e)}#Q(e){this.#b&&e.relatedTarget?.parentNode!==this.#l&&this.#j()}#W(e){this.#m=this.#b?e:""}#H(e){if(this.#t)for(const i of this.#t)i.tabIndex=e}_resizeWithKeyboard(e,i){this.#b&&this.#L(this.#m,{deltaX:e,deltaY:i,fromKeyboard:!0})}#j(){this.#b=!1,this.#H(-1),this.#O()}_stopResizingWithKeyboard(){this.#j(),this.div.focus()}select(){if(this.isSelected&&this._editToolbar){this._editToolbar.show();return}if(this.isSelected=!0,this.makeResizable(),this.div?.classList.add("selectedEditor"),!this._editToolbar){this.addEditToolbar().then(()=>{this.div?.classList.contains("selectedEditor")&&this._editToolbar?.show()});return}this._editToolbar?.show(),this.#r?.toggleAltTextBadge(!1)}focus(){this.div&&!this.div.contains(document.activeElement)&&setTimeout(()=>this.div?.focus({preventScroll:!0}),0)}unselect(){this.isSelected&&(this.isSelected=!1,this.#l?.classList.add("hidden"),this.div?.classList.remove("selectedEditor"),this.div?.contains(document.activeElement)&&this._uiManager.currentLayer.div.focus({preventScroll:!0}),this._editToolbar?.hide(),this.#r?.toggleAltTextBadge(!0),this.hideCommentPopup())}hideCommentPopup(){this.hasComment&&this._uiManager.toggleComment(null)}updateParams(e,i){}disableEditing(){}enableEditing(){}get canChangeContent(){return!1}enterInEditMode(){this.canChangeContent&&(this.enableEditMode(),this.div.focus())}dblclick(e){e.target.nodeName!=="BUTTON"&&(this.enterInEditMode(),this.parent.updateToolbar({mode:this.constructor._editorType,editId:this.uid}))}getElementForAltText(){return this.div}get contentDiv(){return this.div}get isEditing(){return this.#f}set isEditing(e){this.#f=e,this.parent&&(e?(this.parent.setSelected(this),this.parent.setActiveEditor(this)):this.parent.setActiveEditor(null))}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){this.#w||=new Map;const{action:r}=e;let n=this.#w.get(r);n&&clearTimeout(n),n=setTimeout(()=>{this._reportTelemetry(e),this.#w.delete(r),this.#w.size===0&&(this.#w=null)},Si._telemetryTimeout),this.#w.set(r,n);return}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),this.#o=!1}disable(){this.div&&(this.div.tabIndex=-1),this.#o=!0}updateFakeAnnotationElement(e){if(!this.#h&&!this.deleted){this.#h=e.addFakeAnnotation(this);return}if(this.deleted){this.#h.remove(),this.#h=null;return}(this.hasEditedComment||this._hasBeenMoved||this._hasBeenResized)&&this.#h.updateEdited({rect:this.getPDFRect(),popup:this.comment})}renderAnnotationElement(e){if(this.deleted)return e.hide(),null;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{firstElementChild:i}=e.container;i?.nodeName==="DIV"&&i.classList.contains("annotationContent")&&i.remove()}}class tHi extends Si{constructor(e){super(e),this.annotationElementId=e.annotationElementId,this.deleted=!0}serialize(){return this.serializeDeleted()}}const eye=3285377520,Yc=4294901760,Yu=65535;let tye=class{constructor(t){this.h1=t?t&4294967295:eye,this.h2=t?t&4294967295:eye}update(t){let e,i;if(typeof t=="string"){e=new Uint8Array(t.length*2),i=0;for(let g=0,f=t.length;g<f;g++){const A=t.charCodeAt(g);A<=255?e[i++]=A:(e[i++]=A>>>8,e[i++]=A&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,n=i-r*4,o=new Uint32Array(e.buffer,0,r);let s=0,a=0,l=this.h1,c=this.h2;const d=3432918353,u=461845907,h=d&Yu,p=u&Yu;for(let g=0;g<r;g++)g&1?(s=o[g],s=s*d&Yc|s*h&Yu,s=s<<15|s>>>17,s=s*u&Yc|s*p&Yu,l^=s,l=l<<13|l>>>19,l=l*5+3864292196):(a=o[g],a=a*d&Yc|a*h&Yu,a=a<<15|a>>>17,a=a*u&Yc|a*p&Yu,c^=a,c=c<<13|c>>>19,c=c*5+3864292196);switch(s=0,n){case 3:s^=e[r*4+2]<<16;case 2:s^=e[r*4+1]<<8;case 1:s^=e[r*4],s=s*d&Yc|s*h&Yu,s=s<<15|s>>>17,s=s*u&Yc|s*p&Yu,r&1?l^=s:c^=s}this.h1=l,this.h2=c}hexdigest(){let t=this.h1,e=this.h2;return t^=e>>>1,t=t*3981806797&Yc|t*36045&Yu,e=e*4283543511&Yc|((e<<16|t>>>16)*2950163797&Yc)>>>16,t^=e>>>1,t=t*444984403&Yc|t*60499&Yu,e=e*3301882366&Yc|((e<<16|t>>>16)*3120437893&Yc)>>>16,t^=e>>>1,(t>>>0).toString(16).padStart(8,"0")+(e>>>0).toString(16).padStart(8,"0")}};const $9=Object.freeze({map:null,hash:"",transfer:void 0});class YG{#e=!1;#t=null;#r=null;#i=new Map;onSetModified=null;onResetModified=null;onAnnotationEditor=null;getValue(e,i){const r=this.#i.get(e);return r===void 0?i:Object.assign(i,r)}getRawValue(e){return this.#i.get(e)}remove(e){const i=this.#i.get(e);if(i!==void 0&&(i instanceof Si&&this.#r.delete(i.annotationElementId),this.#i.delete(e),this.#i.size===0&&this.resetModified(),typeof this.onAnnotationEditor=="function")){for(const r of this.#i.values())if(r instanceof Si)return;this.onAnnotationEditor(null)}}setValue(e,i){const r=this.#i.get(e);let n=!1;if(r!==void 0)for(const[o,s]of Object.entries(i))r[o]!==s&&(n=!0,r[o]=s);else n=!0,this.#i.set(e,i);n&&this.#n(),i instanceof Si&&((this.#r||=new Map).set(i.annotationElementId,i),typeof this.onAnnotationEditor=="function"&&this.onAnnotationEditor(i.constructor._type))}has(e){return this.#i.has(e)}get size(){return this.#i.size}#n(){this.#e||(this.#e=!0,typeof this.onSetModified=="function"&&this.onSetModified())}resetModified(){this.#e&&(this.#e=!1,typeof this.onResetModified=="function"&&this.onResetModified())}get print(){return new iye(this)}get serializable(){if(this.#i.size===0)return $9;const e=new Map,i=new tye,r=[],n=Object.create(null);let o=!1;for(const[s,a]of this.#i){const l=a instanceof Si?a.serialize(!1,n):a;a.page&&(a.pageIndex=a.page._pageIndex,delete a.page),l&&(e.set(s,l),i.update(`${s}:${JSON.stringify(l)}`),o||=!!l.bitmap)}if(o)for(const s of e.values())s.bitmap&&r.push(s.bitmap);return e.size>0?{map:e,hash:i.hexdigest(),transfer:r}:$9}get editorStats(){let e=null;const i=new Map;let r=0,n=0;for(const o of this.#i.values()){if(!(o instanceof Si)){o.popup&&(o.popup.deleted?n+=1:r+=1);continue}o.isCommentDeleted?n+=1:o.hasEditedComment&&(r+=1);const s=o.telemetryFinalData;if(!s)continue;const{type:a}=s;i.has(a)||i.set(a,Object.getPrototypeOf(o).constructor),e||=Object.create(null);const l=e[a]||=new Map;for(const[c,d]of Object.entries(s)){if(c==="type")continue;const u=l.getOrInsertComputed(c,zG);u.set(d,(u.get(d)??0)+1)}}if((n>0||r>0)&&(e||=Object.create(null),e.comments={deleted:n,edited:r}),!e)return null;for(const[o,s]of i)e[o]=s.computeTelemetryFinalData(e[o]);return e}resetModifiedIds(){this.#t=null}updateEditor(e,i){const r=this.#r?.get(e);return r?(r.updateFromAnnotationLayer(i),!0):!1}getEditor(e){return this.#r?.get(e)||null}get modifiedIds(){if(this.#t)return this.#t;const e=[];if(this.#r)for(const i of this.#r.values())i.serialize()&&e.push(i.annotationElementId);return this.#t={ids:new Set(e),hash:e.join(",")}}[Symbol.iterator](){return this.#i.entries()}}class iye extends YG{#e=$9;constructor(e){super();const{serializable:i}=e;if(i===$9)return;const{map:r,hash:n,transfer:o}=i,s=structuredClone(r,o?{transfer:o}:null);this.#e={map:s,hash:n,transfer:[]}}get print(){on("Should not call PrintAnnotationStorage.print")}get serializable(){return this.#e}get modifiedIds(){return Xi(this,"modifiedIds",{ids:new Set,hash:""})}}class iHi{#e=new Set;constructor({ownerDocument:e=globalThis.document,styleElement:i=null}){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(),this.#e.clear(),this.styleElement&&(this.styleElement.remove(),this.styleElement=null)}async loadSystemFont({systemFontInfo:e,disableFontFace:i,_inspectFont:r}){if(!(!e||this.#e.has(e.loadedName))){if(Yr(!i,"loadSystemFont shouldn't be called when `disableFontFace` is set."),this.isFontLoadingAPISupported){const{loadedName:n,src:o,style:s}=e,a=new FontFace(n,o,s);this.addNativeFontFace(a);try{await a.load(),this.#e.add(n),r?.(e)}catch{rr(`Cannot load system font: ${e.baseFontName}, installing it could help to improve PDF rendering.`),this.removeNativeFontFace(a)}return}on("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(n){throw rr(`Failed to load font '${r.family}': '${n}'.`),e.disableFontFace=!0,n}}return}const i=e.createFontFaceRule();if(i){if(this.insertRule(i),this.isSyncFontLoadingSupported)return;await new Promise(r=>{const n=this._queueLoadingCallback(r);this._prepareFontLoadEvent(e,n)})}}get isFontLoadingAPISupported(){const e=!!this._document?.fonts;return Xi(this,"isFontLoadingAPISupported",e)}get isSyncFontLoadingSupported(){return Xi(this,"isSyncFontLoadingSupported",nl||us.platform.isFirefox)}_queueLoadingCallback(e){function i(){for(Yr(!n.done,"completeRequest() cannot be called twice."),n.done=!0;r.length>0&&r[0].done;){const o=r.shift();setTimeout(o.callback,0)}}const{loadingRequests:r}=this,n={done:!1,complete:i,callback:e};return r.push(n),n}get _loadTestFont(){const e=atob("T1RUTwALAIAAAwAwQ0ZGIDHtZg4AAAOYAAAAgUZGVE1lkzZwAAAEHAAAABxHREVGABQAFQAABDgAAAAeT1MvMlYNYwkAAAEgAAAAYGNtYXABDQLUAAACNAAAAUJoZWFk/xVFDQAAALwAAAA2aGhlYQdkA+oAAAD0AAAAJGhtdHgD6AAAAAAEWAAAAAZtYXhwAAJQAAAAARgAAAAGbmFtZVjmdH4AAAGAAAAAsXBvc3T/hgAzAAADeAAAACAAAQAAAAEAALZRFsRfDzz1AAsD6AAAAADOBOTLAAAAAM4KHDwAAAAAA+gDIQAAAAgAAgAAAAAAAAABAAADIQAAAFoD6AAAAAAD6AABAAAAAAAAAAAAAAAAAAAAAQAAUAAAAgAAAAQD6AH0AAUAAAKKArwAAACMAooCvAAAAeAAMQECAAACAAYJAAAAAAAAAAAAAQAAAAAAAAAAAAAAAFBmRWQAwAAuAC4DIP84AFoDIQAAAAAAAQAAAAAAAAAAACAAIAABAAAADgCuAAEAAAAAAAAAAQAAAAEAAAAAAAEAAQAAAAEAAAAAAAIAAQAAAAEAAAAAAAMAAQAAAAEAAAAAAAQAAQAAAAEAAAAAAAUAAQAAAAEAAAAAAAYAAQAAAAMAAQQJAAAAAgABAAMAAQQJAAEAAgABAAMAAQQJAAIAAgABAAMAAQQJAAMAAgABAAMAAQQJAAQAAgABAAMAAQQJAAUAAgABAAMAAQQJAAYAAgABWABYAAAAAAAAAwAAAAMAAAAcAAEAAAAAADwAAwABAAAAHAAEACAAAAAEAAQAAQAAAC7//wAAAC7////TAAEAAAAAAAABBgAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAD/gwAyAAAAAQAAAAAAAAAAAAAAAAAAAAABAAQEAAEBAQJYAAEBASH4DwD4GwHEAvgcA/gXBIwMAYuL+nz5tQXkD5j3CBLnEQACAQEBIVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYAAABAQAADwACAQEEE/t3Dov6fAH6fAT+fPp8+nwHDosMCvm1Cvm1DAz6fBQAAAAAAAABAAAAAMmJbzEAAAAAzgTjFQAAAADOBOQpAAEAAAAAAAAADAAUAAQAAAABAAAAAgABAAAAAAAAAAAD6AAAAAAAAA==");return Xi(this,"_loadTestFont",e)}_prepareFontLoadEvent(e,i){function r(v,w){return v.charCodeAt(w)<<24|v.charCodeAt(w+1)<<16|v.charCodeAt(w+2)<<8|v.charCodeAt(w+3)&255}function n(v,w,y,x){const k=v.substring(0,w),E=v.substring(w+y);return k+x+E}let o,s;const a=this._document.createElement("canvas");a.width=1,a.height=1;const l=a.getContext("2d");let c=0;function d(v,w){if(++c>30){rr("Load test font never loaded."),w();return}if(l.font="30px "+v,l.fillText(".",0,20),l.getImageData(0,0,1,1).data[3]>0){w();return}setTimeout(d.bind(null,v,w))}const u=`lt${Date.now()}${this.loadTestFontId++}`;let h=this._loadTestFont;h=n(h,976,u.length,u);const p=16,g=1482184792;let f=r(h,p);for(o=0,s=u.length-3;o<s;o+=4)f=f-g+r(u,o)|0;o<u.length&&(f=f-g+r(u+"XXX",o)|0),h=n(h,p,4,FNi(f));const A=`url(data:font/opentype;base64,${btoa(h)});`,m=`@font-face {font-family:"${u}";src:${A}}`;this.insertRule(m);const b=this._document.createElement("div");b.style.visibility="hidden",b.style.width=b.style.height="10px",b.style.position="absolute",b.style.top=b.style.left="0px";for(const v of[e.loadedName,u]){const w=this._document.createElement("span");w.textContent="Hi",w.style.fontFamily=v,b.append(w)}this._document.body.append(b),d(u,()=>{b.remove(),i.complete()})}}class rHi{#e;constructor(e,i=null,r,n){this.compiledGlyphs=Object.create(null),this.#e=e,this._inspectFont=i,r&&Object.assign(this,r),n&&(this.charProcOperatorList=n)}createNativeFontFace(){if(!this.data||this.disableFontFace)return null;let e;if(!this.cssFontInfo)e=new FontFace(this.loadedName,this.data,{});else{const i={weight:this.cssFontInfo.fontWeight};this.cssFontInfo.italicAngle&&(i.style=`oblique ${this.cssFontInfo.italicAngle}deg`),e=new FontFace(this.cssFontInfo.fontFamily,this.data,i)}return this._inspectFont?.(this),e}createFontFaceRule(){if(!this.data||this.disableFontFace)return null;const e=`url(data:${this.mimetype};base64,${this.data.toBase64()});`;let i;if(!this.cssFontInfo)i=`@font-face {font-family:"${this.loadedName}";src:${e}}`;else{let r=`font-weight: ${this.cssFontInfo.fontWeight};`;this.cssFontInfo.italicAngle&&(r+=`font-style: oblique ${this.cssFontInfo.italicAngle}deg;`),i=`@font-face {font-family:"${this.cssFontInfo.fontFamily}";${r}src:${e}}`}return this._inspectFont?.(this,e),i}getPathGenerator(e,i){if(this.compiledGlyphs[i]!==void 0)return this.compiledGlyphs[i];const r=this.loadedName+"_path_"+i;let n;try{n=e.get(r)}catch(s){rr(`getPathGenerator - ignoring character: "${s}".`)}const o=X7e(n?.path);return this.fontExtraProperties||e.delete(r),this.compiledGlyphs[i]=o}get black(){return this.#e.black}get bold(){return this.#e.bold}get disableFontFace(){return this.#e.disableFontFace??!1}set disableFontFace(e){Xi(this,"disableFontFace",!!e)}get fontExtraProperties(){return this.#e.fontExtraProperties??!1}get isInvalidPDFjsFont(){return this.#e.isInvalidPDFjsFont}get isType3Font(){return this.#e.isType3Font}get italic(){return this.#e.italic}get missingFile(){return this.#e.missingFile}get remeasure(){return this.#e.remeasure}get vertical(){return this.#e.vertical}get ascent(){return this.#e.ascent}get defaultWidth(){return this.#e.defaultWidth}get descent(){return this.#e.descent}get bbox(){return this.#e.bbox}set bbox(e){Xi(this,"bbox",e)}get fontMatrix(){return this.#e.fontMatrix}get fallbackName(){return this.#e.fallbackName}get loadedName(){return this.#e.loadedName}get mimetype(){return this.#e.mimetype}get name(){return this.#e.name}get data(){return this.#e.data}clearData(){this.#e.clearData()}get cssFontInfo(){return this.#e.cssFontInfo}get systemFontInfo(){return this.#e.systemFontInfo}get defaultVMetrics(){return this.#e.defaultVMetrics}}let rye=class DS{#e;#t;#r;static strings=["fontFamily","fontWeight","italicAngle"];static write(e){const i=new TextEncoder,r={};let n=0;for(const c of DS.strings){const d=i.encode(e[c]);r[c]=d,n+=4+d.length}const o=new ArrayBuffer(n),s=new Uint8Array(o),a=new DataView(o);let l=0;for(const c of DS.strings){const d=r[c],u=d.length;a.setUint32(l,u),s.set(d,l+4),l+=4+u}return Yr(l===o.byteLength,"CssFontInfo.write: Buffer overflow"),o}constructor(e){this.#e=e,this.#t=new DataView(this.#e),this.#r=new TextDecoder}#i(e){Yr(e<DS.strings.length,"Invalid string index");let i=0;for(let n=0;n<e;n++)i+=this.#t.getUint32(i)+4;const r=this.#t.getUint32(i);return this.#r.decode(new Uint8Array(this.#e,i+4,r))}get fontFamily(){return this.#i(0)}get fontWeight(){return this.#i(1)}get italicAngle(){return this.#i(2)}},nye=class _S{#e;#t;#r;static strings=["css","loadedName","baseFontName","src"];static write(e){const i=new TextEncoder,r={};let n=0;for(const h of _S.strings){const p=i.encode(e[h]);r[h]=p,n+=4+p.length}n+=4;let o,s,a=1+n;e.style&&(o=i.encode(e.style.style),s=i.encode(e.style.weight),a+=4+o.length+4+s.length);const l=new ArrayBuffer(a),c=new Uint8Array(l),d=new DataView(l);let u=0;d.setUint8(u++,e.guessFallback?1:0),d.setUint32(u,0),u+=4,n=0;for(const h of _S.strings){const p=r[h],g=p.length;n+=4+g,d.setUint32(u,g),c.set(p,u+4),u+=4+g}return d.setUint32(u-n-4,n),e.style&&(d.setUint32(u,o.length),c.set(o,u+4),u+=4+o.length,d.setUint32(u,s.length),c.set(s,u+4),u+=4+s.length),Yr(u<=l.byteLength,"SubstitionInfo.write: Buffer overflow"),l.transferToFixedLength(u)}constructor(e){this.#e=e,this.#t=new DataView(this.#e),this.#r=new TextDecoder}get guessFallback(){return this.#t.getUint8(0)!==0}#i(e){Yr(e<_S.strings.length,"Invalid string index");let i=5;for(let n=0;n<e;n++)i+=this.#t.getUint32(i)+4;const r=this.#t.getUint32(i);return this.#r.decode(new Uint8Array(this.#e,i+4,r))}get css(){return this.#i(0)}get loadedName(){return this.#i(1)}get baseFontName(){return this.#i(2)}get src(){return this.#i(3)}get style(){let e=1;e+=4+this.#t.getUint32(e);const i=this.#t.getUint32(e),r=this.#r.decode(new Uint8Array(this.#e,e+4,i));e+=4+i;const n=this.#t.getUint32(e),o=this.#r.decode(new Uint8Array(this.#e,e+4,n));return{style:r,weight:o}}},nHi=class Ln{static bools=["black","bold","disableFontFace","fontExtraProperties","isInvalidPDFjsFont","isType3Font","italic","missingFile","remeasure","vertical"];static numbers=["ascent","defaultWidth","descent"];static strings=["fallbackName","loadedName","mimetype","name"];static#e=Math.ceil(this.bools.length*2/8);static#t=this.#e+this.numbers.length*8;static#r=this.#t+1+8;static#i=this.#r+1+48;static#n=this.#i+1+6;#o;#s;#a;constructor({data:e,extra:i}){this.#o=e,this.#s=new TextDecoder,this.#a=new DataView(this.#o),i&&Object.assign(this,i)}#l(e){Yr(e<Ln.bools.length,"Invalid boolean index");const i=Math.floor(e/4),r=e*2%8,n=this.#a.getUint8(i)>>r&3;return n===0?void 0:n===2}get black(){return this.#l(0)}get bold(){return this.#l(1)}get disableFontFace(){return this.#l(2)}get fontExtraProperties(){return this.#l(3)}get isInvalidPDFjsFont(){return this.#l(4)}get isType3Font(){return this.#l(5)}get italic(){return this.#l(6)}get missingFile(){return this.#l(7)}get remeasure(){return this.#l(8)}get vertical(){return this.#l(9)}#c(e){return Yr(e<Ln.numbers.length,"Invalid number index"),this.#a.getFloat64(Ln.#e+e*8)}get ascent(){return this.#c(0)}get defaultWidth(){return this.#c(1)}get descent(){return this.#c(2)}get bbox(){let e=Ln.#t;if(this.#a.getUint8(e)===0)return;e+=1;const i=[];for(let r=0;r<4;r++)i.push(this.#a.getInt16(e,!0)),e+=2;return i}get fontMatrix(){let e=Ln.#r;if(this.#a.getUint8(e)===0)return;e+=1;const i=[];for(let r=0;r<6;r++)i.push(this.#a.getFloat64(e,!0)),e+=8;return i}get defaultVMetrics(){let e=Ln.#i;if(this.#a.getUint8(e)===0)return;e+=1;const i=[];for(let r=0;r<3;r++)i.push(this.#a.getInt16(e,!0)),e+=2;return i}#d(e){Yr(e<Ln.strings.length,"Invalid string index");let i=Ln.#n+4;for(let o=0;o<e;o++)i+=this.#a.getUint32(i)+4;const r=this.#a.getUint32(i),n=new Uint8Array(r);return n.set(new Uint8Array(this.#o,i+4,r)),this.#s.decode(n)}get fallbackName(){return this.#d(0)}get loadedName(){return this.#d(1)}get mimetype(){return this.#d(2)}get name(){return this.#d(3)}get data(){let e=Ln.#n;const i=this.#a.getUint32(e);e+=4+i;const r=this.#a.getUint32(e);e+=4+r;const n=this.#a.getUint32(e);e+=4+n;const o=this.#a.getUint32(e);if(o!==0)return new Uint8Array(this.#o,e+4,o)}clearData(){let e=Ln.#n;const i=this.#a.getUint32(e);e+=4+i;const r=this.#a.getUint32(e);e+=4+r;const n=this.#a.getUint32(e);e+=4+n;const o=this.#a.getUint32(e);new Uint8Array(this.#o,e+4,o).fill(0),this.#a.setUint32(e,0)}get cssFontInfo(){let e=Ln.#n;const i=this.#a.getUint32(e);e+=4+i;const r=this.#a.getUint32(e);e+=4+r;const n=this.#a.getUint32(e);if(n===0)return null;const o=new Uint8Array(n);return o.set(new Uint8Array(this.#o,e+4,n)),new rye(o.buffer)}get systemFontInfo(){let e=Ln.#n;const i=this.#a.getUint32(e);e+=4+i;const r=this.#a.getUint32(e);if(r===0)return null;const n=new Uint8Array(r);return n.set(new Uint8Array(this.#o,e+4,r)),new nye(n.buffer)}static write(e){const i=e.systemFontInfo?nye.write(e.systemFontInfo):null,r=e.cssFontInfo?rye.write(e.cssFontInfo):null,n=new TextEncoder,o={};let s=0;for(const f of Ln.strings)o[f]=n.encode(e[f]),s+=4+o[f].length;const a=Ln.#n+4+s+4+(i?i.byteLength:0)+4+(r?r.byteLength:0)+4+(e.data?e.data.length:0),l=new ArrayBuffer(a),c=new Uint8Array(l),d=new DataView(l);let u=0;const h=Ln.bools.length;let p=0,g=0;for(let f=0;f<h;f++){const A=e[Ln.bools[f]];p|=(A===void 0?0:A?2:1)<<g,g+=2,(g===8||f===h-1)&&(d.setUint8(u++,p),p=0,g=0)}Yr(u===Ln.#e,"FontInfo.write: Boolean properties offset mismatch");for(const f of Ln.numbers)d.setFloat64(u,e[f]),u+=8;if(Yr(u===Ln.#t,"FontInfo.write: Number properties offset mismatch"),e.bbox){d.setUint8(u++,4);for(const f of e.bbox)d.setInt16(u,f,!0),u+=2}else d.setUint8(u++,0),u+=8;if(Yr(u===Ln.#r,"FontInfo.write: BBox properties offset mismatch"),e.fontMatrix){d.setUint8(u++,6);for(const f of e.fontMatrix)d.setFloat64(u,f,!0),u+=8}else d.setUint8(u++,0),u+=48;if(Yr(u===Ln.#i,"FontInfo.write: FontMatrix properties offset mismatch"),e.defaultVMetrics){d.setUint8(u++,1);for(const f of e.defaultVMetrics)d.setInt16(u,f,!0),u+=2}else d.setUint8(u++,0),u+=6;Yr(u===Ln.#n,"FontInfo.write: DefaultVMetrics properties offset mismatch"),d.setUint32(Ln.#n,0),u+=4;for(const f of Ln.strings){const A=o[f],m=A.length;d.setUint32(u,m),c.set(A,u+4),u+=4+m}if(d.setUint32(Ln.#n,u-Ln.#n-4),!i)d.setUint32(u,0),u+=4;else{const f=i.byteLength;d.setUint32(u,f),Yr(u+4+f<=l.byteLength,"FontInfo.write: Buffer overflow at systemFontInfo"),c.set(new Uint8Array(i),u+4),u+=4+f}if(!r)d.setUint32(u,0),u+=4;else{const f=r.byteLength;d.setUint32(u,f),Yr(u+4+f<=l.byteLength,"FontInfo.write: Buffer overflow at cssFontInfo"),c.set(new Uint8Array(r),u+4),u+=4+f}return e.data===void 0?(d.setUint32(u,0),u+=4):(d.setUint32(u,e.data.length),c.set(e.data,u+4),u+=4+e.data.length),Yr(u<=l.byteLength,"FontInfo.write: Buffer overflow"),l.transferToFixedLength(u)}},oHi=class la{static#e=0;static#t=1;static#r=2;static#i=3;static#n=4;static#o=8;static#s=12;static#a=16;constructor(e){this.buffer=e,this.view=new DataView(e),this.data=new Uint8Array(e)}static write(e){let i,r=null,n=[],o=[],s=[],a=[],l=null,c=null;switch(e[0]){case"RadialAxial":i=e[1]==="axial"?1:2,r=e[2],s=e[3],i===1?n.push(...e[4],...e[5]):n.push(e[4][0],e[4][1],e[6],e[5][0],e[5][1],e[7]);break;case"Mesh":i=3,l=e[1],n=e[2],o=e[3],a=e[4]||[],r=e[6],c=e[7];break;default:throw new Error(`Unsupported pattern type: ${e[0]}`)}const d=Math.floor(n.length/2),u=Math.floor(o.length/3),h=s.length,p=a.length;let g=0;for(const w of a)g+=1,g=Math.ceil(g/4)*4,g+=4+w.coords.length*4,g+=4+w.colors.length*4,w.verticesPerRow!==void 0&&(g+=4);const f=20+d*8+u*3+h*8+(r?16:0)+(c?3:0)+g,A=new ArrayBuffer(f),m=new DataView(A),b=new Uint8Array(A);m.setUint8(la.#e,i),m.setUint8(la.#t,r?1:0),m.setUint8(la.#r,c?1:0),m.setUint8(la.#i,l),m.setUint32(la.#n,d,!0),m.setUint32(la.#o,u,!0),m.setUint32(la.#s,h,!0),m.setUint32(la.#a,p,!0);let v=20;new Float32Array(A,v,d*2).set(n),v+=d*8,b.set(o,v),v+=u*3;for(const[w,y]of s)m.setFloat32(v,w,!0),v+=4,m.setUint32(v,parseInt(y.slice(1),16),!0),v+=4;if(r)for(const w of r)m.setFloat32(v,w,!0),v+=4;c&&(b.set(c,v),v+=3);for(let w=0;w<a.length;w++){const y=a[w];m.setUint8(v,y.type),v+=1,v=Math.ceil(v/4)*4,m.setUint32(v,y.coords.length,!0),v+=4,new Int32Array(A,v,y.coords.length).set(y.coords),v+=y.coords.length*4,m.setUint32(v,y.colors.length,!0),v+=4,new Int32Array(A,v,y.colors.length).set(y.colors),v+=y.colors.length*4,y.verticesPerRow!==void 0&&(m.setUint32(v,y.verticesPerRow,!0),v+=4)}return A}getIR(){const e=this.view,i=this.data[la.#e],r=!!this.data[la.#t],n=!!this.data[la.#r],o=e.getUint32(la.#n,!0),s=e.getUint32(la.#o,!0),a=e.getUint32(la.#s,!0),l=e.getUint32(la.#a,!0);let c=20;const d=new Float32Array(this.buffer,c,o*2);c+=o*8;const u=new Uint8Array(this.buffer,c,s*3);c+=s*3;const h=[];for(let A=0;A<a;++A){const m=e.getFloat32(c,!0);c+=4;const b=e.getUint32(c,!0);c+=4,h.push([m,`#${b.toString(16).padStart(6,"0")}`])}let p=null;if(r){p=[];for(let A=0;A<4;++A)p.push(e.getFloat32(c,!0)),c+=4}let g=null;n&&(g=new Uint8Array(this.buffer,c,3),c+=3);const f=[];for(let A=0;A<l;++A){const m=e.getUint8(c);c+=1,c=Math.ceil(c/4)*4;const b=e.getUint32(c,!0);c+=4;const v=new Int32Array(this.buffer,c,b);c+=b*4;const w=e.getUint32(c,!0);c+=4;const y=new Int32Array(this.buffer,c,w);c+=w*4;const x={type:m,coords:v,colors:y};m===FG.LATTICE&&(x.verticesPerRow=e.getUint32(c,!0),c+=4),f.push(x)}if(i===1)return["RadialAxial","axial",p,h,Array.from(d.slice(0,2)),Array.from(d.slice(2,4)),null,null];if(i===2)return["RadialAxial","radial",p,h,[d[0],d[1]],[d[3],d[4]],d[2],d[5]];if(i===3){const A=this.data[la.#i];let m=null;if(d.length>0){let b=d[0],v=d[0],w=d[1],y=d[1];for(let x=0;x<d.length;x+=2){const k=d[x],E=d[x+1];b=b>k?k:b,w=w>E?E:w,v=v<k?k:v,y=y<E?E:y}m=[b,w,v,y]}return["Mesh",A,d,u,f,m,p,g]}throw new Error(`Unsupported pattern kind: ${i}`)}},sHi=class{static write(t){let e,i;return us.isFloat16ArraySupported?(i=new ArrayBuffer(t.length*2),e=new Float16Array(i)):(i=new ArrayBuffer(t.length*4),e=new Float32Array(i)),e.set(t),i}#e;constructor(t){this.#e=t}get path(){return us.isFloat16ArraySupported?new Float16Array(this.#e):new Float32Array(this.#e)}};function aHi(t){if(t instanceof URL)return t;if(typeof t=="string"){if(nl){if(/^[a-z][a-z0-9\-+.]+:/i.test(t))return new URL(t);const i=process.getBuiltinModule("url");return new URL(i.pathToFileURL(t))}const e=URL.parse(t,window.location);if(e)return e}throw new Error("Invalid PDF url data: either string or URL-object is expected in the url property.")}function lHi(t){if(nl&&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 sI(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 cI(t){if(typeof t!="string")return null;if(t.endsWith("/"))return t;throw new Error(`Invalid factory url: "${t}" must include trailing slash.`)}const ZG=t=>typeof t=="object"&&Number.isInteger(t?.num)&&t.num>=0&&Number.isInteger(t?.gen)&&t.gen>=0,cHi=t=>typeof t=="object"&&typeof t?.name=="string",dHi=HNi.bind(null,ZG,cHi);class uHi{#e=new Map;#t=Promise.resolve();postMessage(e,i){const r={data:structuredClone(e,i?{transfer:i}:null)};this.#t.then(()=>{for(const[n]of this.#e)n.call(this,r)})}addEventListener(e,i,r=null){let n=null;if(r?.signal instanceof AbortSignal){const{signal:o}=r;if(o.aborted){rr("LoopbackPort - cannot use an `aborted` signal.");return}const s=()=>this.removeEventListener(e,i);n=()=>o.removeEventListener("abort",s),o.addEventListener("abort",s)}this.#e.set(i,n)}removeEventListener(e,i){this.#e.get(i)?.(),this.#e.delete(i)}terminate(){for(const[,e]of this.#e)e?.();this.#e.clear()}}const dI={DATA:1,ERROR:2},$o={CANCEL:1,CANCEL_COMPLETE:2,CLOSE:3,ENQUEUE:4,ERROR:5,PULL:6,PULL_COMPLETE:7,START_COMPLETE:8};function oye(){}function Dl(t){if(t instanceof Af||t instanceof UG||t instanceof U7e||t instanceof oI||t instanceof qG)return t;switch(t instanceof Error||typeof t=="object"&&t!==null||on('wrapReason: Expected "reason" to be a (possibly cloned) Error.'),t.name){case"AbortException":return new Af(t.message);case"InvalidPDFException":return new UG(t.message);case"PasswordException":return new U7e(t.message,t.code);case"ResponseException":return new oI(t.message,t.status,t.missing);case"UnknownErrorException":return new qG(t.message,t.details)}return new qG(t.message,t.toString())}let e7=class{#e=new AbortController;constructor(t,e,i){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",this.#t.bind(this),{signal:this.#e.signal})}#t({data:t}){if(t.targetName!==this.sourceName)return;if(t.stream){this.#i(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===dI.DATA)r.resolve(t.data);else if(t.callback===dI.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,n=this.comObj;Promise.try(e,t.data).then(function(o){n.postMessage({sourceName:i,targetName:r,callback:dI.DATA,callbackId:t.callbackId,data:o})},function(o){n.postMessage({sourceName:i,targetName:r,callback:dI.ERROR,callbackId:t.callbackId,reason:Dl(o)})});return}if(t.streamId){this.#r(t);return}e(t.data)}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++,n=Promise.withResolvers();this.callbackCapabilities[r]=n;try{this.comObj.postMessage({sourceName:this.sourceName,targetName:this.targetName,action:t,callbackId:r,data:e},i)}catch(o){n.reject(o)}return n.promise}sendWithStream(t,e,i,r){const n=this.streamId++,o=this.sourceName,s=this.targetName,a=this.comObj;return new ReadableStream({start:l=>{const c=Promise.withResolvers();return this.streamControllers[n]={controller:l,startCall:c,pullCall:null,cancelCall:null,isClosed:!1},a.postMessage({sourceName:o,targetName:s,action:t,streamId:n,data:e,desiredSize:l.desiredSize},r),c.promise},pull:l=>{const c=Promise.withResolvers();return this.streamControllers[n].pullCall=c,a.postMessage({sourceName:o,targetName:s,stream:$o.PULL,streamId:n,desiredSize:l.desiredSize}),c.promise},cancel:l=>{Yr(l instanceof Error,"cancel must have a valid reason");const c=Promise.withResolvers();return this.streamControllers[n].cancelCall=c,this.streamControllers[n].isClosed=!0,a.postMessage({sourceName:o,targetName:s,stream:$o.CANCEL,streamId:n,reason:Dl(l)}),c.promise}},i)}#r(t){const e=t.streamId,i=this.sourceName,r=t.sourceName,n=this.comObj,o=this,s=this.actionHandler[t.action],a={enqueue(l,c=1,d){if(this.isCancelled)return;const u=this.desiredSize;this.desiredSize-=c,u>0&&this.desiredSize<=0&&(this.sinkCapability=Promise.withResolvers(),this.ready=this.sinkCapability.promise),n.postMessage({sourceName:i,targetName:r,stream:$o.ENQUEUE,streamId:e,chunk:l},d)},close(){this.isCancelled||(this.isCancelled=!0,n.postMessage({sourceName:i,targetName:r,stream:$o.CLOSE,streamId:e}),delete o.streamSinks[e])},error(l){Yr(l instanceof Error,"error must have a valid reason"),!this.isCancelled&&(this.isCancelled=!0,n.postMessage({sourceName:i,targetName:r,stream:$o.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,Promise.try(s,t.data,a).then(function(){n.postMessage({sourceName:i,targetName:r,stream:$o.START_COMPLETE,streamId:e,success:!0})},function(l){n.postMessage({sourceName:i,targetName:r,stream:$o.START_COMPLETE,streamId:e,reason:Dl(l)})})}#i(t){const e=t.streamId,i=this.sourceName,r=t.sourceName,n=this.comObj,o=this.streamControllers[e],s=this.streamSinks[e];switch(t.stream){case $o.START_COMPLETE:t.success?o.startCall.resolve():o.startCall.reject(Dl(t.reason));break;case $o.PULL_COMPLETE:t.success?o.pullCall.resolve():o.pullCall.reject(Dl(t.reason));break;case $o.PULL:if(!s){n.postMessage({sourceName:i,targetName:r,stream:$o.PULL_COMPLETE,streamId:e,success:!0});break}s.desiredSize<=0&&t.desiredSize>0&&s.sinkCapability.resolve(),s.desiredSize=t.desiredSize,Promise.try(s.onPull||oye).then(function(){n.postMessage({sourceName:i,targetName:r,stream:$o.PULL_COMPLETE,streamId:e,success:!0})},function(l){n.postMessage({sourceName:i,targetName:r,stream:$o.PULL_COMPLETE,streamId:e,reason:Dl(l)})});break;case $o.ENQUEUE:if(Yr(o,"enqueue should have stream controller"),o.isClosed)break;o.controller.enqueue(t.chunk);break;case $o.CLOSE:if(Yr(o,"close should have stream controller"),o.isClosed)break;o.isClosed=!0,o.controller.close(),this.#n(o,e);break;case $o.ERROR:Yr(o,"error should have stream controller"),o.controller.error(Dl(t.reason)),this.#n(o,e);break;case $o.CANCEL_COMPLETE:t.success?o.cancelCall.resolve():o.cancelCall.reject(Dl(t.reason)),this.#n(o,e);break;case $o.CANCEL:if(!s)break;const a=Dl(t.reason);Promise.try(s.onCancel||oye,a).then(function(){n.postMessage({sourceName:i,targetName:r,stream:$o.CANCEL_COMPLETE,streamId:e,success:!0})},function(l){n.postMessage({sourceName:i,targetName:r,stream:$o.CANCEL_COMPLETE,streamId:e,reason:Dl(l)})}),s.sinkCapability.reject(a),s.isCancelled=!0,delete this.streamSinks[e];break;default:throw new Error("Unexpected stream case")}}async#n(t,e){await Promise.allSettled([t.startCall?.promise,t.pullCall?.promise,t.cancelCall?.promise]),delete this.streamControllers[e]}destroy(){this.#e?.abort(),this.#e=null}};class sye{#e=!1;constructor({enableHWA:e=!1}){this.#e=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:!this.#e})}}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){on("Abstract method `_createCanvas` called.")}}class hHi extends sye{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 aye{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){on("Abstract method `_fetch` called.")}}class lye extends aye{async _fetch(e){const i=await J9(e,this.isCompressed?"bytes":"text");return i instanceof Uint8Array?i:sI(i)}}class cye{addFilter(e){return"none"}addHCMFilter(e,i){return"none"}addAlphaFilter(e){return"none"}addLuminosityFilter(e){return"none"}addHighlightHCMFilter(e,i,r,n,o){return"none"}destroy(e=!1){}}class pHi extends cye{#e;#t;#r;#i;#n;#o;#s=0;constructor({docId:e,ownerDocument:i=globalThis.document}){super(),this.#i=e,this.#n=i}get#a(){return this.#t||=new Map}get#l(){return this.#o||=new Map}get#c(){if(!this.#r){const e=this.#n.createElement("div"),{style:i}=e;i.visibility="hidden",i.contain="strict",i.width=i.height=0,i.position="absolute",i.top=i.left=0,i.zIndex=-1;const r=this.#n.createElementNS(Pp,"svg");r.setAttribute("width",0),r.setAttribute("height",0),this.#r=this.#n.createElementNS(Pp,"defs"),e.append(r),r.append(this.#r),this.#n.body.append(e)}return this.#r}#d(e){if(e.length===1){const l=e[0],c=new Array(256);for(let u=0;u<256;u++)c[u]=l[u]/255;const d=c.join(",");return[d,d,d]}const[i,r,n]=e,o=new Array(256),s=new Array(256),a=new Array(256);for(let l=0;l<256;l++)o[l]=i[l]/255,s[l]=r[l]/255,a[l]=n[l]/255;return[o.join(","),s.join(","),a.join(",")]}#h(e){if(this.#e===void 0){this.#e="";const i=this.#n.URL;i!==this.#n.baseURI&&(aI(i)?rr('#createUrl: ignore "data:"-URL for performance reasons.'):this.#e=q7e(i,""))}return`url(${this.#e}#${e})`}addFilter(e){if(!e)return"none";let i=this.#a.get(e);if(i)return i;const[r,n,o]=this.#d(e),s=e.length===1?r:`${r}${n}${o}`;if(i=this.#a.get(s),i)return this.#a.set(e,i),i;const a=`g_${this.#i}_transfer_map_${this.#s++}`,l=this.#h(a);this.#a.set(e,l),this.#a.set(s,l);const c=this.#g(a);return this.#f(r,n,o,c),l}addHCMFilter(e,i){const r=`${e}-${i}`,n="base";let o=this.#l.get(n);if(o?.key===r||(o?(o.filter?.remove(),o.key=r,o.url="none",o.filter=null):(o={key:r,url:"none",filter:null},this.#l.set(n,o)),!e||!i))return o.url;const s=this.#b(e);e=li.makeHexColor(...s);const a=this.#b(i);if(i=li.makeHexColor(...a),this.#c.style.color="",e==="#000000"&&i==="#ffffff"||e===i)return o.url;const l=new Array(256);for(let p=0;p<=255;p++){const g=p/255;l[p]=g<=.03928?g/12.92:((g+.055)/1.055)**2.4}const c=l.join(","),d=`g_${this.#i}_hcm_filter`,u=o.filter=this.#g(d);this.#f(c,c,c,u),this.#m(u);const h=(p,g)=>{const f=s[p]/255,A=a[p]/255,m=new Array(g+1);for(let b=0;b<=g;b++)m[b]=f+b/g*(A-f);return m.join(",")};return this.#f(h(0,5),h(1,5),h(2,5),u),o.url=this.#h(d),o.url}addAlphaFilter(e){let i=this.#a.get(e);if(i)return i;const[r]=this.#d([e]),n=`alpha_${r}`;if(i=this.#a.get(n),i)return this.#a.set(e,i),i;const o=`g_${this.#i}_alpha_map_${this.#s++}`,s=this.#h(o);this.#a.set(e,s),this.#a.set(n,s);const a=this.#g(o);return this.#A(r,a),s}addLuminosityFilter(e){let i=this.#a.get(e||"luminosity");if(i)return i;let r,n;if(e?([r]=this.#d([e]),n=`luminosity_${r}`):n="luminosity",i=this.#a.get(n),i)return this.#a.set(e,i),i;const o=`g_${this.#i}_luminosity_map_${this.#s++}`,s=this.#h(o);this.#a.set(e,s),this.#a.set(n,s);const a=this.#g(o);return this.#p(a),e&&this.#A(r,a),s}addHighlightHCMFilter(e,i,r,n,o){const s=`${i}-${r}-${n}-${o}`;let a=this.#l.get(e);if(a?.key===s||(a?(a.filter?.remove(),a.key=s,a.url="none",a.filter=null):(a={key:s,url:"none",filter:null},this.#l.set(e,a)),!i||!r))return a.url;const[l,c]=[i,r].map(this.#b.bind(this));let d=Math.round(.2126*l[0]+.7152*l[1]+.0722*l[2]),u=Math.round(.2126*c[0]+.7152*c[1]+.0722*c[2]),[h,p]=[n,o].map(this.#b.bind(this));u<d&&([d,u,h,p]=[u,d,p,h]),this.#c.style.color="";const g=(m,b,v)=>{const w=new Array(256),y=(u-d)/v,x=m/255,k=(b-m)/(255*v);let E=0;for(let B=0;B<=v;B++){const I=Math.round(d+B*y),S=x+B*k;for(let T=E;T<=I;T++)w[T]=S;E=I+1}for(let B=E;B<256;B++)w[B]=w[E-1];return w.join(",")},f=`g_${this.#i}_hcm_${e}_filter`,A=a.filter=this.#g(f);return this.#m(A),this.#f(g(h[0],p[0],5),g(h[1],p[1],5),g(h[2],p[2],5),A),a.url=this.#h(f),a.url}destroy(e=!1){e&&this.#o?.size||(this.#r?.parentNode.parentNode.remove(),this.#r=null,this.#t?.clear(),this.#t=null,this.#o?.clear(),this.#o=null,this.#s=0)}#p(e){const i=this.#n.createElementNS(Pp,"feColorMatrix");i.setAttribute("type","matrix"),i.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"),e.append(i)}#m(e){const i=this.#n.createElementNS(Pp,"feColorMatrix");i.setAttribute("type","matrix"),i.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"),e.append(i)}#g(e){const i=this.#n.createElementNS(Pp,"filter");return i.setAttribute("color-interpolation-filters","sRGB"),i.setAttribute("id",e),this.#c.append(i),i}#u(e,i,r){const n=this.#n.createElementNS(Pp,i);n.setAttribute("type","discrete"),n.setAttribute("tableValues",r),e.append(n)}#f(e,i,r,n){const o=this.#n.createElementNS(Pp,"feComponentTransfer");n.append(o),this.#u(o,"feFuncR",e),this.#u(o,"feFuncG",i),this.#u(o,"feFuncB",r)}#A(e,i){const r=this.#n.createElementNS(Pp,"feComponentTransfer");i.append(r),this.#u(r,"feFuncA",e)}#b(e){return this.#c.style.color=e,Z9(getComputedStyle(this.#c).getPropertyValue("color"))}}class dye{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){on("Abstract method `_fetch` called.")}}class uye extends dye{async _fetch(e){return J9(e,"bytes")}}class hye{constructor({baseUrl:e=null}){this.baseUrl=e}async fetch({filename:e}){if(!this.baseUrl)throw new Error("Ensure that the `wasmUrl` API parameter is provided.");if(!e)throw new Error("Wasm filename must be specified.");const i=`${this.baseUrl}${e}`;return this._fetch(i).catch(r=>{throw new Error(`Unable to load wasm data at: ${i}`)})}async _fetch(e){on("Abstract method `_fetch` called.")}}class pye extends hye{async _fetch(e){return J9(e,"bytes")}}nl&&rr("Please use the `legacy` build in Node.js environments.");async function XG(t){const e=await process.getBuiltinModule("fs").promises.readFile(t);return new Uint8Array(e)}class fHi extends cye{}class gHi extends sye{_createCanvas(e,i){return process.getBuiltinModule("module").createRequire(import.meta.url)("@napi-rs/canvas").createCanvas(e,i)}}class mHi extends aye{async _fetch(e){return XG(e)}}class AHi extends dye{async _fetch(e){return XG(e)}}class vHi extends hye{async _fetch(e){return XG(e)}}const gb="__forcedDependency",{floor:fye,ceil:gye}=Math;function uI(t,e,i,r,n,o){t[e*4+0]=Math.min(t[e*4+0],i),t[e*4+1]=Math.min(t[e*4+1],r),t[e*4+2]=Math.max(t[e*4+2],n),t[e*4+3]=Math.max(t[e*4+3],o)}const $G=new Uint32Array(new Uint8Array([255,255,0,0]).buffer)[0];class bHi{#e;#t;constructor(e,i){this.#e=e,this.#t=i}get length(){return this.#e.length}isEmpty(e){return this.#e[e]===$G}minX(e){return this.#t[e*4+0]/256}minY(e){return this.#t[e*4+1]/256}maxX(e){return(this.#t[e*4+2]+1)/256}maxY(e){return(this.#t[e*4+3]+1)/256}}const hI=(t,e)=>t?.getOrInsertComputed(e,()=>({dependencies:new Set,isRenderingOperation:!1}));class wHi{#e={__proto__:null};#t={__proto__:null,transform:[],moveText:[],sameLineText:[],[gb]:[]};#r=new Map;#i=[];#n=[];#o=[[1,0,0,1,0,0]];#s=[-1/0,-1/0,1/0,1/0];#a=new Float64Array([1/0,1/0,-1/0,-1/0]);#l=-1;#c=new Set;#d=new Map;#h=new Map;#p;#m;#g;#u;#f;constructor(e,i,r=!1){this.#p=e.width,this.#m=e.height,this.#A(i),r&&(this.#f=new Map)}growOperationsCount(e){e>=this.#u.length&&this.#A(e,this.#u)}#A(e,i){const r=new ArrayBuffer(e*4);this.#g=new Uint8ClampedArray(r),this.#u=new Uint32Array(r),i&&i.length>0?(this.#u.set(i),this.#u.fill($G,i.length)):this.#u.fill($G)}save(e){return this.#e={__proto__:this.#e},this.#t={__proto__:this.#t,transform:{__proto__:this.#t.transform},moveText:{__proto__:this.#t.moveText},sameLineText:{__proto__:this.#t.sameLineText},[gb]:{__proto__:this.#t[gb]}},this.#s={__proto__:this.#s},this.#i.push(e),this}restore(e){const i=Object.getPrototypeOf(this.#e);if(i===null)return this;this.#e=i,this.#t=Object.getPrototypeOf(this.#t),this.#s=Object.getPrototypeOf(this.#s);const r=this.#i.pop();return r!==void 0&&(hI(this.#f,e)?.dependencies.add(r),this.#u[e]=this.#u[r]),this}recordOpenMarker(e){return this.#i.push(e),this}getOpenMarker(){return this.#i.length===0?null:this.#i.at(-1)}recordCloseMarker(e){const i=this.#i.pop();return i!==void 0&&(hI(this.#f,e)?.dependencies.add(i),this.#u[e]=this.#u[i]),this}beginMarkedContent(e){return this.#n.push(e),this}endMarkedContent(e){const i=this.#n.pop();return i!==void 0&&(hI(this.#f,e)?.dependencies.add(i),this.#u[e]=this.#u[i]),this}pushBaseTransform(e){return this.#o.push(li.multiplyByDOMMatrix(this.#o.at(-1),e.getTransform())),this}popBaseTransform(){return this.#o.length>1&&this.#o.pop(),this}recordSimpleData(e,i){return this.#e[e]=i,this}recordIncrementalData(e,i){return this.#t[e].push(i),this}resetIncrementalData(e,i){return this.#t[e].length=0,this}recordNamedData(e,i){return this.#r.set(e,i),this}recordSimpleDataFromNamed(e,i,r){this.#e[e]=this.#r.get(i)??r}recordFutureForcedDependency(e,i){return this.recordIncrementalData(gb,i),this}inheritSimpleDataAsFutureForcedDependencies(e){for(const i of e)i in this.#e&&this.recordFutureForcedDependency(i,this.#e[i]);return this}inheritPendingDependenciesAsFutureForcedDependencies(){for(const e of this.#c)this.recordFutureForcedDependency(gb,e);return this}resetBBox(e){return this.#l!==e&&(this.#l=e,this.#a[0]=1/0,this.#a[1]=1/0,this.#a[2]=-1/0,this.#a[3]=-1/0),this}recordClipBox(e,i,r,n,o,s){const a=li.multiplyByDOMMatrix(this.#o.at(-1),i.getTransform()),l=[1/0,1/0,-1/0,-1/0];li.axialAlignedBoundingBox([r,o,n,s],a,l);const c=li.intersect(this.#s,l);return c?(this.#s[0]=c[0],this.#s[1]=c[1],this.#s[2]=c[2],this.#s[3]=c[3]):(this.#s[0]=this.#s[1]=1/0,this.#s[2]=this.#s[3]=-1/0),this}recordBBox(e,i,r,n,o,s){const a=this.#s;if(a[0]===1/0)return this;const l=li.multiplyByDOMMatrix(this.#o.at(-1),i.getTransform());if(a[0]===-1/0)return li.axialAlignedBoundingBox([r,o,n,s],l,this.#a),this;const c=[1/0,1/0,-1/0,-1/0];return li.axialAlignedBoundingBox([r,o,n,s],l,c),this.#a[0]=Math.min(this.#a[0],Math.max(c[0],a[0])),this.#a[1]=Math.min(this.#a[1],Math.max(c[1],a[1])),this.#a[2]=Math.max(this.#a[2],Math.min(c[2],a[2])),this.#a[3]=Math.max(this.#a[3],Math.min(c[3],a[3])),this}recordCharacterBBox(e,i,r,n=1,o=0,s=0,a){const l=r.bbox;let c,d;if(l&&(c=l[2]!==l[0]&&l[3]!==l[1]&&this.#h.get(r),c!==!1&&(d=[0,0,0,0],li.axialAlignedBoundingBox(l,r.fontMatrix,d),(n!==1||o!==0||s!==0)&&li.scaleMinMax([n,0,0,-n,o,s],d),c)))return this.recordBBox(e,i,d[0],d[2],d[1],d[3]);if(!a)return this.recordFullPageBBox(e);const u=a();return l&&d&&c===void 0&&(c=d[0]<=o-u.actualBoundingBoxLeft&&d[2]>=o+u.actualBoundingBoxRight&&d[1]<=s-u.actualBoundingBoxAscent&&d[3]>=s+u.actualBoundingBoxDescent,this.#h.set(r,c),c)?this.recordBBox(e,i,d[0],d[2],d[1],d[3]):this.recordBBox(e,i,o-u.actualBoundingBoxLeft,o+u.actualBoundingBoxRight,s-u.actualBoundingBoxAscent,s+u.actualBoundingBoxDescent)}recordFullPageBBox(e){return this.#a[0]=Math.max(0,this.#s[0]),this.#a[1]=Math.max(0,this.#s[1]),this.#a[2]=Math.min(this.#p,this.#s[2]),this.#a[3]=Math.min(this.#m,this.#s[3]),this}getSimpleIndex(e){return this.#e[e]}recordDependencies(e,i){const r=this.#c,n=this.#e,o=this.#t;for(const s of i)s in this.#e?r.add(n[s]):s in o&&o[s].forEach(r.add,r);return this}recordNamedDependency(e,i){return this.#r.has(i)&&this.#c.add(this.#r.get(i)),this}recordOperation(e,i=!1){if(this.recordDependencies(e,[gb]),this.#f){const r=hI(this.#f,e),{dependencies:n}=r;this.#c.forEach(n.add,n),this.#i.forEach(n.add,n),this.#n.forEach(n.add,n),n.delete(e),r.isRenderingOperation=!0}if(this.#l===e){const r=fye(this.#a[0]*256/this.#p),n=fye(this.#a[1]*256/this.#m),o=gye(this.#a[2]*256/this.#p),s=gye(this.#a[3]*256/this.#m);uI(this.#g,e,r,n,o,s);for(const a of this.#c)a!==e&&uI(this.#g,a,r,n,o,s);for(const a of this.#i)a!==e&&uI(this.#g,a,r,n,o,s);for(const a of this.#n)a!==e&&uI(this.#g,a,r,n,o,s);i||(this.#c.clear(),this.#l=-1)}return this}recordShowTextOperation(e,i=!1){const r=Array.from(this.#c);this.recordOperation(e,i),this.recordIncrementalData("sameLineText",e);for(const n of r)this.recordIncrementalData("sameLineText",n);return this}bboxToClipBoxDropOperation(e,i=!1){return this.#l===e&&(this.#l=-1,this.#s[0]=Math.max(this.#s[0],this.#a[0]),this.#s[1]=Math.max(this.#s[1],this.#a[1]),this.#s[2]=Math.min(this.#s[2],this.#a[2]),this.#s[3]=Math.min(this.#s[3],this.#a[3]),i||this.#c.clear()),this}_takePendingDependencies(){const e=this.#c;return this.#c=new Set,e}_extractOperation(e){const i=this.#d.get(e);return this.#d.delete(e),i}_pushPendingDependencies(e){for(const i of e)this.#c.add(i)}take(){return this.#h.clear(),new bHi(this.#u,this.#g)}takeDebugMetadata(){return this.#f}}class qS{#e;#t;#r;#i=0;#n=0;constructor(e,i,r){if(e instanceof qS&&e.#r===!!r)return e;this.#e=e,this.#t=i,this.#r=!!r}growOperationsCount(){throw new Error("Unreachable")}save(e){return this.#n++,this.#e.save(this.#t),this}restore(e){return this.#n>0&&(this.#e.restore(this.#t),this.#n--),this}recordOpenMarker(e){return this.#i++,this}getOpenMarker(){return this.#i>0?this.#t:this.#e.getOpenMarker()}recordCloseMarker(e){return this.#i--,this}beginMarkedContent(e){return this}endMarkedContent(e){return this}pushBaseTransform(e){return this.#e.pushBaseTransform(e),this}popBaseTransform(){return this.#e.popBaseTransform(),this}recordSimpleData(e,i){return this.#e.recordSimpleData(e,this.#t),this}recordIncrementalData(e,i){return this.#e.recordIncrementalData(e,this.#t),this}resetIncrementalData(e,i){return this.#e.resetIncrementalData(e,this.#t),this}recordNamedData(e,i){return this}recordSimpleDataFromNamed(e,i,r){return this.#e.recordSimpleDataFromNamed(e,i,this.#t),this}recordFutureForcedDependency(e,i){return this.#e.recordFutureForcedDependency(e,this.#t),this}inheritSimpleDataAsFutureForcedDependencies(e){return this.#e.inheritSimpleDataAsFutureForcedDependencies(e),this}inheritPendingDependenciesAsFutureForcedDependencies(){return this.#e.inheritPendingDependenciesAsFutureForcedDependencies(),this}resetBBox(e){return this.#r||this.#e.resetBBox(this.#t),this}recordClipBox(e,i,r,n,o,s){return this.#r||this.#e.recordClipBox(this.#t,i,r,n,o,s),this}recordBBox(e,i,r,n,o,s){return this.#r||this.#e.recordBBox(this.#t,i,r,n,o,s),this}recordCharacterBBox(e,i,r,n,o,s,a){return this.#r||this.#e.recordCharacterBBox(this.#t,i,r,n,o,s,a),this}recordFullPageBBox(e){return this.#r||this.#e.recordFullPageBBox(this.#t),this}getSimpleIndex(e){return this.#e.getSimpleIndex(e)}recordDependencies(e,i){return this.#e.recordDependencies(this.#t,i),this}recordNamedDependency(e,i){return this.#e.recordNamedDependency(this.#t,i),this}recordOperation(e){return this.#e.recordOperation(this.#t,!0),this}recordShowTextOperation(e){return this.#e.recordShowTextOperation(this.#t,!0),this}bboxToClipBoxDropOperation(e){return this.#r||this.#e.bboxToClipBoxDropOperation(this.#t,!0),this}take(){throw new Error("Unreachable")}takeDebugMetadata(){throw new Error("Unreachable")}}const Zc={stroke:["path","transform","filter","strokeColor","strokeAlpha","lineWidth","lineCap","lineJoin","miterLimit","dash"],fill:["path","transform","filter","fillColor","fillAlpha","globalCompositeOperation","SMask"],imageXObject:["transform","SMask","filter","fillAlpha","strokeAlpha","globalCompositeOperation"],rawFillPath:["filter","fillColor","fillAlpha"],showText:["transform","leading","charSpacing","wordSpacing","hScale","textRise","moveText","textMatrix","font","fontObj","filter","fillColor","textRenderingMode","SMask","fillAlpha","strokeAlpha","globalCompositeOperation","sameLineText"],transform:["transform"],transformAndFill:["transform","fillColor"]},ea={FILL:"Fill",STROKE:"Stroke",SHADING:"Shading"};function eQ(t,e){if(!e)return;const i=e[2]-e[0],r=e[3]-e[1],n=new Path2D;n.rect(e[0],e[1],i,r),t.clip(n)}class tQ{isModifyingCurrentTransform(){return!1}getPattern(){on("Abstract method `getPattern` called.")}}class yHi extends tQ{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}isOriginBased(){return this._p0[0]===0&&this._p0[1]===0&&(!this.isRadial()||this._p1[0]===0&&this._p1[1]===0)}isRadial(){return this._type==="radial"}_createGradient(e,i=null){let r,n=this._p0,o=this._p1;if(i&&(n=n.slice(),o=o.slice(),li.applyTransform(n,i),li.applyTransform(o,i)),this._type==="axial")r=e.createLinearGradient(n[0],n[1],o[0],o[1]);else if(this._type==="radial"){let s=this._r0,a=this._r1;if(i){const l=new Float32Array(2);li.singularValueDecompose2dScale(i,l),s*=l[0],a*=l[0]}r=e.createRadialGradient(n[0],n[1],s,o[0],o[1],a)}for(const s of this._colorStops)r.addColorStop(s[0],s[1]);return r}getPattern(e,i,r,n){let o;if(n===ea.STROKE||n===ea.FILL){if(this.isOriginBased()){let h=li.transform(r,i.baseTransform);this.matrix&&(h=li.transform(h,this.matrix));const p=.001,g=Math.hypot(h[0],h[1]),f=Math.hypot(h[2],h[3]),A=(h[0]*h[2]+h[1]*h[3])/(g*f);if(Math.abs(A)<p)if(this.isRadial()){if(Math.abs(g-f)<p)return this._createGradient(e,h)}else return this._createGradient(e,h)}const s=i.current.getClippedPathBoundingBox(n,po(e))||[0,0,0,0],a=Math.ceil(s[2]-s[0])||1,l=Math.ceil(s[3]-s[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(-s[0],-s[1]),r=li.transform(r,[1,0,0,1,s[0],s[1]]),d.transform(...i.baseTransform),this.matrix&&d.transform(...this.matrix),eQ(d,this._bbox),d.fillStyle=this._createGradient(d),d.fill(),o=e.createPattern(c.canvas,"no-repeat");const u=new DOMMatrix(r);o.setTransform(u)}else eQ(e,this._bbox),o=this._createGradient(e);return o}}function iQ(t,e,i,r,n,o,s,a){const l=e.coords,c=e.colors,d=t.data,u=t.width*4;let h;l[i+1]>l[r+1]&&(h=i,i=r,r=h,h=o,o=s,s=h),l[r+1]>l[n+1]&&(h=r,r=n,n=h,h=s,s=a,a=h),l[i+1]>l[r+1]&&(h=i,i=r,r=h,h=o,o=s,s=h);const p=(l[i]+e.offsetX)*e.scaleX,g=(l[i+1]+e.offsetY)*e.scaleY,f=(l[r]+e.offsetX)*e.scaleX,A=(l[r+1]+e.offsetY)*e.scaleY,m=(l[n]+e.offsetX)*e.scaleX,b=(l[n+1]+e.offsetY)*e.scaleY;if(g>=b)return;const v=c[o],w=c[o+1],y=c[o+2],x=c[s],k=c[s+1],E=c[s+2],B=c[a],I=c[a+1],S=c[a+2],T=Math.round(g),_=Math.round(b);let O,N,U,V,Q,$,be,ce;for(let ke=T;ke<=_;ke++){if(ke<A){const se=ke<g?0:(g-ke)/(g-A);O=p-(p-f)*se,N=v-(v-x)*se,U=w-(w-k)*se,V=y-(y-E)*se}else{let se;ke>b?se=1:A===b?se=0:se=(A-ke)/(A-b),O=f-(f-m)*se,N=x-(x-B)*se,U=k-(k-I)*se,V=E-(E-S)*se}let De;ke<g?De=0:ke>b?De=1:De=(g-ke)/(g-b),Q=p-(p-m)*De,$=v-(v-B)*De,be=w-(w-I)*De,ce=y-(y-S)*De;const pe=Math.round(Math.min(O,Q)),re=Math.round(Math.max(O,Q));let ee=u*ke+pe*4;for(let se=pe;se<=re;se++)De=(O-se)/(O-Q),De<0?De=0:De>1&&(De=1),d[ee++]=N-(N-$)*De|0,d[ee++]=U-(U-be)*De|0,d[ee++]=V-(V-ce)*De|0,d[ee++]=255}}function xHi(t,e,i){const r=e.coords,n=e.colors;let o,s;switch(e.type){case FG.LATTICE:const a=e.verticesPerRow,l=Math.floor(r.length/a)-1,c=a-1;for(o=0;o<l;o++){let d=o*a;for(let u=0;u<c;u++,d++)iQ(t,i,r[d],r[d+1],r[d+a],n[d],n[d+1],n[d+a]),iQ(t,i,r[d+a+1],r[d+1],r[d+a],n[d+a+1],n[d+1],n[d+a])}break;case FG.TRIANGLES:for(o=0,s=r.length;o<s;o+=3)iQ(t,i,r[o],r[o+1],r[o+2],n[o],n[o+1],n[o+2]);break;default:throw new Error("illegal figure")}}class CHi extends tQ{constructor(e){super(),this._coords=e[2],this._colors=e[3],this._figures=e[4],this._bounds=e[5],this._bbox=e[6],this._background=e[7],this.matrix=null}_createMeshCanvas(e,i,r){const n=Math.floor(this._bounds[0]),o=Math.floor(this._bounds[1]),s=Math.ceil(this._bounds[2])-n,a=Math.ceil(this._bounds[3])-o,l=Math.min(Math.ceil(Math.abs(s*e[0]*1.1)),3e3),c=Math.min(Math.ceil(Math.abs(a*e[1]*1.1)),3e3),d=s/l,u=a/c,h={coords:this._coords,colors:this._colors,offsetX:-n,offsetY:-o,scaleX:1/d,scaleY:1/u},p=l+4,g=c+4,f=r.getCanvas("mesh",p,g),A=f.context,m=A.createImageData(l,c);if(i){const b=m.data;for(let v=0,w=b.length;v<w;v+=4)b[v]=i[0],b[v+1]=i[1],b[v+2]=i[2],b[v+3]=255}for(const b of this._figures)xHi(m,b,h);return A.putImageData(m,2,2),{canvas:f.canvas,offsetX:n-2*d,offsetY:o-2*u,scaleX:d,scaleY:u}}isModifyingCurrentTransform(){return!0}getPattern(e,i,r,n){eQ(e,this._bbox);const o=new Float32Array(2);if(n===ea.SHADING)li.singularValueDecompose2dScale(po(e),o);else if(this.matrix){li.singularValueDecompose2dScale(this.matrix,o);const[a,l]=o;li.singularValueDecompose2dScale(i.baseTransform,o),o[0]*=a,o[1]*=l}else li.singularValueDecompose2dScale(i.baseTransform,o);const s=this._createMeshCanvas(o,n===ea.SHADING?null:this._background,i.cachedCanvases);return n!==ea.SHADING&&(e.setTransform(...i.baseTransform),this.matrix&&e.transform(...this.matrix)),e.translate(s.offsetX,s.offsetY),e.scale(s.scaleX,s.scaleY),e.createPattern(s.canvas,"no-repeat")}}class kHi extends tQ{getPattern(){return"hotpink"}}function MHi(t){switch(t[0]){case"RadialAxial":return new yHi(t);case"Mesh":return new CHi(t);case"Dummy":return new kHi}throw new Error(`Unknown IR type: ${t[0]}`)}const mye={COLORED:1,UNCOLORED:2};class mW{static MAX_PATTERN_SIZE=3e3;constructor(e,i,r,n){this.color=e[1],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.ctx=i,this.canvasGraphicsFactory=r,this.baseTransform=n}createPatternCanvas(e,i){const{bbox:r,operatorList:n,paintType:o,tilingType:s,color:a,canvasGraphicsFactory:l}=this;let{xstep:c,ystep:d}=this;c=Math.abs(c),d=Math.abs(d),nI("TilingType: "+s);const u=r[0],h=r[1],p=r[2],g=r[3],f=p-u,A=g-h,m=new Float32Array(2);li.singularValueDecompose2dScale(this.matrix,m);const[b,v]=m;li.singularValueDecompose2dScale(this.baseTransform,m);const w=b*m[0],y=v*m[1];let x=f,k=A,E=!1,B=!1;const I=Math.ceil(c*w),S=Math.ceil(d*y),T=Math.ceil(f*w),_=Math.ceil(A*y);I>=T?x=c:E=!0,S>=_?k=d:B=!0;const O=this.getSizeAndScale(x,this.ctx.canvas.width,w),N=this.getSizeAndScale(k,this.ctx.canvas.height,y),U=e.cachedCanvases.getCanvas("pattern",O.size,N.size),V=U.context,Q=l.createCanvasGraphics(V,i);if(Q.groupLevel=e.groupLevel,this.setFillAndStrokeStyleToContext(Q,o,a),V.translate(-O.scale*u,-N.scale*h),Q.transform(0,O.scale,0,0,N.scale,0,0),V.save(),Q.dependencyTracker?.save(),this.clipBbox(Q,u,h,p,g),Q.baseTransform=po(Q.ctx),Q.executeOperatorList(n),Q.endDrawing(),Q.dependencyTracker?.restore(),V.restore(),E||B){const $=U.canvas;E&&(x=c),B&&(k=d);const be=this.getSizeAndScale(x,this.ctx.canvas.width,w),ce=this.getSizeAndScale(k,this.ctx.canvas.height,y),ke=be.size,De=ce.size,pe=e.cachedCanvases.getCanvas("pattern-workaround",ke,De),re=pe.context,ee=E?Math.floor(f/c):0,se=B?Math.floor(A/d):0;for(let ne=0;ne<=ee;ne++)for(let ge=0;ge<=se;ge++)re.drawImage($,ke*ne,De*ge,ke,De,0,0,ke,De);return{canvas:pe.canvas,scaleX:be.scale,scaleY:ce.scale,offsetX:u,offsetY:h}}return{canvas:U.canvas,scaleX:O.scale,scaleY:N.scale,offsetX:u,offsetY:h}}getSizeAndScale(e,i,r){const n=Math.max(mW.MAX_PATTERN_SIZE,i);let o=Math.ceil(e*r);return o>=n?o=n:r=o/e,{scale:r,size:o}}clipBbox(e,i,r,n,o){const s=n-i,a=o-r;e.ctx.rect(i,r,s,a),li.axialAlignedBoundingBox([i,r,n,o],po(e.ctx),e.current.minMax),e.clip(),e.endPath()}setFillAndStrokeStyleToContext(e,i,r){const n=e.ctx,o=e.current;switch(i){case mye.COLORED:const{fillStyle:s,strokeStyle:a}=this.ctx;n.fillStyle=o.fillColor=s,n.strokeStyle=o.strokeColor=a;break;case mye.UNCOLORED:n.fillStyle=n.strokeStyle=r,o.fillColor=o.strokeColor=r;break;default:throw new LNi(`Unsupported paint type: ${i}`)}}isModifyingCurrentTransform(){return!1}getPattern(e,i,r,n,o){let s=r;n!==ea.SHADING&&(s=li.transform(s,i.baseTransform),this.matrix&&(s=li.transform(s,this.matrix)));const a=this.createPatternCanvas(i,o);let l=new DOMMatrix(s);l=l.translate(a.offsetX,a.offsetY),l=l.scale(1/a.scaleX,1/a.scaleY);const c=e.createPattern(a.canvas,"repeat");return c.setTransform(l),c}}function EHi({src:t,srcPos:e=0,dest:i,width:r,height:n,nonBlackColor:o=4294967295,inverseDecode:s=!1}){const a=us.isLittleEndian?4278190080:255,[l,c]=s?[o,a]:[a,o],d=r>>3,u=r&7,h=l^c,p=t.length;i=new Uint32Array(i.buffer);let g=0;for(let f=0;f<n;++f){for(const m=e+d;e<m;++e,g+=8){const b=t[e];i[g]=l^-(b>>7&1)&h,i[g+1]=l^-(b>>6&1)&h,i[g+2]=l^-(b>>5&1)&h,i[g+3]=l^-(b>>4&1)&h,i[g+4]=l^-(b>>3&1)&h,i[g+5]=l^-(b>>2&1)&h,i[g+6]=l^-(b>>1&1)&h,i[g+7]=l^-(b&1)&h}if(u===0)continue;const A=e<p?t[e++]:255;for(let m=0;m<u;++m,++g)i[g]=l^-(A>>7-m&1)&h}return{srcPos:e,destPos:g}}const Aye=16,vye=100,BHi=15,bye=10,_l=16,rQ=new DOMMatrix,fc=new Float32Array(2),mb=new Float32Array([1/0,1/0,-1/0,-1/0]);function PHi(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,n,o,s,a){e.transform(i,r,n,o,s,a),this.__originalTransform(i,r,n,o,s,a)},t.setTransform=function(i,r,n,o,s,a){e.setTransform(i,r,n,o,s,a),this.__originalSetTransform(i,r,n,o,s,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,n,o,s,a){e.bezierCurveTo(i,r,n,o,s,a),this.__originalBezierCurveTo(i,r,n,o,s,a)},t.rect=function(i,r,n,o){e.rect(i,r,n,o),this.__originalRect(i,r,n,o)},t.closePath=function(){e.closePath(),this.__originalClosePath()},t.beginPath=function(){e.beginPath(),this.__originalBeginPath()}}class IHi{constructor(e){this.canvasFactory=e,this.cache=Object.create(null)}getCanvas(e,i,r){let n;return this.cache[e]!==void 0?(n=this.cache[e],this.canvasFactory.reset(n,i,r)):(n=this.canvasFactory.create(i,r),this.cache[e]=n),n}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 pI(t,e,i,r,n,o,s,a,l,c){const[d,u,h,p,g,f]=po(t);if(u===0&&h===0){const b=s*d+g,v=Math.round(b),w=a*p+f,y=Math.round(w),x=(s+l)*d+g,k=Math.abs(Math.round(x)-v)||1,E=(a+c)*p+f,B=Math.abs(Math.round(E)-y)||1;return t.setTransform(Math.sign(d),0,0,Math.sign(p),v,y),t.drawImage(e,i,r,n,o,0,0,k,B),t.setTransform(d,u,h,p,g,f),[k,B]}if(d===0&&p===0){const b=a*h+g,v=Math.round(b),w=s*u+f,y=Math.round(w),x=(a+c)*h+g,k=Math.abs(Math.round(x)-v)||1,E=(s+l)*u+f,B=Math.abs(Math.round(E)-y)||1;return t.setTransform(0,Math.sign(u),Math.sign(h),0,v,y),t.drawImage(e,i,r,n,o,0,0,B,k),t.setTransform(d,u,h,p,g,f),[B,k]}t.drawImage(e,i,r,n,o,s,a,l,c);const A=Math.hypot(d,u),m=Math.hypot(h,p);return[A*l,m*c]}class wye{alphaIsShape=!1;fontSize=0;fontSizeScale=1;textMatrix=null;textMatrixScale=1;fontMatrix=LG;leading=0;x=0;y=0;lineX=0;lineY=0;charSpacing=0;wordSpacing=0;textHScale=1;textRenderingMode=ds.FILL;textRise=0;fillColor="#000000";strokeColor="#000000";patternFill=!1;patternStroke=!1;fillAlpha=1;strokeAlpha=1;lineWidth=1;activeSMask=null;transferMaps="none";constructor(e,i,r){r?.(this),this.clipBox=new Float32Array([0,0,e,i]),this.minMax=mb.slice()}clone(){const e=Object.create(this);return e.clipBox=this.clipBox.slice(),e.minMax=this.minMax.slice(),e}getPathBoundingBox(e=ea.FILL,i=null){const r=this.minMax.slice();if(e===ea.STROKE){i||on("Stroke bounding box must include transform."),li.singularValueDecompose2dScale(i,fc);const n=fc[0]*this.lineWidth/2,o=fc[1]*this.lineWidth/2;r[0]-=n,r[1]-=o,r[2]+=n,r[3]+=o}return r}updateClipFromPath(){const e=li.intersect(this.clipBox,this.getPathBoundingBox());this.startNewPathAndClipBox(e||[0,0,0,0])}isEmptyClip(){return this.minMax[0]===1/0}startNewPathAndClipBox(e){this.clipBox.set(e,0),this.minMax.set(mb,0)}getClippedPathBoundingBox(e=ea.FILL,i=null){return li.intersect(this.clipBox,this.getPathBoundingBox(e,i))}}function yye(t,e){if(e instanceof ImageData){t.putImageData(e,0,0);return}const i=e.height,r=e.width,n=i%_l,o=(i-n)/_l,s=n===0?o:o+1,a=t.createImageData(r,_l);let l=0,c;const d=e.data,u=a.data;let h,p,g,f;if(e.kind===tI.GRAYSCALE_1BPP){const A=d.byteLength,m=new Uint32Array(u.buffer,0,u.byteLength>>2),b=m.length,v=r+7>>3,w=4294967295,y=us.isLittleEndian?4278190080:255;for(h=0;h<s;h++){for(g=h<o?_l:n,c=0,p=0;p<g;p++){const x=A-l;let k=0;const E=x>v?r:x*8-7,B=E&-8;let I=0,S=0;for(;k<B;k+=8)S=d[l++],m[c++]=S&128?w:y,m[c++]=S&64?w:y,m[c++]=S&32?w:y,m[c++]=S&16?w:y,m[c++]=S&8?w:y,m[c++]=S&4?w:y,m[c++]=S&2?w:y,m[c++]=S&1?w:y;for(;k<E;k++)I===0&&(S=d[l++],I=128),m[c++]=S&I?w:y,I>>=1}for(;c<b;)m[c++]=0;t.putImageData(a,0,h*_l)}}else if(e.kind===tI.RGBA_32BPP){for(p=0,f=r*_l*4,h=0;h<o;h++)u.set(d.subarray(l,l+f)),l+=f,t.putImageData(a,0,p),p+=_l;h<s&&(f=r*n*4,u.set(d.subarray(l,l+f)),t.putImageData(a,0,p))}else if(e.kind===tI.RGB_24BPP)for(g=_l,f=r*g,h=0;h<s;h++){for(h>=o&&(g=n,f=r*g),c=0,p=f;p--;)u[c++]=d[l++],u[c++]=d[l++],u[c++]=d[l++],u[c++]=255;t.putImageData(a,0,h*_l)}else throw new Error(`bad image kind: ${e.kind}`)}function xye(t,e){if(e.bitmap){t.drawImage(e.bitmap,0,0);return}const i=e.height,r=e.width,n=i%_l,o=(i-n)/_l,s=n===0?o:o+1,a=t.createImageData(r,_l);let l=0;const c=e.data,d=a.data;for(let u=0;u<s;u++){const h=u<o?_l:n;({srcPos:l}=EHi({src:c,srcPos:l,dest:d,width:r,height:h,nonBlackColor:0})),t.putImageData(a,0,u*_l)}}function t7(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 fI(t){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);const{filter:e}=t;e!=="none"&&e!==""&&(t.filter="none")}function Cye(t,e){if(e)return!0;li.singularValueDecompose2dScale(t,fc);const i=Math.fround(dh.pixelRatio*fb.PDF_TO_CSS_UNITS);return fc[0]<=i&&fc[1]<=i}const SHi=["butt","round","square"],THi=["miter","round","bevel"],RHi={},kye={};class Kb{constructor(e,i,r,n,o,{optionalContentConfig:s,markedContentStack:a=null},l,c,d){this.ctx=e,this.current=new wye(this.ctx.canvas.width,this.ctx.canvas.height),this.stateStack=[],this.pendingClip=null,this.pendingEOFill=!1,this.commonObjs=i,this.objs=r,this.canvasFactory=n,this.filterFactory=o,this.groupStack=[],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=s,this.cachedCanvases=new IHi(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,this.dependencyTracker=d??null}getObject(e,i,r=null){return typeof i=="string"?(this.dependencyTracker?.recordNamedDependency(e,i),i.startsWith("g_")?this.commonObjs.get(i):this.objs.get(i)):r}beginDrawing({transform:e,viewport:i,transparency:r=!1,background:n=null}){const o=this.ctx.canvas.width,s=this.ctx.canvas.height,a=this.ctx.fillStyle;if(this.ctx.fillStyle=n||"#ffffff",this.ctx.fillRect(0,0,o,s),this.ctx.fillStyle=a,r){const l=this.cachedCanvases.getCanvas("transparent",o,s);this.compositeCtx=this.ctx,this.transparentCanvas=l.canvas,this.ctx=l.context,this.ctx.save(),this.ctx.transform(...po(this.compositeCtx))}this.ctx.save(),fI(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=po(this.ctx)}executeOperatorList(e,i,r,n,o){const s=e.argsArray,a=e.fnArray;let l=i||0;const c=s.length;if(c===l)return l;const d=c-l>bye&&typeof r=="function",u=d?Date.now()+BHi:0;let h=0;const p=this.commonObjs,g=this.objs;let f,A;for(;;){if(n!==void 0&&l===n.nextBreakPoint)return n.breakIt(l,r),l;if(!o||o(l))if(f=a[l],A=s[l]??null,f!==K9.dependency)A===null?this[f](l):this[f](l,...A);else for(const m of A){this.dependencyTracker?.recordNamedData(m,l);const b=m.startsWith("g_")?p:g;if(!b.has(m))return b.get(m,r),l}if(l++,l===c)return l;if(d&&++h>bye){if(Date.now()>u)return r(),l;h=0}}}#e(){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)}endDrawing(){this.#e(),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(),this.#t()}#t(){if(this.pageColors){const e=this.filterFactory.addHCMFilter(this.pageColors.foreground,this.pageColors.background);if(e!=="none"){const i=this.ctx.filter;this.ctx.filter=e,this.ctx.drawImage(this.ctx.canvas,0,0),this.ctx.filter=i}}}_scaleImage(e,i){const r=e.width??e.displayWidth,n=e.height??e.displayHeight;let o=Math.max(Math.hypot(i[0],i[1]),1),s=Math.max(Math.hypot(i[2],i[3]),1),a=r,l=n,c="prescale1",d,u;for(;o>2&&a>1||s>2&&l>1;){let h=a,p=l;o>2&&a>1&&(h=a>=16384?Math.floor(a/2)-1||1:Math.ceil(a/2),o/=a/h),s>2&&l>1&&(p=l>=16384?Math.floor(l/2)-1||1:Math.ceil(l)/2,s/=l/p),d=this.cachedCanvases.getCanvas(c,h,p),u=d.context,u.clearRect(0,0,h,p),u.drawImage(e,0,0,a,l,0,0,h,p),e=d.canvas,a=h,l=p,c=c==="prescale1"?"prescale2":"prescale1"}return{img:e,paintWidth:a,paintHeight:l}}_createMaskCanvas(e,i){const r=this.ctx,{width:n,height:o}=i,s=this.current.fillColor,a=this.current.patternFill,l=po(r);let c,d,u,h;if((i.bitmap||i.data)&&i.count>1){const I=i.bitmap||i.data.buffer;d=JSON.stringify(a?l:[l.slice(0,4),s]),c=this._cachedBitmapsMap.getOrInsertComputed(I,zG);const S=c.get(d);if(S&&!a){const T=Math.round(Math.min(l[0],l[2])+l[4]),_=Math.round(Math.min(l[1],l[3])+l[5]);return this.dependencyTracker?.recordDependencies(e,Zc.transformAndFill),{canvas:S,offsetX:T,offsetY:_}}u=S}u||(h=this.cachedCanvases.getCanvas("maskCanvas",n,o),xye(h.context,i));let p=li.transform(l,[1/n,0,0,-1/o,0,0]);p=li.transform(p,[1,0,0,1,0,-o]);const g=mb.slice();li.axialAlignedBoundingBox([0,0,n,o],p,g);const[f,A,m,b]=g,v=Math.round(m-f)||1,w=Math.round(b-A)||1,y=this.cachedCanvases.getCanvas("fillCanvas",v,w),x=y.context,k=f,E=A;x.translate(-k,-E),x.transform(...p),u||(u=this._scaleImage(h.canvas,Ju(x)),u=u.img,c&&a&&c.set(d,u)),x.imageSmoothingEnabled=Cye(po(x),i.interpolate),pI(x,u,0,0,u.width,u.height,0,0,n,o),x.globalCompositeOperation="source-in";const B=li.transform(Ju(x),[1,0,0,1,-k,-E]);return x.fillStyle=a?s.getPattern(r,this,B,ea.FILL,e):s,x.fillRect(0,0,n,o),c&&!a&&(this.cachedCanvases.delete("fillCanvas"),c.set(d,y.canvas)),this.dependencyTracker?.recordDependencies(e,Zc.transformAndFill),{canvas:y.canvas,offsetX:Math.round(k),offsetY:Math.round(E)}}setLineWidth(e,i){this.dependencyTracker?.recordSimpleData("lineWidth",e),i!==this.current.lineWidth&&(this._cachedScaleForStroking[0]=-1),this.current.lineWidth=i,this.ctx.lineWidth=i}setLineCap(e,i){this.dependencyTracker?.recordSimpleData("lineCap",e),this.ctx.lineCap=SHi[i]}setLineJoin(e,i){this.dependencyTracker?.recordSimpleData("lineJoin",e),this.ctx.lineJoin=THi[i]}setMiterLimit(e,i){this.dependencyTracker?.recordSimpleData("miterLimit",e),this.ctx.miterLimit=i}setDash(e,i,r){this.dependencyTracker?.recordSimpleData("dash",e);const n=this.ctx;n.setLineDash!==void 0&&(n.setLineDash(i),n.lineDashOffset=r)}setRenderingIntent(e,i){}setFlatness(e,i){}setGState(e,i){for(const[r,n]of i)switch(r){case"LW":this.setLineWidth(e,n);break;case"LC":this.setLineCap(e,n);break;case"LJ":this.setLineJoin(e,n);break;case"ML":this.setMiterLimit(e,n);break;case"D":this.setDash(e,n[0],n[1]);break;case"RI":this.setRenderingIntent(e,n);break;case"FL":this.setFlatness(e,n);break;case"Font":this.setFont(e,n[0],n[1]);break;case"CA":this.dependencyTracker?.recordSimpleData("strokeAlpha",e),this.current.strokeAlpha=n;break;case"ca":this.dependencyTracker?.recordSimpleData("fillAlpha",e),this.ctx.globalAlpha=this.current.fillAlpha=n;break;case"BM":this.dependencyTracker?.recordSimpleData("globalCompositeOperation",e),this.ctx.globalCompositeOperation=n;break;case"SMask":this.dependencyTracker?.recordSimpleData("SMask",e),this.current.activeSMask=n?this.tempSMask:null,this.tempSMask=null,this.checkSMaskState();break;case"TR":this.dependencyTracker?.recordSimpleData("filter",e),this.ctx.filter=this.current.transferMaps=this.filterFactory.addFilter(n);break}}get inSMaskMode(){return!!this.suspendedCtx}checkSMaskState(){const e=this.inSMaskMode;this.current.activeSMask&&!e?this.beginSMaskMode():!this.current.activeSMask&&e&&this.endSMaskMode()}beginSMaskMode(e){if(this.inSMaskMode)throw new Error("beginSMaskMode called while already in smask mode");const i=this.ctx.canvas.width,r=this.ctx.canvas.height,n="smaskGroupAt"+this.groupLevel,o=this.cachedCanvases.getCanvas(n,i,r);this.suspendedCtx=this.ctx;const s=this.ctx=o.context;s.setTransform(this.suspendedCtx.getTransform()),t7(this.suspendedCtx,s),PHi(s,this.suspendedCtx),this.setGState(e,[["BM","source-over"]])}endSMaskMode(){if(!this.inSMaskMode)throw new Error("endSMaskMode called while not in smask mode");this.ctx._removeMirroring(),t7(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,n){const o=n[0],s=n[1],a=n[2]-o,l=n[3]-s;a===0||l===0||(this.genericComposeSMask(i.context,r,a,l,i.subtype,i.backdrop,i.transferMap,o,s,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,n,o,s,a,l,c,d,u){let h=e.canvas,p=l-d,g=c-u;if(s)if(p<0||g<0||p+r>h.width||g+n>h.height){const A=this.cachedCanvases.getCanvas("maskExtension",r,n),m=A.context;m.drawImage(h,-p,-g),m.globalCompositeOperation="destination-atop",m.fillStyle=s,m.fillRect(0,0,r,n),m.globalCompositeOperation="source-over",h=A.canvas,p=g=0}else{e.save(),e.globalAlpha=1,e.setTransform(1,0,0,1,0,0);const A=new Path2D;A.rect(p,g,r,n),e.clip(A),e.globalCompositeOperation="destination-atop",e.fillStyle=s,e.fillRect(p,g,r,n),e.restore()}i.save(),i.globalAlpha=1,i.setTransform(1,0,0,1,0,0),o==="Alpha"&&a?i.filter=this.filterFactory.addAlphaFilter(a):o==="Luminosity"&&(i.filter=this.filterFactory.addLuminosityFilter(a));const f=new Path2D;f.rect(l,c,r,n),i.clip(f),i.globalCompositeOperation="destination-in",i.drawImage(h,p,g,r,n,l,c,r,n),i.restore()}save(e){this.inSMaskMode&&t7(this.ctx,this.suspendedCtx),this.ctx.save();const i=this.current;this.stateStack.push(i),this.current=i.clone(),this.dependencyTracker?.save(e)}restore(e){if(this.dependencyTracker?.restore(e),this.stateStack.length===0){this.inSMaskMode&&this.endSMaskMode();return}this.current=this.stateStack.pop(),this.ctx.restore(),this.inSMaskMode&&t7(this.suspendedCtx,this.ctx),this.checkSMaskState(),this.pendingClip=null,this._cachedScaleForStroking[0]=-1,this._cachedGetSinglePixelWidth=null}transform(e,i,r,n,o,s,a){this.dependencyTracker?.recordIncrementalData("transform",e),this.ctx.transform(i,r,n,o,s,a),this._cachedScaleForStroking[0]=-1,this._cachedGetSinglePixelWidth=null}constructPath(e,i,r,n){let[o]=r;if(!n){o||=r[0]=new Path2D,this[i](e,o);return}if(this.dependencyTracker!==null){const s=i===K9.stroke?this.current.lineWidth/2:0;this.dependencyTracker.resetBBox(e).recordBBox(e,this.ctx,n[0]-s,n[2]+s,n[1]-s,n[3]+s).recordDependencies(e,["transform"])}o instanceof Path2D||(o=r[0]=X7e(o)),li.axialAlignedBoundingBox(n,po(this.ctx),this.current.minMax),this[i](e,o),this._pathStartIdx=e}closePath(e){this.ctx.closePath()}stroke(e,i,r=!0){const n=this.ctx,o=this.current.strokeColor;if(n.globalAlpha=this.current.strokeAlpha,this.contentVisible)if(typeof o=="object"&&o?.getPattern){const s=o.isModifyingCurrentTransform()?n.getTransform():null;if(n.save(),n.strokeStyle=o.getPattern(n,this,Ju(n),ea.STROKE,e),s){const a=new Path2D;a.addPath(i,n.getTransform().invertSelf().multiplySelf(s)),i=a}this.rescaleAndStroke(i,!1),n.restore()}else this.rescaleAndStroke(i,!0);this.dependencyTracker?.recordDependencies(e,Zc.stroke),r&&this.consumePath(e,i,this.current.getClippedPathBoundingBox(ea.STROKE,po(this.ctx))),n.globalAlpha=this.current.fillAlpha}closeStroke(e,i){this.stroke(e,i)}fill(e,i,r=!0){const n=this.ctx,o=this.current.fillColor,s=this.current.patternFill;let a=!1;if(s){const c=o.isModifyingCurrentTransform()?n.getTransform():null;if(this.dependencyTracker?.save(e),n.save(),n.fillStyle=o.getPattern(n,this,Ju(n),ea.FILL,e),c){const d=new Path2D;d.addPath(i,n.getTransform().invertSelf().multiplySelf(c)),i=d}a=!0}const l=this.current.getClippedPathBoundingBox();this.contentVisible&&l!==null&&(this.pendingEOFill?(n.fill(i,"evenodd"),this.pendingEOFill=!1):n.fill(i)),this.dependencyTracker?.recordDependencies(e,Zc.fill),a&&(n.restore(),this.dependencyTracker?.restore(e)),r&&this.consumePath(e,i,l)}eoFill(e,i){this.pendingEOFill=!0,this.fill(e,i)}fillStroke(e,i){this.fill(e,i,!1),this.stroke(e,i,!1),this.consumePath(e,i)}eoFillStroke(e,i){this.pendingEOFill=!0,this.fillStroke(e,i)}closeFillStroke(e,i){this.fillStroke(e,i)}closeEOFillStroke(e,i){this.pendingEOFill=!0,this.fillStroke(e,i)}endPath(e,i){this.consumePath(e,i)}rawFillPath(e,i){this.ctx.fill(i),this.dependencyTracker?.recordDependencies(e,Zc.rawFillPath).recordOperation(e)}clip(e){this.dependencyTracker?.recordFutureForcedDependency("clipMode",e),this.pendingClip=RHi}eoClip(e){this.dependencyTracker?.recordFutureForcedDependency("clipMode",e),this.pendingClip=kye}beginText(e){this.current.textMatrix=null,this.current.textMatrixScale=1,this.current.x=this.current.lineX=0,this.current.y=this.current.lineY=0,this.dependencyTracker?.recordOpenMarker(e).resetIncrementalData("sameLineText").resetIncrementalData("moveText",e)}endText(e){const i=this.pendingTextPaths,r=this.ctx;if(this.dependencyTracker){const{dependencyTracker:n}=this;i!==void 0&&n.recordFutureForcedDependency("textClip",n.getOpenMarker()).recordFutureForcedDependency("textClip",e),n.recordCloseMarker(e)}if(i!==void 0){const n=new Path2D,o=r.getTransform().invertSelf();for(const{transform:s,x:a,y:l,fontSize:c,path:d}of i)d&&n.addPath(d,new DOMMatrix(s).preMultiplySelf(o).translate(a,l).scale(c,-c));r.clip(n)}delete this.pendingTextPaths}setCharSpacing(e,i){this.dependencyTracker?.recordSimpleData("charSpacing",e),this.current.charSpacing=i}setWordSpacing(e,i){this.dependencyTracker?.recordSimpleData("wordSpacing",e),this.current.wordSpacing=i}setHScale(e,i){this.dependencyTracker?.recordSimpleData("hScale",e),this.current.textHScale=i/100}setLeading(e,i){this.dependencyTracker?.recordSimpleData("leading",e),this.current.leading=-i}setFont(e,i,r){this.dependencyTracker?.recordSimpleData("font",e).recordSimpleDataFromNamed("fontObj",i,e);const n=this.commonObjs.get(i),o=this.current;if(!n)throw new Error(`Can't find font for ${i}`);if(o.fontMatrix=n.fontMatrix||LG,(o.fontMatrix[0]===0||o.fontMatrix[3]===0)&&rr("Invalid font matrix for font "+i),r<0?(r=-r,o.fontDirection=-1):o.fontDirection=1,this.current.font=n,this.current.fontSize=r,n.isType3Font)return;const s=n.loadedName||"sans-serif",a=n.systemFontInfo?.css||`"${s}", ${n.fallbackName}`;let l="normal";n.black?l="900":n.bold&&(l="bold");const c=n.italic?"italic":"normal";let d=r;r<Aye?d=Aye:r>vye&&(d=vye),this.current.fontSizeScale=r/d,this.ctx.font=`${c} ${l} ${d}px ${a}`}setTextRenderingMode(e,i){this.dependencyTracker?.recordSimpleData("textRenderingMode",e),this.current.textRenderingMode=i}setTextRise(e,i){this.dependencyTracker?.recordSimpleData("textRise",e),this.current.textRise=i}moveText(e,i,r){this.dependencyTracker?.resetIncrementalData("sameLineText").recordIncrementalData("moveText",e),this.current.x=this.current.lineX+=i,this.current.y=this.current.lineY+=r}setLeadingMoveText(e,i,r){this.setLeading(e,-r),this.moveText(e,i,r)}setTextMatrix(e,i){this.dependencyTracker?.resetIncrementalData("sameLineText").recordSimpleData("textMatrix",e);const{current:r}=this;r.textMatrix=i,r.textMatrixScale=Math.hypot(i[0],i[1]),r.x=r.lineX=0,r.y=r.lineY=0}nextLine(e){this.moveText(e,0,this.current.leading),this.dependencyTracker?.recordIncrementalData("moveText",this.dependencyTracker.getSimpleIndex("leading")??e)}#r(e,i,r){const n=new Path2D;return n.addPath(e,new DOMMatrix(r).invertSelf().multiplySelf(i)),n}paintChar(e,i,r,n,o,s){const a=this.ctx,l=this.current,c=l.font,d=l.textRenderingMode,u=l.fontSize/l.fontSizeScale,h=d&ds.FILL_STROKE_MASK,p=!!(d&ds.ADD_TO_PATH_FLAG),g=l.patternFill&&!c.missingFile,f=l.patternStroke&&!c.missingFile;let A;if((c.disableFontFace||p||g||f)&&!c.missingFile&&(A=c.getPathGenerator(this.commonObjs,i)),A&&(c.disableFontFace||g||f)){a.save(),a.translate(r,n),a.scale(u,-u),this.dependencyTracker?.recordCharacterBBox(e,a,c);let m;if(h===ds.FILL||h===ds.FILL_STROKE)if(o){m=a.getTransform(),a.setTransform(...o);const b=this.#r(A,m,o);a.fill(b)}else a.fill(A);if(h===ds.STROKE||h===ds.FILL_STROKE)if(s){m||=a.getTransform(),a.setTransform(...s);const{a:b,b:v,c:w,d:y}=m,x=li.inverseTransform(s),k=li.transform([b,v,w,y,0,0],x);li.singularValueDecompose2dScale(k,fc),a.lineWidth*=Math.max(fc[0],fc[1])/u,a.stroke(this.#r(A,m,s))}else a.lineWidth/=u,a.stroke(A);a.restore()}else(h===ds.FILL||h===ds.FILL_STROKE)&&(a.fillText(i,r,n),this.dependencyTracker?.recordCharacterBBox(e,a,c,u,r,n,()=>a.measureText(i))),(h===ds.STROKE||h===ds.FILL_STROKE)&&(this.dependencyTracker&&this.dependencyTracker?.recordCharacterBBox(e,a,c,u,r,n,()=>a.measureText(i)).recordDependencies(e,Zc.stroke),a.strokeText(i,r,n));p&&((this.pendingTextPaths||=[]).push({transform:po(a),x:r,y:n,fontSize:u,path:A}),this.dependencyTracker?.recordCharacterBBox(e,a,c,u,r,n))}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 n=3;n<i.length;n+=4)if(i[n]>0&&i[n]<255){r=!0;break}return Xi(this,"isFontSubpixelAAEnabled",r)}showText(e,i){this.dependencyTracker&&(this.dependencyTracker.recordDependencies(e,Zc.showText).resetBBox(e),this.current.textRenderingMode&ds.ADD_TO_PATH_FLAG&&this.dependencyTracker.recordFutureForcedDependency("textClip",e).inheritPendingDependenciesAsFutureForcedDependencies());const r=this.current,n=r.font;if(n.isType3Font){this.showType3Text(e,i),this.dependencyTracker?.recordShowTextOperation(e);return}const o=r.fontSize;if(o===0){this.dependencyTracker?.recordOperation(e);return}const s=this.ctx,a=r.fontSizeScale,l=r.charSpacing,c=r.wordSpacing,d=r.fontDirection,u=r.textHScale*d,h=i.length,p=n.vertical,g=p?1:-1,f=n.defaultVMetrics,A=o*r.fontMatrix[0],m=r.textRenderingMode===ds.FILL&&!n.disableFontFace&&!r.patternFill;s.save(),r.textMatrix&&s.transform(...r.textMatrix),s.translate(r.x,r.y+r.textRise),d>0?s.scale(u,-1):s.scale(u,1);let b,v;const w=r.textRenderingMode&ds.FILL_STROKE_MASK,y=w===ds.FILL||w===ds.FILL_STROKE,x=w===ds.STROKE||w===ds.FILL_STROKE;if(y&&r.patternFill){s.save();const S=r.fillColor.getPattern(s,this,Ju(s),ea.FILL,e);b=po(s),s.restore(),s.fillStyle=S}if(x&&r.patternStroke){s.save();const S=r.strokeColor.getPattern(s,this,Ju(s),ea.STROKE,e);v=po(s),s.restore(),s.strokeStyle=S}let k=r.lineWidth;const E=r.textMatrixScale;if(E===0||k===0?x&&(k=this.getSinglePixelWidth()):k/=E,a!==1&&(s.scale(a,a),k/=a),s.lineWidth=k,n.isInvalidPDFjsFont){const S=[];let T=0;for(const O of i)S.push(O.unicode),T+=O.width;const _=S.join("");if(s.fillText(_,0,0),this.dependencyTracker!==null){const O=s.measureText(_);this.dependencyTracker.recordBBox(e,this.ctx,-O.actualBoundingBoxLeft,O.actualBoundingBoxRight,-O.actualBoundingBoxAscent,O.actualBoundingBoxDescent).recordShowTextOperation(e)}r.x+=T*A*u,s.restore(),this.compose();return}let B=0,I;for(I=0;I<h;++I){const S=i[I];if(typeof S=="number"){B+=g*S*o/1e3;continue}let T=!1;const _=(S.isSpace?c:0)+l,O=S.fontChar,N=S.accent;let U,V,Q=S.width;if(p){const ce=S.vmetric||f,ke=-(S.vmetric?ce[1]:Q*.5)*A,De=ce[2]*A;Q=ce?-ce[0]:Q,U=ke/a,V=(B+De)/a}else U=B/a,V=0;let $;if(n.remeasure&&Q>0){$=s.measureText(O);const ce=$.width*1e3/o*a;if(Q<ce&&this.isFontSubpixelAAEnabled){const ke=Q/ce;T=!0,s.save(),s.scale(ke,1),U/=ke}else Q!==ce&&(U+=(Q-ce)/2e3*o/a)}if(this.contentVisible&&(S.isInFont||n.missingFile)){if(m&&!N)s.fillText(O,U,V),this.dependencyTracker?.recordCharacterBBox(e,s,$?{bbox:null}:n,o/a,U,V,()=>$??s.measureText(O));else if(this.paintChar(e,O,U,V,b,v),N){const ce=U+o*N.offset.x/a,ke=V-o*N.offset.y/a;this.paintChar(e,N.fontChar,ce,ke,b,v)}}const be=p?Q*A-_*d:Q*A+_*d;B+=be,T&&s.restore()}p?r.y-=B:r.x+=B*u,s.restore(),this.compose(),this.dependencyTracker?.recordShowTextOperation(e)}showType3Text(e,i){const r=this.ctx,n=this.current,o=n.font,s=n.fontSize,a=n.fontDirection,l=o.vertical?1:-1,c=n.charSpacing,d=n.wordSpacing,u=n.textHScale*a,h=n.fontMatrix||LG,p=i.length,g=n.textRenderingMode===ds.INVISIBLE;let f,A,m,b;if(g||s===0)return;this._cachedScaleForStroking[0]=-1,this._cachedGetSinglePixelWidth=null,r.save(),n.textMatrix&&r.transform(...n.textMatrix),r.translate(n.x,n.y+n.textRise),r.scale(u,a);const v=this.dependencyTracker;for(this.dependencyTracker=v?new qS(v,e):null,f=0;f<p;++f){if(A=i[f],typeof A=="number"){b=l*A*s/1e3,this.ctx.translate(b,0),n.x+=b*u;continue}const w=(A.isSpace?d:0)+c,y=o.charProcOperatorList[A.operatorListId];y?this.contentVisible&&(this.save(),r.scale(s,s),r.transform(...h),this.executeOperatorList(y),this.restore()):rr(`Type3 character "${A.operatorListId}" is not available.`);const x=[A.width,0];li.applyTransform(x,h),m=x[0]*s+w,r.translate(m,0),n.x+=m*u}r.restore(),v&&(this.dependencyTracker=v)}setCharWidth(e,i,r){}setCharWidthAndBounds(e,i,r,n,o,s,a){const l=new Path2D;l.rect(n,o,s-n,a-o),this.ctx.clip(l),this.dependencyTracker?.recordBBox(e,this.ctx,n,s,o,a).recordClipBox(e,this.ctx,n,s,o,a),this.endPath(e)}getColorN_Pattern(e,i){let r;if(i[0]==="TilingPattern"){const n=this.baseTransform||po(this.ctx),o={createCanvasGraphics:(s,a)=>new Kb(s,this.commonObjs,this.objs,this.canvasFactory,this.filterFactory,{optionalContentConfig:this.optionalContentConfig,markedContentStack:this.markedContentStack},void 0,void 0,this.dependencyTracker?new qS(this.dependencyTracker,a,!0):null)};r=new mW(i,this.ctx,o,n)}else r=this._getPattern(e,i[1],i[2]);return r}setStrokeColorN(e,...i){this.dependencyTracker?.recordSimpleData("strokeColor",e),this.current.strokeColor=this.getColorN_Pattern(e,i),this.current.patternStroke=!0}setFillColorN(e,...i){this.dependencyTracker?.recordSimpleData("fillColor",e),this.current.fillColor=this.getColorN_Pattern(e,i),this.current.patternFill=!0}setStrokeRGBColor(e,i){this.dependencyTracker?.recordSimpleData("strokeColor",e),this.ctx.strokeStyle=this.current.strokeColor=i,this.current.patternStroke=!1}setStrokeTransparent(e){this.dependencyTracker?.recordSimpleData("strokeColor",e),this.ctx.strokeStyle=this.current.strokeColor="transparent",this.current.patternStroke=!1}setFillRGBColor(e,i){this.dependencyTracker?.recordSimpleData("fillColor",e),this.ctx.fillStyle=this.current.fillColor=i,this.current.patternFill=!1}setFillTransparent(e){this.dependencyTracker?.recordSimpleData("fillColor",e),this.ctx.fillStyle=this.current.fillColor="transparent",this.current.patternFill=!1}_getPattern(e,i,r=null){let n;return this.cachedPatterns.has(i)?n=this.cachedPatterns.get(i):(n=MHi(this.getObject(e,i)),this.cachedPatterns.set(i,n)),r&&(n.matrix=r),n}shadingFill(e,i){if(!this.contentVisible)return;const r=this.ctx;this.save(e);const n=this._getPattern(e,i);r.fillStyle=n.getPattern(r,this,Ju(r),ea.SHADING,e);const o=Ju(r);if(o){const{width:s,height:a}=r.canvas,l=mb.slice();li.axialAlignedBoundingBox([0,0,s,a],o,l);const[c,d,u,h]=l;this.ctx.fillRect(c,d,u-c,h-d)}else this.ctx.fillRect(-1e10,-1e10,2e10,2e10);this.dependencyTracker?.resetBBox(e).recordFullPageBBox(e).recordDependencies(e,Zc.transform).recordDependencies(e,Zc.fill).recordOperation(e),this.compose(this.current.getClippedPathBoundingBox()),this.restore(e)}beginInlineImage(){on("Should not call beginInlineImage")}beginImageData(){on("Should not call beginImageData")}paintFormXObjectBegin(e,i,r){if(this.contentVisible&&(this.save(e),this.baseTransformStack.push(this.baseTransform),i&&this.transform(e,...i),this.baseTransform=po(this.ctx),r)){li.axialAlignedBoundingBox(r,this.baseTransform,this.current.minMax);const[n,o,s,a]=r,l=new Path2D;l.rect(n,o,s-n,a-o),this.ctx.clip(l),this.dependencyTracker?.recordClipBox(e,this.ctx,n,s,o,a),this.endPath(e)}}paintFormXObjectEnd(e){this.contentVisible&&(this.restore(e),this.baseTransform=this.baseTransformStack.pop())}beginGroup(e,i){if(!this.contentVisible)return;this.save(e),this.inSMaskMode&&(this.endSMaskMode(),this.current.activeSMask=null);const r=this.ctx;i.isolated||nI("TODO: Support non-isolated groups."),i.knockout&&rr("Knockout groups not supported.");const n=po(r);if(i.matrix&&r.transform(...i.matrix),!i.bbox)throw new Error("Bounding box is required.");let o=mb.slice();li.axialAlignedBoundingBox(i.bbox,po(r),o);const s=[0,0,r.canvas.width,r.canvas.height];o=li.intersect(o,s)||[0,0,0,0];const a=Math.floor(o[0]),l=Math.floor(o[1]),c=Math.max(Math.ceil(o[2])-a,1),d=Math.max(Math.ceil(o[3])-l,1);this.current.startNewPathAndClipBox([0,0,c,d]);let u="groupAt"+this.groupLevel;i.smask&&(u+="_smask_"+this.smaskCounter++%2);const h=this.cachedCanvases.getCanvas(u,c,d),p=h.context;p.translate(-a,-l),p.transform(...n);let g=new Path2D;const[f,A,m,b]=i.bbox;if(g.rect(f,A,m-f,b-A),i.matrix){const v=new Path2D;v.addPath(g,new DOMMatrix(i.matrix)),g=v}p.clip(g),i.smask&&this.smaskStack.push({canvas:h.canvas,context:p,offsetX:a,offsetY:l,subtype:i.smask.subtype,backdrop:i.smask.backdrop,transferMap:i.smask.transferMap||null,startTransformInverse:null}),(!i.smask||this.dependencyTracker)&&(r.setTransform(1,0,0,1,0,0),r.translate(a,l),r.save()),t7(r,p),this.ctx=p,this.dependencyTracker?.inheritSimpleDataAsFutureForcedDependencies(["fillAlpha","strokeAlpha","globalCompositeOperation"]).pushBaseTransform(r),this.setGState(e,[["BM","source-over"],["ca",1],["CA",1],["TR",null]]),this.groupStack.push(r),this.groupLevel++}endGroup(e,i){if(!this.contentVisible)return;this.groupLevel--;const r=this.ctx,n=this.groupStack.pop();if(this.ctx=n,this.ctx.imageSmoothingEnabled=!1,this.dependencyTracker?.popBaseTransform(),i.smask)this.tempSMask=this.smaskStack.pop(),this.restore(e),this.dependencyTracker&&this.ctx.restore();else{this.ctx.restore();const o=po(this.ctx);this.restore(e),this.ctx.save(),this.ctx.setTransform(...o);const s=mb.slice();li.axialAlignedBoundingBox([0,0,r.canvas.width,r.canvas.height],o,s),this.ctx.drawImage(r.canvas,0,0),this.ctx.restore(),this.compose(s)}}beginAnnotation(e,i,r,n,o,s){if(this.#e(),fI(this.ctx),this.ctx.save(),this.save(e),this.baseTransform&&this.ctx.setTransform(...this.baseTransform),r){const a=r[2]-r[0],l=r[3]-r[1];if(s&&this.annotationCanvasMap){n=n.slice(),n[4]-=r[0],n[5]-=r[1],r=r.slice(),r[0]=r[1]=0,r[2]=a,r[3]=l,li.singularValueDecompose2dScale(po(this.ctx),fc);const{viewportScale:c}=this,d=Math.ceil(a*this.outputScaleX*c),u=Math.ceil(l*this.outputScaleY*c);this.annotationCanvas=this.canvasFactory.create(d,u);const{canvas:h,context:p}=this.annotationCanvas;this.annotationCanvasMap.set(i,h),this.annotationCanvas.savedCtx=this.ctx,this.ctx=p,this.ctx.save(),this.ctx.setTransform(fc[0],0,0,-fc[1],0,l*fc[1]),fI(this.ctx)}else{fI(this.ctx),this.endPath(e);const c=new Path2D;c.rect(r[0],r[1],a,l),this.ctx.clip(c)}}this.current=new wye(this.ctx.canvas.width,this.ctx.canvas.height),this.transform(e,...n),this.transform(e,...o)}endAnnotation(e){this.annotationCanvas&&(this.ctx.restore(),this.#t(),this.ctx=this.annotationCanvas.savedCtx,delete this.annotationCanvas.savedCtx,delete this.annotationCanvas)}paintImageMaskXObject(e,i){if(!this.contentVisible)return;const r=i.count;i=this.getObject(e,i.data,i),i.count=r;const n=this.ctx,o=this._createMaskCanvas(e,i),s=o.canvas;n.save(),n.setTransform(1,0,0,1,0,0),n.drawImage(s,o.offsetX,o.offsetY),this.dependencyTracker?.resetBBox(e).recordBBox(e,this.ctx,o.offsetX,o.offsetX+s.width,o.offsetY,o.offsetY+s.height).recordOperation(e),n.restore(),this.compose()}paintImageMaskXObjectRepeat(e,i,r,n=0,o=0,s,a){if(!this.contentVisible)return;i=this.getObject(e,i.data,i);const l=this.ctx;l.save();const c=po(l);l.transform(r,n,o,s,0,0);const d=this._createMaskCanvas(e,i);l.setTransform(1,0,0,1,d.offsetX-c[4],d.offsetY-c[5]),this.dependencyTracker?.resetBBox(e);for(let u=0,h=a.length;u<h;u+=2){const p=li.transform(c,[r,n,o,s,a[u],a[u+1]]);l.drawImage(d.canvas,p[4],p[5]),this.dependencyTracker?.recordBBox(e,this.ctx,p[4],p[4]+d.canvas.width,p[5],p[5]+d.canvas.height)}l.restore(),this.compose(),this.dependencyTracker?.recordOperation(e)}paintImageMaskXObjectGroup(e,i){if(!this.contentVisible)return;const r=this.ctx,n=this.current.fillColor,o=this.current.patternFill;this.dependencyTracker?.resetBBox(e).recordDependencies(e,Zc.transformAndFill);for(const s of i){const{data:a,width:l,height:c,transform:d}=s,u=this.cachedCanvases.getCanvas("maskCanvas",l,c),h=u.context;h.save();const p=this.getObject(e,a,s);xye(h,p),h.globalCompositeOperation="source-in",h.fillStyle=o?n.getPattern(h,this,Ju(r),ea.FILL,e):n,h.fillRect(0,0,l,c),h.restore(),r.save(),r.transform(...d),r.scale(1,-1),pI(r,u.canvas,0,0,l,c,0,-1,1,1),this.dependencyTracker?.recordBBox(e,r,0,l,0,c),r.restore()}this.compose(),this.dependencyTracker?.recordOperation(e)}paintImageXObject(e,i){if(!this.contentVisible)return;const r=this.getObject(e,i);if(!r){rr("Dependent image isn't ready yet");return}this.paintInlineImageXObject(e,r)}paintImageXObjectRepeat(e,i,r,n,o){if(!this.contentVisible)return;const s=this.getObject(e,i);if(!s){rr("Dependent image isn't ready yet");return}const a=s.width,l=s.height,c=[];for(let d=0,u=o.length;d<u;d+=2)c.push({transform:[r,0,0,n,o[d],o[d+1]],x:0,y:0,w:a,h:l});this.paintInlineImageXObjectGroup(e,s,c)}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:n}=e,o=this.cachedCanvases.getCanvas("inlineImage",r,n),s=o.context;return s.filter=this.current.transferMaps,s.drawImage(i,0,0),s.filter="none",o.canvas}paintInlineImageXObject(e,i){if(!this.contentVisible)return;const r=i.width,n=i.height,o=this.ctx;this.save(e);const{filter:s}=o;s!=="none"&&s!==""&&(o.filter="none"),o.scale(1/r,-1/n);let a;if(i.bitmap)a=this.applyTransferMapsToBitmap(i);else if(typeof HTMLElement=="function"&&i instanceof HTMLElement||!i.data)a=i;else{const c=this.cachedCanvases.getCanvas("inlineImage",r,n).context;yye(c,i),a=this.applyTransferMapsToCanvas(c)}const l=this._scaleImage(a,Ju(o));o.imageSmoothingEnabled=Cye(po(o),i.interpolate),this.dependencyTracker?.resetBBox(e).recordBBox(e,o,0,r,-n,0).recordDependencies(e,Zc.imageXObject).recordOperation(e),pI(o,l.img,0,0,l.paintWidth,l.paintHeight,0,-n,r,n),this.compose(),this.restore(e)}paintInlineImageXObjectGroup(e,i,r){if(!this.contentVisible)return;const n=this.ctx;let o;if(i.bitmap)o=i.bitmap;else{const s=i.width,a=i.height,l=this.cachedCanvases.getCanvas("inlineImage",s,a).context;yye(l,i),o=this.applyTransferMapsToCanvas(l)}this.dependencyTracker?.resetBBox(e);for(const s of r)n.save(),n.transform(...s.transform),n.scale(1,-1),pI(n,o,s.x,s.y,s.w,s.h,0,-1,1,1),this.dependencyTracker?.recordBBox(e,n,0,1,-1,0),n.restore();this.dependencyTracker?.recordOperation(e),this.compose()}paintSolidColorImageMask(e){this.contentVisible&&(this.dependencyTracker?.resetBBox(e).recordBBox(e,this.ctx,0,1,0,1).recordDependencies(e,Zc.fill).recordOperation(e),this.ctx.fillRect(0,0,1,1),this.compose())}markPoint(e,i){}markPointProps(e,i,r){}beginMarkedContent(e,i){this.dependencyTracker?.beginMarkedContent(e),this.markedContentStack.push({visible:!0})}beginMarkedContentProps(e,i,r){this.dependencyTracker?.beginMarkedContent(e),i==="OC"?this.markedContentStack.push({visible:this.optionalContentConfig.isVisible(r)}):this.markedContentStack.push({visible:!0}),this.contentVisible=this.isContentVisible()}endMarkedContent(e){this.dependencyTracker?.endMarkedContent(e),this.markedContentStack.pop(),this.contentVisible=this.isContentVisible()}beginCompat(e){}endCompat(e){}consumePath(e,i,r){const n=this.current.isEmptyClip();this.pendingClip&&this.current.updateClipFromPath(),this.pendingClip||this.compose(r);const o=this.ctx;this.pendingClip?(n||(this.pendingClip===kye?o.clip(i,"evenodd"):o.clip(i)),this.pendingClip=null,this.dependencyTracker?.bboxToClipBoxDropOperation(e).recordFutureForcedDependency("clipPath",e)):this.dependencyTracker?.recordOperation(e),this.current.startNewPathAndClipBox(this.current.clipBox)}getSinglePixelWidth(){if(!this._cachedGetSinglePixelWidth){const e=po(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]),n=Math.hypot(e[1],e[3]);this._cachedGetSinglePixelWidth=Math.max(r,n)/i}}return this._cachedGetSinglePixelWidth}getScaleForStroking(){if(this._cachedScaleForStroking[0]===-1){const{lineWidth:e}=this.current,{a:i,b:r,c:n,d:o}=this.ctx.getTransform();let s,a;if(r===0&&n===0){const l=Math.abs(i),c=Math.abs(o);if(l===c)if(e===0)s=a=1/l;else{const d=l*e;s=a=d<1?1/d:1}else if(e===0)s=1/l,a=1/c;else{const d=l*e,u=c*e;s=d<1?1/d:1,a=u<1?1/u:1}}else{const l=Math.abs(i*o-r*n),c=Math.hypot(i,r),d=Math.hypot(n,o);if(e===0)s=d/l,a=c/l;else{const u=e*l;s=d>u?d/u:1,a=c>u?c/u:1}}this._cachedScaleForStroking[0]=s,this._cachedScaleForStroking[1]=a}return this._cachedScaleForStroking}rescaleAndStroke(e,i){const{ctx:r,current:{lineWidth:n}}=this,[o,s]=this.getScaleForStroking();if(o===s){r.lineWidth=(n||1)*o,r.stroke(e);return}const a=r.getLineDash();i&&r.save(),r.scale(o,s),rQ.a=1/o,rQ.d=1/s;const l=new Path2D;if(l.addPath(e,rQ),a.length>0){const c=Math.max(o,s);r.setLineDash(a.map(d=>d/c)),r.lineDashOffset/=c}r.lineWidth=n||1,r.stroke(l),i&&r.restore()}isContentVisible(){for(let e=this.markedContentStack.length-1;e>=0;e--)if(!this.markedContentStack[e].visible)return!1;return!0}}for(const t in K9)Kb.prototype[t]!==void 0&&(Kb.prototype[K9[t]]=Kb.prototype[t]);class Ab{static#e=null;static#t="";static get workerPort(){return this.#e}static set workerPort(e){if(!(typeof Worker<"u"&&e instanceof Worker)&&e!==null)throw new Error("Invalid `workerPort` type.");this.#e=e}static get workerSrc(){return this.#t}static set workerSrc(e){if(typeof e!="string")throw new Error("Invalid `workerSrc` type.");this.#t=e}}class DHi{#e;#t;constructor({parsedData:e,rawData:i}){this.#e=e,this.#t=i}getRaw(){return this.#t}get(e){return this.#e.get(e)??null}[Symbol.iterator](){return this.#e.entries()}}const vb=Symbol("INTERNAL");class _Hi{#e=!1;#t=!1;#r=!1;#i=!0;constructor(e,{name:i,intent:r,usage:n,rbGroups:o}){this.#e=!!(e&pc.DISPLAY),this.#t=!!(e&pc.PRINT),this.name=i,this.intent=r,this.usage=n,this.rbGroups=o}get visible(){if(this.#r)return this.#i;if(!this.#i)return!1;const{print:e,view:i}=this.usage;return this.#e?i?.viewState!=="OFF":this.#t?e?.printState!=="OFF":!0}_setVisible(e,i,r=!1){e!==vb&&on("Internal method `_setVisible` called."),this.#r=r,this.#i=i}}class LHi{#e=null;#t=new Map;#r=null;#i=null;constructor(e,i=pc.DISPLAY){if(this.renderingIntent=i,this.name=null,this.creator=null,e!==null){this.name=e.name,this.creator=e.creator,this.#i=e.order;for(const r of e.groups)this.#t.set(r.id,new _Hi(i,r));if(e.baseState==="OFF")for(const r of this.#t.values())r._setVisible(vb,!1);for(const r of e.on)this.#t.get(r)._setVisible(vb,!0);for(const r of e.off)this.#t.get(r)._setVisible(vb,!1);this.#r=this.getHash()}}#n(e){const i=e.length;if(i<2)return!0;const r=e[0];for(let n=1;n<i;n++){const o=e[n];let s;if(Array.isArray(o))s=this.#n(o);else if(this.#t.has(o))s=this.#t.get(o).visible;else return rr(`Optional content group not found: ${o}`),!0;switch(r){case"And":if(!s)return!1;break;case"Or":if(s)return!0;break;case"Not":return!s;default:return!0}}return r==="And"}isVisible(e){if(this.#t.size===0)return!0;if(!e)return nI("Optional content group not defined."),!0;if(e.type==="OCG")return this.#t.has(e.id)?this.#t.get(e.id).visible:(rr(`Optional content group not found: ${e.id}`),!0);if(e.type==="OCMD"){if(e.expression)return this.#n(e.expression);if(!e.policy||e.policy==="AnyOn"){for(const i of e.ids){if(!this.#t.has(i))return rr(`Optional content group not found: ${i}`),!0;if(this.#t.get(i).visible)return!0}return!1}else if(e.policy==="AllOn"){for(const i of e.ids){if(!this.#t.has(i))return rr(`Optional content group not found: ${i}`),!0;if(!this.#t.get(i).visible)return!1}return!0}else if(e.policy==="AnyOff"){for(const i of e.ids){if(!this.#t.has(i))return rr(`Optional content group not found: ${i}`),!0;if(!this.#t.get(i).visible)return!0}return!1}else if(e.policy==="AllOff"){for(const i of e.ids){if(!this.#t.has(i))return rr(`Optional content group not found: ${i}`),!0;if(this.#t.get(i).visible)return!1}return!0}return rr(`Unknown optional content policy ${e.policy}.`),!0}return rr(`Unknown group type ${e.type}.`),!0}setVisibility(e,i=!0,r=!0){const n=this.#t.get(e);if(!n){rr(`Optional content group not found: ${e}`);return}if(r&&i&&n.rbGroups.length)for(const o of n.rbGroups)for(const s of o)s!==e&&this.#t.get(s)?._setVisible(vb,!1,!0);n._setVisible(vb,!!i,!0),this.#e=null}setOCGState({state:e,preserveRB:i}){let r;for(const n of e){switch(n){case"ON":case"OFF":case"Toggle":r=n;continue}const o=this.#t.get(n);if(o)switch(r){case"ON":this.setVisibility(n,!0,i);break;case"OFF":this.setVisibility(n,!1,i);break;case"Toggle":this.setVisibility(n,!o.visible,i);break}}this.#e=null}get hasInitialVisibility(){return this.#r===null||this.getHash()===this.#r}getOrder(){return this.#t.size?this.#i?this.#i.slice():[...this.#t.keys()]:null}getGroup(e){return this.#t.get(e)||null}getHash(){if(this.#e!==null)return this.#e;const e=new tye;for(const[i,r]of this.#t)e.update(`${i}:${r.visible}`);return this.#e=e.hexdigest()}[Symbol.iterator](){return this.#t.entries()}}let gI=class{#e=null;#t=null;_fullReader=null;_rangeReaders=new Set;_source=null;constructor(t,e,i){this._source=t,this.#e=e,this.#t=i}get _progressiveDataLength(){return this._fullReader?._loaded??0}getFullReader(){return Yr(!this._fullReader,"BasePDFStream.getFullReader can only be called once."),this._fullReader=new this.#e(this)}getRangeReader(t,e){if(e<=this._progressiveDataLength)return null;const i=new this.#t(this,t,e);return this._rangeReaders.add(i),i}cancelAllRequests(t){this._fullReader?.cancel(t);for(const e of new Set(this._rangeReaders))e.cancel(t)}},mI=class{onProgress=null;_contentLength=0;_filename=null;_headersCapability=Promise.withResolvers();_isRangeSupported=!1;_isStreamingSupported=!1;_loaded=0;_stream=null;constructor(t){this._stream=t}_callOnProgress(){this.onProgress?.({loaded:this._loaded,total:this._contentLength})}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(){on("Abstract method `read` called")}cancel(t){on("Abstract method `cancel` called")}},AI=class{_stream=null;constructor(t,e,i){this._stream=t}async read(){on("Abstract method `read` called")}cancel(t){on("Abstract method `cancel` called")}};function Mye(t){return t instanceof Uint8Array&&t.byteLength===t.buffer.byteLength?t.buffer:new Uint8Array(t).buffer}function vI(){for(const t of this._requests)t.resolve({value:void 0,done:!0});this._requests.length=0}class jHi extends gI{_progressiveDone=!1;_queuedChunks=[];constructor(e){super(e,FHi,OHi);const{pdfDataRangeTransport:i}=e,{initialData:r,progressiveDone:n}=i;if(r?.length>0){const o=Mye(r);this._queuedChunks.push(o)}this._progressiveDone=n,i.addRangeListener((o,s)=>{this.#e(o,s)}),i.addProgressiveReadListener(o=>{this.#e(void 0,o)}),i.addProgressiveDoneListener(()=>{this._fullReader?.progressiveDone(),this._progressiveDone=!0}),i.transportReady()}#e(e,i){const r=Mye(i);if(e===void 0)this._fullReader?this._fullReader._enqueue(r):this._queuedChunks.push(r);else{const n=this._rangeReaders.keys().find(o=>o._begin===e);Yr(n,"#onReceiveData - no `PDFDataTransportStreamRangeReader` instance found."),n._enqueue(r)}}getFullReader(){const e=super.getFullReader();return this._queuedChunks=null,e}getRangeReader(e,i){const r=super.getRangeReader(e,i);return r&&(r.onDone=()=>this._rangeReaders.delete(r),this._source.pdfDataRangeTransport.requestDataRange(e,i)),r}cancelAllRequests(e){super.cancelAllRequests(e),this._source.pdfDataRangeTransport.abort()}}class FHi extends mI{#e=vI.bind(this);_done=!1;_queuedChunks=null;_requests=[];constructor(e){super(e);const{pdfDataRangeTransport:i,disableRange:r,disableStream:n}=e._source,{length:o,contentDispositionFilename:s}=i;this._queuedChunks=e._queuedChunks||[];for(const l of this._queuedChunks)this._loaded+=l.byteLength;this._done=e._progressiveDone,this._contentLength=o,this._isStreamingSupported=!n,this._isRangeSupported=!r,QG(s)&&(this._filename=s),this._headersCapability.resolve();const a=this._loaded;Promise.resolve().then(()=>{a>0&&this._loaded===a&&this._callOnProgress()})}_enqueue(e){this._done||(this._requests.length>0?this._requests.shift().resolve({value:e,done:!1}):this._queuedChunks.push(e),this._loaded+=e.byteLength,this._callOnProgress())}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,this.#e()}progressiveDone(){this._done||=!0,this._queuedChunks.length===0&&this.#e()}}class OHi extends AI{#e=vI.bind(this);onDone=null;_begin=-1;_done=!1;_queuedChunk=null;_requests=[];constructor(e,i,r){super(e,i,r),this._begin=i}_enqueue(e){this._done||(this._requests.length===0?this._queuedChunk=e:(this._requests.shift().resolve({value:e,done:!1}),this.#e()),this._done=!0,this.onDone?.())}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,this.#e(),this.onDone?.()}}function qHi(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),o(d)}if(i=s(t),i){const d=c(i);return o(d)}if(i=r("filename","i").exec(t),i){i=i[1];let d=a(i);return d=c(d),o(d)}function r(d,u){return new RegExp("(?:^|;)\\s*"+d+'\\s*=\\s*([^";\\s][^;\\s]*|"(?:[^"\\\\]|\\\\"?)+"?)',u)}function n(d,u){if(d){if(!/^[\x00-\xFF]+$/.test(u))return u;try{const h=new TextDecoder(d,{fatal:!0}),p=sI(u);u=h.decode(p),e=!1}catch{}}return u}function o(d){return e&&/[\x80-\xff]/.test(d)&&(d=n("utf-8",d),e&&(d=n("iso-8859-1",d))),d}function s(d){const u=[];let h;const p=r("filename\\*((?!0\\d)\\d+)(\\*?)","ig");for(;(h=p.exec(d))!==null;){let[,f,A,m]=h;if(f=parseInt(f,10),f in u){if(f===0)break;continue}u[f]=[A,m]}const g=[];for(let f=0;f<u.length&&f in u;++f){let[A,m]=u[f];m=a(m),A&&(m=unescape(m),f===0&&(m=l(m))),g.push(m)}return g.join("")}function a(d){if(d.startsWith('"')){const u=d.slice(1).split('\\"');for(let h=0;h<u.length;++h){const p=u[h].indexOf('"');p!==-1&&(u[h]=u[h].slice(0,p),u.length=h+1),u[h]=u[h].replaceAll(/\\(.)/g,"$1")}d=u.join('"')}return d}function l(d){const u=d.indexOf("'");if(u===-1)return d;const h=d.slice(0,u),p=d.slice(u+1).replace(/^[^']*'/,"");return n(h,p)}function c(d){return!d.startsWith("=?")||/[\x00-\x19\x80-\xff]/.test(d)?d:d.replaceAll(/=\?([\w-]*)\?([QqBb])\?((?:[^?]|\?(?!=))*)\?=/g,function(u,h,p,g){if(p==="q"||p==="Q")return g=g.replaceAll("_"," "),g=g.replaceAll(/=([0-9a-fA-F]{2})/g,function(f,A){return String.fromCharCode(parseInt(A,16))}),n(h,g);try{g=atob(g)}catch{}return n(h,g)})}return""}function Eye(t,e){const i=new Headers;if(!t||!e||typeof e!="object")return i;for(const r in e){const n=e[r];n!==void 0&&i.append(r,n)}return i}function bI(t){return URL.parse(t)?.origin??null}function Bye({responseHeaders:t,isHttp:e,rangeChunkSize:i,disableRange:r}){const n={allowRangeRequests:!1,suggestedLength:void 0},o=parseInt(t.get("Content-Length"),10);return!Number.isInteger(o)||(n.suggestedLength=o,o<=2*i)||r||!e||t.get("Accept-Ranges")!=="bytes"||(t.get("Content-Encoding")||"identity")!=="identity"||(n.allowRangeRequests=!0),n}function Pye(t){const e=t.get("Content-Disposition");if(e){let i=qHi(e);if(i.includes("%"))try{i=decodeURIComponent(i)}catch{}if(QG(i))return i}return null}function wI(t,e){return new oI(`Unexpected server response (${t}) while retrieving PDF "${e.href}".`,t,t===404||t===0&&e.protocol==="file:")}function Iye(t,e){if(t!==e)throw new Error(`Expected range response-origin "${t}" to match "${e}".`)}function Sye(t,e,i,r){return fetch(t,{method:"GET",headers:e,signal:r.signal,mode:"cors",credentials:i?"include":"same-origin",redirect:"follow"})}function Tye(t,e){if(t!==200&&t!==206)throw wI(t,e)}function yI(t){if(t instanceof Uint8Array)return t.buffer;if(t instanceof ArrayBuffer)return t;throw new Error(`getArrayBuffer - unexpected data: ${t}`)}class UHi extends gI{_responseOrigin=null;constructor(e){super(e,NHi,HHi);const{httpHeaders:i,url:r}=e;Yr(/https?:/.test(r.protocol),"PDFFetchStream only supports http(s):// URLs."),this.headers=Eye(!0,i)}}class NHi extends mI{_abortController=new AbortController;_reader=null;constructor(e){super(e);const{disableRange:i,disableStream:r,length:n,rangeChunkSize:o,url:s,withCredentials:a}=e._source;this._contentLength=n,this._isStreamingSupported=!r,this._isRangeSupported=!i;const l=new Headers(e.headers);Sye(s,l,a,this._abortController).then(c=>{e._responseOrigin=bI(c.url),Tye(c.status,s),this._reader=c.body.getReader();const d=c.headers,{allowRangeRequests:u,suggestedLength:h}=Bye({responseHeaders:d,isHttp:!0,rangeChunkSize:o,disableRange:i});this._isRangeSupported=u,this._contentLength=h||this._contentLength,this._filename=Pye(d),!this._isStreamingSupported&&this._isRangeSupported&&this.cancel(new Af("Streaming is disabled.")),this._headersCapability.resolve()}).catch(this._headersCapability.reject)}async read(){await this._headersCapability.promise;const{value:e,done:i}=await this._reader.read();return i?{value:e,done:i}:(this._loaded+=e.byteLength,this._callOnProgress(),{value:yI(e),done:!1})}cancel(e){this._reader?.cancel(e),this._abortController.abort()}}class HHi extends AI{_abortController=new AbortController;_readCapability=Promise.withResolvers();_reader=null;constructor(e,i,r){super(e,i,r);const{url:n,withCredentials:o}=e._source,s=new Headers(e.headers);s.append("Range",`bytes=${i}-${r-1}`),Sye(n,s,o,this._abortController).then(a=>{const l=bI(a.url);Iye(l,e._responseOrigin),Tye(a.status,n),this._reader=a.body.getReader(),this._readCapability.resolve()}).catch(this._readCapability.reject)}async read(){await this._readCapability.promise;const{value:e,done:i}=await this._reader.read();return i?{value:e,done:i}:{value:yI(e),done:!1}}cancel(e){this._reader?.cancel(e),this._abortController.abort()}}const nQ=200,Rye=206;function zHi(t){return typeof t!="string"?t:sI(t).buffer}class VHi extends gI{#e=new WeakMap;_responseOrigin=null;constructor(e){super(e,GHi,QHi);const{httpHeaders:i,url:r}=e;this.url=r,this.isHttp=/https?:/.test(r.protocol),this.headers=Eye(this.isHttp,i)}_request(e){const i=new XMLHttpRequest,r={validateStatus:null,onHeadersReceived:e.onHeadersReceived,onDone:e.onDone,onError:e.onError,onProgress:e.onProgress};this.#e.set(i,r),i.open("GET",this.url),i.withCredentials=this._source.withCredentials;for(const[n,o]of this.headers)i.setRequestHeader(n,o);return this.isHttp&&"begin"in e&&"end"in e?(i.setRequestHeader("Range",`bytes=${e.begin}-${e.end-1}`),r.validateStatus=n=>n===Rye||n===nQ):r.validateStatus=n=>n===nQ,i.responseType="arraybuffer",Yr(e.onError,"Expected `onError` callback to be provided."),i.onerror=()=>e.onError(i.status),i.onreadystatechange=this.#r.bind(this,i),i.onprogress=this.#t.bind(this,i),i.send(null),i}#t(e,i){this.#e.get(e)?.onProgress?.(i)}#r(e,i){const r=this.#e.get(e);if(!r||(e.readyState>=2&&r.onHeadersReceived&&(r.onHeadersReceived(),delete r.onHeadersReceived),e.readyState!==4)||!this.#e.has(e))return;if(this.#e.delete(e),e.status===0&&this.isHttp){r.onError(e.status);return}const n=e.status||nQ;if(!r.validateStatus(n)){r.onError(e.status);return}const o=zHi(e.response);if(n===Rye){const s=e.getResponseHeader("Content-Range");/bytes (\d+)-(\d+)\/(\d+)/.test(s)?r.onDone(o):(rr('Missing or invalid "Content-Range" header.'),r.onError(0))}else o?r.onDone(o):r.onError(e.status)}_abortRequest(e){this.#e.has(e)&&(this.#e.delete(e),e.abort())}getRangeReader(e,i){const r=super.getRangeReader(e,i);return r&&(r.onClosed=()=>this._rangeReaders.delete(r)),r}}class GHi extends mI{#e=vI.bind(this);_cachedChunks=[];_done=!1;_requests=[];_storedError=null;constructor(e){super(e);const{length:i}=e._source;this._contentLength=i,this._fullRequestXhr=e._request({onHeadersReceived:this.#t.bind(this),onDone:this.#r.bind(this),onError:this.#i.bind(this),onProgress:this.#n.bind(this)})}#t(){const e=this._stream,{disableRange:i,rangeChunkSize:r}=e._source,n=this._fullRequestXhr;e._responseOrigin=bI(n.responseURL);const o=n.getAllResponseHeaders(),s=new Headers(o?o.trimStart().replace(/[^\S ]+$/,"").split(/[\r\n]+/).map(c=>{const[d,...u]=c.split(": ");return[d,u.join(": ")]}):[]),{allowRangeRequests:a,suggestedLength:l}=Bye({responseHeaders:s,isHttp:e.isHttp,rangeChunkSize:r,disableRange:i});a&&(this._isRangeSupported=!0),this._contentLength=l||this._contentLength,this._filename=Pye(s),this._isRangeSupported&&e._abortRequest(n),this._headersCapability.resolve()}#r(e){this._requests.length>0?this._requests.shift().resolve({value:e,done:!1}):this._cachedChunks.push(e),this._done=!0,this._cachedChunks.length===0&&this.#e()}#i(e){this._storedError=wI(e,this._stream.url),this._headersCapability.reject(this._storedError);for(const i of this._requests)i.reject(this._storedError);this._requests.length=0,this._cachedChunks.length=0}#n(e){this.onProgress?.({loaded:e.loaded,total:e.lengthComputable?e.total:this._contentLength})}async read(){if(await this._headersCapability.promise,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),this.#e(),this._stream._abortRequest(this._fullRequestXhr),this._fullRequestXhr=null}}class QHi extends AI{#e=vI.bind(this);onClosed=null;_done=!1;_queuedChunk=null;_requests=[];_storedError=null;constructor(e,i,r){super(e,i,r),this._requestXhr=e._request({begin:i,end:r,onHeadersReceived:this.#t.bind(this),onDone:this.#r.bind(this),onError:this.#i.bind(this),onProgress:null})}#t(){const e=bI(this._requestXhr?.responseURL);try{Iye(e,this._stream._responseOrigin)}catch(i){this._storedError=i,this.#i(0)}}#r(e){this._requests.length>0?this._requests.shift().resolve({value:e,done:!1}):this._queuedChunk=e,this._done=!0,this.#e(),this.onClosed?.()}#i(e){this._storedError??=wI(e,this._stream.url);for(const i of this._requests)i.reject(this._storedError);this._requests.length=0,this._queuedChunk=null}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,this.#e(),this._stream._abortRequest(this._requestXhr),this.onClosed?.()}}function Dye(t){const{Readable:e}=process.getBuiltinModule("stream");return typeof e.toWeb=="function"?e.toWeb(t):process.getBuiltinModule("module").createRequire(import.meta.url)("node-readable-to-web-readable-stream").makeDefaultReadableStreamFromNodeReadable(t)}class KHi extends gI{constructor(e){super(e,WHi,JHi);const{url:i}=e;Yr(i.protocol==="file:","PDFNodeStream only supports file:// URLs.")}}class WHi extends mI{_reader=null;constructor(e){super(e);const{disableRange:i,disableStream:r,length:n,rangeChunkSize:o,url:s}=e._source;this._contentLength=n,this._isStreamingSupported=!r,this._isRangeSupported=!i;const a=process.getBuiltinModule("fs");a.promises.lstat(s).then(l=>{const c=a.createReadStream(s),d=Dye(c);this._reader=d.getReader();const{size:u}=l;u<=2*o&&(this._isRangeSupported=!1),this._contentLength=u,!this._isStreamingSupported&&this._isRangeSupported&&this.cancel(new Af("Streaming is disabled.")),this._headersCapability.resolve()}).catch(l=>{l.code==="ENOENT"&&(l=wI(0,s)),this._headersCapability.reject(l)})}async read(){await this._headersCapability.promise;const{value:e,done:i}=await this._reader.read();return i?{value:e,done:i}:(this._loaded+=e.byteLength,this._callOnProgress(),{value:yI(e),done:!1})}cancel(e){this._reader?.cancel(e)}}class JHi extends AI{_readCapability=Promise.withResolvers();_reader=null;constructor(e,i,r){super(e,i,r);const{url:n}=e._source,o=process.getBuiltinModule("fs");try{const s=o.createReadStream(n,{start:i,end:r-1}),a=Dye(s);this._reader=a.getReader(),this._readCapability.resolve()}catch(s){this._readCapability.reject(s)}}async read(){await this._readCapability.promise;const{value:e,done:i}=await this._reader.read();return i?{value:e,done:i}:{value:yI(e),done:!1}}cancel(e){this._reader?.cancel(e)}}const i7=Symbol("INITIAL_DATA"),YHi=()=>({...Promise.withResolvers(),data:i7});class _ye{#e=new Map;#t(e){return this.#e.getOrInsertComputed(e,YHi)}get(e,i=null){if(i){const n=this.#t(e);return n.promise.then(()=>i(n.data)),null}const r=this.#e.get(e);if(!r||r.data===i7)throw new Error(`Requesting object that isn't resolved yet ${e}.`);return r.data}has(e){const i=this.#e.get(e);return!!i&&i.data!==i7}delete(e){const i=this.#e.get(e);return!i||i.data===i7?!1:(this.#e.delete(e),!0)}resolve(e,i=null){const r=this.#t(e);r.data=i,r.resolve()}clear(){for(const{data:e}of this.#e.values())e?.bitmap?.close();this.#e.clear()}*[Symbol.iterator](){for(const[e,{data:i}]of this.#e)i!==i7&&(yield[e,i])}}const ZHi=1e5,Lye=30;class xc{#e=Promise.withResolvers();#t=null;#r=!1;#i=!!globalThis.FontInspector?.enabled;#n=null;#o=null;#s=0;#a=0;#l=null;#c=null;#d=0;#h=0;#p=Object.create(null);#m=[];#g=null;#u=[];#f=new WeakMap;#A=null;static#b=new Map;static#v=new Map;static#k=new WeakMap;static#C=null;static#w=new Set;constructor({textContentSource:e,container:i,viewport:r}){if(e instanceof ReadableStream)this.#g=e;else if(typeof e=="object")this.#g=new ReadableStream({start(l){l.enqueue(e),l.close()}});else throw new Error('No "textContentSource" parameter specified.');this.#t=this.#c=i,this.#h=r.scale*dh.pixelRatio,this.#d=r.rotation,this.#o={div:null,properties:null,ctx:null};const{pageWidth:n,pageHeight:o,pageX:s,pageY:a}=r.rawDims;this.#A=[1,0,0,-1,-s,a+o],this.#a=n,this.#s=o,xc.#I(),i.style.setProperty("--min-font-size",xc.#C),Mg(i,r),this.#e.promise.finally(()=>{xc.#w.delete(this),this.#o=null,this.#p=null}).catch(()=>{})}static get fontFamilyMap(){const{isWindows:e,isFirefox:i}=us.platform;return Xi(this,"fontFamilyMap",new Map([["sans-serif",`${e&&i?"Calibri, ":""}sans-serif`],["monospace",`${e&&i?"Lucida Console, ":""}monospace`]]))}render(){const e=()=>{this.#l.read().then(({value:i,done:r})=>{if(r){this.#e.resolve();return}this.#n??=i.lang,Object.assign(this.#p,i.styles),this.#E(i.items),e()},this.#e.reject)};return this.#l=this.#g.getReader(),xc.#w.add(this),e(),this.#e.promise}update({viewport:e,onBefore:i=null}){const r=e.scale*dh.pixelRatio,n=e.rotation;if(n!==this.#d&&(i?.(),this.#d=n,Mg(this.#c,{rotation:n})),r!==this.#h){i?.(),this.#h=r;const o={div:null,properties:null,ctx:xc.#S(this.#n)};for(const s of this.#u)o.properties=this.#f.get(s),o.div=s,this.#M(o)}}cancel(){const e=new Af("TextLayer task cancelled.");this.#l?.cancel(e).catch(()=>{}),this.#l=null,this.#e.reject(e)}get textDivs(){return this.#u}get textContentItemsStr(){return this.#m}#E(e){if(this.#r)return;this.#o.ctx??=xc.#S(this.#n);const i=this.#u,r=this.#m;for(const n of e){if(i.length>ZHi){rr("Ignoring additional textDivs for performance reasons."),this.#r=!0;return}if(n.str===void 0){if(n.type==="beginMarkedContentProps"||n.type==="beginMarkedContent"){const o=this.#t;this.#t=document.createElement("span"),this.#t.classList.add("markedContent"),n.id&&this.#t.setAttribute("id",`${n.id}`),n.tag==="Artifact"&&(this.#t.ariaHidden=!0),o.append(this.#t)}else n.type==="endMarkedContent"&&(this.#t=this.#t.parentNode);continue}r.push(n.str),this.#y(n)}}#y(e){const i=document.createElement("span"),r={angle:0,canvasWidth:0,hasText:e.str!=="",hasEOL:e.hasEOL,fontSize:0};this.#u.push(i);const n=li.transform(this.#A,e.transform);let o=Math.atan2(n[1],n[0]);const s=this.#p[e.fontName];s.vertical&&(o+=Math.PI/2);let a=this.#i&&s.fontSubstitution||s.fontFamily;a=xc.fontFamilyMap.get(a)||a;const l=Math.hypot(n[2],n[3]),c=l*xc.#F(a,s,this.#n);let d,u;o===0?(d=n[4],u=n[5]-c):(d=n[4]+c*Math.sin(o),u=n[5]-c*Math.cos(o));const h=i.style;h.left=`${(100*d/this.#a).toFixed(2)}%`,h.top=`${(100*u/this.#s).toFixed(2)}%`,h.setProperty("--font-height",`${l.toFixed(2)}px`),h.fontFamily=a,r.fontSize=l,i.setAttribute("role","presentation"),i.textContent=e.str,i.dir=e.dir,this.#i&&(i.dataset.fontName=s.fontSubstitutionLoadedName||e.fontName),o!==0&&(r.angle=o*(180/Math.PI));let p=!1;if(e.str.length>1)p=!0;else if(e.str!==" "&&e.transform[0]!==e.transform[3]){const g=Math.abs(e.transform[0]),f=Math.abs(e.transform[3]);g!==f&&Math.max(g,f)/Math.min(g,f)>1.5&&(p=!0)}if(p&&(r.canvasWidth=s.vertical?e.height:e.width),this.#f.set(i,r),this.#o.div=i,this.#o.properties=r,this.#M(this.#o),r.hasText&&this.#t.append(i),r.hasEOL){const g=document.createElement("br");g.setAttribute("role","presentation"),this.#t.append(g)}}#M(e){const{div:i,properties:r,ctx:n}=e,{style:o}=i;if(r.canvasWidth!==0&&r.hasText){const{fontFamily:s}=o,{canvasWidth:a,fontSize:l}=r;xc.#P(n,l*this.#h,s);const{width:c}=n.measureText(i.textContent);c>0&&o.setProperty("--scale-x",a*this.#h/c)}r.angle!==0&&o.setProperty("--rotate",`${r.angle}deg`)}static cleanup(){if(!(this.#w.size>0)){this.#b.clear();for(const{canvas:e}of this.#v.values())e.remove();this.#v.clear()}}static#S(e=null){let i=this.#v.get(e||="");if(!i){const r=document.createElement("canvas");r.className="hiddenCanvasElement",r.lang=e,document.body.append(r),i=r.getContext("2d",{alpha:!1,willReadFrequently:!0}),this.#v.set(e,i),this.#k.set(i,{size:0,family:""})}return i}static#P(e,i,r){const n=this.#k.get(e);i===n.size&&r===n.family||(e.font=`${i}px ${r}`,n.size=i,n.family=r)}static#I(){if(this.#C!==null)return;const e=document.createElement("div");e.style.opacity=0,e.style.lineHeight=1,e.style.fontSize="1px",e.style.position="absolute",e.textContent="X",document.body.append(e),this.#C=e.getBoundingClientRect().height,e.remove()}static#F(e,i,r){const n=this.#b.get(e);if(n)return n;const o=this.#S(r);o.canvas.width=o.canvas.height=Lye,this.#P(o,Lye,e);const s=o.measureText(""),a=s.fontBoundingBoxAscent,l=Math.abs(s.fontBoundingBoxDescent);o.canvas.width=o.canvas.height=0;let c=.8;return a?c=a/(a+l):(us.platform.isFirefox&&rr("Enable the `dom.textMetrics.fontBoundingBox.enabled` preference in `about:config` to improve TextLayer rendering."),i.ascent?c=i.ascent:i.descent&&(c=1+i.descent)),this.#b.set(e,c),c}}const XHi=100;function jye(t={}){typeof t=="string"||t instanceof URL?t={url:t}:(t instanceof ArrayBuffer||ArrayBuffer.isView(t))&&(t={data:t});const e=new AW,{docId:i}=e,r=t.url?aHi(t.url):null,n=t.data?lHi(t.data):null,o=t.httpHeaders||null,s=t.withCredentials===!0,a=t.password??null,l=t.range instanceof Fye?t.range:null,c=Number.isInteger(t.rangeChunkSize)&&t.rangeChunkSize>0?t.rangeChunkSize:2**16;let d=t.worker instanceof sQ?t.worker:null;const u=t.verbosity,h=typeof t.docBaseUrl=="string"&&!aI(t.docBaseUrl)?t.docBaseUrl:null,p=cI(t.cMapUrl),g=t.cMapPacked!==!1,f=t.CMapReaderFactory||(nl?mHi:lye),A=cI(t.iccUrl),m=cI(t.standardFontDataUrl),b=t.StandardFontDataFactory||(nl?AHi:uye),v=cI(t.wasmUrl),w=t.WasmFactory||(nl?vHi:pye),y=t.stopAtErrors!==!0,x=Number.isInteger(t.maxImageSize)&&t.maxImageSize>-1?t.maxImageSize:-1,k=t.isEvalSupported!==!1,E=typeof t.isOffscreenCanvasSupported=="boolean"?t.isOffscreenCanvasSupported:!nl,B=typeof t.isImageDecoderSupported=="boolean"?t.isImageDecoderSupported:!nl&&(us.platform.isFirefox||!globalThis.chrome),I=Number.isInteger(t.canvasMaxAreaInBytes)?t.canvasMaxAreaInBytes:-1,S=typeof t.disableFontFace=="boolean"?t.disableFontFace:nl,T=t.fontExtraProperties===!0,_=t.enableXfa===!0,O=t.ownerDocument||globalThis.document,N=t.disableRange===!0,U=t.disableStream===!0,V=t.disableAutoFetch===!0,Q=t.pdfBug===!0,$=t.CanvasFactory||(nl?gHi:hHi),be=t.FilterFactory||(nl?fHi:pHi),ce=t.enableHWA===!0,ke=t.useWasm!==!1,De=t.pagesMapper||new ZNi,pe=l?l.length:t.length??NaN,re=typeof t.useSystemFonts=="boolean"?t.useSystemFonts:!nl&&!S,ee=typeof t.useWorkerFetch=="boolean"?t.useWorkerFetch:!!(f===lye&&b===uye&&w===pye&&p&&m&&v&&Y9(p,document.baseURI)&&Y9(m,document.baseURI)&&Y9(v,document.baseURI)),se=null;RNi(u);const ne={canvasFactory:new $({ownerDocument:O,enableHWA:ce}),filterFactory:new be({docId:i,ownerDocument:O}),cMapReaderFactory:ee?null:new f({baseUrl:p,isCompressed:g}),standardFontDataFactory:ee?null:new b({baseUrl:m}),wasmFactory:ee?null:new w({baseUrl:v})};d||(d=sQ.create({verbosity:u,port:Ab.workerPort}),e._worker=d);const ge={docId:i,apiVersion:"5.5.207",data:n,password:a,disableAutoFetch:V,rangeChunkSize:c,length:pe,docBaseUrl:h,enableXfa:_,evaluatorOptions:{maxImageSize:x,disableFontFace:S,ignoreErrors:y,isEvalSupported:k,isOffscreenCanvasSupported:E,isImageDecoderSupported:B,canvasMaxAreaInBytes:I,fontExtraProperties:T,useSystemFonts:re,useWasm:ke,useWorkerFetch:ee,cMapUrl:p,iccUrl:A,standardFontDataUrl:m,wasmUrl:v}},Ae={ownerDocument:O,pdfBug:Q,styleElement:se,enableHWA:ce,loadingParams:{disableAutoFetch:V,enableXfa:_}};return d.promise.then(function(){if(e.destroyed)throw new Error("Loading aborted");if(d.destroyed)throw new Error("Worker was destroyed");const we=d.messageHandler.sendWithPromise("GetDocRequest",ge,n?[n.buffer]:null);let ze;if(l)ze=new jHi({pdfDataRangeTransport:l,disableRange:N,disableStream:U});else if(!n){if(!r)throw new Error("getDocument - no `url` parameter provided.");const K=Y9(r)?UHi:nl?KHi:VHi;ze=new K({url:r,length:pe,httpHeaders:o,withCredentials:s,rangeChunkSize:c,disableRange:N,disableStream:U})}return we.then(K=>{if(e.destroyed)throw new Error("Loading aborted");if(d.destroyed)throw new Error("Worker was destroyed");const ae=new e7(i,K,d.port),me=new tzi(ae,e,ze,Ae,ne,De);e._transport=me,ae.send("Ready",null)})}).catch(e._capability.reject),e}class AW{static#e=0;_capability=Promise.withResolvers();_transport=null;_worker=null;docId=`d${AW.#e++}`;destroyed=!1;onPassword=null;onProgress=null;get promise(){return this._capability.promise}async destroy(){this.destroyed=!0;try{this._worker?.port&&(this._worker._pendingDestroy=!0),await this._transport?.destroy()}catch(e){throw this._worker?.port&&delete this._worker._pendingDestroy,e}this._transport=null,this._worker?.destroy(),this._worker=null}async getData(){return this._transport.getData()}}class Fye{#e=Promise.withResolvers();#t=[];#r=[];#i=[];constructor(e,i,r=!1,n=null){this.length=e,this.initialData=i,this.progressiveDone=r,this.contentDispositionFilename=n,Object.defineProperty(this,"onDataProgress",{value:()=>{Q7e("`PDFDataRangeTransport.prototype.onDataProgress` - method was removed, since loading progress is now reported automatically through the `PDFDataTransportStream` class (and related code).")}})}addRangeListener(e){this.#i.push(e)}addProgressiveReadListener(e){this.#r.push(e)}addProgressiveDoneListener(e){this.#t.push(e)}onDataRange(e,i){for(const r of this.#i)r(e,i)}onDataProgressiveRead(e){this.#e.promise.then(()=>{for(const i of this.#r)i(e)})}onDataProgressiveDone(){this.#e.promise.then(()=>{for(const e of this.#t)e()})}transportReady(){this.#e.resolve()}requestDataRange(e,i){on("Abstract method PDFDataRangeTransport.requestDataRange")}abort(){}}class $Hi{constructor(e,i){this._pdfInfo=e,this._transport=i}get pagesMapper(){return this._transport.pagesMapper}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 Xi(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()}getAnnotationsByType(e,i){return this._transport.getAnnotationsByType(e,i)}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()}extractPages(e){return this._transport.extractPages(e)}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()}}class ezi{#e=!1;#t=null;constructor(e,i,r,n,o=!1){this._pageIndex=e,this._pageInfo=i,this._transport=r,this._stats=o?new G7e:null,this._pdfBug=o,this.commonObjs=r.commonObjs,this.objs=new _ye,this._intentStates=new Map,this.destroyed=!1,this.recordedBBoxes=null,this.#t=n}get pageNumber(){return this._pageIndex+1}set pageNumber(e){this._pageIndex=e-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:n=0,dontFlip:o=!1}={}){return new uy({viewBox:this.view,userUnit:this.userUnit,scale:e,rotation:i,offsetX:r,offsetY:n,dontFlip:o})}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 Xi(this,"isPureXfa",!!this._transport._htmlForXfa)}async getXfa(){return this._transport._htmlForXfa?.children[this._pageIndex]||null}render({canvasContext:e,canvas:i=e.canvas,viewport:r,intent:n="display",annotationMode:o=mf.ENABLE,transform:s=null,background:a=null,optionalContentConfigPromise:l=null,annotationCanvasMap:c=null,pageColors:d=null,printAnnotationStorage:u=null,isEditing:h=!1,recordOperations:p=!1,operationsFilter:g=null}){this._stats?.time("Overall");const f=this._transport.getRenderingIntent(n,o,u,h),{renderingIntent:A,cacheKey:m}=f;this.#e=!1,l||=this._transport.getOptionalContentConfig(A);const b=this._intentStates.getOrInsertComputed(m,VG);b.streamReaderCancelTimeout&&(clearTimeout(b.streamReaderCancelTimeout),b.streamReaderCancelTimeout=null);const v=!!(A&pc.PRINT);b.displayReadyCapability||(b.displayReadyCapability=Promise.withResolvers(),b.operatorList={fnArray:[],argsArray:[],lastChunk:!1,separateAnnots:null},this._stats?.time("Page Request"),this._pumpOperatorList(f));const w=!!(this._pdfBug&&globalThis.StepperManager?.enabled),y=!this.recordedBBoxes&&(p||w),x=B=>{if(b.renderTasks.delete(k),y){const I=k.gfx?.dependencyTracker.take();I&&(k.stepper&&k.stepper.setOperatorBBoxes(I,k.gfx.dependencyTracker.takeDebugMetadata()),p&&(this.recordedBBoxes=I))}v&&(this.#e=!0),this.#r(),B?(k.capability.reject(B),this._abortOperatorList({intentState:b,reason:B instanceof Error?B:new Error(B)})):k.capability.resolve(),this._stats&&(this._stats.timeEnd("Rendering"),this._stats.timeEnd("Overall"),globalThis.Stats?.enabled&&globalThis.Stats.add(this.pageNumber,this._stats))},k=new Wb({callback:x,params:{canvas:i,canvasContext:e,dependencyTracker:y?new wHi(i,b.operatorList.length,w):null,viewport:r,transform:s,background:a},objs:this.objs,commonObjs:this.commonObjs,annotationCanvasMap:c,operatorList:b.operatorList,pageIndex:this._pageIndex,canvasFactory:this._transport.canvasFactory,filterFactory:this._transport.filterFactory,useRequestAnimationFrame:!v,pdfBug:this._pdfBug,pageColors:d,enableHWA:this._transport.enableHWA,operationsFilter:g});(b.renderTasks||=new Set).add(k);const E=k.task;return Promise.all([b.displayReadyCapability.promise,l]).then(([B,I])=>{if(this.destroyed){x();return}if(this._stats?.time("Rendering"),!(I.renderingIntent&A))throw new Error("Must use the same `intent`-argument when calling the `PDFPageProxy.render` and `PDFDocumentProxy.getOptionalContentConfig` methods.");k.initializeGraphics({transparency:B,optionalContentConfig:I}),k.operatorListChanged()}).catch(x),E}getOperatorList({intent:e="display",annotationMode:i=mf.ENABLE,printAnnotationStorage:r=null,isEditing:n=!1}={}){function o(){a.operatorList.lastChunk&&(a.opListReadCapability.resolve(a.operatorList),a.renderTasks.delete(l))}const s=this._transport.getRenderingIntent(e,i,r,n,!0),a=this._intentStates.getOrInsertComputed(s.cacheKey,VG);let l;return a.opListReadCapability||(l=Object.create(null),l.operatorListChanged=o,a.opListReadCapability=Promise.withResolvers(),(a.renderTasks||=new Set).add(l),a.operatorList={fnArray:[],argsArray:[],lastChunk:!1,separateAnnots:null},this._stats?.time("Page Request"),this._pumpOperatorList(s)),a.opListReadCapability.promise}streamTextContent({includeMarkedContent:e=!1,disableNormalization:i=!1}={}){return this._transport.messageHandler.sendWithStream("GetTextContent",{pageId:this.#t.getPageId(this._pageIndex+1)-1,pageIndex:this._pageIndex,includeMarkedContent:e===!0,disableNormalization:i===!0},{highWaterMark:100,size(r){return r.items.length}})}async getTextContent(e={}){if(this._transport._htmlForXfa)return this.getXfa().then(n=>dy.textContent(n));const i=this.streamTextContent(e),r={items:[],styles:Object.create(null),lang:null};for await(const n of i)r.lang??=n.lang,Object.assign(r.styles,n.styles),r.items.push(...n.items);return r}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(),this.#e=!1,Promise.all(e)}cleanup(e=!1){this.#e=!0;const i=this.#r();return e&&i&&(this._stats&&=new G7e),i}#r(){if(!this.#e||this.destroyed)return!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(),this.#e=!1,!0}_startRenderPage(e,i){const r=this._intentStates.get(i);r&&(this._stats?.timeEnd("Page Request"),r.displayReadyCapability?.resolve(e))}_renderPageChunk(e,i){for(let r=0,n=e.length;r<n;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&&this.#r()}_pumpOperatorList({renderingIntent:e,cacheKey:i,annotationStorageSerializable:r,modifiedIds:n}){const{map:o,transfer:s}=r,a=this._transport.messageHandler.sendWithStream("GetOperatorList",{pageId:this.#t.getPageId(this._pageIndex+1)-1,pageIndex:this._pageIndex,intent:e,cacheKey:i,annotationStorage:o,modifiedIds:n},void 0,s).getReader(),l=this._intentStates.get(i);l.streamReader=a;const c=()=>{a.read().then(({value:d,done:u})=>{if(u){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 u of l.renderTasks)u.operatorListChanged();this.#r()}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 GG){let n=XHi;i.extraDelay>0&&i.extraDelay<1e3&&(n+=i.extraDelay),e.streamReaderCancelTimeout=setTimeout(()=>{e.streamReaderCancelTimeout=null,this._abortOperatorList({intentState:e,reason:i,force:!0})},n);return}}if(e.streamReader.cancel(new Af(i.message)).catch(()=>{}),e.streamReader=null,!this._transport.destroyed){for(const[n,o]of this._intentStates)if(o===e){this._intentStates.delete(n);break}this.cleanup()}}}get stats(){return this._stats}}var Eg,Zu,vf,bb,oQ,wb,yb,zd,xI,Oye,qye,r7,n7,CI;const hs=class oy{constructor({name:e=null,port:i=null,verbosity:r=DNi()}={}){if(Ah(this,zd),Ah(this,Eg,Promise.withResolvers()),Ah(this,Zu,null),Ah(this,vf,null),Ah(this,bb,null),this.name=e,this.destroyed=!1,this.verbosity=r,i){if(so(oy,yb).has(i))throw new Error("Cannot use more than one PDFWorker per port.");so(oy,yb).set(i,this),vh(this,zd,Oye).call(this,i)}else vh(this,zd,qye).call(this)}get promise(){return so(this,Eg).promise}get port(){return so(this,vf)}get messageHandler(){return so(this,Zu)}destroy(){this.destroyed=!0,so(this,bb)?.terminate(),zl(this,bb,null),so(oy,yb).delete(so(this,vf)),zl(this,vf,null),so(this,Zu)?.destroy(),zl(this,Zu,null)}static create(e){const i=so(this,yb).get(e?.port);if(i){if(i._pendingDestroy)throw new Error("PDFWorker.create - the worker is being destroyed.\nPlease remember to await `PDFDocumentLoadingTask.destroy()`-calls.");return i}return new oy(e)}static get workerSrc(){if(Ab.workerSrc)return Ab.workerSrc;throw new Error('No "GlobalWorkerOptions.workerSrc" specified.')}static get _setupFakeWorkerGlobal(){return Xi(this,"_setupFakeWorkerGlobal",(async()=>so(this,n7,CI)?so(this,n7,CI):(await import(this.workerSrc)).WorkerMessageHandler)())}};Eg=new WeakMap,Zu=new WeakMap,vf=new WeakMap,bb=new WeakMap,oQ=new WeakMap,wb=new WeakMap,yb=new WeakMap,zd=new WeakSet,xI=function(){so(this,Eg).resolve(),so(this,Zu).send("configure",{verbosity:this.verbosity})},Oye=function(t){zl(this,vf,t),zl(this,Zu,new e7("main","worker",t)),so(this,Zu).on("ready",()=>{}),vh(this,zd,xI).call(this)},qye=function(){if(so(hs,wb)||so(hs,n7,CI)){vh(this,zd,r7).call(this);return}let{workerSrc:t}=hs;try{hs._isSameOrigin(window.location,t)||(t=hs._createCDNWrapper(new URL(t,window.location).href));const e=new Worker(t,{type:"module"}),i=new e7("main","worker",e),r=()=>{n.abort(),i.destroy(),e.terminate(),this.destroyed?so(this,Eg).reject(new Error("Worker was destroyed")):vh(this,zd,r7).call(this)},n=new AbortController;e.addEventListener("error",()=>{so(this,bb)||r()},{signal:n.signal}),i.on("test",s=>{if(n.abort(),this.destroyed||!s){r();return}zl(this,Zu,i),zl(this,vf,e),zl(this,bb,e),vh(this,zd,xI).call(this)}),i.on("ready",s=>{if(n.abort(),this.destroyed){r();return}try{o()}catch{vh(this,zd,r7).call(this)}});const o=()=>{const s=new Uint8Array;i.send("test",s,[s.buffer])};o();return}catch{nI("The worker has been disabled.")}vh(this,zd,r7).call(this)},r7=function(){so(hs,wb)||(rr("Setting up fake worker."),zl(hs,wb,!0)),hs._setupFakeWorkerGlobal.then(t=>{if(this.destroyed){so(this,Eg).reject(new Error("Worker was destroyed"));return}const e=new uHi;zl(this,vf,e);const i=`fake${WEe(hs,oQ)._++}`,r=new e7(i+"_worker",i,e);t.setup(r,e),zl(this,Zu,new e7(i,i+"_worker",e)),vh(this,zd,xI).call(this)}).catch(t=>{so(this,Eg).reject(new Error(`Setting up fake worker failed: "${t.message}".`))})},n7=new WeakSet,CI=function(){try{return globalThis.pdfjsWorker?.WorkerMessageHandler||null}catch{return null}},Ah(hs,n7),Ah(hs,oQ,0),Ah(hs,wb,!1),Ah(hs,yb,new WeakMap),nl&&(zl(hs,wb,!0),Ab.workerSrc||="./pdf.worker.mjs"),hs._isSameOrigin=(t,e)=>{const i=URL.parse(t);if(!i?.origin||i.origin==="null")return!1;const r=new URL(e,i);return i.origin===r.origin},hs._createCDNWrapper=t=>{const e=`await import("${t}");`;return URL.createObjectURL(new Blob([e],{type:"text/javascript"}))},hs.fromPort=t=>{if(Q7e("`PDFWorker.fromPort` - please use `PDFWorker.create` instead."),!t?.port)throw new Error("PDFWorker.fromPort - invalid method signature.");return hs.create(t)};let sQ=hs;class tzi{downloadInfoCapability=Promise.withResolvers();#e=null;#t=new Map;#r=null;#i=new Map;#n=new Map;#o=new Map;#s=null;#a=null;constructor(e,i,r,n,o,s){this.messageHandler=e,this.loadingTask=i,this.#r=r,this.commonObjs=new _ye,this.fontLoader=new iHi({ownerDocument:n.ownerDocument,styleElement:n.styleElement}),this.enableHWA=n.enableHWA,this.loadingParams=n.loadingParams,this._params=n,this.canvasFactory=o.canvasFactory,this.filterFactory=o.filterFactory,this.cMapReaderFactory=o.cMapReaderFactory,this.standardFontDataFactory=o.standardFontDataFactory,this.wasmFactory=o.wasmFactory,this.destroyed=!1,this.destroyCapability=null,this.setupMessageHandler(),this.pagesMapper=s,this.pagesMapper.addListener(this.#l.bind(this))}#l({type:e,pageNumbers:i}){if(e==="copy"){this.#a=new Map;for(const s of i)this.#a.set(s,{proxy:this.#i.get(s-1)||null,promise:this.#n.get(s-1)||null});return}if(e==="delete")for(const s of i)this.#i.delete(s-1),this.#n.delete(s-1);const r=new Map,n=new Map,{pagesMapper:o}=this;for(let s=0,a=o.pagesNumber;s<a;s++){const l=o.getPrevPageNumber(s+1);if(l<0){const{proxy:h,promise:p}=this.#a?.get(-l)||{};h&&r.set(s,h),p&&n.set(s,p);continue}const c=l-1,d=this.#i.get(c);d&&r.set(s,d);const u=this.#n.get(c);u&&n.set(s,u)}this.#i=r,this.#n=n}#c(e,i=null){return this.#t.getOrInsertComputed(e,()=>this.messageHandler.sendWithPromise(e,i))}#d({loaded:e,total:i}){this.loadingTask.onProgress?.({loaded:e,total:i,percent:Es(Math.round(e/i*100),0,100)})}get annotationStorage(){return Xi(this,"annotationStorage",new YG)}getRenderingIntent(e,i=mf.ENABLE,r=null,n=!1,o=!1){let s=pc.DISPLAY,a=$9;switch(e){case"any":s=pc.ANY;break;case"display":break;case"print":s=pc.PRINT;break;default:rr(`getRenderingIntent - invalid intent: ${e}`)}const l=s&pc.PRINT&&r instanceof iye?r:this.annotationStorage;switch(i){case mf.DISABLE:s+=pc.ANNOTATIONS_DISABLE;break;case mf.ENABLE:break;case mf.ENABLE_FORMS:s+=pc.ANNOTATIONS_FORMS;break;case mf.ENABLE_STORAGE:s+=pc.ANNOTATIONS_STORAGE,a=l.serializable;break;default:rr(`getRenderingIntent - invalid annotationMode: ${i}`)}n&&(s+=pc.IS_EDITING),o&&(s+=pc.OPLIST);const{ids:c,hash:d}=l.modifiedIds,u=[s,a.hash,d];return{renderingIntent:s,cacheKey:u.join("_"),annotationStorageSerializable:a,modifiedIds:c}}destroy(){if(this.destroyCapability)return this.destroyCapability.promise;this.destroyed=!0,this.destroyCapability=Promise.withResolvers(),this.#s?.reject(new Error("Worker was destroyed during onPassword callback"));const e=[];for(const r of this.#i.values())e.push(r._destroy());this.#i.clear(),this.#n.clear(),this.#o.clear(),this.hasOwnProperty("annotationStorage")&&this.annotationStorage.resetModified();const i=this.messageHandler.sendWithPromise("Terminate",null);return e.push(i),Promise.all(e).then(()=>{this.commonObjs.clear(),this.fontLoader.clear(),this.#t.clear(),this.filterFactory.destroy(),xc.cleanup(),this.#r?.cancelAllRequests(new Af("Worker was terminated.")),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,n)=>{Yr(this.#r,"GetReader - no `BasePDFStream` instance available."),this.#e=this.#r.getFullReader(),this.#e.onProgress=o=>this.#d(o),n.onPull=()=>{this.#e.read().then(function({value:o,done:s}){if(s){n.close();return}Yr(o instanceof ArrayBuffer,"GetReader - expected an ArrayBuffer."),n.enqueue(new Uint8Array(o),1,[o])}).catch(o=>{n.error(o)})},n.onCancel=o=>{this.#e.cancel(o),n.ready.catch(s=>{if(!this.destroyed)throw s})}}),e.on("ReaderHeadersReady",async r=>{await this.#e.headersReady;const{isStreamingSupported:n,isRangeSupported:o,contentLength:s}=this.#e;return n&&o&&(this.#e.onProgress=null),{isStreamingSupported:n,isRangeSupported:o,contentLength:s}}),e.on("GetRangeReader",(r,n)=>{Yr(this.#r,"GetRangeReader - no `BasePDFStream` instance available.");const o=this.#r.getRangeReader(r.begin,r.end);if(!o){n.close();return}n.onPull=()=>{o.read().then(function({value:s,done:a}){if(a){n.close();return}Yr(s instanceof ArrayBuffer,"GetRangeReader - expected an ArrayBuffer."),n.enqueue(new Uint8Array(s),1,[s])}).catch(s=>{n.error(s)})},n.onCancel=s=>{o.cancel(s),n.ready.catch(a=>{if(!this.destroyed)throw a})}}),e.on("GetDoc",({pdfInfo:r})=>{this.pagesMapper.pagesNumber=r.numPages,this._numPages=r.numPages,this._htmlForXfa=r.htmlForXfa,delete r.htmlForXfa,i._capability.resolve(new $Hi(r,this))}),e.on("DocException",r=>{i._capability.reject(Dl(r))}),e.on("PasswordRequest",r=>{this.#s=Promise.withResolvers();try{if(!i.onPassword)throw Dl(r);const n=o=>{o instanceof Error?this.#s.reject(o):this.#s.resolve({password:o})};i.onPassword(n,r.code)}catch(n){this.#s.reject(n)}return this.#s.promise}),e.on("DataLoaded",r=>{this.#d({loaded:r.length,total:r.length}),this.downloadInfoCapability.resolve(r)}),e.on("StartRenderPage",r=>{this.destroyed||this.#i.get(r.pageIndex)._startRenderPage(r.transparency,r.cacheKey)}),e.on("commonobj",([r,n,o])=>{if(this.destroyed||this.commonObjs.has(r))return null;switch(n){case"Font":if("error"in o){const u=o.error;rr(`Error during font loading: ${u}`),this.commonObjs.resolve(r,u);break}const s=new nHi(o),a=this._params.pdfBug&&globalThis.FontInspector?.enabled?(u,h)=>globalThis.FontInspector.fontAdded(u,h):null,l=new rHi(s,a,o.extra,o.charProcOperatorList);this.fontLoader.bind(l).catch(()=>e.sendWithPromise("FontFallback",{id:r})).finally(()=>{!l.fontExtraProperties&&l.data&&l.clearData(),this.commonObjs.resolve(r,l)});break;case"CopyLocalImage":const{imageRef:c}=o;Yr(c,"The imageRef must be defined.");for(const u of this.#i.values())for(const[,h]of u.objs)if(h?.ref===c)return h.dataLen?(this.commonObjs.resolve(r,structuredClone(h)),h.dataLen):null;break;case"FontPath":this.commonObjs.resolve(r,new sHi(o));break;case"Image":this.commonObjs.resolve(r,o);break;case"Pattern":const d=new oHi(o);this.commonObjs.resolve(r,d.getIR());break;default:throw new Error(`Got unknown common object type ${n}`)}return null}),e.on("obj",([r,n,o,s])=>{if(this.destroyed)return;const a=this.#i.get(n);if(!a.objs.has(r)){if(a._intentStates.size===0){s?.bitmap?.close();return}switch(o){case"Image":case"Pattern":a.objs.resolve(r,s);break;default:throw new Error(`Got unknown object type ${o}`)}}}),e.on("DocProgress",r=>{this.destroyed||this.#d(r)}),e.on("FetchBinaryData",async r=>{if(this.destroyed)throw new Error("Worker was destroyed.");const n=this[r.type];if(!n)throw new Error(`${r.type} not initialized, see the \`useWorkerFetch\` parameter.`);return n.fetch(r)})}getData(){return this.messageHandler.sendWithPromise("GetData",null)}saveDocument(){this.annotationStorage.size<=0&&rr("saveDocument called while `annotationStorage` is empty, please use the getData-method instead.");const{map:e,transfer:i}=this.annotationStorage.serializable;return this.messageHandler.sendWithPromise("SaveDocument",{isPureXfa:!!this._htmlForXfa,numPages:this._numPages,annotationStorage:e,filename:this.#e?.filename??null},i).finally(()=>{this.annotationStorage.resetModified()})}extractPages(e){return this.messageHandler.sendWithPromise("ExtractPages",{pageInfos:e})}getPage(e){if(!Number.isInteger(e)||e<=0||e>this.pagesMapper.pagesNumber)return Promise.reject(new Error("Invalid page request."));const i=e-1,r=this.pagesMapper.getPageId(e)-1,n=this.#n.get(i);if(n)return n;const o=this.messageHandler.sendWithPromise("GetPage",{pageIndex:r}).then(s=>{if(this.destroyed)throw new Error("Transport destroyed");s.refStr&&this.#o.set(s.refStr,r);const a=new ezi(i,s,this,this.pagesMapper,this._params.pdfBug);return this.#i.set(i,a),a});return this.#n.set(i,o),o}async getPageIndex(e){if(!ZG(e))throw new Error("Invalid pageIndex request.");const i=await this.messageHandler.sendWithPromise("GetPageIndex",{num:e.num,gen:e.gen}),r=this.pagesMapper.getPageNumber(i+1);if(r===0)throw new Error("GetPageIndex: page has been removed.");return r-1}getAnnotations(e,i){return this.messageHandler.sendWithPromise("GetAnnotations",{pageIndex:this.pagesMapper.getPageId(e+1)-1,intent:i})}getFieldObjects(){return this.#c("GetFieldObjects")}hasJSActions(){return this.#c("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)}getAnnotationsByType(e,i){return this.messageHandler.sendWithPromise("GetAnnotationsByType",{types:e,pageIndexesToSkip:i})}getDocJSActions(){return this.#c("GetDocJSActions")}getPageJSActions(e){return this.messageHandler.sendWithPromise("GetPageJSActions",{pageIndex:this.pagesMapper.getPageId(e+1)-1})}getStructTree(e){return this.messageHandler.sendWithPromise("GetStructTree",{pageIndex:this.pagesMapper.getPageId(e+1)-1})}getOutline(){return this.messageHandler.sendWithPromise("GetOutline",null)}getOptionalContentConfig(e){return this.#c("GetOptionalContentConfig").then(i=>new LHi(i,e))}getPermissions(){return this.messageHandler.sendWithPromise("GetPermissions",null)}getMetadata(){const e="GetMetadata";return this.#t.getOrInsertComputed(e,()=>this.messageHandler.sendWithPromise(e,null).then(i=>({info:i[0],metadata:i[1]?new DHi(i[1]):null,contentDispositionFilename:this.#e?.filename??null,contentLength:this.#e?.contentLength??null,hasStructTree:i[2]})))}getMarkInfo(){return this.messageHandler.sendWithPromise("GetMarkInfo",null)}async startCleanup(e=!1){if(!this.destroyed){await this.messageHandler.sendWithPromise("Cleanup",null);for(const i of this.#i.values())if(!i.cleanup())throw new Error(`startCleanup: Page ${i.pageNumber} is currently rendering.`);this.commonObjs.clear(),e||this.fontLoader.clear(),this.#t.clear(),this.filterFactory.destroy(!0),xc.cleanup()}}cachedPageNumber(e){if(!ZG(e))return null;const i=e.gen===0?`${e.num}R`:`${e.num}R${e.gen}`,r=this.#o.get(i);if(r>=0){const n=this.pagesMapper.getPageNumber(r+1);if(n!==0)return n}return null}}class izi{_internalRenderTask=null;onContinue=null;onError=null;constructor(e){this._internalRenderTask=e}get promise(){return this._internalRenderTask.capability.promise}cancel(e=0){this._internalRenderTask.cancel(null,e)}get separateAnnots(){const{separateAnnots:e}=this._internalRenderTask.operatorList;if(!e)return!1;const{annotationCanvasMap:i}=this._internalRenderTask;return e.form||e.canvas&&i?.size>0}}class Wb{#e=null;static#t=new WeakSet;constructor({callback:e,params:i,objs:r,commonObjs:n,annotationCanvasMap:o,operatorList:s,pageIndex:a,canvasFactory:l,filterFactory:c,useRequestAnimationFrame:d=!1,pdfBug:u=!1,pageColors:h=null,enableHWA:p=!1,operationsFilter:g=null}){this.callback=e,this.params=i,this.objs=r,this.commonObjs=n,this.annotationCanvasMap=o,this.operatorListIdx=null,this.operatorList=s,this._pageIndex=a,this.canvasFactory=l,this.filterFactory=c,this._pdfBug=u,this.pageColors=h,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 izi(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.canvas,this._canvasContext=i.canvas?null:i.canvasContext,this._enableHWA=p,this._dependencyTracker=i.dependencyTracker,this._operationsFilter=g}get completed(){return this.capability.promise.catch(function(){})}initializeGraphics({transparency:e=!1,optionalContentConfig:i}){if(this.cancelled)return;if(this._canvas){if(Wb.#t.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.");Wb.#t.add(this._canvas)}this._pdfBug&&globalThis.StepperManager?.enabled&&(this.stepper=globalThis.StepperManager.create(this._pageIndex),this.stepper.init(this.operatorList),this.stepper.nextBreakPoint=this.stepper.getNextBreakPoint());const{viewport:r,transform:n,background:o,dependencyTracker:s}=this.params,a=this._canvasContext||this._canvas.getContext("2d",{alpha:!1,willReadFrequently:!this._enableHWA});this.gfx=new Kb(a,this.commonObjs,this.objs,this.canvasFactory,this.filterFactory,{optionalContentConfig:i},this.annotationCanvasMap,this.pageColors,s),this.gfx.beginDrawing({transform:n,viewport:r,transparency:e,background:o}),this.operatorListIdx=0,this.graphicsReady=!0,this.graphicsReadyCallback?.()}cancel(e=null,i=0){this.running=!1,this.cancelled=!0,this.gfx?.endDrawing(),this.#e&&(window.cancelAnimationFrame(this.#e),this.#e=null),Wb.#t.delete(this._canvas),e||=new GG(`Rendering cancelled, page ${this._pageIndex+1}`,i),this.callback(e),this.task.onError?.(e)}operatorListChanged(){if(!this.graphicsReady){this.graphicsReadyCallback||=this._continueBound;return}this.gfx.dependencyTracker?.growOperationsCount(this.operatorList.fnArray.length),this.stepper?.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?this.#e=window.requestAnimationFrame(()=>{this.#e=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._operationsFilter),this.operatorListIdx===this.operatorList.argsArray.length&&(this.running=!1,this.operatorList.lastChunk&&(this.gfx.endDrawing(),Wb.#t.delete(this._canvas),this.callback())))}}const rzi="5.5.207",nzi="527964698";class ld{#e=null;#t=null;#r;#i=null;#n=!1;#o=!1;#s=null;#a;#l=null;#c=null;static#d=null;static get _keyboardManager(){return Xi(this,"_keyboardManager",new X9([[["Escape","mac+Escape"],ld.prototype._hideDropdownFromKeyboard],[[" ","mac+ "],ld.prototype._colorSelectFromKeyboard],[["ArrowDown","ArrowRight","mac+ArrowDown","mac+ArrowRight"],ld.prototype._moveToNext],[["ArrowUp","ArrowLeft","mac+ArrowUp","mac+ArrowLeft"],ld.prototype._moveToPrevious],[["Home","mac+Home"],ld.prototype._moveToBeginning],[["End","mac+End"],ld.prototype._moveToEnd]]))}constructor({editor:e=null,uiManager:i=null}){e?(this.#o=!1,this.#s=e):this.#o=!0,this.#c=e?._uiManager||i,this.#a=this.#c._eventBus,this.#r=e?.color?.toUpperCase()||this.#c?.highlightColors.values().next().value||"#FFFF98",ld.#d||=Object.freeze({blue:"pdfjs-editor-colorpicker-blue",green:"pdfjs-editor-colorpicker-green",pink:"pdfjs-editor-colorpicker-pink",red:"pdfjs-editor-colorpicker-red",yellow:"pdfjs-editor-colorpicker-yellow"})}renderButton(){const e=this.#e=document.createElement("button");e.className="colorPicker",e.tabIndex="0",e.setAttribute("data-l10n-id","pdfjs-editor-colorpicker-button"),e.ariaHasPopup="true",this.#s&&(e.ariaControls=`${this.#s.id}_colorpicker_dropdown`);const i=this.#c._signal;e.addEventListener("click",this.#g.bind(this),{signal:i}),e.addEventListener("keydown",this.#m.bind(this),{signal:i});const r=this.#t=document.createElement("span");return r.className="swatch",r.ariaHidden="true",r.style.backgroundColor=this.#r,e.append(r),e}renderMainDropdown(){const e=this.#i=this.#h();return e.ariaOrientation="horizontal",e.ariaLabelledBy="highlightColorPickerLabel",e}#h(){const e=document.createElement("div"),i=this.#c._signal;e.addEventListener("contextmenu",Jc,{signal:i}),e.className="dropdown",e.role="listbox",e.ariaMultiSelectable="false",e.ariaOrientation="vertical",e.setAttribute("data-l10n-id","pdfjs-editor-colorpicker-dropdown"),this.#s&&(e.id=`${this.#s.id}_colorpicker_dropdown`);for(const[r,n]of this.#c.highlightColors){const o=document.createElement("button");o.tabIndex="0",o.role="option",o.setAttribute("data-color",n),o.title=r,o.setAttribute("data-l10n-id",ld.#d[r]);const s=document.createElement("span");o.append(s),s.className="swatch",s.style.backgroundColor=n,o.ariaSelected=n===this.#r,o.addEventListener("click",this.#p.bind(this,n),{signal:i}),e.append(o)}return e.addEventListener("keydown",this.#m.bind(this),{signal:i}),e}#p(e,i){i.stopPropagation(),this.#a.dispatch("switchannotationeditorparams",{source:this,type:Rr.HIGHLIGHT_COLOR,value:e}),this.updateColor(e)}_colorSelectFromKeyboard(e){if(e.target===this.#e){this.#g(e);return}const i=e.target.getAttribute("data-color");i&&this.#p(i,e)}_moveToNext(e){if(!this.#f){this.#g(e);return}if(e.target===this.#e){this.#i.firstElementChild?.focus();return}e.target.nextSibling?.focus()}_moveToPrevious(e){if(e.target===this.#i?.firstElementChild||e.target===this.#e){this.#f&&this._hideDropdownFromKeyboard();return}this.#f||this.#g(e),e.target.previousSibling?.focus()}_moveToBeginning(e){if(!this.#f){this.#g(e);return}this.#i.firstElementChild?.focus()}_moveToEnd(e){if(!this.#f){this.#g(e);return}this.#i.lastElementChild?.focus()}#m(e){ld._keyboardManager.exec(this,e)}#g(e){if(this.#f){this.hideDropdown();return}if(this.#n=e.detail===0,this.#l||(this.#l=new AbortController,window.addEventListener("pointerdown",this.#u.bind(this),{signal:this.#c.combinedSignal(this.#l)})),this.#e.ariaExpanded="true",this.#i){this.#i.classList.remove("hidden");return}const i=this.#i=this.#h();this.#e.append(i)}#u(e){this.#i?.contains(e.target)||this.hideDropdown()}hideDropdown(){this.#i?.classList.add("hidden"),this.#e.ariaExpanded="false",this.#l?.abort(),this.#l=null}get#f(){return this.#i&&!this.#i.classList.contains("hidden")}_hideDropdownFromKeyboard(){if(!this.#o){if(!this.#f){this.#s?.unselect();return}this.hideDropdown(),this.#e.focus({preventScroll:!0,focusVisible:this.#n})}}updateColor(e){if(this.#t&&(this.#t.style.backgroundColor=e),!this.#i)return;const i=this.#c.highlightColors.values();for(const r of this.#i.children)r.ariaSelected=i.next().value===e.toUpperCase()}destroy(){this.#e?.remove(),this.#e=null,this.#t=null,this.#i?.remove(),this.#i=null}}class wy{#e=null;#t=null;#r=null;static#i=null;constructor(e){this.#t=e,this.#r=e._uiManager,wy.#i||=Object.freeze({freetext:"pdfjs-editor-color-picker-free-text-input",ink:"pdfjs-editor-color-picker-ink-input"})}renderButton(){if(this.#e)return this.#e;const{editorType:e,colorType:i,color:r}=this.#t,n=this.#e=document.createElement("input");return n.type="color",n.value=r||"#000000",n.className="basicColorPicker",n.tabIndex=0,n.setAttribute("data-l10n-id",wy.#i[e]),n.addEventListener("input",()=>{this.#r.updateParams(i,n.value)},{signal:this.#r._signal}),n}update(e){this.#e&&(this.#e.value=e)}destroy(){this.#e?.remove(),this.#e=null}hideDropdown(){}}function Uye(t){return Math.floor(Math.max(0,Math.min(1,t))*255).toString(16).padStart(2,"0")}function o7(t){return Math.max(0,Math.min(255,255*t))}class Nye{static CMYK_G([e,i,r,n]){return["G",1-Math.min(1,.3*e+.59*r+.11*i+n)]}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=o7(e),[e,e,e]}static G_HTML([e]){const i=Uye(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(o7)}static RGB_HTML(e){return`#${e.map(Uye).join("")}`}static T_HTML(){return"#00000000"}static T_rgb(){return[null]}static CMYK_RGB([e,i,r,n]){return["RGB",1-Math.min(1,e+n),1-Math.min(1,r+n),1-Math.min(1,i+n)]}static CMYK_rgb([e,i,r,n]){return[o7(1-Math.min(1,e+n)),o7(1-Math.min(1,r+n)),o7(1-Math.min(1,i+n))]}static CMYK_HTML(e){const i=this.CMYK_RGB(e).slice(1);return this.RGB_HTML(i)}static RGB_CMYK([e,i,r]){const n=1-e,o=1-i,s=1-r,a=Math.min(n,o,s);return["CMYK",n,o,s,a]}}class ozi{create(e,i,r=!1){if(e<=0||i<=0)throw new Error("Invalid SVG dimensions");const n=this._createSVG("svg:svg");return n.setAttribute("version","1.1"),r||(n.setAttribute("width",`${e}px`),n.setAttribute("height",`${i}px`)),n.setAttribute("preserveAspectRatio","none"),n.setAttribute("viewBox",`0 0 ${e} ${i}`),n}createElement(e){if(typeof e!="string")throw new Error("Invalid SVG element type");return this._createSVG(e)}_createSVG(e){on("Abstract method `_createSVG` called.")}}class kI extends ozi{_createSVG(e){return document.createElementNS(Pp,e)}}const szi=9,Bg=new WeakSet,azi=new Date().getTimezoneOffset()*60*1e3;class aQ{static create(e){switch(e.data.annotationType){case Xo.LINK:return new lQ(e);case Xo.TEXT:return new czi(e);case Xo.WIDGET:switch(e.data.fieldType){case"Tx":return new dzi(e);case"Btn":return e.data.radioButton?new Hye(e):e.data.checkBox?new hzi(e):new pzi(e);case"Ch":return new fzi(e);case"Sig":return new uzi(e)}return new Pg(e);case Xo.POPUP:return new cQ(e);case Xo.FREETEXT:return new zye(e);case Xo.LINE:return new mzi(e);case Xo.SQUARE:return new Azi(e);case Xo.CIRCLE:return new vzi(e);case Xo.POLYLINE:return new Vye(e);case Xo.CARET:return new wzi(e);case Xo.INK:return new dQ(e);case Xo.POLYGON:return new bzi(e);case Xo.HIGHLIGHT:return new Gye(e);case Xo.UNDERLINE:return new yzi(e);case Xo.SQUIGGLY:return new xzi(e);case Xo.STRIKEOUT:return new Czi(e);case Xo.STAMP:return new Qye(e);case Xo.FILEATTACHMENT:return new kzi(e);default:return new fo(e)}}}class fo{#e=null;#t=!1;#r=null;constructor(e,{isRenderable:i=!1,ignoreBorder:r=!1,createQuadrilaterals:n=!1}={}){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.enableComment=e.enableComment,this.enableScripting=e.enableScripting,this.hasJSActions=e.hasJSActions,this._fieldObjects=e.fieldObjects,this.parent=e.parent,this.hasOwnCommentButton=!1,i&&(this.contentElement=this.container=this._createContainer(r)),n&&this._createQuadrilaterals()}static _hasPopupData({contentsObj:e,richText:i}){return!!(e?.str||i?.str)}get _isEditable(){return this.data.isEditable}get hasPopupData(){return fo._hasPopupData(this.data)||this.enableComment&&!!this.commentText}get commentData(){const{data:e}=this,i=this.annotationStorage?.getEditor(e.id);return i?i.getData():e}get hasCommentButton(){return this.enableComment&&this.hasPopupElement}get commentButtonPosition(){const e=this.annotationStorage?.getEditor(this.data.id);if(e)return e.commentButtonPositionInPage;const{quadPoints:i,inkLists:r,rect:n}=this.data;let o=-1/0,s=-1/0;if(i?.length>=8){for(let a=0;a<i.length;a+=8)i[a+1]>s?(s=i[a+1],o=i[a+2]):i[a+1]===s&&(o=Math.max(o,i[a+2]));return[o,s]}if(r?.length>=1){for(const a of r)for(let l=0,c=a.length;l<c;l+=2)a[l+1]>s?(s=a[l+1],o=a[l]):a[l+1]===s&&(o=Math.max(o,a[l]));if(o!==1/0)return[o,s]}return n?[n[2],n[3]]:null}_normalizePoint(e){const{page:{view:i},viewport:{rawDims:{pageWidth:r,pageHeight:n,pageX:o,pageY:s}}}=this.parent;return e[1]=i[3]-e[1]+i[1],e[0]=100*(e[0]-o)/r,e[1]=100*(e[1]-s)/n,e}get commentText(){const{data:e}=this;return this.annotationStorage.getRawValue(`${Q9}${e.id}`)?.popup?.contents||e.contentsObj?.str||""}set commentText(e){const{data:i}=this,r={deleted:!e,contents:e||""};this.annotationStorage.updateEditor(i.id,{popup:r})||this.annotationStorage.setValue(`${Q9}${i.id}`,{id:i.id,annotationType:i.annotationType,page:this.parent.page,popup:r,popupRef:i.popupRef,modificationDate:new Date}),e||this.removePopup()}removePopup(){(this.#r?.popup||this.popup)?.remove(),this.#r=this.popup=null}updateEdited(e){if(!this.container)return;e.rect&&(this.#e||={rect:this.data.rect.slice(0)});const{rect:i,popup:r}=e;i&&this.#i(i);let n=this.#r?.popup||this.popup;!n&&r?.text&&(this._createPopup(r),n=this.#r.popup),n&&(n.updateEdited(e),r?.deleted&&(n.remove(),this.#r=null,this.popup=null))}resetEdited(){this.#e&&(this.#i(this.#e.rect),this.#r?.popup.resetEdited(),this.#e=null)}#i(e){const{container:{style:i},data:{rect:r,rotation:n},parent:{viewport:{rawDims:{pageWidth:o,pageHeight:s,pageX:a,pageY:l}}}}=this;r?.splice(0,4,...e),i.left=`${100*(e[0]-a)/o}%`,i.top=`${100*(s-e[3]+l)/s}%`,n===0?(i.width=`${100*(e[2]-e[0])/o}%`,i.height=`${100*(e[3]-e[1])/s}%`):this.setRotation(n)}_createContainer(e){const{data:i,parent:{page:r,viewport:n}}=this,o=document.createElement("section");o.setAttribute("data-annotation-id",i.id),!(this instanceof Pg)&&!(this instanceof lQ)&&(o.tabIndex=0);const{style:s}=o;if(s.zIndex=this.parent.zIndex,this.parent.zIndex+=2,i.alternativeText&&(o.title=i.alternativeText),i.noRotate&&o.classList.add("norotate"),!i.rect||this instanceof cQ){const{rotation:f}=i;return!i.hasOwnCanvas&&f!==0&&this.setRotation(f,o),o}const{width:a,height:l}=this;if(!e&&i.borderStyle.width>0){s.borderWidth=`${i.borderStyle.width}px`;const f=i.borderStyle.horizontalCornerRadius,A=i.borderStyle.verticalCornerRadius;if(f>0||A>0){const b=`calc(${f}px * var(--total-scale-factor)) / calc(${A}px * var(--total-scale-factor))`;s.borderRadius=b}else if(this instanceof Hye){const b=`calc(${a}px * var(--total-scale-factor)) / calc(${l}px * var(--total-scale-factor))`;s.borderRadius=b}switch(i.borderStyle.style){case hb.SOLID:s.borderStyle="solid";break;case hb.DASHED:s.borderStyle="dashed";break;case hb.BEVELED:rr("Unimplemented border style: beveled");break;case hb.INSET:rr("Unimplemented border style: inset");break;case hb.UNDERLINE:s.borderBottomStyle="solid";break}const m=i.borderColor||null;m?(this.#t=!0,s.borderColor=li.makeHexColor(m[0]|0,m[1]|0,m[2]|0)):s.borderWidth=0}const c=li.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:u,pageX:h,pageY:p}=n.rawDims;s.left=`${100*(c[0]-h)/d}%`,s.top=`${100*(c[1]-p)/u}%`;const{rotation:g}=i;return i.hasOwnCanvas||g===0?(s.width=`${100*a/d}%`,s.height=`${100*l/u}%`):this.setRotation(g,o),o}setRotation(e,i=this.container){if(!this.data.rect)return;const{pageWidth:r,pageHeight:n}=this.parent.viewport.rawDims;let{width:o,height:s}=this;e%180!==0&&([o,s]=[s,o]),i.style.width=`${100*o/r}%`,i.style.height=`${100*s/n}%`,i.setAttribute("data-main-rotation",(360-e)%360)}get _commonActions(){const e=(i,r,n)=>{const o=n.detail[i],s=o[0],a=o.slice(1);n.target.style[r]=Nye[`${s}_HTML`](a),this.annotationStorage.setValue(this.data.id,{[r]:Nye[`${s}_rgb`](a)})};return Xi(this,"_commonActions",{display:i=>{const{display:r}=i.detail,n=r%2===1;this.container.style.visibility=n?"hidden":"visible",this.annotationStorage.setValue(this.data.id,{noView:n,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 n of Object.keys(i.detail))(e[n]||r[n])?.(i)}_setDefaultPropertiesFromJS(e){if(!this.enableScripting)return;const i=this.annotationStorage.getRawValue(this.data.id);if(!i)return;const r=this._commonActions;for(const[n,o]of Object.entries(i)){const s=r[n];if(s){const a={detail:{[n]:o},target:e};s(a),delete i[n]}}}_createQuadrilaterals(){if(!this.container)return;const{quadPoints:e}=this.data;if(!e)return;const[i,r,n,o]=this.data.rect.map(f=>Math.fround(f));if(e.length===8){const[f,A,m,b]=e.subarray(2,6);if(n===f&&o===A&&i===m&&r===b)return}const{style:s}=this.container;let a;if(this.#t){const{borderColor:f,borderWidth:A}=s;s.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="${f}" stroke-width="${A}">`],this.container.classList.add("hasBorder")}const l=n-i,c=o-r,{svgFactory:d}=this,u=d.createElement("svg");u.classList.add("quadrilateralsContainer"),u.setAttribute("width",0),u.setAttribute("height",0),u.role="none";const h=d.createElement("defs");u.append(h);const p=d.createElement("clipPath"),g=`clippath_${this.data.id}`;p.setAttribute("id",g),p.setAttribute("clipPathUnits","objectBoundingBox"),h.append(p);for(let f=2,A=e.length;f<A;f+=8){const m=e[f],b=e[f+1],v=e[f+2],w=e[f+3],y=d.createElement("rect"),x=(v-i)/l,k=(o-b)/c,E=(m-v)/l,B=(b-w)/c;y.setAttribute("x",x),y.setAttribute("y",k),y.setAttribute("width",E),y.setAttribute("height",B),p.append(y),a?.push(`<rect vector-effect="non-scaling-stroke" x="${x}" y="${k}" width="${E}" height="${B}"/>`)}this.#t&&(a.push("</g></svg>')"),s.backgroundImage=a.join("")),this.container.append(u),this.container.style.clipPath=`url(#${g})`}_createPopup(e=null){const{data:i}=this;let r,n;e?(r={str:e.text},n=e.date):(r=i.contentsObj,n=i.modificationDate),this.#r=new cQ({data:{color:i.color,titleObj:i.titleObj,modificationDate:n,contentsObj:r,richText:i.richText,parentRect:i.rect,borderStyle:0,id:`popup_${i.id}`,rotation:i.rotation,noRotate:!0},linkService:this.linkService,parent:this.parent,elements:[this]})}get hasPopupElement(){return!!(this.#r||this.popup||this.data.popupRef)}get extraPopupElement(){return this.#r}render(){on("Abstract method `AnnotationElement.render` called")}_getElementsByName(e,i=null){const r=[];if(this._fieldObjects){const n=this._fieldObjects[e];if(n)for(const{page:o,id:s,exportValues:a}of n){if(o===-1||s===i)continue;const l=typeof a=="string"?a:null,c=document.querySelector(`[data-element-id="${s}"]`);if(c&&!Bg.has(c)){rr(`_getElementsByName - element not allowed: ${s}`);continue}r.push({id:s,exportValue:l,domElement:c})}return r}for(const n of document.getElementsByName(e)){const{exportValue:o}=n,s=n.getAttribute("data-element-id");s!==i&&Bg.has(n)&&r.push({id:s,exportValue:o,domElement:n})}return r}show(){this.container&&(this.container.hidden=!1),this.popup?.maybeShow()}hide(){this.container&&(this.container.hidden=!0),this.popup?.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",()=>{this.linkService.eventBus?.dispatch("switchannotationeditormode",{source:this,mode:e,editId:i,mustEnterInEditMode:!0})})}get width(){return this.data.rect[2]-this.data.rect[0]}get height(){return this.data.rect[3]-this.data.rect[1]}}class lzi extends fo{constructor(e){super(e,{isRenderable:!0,ignoreBorder:!0}),this.editor=e.editor}render(){return this.container.className="editorAnnotation",this.container}createOrUpdatePopup(){const{editor:e}=this;e.hasComment&&this._createPopup(e.comment)}get hasCommentButton(){return this.enableComment&&this.editor.hasComment}get commentButtonPosition(){return this.editor.commentButtonPositionInPage}get commentText(){return this.editor.comment.text}set commentText(e){this.editor.comment=e,e||this.removePopup()}get commentData(){return this.editor.getData()}remove(){this.parent.removeAnnotation(this.data.id),this.container.remove(),this.container=null,this.removePopup()}}class lQ extends fo{constructor(e,i=null){super(e,{isRenderable:!0,ignoreBorder:!!i?.ignoreBorder,createQuadrilaterals:!0}),this.isTooltipOnly=e.data.isTooltipOnly}render(){const{data:e,linkService:i}=this,r=document.createElement("a");r.setAttribute("data-element-id",e.id);let n=!1;return e.url?(i.addLinkAttributes(r,e.url,e.newWindow),n=!0):e.action?(this._bindNamedAction(r,e.action,e.overlaidText),n=!0):e.attachment?(this.#t(r,e.attachment,e.overlaidText,e.attachmentDest),n=!0):e.setOCGState?(this.#r(r,e.setOCGState,e.overlaidText),n=!0):e.dest?(this._bindLink(r,e.dest,e.overlaidText),n=!0):(e.actions&&(e.actions.Action||e.actions["Mouse Up"]||e.actions["Mouse Down"])&&this.enableScripting&&this.hasJSActions&&(this._bindJSAction(r,e),n=!0),e.resetForm?(this._bindResetFormAction(r,e.resetForm),n=!0):this.isTooltipOnly&&!n&&(this._bindLink(r,""),n=!0)),this.container.classList.add("linkAnnotation"),n&&(this.contentElement=r,this.container.append(r)),this.container}#e(){this.container.setAttribute("data-internal-link","")}_bindLink(e,i,r=""){e.href=this.linkService.getDestinationHash(i),e.onclick=()=>(i&&this.linkService.goToDestination(i),!1),(i||i==="")&&this.#e(),r&&(e.title=r)}_bindNamedAction(e,i,r=""){e.href=this.linkService.getAnchorUrl(""),e.onclick=()=>(this.linkService.executeNamedAction(i),!1),r&&(e.title=r),this.#e()}#t(e,i,r="",n=null){e.href=this.linkService.getAnchorUrl(""),i.description?e.title=i.description:r&&(e.title=r),e.onclick=()=>(this.downloadManager?.openOrDownloadData(i.content,i.filename,n),!1),this.#e()}#r(e,i,r=""){e.href=this.linkService.getAnchorUrl(""),e.onclick=()=>(this.linkService.executeSetOCGState(i),!1),r&&(e.title=r),this.#e()}_bindJSAction(e,i){e.href=this.linkService.getAnchorUrl("");const r=new Map([["Action","onclick"],["Mouse Up","onmouseup"],["Mouse Down","onmousedown"]]);for(const n of Object.keys(i.actions)){const o=r.get(n);o&&(e[o]=()=>(this.linkService.eventBus?.dispatch("dispatcheventinsandbox",{source:this,detail:{id:i.id,name:n}}),!1))}i.overlaidText&&(e.title=i.overlaidText),e.onclick||(e.onclick=()=>!1),this.#e()}_bindResetFormAction(e,i){const r=e.onclick;if(r||(e.href=this.linkService.getAnchorUrl("")),this.#e(),!this._fieldObjects){rr('_bindResetFormAction - "resetForm" action not supported, ensure that the `fieldObjects` parameter is provided.'),r||(e.onclick=()=>!1);return}e.onclick=()=>{r?.();const{fields:n,refs:o,include:s}=i,a=[];if(n.length!==0||o.length!==0){const d=new Set(o);for(const u of n){const h=this._fieldObjects[u]||[];for(const{id:p}of h)d.add(p)}for(const u of Object.values(this._fieldObjects))for(const h of u)d.has(h.id)===s&&a.push(h)}else for(const d of Object.values(this._fieldObjects))a.push(...d);const l=this.annotationStorage,c=[];for(const d of a){const{id:u}=d;switch(c.push(u),d.type){case"text":{const p=d.defaultValue||"";l.setValue(u,{value:p});break}case"checkbox":case"radiobutton":{const p=d.defaultValue===d.exportValues;l.setValue(u,{value:p});break}case"combobox":case"listbox":{const p=d.defaultValue||"";l.setValue(u,{value:p});break}default:continue}const h=document.querySelector(`[data-element-id="${u}"]`);if(h){if(!Bg.has(h)){rr(`_bindResetFormAction - element not allowed: ${u}`);continue}}else continue;h.dispatchEvent(new Event("resetform"))}return this.enableScripting&&this.linkService.eventBus?.dispatch("dispatcheventinsandbox",{source:this,detail:{id:"app",ids:c,name:"ResetForm"}}),!1}}}class czi extends fo{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.hasOwnCommentButton=!0,this._createPopup()),this.container.append(e),this.container}}class Pg extends fo{render(){return this.container}showElementAndHideCanvas(e){this.data.hasOwnCanvas&&(e.previousSibling?.nodeName==="CANVAS"&&(e.previousSibling.hidden=!0),e.hidden=!1)}_getKeyModifier(e){return us.platform.isMac?e.metaKey:e.ctrlKey}_setEventListener(e,i,r,n,o){r.includes("mouse")?e.addEventListener(r,s=>{this.linkService.eventBus?.dispatch("dispatcheventinsandbox",{source:this,detail:{id:this.data.id,name:n,value:o(s),shift:s.shiftKey,modifier:this._getKeyModifier(s)}})}):e.addEventListener(r,s=>{if(r==="blur"){if(!i.focused||!s.relatedTarget)return;i.focused=!1}else if(r==="focus"){if(i.focused)return;i.focused=!0}o&&this.linkService.eventBus?.dispatch("dispatcheventinsandbox",{source:this,detail:{id:this.data.id,name:n,value:o(s)}})})}_setEventListeners(e,i,r,n){for(const[o,s]of r)(s==="Action"||this.data.actions?.[s])&&((s==="Focus"||s==="Blur")&&(i||={focused:!1}),this._setEventListener(e,i,o,s,n),s==="Focus"&&!this.data.actions?.Blur?this._setEventListener(e,i,"blur","Blur",null):s==="Blur"&&!this.data.actions?.Focus&&this._setEventListener(e,i,"focus","Focus",null))}_setBackgroundColor(e){const i=this.data.backgroundColor||null;e.style.backgroundColor=i===null?"transparent":li.makeHexColor(i[0],i[1],i[2])}_setTextStyle(e){const i=["left","center","right"],{fontColor:r}=this.data.defaultAppearanceData,n=this.data.defaultAppearanceData.fontSize||szi,o=e.style;let s;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/(jG*n))||1,u=c/d;s=Math.min(n,l(u/jG))}else{const c=Math.abs(this.data.rect[3]-this.data.rect[1]-a);s=Math.min(n,l(c/jG))}o.fontSize=`calc(${s}px * var(--total-scale-factor))`,o.color=li.makeHexColor(r[0],r[1],r[2]),this.data.textAlignment!==null&&(o.textAlign=i[this.data.textAlignment])}_setRequired(e,i){i?e.setAttribute("required",!0):e.removeAttribute("required"),e.setAttribute("aria-required",i)}}class dzi extends Pg{constructor(e){const i=e.renderForms||e.data.hasOwnCanvas||!e.data.hasAppearance&&!!e.data.fieldValue;super(e,{isRenderable:i})}setPropertyOnSiblings(e,i,r,n){const o=this.annotationStorage;for(const s of this._getElementsByName(e.name,e.id))s.domElement&&(s.domElement[i]=r),o.setValue(s.id,{[n]:r})}render(){const e=this.annotationStorage,i=this.data.id;this.container.classList.add("textWidgetAnnotation");let r=null;if(this.renderForms){const n=e.getValue(i,{value:this.data.fieldValue});let o=n.value||"";const s=e.getValue(i,{charLimit:this.data.maxLen}).charLimit;s&&o.length>s&&(o=o.slice(0,s));let a=n.formattedValue||this.data.textContent?.join(`
|
|
6439
6439
|
`)||null;a&&this.data.comb&&(a=a.replaceAll(/\s+/g,""));const l={userValue:o,formattedValue:a,lastCommittedValue:null,commitKey:1,focused:!1};this.data.multiLine?(r=document.createElement("textarea"),r.textContent=a??o,this.data.doNotScroll&&(r.style.overflowY="hidden")):(r=document.createElement("input"),r.type=this.data.password?"password":"text",r.setAttribute("value",a??o),this.data.doNotScroll&&(r.style.overflowX="hidden")),this.data.hasOwnCanvas&&(r.hidden=!0),Bg.add(r),this.contentElement=r,r.setAttribute("data-element-id",i),r.disabled=this.data.readOnly,r.name=this.data.fieldName,r.tabIndex=0;const{datetimeFormat:c,datetimeType:d,timeStep:u}=this.data,h=!!d&&this.enableScripting;c&&(r.title=c),this._setRequired(r,this.data.required),s&&(r.maxLength=s),r.addEventListener("input",g=>{e.setValue(i,{value:g.target.value}),this.setPropertyOnSiblings(r,"value",g.target.value,"value"),l.formattedValue=null}),r.addEventListener("resetform",g=>{const f=this.data.defaultFieldValue??"";r.value=l.userValue=f,l.formattedValue=null});let p=g=>{const{formattedValue:f}=l;f!=null&&(g.target.value=f),g.target.scrollLeft=0};if(this.enableScripting&&this.hasJSActions){r.addEventListener("focus",f=>{if(l.focused)return;const{target:A}=f;if(h&&(A.type=d,u&&(A.step=u)),l.userValue){const m=l.userValue;if(h)if(d==="time"){const b=new Date(m),v=[b.getHours(),b.getMinutes(),b.getSeconds()];A.value=v.map(w=>w.toString().padStart(2,"0")).join(":")}else A.value=new Date(m-azi).toISOString().split(d==="date"?"T":".",1)[0];else A.value=m}l.lastCommittedValue=A.value,l.commitKey=1,this.data.actions?.Focus||(l.focused=!0)}),r.addEventListener("updatefromsandbox",f=>{this.showElementAndHideCanvas(f.target);const A={value(m){l.userValue=m.detail.value??"",h||e.setValue(i,{value:l.userValue.toString()}),m.target.value=l.userValue},formattedValue(m){const{formattedValue:b}=m.detail;l.formattedValue=b,b!=null&&m.target!==document.activeElement&&(m.target.value=b);const v={formattedValue:b};h&&(v.value=b),e.setValue(i,v)},selRange(m){m.target.setSelectionRange(...m.detail.selRange)},charLimit:m=>{const{charLimit:b}=m.detail,{target:v}=m;if(b===0){v.removeAttribute("maxLength");return}v.setAttribute("maxLength",b);let w=l.userValue;!w||w.length<=b||(w=w.slice(0,b),v.value=l.userValue=w,e.setValue(i,{value:w}),this.linkService.eventBus?.dispatch("dispatcheventinsandbox",{source:this,detail:{id:i,name:"Keystroke",value:w,willCommit:!0,commitKey:1,selStart:v.selectionStart,selEnd:v.selectionEnd}}))}};this._dispatchEventFromSandbox(A,f)}),r.addEventListener("keydown",f=>{l.commitKey=1;let A=-1;if(f.key==="Escape"?A=0:f.key==="Enter"&&!this.data.multiLine?A=2:f.key==="Tab"&&(l.commitKey=3),A===-1)return;const{value:m}=f.target;l.lastCommittedValue!==m&&(l.lastCommittedValue=m,l.userValue=m,this.linkService.eventBus?.dispatch("dispatcheventinsandbox",{source:this,detail:{id:i,name:"Keystroke",value:m,willCommit:!0,commitKey:A,selStart:f.target.selectionStart,selEnd:f.target.selectionEnd}}))});const g=p;p=null,r.addEventListener("blur",f=>{if(!l.focused||!f.relatedTarget)return;this.data.actions?.Blur||(l.focused=!1);const{target:A}=f;let{value:m}=A;if(h){if(m&&d==="time"){const b=m.split(":").map(v=>parseInt(v,10));m=new Date(2e3,0,1,b[0],b[1],b[2]||0).valueOf(),A.step=""}else m.includes("T")||(m=`${m}T00:00`),m=new Date(m).valueOf();A.type="text"}l.userValue=m,l.lastCommittedValue!==m&&this.linkService.eventBus?.dispatch("dispatcheventinsandbox",{source:this,detail:{id:i,name:"Keystroke",value:m,willCommit:!0,commitKey:l.commitKey,selStart:f.target.selectionStart,selEnd:f.target.selectionEnd}}),g(f)}),this.data.actions?.Keystroke&&r.addEventListener("beforeinput",f=>{l.lastCommittedValue=null;const{data:A,target:m}=f,{value:b,selectionStart:v,selectionEnd:w}=m;let y=v,x=w;switch(f.inputType){case"deleteWordBackward":{const k=b.substring(0,v).match(/\w*[^\w]*$/);k&&(y-=k[0].length);break}case"deleteWordForward":{const k=b.substring(v).match(/^[^\w]*\w*/);k&&(x+=k[0].length);break}case"deleteContentBackward":v===w&&(y-=1);break;case"deleteContentForward":v===w&&(x+=1);break}f.preventDefault(),this.linkService.eventBus?.dispatch("dispatcheventinsandbox",{source:this,detail:{id:i,name:"Keystroke",value:b,change:A||"",willCommit:!1,selStart:y,selEnd:x}})}),this._setEventListeners(r,l,[["focus","Focus"],["blur","Blur"],["mousedown","Mouse Down"],["mouseenter","Mouse Enter"],["mouseleave","Mouse Exit"],["mouseup","Mouse Up"]],f=>f.target.value)}if(p&&r.addEventListener("blur",p),this.data.comb){const g=(this.data.rect[2]-this.data.rect[0])/s;r.classList.add("comb"),r.style.letterSpacing=`calc(${g}px * var(--total-scale-factor) - 1ch)`}}else r=document.createElement("div"),r.textContent=this.data.fieldValue,r.style.verticalAlign="middle",r.style.display="table-cell",this.data.hasOwnCanvas&&(r.hidden=!0);return this._setTextStyle(r),this._setBackgroundColor(r),this._setDefaultPropertiesFromJS(r),this.container.append(r),this.container}}class uzi extends Pg{constructor(e){super(e,{isRenderable:!!e.data.hasOwnCanvas})}}class hzi extends Pg{constructor(e){super(e,{isRenderable:e.renderForms})}render(){const e=this.annotationStorage,i=this.data,r=i.id;let n=e.getValue(r,{value:i.exportValue===i.fieldValue}).value;typeof n=="string"&&(n=n!=="Off",e.setValue(r,{value:n})),this.container.classList.add("buttonWidgetAnnotation","checkBox");const o=document.createElement("input");return Bg.add(o),o.setAttribute("data-element-id",r),o.disabled=i.readOnly,this._setRequired(o,this.data.required),o.type="checkbox",o.name=i.fieldName,n&&o.setAttribute("checked",!0),o.setAttribute("exportValue",i.exportValue),o.tabIndex=0,o.addEventListener("change",s=>{const{name:a,checked:l}=s.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})}),o.addEventListener("resetform",s=>{const a=i.defaultFieldValue||"Off";s.target.checked=a===i.exportValue}),this.enableScripting&&this.hasJSActions&&(o.addEventListener("updatefromsandbox",s=>{const a={value(l){l.target.checked=l.detail.value!=="Off",e.setValue(r,{value:l.target.checked})}};this._dispatchEventFromSandbox(a,s)}),this._setEventListeners(o,null,[["change","Validate"],["change","Action"],["focus","Focus"],["blur","Blur"],["mousedown","Mouse Down"],["mouseenter","Mouse Enter"],["mouseleave","Mouse Exit"],["mouseup","Mouse Up"]],s=>s.target.checked)),this._setBackgroundColor(o),this._setDefaultPropertiesFromJS(o),this.container.append(o),this.container}}class Hye extends Pg{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 n=e.getValue(r,{value:i.fieldValue===i.buttonValue}).value;if(typeof n=="string"&&(n=n!==i.buttonValue,e.setValue(r,{value:n})),n)for(const s of this._getElementsByName(i.fieldName,r))e.setValue(s.id,{value:!1});const o=document.createElement("input");if(Bg.add(o),o.setAttribute("data-element-id",r),o.disabled=i.readOnly,this._setRequired(o,this.data.required),o.type="radio",o.name=i.fieldName,n&&o.setAttribute("checked",!0),o.tabIndex=0,o.addEventListener("change",s=>{const{name:a,checked:l}=s.target;for(const c of this._getElementsByName(a,r))e.setValue(c.id,{value:!1});e.setValue(r,{value:l})}),o.addEventListener("resetform",s=>{const a=i.defaultFieldValue;s.target.checked=a!=null&&a===i.buttonValue}),this.enableScripting&&this.hasJSActions){const s=i.buttonValue;o.addEventListener("updatefromsandbox",a=>{const l={value:c=>{const d=s===c.detail.value;for(const u of this._getElementsByName(c.target.name)){const h=d&&u.id===r;u.domElement&&(u.domElement.checked=h),e.setValue(u.id,{value:h})}}};this._dispatchEventFromSandbox(l,a)}),this._setEventListeners(o,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(o),this._setDefaultPropertiesFromJS(o),this.container.append(o),this.container}}class pzi extends lQ{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 fzi extends Pg{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}),n=document.createElement("select");Bg.add(n),n.setAttribute("data-element-id",i),n.disabled=this.data.readOnly,this._setRequired(n,this.data.required),n.name=this.data.fieldName,n.tabIndex=0;let o=this.data.combo&&this.data.options.length>0;this.data.combo||(n.size=this.data.options.length,this.data.multiSelect&&(n.multiple=!0)),n.addEventListener("resetform",d=>{const u=this.data.defaultFieldValue;for(const h of n.options)h.selected=h.value===u});for(const d of this.data.options){const u=document.createElement("option");u.textContent=d.displayValue,u.value=d.exportValue,r.value.includes(d.exportValue)&&(u.setAttribute("selected",!0),o=!1),n.append(u)}let s=null;if(o){const d=document.createElement("option");d.value=" ",d.setAttribute("hidden",!0),d.setAttribute("selected",!0),n.prepend(d),s=()=>{d.remove(),n.removeEventListener("input",s),s=null},n.addEventListener("input",s)}const a=d=>{const u=d?"value":"textContent",{options:h,multiple:p}=n;return p?Array.prototype.filter.call(h,g=>g.selected).map(g=>g[u]):h.selectedIndex===-1?null:h[h.selectedIndex][u]};let l=a(!1);const c=d=>{const u=d.target.options;return Array.prototype.map.call(u,h=>({displayValue:h.textContent,exportValue:h.value}))};return this.enableScripting&&this.hasJSActions?(n.addEventListener("updatefromsandbox",d=>{const u={value(h){s?.();const p=h.detail.value,g=new Set(Array.isArray(p)?p:[p]);for(const f of n.options)f.selected=g.has(f.value);e.setValue(i,{value:a(!0)}),l=a(!1)},multipleSelection(h){n.multiple=!0},remove(h){const p=n.options,g=h.detail.remove;p[g].selected=!1,n.remove(g),p.length>0&&Array.prototype.findIndex.call(p,f=>f.selected)===-1&&(p[0].selected=!0),e.setValue(i,{value:a(!0),items:c(h)}),l=a(!1)},clear(h){for(;n.length!==0;)n.remove(0);e.setValue(i,{value:null,items:[]}),l=a(!1)},insert(h){const{index:p,displayValue:g,exportValue:f}=h.detail.insert,A=n.children[p],m=document.createElement("option");m.textContent=g,m.value=f,A?A.before(m):n.append(m),e.setValue(i,{value:a(!0),items:c(h)}),l=a(!1)},items(h){const{items:p}=h.detail;for(;n.length!==0;)n.remove(0);for(const g of p){const{displayValue:f,exportValue:A}=g,m=document.createElement("option");m.textContent=f,m.value=A,n.append(m)}n.options.length>0&&(n.options[0].selected=!0),e.setValue(i,{value:a(!0),items:c(h)}),l=a(!1)},indices(h){const p=new Set(h.detail.indices);for(const g of h.target.options)g.selected=p.has(g.index);e.setValue(i,{value:a(!0)}),l=a(!1)},editable(h){h.target.disabled=!h.detail.editable}};this._dispatchEventFromSandbox(u,d)}),n.addEventListener("input",d=>{const u=a(!0),h=a(!1);e.setValue(i,{value:u}),d.preventDefault(),this.linkService.eventBus?.dispatch("dispatcheventinsandbox",{source:this,detail:{id:i,name:"Keystroke",value:l,change:h,changeEx:u,willCommit:!1,commitKey:1,keyDown:!1}})}),this._setEventListeners(n,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)):n.addEventListener("input",function(d){e.setValue(i,{value:a(!0)})}),this.data.combo&&this._setTextStyle(n),this._setBackgroundColor(n),this._setDefaultPropertiesFromJS(n),this.container.append(n),this.container}}class cQ extends fo{constructor(e){const{data:i,elements:r,parent:n}=e,o=!!n._commentManager;if(super(e,{isRenderable:!o&&fo._hasPopupData(i)}),this.elements=r,o&&fo._hasPopupData(i)){const s=this.popup=this.#e();for(const a of r)a.popup=s}else this.popup=null}#e(){return new gzi({container:this.container,color:this.data.color,titleObj:this.data.titleObj,modificationDate:this.data.modificationDate||this.data.creationDate,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,commentManager:this.parent._commentManager})}render(){const{container:e}=this;e.classList.add("popupAnnotation"),e.role="comment";const i=this.popup=this.#e(),r=[];for(const n of this.elements)n.popup=i,n.container.ariaHasPopup="dialog",r.push(n.data.id),n.addHighlightArea();return this.container.setAttribute("aria-controls",r.map(n=>`${pb}${n}`).join(",")),this.container}}class gzi{#e=null;#t=this.#V.bind(this);#r=this.#q.bind(this);#i=this.#D.bind(this);#n=this.#x.bind(this);#o=null;#s=null;#a=null;#l=null;#c=null;#d=null;#h=null;#p=!1;#m=null;#g=null;#u=null;#f=null;#A=null;#b=null;#v=null;#k=null;#C=null;#w=null;#E=!1;#y=null;#M=null;constructor({container:e,color:i,elements:r,titleObj:n,modificationDate:o,contentsObj:s,richText:a,parent:l,rect:c,parentRect:d,open:u,commentManager:h=null}){this.#s=e,this.#C=n,this.#a=s,this.#k=a,this.#d=l,this.#o=i,this.#v=c,this.#h=d,this.#c=r,this.#e=h,this.#y=r[0],this.#l=KG.toDateObject(o),this.trigger=r.flatMap(p=>p.getElementsToTriggerPopup()),h||(this.#S(),this.#s.hidden=!0,u&&this.#x())}#S(){if(this.#g)return;this.#g=new AbortController;const{signal:e}=this.#g;for(const i of this.trigger)i.addEventListener("click",this.#n,{signal:e}),i.addEventListener("pointerenter",this.#i,{signal:e}),i.addEventListener("pointerleave",this.#r,{signal:e}),i.classList.add("popupTriggerArea");for(const i of this.#c)i.container?.addEventListener("keydown",this.#t,{signal:e})}#P(){const e=this.#c.find(i=>i.hasCommentButton);e&&(this.#A=e._normalizePoint(e.commentButtonPosition))}renderCommentButton(){if(this.#f){this.#f.parentNode||this.#y.container.after(this.#f);return}if(this.#A||this.#P(),!this.#A)return;const{signal:e}=this.#g=new AbortController,i=this.#y.hasOwnCommentButton,r=()=>{this.#e.toggleCommentPopup(this,!0,void 0,!i)},n=()=>{this.#e.toggleCommentPopup(this,!1,!0,!i)},o=()=>{this.#e.toggleCommentPopup(this,!1,!1)};if(i){this.#f=this.#y.container;for(const s of this.trigger)s.ariaHasPopup="dialog",s.ariaControls="commentPopup",s.addEventListener("keydown",this.#t,{signal:e}),s.addEventListener("click",r,{signal:e}),s.addEventListener("pointerenter",n,{signal:e}),s.addEventListener("pointerleave",o,{signal:e}),s.classList.add("popupTriggerArea")}else{const s=this.#f=document.createElement("button");s.className="annotationCommentButton";const a=this.#y.container;s.style.zIndex=a.style.zIndex+1,s.tabIndex=0,s.ariaHasPopup="dialog",s.ariaControls="commentPopup",s.setAttribute("data-l10n-id","pdfjs-show-comment-button"),this.#F(),this.#I(),s.addEventListener("keydown",this.#t,{signal:e}),s.addEventListener("click",r,{signal:e}),s.addEventListener("pointerenter",n,{signal:e}),s.addEventListener("pointerleave",o,{signal:e}),a.after(s)}}#I(){if(this.#y.extraPopupElement&&!this.#y.editor)return;this.#f||this.renderCommentButton();const[e,i]=this.#A,{style:r}=this.#f;r.left=`calc(${e}%)`,r.top=`calc(${i}% - var(--comment-button-dim))`}#F(){this.#y.extraPopupElement||(this.#f||this.renderCommentButton(),this.#f.style.backgroundColor=this.commentButtonColor||"")}get commentButtonColor(){const{color:e,opacity:i}=this.#y.commentData;return e?this.#d._commentManager.makeCommentColor(e,i):null}focusCommentButton(){setTimeout(()=>{this.#f?.focus()},0)}getData(){const{richText:e,color:i,opacity:r,creationDate:n,modificationDate:o}=this.#y.commentData;return{contentsObj:{str:this.comment},richText:e,color:i,opacity:r,creationDate:n,modificationDate:o}}get elementBeforePopup(){return this.#f}get comment(){return this.#M||=this.#y.commentText,this.#M}set comment(e){e!==this.comment&&(this.#y.commentText=this.#M=e)}focus(){this.#y.container?.focus()}get parentBoundingClientRect(){return this.#y.layer.getBoundingClientRect()}setCommentButtonStates({selected:e,hasPopup:i}){this.#f&&(this.#f.classList.toggle("selected",e),this.#f.ariaExpanded=i)}setSelectedCommentButton(e){this.#f.classList.toggle("selected",e)}get commentPopupPosition(){if(this.#b)return this.#b;const{x:e,y:i,height:r}=this.#f.getBoundingClientRect(),{x:n,y:o,width:s,height:a}=this.#y.layer.getBoundingClientRect();return[(e-n)/s,(i+r-o)/a]}set commentPopupPosition(e){this.#b=e}hasDefaultPopupPosition(){return this.#b===null}get commentButtonPosition(){return this.#A}get commentButtonWidth(){return this.#f.getBoundingClientRect().width/this.parentBoundingClientRect.width}editComment(e){const[i,r]=this.#b||this.commentButtonPosition.map(c=>c/100),n=this.parentBoundingClientRect,{x:o,y:s,width:a,height:l}=n;this.#e.showDialog(null,this,o+i*a,s+r*l,{...e,parentDimensions:n})}render(){if(this.#m)return;const e=this.#m=document.createElement("div");if(e.className="popup",this.#o){const r=e.style.outlineColor=li.makeHexColor(...this.#o);e.style.backgroundColor=`color-mix(in srgb, ${r} 30%, white)`}const i=document.createElement("span");if(i.className="header",this.#C?.str){const r=document.createElement("span");r.className="title",i.append(r),{dir:r.dir,str:r.textContent}=this.#C}if(e.append(i),this.#l){const r=document.createElement("time");r.className="popupDate",r.setAttribute("data-l10n-id","pdfjs-annotation-date-time-string"),r.setAttribute("data-l10n-args",JSON.stringify({dateObj:this.#l.valueOf()})),r.dateTime=this.#l.toISOString(),i.append(r)}Z7e({html:this.#R||this.#a.str,dir:this.#a?.dir,className:"popupContent"},e),this.#s.append(e)}get#R(){const e=this.#k,i=this.#a;return e?.str&&(!i?.str||i.str===e.str)&&this.#k.html||null}get#_(){return this.#R?.attributes?.style?.fontSize||0}get#O(){return this.#R?.attributes?.style?.color||null}#L(e){const i=[],r={str:e,html:{name:"div",attributes:{dir:"auto"},children:[{name:"p",children:i}]}},n={style:{color:this.#O,fontSize:this.#_?`calc(${this.#_}px * var(--total-scale-factor))`:""}};for(const o of e.split(`
|