diff --git "a/web/956.0b61c76986faf675.js" "b/web/956.0b61c76986faf675.js" deleted file mode 100644--- "a/web/956.0b61c76986faf675.js" +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkviewer=self.webpackChunkviewer||[]).push([[956],{2194:(De,oe,h)=>{h.d(oe,{x:()=>C});var d=h(4438),$=h(2168),v=h(6979),Z=h(4506);let Q=(()=>{class j{transform(n,E){let A={series:String(n.id)};return E?.name&&(A={...A,cohortName:E.name}),A}static{this.\u0275fac=function(E){return new(E||j)}}static{this.\u0275pipe=d.EJ8({name:"SlideDescriptorToViewerUrlParamsPipe",type:j,pure:!0})}}return j})(),B=(()=>{class j{transform(n,E){let A=n?.slideName??"";return E?.caseId&&(A=A.replace(E.caseId+"-","")),A}static{this.\u0275fac=function(E){return new(E||j)}}static{this.\u0275pipe=d.EJ8({name:"QuickViewSlideDescriptorNamePipe",type:j,pure:!0})}}return j})();var M=h(177),J=h(9213),pe=h(8834),ae=h(4572),y=h(8141),O=h(7955),_=h(9423),q=h(6372);const I=["quickviewImageDialogTemplate"];function D(j,g){if(1&j){const n=d.RV6();d.j41(0,"ol-tile-viewer",7),d.bIt("olMapLoaded",function(A){d.eBV(n);const T=d.XpG();return d.Njj(T.olMapLoadedHandler(A))}),d.k0s()}if(2&j){const n=d.XpG();d.Y8G("slideDescriptor",n.slideDescriptor)("slideInfo",n.slideInfo)("isThumbnail",!0)}}function X(j,g){if(1&j&&(d.j41(0,"div",8),d.EFF(1),d.nI1(2,"QuickViewSlideDescriptorNamePipe"),d.k0s()),2&j){const n=d.XpG();d.R7$(),d.SpI(" ",d.i5U(2,1,n.slideInfo,n.selectedExtraMetaData)," ")}}function ne(j,g){if(1&j){const n=d.RV6();d.j41(0,"button",9),d.bIt("click",function(A){d.eBV(n);const T=d.XpG();return T.openQuickviewImage(T.slideDescriptor),d.Njj(A.stopPropagation())}),d.j41(1,"mat-icon"),d.EFF(2,"preview"),d.k0s()()}}function xe(j,g){if(1&j){const n=d.RV6();d.j41(0,"button",10),d.bIt("click",function(A){return d.eBV(n),d.XpG().openSlideData(),d.Njj(A.stopPropagation())}),d.j41(1,"mat-icon"),d.EFF(2,"account_tree"),d.k0s()()}}function me(j,g){if(1&j&&d.nrm(0,"ol-tile-viewer",15),2&j){const n=d.XpG().$implicit;d.Y8G("slideInfo",n.slideInfo)("slideDescriptor",n.slideDescriptor)}}function ge(j,g){if(1&j&&(d.j41(0,"div",11)(1,"button",12)(2,"mat-icon"),d.EFF(3,"close"),d.k0s()(),d.j41(4,"button",13),d.nI1(5,"SlideDescriptorToViewerUrlParamsPipe"),d.j41(6,"mat-icon"),d.EFF(7,"open_in_full"),d.k0s()(),d.DNE(8,me,1,2,"ol-tile-viewer",14),d.k0s()),2&j){const n=g.$implicit;d.R7$(4),d.Y8G("queryParams",d.bMT(5,2,n.slideDescriptor)),d.R7$(4),d.Y8G("ngIf",n.slideDescriptor.id&&n.slideInfo)}}let C=(()=>{class j{constructor(n,E,A,T,he){this.slideApiService=n,this.dialogService=E,this.imageViewerPageStore=A,this.router=T,this.cdRef=he,this.enableExpandedView=!0,this.showSlideData=!1,this.olMapLoaded=new d.bkB,this.isLoaded=!1,this.selectedExtraMetaData=void 0}ngOnInit(){this.setupMetadata(),this.slideApiService.getSlideInfo(this.slideDescriptor.id).subscribe(n=>{n&&(this.slideInfo=n,this.cdRef.detectChanges())})}setupMetadata(){(0,ae.z)([this.imageViewerPageStore.selectedSplitViewSlideDescriptor$,this.imageViewerPageStore.slideMetaDataBySlideDescriptorId$]).pipe((0,y.M)(([n,E])=>{!n||!E||(this.selectedExtraMetaData=E.get(n.id))})).subscribe()}openQuickviewImage(n){n&&this.dialogService.openComponentDialog(this.quickviewImageDialogTemplate,{autoFocus:!1,disableClose:!1,data:{slideDescriptor:n,slideInfo:this.slideInfo}}).afterClosed().subscribe(()=>{})}openSlideData(){this.dialogService.openComponentDialog(v.r,{autoFocus:!1,disableClose:!1}).afterClosed().subscribe(()=>{})}olMapLoadedHandler(n){this.isLoaded=!0,this.cdRef.detectChanges(),this.olMapLoaded.emit(n)}goToViewer(n,E){const A=[...this.imageViewerPageStore.splitViewSlideDescriptors$.value];let T=(new Q).transform(n,E);const he=this.imageViewerPageStore.selectedSplitViewSlideDescriptor$.value,Te=this.router.url.startsWith("/viewer");if(Te&&he){const _e=this.imageViewerPageStore.multiViewScreenSelectedIndex$.value;if(-1!==_e){A.splice(_e,1,n);const ke=this.router.parseUrl(this.router.url).queryParams;delete ke.r,delete ke.x,delete ke.y,delete ke.z,T={...ke,series:A.map(Pe=>String(Pe?.id??" ")).join(",").replaceAll(" ","")}}}this.router.navigate(["/viewer"],{queryParams:T,replaceUrl:Te&&!!he})}static{this.\u0275fac=function(E){return new(E||j)(d.rXU(O.T),d.rXU(_.o),d.rXU(q.y),d.rXU($.Ix),d.rXU(d.gRc))}}static{this.\u0275cmp=d.VBU({type:j,selectors:[["image-viewer-quick-view"]],viewQuery:function(E,A){if(1&E&&d.GBs(I,7),2&E){let T;d.mGM(T=d.lsd())&&(A.quickviewImageDialogTemplate=T.first)}},inputs:{slideDescriptor:"slideDescriptor",enableExpandedView:"enableExpandedView",showSlideData:"showSlideData",cohortInfo:"cohortInfo"},outputs:{olMapLoaded:"olMapLoaded"},decls:8,vars:4,consts:[["quickviewImageDialogTemplate",""],[1,"image-viewer-quick-view"],[1,"ol-viewer-quick-view",3,"click"],[3,"slideDescriptor","slideInfo","isThumbnail","olMapLoaded",4,"ngIf"],["class","slide-name",4,"ngIf"],["mat-icon-button","","aria-label","Quickview image","class","quickview-button","matTooltip","Expand Image",3,"click",4,"ngIf"],["mat-icon-button","","aria-label","Slide data","class","slide-data-button","matTooltip","Open slide data",3,"click",4,"ngIf"],[3,"olMapLoaded","slideDescriptor","slideInfo","isThumbnail"],[1,"slide-name"],["mat-icon-button","","aria-label","Quickview image","matTooltip","Expand Image",1,"quickview-button",3,"click"],["mat-icon-button","","aria-label","Slide data","matTooltip","Open slide data",1,"slide-data-button",3,"click"],["mat-dialog-content","",1,"quickview-dialog-content"],["mat-icon-button","","matTooltip","Close","mat-dialog-close","","cdkFocusInitial","","aria-label","Close quickview",1,"quickview-dialog-close-button"],["routerLink","/viewer","mat-dialog-close","","mat-icon-button","","aria-label","Open full image","matTooltip","Expand",1,"quickview-dialog-open-full-image-button",3,"queryParams"],["class","quickview-dialog-viewer",3,"slideInfo","slideDescriptor",4,"ngIf"],[1,"quickview-dialog-viewer",3,"slideInfo","slideDescriptor"]],template:function(E,A){if(1&E){const T=d.RV6();d.j41(0,"div",1)(1,"div",2),d.bIt("click",function(){return d.eBV(T),d.Njj(A.goToViewer(A.slideDescriptor,A.cohortInfo))}),d.DNE(2,D,1,3,"ol-tile-viewer",3),d.k0s(),d.DNE(3,X,3,4,"div",4)(4,ne,3,0,"button",5)(5,xe,3,0,"button",6),d.k0s(),d.DNE(6,ge,9,4,"ng-template",null,0,d.C5r)}2&E&&(d.R7$(2),d.Y8G("ngIf",A.slideDescriptor&&A.slideInfo),d.R7$(),d.Y8G("ngIf",null==A.slideInfo?null:A.slideInfo.slideName),d.R7$(),d.Y8G("ngIf",A.isLoaded&&A.enableExpandedView),d.R7$(),d.Y8G("ngIf",A.showSlideData))},dependencies:[Z.Bh,J.m_,J.An,Q,B,$.iI,$.Wk,M.MD,M.bT,pe.Hl,pe.iY],styles:[".image-viewer-quick-view[_ngcontent-%COMP%]{cursor:pointer;position:relative;height:inherit;height:100%;width:100%;overflow:hidden;display:grid;grid-template-rows:1fr min-content}.image-viewer-quick-view[_ngcontent-%COMP%] .ol-viewer-quick-view[_ngcontent-%COMP%]{height:100%;overflow:hidden}.image-viewer-quick-view[_ngcontent-%COMP%] .slide-name[_ngcontent-%COMP%]{padding:.4em .5em .1em;background:#d3e3fd;font-weight:700;font-size:1em;color:#5f6368;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical}.quickview-checkbox[_ngcontent-%COMP%]{top:.5em;left:.2em;position:absolute;z-index:2}.quickview-dialog-content[_ngcontent-%COMP%] .quickview-dialog-viewer[_ngcontent-%COMP%]{position:relative}.selected-quickview-checkbox[_ngcontent-%COMP%]{border:1px solid blue}.quickview-button[_ngcontent-%COMP%]{top:.5em;position:absolute;right:.2em}.quickview-button[_ngcontent-%COMP%]:hover{transform:scale(1.2)}.slide-data-button[_ngcontent-%COMP%]{bottom:1em;position:absolute;right:.2em}.slide-data-button[_ngcontent-%COMP%]:hover{transform:scale(1.2)}.quickview-dialog-content[_ngcontent-%COMP%]{height:60vh;position:relative;overflow:hidden;width:70vw}.quickview-dialog-close-button[_ngcontent-%COMP%]{position:absolute;right:.2em;top:.2em;z-index:2}.quickview-dialog-open-full-image-button[_ngcontent-%COMP%]{bottom:.2em;position:absolute;right:.2em;z-index:2}"]})}}return j})()},6979:(De,oe,h)=>{h.d(oe,{r:()=>jt});var d=h(177),$=h(1626),v=h(9417),Z=h(8834),Q=h(2408),B=h(9213),M=h(9631),J=h(2798),pe=h(2771),ae=h(8810),y=h(6648),O=h(7468),_=h(7673),q=h(6977),I=h(3294),D=h(1594),X=h(9437),ne=h(8141),xe=h(1397),me=h(6173),ge=h(6354),Ie=h(6594),C=h(5717),j=h(3738),g=h(6211),n=h(4438),E=h(7955),A=h(2168),T=h(5351);const he=["callTable"],Te=w=>({"even-row-style":w});function _e(w,W){if(1&w){const f=n.RV6();n.j41(0,"button",6),n.bIt("click",function(){n.eBV(f);const P=n.XpG();return n.Njj(P.dialogRef.close())}),n.j41(1,"mat-icon"),n.EFF(2,"close"),n.k0s()()}}function ke(w,W){if(1&w&&(n.j41(0,"tr")(1,"td"),n.EFF(2),n.k0s(),n.j41(3,"td"),n.EFF(4),n.k0s(),n.j41(5,"td"),n.EFF(6),n.k0s(),n.j41(7,"td"),n.EFF(8),n.k0s()()),2&w){const f=W.$implicit;n.R7$(2),n.JRh(f.type),n.R7$(2),n.JRh(f.width),n.R7$(2),n.JRh(f.height),n.R7$(2),n.JRh(f.instanceUid)}}function Pe(w,W){if(1&w&&(n.j41(0,"table")(1,"thead")(2,"tr")(3,"td"),n.EFF(4,"Type"),n.k0s(),n.j41(5,"td"),n.EFF(6,"width"),n.k0s(),n.j41(7,"td"),n.EFF(8,"height"),n.k0s(),n.j41(9,"td"),n.EFF(10,"UID"),n.k0s()()(),n.j41(11,"tbody"),n.DNE(12,ke,9,4,"tr",11),n.k0s()()),2&w){const f=n.XpG(3);n.R7$(12),n.Y8G("ngForOf",f.slideInfo.associatedImages)}}function ct(w,W){1&w&&(n.j41(0,"div"),n.EFF(1," No associate images found. "),n.k0s())}function dt(w,W){if(1&w&&(n.j41(0,"div",9)(1,"h3"),n.EFF(2,"Associated Images"),n.k0s(),n.DNE(3,Pe,13,1,"table",10)(4,ct,2,0,"div",10),n.k0s()),2&w){const f=n.XpG(2);n.R7$(3),n.Y8G("ngIf",f.slideInfo.associatedImages.length>0),n.R7$(),n.Y8G("ngIf",!f.slideInfo.associatedImages.length)}}function it(w,W){if(1&w&&(n.j41(0,"span",16),n.EFF(1),n.nI1(2,"number"),n.k0s()),2&w){const f=n.XpG().$implicit;n.AVh("strike-through",void 0!==f.downSampleMultiplier),n.R7$(),n.SpI(" ",n.i5U(2,3,f.storedBytes/1048576,"1.0-0"),"")}}function Ne(w,W){if(1&w&&(n.j41(0,"span"),n.EFF(1),n.nI1(2,"number"),n.k0s()),2&w){const f=n.XpG().$implicit;n.R7$(),n.JRh(n.i5U(2,1,1e3*f.pixelWidth,"1.0-2"))}}function ce(w,W){if(1&w&&(n.j41(0,"span"),n.EFF(1),n.nI1(2,"number"),n.k0s()),2&w){const f=n.XpG().$implicit;n.R7$(),n.JRh(n.i5U(2,1,1e3*f.pixelHeight,"1.0-2"))}}function $e(w,W){if(1&w&&(n.j41(0,"span"),n.EFF(1),n.k0s()),2&w){const f=W.$implicit;n.R7$(),n.JRh(f.frames)}}function St(w,W){if(1&w&&(n.j41(0,"span"),n.EFF(1),n.k0s()),2&w){const f=W.$implicit;n.R7$(),n.JRh(f.offset)}}function Qe(w,W){if(1&w&&(n.j41(0,"span"),n.EFF(1),n.k0s()),2&w){const f=W.$implicit;n.R7$(),n.JRh(f.instanceUid)}}function Ot(w,W){if(1&w&&(n.j41(0,"tr",14)(1,"td"),n.EFF(2),n.nI1(3,"percent"),n.k0s(),n.j41(4,"td"),n.EFF(5),n.k0s(),n.j41(6,"td"),n.EFF(7),n.k0s(),n.j41(8,"td"),n.DNE(9,it,3,6,"span",15),n.k0s(),n.j41(10,"td"),n.EFF(11),n.k0s(),n.j41(12,"td"),n.EFF(13),n.k0s(),n.j41(14,"td"),n.DNE(15,Ne,3,4,"span",10),n.k0s(),n.j41(16,"td"),n.DNE(17,ce,3,4,"span",10),n.k0s(),n.j41(18,"td"),n.EFF(19),n.k0s(),n.j41(20,"td"),n.DNE(21,$e,2,1,"span",11),n.k0s(),n.j41(22,"td"),n.DNE(23,St,2,1,"span",11),n.k0s(),n.j41(24,"td"),n.DNE(25,Qe,2,1,"span",11),n.k0s()()),2&w){const f=W.$implicit,k=W.index,P=n.XpG(3);n.Y8G("ngClass",n.eq3(16,Te,k%2==0)),n.R7$(2),n.JRh(n.i5U(3,13,f.zoom,"1.0-0")),n.R7$(3),n.SpI("",!f.pixelWidth||P.pixelSpacingToMagnification(1e6*f.pixelWidth),"X"),n.R7$(2),n.JRh(void 0===f.downSampleMultiplier),n.R7$(2),n.Y8G("ngIf",f.storedBytes),n.R7$(2),n.JRh(f.width),n.R7$(2),n.JRh(f.height),n.R7$(2),n.Y8G("ngIf",f.pixelWidth),n.R7$(2),n.Y8G("ngIf",f.pixelHeight),n.R7$(2),n.JRh(f.tileSize),n.R7$(2),n.Y8G("ngForOf",f.properties),n.R7$(2),n.Y8G("ngForOf",f.properties),n.R7$(2),n.Y8G("ngForOf",f.properties)}}function Ft(w,W){if(1&w&&(n.j41(0,"div",9)(1,"h3"),n.EFF(2,"Zoom Levels"),n.k0s(),n.j41(3,"div",12)(4,"table")(5,"thead")(6,"tr")(7,"td"),n.EFF(8,"Zoom"),n.k0s(),n.j41(9,"td"),n.EFF(10,"Magnification"),n.k0s(),n.j41(11,"td"),n.EFF(12,"Real"),n.k0s(),n.j41(13,"td"),n.EFF(14,"Storage [MB]"),n.k0s(),n.j41(15,"td"),n.EFF(16,"Width"),n.k0s(),n.j41(17,"td"),n.EFF(18,"Height"),n.k0s(),n.j41(19,"td"),n.EFF(20,"Pixel width [\xb5m]"),n.k0s(),n.j41(21,"td"),n.EFF(22,"Pixel height [\xb5m]"),n.k0s(),n.j41(23,"td"),n.EFF(24,"Tile size"),n.k0s(),n.j41(25,"td"),n.EFF(26,"Frames"),n.k0s(),n.j41(27,"td"),n.EFF(28,"Offset"),n.k0s(),n.j41(29,"td"),n.EFF(30,"UID"),n.k0s()()(),n.j41(31,"tbody"),n.DNE(32,Ot,26,18,"tr",13),n.k0s()()()()),2&w){const f=n.XpG(2);n.R7$(32),n.Y8G("ngForOf",f.slideInfo.levelMap)}}function Je(w,W){if(1&w&&(n.j41(0,"div",7)(1,"span")(2,"b"),n.EFF(3,"Slide name:"),n.k0s(),n.EFF(4),n.k0s(),n.j41(5,"span")(6,"b"),n.EFF(7,"Series URL:"),n.k0s(),n.EFF(8),n.k0s(),n.j41(9,"span")(10,"b"),n.EFF(11,"Channel count:"),n.k0s(),n.EFF(12),n.k0s(),n.j41(13,"span")(14,"b"),n.EFF(15,"Flat image:"),n.k0s(),n.EFF(16),n.k0s(),n.DNE(17,dt,5,2,"div",8)(18,Ft,33,1,"div",8),n.k0s()),2&w){const f=n.XpG();n.R7$(4),n.SpI(" ",f.slideInfo.slideName,""),n.R7$(4),n.SpI(" ",f.urlSeriesUid,""),n.R7$(4),n.SpI(" ",f.slideInfo.channelCount,""),n.R7$(4),n.SpI(" ",f.slideInfo.isFlatImage,""),n.R7$(),n.Y8G("ngIf",f.slideInfo.associatedImages),n.R7$(),n.Y8G("ngIf",f.slideInfo.levelMap)}}function Me(w,W){1&w&&(n.j41(0,"div"),n.EFF(1," Benchmark running..."),n.k0s())}function te(w,W){if(1&w&&(n.j41(0,"div")(1,"div"),n.EFF(2,"Average latency per tile: "),n.j41(3,"span",27),n.EFF(4),n.nI1(5,"number"),n.k0s()(),n.j41(6,"div"),n.EFF(7,"Benchmark real time: "),n.j41(8,"span",27),n.EFF(9),n.nI1(10,"number"),n.k0s()(),n.j41(11,"div"),n.EFF(12,"Calls made: "),n.j41(13,"span",27),n.EFF(14),n.k0s()()()),2&w){const f=n.XpG(3);n.R7$(4),n.SpI("",n.i5U(5,3,f.benchmark.latency,"1.0-0")," ms"),n.R7$(5),n.SpI("",n.i5U(10,6,f.benchmark.realTime,"1.0-0")," ms"),n.R7$(5),n.JRh(f.benchmark.callComplete)}}function nt(w,W){if(1&w&&(n.j41(0,"div",28),n.EFF(1),n.k0s()),2&w){const f=n.XpG(3);n.R7$(),n.SpI(" ERROR: ",f.errorMsg," ")}}function Dt(w,W){if(1&w&&(n.j41(0,"div",25),n.nrm(1,"hr"),n.DNE(2,Me,2,0,"div",10)(3,te,15,9,"div",10)(4,nt,2,1,"div",26),n.k0s()),2&w){const f=n.XpG(2);n.R7$(2),n.Y8G("ngIf",f.benchmarkRunning),n.R7$(),n.Y8G("ngIf",f.benchmark.latency),n.R7$(),n.Y8G("ngIf",f.errorMsg)}}function kt(w,W){if(1&w){const f=n.RV6();n.j41(0,"div",17)(1,"h2"),n.EFF(2," Tile Latency Benchmark "),n.k0s(),n.j41(3,"div",18)(4,"button",19),n.bIt("click",function(){n.eBV(f);const P=n.XpG();return n.Njj(P.benchmark.icc=!P.benchmark.icc)}),n.j41(5,"mat-icon"),n.EFF(6),n.k0s(),n.EFF(7," Dicom proxy ICC color correction "),n.k0s(),n.j41(8,"button",19),n.bIt("click",function(){n.eBV(f);const P=n.XpG();return n.Njj(P.benchmark.disableCache=!P.benchmark.disableCache)}),n.j41(9,"mat-icon"),n.EFF(10),n.k0s(),n.EFF(11," Dicom proxy disable caching "),n.k0s(),n.j41(12,"button",19),n.bIt("click",function(){n.eBV(f);const P=n.XpG();return n.Njj(P.benchmark.realLayersOnly=!P.benchmark.realLayersOnly)}),n.j41(13,"mat-icon"),n.EFF(14),n.k0s(),n.EFF(15," Dicom proxy real layers only (no server scaled layers) "),n.k0s(),n.j41(16,"div"),n.EFF(17,"Number of tiles to load in base layer (if available): "),n.j41(18,"input",20),n.mxI("ngModelChange",function(P){n.eBV(f);const F=n.XpG();return n.DH7(F.benchmark.numTilesToLoadBaseLayer,P)||(F.benchmark.numTilesToLoadBaseLayer=P),n.Njj(P)}),n.k0s(),n.EFF(19),n.k0s(),n.j41(20,"div"),n.EFF(21,"Number of continous frame batch per stride: "),n.j41(22,"input",21),n.mxI("ngModelChange",function(P){n.eBV(f);const F=n.XpG();return n.DH7(F.benchmark.numFramesPerStride,P)||(F.benchmark.numFramesPerStride=P),n.Njj(P)}),n.k0s(),n.EFF(23),n.k0s(),n.j41(24,"div"),n.EFF(25,"Number of tiles requests per call: "),n.j41(26,"input",21),n.mxI("ngModelChange",function(P){n.eBV(f);const F=n.XpG();return n.DH7(F.benchmark.numTilesPerCall,P)||(F.benchmark.numTilesPerCall=P),n.Njj(P)}),n.k0s(),n.EFF(27),n.k0s(),n.j41(28,"div"),n.EFF(29,"Concurrency: "),n.j41(30,"input",22),n.mxI("ngModelChange",function(P){n.eBV(f);const F=n.XpG();return n.DH7(F.benchmark.concurency,P)||(F.benchmark.concurency=P),n.Njj(P)}),n.k0s(),n.EFF(31),n.k0s()(),n.j41(32,"button",23),n.bIt("click",function(){n.eBV(f);const P=n.XpG();return n.Njj(P.start())}),n.EFF(33," Start Benchmark "),n.k0s(),n.DNE(34,Dt,5,3,"div",24),n.k0s()}if(2&w){const f=n.XpG();n.R7$(4),n.Y8G("disabled",f.benchmarkRunning),n.R7$(2),n.SpI(" ",f.benchmark.icc?"check_box":"check_box_outline_blank"," "),n.R7$(2),n.Y8G("disabled",f.benchmarkRunning),n.R7$(2),n.SpI(" ",f.benchmark.disableCache?"check_box":"check_box_outline_blank"," "),n.R7$(2),n.Y8G("disabled",f.benchmarkRunning),n.R7$(2),n.SpI(" ",f.benchmark.realLayersOnly?"check_box":"check_box_outline_blank"," "),n.R7$(4),n.R50("ngModel",f.benchmark.numTilesToLoadBaseLayer),n.Y8G("disabled",f.benchmarkRunning),n.R7$(),n.JRh(f.benchmark.numTilesToLoadBaseLayer),n.R7$(3),n.R50("ngModel",f.benchmark.numFramesPerStride),n.Y8G("disabled",f.benchmarkRunning),n.R7$(),n.JRh(f.benchmark.numFramesPerStride),n.R7$(3),n.R50("ngModel",f.benchmark.numTilesPerCall),n.Y8G("disabled",f.benchmarkRunning),n.R7$(),n.JRh(f.benchmark.numTilesPerCall),n.R7$(3),n.R50("ngModel",f.benchmark.concurency),n.Y8G("disabled",f.benchmarkRunning),n.R7$(),n.JRh(f.benchmark.concurency),n.R7$(),n.Y8G("disabled",f.benchmarkRunning),n.R7$(2),n.Y8G("ngIf",f.benchmark.latency||f.benchmarkRunning||f.errorMsg)}}const Nt=C.xI[C.hs.IMAGE];let jt=(()=>{class w{constructor(f,k,P,F,ue,Ce,Ve){this.elRef=f,this.dicomwebService=k,this.slideApiService=P,this.ref=F,this.route=ue,this.router=Ce,this.dialogRef=Ve,this.urlSeriesUid="",this.seriesUids=[],this.errorMsg="",this.benchmark={icc:!0,disableCache:!1,realLayersOnly:!1,callComplete:0,tilesComplete:0,numTilesToLoadBaseLayer:16,numFramesPerStride:5,numTilesPerCall:1,concurency:5,latency:0,realTime:0,first10TilesTime:0},this.benchmarkRunning=!1,this.enableDevOptions=!1,this.cleanDicomwebRegex=new RegExp(".*dicomWeb/"),this.destroyed$=new pe.m(1),this.enableDevOptions=!this.dialogRef}ngOnInit(){this.route.queryParams.pipe((0,q.Q)(this.destroyed$),(0,I.F)()).subscribe(f=>{const k=f.series;k&&(this.urlSeriesUid=k,this.load())})}ngOnDestroy(){this.destroyed$.next(!0),this.destroyed$.complete()}updateUrl(){this.router.navigate(["."],{relativeTo:this.route,queryParams:{series:this.urlSeriesUid},queryParamsHandling:"merge"})}onSeriesUidChanged(){this.slideInfo=void 0,this.updateUrl()}drawCallTable(f){const k=this.callTable.nativeElement;for(;k.firstChild;)k.removeChild(k.firstChild);for(const[P,F]of f.entries()){const ue=document.createElement("th");ue.appendChild(document.createTextNode(P.toString()));const Ce=k.insertRow();Ce.appendChild(ue);for(const Ve of F){const qe=document.createElement("div");qe.appendChild(document.createTextNode(Ve.frame.toString())),qe.id=P.toString()+"_"+Ve.frame.toString(),Ce.insertCell().appendChild(qe)}}}drawCallTileId(f,k){const P=document.getElementById(f);if(P){switch(k){case"called":P.classList.add("called");break;case"complete":P.classList.add("complete")}this.elRef.nativeElement.scrollTo(0,this.elRef.nativeElement.scrollHeight)}}load(){this.benchmarkRunning=!1,this.errorMsg="",this.slideInfo=void 0;try{this.slideApiService.getSlideInfo(this.urlSeriesUid).pipe((0,D.$)(),(0,X.W)(f=>(0,ae.$)(f)),(0,ne.M)(f=>{this.slideInfo=f})).subscribe({error:f=>{this.errorHandle(f)}})}catch(f){return void this.errorHandle(f)}}start(){if(void 0===this.slideInfo||!this.slideInfo.levelMap)return void(this.errorMsg="Missing slide level map");this.benchmarkRunning=!0,this.benchmark.callComplete=0,this.benchmark.tilesComplete=0,this.errorMsg="",this.ref.markForCheck(),this.benchmark.latency=0;const f=[];let k=0;for(const F of this.slideInfo.levelMap){const ue=F.properties[0];if(this.benchmark.realLayersOnly&&F.downSampleMultiplier)continue;const Ce=Math.ceil(ue.frames/Math.pow(F.downSampleMultiplier??1,2)),Ve=Math.min(Math.ceil(this.benchmark.numTilesToLoadBaseLayer/Math.pow(2,k)),Ce),qe=Math.floor(Ce/this.benchmark.numFramesPerStride/Ve);f[k]=[];let st=0;for(let ht=0;ht(0,y.H)(F).pipe((0,me.S)(this.benchmark.numTilesPerCall))),(0,xe.Z)(F=>{for(const ue of F)this.drawCallTileId(ue.uid,"called");return(0,O.p)({startTime:(0,_.of)(performance.now()),bytes:this.dicomwebService.getEncodedImageTiles(this.urlSeriesUid,F[0].instanceUid,F.map(ue=>ue.frame+1),Nt,F[0].downsample,this.benchmark.icc?j.PQ.SRGB:j.PQ.NONE,this.benchmark.disableCache),tileUids:(0,_.of)(F.map(ue=>ue.uid))})},this.benchmark.concurency),(0,ge.T)(F=>({tileUids:F.tileUids,latency:performance.now()-F.startTime})),(0,ne.M)(F=>{++this.benchmark.callComplete,this.benchmark.tilesComplete+=F.tileUids.length,0===this.benchmark.first10TilesTime&&this.benchmark.tilesComplete>=10&&(this.benchmark.first10TilesTime=performance.now()-P);for(const ue of F.tileUids)this.drawCallTileId(ue,"complete")}),(0,ge.T)(F=>F.latency),(0,Ie.$)()).subscribe(F=>{this.benchmark.realTime=performance.now()-P,this.benchmarkRunning=!1,this.benchmark.latency=F.reduce((ue,Ce)=>ue+Ce)/this.benchmark.tilesComplete},F=>{this.errorHandle(F)})}errorHandle(f){this.errorMsg="string"==typeof f?f:f instanceof Error||f instanceof $.yz?f.message+"\n"+JSON.stringify(f):"failed",this.benchmarkRunning=!1}pixelSpacingToMagnification(f){return(0,g.CB)(f/1e6)}static{this.\u0275fac=function(k){return new(k||w)(n.rXU(n.aKT),n.rXU(j.w),n.rXU(E.T),n.rXU(n.gRc),n.rXU(A.nX),n.rXU(A.Ix),n.rXU(T.CP,8))}}static{this.\u0275cmp=n.VBU({type:w,selectors:[["inspect-page"]],viewQuery:function(k,P){if(1&k&&n.GBs(he,7),2&k){let F;n.mGM(F=n.lsd())&&(P.callTable=F.first)}},decls:8,vars:3,consts:[["callTable",""],[1,"container"],["mat-icon-button","","cdkFocusInitial","","aria-label","Close slide data","class","dialog-close-button",3,"click",4,"ngIf"],["class","slide-detail-section",4,"ngIf"],["class","latency-benchmark-section",4,"ngIf"],[1,"call-table"],["mat-icon-button","","cdkFocusInitial","","aria-label","Close slide data",1,"dialog-close-button",3,"click"],[1,"slide-detail-section"],["class","flexColumn pad",4,"ngIf"],[1,"flexColumn","pad"],[4,"ngIf"],[4,"ngFor","ngForOf"],[1,"zoom-level-section-data"],[3,"ngClass",4,"ngFor","ngForOf"],[3,"ngClass"],["class","level-storage",3,"strike-through",4,"ngIf"],[1,"level-storage"],[1,"latency-benchmark-section"],[1,"latency-options"],["mat-stroked-button","","color","primary",1,"select-all",3,"click","disabled"],["type","range","min","1",3,"ngModelChange","ngModel","disabled"],["type","range","min","1","max","20",3,"ngModelChange","ngModel","disabled"],["type","range","min","1","max","200",3,"ngModelChange","ngModel","disabled"],["mat-flat-button","","color","primary",3,"click","disabled"],["class","latency-results",4,"ngIf"],[1,"latency-results"],["class","error",4,"ngIf"],[1,"benchmark-result"],[1,"error"]],template:function(k,P){1&k&&(n.j41(0,"div",1),n.DNE(1,_e,3,0,"button",2),n.j41(2,"h1"),n.EFF(3," Slide Data "),n.k0s(),n.DNE(4,Je,19,6,"div",3)(5,kt,35,20,"div",4),n.nrm(6,"table",5,0),n.k0s()),2&k&&(n.R7$(),n.Y8G("ngIf",P.dialogRef),n.R7$(3),n.Y8G("ngIf",P.slideInfo),n.R7$(),n.Y8G("ngIf",P.urlSeriesUid&&void 0!==P.slideInfo))},dependencies:[d.MD,d.YU,d.Sq,d.bT,d.QX,d.m1,Q.RG,M.fS,v.YN,v.me,v.MR,v.BC,v.vS,B.m_,B.An,J.Ve,Z.Hl,Z.$z,Z.iY],styles:["[_nghost-%COMP%]{height:100%;display:block;overflow-y:scroll}.pad[_ngcontent-%COMP%]{padding:8px}.container[_ngcontent-%COMP%]{padding:1em;position:relative}.textInput[_ngcontent-%COMP%]{width:100%}.error[_ngcontent-%COMP%]{color:red}.flexColumn[_ngcontent-%COMP%]{display:flex;flex-direction:column}td[_ngcontent-%COMP%], th[_ngcontent-%COMP%]{padding:1px 10px}thead[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{font-weight:700}.zoom-level-section-data[_ngcontent-%COMP%]{display:grid;overflow:scroll} .call-table{table-layout:fixed} .call-table div{width:25px;height:18px;line-height:19px;overflow:hidden;text-align:center;font-size:10px;background-color:#add8e6} .call-table .called{background-color:#ff0} .call-table .complete{background-color:#90ee90}.series-info[_ngcontent-%COMP%]{display:grid}.latency-options[_ngcontent-%COMP%]{display:grid;grid-row-gap:1em}.latency-options[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{width:max-content}.latency-benchmark-section[_ngcontent-%COMP%]{display:grid;gap:.5em}.latency-benchmark-section[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{width:max-content}.latency-benchmark-section[_ngcontent-%COMP%] .latency-results[_ngcontent-%COMP%]{font-size:1.2em}.latency-benchmark-section[_ngcontent-%COMP%] .benchmark-result[_ngcontent-%COMP%]{font-weight:700}.series-option[_ngcontent-%COMP%]{word-break:break-all}.dialog-close-button[_ngcontent-%COMP%]{position:absolute;right:.3em;top:.5em;z-index:2}.slide-detail-section[_ngcontent-%COMP%]{display:grid;overflow:auto;padding:0}.strike-through[_ngcontent-%COMP%]{text-decoration:line-through}.even-row-style[_ngcontent-%COMP%]{background:#d3d3d3}.level-storage[_ngcontent-%COMP%]{font-weight:700;font-size:1.2em}"]})}}return w})()},4506:(De,oe,h)=>{h.d(oe,{Gl:()=>Mi,oG:()=>Pi,Bh:()=>Ps});var d=h(467),$=h(177),v=h(4438),Z=h(6601),Q=h(4037),B=h(4786),M=h(6832),J=h(2512),pe=h(1208),ae=h(6401),y=h(8618),O=h(9984),_=h(4378),q=h(7048),I=h(6523),D=h(1504);function ne(l,e){q.ue.expire()}const xe=class X extends pe.A{constructor(e){super(),this.map_=e}dispatchRenderEvent(e,t){(0,y.b0)()}calculateMatrices2D(e){const t=e.viewState,i=e.coordinateToPixelTransform,s=e.pixelToCoordinateTransform;(0,O.Zz)(i,e.size[0]/2,e.size[1]/2,1/t.resolution,-1/t.resolution,-t.rotation,-t.center[0],-t.center[1]),(0,O.T9)(s,i)}forEachFeatureAtCoordinate(e,t,i,s,r,o,a,c){let u;const m=t.viewState;function p(L,H,z,de){return r.call(o,H,L?z:null,de)}const x=m.projection,b=(0,D.Li)(e.slice(),x),R=[[0,0]];if(x.canWrapX()&&s){const L=x.getExtent(),H=(0,_.RG)(L);R.push([-H,0],[H,0])}const N=t.layerStatesArray,V=N.length,G=[],S=[];for(let L=0;L=0;--H){const z=N[H],de=z.layer;if(de.hasRenderer()&&(0,I.l)(z,m)&&a.call(c,de)){const ye=de.getRenderer(),U=de.getSource();if(ye&&U){const le=U.getWrapX()?b:e,be=p.bind(null,z.managed);S[0]=le[0]+R[L][0],S[1]=le[1]+R[L][1],u=ye.forEachFeatureAtCoordinate(S,t,i,be,G)}if(u)return u}}if(0===G.length)return;const K=1/G.length;return G.forEach((L,H)=>L.distanceSq+=H*K),G.sort((L,H)=>L.distanceSq-H.distanceSq),G.some(L=>u=L.callback(L.feature,L.layer,L.geometry)),u}hasFeatureAtCoordinate(e,t,i,s,r,o){return void 0!==this.forEachFeatureAtCoordinate(e,t,i,s,ae.rT,this,r,o)}getMap(){return this.map_}renderFrame(e){(0,y.b0)()}scheduleExpireIconCache(e){q.ue.canExpireCache()&&e.postRenderFunctions.push(ne)}};var me=h(6953),ge=h(8133),Ie=h(8933),C=h(215),j=h(8045),g=h(7443),n=h(5664);const A=class E extends xe{constructor(e){super(e),this.fontChangeListenerKey_=(0,g.KT)(j.yY,me.A.PROPERTYCHANGE,e.redrawText.bind(e)),this.element_=document.createElement("div");const t=this.element_.style;t.position="absolute",t.width="100%",t.height="100%",t.zIndex="0",this.element_.className=C.XI+" ol-layers";const i=e.getViewport();i.insertBefore(this.element_,i.firstChild||null),this.children_=[],this.renderedVisible_=!0}dispatchRenderEvent(e,t){const i=this.getMap();if(i.hasListener(e)){const s=new ge.A(e,void 0,t);i.dispatchEvent(s)}}disposeInternal(){(0,g.JH)(this.fontChangeListenerKey_),this.element_.parentNode.removeChild(this.element_),super.disposeInternal()}renderFrame(e){if(!e)return void(this.renderedVisible_&&(this.element_.style.display="none",this.renderedVisible_=!1));this.calculateMatrices2D(e),this.dispatchRenderEvent(Ie.A.PRECOMPOSE,e);const t=e.layerStatesArray.sort(function(a,c){return a.zIndex-c.zIndex});t.some(a=>a.layer instanceof J.A&&a.layer.getDeclutter())&&(e.declutter={});const s=e.viewState;this.children_.length=0;const r=[];let o=null;for(let a=0,c=t.length;a=0;--i){const s=t[i],r=s.layer;r.getDeclutter()&&r.renderDeclutter(e,s)}t.forEach(i=>i.layer.renderDeferred(e))}};var T=h(8864),he=h(8945),Te=h(4888),_e=h(9791),ke=h(973);class Pe extends Te.Ay{constructor(e,t){super(e),this.layer=t}}class dt extends he.A{constructor(e){e=e||{};const t=Object.assign({},e);delete t.layers;let i=e.layers;super(t),this.layersListenerKeys_=[],this.listenerKeys_={},this.addChangeListener("layers",this.handleLayersChanged_),i?Array.isArray(i)?i=new B.A(i.slice(),{unique:!0}):(0,_e.v)("function"==typeof i.getArray,"Expected `layers` to be an array or a `Collection`"):i=new B.A(void 0,{unique:!0}),this.setLayers(i)}handleLayerChange_(){this.changed()}handleLayersChanged_(){this.layersListenerKeys_.forEach(g.JH),this.layersListenerKeys_.length=0;const e=this.getLayers();this.layersListenerKeys_.push((0,g.KT)(e,M.A.ADD,this.handleLayersAdd_,this),(0,g.KT)(e,M.A.REMOVE,this.handleLayersRemove_,this));for(const i in this.listenerKeys_)this.listenerKeys_[i].forEach(g.JH);(0,ke.I)(this.listenerKeys_);const t=e.getArray();for(let i=0,s=t.length;i{this.clickTimeoutId_=void 0;const i=new Ne.A(ce.A.SINGLECLICK,this.map_,e);this.dispatchEvent(i)},250)}updateActivePointers_(e){const t=e,i=t.pointerId;if(t.type==ce.A.POINTERUP||t.type==ce.A.POINTERCANCEL){delete this.trackedTouches_[i];for(const s in this.trackedTouches_)if(this.trackedTouches_[s].target!==t.target){delete this.trackedTouches_[s];break}}else(t.type==ce.A.POINTERDOWN||t.type==ce.A.POINTERMOVE)&&(this.trackedTouches_[i]=t);this.activePointers_=Object.values(this.trackedTouches_)}handlePointerUp_(e){this.updateActivePointers_(e);const t=new Ne.A(ce.A.POINTERUP,this.map_,e,void 0,void 0,this.activePointers_);this.dispatchEvent(t),this.emulateClicks_&&!t.defaultPrevented&&!this.dragging_&&this.isMouseActionButton_(e)&&this.emulateClick_(this.down_),0===this.activePointers_.length&&(this.dragListenerKeys_.forEach(g.JH),this.dragListenerKeys_.length=0,this.dragging_=!1,this.down_=null)}isMouseActionButton_(e){return 0===e.button}handlePointerDown_(e){this.emulateClicks_=0===this.activePointers_.length,this.updateActivePointers_(e);const t=new Ne.A(ce.A.POINTERDOWN,this.map_,e,void 0,void 0,this.activePointers_);if(this.dispatchEvent(t),this.down_=new PointerEvent(e.type,e),Object.defineProperty(this.down_,"target",{writable:!1,value:e.target}),0===this.dragListenerKeys_.length){const i=this.map_.getOwnerDocument();this.dragListenerKeys_.push((0,g.KT)(i,ce.A.POINTERMOVE,this.handlePointerMove_,this),(0,g.KT)(i,ce.A.POINTERUP,this.handlePointerUp_,this),(0,g.KT)(this.element_,ce.A.POINTERCANCEL,this.handlePointerUp_,this)),this.element_.getRootNode&&this.element_.getRootNode()!==i&&this.dragListenerKeys_.push((0,g.KT)(this.element_.getRootNode(),ce.A.POINTERUP,this.handlePointerUp_,this))}}handlePointerMove_(e){if(this.isMoving_(e)){this.updateActivePointers_(e),this.dragging_=!0;const t=new Ne.A(ce.A.POINTERDRAG,this.map_,e,this.dragging_,void 0,this.activePointers_);this.dispatchEvent(t)}}relayMoveEvent_(e){this.originalPointerMoveEvent_=e;const t=!(!this.down_||!this.isMoving_(e));this.dispatchEvent(new Ne.A(ce.A.POINTERMOVE,this.map_,e,t))}handleTouchMove_(e){const t=this.originalPointerMoveEvent_;(!t||t.defaultPrevented)&&("boolean"!=typeof e.cancelable||!0===e.cancelable)&&e.preventDefault()}isMoving_(e){return this.dragging_||Math.abs(e.clientX-this.down_.clientX)>this.moveTolerance_||Math.abs(e.clientY-this.down_.clientY)>this.moveTolerance_}disposeInternal(){this.relayedListenerKey_&&((0,g.JH)(this.relayedListenerKey_),this.relayedListenerKey_=null),this.element_.removeEventListener(T.A.TOUCHMOVE,this.boundHandleTouchMove_),this.pointerdownListenerKey_&&((0,g.JH)(this.pointerdownListenerKey_),this.pointerdownListenerKey_=null),this.dragListenerKeys_.forEach(g.JH),this.dragListenerKeys_.length=0,this.element_=null,super.disposeInternal()}};var Je=h(9136),Me=h(3035);const nt=1/0,kt=class Dt{constructor(e,t){this.priorityFunction_=e,this.keyFunction_=t,this.elements_=[],this.priorities_=[],this.queuedElements_={}}clear(){this.elements_.length=0,this.priorities_.length=0,(0,ke.I)(this.queuedElements_)}dequeue(){const e=this.elements_,t=this.priorities_,i=e[0];1==e.length?(e.length=0,t.length=0):(e[0]=e.pop(),t[0]=t.pop(),this.siftUp_(0));const s=this.keyFunction_(i);return delete this.queuedElements_[s],i}enqueue(e){(0,_e.v)(!(this.keyFunction_(e)in this.queuedElements_),"Tried to enqueue an `element` that was already added to the queue");const t=this.priorityFunction_(e);return t!=nt&&(this.elements_.push(e),this.priorities_.push(t),this.queuedElements_[this.keyFunction_(e)]=!0,this.siftDown_(0,this.elements_.length-1),!0)}getCount(){return this.elements_.length}getLeftChildIndex_(e){return 2*e+1}getRightChildIndex_(e){return 2*e+2}getParentIndex_(e){return e-1>>1}heapify_(){let e;for(e=(this.elements_.length>>1)-1;e>=0;e--)this.siftUp_(e)}isEmpty(){return 0===this.elements_.length}isKeyQueued(e){return e in this.queuedElements_}isQueued(e){return this.isKeyQueued(this.keyFunction_(e))}siftUp_(e){const t=this.elements_,i=this.priorities_,s=t.length,r=t[e],o=i[e],a=e;for(;e>1;){const c=this.getLeftChildIndex_(e),u=this.getRightChildIndex_(e),m=ue;){const a=this.getParentIndex_(t);if(!(s[a]>o))break;i[t]=i[a],s[t]=s[a],t=a}i[t]=r,s[t]=o}reprioritize(){const e=this.priorityFunction_,t=this.elements_,i=this.priorities_;let s=0;const r=t.length;let o,a,c;for(a=0;a0;)r=this.dequeue()[0],o=r.getKey(),s=r.getState(),s===ee.A.IDLE&&!(o in this.tilesLoadingKeys_)&&(this.tilesLoadingKeys_[o]=!0,++this.tilesLoading_,++i,r.load())}};var W=h(8130);const k=class f extends Q.A{constructor(e){super();const t=e.element;t&&!e.target&&!t.style.pointerEvents&&(t.style.pointerEvents="auto"),this.element=t||null,this.target_=null,this.map_=null,this.listenerKeys=[],e.render&&(this.render=e.render),e.target&&this.setTarget(e.target)}disposeInternal(){(0,n.bf)(this.element),super.disposeInternal()}getMap(){return this.map_}setMap(e){this.map_&&(0,n.bf)(this.element);for(let t=0,i=this.listenerKeys.length;ts.getAttributions(e)))),i=!this.getMap().getAllLayers().some(s=>s.getSource()&&!1===s.getSource().getAttributionsCollapsible());return this.overrideCollapsible_||this.setCollapsible(i),t}updateElement_(e){if(!e)return void(this.renderedVisible_&&(this.element.style.display="none",this.renderedVisible_=!1));const t=this.collectSourceAttributions_(e),i=t.length>0;if(this.renderedVisible_!=i&&(this.element.style.display=i?"":"none",this.renderedVisible_=i),!(0,P.aI)(t,this.renderedAttributions_)){(0,n.gS)(this.ulElement_);for(let s=0,r=t.length;s0&&i%(2*Math.PI)!=0?t.animate({rotation:0,duration:this.duration_,easing:Ce.vT}):t.setRotation(0))}render(e){const t=e.frameState;if(!t)return;const i=t.viewState.rotation;if(i!=this.rotation_){const s="rotate("+i+"rad)";if(this.autoHide_){const r=this.element.classList.contains(C.Si);r||0!==i?r&&0!==i&&this.element.classList.remove(C.Si):this.element.classList.add(C.Si)}this.label_.style.transform=s}this.rotation_=i}},ht=class st extends k{constructor(e){e=e||{},super({element:document.createElement("div"),target:e.target});const t=void 0!==e.className?e.className:"ol-zoom",i=void 0!==e.delta?e.delta:1,s=void 0!==e.zoomInClassName?e.zoomInClassName:t+"-in",r=void 0!==e.zoomOutClassName?e.zoomOutClassName:t+"-out",o=void 0!==e.zoomInLabel?e.zoomInLabel:"+",a=void 0!==e.zoomOutLabel?e.zoomOutLabel:"\u2013",c=void 0!==e.zoomInTipLabel?e.zoomInTipLabel:"Zoom in",u=void 0!==e.zoomOutTipLabel?e.zoomOutTipLabel:"Zoom out",m=document.createElement("button");m.className=s,m.setAttribute("type","button"),m.title=c,m.appendChild("string"==typeof o?document.createTextNode(o):o),m.addEventListener(T.A.CLICK,this.handleClick_.bind(this,i),!1);const p=document.createElement("button");p.className=r,p.setAttribute("type","button"),p.title=u,p.appendChild("string"==typeof a?document.createTextNode(a):a),p.addEventListener(T.A.CLICK,this.handleClick_.bind(this,-i),!1);const b=this.element;b.className=t+" "+C.XI+" "+C.$N,b.appendChild(m),b.appendChild(p),this.duration_=void 0!==e.duration?e.duration:250}handleClick_(e,t){t.preventDefault(),this.zoomByDelta_(e)}zoomByDelta_(e){const i=this.getMap().getView();if(!i)return;const s=i.getZoom();if(void 0!==s){const r=i.getConstrainedZoom(s+e);this.duration_>0?(i.getAnimating()&&i.cancelAnimations(),i.animate({zoom:r,duration:this.duration_,easing:Ce.vT})):i.setZoom(r)}}};function ii(l){l=l||{};const e=new B.A;return(void 0===l.zoom||l.zoom)&&e.push(new ht(l.zoomOptions)),(void 0===l.rotate||l.rotate)&&e.push(new qe(l.rotateOptions)),(void 0===l.attribution||l.attribution)&&e.push(new ue(l.attributionOptions)),e}var ze=h(9539);const Vi=class ji extends ze.Ay{constructor(e){super(),this.delta_=(e=e||{}).delta?e.delta:1,this.duration_=void 0!==e.duration?e.duration:250}handleEvent(e){let t=!1;if(e.type==ce.A.DBLCLICK){const i=e.originalEvent,r=e.coordinate,o=i.shiftKey?-this.delta_:this.delta_,a=e.map.getView();(0,ze.D2)(a,o,r,this.duration_),i.preventDefault(),t=!0}return!t}};var Ge=h(3382),ie=h(3301);const Gi=class zi extends Ge.A{constructor(e){super({stopDown:ae.W8}),this.kinetic_=(e=e||{}).kinetic,this.lastCentroid=null,this.panning_=!1;const t=e.condition?e.condition:(0,ie.Q7)(ie.TS,ie.fs);this.condition_=e.onFocusOnly?(0,ie.Q7)(ie.eL,t):t,this.noKinetic_=!1}handleDragEvent(e){const t=e.map;this.panning_||(this.panning_=!0,t.getView().beginInteraction());const i=this.targetPointers,s=t.getEventPixel((0,Ge.v)(i));if(i.length==this.lastPointersCount_){if(this.kinetic_&&this.kinetic_.update(s[0],s[1]),this.lastCentroid){const r=[this.lastCentroid[0]-s[0],s[1]-this.lastCentroid[1]],a=e.map.getView();(0,D.hs)(r,a.getResolution()),(0,D.e$)(r,a.getRotation()),a.adjustCenterInternal(r)}}else this.kinetic_&&this.kinetic_.begin();this.lastCentroid=s,this.lastPointersCount_=i.length,e.originalEvent.preventDefault()}handleUpEvent(e){const t=e.map,i=t.getView();if(0===this.targetPointers.length){if(!this.noKinetic_&&this.kinetic_&&this.kinetic_.end()){const s=this.kinetic_.getDistance(),r=this.kinetic_.getAngle(),o=i.getCenterInternal(),a=t.getPixelFromCoordinateInternal(o),c=t.getCoordinateFromPixelInternal([a[0]-s*Math.cos(r),a[1]-s*Math.sin(r)]);i.animateInternal({center:i.getConstrainedCenter(c),duration:500,easing:Ce.vT})}return this.panning_&&(this.panning_=!1,i.endInteraction()),!1}return this.kinetic_&&this.kinetic_.begin(),this.lastCentroid=null,!0}handleDownEvent(e){if(this.targetPointers.length>0&&this.condition_(e)){const i=e.map.getView();return this.lastCentroid=null,i.getAnimating()&&i.cancelAnimations(),this.kinetic_&&this.kinetic_.begin(),this.noKinetic_=this.targetPointers.length>1,!0}return!1}};var ni=h(1947);const Ui=class Ki extends Ge.A{constructor(e){e=e||{},super({stopDown:ae.W8}),this.condition_=e.condition?e.condition:ie.IO,this.lastAngle_=void 0,this.duration_=void 0!==e.duration?e.duration:250}handleDragEvent(e){if(!(0,ie.A4)(e))return;const t=e.map,i=t.getView();if(i.getConstraints().rotation===ni.b8)return;const s=t.getSize(),r=e.pixel,o=Math.atan2(s[1]/2-r[1],r[0]-s[0]/2);void 0!==this.lastAngle_&&i.adjustRotationInternal(-(o-this.lastAngle_)),this.lastAngle_=o}handleUpEvent(e){return!(0,ie.A4)(e)||(e.map.getView().endInteraction(this.duration_),!1)}handleDownEvent(e){return!!((0,ie.A4)(e)&&(0,ie.at)(e)&&this.condition_(e))&&(e.map.getView().beginInteraction(),this.lastAngle_=void 0,!0)}};var si=h(3213);const Wi=class Bi extends pe.A{constructor(e){super(),this.geometry_=null,this.element_=document.createElement("div"),this.element_.style.position="absolute",this.element_.style.pointerEvents="auto",this.element_.className="ol-box "+e,this.map_=null,this.startPixel_=null,this.endPixel_=null}disposeInternal(){this.setMap(null)}render_(){const e=this.startPixel_,t=this.endPixel_,i="px",s=this.element_.style;s.left=Math.min(e[0],t[0])+i,s.top=Math.min(e[1],t[1])+i,s.width=Math.abs(t[0]-e[0])+i,s.height=Math.abs(t[1]-e[1])+i}setMap(e){if(this.map_){this.map_.getOverlayContainer().removeChild(this.element_);const t=this.element_.style;t.left="inherit",t.top="inherit",t.width="inherit",t.height="inherit"}this.map_=e,this.map_&&this.map_.getOverlayContainer().appendChild(this.element_)}setPixels(e,t){this.startPixel_=e,this.endPixel_=t,this.createOrUpdateGeometry(),this.render_()}createOrUpdateGeometry(){const e=this.startPixel_,t=this.endPixel_,s=[e,[e[0],t[1]],t,[t[0],e[1]]].map(this.map_.getCoordinateFromPixelInternal,this.map_);s[4]=s[0].slice(),this.geometry_?this.geometry_.setCoordinates([s]):this.geometry_=new si.Ay([s])}getGeometry(){return this.geometry_}};class Vt extends Te.Ay{constructor(e,t,i){super(e),this.coordinate=t,this.mapBrowserEvent=i}}const Xi=class Hi extends Ge.A{constructor(e){super(),this.box_=new Wi((e=e||{}).className||"ol-dragbox"),this.minArea_=void 0!==e.minArea?e.minArea:64,e.onBoxEnd&&(this.onBoxEnd=e.onBoxEnd),this.startPixel_=null,this.condition_=e.condition?e.condition:ie.at,this.boxEndCondition_=e.boxEndCondition?e.boxEndCondition:this.defaultBoxEndCondition}defaultBoxEndCondition(e,t,i){const s=i[0]-t[0],r=i[1]-t[1];return s*s+r*r>=this.minArea_}getGeometry(){return this.box_.getGeometry()}handleDragEvent(e){this.box_.setPixels(this.startPixel_,e.pixel),this.dispatchEvent(new Vt("boxdrag",e.coordinate,e))}handleUpEvent(e){this.box_.setMap(null);const t=this.boxEndCondition_(e,this.startPixel_,e.pixel);return t&&this.onBoxEnd(e),this.dispatchEvent(new Vt(t?"boxend":"boxcancel",e.coordinate,e)),!1}handleDownEvent(e){return!!this.condition_(e)&&(this.startPixel_=e.pixel,this.box_.setMap(e.map),this.box_.setPixels(this.startPixel_,this.startPixel_),this.dispatchEvent(new Vt("boxstart",e.coordinate,e)),!0)}onBoxEnd(e){}},Yi=class Zi extends Xi{constructor(e){super({condition:(e=e||{}).condition?e.condition:ie.Kg,className:e.className||"ol-dragzoom",minArea:e.minArea}),this.duration_=void 0!==e.duration?e.duration:200,this.out_=void 0!==e.out&&e.out}onBoxEnd(e){const i=this.getMap().getView();let s=this.getGeometry();if(this.out_){const r=i.rotatedExtentForGeometry(s),o=i.getResolutionForExtentInternal(r),a=i.getResolution()/o;s=s.clone(),s.scale(a*a)}i.fitInternal(s,{duration:this.duration_,easing:Ce.vT})}},Qi=class $i extends ze.Ay{constructor(e){super(),e=e||{},this.defaultCondition_=function(t){return(0,ie.TS)(t)&&(0,ie.tE)(t)},this.condition_=void 0!==e.condition?e.condition:this.defaultCondition_,this.duration_=void 0!==e.duration?e.duration:100,this.pixelDelta_=void 0!==e.pixelDelta?e.pixelDelta:128}handleEvent(e){let t=!1;if(e.type==T.A.KEYDOWN){const i=e.originalEvent,s=i.key;if(this.condition_(e)&&("ArrowDown"==s||"ArrowLeft"==s||"ArrowRight"==s||"ArrowUp"==s)){const o=e.map.getView(),a=o.getResolution()*this.pixelDelta_;let c=0,u=0;"ArrowDown"==s?u=-a:"ArrowLeft"==s?c=-a:"ArrowRight"==s?c=a:u=a;const m=[c,u];(0,D.e$)(m,o.getRotation()),(0,ze.e4)(o,m,this.duration_),i.preventDefault(),t=!0}}return!t}},qi=class Ji extends ze.Ay{constructor(e){super(),this.condition_=(e=e||{}).condition?e.condition:function(t){return!(0,ie.GB)(t)&&(0,ie.tE)(t)},this.delta_=e.delta?e.delta:1,this.duration_=void 0!==e.duration?e.duration:100}handleEvent(e){let t=!1;if(e.type==T.A.KEYDOWN||e.type==T.A.KEYPRESS){const i=e.originalEvent,s=i.key;if(this.condition_(e)&&("+"===s||"-"===s)){const o="+"===s?this.delta_:-this.delta_,a=e.map.getView();(0,ze.D2)(a,o,void 0,this.duration_),i.preventDefault(),t=!0}}return!t}},tn=class en{constructor(e,t,i){this.decay_=e,this.minVelocity_=t,this.delay_=i,this.points_=[],this.angle_=0,this.initialVelocity_=0}begin(){this.points_.length=0,this.angle_=0,this.initialVelocity_=0}update(e,t){this.points_.push(e,t,Date.now())}end(){if(this.points_.length<6)return!1;const e=Date.now()-this.delay_,t=this.points_.length-3;if(this.points_[t+2]0&&this.points_[i+2]>e;)i-=3;const s=this.points_[t+2]-this.points_[i+2];if(s<1e3/60)return!1;const r=this.points_[t]-this.points_[i],o=this.points_[t+1]-this.points_[i+1];return this.angle_=Math.atan2(o,r),this.initialVelocity_=Math.sqrt(r*r+o*o)/s,this.initialVelocity_>this.minVelocity_}getDistance(){return(this.minVelocity_-this.initialVelocity_)/this.decay_}getAngle(){return this.angle_}};var ve=h(8092);const sn=class nn extends ze.Ay{constructor(e){super(e=e||{}),this.totalDelta_=0,this.lastDelta_=0,this.maxDelta_=void 0!==e.maxDelta?e.maxDelta:1,this.duration_=void 0!==e.duration?e.duration:250,this.timeout_=void 0!==e.timeout?e.timeout:80,this.useAnchor_=void 0===e.useAnchor||e.useAnchor,this.constrainResolution_=void 0!==e.constrainResolution&&e.constrainResolution;const t=e.condition?e.condition:ie.Gk;this.condition_=e.onFocusOnly?(0,ie.Q7)(ie.eL,t):t,this.lastAnchor_=null,this.startTime_=void 0,this.mode_=void 0,this.trackpadEventGap_=400,this.deltaPerZoom_=300}endInteraction_(){this.trackpadTimeoutId_=void 0;const e=this.getMap();e&&e.getView().endInteraction(void 0,this.lastDelta_?this.lastDelta_>0?1:-1:0,this.lastAnchor_)}handleEvent(e){if(!this.condition_(e)||e.type!==T.A.WHEEL)return!0;const i=e.map,s=e.originalEvent;let r;if(s.preventDefault(),this.useAnchor_&&(this.lastAnchor_=e.coordinate),e.type==T.A.WHEEL&&(r=s.deltaY,Qe._p&&s.deltaMode===WheelEvent.DOM_DELTA_PIXEL&&(r/=Qe.cr),s.deltaMode===WheelEvent.DOM_DELTA_LINE&&(r*=40)),0===r)return!1;this.lastDelta_=r;const o=Date.now();void 0===this.startTime_&&(this.startTime_=o),(!this.mode_||o-this.startTime_>this.trackpadEventGap_)&&(this.mode_=Math.abs(r)<4?"trackpad":"wheel");const a=i.getView();if("trackpad"===this.mode_&&!a.getConstrainResolution()&&!this.constrainResolution_)return this.trackpadTimeoutId_?clearTimeout(this.trackpadTimeoutId_):(a.getAnimating()&&a.cancelAnimations(),a.beginInteraction()),this.trackpadTimeoutId_=setTimeout(this.endInteraction_.bind(this),this.timeout_),a.adjustZoom(-r/this.deltaPerZoom_,this.lastAnchor_),this.startTime_=o,!1;this.totalDelta_+=r;const c=Math.max(this.timeout_-(o-this.startTime_),0);return clearTimeout(this.timeoutId_),this.timeoutId_=setTimeout(this.handleWheelZoom_.bind(this,i),c),!1}handleWheelZoom_(e){const t=e.getView();t.getAnimating()&&t.cancelAnimations();let i=-(0,ve.qE)(this.totalDelta_,-this.maxDelta_*this.deltaPerZoom_,this.maxDelta_*this.deltaPerZoom_)/this.deltaPerZoom_;(t.getConstrainResolution()||this.constrainResolution_)&&(i=i?i>0?1:-1:0),(0,ze.D2)(t,i,this.lastAnchor_,this.duration_),this.mode_=void 0,this.totalDelta_=0,this.lastAnchor_=null,this.startTime_=void 0,this.timeoutId_=void 0}setMouseAnchor(e){this.useAnchor_=e,e||(this.lastAnchor_=null)}},on=class rn extends Ge.A{constructor(e){const t=e=e||{};t.stopDown||(t.stopDown=ae.W8),super(t),this.anchor_=null,this.lastAngle_=void 0,this.rotating_=!1,this.rotationDelta_=0,this.threshold_=void 0!==e.threshold?e.threshold:.3,this.duration_=void 0!==e.duration?e.duration:250}handleDragEvent(e){let t=0;const i=this.targetPointers[0],s=this.targetPointers[1],r=Math.atan2(s.clientY-i.clientY,s.clientX-i.clientX);if(void 0!==this.lastAngle_){const c=r-this.lastAngle_;this.rotationDelta_+=c,!this.rotating_&&Math.abs(this.rotationDelta_)>this.threshold_&&(this.rotating_=!0),t=c}this.lastAngle_=r;const o=e.map,a=o.getView();a.getConstraints().rotation!==ni.b8&&(this.anchor_=o.getCoordinateFromPixelInternal(o.getEventPixel((0,Ge.v)(this.targetPointers))),this.rotating_&&(o.render(),a.adjustRotationInternal(t,this.anchor_)))}handleUpEvent(e){return!(this.targetPointers.length<2&&(e.map.getView().endInteraction(this.duration_),1))}handleDownEvent(e){if(this.targetPointers.length>=2){const t=e.map;return this.anchor_=null,this.lastAngle_=void 0,this.rotating_=!1,this.rotationDelta_=0,this.handlingDownUpSequence||t.getView().beginInteraction(),!0}return!1}},ln=class an extends Ge.A{constructor(e){const t=e=e||{};t.stopDown||(t.stopDown=ae.W8),super(t),this.anchor_=null,this.duration_=void 0!==e.duration?e.duration:400,this.lastDistance_=void 0,this.lastScaleDelta_=1}handleDragEvent(e){let t=1;const i=this.targetPointers[0],s=this.targetPointers[1],r=i.clientX-s.clientX,o=i.clientY-s.clientY,a=Math.sqrt(r*r+o*o);void 0!==this.lastDistance_&&(t=this.lastDistance_/a),this.lastDistance_=a;const c=e.map,u=c.getView();1!=t&&(this.lastScaleDelta_=t),this.anchor_=c.getCoordinateFromPixelInternal(c.getEventPixel((0,Ge.v)(this.targetPointers))),c.render(),u.adjustResolutionInternal(t,this.anchor_)}handleUpEvent(e){return!(this.targetPointers.length<2)||(e.map.getView().endInteraction(this.duration_,this.lastScaleDelta_>1?1:-1),!1)}handleDownEvent(e){if(this.targetPointers.length>=2){const t=e.map;return this.anchor_=null,this.lastDistance_=void 0,this.lastScaleDelta_=1,this.handlingDownUpSequence||t.getView().beginInteraction(),!0}return!1}};var Y=h(3036),Le=h(8443),dn=h(4205);function ri(l){l instanceof I.A?l.setMapInternal(null):l instanceof it&&l.getLayers().forEach(ri)}function oi(l,e){if(l instanceof I.A)l.setMapInternal(e);else if(l instanceof it){const t=l.getLayers().getArray();for(let i=0,s=t.length;ithis.updateSize()),this.controls=t.controls||ii(),this.interactions=t.interactions||function cn(l){l=l||{};const e=new B.A,t=new tn(-.005,.05,100);return(void 0===l.altShiftDragRotate||l.altShiftDragRotate)&&e.push(new Ui),(void 0===l.doubleClickZoom||l.doubleClickZoom)&&e.push(new Vi({delta:l.zoomDelta,duration:l.zoomDuration})),(void 0===l.dragPan||l.dragPan)&&e.push(new Gi({onFocusOnly:l.onFocusOnly,kinetic:t})),(void 0===l.pinchRotate||l.pinchRotate)&&e.push(new on),(void 0===l.pinchZoom||l.pinchZoom)&&e.push(new ln({duration:l.zoomDuration})),(void 0===l.keyboard||l.keyboard)&&(e.push(new Qi),e.push(new qi({delta:l.zoomDelta,duration:l.zoomDuration}))),(void 0===l.mouseWheelZoom||l.mouseWheelZoom)&&e.push(new sn({onFocusOnly:l.onFocusOnly,duration:l.zoomDuration})),(void 0===l.shiftDragZoom||l.shiftDragZoom)&&e.push(new Yi({duration:l.zoomDuration})),e}({onFocusOnly:!0}),this.overlays_=t.overlays,this.overlayIdIndex_={},this.renderer_=null,this.postRenderFunctions_=[],this.tileQueue_=new jt(this.getTilePriority.bind(this),this.handleTileChange_.bind(this)),this.addChangeListener("layergroup",this.handleLayerGroupChanged_),this.addChangeListener("view",this.handleViewChanged_),this.addChangeListener("size",this.handleSizeChanged_),this.addChangeListener("target",this.handleTargetChanged_),this.setProperties(t.values);const i=this;e.view&&!(e.view instanceof Z.Ay)&&e.view.then(function(s){i.setView(new Z.Ay(s))}),this.controls.addEventListener(M.A.ADD,s=>{s.element.setMap(this)}),this.controls.addEventListener(M.A.REMOVE,s=>{s.element.setMap(null)}),this.interactions.addEventListener(M.A.ADD,s=>{s.element.setMap(this)}),this.interactions.addEventListener(M.A.REMOVE,s=>{s.element.setMap(null)}),this.overlays_.addEventListener(M.A.ADD,s=>{this.addOverlayInternal_(s.element)}),this.overlays_.addEventListener(M.A.REMOVE,s=>{const r=s.element.getId();void 0!==r&&delete this.overlayIdIndex_[r.toString()],s.element.setMap(null)}),this.controls.forEach(s=>{s.setMap(this)}),this.interactions.forEach(s=>{s.setMap(this)}),this.overlays_.forEach(this.addOverlayInternal_.bind(this))}addControl(e){this.getControls().push(e)}addInteraction(e){this.getInteractions().push(e)}addLayer(e){this.getLayerGroup().getLayers().push(e)}handleLayerAdd_(e){oi(e.layer,this)}addOverlay(e){this.getOverlays().push(e)}addOverlayInternal_(e){const t=e.getId();void 0!==t&&(this.overlayIdIndex_[t.toString()]=e),e.setMap(this)}disposeInternal(){this.controls.clear(),this.interactions.clear(),this.overlays_.clear(),this.resizeObserver_.disconnect(),this.setTarget(null),super.disposeInternal()}forEachFeatureAtPixel(e,t,i){if(!this.frameState_||!this.renderer_)return;const s=this.getCoordinateFromPixelInternal(e);return this.renderer_.forEachFeatureAtCoordinate(s,this.frameState_,void 0!==(i=void 0!==i?i:{}).hitTolerance?i.hitTolerance:0,!1!==i.checkWrapped,t,null,void 0!==i.layerFilter?i.layerFilter:ae.rT,null)}getFeaturesAtPixel(e,t){const i=[];return this.forEachFeatureAtPixel(e,function(s){i.push(s)},t),i}getAllLayers(){const e=[];return function t(i){i.forEach(function(s){s instanceof it?t(s.getLayers()):e.push(s)})}(this.getLayers()),e}hasFeatureAtPixel(e,t){if(!this.frameState_||!this.renderer_)return!1;const i=this.getCoordinateFromPixelInternal(e);return this.renderer_.hasFeatureAtCoordinate(i,this.frameState_,void 0!==(t=void 0!==t?t:{}).hitTolerance?t.hitTolerance:0,!1!==t.checkWrapped,void 0!==t.layerFilter?t.layerFilter:ae.rT,null)}getEventCoordinate(e){return this.getCoordinateFromPixel(this.getEventPixel(e))}getEventCoordinateInternal(e){return this.getCoordinateFromPixelInternal(this.getEventPixel(e))}getEventPixel(e){const i=this.viewport_.getBoundingClientRect(),s=this.getSize(),a="changedTouches"in e?e.changedTouches[0]:e;return[(a.clientX-i.left)/(i.width/s[0]),(a.clientY-i.top)/(i.height/s[1])]}getTarget(){return this.get("target")}getTargetElement(){return this.targetElement_}getCoordinateFromPixel(e){return(0,Y.te)(this.getCoordinateFromPixelInternal(e),this.getView().getProjection())}getCoordinateFromPixelInternal(e){const t=this.frameState_;return t?(0,O.Bb)(t.pixelToCoordinateTransform,e.slice()):null}getControls(){return this.controls}getOverlays(){return this.overlays_}getOverlayById(e){const t=this.overlayIdIndex_[e.toString()];return void 0!==t?t:null}getInteractions(){return this.interactions}getLayerGroup(){return this.get("layergroup")}setLayers(e){const t=this.getLayerGroup();if(e instanceof B.A)return void t.setLayers(e);const i=t.getLayers();i.clear(),i.extend(e)}getLayers(){return this.getLayerGroup().getLayers()}getLoadingOrNotReady(){const e=this.getLayerGroup().getLayerStatesArray();for(let t=0,i=e.length;t=0;r--){const o=s[r];if(o.getMap()===this&&o.getActive()&&this.getTargetElement()&&(!o.handleEvent(e)||e.propagationStopped))break}}}handlePostRender(){const e=this.frameState_,t=this.tileQueue_;if(!t.isEmpty()){let s=this.maxTilesLoading_,r=s;if(e){const o=e.viewHints;if(o[W.A.ANIMATING]||o[W.A.INTERACTING]){const a=Date.now()-e.time>8;s=a?0:8,r=a?0:2}}t.getTilesLoading(){this.postRenderTimeoutHandle_=void 0,this.handlePostRender()},0))}setLayerGroup(e){const t=this.getLayerGroup();t&&this.handleLayerRemove_(new Pe("removelayer",t)),this.set("layergroup",e)}setSize(e){this.set("size",e)}setTarget(e){this.set("target",e)}setView(e){if(!e||e instanceof Z.Ay)return void this.set("view",e);this.set("view",new Z.Ay);const t=this;e.then(function(i){t.setView(new Z.Ay(i))})}updateSize(){const e=this.getTargetElement();let t;if(e){const s=getComputedStyle(e),r=e.offsetWidth-parseFloat(s.borderLeftWidth)-parseFloat(s.paddingLeft)-parseFloat(s.paddingRight)-parseFloat(s.borderRightWidth),o=e.offsetHeight-parseFloat(s.borderTopWidth)-parseFloat(s.paddingTop)-parseFloat(s.paddingBottom)-parseFloat(s.borderBottomWidth);!isNaN(r)&&!isNaN(o)&&(t=[r,o],!(0,Le.Ie)(t)&&(e.offsetWidth||e.offsetHeight||e.getClientRects().length)&&(0,dn.R8)("No map visible because the map container's width or height are 0."))}const i=this.getSize();t&&(!i||!(0,P.aI)(t,i))&&(this.setSize(t),this.updateViewportSize_(t))}updateViewportSize_(e){const t=this.getView();t&&t.setViewportSize(e)}};var zt=h(6705),mn=h(9200),ai=h(2698);const li=class gn extends k{constructor(e){e=e||{},super({element:document.createElement("div"),render:e.render,target:e.target}),this.boundHandleRotationChanged_=this.handleRotationChanged_.bind(this),this.collapsed_=void 0===e.collapsed||e.collapsed,this.collapsible_=void 0===e.collapsible||e.collapsible,this.collapsible_||(this.collapsed_=!1),this.rotateWithView_=void 0!==e.rotateWithView&&e.rotateWithView,this.viewExtent_=void 0;const t=void 0!==e.className?e.className:"ol-overviewmap",i=void 0!==e.tipLabel?e.tipLabel:"Overview map",s=void 0!==e.collapseLabel?e.collapseLabel:"\u2039";"string"==typeof s?(this.collapseLabel_=document.createElement("span"),this.collapseLabel_.textContent=s):this.collapseLabel_=s;const r=void 0!==e.label?e.label:"\u203a";"string"==typeof r?(this.label_=document.createElement("span"),this.label_.textContent=r):this.label_=r;const o=this.collapsible_&&!this.collapsed_?this.collapseLabel_:this.label_,a=document.createElement("button");a.setAttribute("type","button"),a.title=i,a.appendChild(o),a.addEventListener(T.A.CLICK,this.handleClick_.bind(this),!1),this.ovmapDiv_=document.createElement("div"),this.ovmapDiv_.className="ol-overviewmap-map",this.view_=e.view;const c=new ut({view:e.view,controls:new B.A,interactions:new B.A});this.ovmap_=c,e.layers&&e.layers.forEach(function(S){c.addLayer(S)});const u=document.createElement("div");u.className="ol-overviewmap-box",u.style.boxSizing="border-box",this.boxOverlay_=new mn.A({position:[0,0],positioning:"center-center",element:u}),this.ovmap_.addOverlay(this.boxOverlay_);const p=this.element;p.className=t+" "+C.XI+" "+C.$N+(this.collapsed_&&this.collapsible_?" "+C.nT:"")+(this.collapsible_?"":" ol-uncollapsible"),p.appendChild(this.ovmapDiv_),p.appendChild(a);const x=this,b=this.boxOverlay_,R=this.boxOverlay_.getElement(),V=function(S){const K=function(S){return{clientX:S.clientX,clientY:S.clientY}}(S),L=c.getEventCoordinateInternal(K);b.setPosition(L)},G=function(S){const K=c.getEventCoordinateInternal(S);x.getMap().getView().setCenterInternal(K),window.removeEventListener("mousemove",V),window.removeEventListener("mouseup",G)};R.addEventListener("mousedown",function(){window.addEventListener("mousemove",V),window.addEventListener("mouseup",G)})}setMap(e){const t=this.getMap();if(e!==t){if(t){const i=t.getView();i&&this.unbindView_(i),this.ovmap_.setTarget(null)}if(super.setMap(e),e){this.ovmap_.setTarget(this.ovmapDiv_),this.listenerKeys.push((0,g.KT)(e,me.A.PROPERTYCHANGE,this.handleMapPropertyChange_,this));const i=e.getView();i&&(this.bindView_(i),i.isDef()&&(this.ovmap_.updateSize(),this.resetExtent_())),this.ovmap_.isRendered()||this.updateBoxAfterOvmapIsRendered_()}}}handleMapPropertyChange_(e){if("view"===e.key){const t=e.oldValue;t&&this.unbindView_(t);const i=this.getMap().getView();this.bindView_(i)}else!this.ovmap_.isRendered()&&("target"===e.key||"size"===e.key)&&this.ovmap_.updateSize()}bindView_(e){if(!this.view_){const t=new Z.Ay({projection:e.getProjection()});this.ovmap_.setView(t)}e.addChangeListener(ai.A.ROTATION,this.boundHandleRotationChanged_),this.handleRotationChanged_()}unbindView_(e){e.removeChangeListener(ai.A.ROTATION,this.boundHandleRotationChanged_)}handleRotationChanged_(){this.rotateWithView_&&this.ovmap_.getView().setRotation(this.getMap().getView().getRotation())}validateExtent_(){const e=this.getMap(),t=this.ovmap_;if(!e.isRendered()||!t.isRendered())return;const i=e.getSize(),r=e.getView().calculateExtentInternal(i);if(this.viewExtent_&&(0,_.aI)(r,this.viewExtent_))return;this.viewExtent_=r;const o=t.getSize(),c=t.getView().calculateExtentInternal(o),u=t.getPixelFromCoordinateInternal((0,_.Py)(r)),m=t.getPixelFromCoordinateInternal((0,_.k_)(r)),p=Math.abs(u[0]-m[0]),x=Math.abs(u[1]-m[1]),b=o[0],R=o[1];p<.1*b||x<.1*R||p>.75*b||x>.75*R?this.resetExtent_():(0,_.ms)(c,r)||this.recenter_()}resetExtent_(){const e=this.getMap(),t=this.ovmap_,i=e.getSize(),r=e.getView().calculateExtentInternal(i),o=t.getView(),a=Math.log(7.5)/Math.LN2,c=1/(.1*Math.pow(2,a/2));(0,_.Af)(r,c),o.fitInternal((0,si.VY)(r))}recenter_(){const e=this.getMap(),t=this.ovmap_,i=e.getView();t.getView().setCenterInternal(i.getCenterInternal())}updateBox_(){const e=this.getMap(),t=this.ovmap_;if(!e.isRendered()||!t.isRendered())return;const i=e.getSize(),s=e.getView(),r=t.getView(),o=this.rotateWithView_?0:-s.getRotation(),a=this.boxOverlay_,c=this.boxOverlay_.getElement(),u=s.getCenterInternal(),m=s.getResolution(),p=r.getResolution(),x=i[0]*m/p,b=i[1]*m/p;a.setPosition(u),c&&(c.style.width=x+"px",c.style.height=b+"px",c.style.transform="rotate("+o+"rad)")}updateBoxAfterOvmapIsRendered_(){this.ovmapPostrenderKey_||(this.ovmapPostrenderKey_=(0,g.Jz)(this.ovmap_,Me.A.POSTRENDER,function(e){delete this.ovmapPostrenderKey_,this.updateBox_()},this))}handleClick_(e){e.preventDefault(),this.handleToggle_()}handleToggle_(){this.element.classList.toggle(C.nT),this.collapsed_?(0,n.fo)(this.collapseLabel_,this.label_):(0,n.fo)(this.label_,this.collapseLabel_),this.collapsed_=!this.collapsed_;const e=this.ovmap_;if(!this.collapsed_){if(e.isRendered())return this.viewExtent_=void 0,void e.render();e.updateSize(),this.resetExtent_(),this.updateBoxAfterOvmapIsRendered_()}}getCollapsible(){return this.collapsible_}setCollapsible(e){this.collapsible_!==e&&(this.collapsible_=e,this.element.classList.toggle("ol-uncollapsible"),!e&&this.collapsed_&&this.handleToggle_())}setCollapsed(e){!this.collapsible_||this.collapsed_===e||this.handleToggle_()}getCollapsed(){return this.collapsed_}getRotateWithView(){return this.rotateWithView_}setRotateWithView(e){this.rotateWithView_!==e&&(this.rotateWithView_=e,0!==this.getMap().getView().getRotation()&&(this.rotateWithView_?this.handleRotationChanged_():this.ovmap_.getView().setRotation(0),this.viewExtent_=void 0,this.validateExtent_(),this.updateBox_()))}getOverviewMap(){return this.ovmap_}render(e){this.validateExtent_(),this.updateBox_()}},Gt="units",fn=[1,2,5],gt=25.4/.28,_n=class pn extends k{constructor(e){e=e||{};const t=document.createElement("div");t.style.pointerEvents="none",super({element:t,render:e.render,target:e.target});const i=void 0!==e.className?e.className:e.bar?"ol-scale-bar":"ol-scale-line";this.innerElement_=document.createElement("div"),this.innerElement_.className=i+"-inner",this.element.className=i+" "+C.XI,this.element.appendChild(this.innerElement_),this.viewState_=null,this.minWidth_=void 0!==e.minWidth?e.minWidth:64,this.maxWidth_=e.maxWidth,this.renderedVisible_=!1,this.renderedWidth_=void 0,this.renderedHTML_="",this.addChangeListener(Gt,this.handleUnitsChanged_),this.setUnits(e.units||"metric"),this.scaleBar_=e.bar||!1,this.scaleBarSteps_=e.steps||4,this.scaleBarText_=e.text||!1,this.dpi_=e.dpi||void 0}getUnits(){return this.get(Gt)}handleUnitsChanged_(){this.updateElement_()}setUnits(e){this.set(Gt,e)}setDpi(e){this.dpi_=e}updateElement_(){const e=this.viewState_;if(!e)return void(this.renderedVisible_&&(this.element.style.display="none",this.renderedVisible_=!1));const t=e.center,i=e.projection,s=this.getUnits();let o=(0,Y.hO)(i,e.resolution,t,"degrees"==s?"degrees":"m");const a=this.minWidth_*(this.dpi_||gt)/gt,c=void 0!==this.maxWidth_?this.maxWidth_*(this.dpi_||gt)/gt:void 0;let u=a*o,m="";if("degrees"==s){const K=Y.Ig.degrees;u*=K,u=c){x=N,b=V,R=G;break}if(b>=a)break;N=x,V=b,G=R,++p}const S=this.scaleBar_?this.createScaleBar(b,x,m):x.toFixed(R<0?-R:0)+" "+m;this.renderedHTML_!=S&&(this.innerElement_.innerHTML=S,this.renderedHTML_=S),this.renderedWidth_!=b&&(this.innerElement_.style.width=b+"px",this.renderedWidth_=b),this.renderedVisible_||(this.element.style.display="",this.renderedVisible_=!0)}createScaleBar(e,t,i){const s=this.getScaleForResolution(),r=s<1?Math.round(1/s).toLocaleString()+" : 1":"1 : "+Math.round(s).toLocaleString(),o=this.scaleBarSteps_,a=e/o,c=[this.createMarker("absolute")];for(let m=0;m
`+this.createMarker("relative")+(m%2==0||2===o?this.createStepText(m,e,!1,t,i):"")+"");return c.push(this.createStepText(o,e,!0,t,i)),(this.scaleBarText_?`
`+r+"
":"")+c.join("")}createMarker(e){return`
`}createStepText(e,t,i,s,r){const a=(0===e?0:Math.round(s/this.scaleBarSteps_*e*100)/100)+(0===e?"":" "+r);return`
`+a+"
"}getScaleForResolution(){return(0,Y.hO)(this.viewState_.projection,this.viewState_.resolution,this.viewState_.center,"m")*(1e3/25.4)*(this.dpi_||gt)}render(e){const t=e.frameState;this.viewState_=t?t.viewState:null,this.updateElement_()}},Kt="projection",ci="coordinateFormat",yn=class vn extends k{constructor(e){e=e||{};const t=document.createElement("div");t.className=void 0!==e.className?e.className:"ol-mouse-position",super({element:t,render:e.render,target:e.target}),this.addChangeListener(Kt,this.handleProjectionChanged_),e.coordinateFormat&&this.setCoordinateFormat(e.coordinateFormat),e.projection&&this.setProjection(e.projection),this.renderOnMouseOut_=void 0!==e.placeholder,this.placeholder_=this.renderOnMouseOut_?e.placeholder:" ",this.renderedHTML_=t.innerHTML,this.mapProjection_=null,this.transform_=null,this.wrapX_=!1!==e.wrapX}handleProjectionChanged_(){this.transform_=null}getCoordinateFormat(){return this.get(ci)}getProjection(){return this.get(Kt)}handleMouseMove(e){const t=this.getMap();this.updateHTML_(t.getEventPixel(e))}handleMouseOut(e){this.updateHTML_(null)}setMap(e){if(super.setMap(e),e){const t=e.getViewport();this.listenerKeys.push((0,g.KT)(t,"pointermove",this.handleMouseMove,this)),this.renderOnMouseOut_&&this.listenerKeys.push((0,g.KT)(t,"pointerout",this.handleMouseOut,this)),this.updateHTML_(null)}}setCoordinateFormat(e){this.set(ci,e)}setProjection(e){this.set(Kt,(0,Y.Jt)(e))}updateHTML_(e){let t=this.placeholder_;if(e&&this.mapProjection_){if(!this.transform_){const r=this.getProjection();this.transform_=r?(0,Y.FO)(this.mapProjection_,r):Y.R6}const s=this.getMap().getCoordinateFromPixelInternal(e);if(s){const r=(0,Y.Tf)();if(r&&(this.transform_=(0,Y.FO)(this.mapProjection_,r)),this.transform_(s,s),this.wrapX_){const a=r||this.getProjection()||this.mapProjection_;(0,D.Li)(s,a)}const o=this.getCoordinateFormat();t=o?o(s):s.toString()}}(!this.renderedHTML_||t!==this.renderedHTML_)&&(this.element.innerHTML=t,this.renderedHTML_=t)}render(e){const t=e.frameState;t?this.mapProjection_!=t.viewState.projection&&(this.mapProjection_=t.viewState.projection,this.transform_=null):this.mapProjection_=null}},di=["fullscreenchange","webkitfullscreenchange","MSFullscreenChange"];function ui(l){const e=l.body;return!!(e.webkitRequestFullscreen||e.requestFullscreen&&l.fullscreenEnabled)}function mi(l){return!(!l.webkitIsFullScreen&&!l.fullscreenElement)}function gi(l){l.requestFullscreen?l.requestFullscreen():l.webkitRequestFullscreen&&l.webkitRequestFullscreen()}const Tn=class En extends k{constructor(e){e=e||{},super({element:document.createElement("div"),target:e.target}),this.keys_=void 0!==e.keys&&e.keys,this.source_=e.source,this.isInFullscreen_=!1,this.boundHandleMapTargetChange_=this.handleMapTargetChange_.bind(this),this.cssClassName_=void 0!==e.className?e.className:"ol-full-screen",this.documentListeners_=[],this.activeClassName_=void 0!==e.activeClassName?e.activeClassName.split(" "):[this.cssClassName_+"-true"],this.inactiveClassName_=void 0!==e.inactiveClassName?e.inactiveClassName.split(" "):[this.cssClassName_+"-false"];const t=void 0!==e.label?e.label:"\u2922";this.labelNode_="string"==typeof t?document.createTextNode(t):t;const i=void 0!==e.labelActive?e.labelActive:"\xd7";this.labelActiveNode_="string"==typeof i?document.createTextNode(i):i;const s=e.tipLabel?e.tipLabel:"Toggle full-screen";this.button_=document.createElement("button"),this.button_.title=s,this.button_.setAttribute("type","button"),this.button_.appendChild(this.labelNode_),this.button_.addEventListener(T.A.CLICK,this.handleClick_.bind(this),!1),this.setClassName_(this.button_,this.isInFullscreen_),this.element.className=`${this.cssClassName_} ${C.XI} ${C.$N}`,this.element.appendChild(this.button_)}handleClick_(e){e.preventDefault(),this.handleFullScreen_()}handleFullScreen_(){const e=this.getMap();if(!e)return;const t=e.getOwnerDocument();if(ui(t))if(mi(t))!function bn(l){l.exitFullscreen?l.exitFullscreen():l.webkitExitFullscreen&&l.webkitExitFullscreen()}(t);else{let i;i=this.source_?"string"==typeof this.source_?t.getElementById(this.source_):this.source_:e.getTargetElement(),this.keys_?function xn(l){l.webkitRequestFullscreen?l.webkitRequestFullscreen():gi(l)}(i):gi(i)}}handleFullScreenChange_(){const e=this.getMap();if(!e)return;const t=this.isInFullscreen_;this.isInFullscreen_=mi(e.getOwnerDocument()),t!==this.isInFullscreen_&&(this.setClassName_(this.button_,this.isInFullscreen_),this.isInFullscreen_?((0,n.fo)(this.labelActiveNode_,this.labelNode_),this.dispatchEvent("enterfullscreen")):((0,n.fo)(this.labelNode_,this.labelActiveNode_),this.dispatchEvent("leavefullscreen")),e.updateSize())}setClassName_(e,t){t?(e.classList.remove(...this.inactiveClassName_),e.classList.add(...this.activeClassName_)):(e.classList.remove(...this.activeClassName_),e.classList.add(...this.inactiveClassName_))}setMap(e){const t=this.getMap();t&&t.removeChangeListener("target",this.boundHandleMapTargetChange_),super.setMap(e),this.handleMapTargetChange_(),e&&e.addChangeListener("target",this.boundHandleMapTargetChange_)}handleMapTargetChange_(){const e=this.documentListeners_;for(let i=0,s=e.length;i(i[s]=!0,i),{}),this.replace_=e.replace,this.prefix_=e.prefix,this.listenerKeys_=[],this.initial_=!0,this.updateState_=this.updateState_.bind(this),this.trackedCallbacks_={},this.trackedValues_={}}getParamName_(e){return this.prefix_?this.prefix_+e:e}get_(e,t){return e.get(this.getParamName_(t))}set_(e,t,i){t in this.params_&&e.set(this.getParamName_(t),i)}delete_(e,t){t in this.params_&&e.delete(this.getParamName_(t))}setMap(e){const t=this.getMap();super.setMap(e),e!==t&&(t&&this.unregisterListeners_(t),e&&(this.initial_=!0,this.updateState_(),this.registerListeners_(e)))}registerListeners_(e){this.listenerKeys_.push((0,g.KT)(e,Me.A.MOVEEND,this.updateUrl_,this),(0,g.KT)(e.getLayerGroup(),T.A.CHANGE,this.updateUrl_,this),(0,g.KT)(e,"change:layergroup",this.handleChangeLayerGroup_,this)),this.replace_||addEventListener("popstate",this.updateState_)}unregisterListeners_(e){for(let s=0,r=this.listenerKeys_.length;s1?1:-1),this.lastScaleDelta_=0,!1)}handleDownEvent(e){return!(!(0,ie.A4)(e)||!this.condition_(e)||(e.map.getView().beginInteraction(),this.lastAngle_=void 0,this.lastMagnitude_=void 0,0))}},Ln=class Mn extends I.A{constructor(e){super(e=e||{})}};var fi=h(7350),we=h(7068);const On=class Sn extends fi.A{constructor(e){super(e),this.image_=null}getImage(){return this.image_?this.image_.getImage():null}prepareFrame(e){const t=e.layerStatesArray[e.layerIndex],i=e.pixelRatio,s=e.viewState,r=s.resolution,o=this.getLayer().getSource(),a=e.viewHints;let c=e.extent;if(void 0!==t.extent&&(c=(0,_._N)(c,(0,Y.SD)(t.extent,s.projection))),!a[W.A.ANIMATING]&&!a[W.A.INTERACTING]&&!(0,_.Im)(c))if(o){const m=o.getImage(c,r,i,s.projection);m&&(this.loadImage(m)?this.image_=m:m.getState()===we.A.EMPTY&&(this.image_=null))}else this.image_=null;return!!this.image_}getData(e){const t=this.frameState;if(!t)return null;const i=this.getLayer(),s=(0,O.Bb)(t.pixelToCoordinateTransform,e.slice()),r=i.getExtent();if(r&&!(0,_.Ym)(r,s))return null;const o=this.image_.getExtent(),a=this.image_.getImage(),c=(0,_.RG)(o),u=Math.floor(a.width*((s[0]-o[0])/c));if(u<0||u>=a.width)return null;const m=(0,_.Oq)(o),p=Math.floor(a.height*((o[3]-s[1])/m));return p<0||p>=a.height?null:this.getImageData(a,u,p)}renderFrame(e,t){const i=this.image_,s=i.getExtent(),r=i.getResolution(),[o,a]=Array.isArray(r)?r:[r,r],c=i.getPixelRatio(),u=e.layerStatesArray[e.layerIndex],m=e.pixelRatio,p=e.viewState,x=p.center,b=p.resolution,R=m*o/(b*c),N=m*a/(b*c),V=e.extent,G=p.resolution,S=p.rotation,K=Math.round((0,_.RG)(V)/G*m),L=Math.round((0,_.Oq)(V)/G*m);(0,O.Zz)(this.pixelTransform,e.size[0]/2,e.size[1]/2,1/m,1/m,S,-K/2,-L/2),(0,O.T9)(this.inversePixelTransform,this.pixelTransform);const H=(0,O.dI)(this.pixelTransform);this.useContainer(t,H,this.getBackground(e));const z=this.getRenderContext(e),de=this.context.canvas;de.width!=K||de.height!=L?(de.width=K,de.height=L):this.containerReused||z.clearRect(0,0,K,L);let ye=!1,U=!0;if(u.extent){const se=(0,Y.SD)(u.extent,p.projection);U=(0,_.HY)(se,e.extent),ye=U&&!(0,_.ms)(se,e.extent),ye&&this.clipUnrotated(z,e,se)}const le=i.getImage(),be=(0,O.Zz)(this.tempTransform,K/2,L/2,R,N,0,c*(s[0]-x[0])/o,c*(x[1]-s[3])/a);this.renderedResolution=a*m/c;const Re=le.width*be[0],Ze=le.height*be[3];if(this.getLayer().getSource().getInterpolate()||(z.imageSmoothingEnabled=!1),this.preRender(z,e),U&&Re>=.5&&Ze>=.5){const se=be[4],Ke=be[5],Oe=u.opacity;1!==Oe&&(z.save(),z.globalAlpha=Oe),z.drawImage(le,0,0,+le.width,+le.height,se,Ke,Re,Ze),1!==Oe&&z.restore()}return this.postRender(this.context,e),ye&&z.restore(),z.imageSmoothingEnabled=!0,H!==de.style.transform&&(de.style.transform=H),this.container}},pi=class Fn extends Ln{constructor(e){super(e)}createRenderer(){return new On(this)}getData(e){return super.getData(e)}},kn=class Dn extends I.A{constructor(e){e=e||{};const t=Object.assign({},e);delete t.preload,delete t.useInterimTilesOnError,super(t),this.setPreload(void 0!==e.preload?e.preload:0),this.setUseInterimTilesOnError(void 0===e.useInterimTilesOnError||e.useInterimTilesOnError)}getPreload(){return this.get("preload")}setPreload(e){this.set("preload",e)}getUseInterimTilesOnError(){return this.get("useInterimTilesOnError")}setUseInterimTilesOnError(e){this.set("useInterimTilesOnError",e)}getData(e){return super.getData(e)}};var Ut=h(6263),He=h(1113);const jn=class Nn extends fi.A{constructor(e){super(e),this.extentChanged=!0,this.renderedExtent_=null,this.renderedProjection=null,this.renderedTiles=[],this.newTiles_=!1,this.tmpExtent=(0,_.S5)(),this.tmpTileRange_=new He.A(0,0,0,0)}isDrawableTile(e){const t=this.getLayer(),i=e.getState(),s=t.getUseInterimTilesOnError();return i==ee.A.LOADED||i==ee.A.EMPTY||i==ee.A.ERROR&&!s}getTile(e,t,i,s){const r=s.pixelRatio,o=s.viewState.projection,a=this.getLayer();let u=a.getSource().getTile(e,t,i,r,o);return u.getState()==ee.A.ERROR&&a.getUseInterimTilesOnError()&&a.getPreload()>0&&(this.newTiles_=!0),this.isDrawableTile(u)||(u=u.getInterimTile()),u}getData(e){const t=this.frameState;if(!t)return null;const i=this.getLayer(),s=(0,O.Bb)(t.pixelToCoordinateTransform,e.slice()),r=i.getExtent();if(r&&!(0,_.Ym)(r,s))return null;const o=t.pixelRatio,a=t.viewState.projection,c=t.viewState,u=i.getRenderSource(),m=u.getTileGridForProjection(c.projection),p=u.getTilePixelRatio(t.pixelRatio);for(let x=m.getZForResolution(c.resolution);x>=m.getMinZoom();--x){const b=m.getTileCoordForCoordAndZ(s,x),R=u.getTile(x,b[1],b[2],o,a);if(!(R instanceof zt.A||R instanceof Ut.A)||R instanceof Ut.A&&R.getState()===ee.A.EMPTY)return null;if(R.getState()!==ee.A.LOADED)continue;const N=m.getOrigin(x),V=(0,Le.xq)(m.getTileSize(x)),G=m.getResolution(x),S=Math.floor(p*((s[0]-N[0])/G-b[1]*V[0])),K=Math.floor(p*((N[1]-s[1])/G-b[2]*V[1])),L=Math.round(p*u.getGutterForProjection(c.projection));return this.getImageData(R.getImage(),S+L,K+L)}return null}loadedTileCallback(e,t,i){return!!this.isDrawableTile(i)&&super.loadedTileCallback(e,t,i)}prepareFrame(e){return!!this.getLayer().getSource()}renderFrame(e,t){const i=e.layerStatesArray[e.layerIndex],s=e.viewState,r=s.projection,o=s.resolution,a=s.center,c=s.rotation,u=e.pixelRatio,m=this.getLayer(),p=m.getSource(),x=p.getRevision(),b=p.getTileGridForProjection(r),R=b.getZForResolution(o,p.zDirection),N=b.getResolution(R);let V=e.extent;const G=e.viewState.resolution,S=p.getTilePixelRatio(u),K=Math.round((0,_.RG)(V)/G*u),L=Math.round((0,_.Oq)(V)/G*u),H=i.extent&&(0,Y.SD)(i.extent,r);H&&(V=(0,_._N)(V,(0,Y.SD)(i.extent,r)));const z=N*K/2/S,de=N*L/2/S,ye=[a[0]-z,a[1]-de,a[0]+z,a[1]+de],U=b.getTileRangeForExtentAndZ(V,R),le={};le[R]={};const be=this.createLoadedTileFinder(p,r,le),Re=this.tmpExtent,Ze=this.tmpTileRange_;this.newTiles_=!1;const se=c?(0,_.Yw)(s.center,G,c,e.size):void 0;for(let Fe=U.minX;Fe<=U.maxX;++Fe)for(let fe=U.minY;fe<=U.maxY;++fe){if(c&&!b.tileCoordIntersectsViewport([R,Fe,fe],se))continue;const Ee=this.getTile(R,Fe,fe,e);if(this.isDrawableTile(Ee)){const ot=(0,y.v6)(this);if(Ee.getState()==ee.A.LOADED){le[R][Ee.tileCoord.toString()]=Ee;let at=Ee.inTransition(ot);at&&1!==i.opacity&&(Ee.endTransition(ot),at=!1),!this.newTiles_&&(at||!this.renderedTiles.includes(Ee))&&(this.newTiles_=!0)}if(1===Ee.getAlpha(ot,e.time))continue}const qt=b.getTileCoordChildTileRange(Ee.tileCoord,Ze,Re);let Et=!1;qt&&(Et=be(R+1,qt)),Et||b.forEachTileCoordParentTileRange(Ee.tileCoord,be,Ze,Re)}const Ke=N/o*u/S;(0,O.Zz)(this.pixelTransform,e.size[0]/2,e.size[1]/2,1/u,1/u,c,-K/2,-L/2);const Oe=(0,O.dI)(this.pixelTransform);this.useContainer(t,Oe,this.getBackground(e));const re=this.getRenderContext(e),Ue=this.context.canvas;(0,O.T9)(this.inversePixelTransform,this.pixelTransform),(0,O.Zz)(this.tempTransform,K/2,L/2,Ke,Ke,0,-K/2,-L/2),Ue.width!=K||Ue.height!=L?(Ue.width=K,Ue.height=L):this.containerReused||re.clearRect(0,0,K,L),H&&this.clipUnrotated(re,e,H),p.getInterpolate()||(re.imageSmoothingEnabled=!1),this.preRender(re,e),this.renderedTiles.length=0;let Ye,yt,Ae,tt=Object.keys(le).map(Number);tt.sort(P.V_),1!==i.opacity||this.containerReused&&!p.getOpaque(e.viewState.projection)?(Ye=[],yt=[]):tt=tt.reverse();for(let Fe=tt.length-1;Fe>=0;--Fe){const fe=tt[Fe],Ee=p.getTilePixelSize(fe,u,r),Et=b.getResolution(fe)/N,ot=Ee[0]*Et*Ke,at=Ee[1]*Et*Ke,ei=b.getTileCoordForCoordAndZ((0,_.Py)(ye),fe),Li=b.getTileCoordExtent(ei),Mt=(0,O.Bb)(this.tempTransform,[S*(Li[0]-ye[0])/N,S*(ye[3]-Li[3])/N]),Ms=S*p.getGutterForProjection(r),Si=le[fe];for(const Ls in Si){const lt=Si[Ls],Oi=lt.tileCoord,Fi=ei[1]-Oi[1],Ss=Math.round(Mt[0]-(Fi-1)*ot),Di=ei[2]-Oi[2],Os=Math.round(Mt[1]-(Di-1)*at),Be=Math.round(Mt[0]-Fi*ot),We=Math.round(Mt[1]-Di*at),xt=Ss-Be,bt=Os-We,ki=R===fe,Ni=ki&&1!==lt.getAlpha((0,y.v6)(this),e.time);let ti=!1;if(!Ni)if(Ye){Ae=[Be,We,Be+xt,We,Be+xt,We+bt,Be,We+bt];for(let Lt=0,Fs=Ye.length;Ltthis.getImageInternal(o,a,c,r),this.getInterpolate()),this.reprojectedRevision_=this.getRevision(),this.reprojectedImage_}getImageInternal(e,t,i,s){if(this.loader){const r=function Xn(l,e,t,i){const s=e/t,r=(0,_.q1)(l),o=(0,ve.mk)((0,_.RG)(l)/s,4),a=(0,ve.mk)((0,_.Oq)(l)/s,4),u=o+2*(0,ve.mk)((i-1)*o/2,4),m=(0,ve.mk)((i-1)*a/2,4);return(0,_.Bg)(r,s,0,[u,a+2*m])}(e,t,i,1),o=this.findNearestResolution(t);if(this.image&&(this.static_||this.wantedProjection_===s&&(this.wantedExtent_&&(0,_.ms)(this.wantedExtent_,r)||(0,_.ms)(this.image.getExtent(),r))&&(this.wantedResolution_&&Wt(this.wantedResolution_)===o||Wt(this.image.getResolution())===o)))return this.image;this.wantedProjection_=s,this.wantedExtent_=r,this.wantedResolution_=o,this.image=new _t.Ay(r,o,i,this.loader),this.image.addEventListener(T.A.CHANGE,this.handleImageChange.bind(this))}return this.image}handleImageChange(e){const t=e.target;let i;switch(t.getState()){case we.A.LOADING:this.loading=!0,i="imageloadstart";break;case we.A.LOADED:this.loading=!1,i="imageloadend";break;case we.A.ERROR:this.loading=!1,i="imageloaderror";break;default:return}this.hasListener(i)&&this.dispatchEvent(new Bn(i,t))}},xi=class $n extends Zn{constructor(e){const t=void 0!==e.crossOrigin?e.crossOrigin:null,i=void 0!==e.imageLoadFunction?e.imageLoadFunction:Hn;super({attributions:e.attributions,interpolate:e.interpolate,projection:(0,Y.Jt)(e.projection)}),this.url_=e.url,this.imageExtent_=e.imageExtent,this.image=null,this.image=new _t.Ay(this.imageExtent_,void 0,1,function Yn(l){const e=l.load||_t.D4,t=l.imageExtent,i=new Image;return null!==l.crossOrigin&&(i.crossOrigin=l.crossOrigin),()=>e(i,l.url).then(s=>{const r=(0,_.RG)(t)/s.width,o=(0,_.Oq)(t)/s.height;return{image:s,extent:t,resolution:r!==o?[r,o]:o,pixelRatio:1}})}({url:e.url,imageExtent:e.imageExtent,crossOrigin:t,load:(s,r)=>(this.image.setImage(s),i(this.image,r),(0,_t.D4)(s))})),this.image.addEventListener(T.A.CHANGE,this.handleImageChange.bind(this))}getImageExtent(){return this.imageExtent_}getImageInternal(e,t,i,s){return(0,_.HY)(e,this.image.getExtent())?this.image:null}getUrl(){return this.url_}};var Qn=h(4680),je=h(7709);const bi=class Jn extends Qn.A{clear(){for(;this.getCount()>0;)this.pop().release();super.clear()}expireCache(e){for(;this.canExpireCache()&&!(this.peekLast().getKey()in e);)this.pop().release()}pruneExceptNewestZ(){if(0===this.getCount())return;const e=this.peekFirstKey(),i=(0,je.K)(e)[0];this.forEach(s=>{s.tileCoord[0]!==i&&(this.remove((0,je.i7)(s.tileCoord)),s.release())})}};var Zt=h(8828),qn=h(8183);const rt=[0,0,0],Yt=class es{constructor(e){let t;if(this.minZoom=void 0!==e.minZoom?e.minZoom:0,this.resolutions_=e.resolutions,(0,_e.v)((0,P.WC)(this.resolutions_,(s,r)=>r-s,!0),"`resolutions` must be sorted in descending order"),!e.origins)for(let s=0,r=this.resolutions_.length-1;s{const o=new He.A(Math.min(0,s[0]),Math.max(s[0]-1,-1),Math.min(0,s[1]),Math.max(s[1]-1,-1));if(i){const a=this.getTileRangeForExtentAndZ(i,r);o.minX=Math.max(a.minX,o.minX),o.maxX=Math.min(a.maxX,o.maxX),o.minY=Math.max(a.minY,o.minY),o.maxY=Math.min(a.maxY,o.maxY)}return o}):i&&this.calculateTileRanges_(i)}forEachTileCoord(e,t,i){const s=this.getTileRangeForExtentAndZ(e,t);for(let r=s.minX,o=s.maxX;r<=o;++r)for(let a=s.minY,c=s.maxY;a<=c;++a)i([t,r,a])}forEachTileCoordParentTileRange(e,t,i,s){let r,o,a,c=null,u=e[0]-1;for(2===this.zoomFactor_?(o=e[1],a=e[2]):c=this.getTileCoordExtent(e,s);u>=this.minZoom;){if(void 0!==o&&void 0!==a?(o=Math.floor(o/2),a=Math.floor(a/2),r=(0,He.N)(o,o,a,a,i)):r=this.getTileRangeForExtentAndZ(c,u,i),t(u,r))return!0;--u}return!1}getExtent(){return this.extent_}getMaxZoom(){return this.maxZoom}getMinZoom(){return this.minZoom}getOrigin(e){return this.origin_?this.origin_:this.origins_[e]}getResolution(e){return this.resolutions_[e]}getResolutions(){return this.resolutions_}getTileCoordChildTileRange(e,t,i){if(e[0]this.maxZoom||t0?i:Math.max(r/t[0],s/t[1]);const o=e+1,a=new Array(o);for(let c=0;ci.highWaterMark&&(i.highWaterMark=e)}useTile(e,t,i,s){}};function ls(l,e){const t=/\{z\}/g,i=/\{x\}/g,s=/\{y\}/g,r=/\{-y\}/g;return function(o,a,c){if(o)return l.replace(t,o[0].toString()).replace(i,o[1].toString()).replace(s,o[2].toString()).replace(r,function(){const m=e.getFullTileRange(o[0]);if(!m)throw new Error("The {-y} placeholder requires a tile grid with extent");return(m.getHeight()-o[2]-1).toString()})}}class Qt extends as{constructor(e){super({attributions:e.attributions,cacheSize:e.cacheSize,opaque:e.opaque,projection:e.projection,state:e.state,tileGrid:e.tileGrid,tilePixelRatio:e.tilePixelRatio,wrapX:e.wrapX,transition:e.transition,interpolate:e.interpolate,key:e.key,attributionsCollapsible:e.attributionsCollapsible,zDirection:e.zDirection}),this.generateTileUrlFunction_=this.tileUrlFunction===Qt.prototype.tileUrlFunction,this.tileLoadFunction=e.tileLoadFunction,e.tileUrlFunction&&(this.tileUrlFunction=e.tileUrlFunction),this.urls=null,e.urls?this.setUrls(e.urls):e.url&&this.setUrl(e.url),this.tileLoadingKeys_={}}getTileLoadFunction(){return this.tileLoadFunction}getTileUrlFunction(){return Object.getPrototypeOf(this).tileUrlFunction===this.tileUrlFunction?this.tileUrlFunction.bind(this):this.tileUrlFunction}getUrls(){return this.urls}handleTileChange(e){const t=e.target,i=(0,y.v6)(t),s=t.getState();let r;s==ee.A.LOADING?(this.tileLoadingKeys_[i]=!0,r="tileloadstart"):i in this.tileLoadingKeys_&&(delete this.tileLoadingKeys_[i],r=s==ee.A.ERROR?"tileloaderror":s==ee.A.LOADED?"tileloadend":void 0),null!=r&&this.dispatchEvent(new os(r,t))}setTileLoadFunction(e){this.tileCache.clear(),this.tileLoadFunction=e,this.changed()}setTileUrlFunction(e,t){this.tileUrlFunction=e,this.tileCache.pruneExceptNewestZ(),typeof t<"u"?this.setKey(t):this.changed()}setUrl(e){const t=function hs(l){const e=[];let t=/\{([a-z])-([a-z])\}/.exec(l);if(t){const i=t[1].charCodeAt(0),s=t[2].charCodeAt(0);let r;for(r=i;r<=s;++r)e.push(l.replace(t[0],String.fromCharCode(r)));return e}if(t=/\{(\d+)-(\d+)\}/.exec(l),t){const i=parseInt(t[2],10);for(let s=parseInt(t[1],10);s<=i;s++)e.push(l.replace(t[0],s.toString()));return e}return e.push(l),e}(e);this.urls=t,this.setUrls(t)}setUrls(e){this.urls=e;const t=e.join("\n");this.generateTileUrlFunction_?this.setTileUrlFunction(function cs(l,e){const t=l.length,i=new Array(t);for(let s=0;sthis.getTileInternal(V,G,S,K,o),this.reprojectionErrorThreshold_,this.renderReprojectionEdges_,this.tileOptions);return N.key=p,u?(N.interimTile=u,N.refreshInterimChain(),a.replace(m,N)):a.set(m,N),N}getTileInternal(e,t,i,s,r){let o=null;const a=(0,je.dp)(e,t,i),c=this.getKey();if(this.tileCache.containsKey(a)){if(o=this.tileCache.get(a),o.key!=c){const u=o;o=this.createTile_(e,t,i,s,r,c),o.interimTile=u.getState()==ee.A.IDLE?u.interimTile:u,o.refreshInterimChain(),this.tileCache.replace(a,o)}}else o=this.createTile_(e,t,i,s,r,c),this.tileCache.set(a,o);return o}setRenderReprojectionEdges(e){if(this.renderReprojectionEdges_!=e){this.renderReprojectionEdges_=e;for(const t in this.tileCacheForProjection)this.tileCacheForProjection[t].clear();this.changed()}}setTileGridForProjection(e,t){const i=(0,Y.Jt)(e);if(i){const s=(0,y.v6)(i);s in this.tileGridForProjection||(this.tileGridForProjection[s]=t)}}clear(){super.clear();for(const e in this.tileCacheForProjection)this.tileCacheForProjection[e].clear()}},wi=class ps extends fs{constructor(e){const t=void 0!==(e=e||{}).projection?e.projection:"EPSG:3857",i=void 0!==e.tileGrid?e.tileGrid:function ns(l){const e=l||{},t=e.extent||(0,Y.Jt)("EPSG:3857").getExtent(),i={extent:t,minZoom:e.minZoom,tileSize:e.tileSize,resolutions:Ci(t,e.maxZoom,e.tileSize,e.maxResolution)};return new Yt(i)}({extent:$t(t),maxResolution:e.maxResolution,maxZoom:e.maxZoom,minZoom:e.minZoom,tileSize:e.tileSize});super({attributions:e.attributions,cacheSize:e.cacheSize,crossOrigin:e.crossOrigin,interpolate:e.interpolate,opaque:e.opaque,projection:t,reprojectionErrorThreshold:e.reprojectionErrorThreshold,tileGrid:i,tileLoadFunction:e.tileLoadFunction,tilePixelRatio:e.tilePixelRatio,tileUrlFunction:e.tileUrlFunction,url:e.url,urls:e.urls,wrapX:void 0===e.wrapX||e.wrapX,transition:e.transition,attributionsCollapsible:e.attributionsCollapsible,zDirection:e.zDirection}),this.gutter_=void 0!==e.gutter?e.gutter:0}getGutter(){return this.gutter_}},vs=class _s extends wi{constructor(e){super({opaque:!1,projection:(e=e||{}).projection,tileGrid:e.tileGrid,wrapX:void 0===e.wrapX||e.wrapX,zDirection:e.zDirection,url:e.template||"z:{z} x:{x} y:{y}",tileLoadFunction:(t,i)=>{const s=t.getTileCoord()[0],r=(0,Le.xq)(this.tileGrid.getTileSize(s)),o=(0,n.Y)(r[0],r[1]);o.strokeStyle="grey",o.strokeRect(.5,.5,r[0]+.5,r[1]+.5),o.fillStyle="grey",o.strokeStyle="white",o.textAlign="center",o.textBaseline="middle",o.font="24px sans-serif",o.lineWidth=4,o.strokeText(i,r[0]/2,r[1]/2,r[0]),o.fillText(i,r[0]/2,r[1]/2,r[0]),t.setImage(o.canvas)}})}};var Ii=h(5862),Ri=h(1043),At=h(5637),Pt=h(4688),ys=h(2872),Es=h(1633),xs=h(8141),bs=h(9437),Ts=h(4119),Jt=h(4907),vt=h(1182),Ai=h(6211),Cs=h(6372),ws=h(3738);const Is=["olMapContainer"],Rs=l=>({"loading-skeleton":l});function As(l,e){if(1&l&&(v.j41(0,"div",3),v.EFF(1),v.k0s()),2&l){const t=v.XpG();v.xc7("display",t.isOverviewMapOpened?"grid":"none"),v.R7$(),v.SpI("\n",t.magnificationLevel,"x\n")}}const Pi=new Ri.Ay({fill:new At.A({color:"transparent"}),stroke:new Pt.A({color:"red",lineDash:[10,10],width:2}),image:new ys.A({radius:5,stroke:new Pt.A({color:"rgba(0, 0, 0, 0.7)"}),fill:new At.A({color:"rgba(255, 255, 255, 0.2)"})})}),Mi=new Ri.Ay({fill:new At.A({color:"transparent"}),stroke:new Pt.A({color:"yellow",width:2}),image:new Es.A({fill:new At.A({color:"transparent"}),stroke:new Pt.A({color:"yellow",width:2}),points:4,radius:5,angle:Math.PI/4})});let Ps=(()=>{class l{constructor(t,i,s,r){this.imageViewerPageStore=t,this.dicomwebService=i,this.olTileViewerElementRef=s,this.cdRef=r,this.ENABLE_SERVER_INTERPOLATION=Ts.c.ENABLE_SERVER_INTERPOLATION??!1,this.isThumbnail=!1,this.isLabelOrOverviewImage=!1,this.olMapLoaded=new v.bkB,this.addedInteraction=null,this.caseId="",this.olMap=null,this.isLoaded=!1,this.disableContextMenuEdit=!1,this.disableContextMenuModifyShapes=!1,this.slideOverviewOpened=!0,this.showXYZCoordinates=!1,this.magnificationLevel="0",this.isOverviewMapOpened=!1,this.iccProfile=vt.PQ.NONE,window.addEventListener("resize",()=>{this.updateTextBoxWidth()}),this.olMapLoaded.subscribe(()=>{this.isLoaded=!0,this.cdRef.detectChanges()}),this.ENABLE_SERVER_INTERPOLATION&&this.imageViewerPageStore.iccProfile$.subscribe(o=>{this.iccProfile=o??vt.PQ.NONE,this.setupViewer()}),this.imageViewerPageStore.showXYZCoordinates$.subscribe(o=>{this.showXYZCoordinates=o,this.setupDebugLayerVisibilty()})}ngOnChanges(){this.slideDescriptor&&this.slideInfo&&this.setupViewer()}setupViewer(){if(this.slideDescriptor&&this.slideInfo&&(this.resetDisplay(),this.slideInfo)){if(this.isLabelOrOverviewImage)return void this.drawImgLabel(this.slideInfo);if(this.slideInfo.isFlatImage)return void this.flatImage();if(this.isThumbnail)return void this.drawImgThumbnail(this.slideInfo);this.initializeOpenLayerSlideViewer(this.slideInfo)}}flatImage(){var t=this;if(!this.slideInfo)return;const i=this.slideInfo,s=[0,0,this.slideInfo.size.x??1024,this.slideInfo.size.y??968],r=new Y.MF({code:"flat-image",units:"pixels",extent:s}),a={url:"",projection:r,imageExtent:s,imageLoadFunction:function(){var N=(0,d.A)(function*(V,G){const S=V.getImage(),L=[...i.levelMap][0],H=L.properties[0].frames,z=L?.properties[0].instanceUid??"";t.dicomwebService.getEncodedImageTile(t.slideDescriptor?.id??"",z,H).subscribe(ye=>{const U=t.imageDataToImageUrl(ye);S instanceof HTMLImageElement&&(S.src=U)})});return function(G,S){return N.apply(this,arguments)}}()},m={extent:s,constrainOnlyCenter:!0,center:(0,_.q1)(s),zoom:.5,minZoom:.5,maxZoom:8,projection:r},p=new Z.Ay(m),x=new li({collapsed:!1,view:new Z.Ay(m),layers:[new pi({source:new xi(a)})]}),b=x.getOverviewMap().on("loadend",()=>{b&&(0,vi.e)(b);const[,,N,V]=s;this.setOverviewAspectRatio(`${N}/${V}`)}),R=new pi({source:new xi(a),properties:{name:"flat-image-layer",title:this.slideInfo?.slideName??""}});this.isThumbnail?(p.setMaxZoom(.5),this.olMap=new ut({layers:[R],controls:[],interactions:[],target:this.olMapContainer.nativeElement,view:p})):this.olMap=new ut({layers:[R],controls:[x],target:this.olMapContainer.nativeElement,view:p}),this.olMap?.once("postrender",N=>{this.olMapLoaded.emit(this.olMap)})}drawImgLabel(t){let i=t.associatedImages.find(o=>o.type===Jt.MV.LABEL);if(i||(i=t.associatedImages.find(o=>o.type===Jt.MV.OVERVIEW)),!i)return;const s=i?.instanceUid??"",r=this.slideDescriptor?.id??"";if(r&&s){const o=new Image;return o.className="thumbnail-image",this.dicomwebService.getImageSecondaryCapture(r,s,vt.jf.DEFAULT,this.iccProfile).subscribe(a=>{o.src=this.imageDataToImageUrl(a)}),this.olMapContainer.nativeElement.appendChild(o),void this.olMapLoaded.emit(this.olMap)}}drawImgThumbnail(t){const i=t.associatedImages.find(o=>o.type===Jt.MV.THUMBNAIL);if(!i)return this.initializeOpenLayerSlideViewer(t),void this.olMapLoaded.emit(this.olMap);const s=i?.instanceUid??"",r=this.slideDescriptor?.id??"";if(r&&s){const o=new Image;return o.className="thumbnail-image",this.dicomwebService.getImageSecondaryCapture(r,s,vt.jf.DEFAULT,this.iccProfile).subscribe(a=>{o.src=this.imageDataToImageUrl(a)}),this.olMapContainer.nativeElement.appendChild(o),void this.olMapLoaded.emit(this.olMap)}}getAllCoordinates(){const t=this.olMap?.getAllLayers()??[];if(2!==t.length)return;const i=t.find(r=>"draw-layer"===r.get("name"));return i?i.getSource()?.getFeatures()?.map(r=>r.getGeometry().getCoordinates()):void 0}initializeOpenLayerSlideViewer(t){let i=[],s=[];t.levelMap.forEach(U=>{i.push(U.width*U.pixelWidth*.001/U.width),s.push(U.tileSize)}),i=i.reverse(),s=s.reverse();const r=t.levelMap[t.levelMap.length-1],o={x:r.width*r.pixelWidth*.001,y:r.height*r.pixelHeight*.001},a=[0,-o.y,o.x,0],c=new Yt({extent:a,resolutions:i,tileSizes:s,origin:[0,0]}),p=new Y.MF({code:"custom-image",units:"m",extent:a}),x=new _n({units:"metric",bar:!0,text:!0,minWidth:140}),b=new wi({tileGrid:c,tileLoadFunction:U=>{const[le,be,Re]=U.tileCoord,se=[...t.levelMap].reverse()[le],{tileSize:Ke}=se,Oe=Math.ceil(Number(se?.width)/Ke),re=Math.ceil(Number(se?.height)/Ke),Ue=be+1+Oe*Re;Ue>Oe*re&&U.setState(ee.A.ERROR);const tt=se?.properties[0].instanceUid??"",Ye=se.downSampleMultiplier??0,Ae=Re+1===re&&se.height%se.tileSize!=0,Fe=be+1===Oe&&se.width%se.tileSize!=0;this.dicomwebService.getEncodedImageTile(this.slideDescriptor?.id??"",tt,Ue,Ye,this.iccProfile).pipe((0,xs.M)(fe=>{const Ee=this.imageDataToImageUrl(fe);U instanceof zt.A&&(Ae||Fe?this.cropTile(se,Ee,U,Fe,Ae):U.getImage().src=Ee)}),(0,bs.W)(fe=>(U.setState(ee.A.ERROR),fe))).subscribe()},tileUrlFunction:()=>"",projection:p}),R=new Bt({preload:3,source:b,properties:{name:"slide-layer",title:this.slideInfo?.slideName??""}}),N=new li({collapsed:!1,view:new Z.Ay({resolutions:[c.getResolution(0)],extent:a,projection:p,maxZoom:0,minZoom:0,zoom:0}),layers:[new Bt({source:b})]}),V=new Bt({source:new vs({tileGrid:c,projection:p}),properties:{name:"debug-layer"}}),G=new Ii.A({wrapX:!1}),S=new _i.A({source:G,style:[Mi],properties:{name:"draw-layer",title:"Annotations"}});S.setZIndex(100);const K=new Ii.A({wrapX:!1}),L=new _i.A({source:K,style:[Pi],properties:{name:"measure-layer"}});let z;if(this.isThumbnail)return void(z=new ut({target:this.olMapContainer.nativeElement,layers:[R],controls:[],interactions:[],view:new Z.Ay({resolutions:i,extent:a,constrainOnlyCenter:!0,center:(0,_.q1)(a),zoom:0,minZoom:0,maxZoom:0,projection:p})}));z=new ut({target:this.olMapContainer.nativeElement,controls:ii().extend([x]),layers:[R,V,S,L],view:new Z.Ay({resolutions:i,extent:a,constrainOnlyCenter:!0,center:(0,_.q1)(a),zoom:.75,minZoom:0,projection:p})});const de=new yn({coordinateFormat:U=>U?(U[0]=1e3*U[0],U[1]=1e3*U[1],(0,D.GP)(U,"{x}mm, {y}mm",2)):"",projection:p}),ye=new Rn({replace:!0,params:["x","y","z","r"]});z.addControl(de),z.addInteraction(ye),z.addInteraction(new Pn),z.addControl(new Tn),this.olMap=z,this.olMap?.once("postrender",U=>{this.olMapLoaded.emit(this.olMap);const le=N.getOverviewMap(),be=le.on("loadend",Ze=>{be&&(0,vi.e)(be),this.setOverviewAspectRatio(`${t.levelMap[0].width}/${t.levelMap[0].height}`),this.handleOverviewMapExpanding(le)});let Re=this.olMap?.getView().getResolution();Re&&(this.magnificationLevel=this.convertDecimalToFraction((0,Ai.FP)(Re)),this.cdRef.detectChanges()),this.olMap?.on("moveend",Ze=>{const se=this.olMap?.getView().getResolution()??0;(Re!==se||!this.magnificationLevel)&&(Re=se,this.magnificationLevel=this.convertDecimalToFraction((0,Ai.FP)(se)),this.cdRef.detectChanges())})}),this.setupDebugLayerVisibilty()}setupDebugLayerVisibilty(){this.olMap&&this.olMap.getAllLayers().find(i=>"debug-layer"===i.get("name"))?.setVisible(this.showXYZCoordinates)}convertDecimalToFraction(t){return this.decimalToFraction(t)}getInitialZoomByContainer(t){const i=this.olMapContainer.nativeElement.offsetHeight,s=this.olMapContainer.nativeElement.offsetWidth,r=[...t].reverse();let o=0;for(let a=0;a{let m=t.width;r&&(m=t.width%t.tileSize);let p=t.height;o&&(p=t.height%t.tileSize),u.drawImage(a,0,0,m,p,0,0,m,p),s.setImage(c)},a.src=i}handleOverviewMapExpanding(t){this.updateTextBoxWidth(),t.on("change:size",i=>{const s=this.olTileViewerElementRef.nativeElement.querySelector(".ol-overviewmap.ol-unselectable.ol-control");s&&(this.isOverviewMapOpened=!s.classList.contains("ol-collapsed"),this.isOverviewMapOpened&&this.updateTextBoxWidth(),this.cdRef.detectChanges())})}updateTextBoxWidth(){const t=this.olTileViewerElementRef.nativeElement.querySelector(".ol-overviewmap"),i=this.olTileViewerElementRef.nativeElement.querySelector(".zoom-level-label");i&&t&&(i.style.width=t.offsetWidth-2+"px",i.style.top=`${t.clientHeight+t.offsetTop+5}px`,i.style.display="grid")}resetDisplay(){this.olMapContainer.nativeElement.innerHTML=""}setOverviewAspectRatio(t="1/1"){const i=this.olTileViewerElementRef.nativeElement.querySelector(".ol-overviewmap");i&&(i.style.aspectRatio=t)}imageDataToImageUrl(t,i=vt.jf.WEBP){return`data:${i};base64,${t}`}static{this.\u0275fac=function(i){return new(i||l)(v.rXU(Cs.y),v.rXU(ws.w),v.rXU(v.aKT),v.rXU(v.gRc))}}static{this.\u0275cmp=v.VBU({type:l,selectors:[["ol-tile-viewer"]],viewQuery:function(i,s){if(1&i&&v.GBs(Is,7),2&i){let r;v.mGM(r=v.lsd())&&(s.olMapContainer=r.first)}},inputs:{slideDescriptor:"slideDescriptor",slideInfo:"slideInfo",isThumbnail:"isThumbnail",isLabelOrOverviewImage:"isLabelOrOverviewImage"},outputs:{olMapLoaded:"olMapLoaded"},features:[v.OA$],decls:3,vars:4,consts:[["olMapContainer",""],[1,"ol-map",3,"contextmenu","ngClass"],["class","zoom-level-label",3,"display",4,"ngIf"],[1,"zoom-level-label"]],template:function(i,s){if(1&i){const r=v.RV6();v.j41(0,"div",1,0),v.bIt("contextmenu",function(a){return v.eBV(r),v.Njj(a.preventDefault())}),v.k0s(),v.DNE(2,As,2,3,"div",2)}2&i&&(v.Y8G("ngClass",v.eq3(2,Rs,!s.isLoaded)),v.R7$(2),v.Y8G("ngIf",s.olMap&&!(null!=s.slideInfo&&s.slideInfo.isFlatImage)))},dependencies:[$.MD,$.YU,$.bT],styles:['[_nghost-%COMP%]{position:relative}.zoom-level-label[_ngcontent-%COMP%]{display:none;position:absolute;color:#212121;text-align:center;background:#fff;border:1px solid #1976d2;top:13em;right:1em}.ol-map[_ngcontent-%COMP%]{height:100%;background:#d3d3d3;background-image:linear-gradient(#eee 1px,transparent 0),linear-gradient(90deg,#eee 1px,transparent 0);background-size:100px 100px,100px 100px,20px 20px,20px 20px;position:relative}.loading-skeleton[_ngcontent-%COMP%]{background:linear-gradient(90deg,#d9d9d9 8%,#f5f5f5 18%,#d9d9d9 33%);border-radius:5px;background-size:200% 100%;animation:1.5s _ngcontent-%COMP%_shine linear infinite;z-index:2}@keyframes _ngcontent-%COMP%_shine{to{background-position-x:-200%}} :root, -shadowcsshost-no-combinator{--ol-background-color: white;--ol-accent-background-color: #f5f5f5;--ol-subtle-background-color: rgba(128, 128, 128, .25);--ol-partial-background-color: rgba(255, 255, 255, .75);--ol-foreground-color: #333;--ol-subtle-foreground-color: #1976d2;--ol-brand-color: #0af} .ol-tooltip{position:relative;background:#00000080;border-radius:4px;color:#fff;padding:4px 8px;opacity:.7;white-space:nowrap;font-size:12px;cursor:default;-webkit-user-select:none;user-select:none} .ol-tooltip-measure{opacity:1;font-weight:700} .ol-tooltip-static{background-color:#fc3;color:#000;border:1px solid white} .ol-tooltip-measure:before, .ol-tooltip-static:before{border-top:6px solid rgba(0,0,0,.5);border-right:6px solid transparent;border-left:6px solid transparent;content:"";position:absolute;bottom:-6px;margin-left:-7px;left:50%} .ol-tooltip-static:before{border-top-color:#fc3} .thumbnail-image{height:100%;width:100%;object-fit:cover} .ol-box{box-sizing:border-box;border-radius:2px;border:1.5px solid var(--ol-background-color);background-color:var(--ol-partial-background-color)} .ol-mouse-position{bottom:5em;right:8px;position:absolute;color:#5f6368;font-size:.7em} .ol-scale-line{background:var(--ol-partial-background-color);border-radius:4px;bottom:8px;left:8px;padding:2px;position:absolute} .ol-scale-line-inner{border:1px solid var(--ol-subtle-foreground-color);border-top:none;color:var(--ol-foreground-color);font-size:10px;text-align:center;margin:1px;will-change:contents,width;transition:all .25s} .ol-scale-bar{position:absolute;bottom:8px;right:1em} .ol-scale-bar-inner{display:flex} .ol-scale-step-marker{width:1px;height:15px;background-color:var(--ol-foreground-color);float:right;z-index:10} .ol-scale-step-text{position:absolute;bottom:-5px;font-size:10px;z-index:11;color:var(--ol-foreground-color);text-shadow:-1.5px 0 var(--ol-partial-background-color),0 1.5px var(--ol-partial-background-color),1.5px 0 var(--ol-partial-background-color),0 -1.5px var(--ol-partial-background-color)} .ol-scale-text{position:absolute;font-size:12px;text-align:center;bottom:25px;color:var(--ol-foreground-color);text-shadow:-1.5px 0 var(--ol-partial-background-color),0 1.5px var(--ol-partial-background-color),1.5px 0 var(--ol-partial-background-color),0 -1.5px var(--ol-partial-background-color)} .ol-scale-singlebar{position:relative;height:10px;z-index:9;box-sizing:border-box;border:1px solid var(--ol-foreground-color)} .ol-scale-singlebar-even{background-color:var(--ol-subtle-foreground-color)} .ol-scale-singlebar-odd{background-color:var(--ol-background-color)} .ol-unsupported{display:none} .ol-viewport, .ol-unselectable{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent} .ol-viewport canvas{all:unset} .ol-selectable{-webkit-touch-callout:default;-webkit-user-select:text;user-select:text} .ol-grabbing{cursor:grabbing} .ol-grab{cursor:move;cursor:grab} .ol-control{position:absolute;background-color:var(--ol-subtle-background-color);border-radius:4px} .ol-zoom{bottom:5em;right:.5em;display:grid;grid-template-columns:1fr 1fr;gap:.2em} .ol-rotate{bottom:5em;right:4em;transition:opacity .25s linear,visibility 0s linear} .ol-rotate.ol-hidden{opacity:0;visibility:hidden;transition:opacity .25s linear,visibility 0s linear .25s} .ol-zoom-extent{top:4.643em;left:.5em} .ol-full-screen{bottom:7em;right:.5em} .ol-control button{display:block;margin:1px;padding:0;color:var(--ol-subtle-foreground-color);font-weight:700;text-decoration:none;font-size:inherit;text-align:center;height:1.375em;width:1.375em;line-height:.4em;background-color:var(--ol-background-color);border:none;border-radius:2px} .ol-control button::-moz-focus-inner{border:none;padding:0} .ol-zoom-extent button{line-height:1.4em} .ol-compass{display:block;font-weight:400;will-change:transform} .ol-touch .ol-control button{font-size:1.5em} .ol-touch .ol-zoom-extent{top:5.5em} .ol-control button:hover, .ol-control button:focus{text-decoration:none;outline:1px solid var(--ol-subtle-foreground-color);color:var(--ol-foreground-color)} .ol-zoom .ol-zoom-in{border-radius:2px 2px 0 0} .ol-zoom .ol-zoom-out{border-radius:0 0 2px 2px} .ol-attribution{text-align:right;bottom:.5em;right:.5em;max-width:calc(100% - 1.3em);display:flex;flex-flow:row-reverse;align-items:center} .ol-attribution a{color:var(--ol-subtle-foreground-color);text-decoration:none} .ol-attribution ul{margin:0;padding:1px .5em;color:var(--ol-foreground-color);text-shadow:0 0 2px var(--ol-background-color);font-size:12px} .ol-attribution li{display:inline;list-style:none} .ol-attribution li:not(:last-child):after{content:" "} .ol-attribution img{max-height:2em;max-width:inherit;vertical-align:middle} .ol-attribution button{flex-shrink:0} .ol-attribution.ol-collapsed ul{display:none} .ol-attribution:not(.ol-collapsed){background:var(--ol-partial-background-color)} .ol-attribution.ol-uncollapsible{bottom:0;right:0;border-radius:4px 0 0} .ol-attribution.ol-uncollapsible img{margin-top:-.2em;max-height:1.6em} .ol-attribution.ol-uncollapsible button{display:none} .ol-zoomslider{top:4.5em;left:.5em;height:200px} .ol-zoomslider button{position:relative;height:10px} .ol-touch .ol-zoomslider{top:5.5em} .ol-overviewmap{top:1em;right:1em;height:25%;aspect-ratio:3/2} .ol-overviewmap.ol-unselectable.ol-control.ol-collapsed{height:unset} .ol-overviewmap.ol-uncollapsible{bottom:0;left:0;border-radius:0 4px 0 0} .ol-overviewmap .ol-overviewmap-map, .ol-overviewmap button{display:block} .ol-overviewmap .ol-overviewmap-map{border:1px solid var(--ol-subtle-foreground-color);height:100%;width:100%} .ol-overviewmap:not(.ol-collapsed) button{bottom:0;left:0;position:absolute} .ol-overviewmap.ol-collapsed .ol-overviewmap-map, .ol-overviewmap.ol-uncollapsible button{display:none} .ol-overviewmap:not(.ol-collapsed){background:var(--ol-subtle-background-color)} .ol-overviewmap-box{border:2px solid #1976d2} .ol-overviewmap .ol-overviewmap-box:hover{cursor:move}']})}}return l})()},6211:(De,oe,h)=>{h.d(oe,{CB:()=>B,FP:()=>Q});const Z=[100,80,40,20,10,5,2.5,5/4,1,5/8,5/16,5/32,5/64,5/128,0];function Q(M){return B(1e3*M)}function B(M){if(M<=0)return 0;const J=.01/M;return Z.reduce((ae,y)=>Math.abs(y-J){h.d(oe,{u:()=>$});var d=h(6354);function $(v){return(0,d.T)(()=>v)}},9631:(De,oe,h)=>{h.d(oe,{fg:()=>ge,fS:()=>Ie});var d=h(4085),$=h(6860),v=h(4438),Z=h(9046),Q=h(983),B=h(1413);let M=(()=>{class C{static \u0275fac=function(n){return new(n||C)};static \u0275cmp=v.VBU({type:C,selectors:[["ng-component"]],hostAttrs:["cdk-text-field-style-loader",""],decls:0,vars:0,template:function(n,E){},styles:["textarea.cdk-textarea-autosize{resize:none}textarea.cdk-textarea-autosize-measuring{padding:2px 0 !important;box-sizing:content-box !important;height:auto !important;overflow:hidden !important}textarea.cdk-textarea-autosize-measuring-firefox{padding:2px 0 !important;box-sizing:content-box !important;height:0 !important}@keyframes cdk-text-field-autofill-start{/*!*/}@keyframes cdk-text-field-autofill-end{/*!*/}.cdk-text-field-autofill-monitored:-webkit-autofill{animation:cdk-text-field-autofill-start 0s 1ms}.cdk-text-field-autofill-monitored:not(:-webkit-autofill){animation:cdk-text-field-autofill-end 0s 1ms}"],encapsulation:2,changeDetection:0})}return C})();const J=(0,$.BQ)({passive:!0});let pe=(()=>{class C{_platform=(0,v.WQX)($.OD);_ngZone=(0,v.WQX)(v.SKi);_styleLoader=(0,v.WQX)(Z.l);_monitoredElements=new Map;constructor(){}monitor(g){if(!this._platform.isBrowser)return Q.w;this._styleLoader.load(M);const n=(0,d.i8)(g),E=this._monitoredElements.get(n);if(E)return E.subject;const A=new B.B,T="cdk-text-field-autofilled",he=Te=>{"cdk-text-field-autofill-start"!==Te.animationName||n.classList.contains(T)?"cdk-text-field-autofill-end"===Te.animationName&&n.classList.contains(T)&&(n.classList.remove(T),this._ngZone.run(()=>A.next({target:Te.target,isAutofilled:!1}))):(n.classList.add(T),this._ngZone.run(()=>A.next({target:Te.target,isAutofilled:!0})))};return this._ngZone.runOutsideAngular(()=>{n.addEventListener("animationstart",he,J),n.classList.add("cdk-text-field-autofill-monitored")}),this._monitoredElements.set(n,{subject:A,unlisten:()=>{n.removeEventListener("animationstart",he,J)}}),A}stopMonitoring(g){const n=(0,d.i8)(g),E=this._monitoredElements.get(n);E&&(E.unlisten(),E.subject.complete(),n.classList.remove("cdk-text-field-autofill-monitored"),n.classList.remove("cdk-text-field-autofilled"),this._monitoredElements.delete(n))}ngOnDestroy(){this._monitoredElements.forEach((g,n)=>this.stopMonitoring(n))}static \u0275fac=function(n){return new(n||C)};static \u0275prov=v.jDH({token:C,factory:C.\u0275fac,providedIn:"root"})}return C})(),O=(()=>{class C{static \u0275fac=function(n){return new(n||C)};static \u0275mod=v.$C({type:C});static \u0275inj=v.G2t({})}return C})();var _=h(9888),q=h(9417),I=h(3),D=h(2408);const ne=new v.nKC("MAT_INPUT_VALUE_ACCESSOR"),xe=["button","checkbox","file","hidden","image","radio","range","reset","submit"],me=new v.nKC("MAT_INPUT_CONFIG");let ge=(()=>{class C{_elementRef=(0,v.WQX)(v.aKT);_platform=(0,v.WQX)($.OD);ngControl=(0,v.WQX)(q.vO,{optional:!0,self:!0});_autofillMonitor=(0,v.WQX)(pe);_ngZone=(0,v.WQX)(v.SKi);_formField=(0,v.WQX)(D.xb,{optional:!0});_renderer=(0,v.WQX)(v.sFG);_uid=(0,v.WQX)(_.g7).getId("mat-input-");_previousNativeValue;_inputValueAccessor;_signalBasedValueAccessor;_previousPlaceholder;_errorStateTracker;_config=(0,v.WQX)(me,{optional:!0});_cleanupIosKeyup;_cleanupWebkitWheel;_formFieldDescribedBy;_isServer;_isNativeSelect;_isTextarea;_isInFormField;focused=!1;stateChanges=new B.B;controlType="mat-input";autofilled=!1;get disabled(){return this._disabled}set disabled(g){this._disabled=(0,d.he)(g),this.focused&&(this.focused=!1,this.stateChanges.next())}_disabled=!1;get id(){return this._id}set id(g){this._id=g||this._uid}_id;placeholder;name;get required(){return this._required??this.ngControl?.control?.hasValidator(q.k0.required)??!1}set required(g){this._required=(0,d.he)(g)}_required;get type(){return this._type}set type(g){const n=this._type;this._type=g||"text",this._validateType(),!this._isTextarea&&(0,$.MU)().has(this._type)&&(this._elementRef.nativeElement.type=this._type),this._type!==n&&this._ensureWheelDefaultBehavior()}_type="text";get errorStateMatcher(){return this._errorStateTracker.matcher}set errorStateMatcher(g){this._errorStateTracker.matcher=g}userAriaDescribedBy;get value(){return this._signalBasedValueAccessor?this._signalBasedValueAccessor.value():this._inputValueAccessor.value}set value(g){g!==this.value&&(this._signalBasedValueAccessor?this._signalBasedValueAccessor.value.set(g):this._inputValueAccessor.value=g,this.stateChanges.next())}get readonly(){return this._readonly}set readonly(g){this._readonly=(0,d.he)(g)}_readonly=!1;disabledInteractive;get errorState(){return this._errorStateTracker.errorState}set errorState(g){this._errorStateTracker.errorState=g}_neverEmptyInputTypes=["date","datetime","datetime-local","month","time","week"].filter(g=>(0,$.MU)().has(g));constructor(){const g=(0,v.WQX)(q.cV,{optional:!0}),n=(0,v.WQX)(q.j4,{optional:!0}),E=(0,v.WQX)(I.es),A=(0,v.WQX)(ne,{optional:!0,self:!0}),T=this._elementRef.nativeElement,he=T.nodeName.toLowerCase();A?(0,v.Hps)(A.value)?this._signalBasedValueAccessor=A:this._inputValueAccessor=A:this._inputValueAccessor=T,this._previousNativeValue=this.value,this.id=this.id,this._platform.IOS&&this._ngZone.runOutsideAngular(()=>{this._cleanupIosKeyup=this._renderer.listen(T,"keyup",this._iOSKeyupListener)}),this._errorStateTracker=new I.X0(E,this.ngControl,n,g,this.stateChanges),this._isServer=!this._platform.isBrowser,this._isNativeSelect="select"===he,this._isTextarea="textarea"===he,this._isInFormField=!!this._formField,this.disabledInteractive=this._config?.disabledInteractive||!1,this._isNativeSelect&&(this.controlType=T.multiple?"mat-native-select-multiple":"mat-native-select"),this._signalBasedValueAccessor&&(0,v.QZP)(()=>{this._signalBasedValueAccessor.value(),this.stateChanges.next()})}ngAfterViewInit(){this._platform.isBrowser&&this._autofillMonitor.monitor(this._elementRef.nativeElement).subscribe(g=>{this.autofilled=g.isAutofilled,this.stateChanges.next()})}ngOnChanges(){this.stateChanges.next()}ngOnDestroy(){this.stateChanges.complete(),this._platform.isBrowser&&this._autofillMonitor.stopMonitoring(this._elementRef.nativeElement),this._cleanupIosKeyup?.(),this._cleanupWebkitWheel?.()}ngDoCheck(){this.ngControl&&(this.updateErrorState(),null!==this.ngControl.disabled&&this.ngControl.disabled!==this.disabled&&(this.disabled=this.ngControl.disabled,this.stateChanges.next())),this._dirtyCheckNativeValue(),this._dirtyCheckPlaceholder()}focus(g){this._elementRef.nativeElement.focus(g)}updateErrorState(){this._errorStateTracker.updateErrorState()}_focusChanged(g){if(g!==this.focused){if(!this._isNativeSelect&&g&&this.disabled&&this.disabledInteractive){const n=this._elementRef.nativeElement;"number"===n.type?(n.type="text",n.setSelectionRange(0,0),n.type="number"):n.setSelectionRange(0,0)}this.focused=g,this.stateChanges.next()}}_onInput(){}_dirtyCheckNativeValue(){const g=this._elementRef.nativeElement.value;this._previousNativeValue!==g&&(this._previousNativeValue=g,this.stateChanges.next())}_dirtyCheckPlaceholder(){const g=this._getPlaceholder();if(g!==this._previousPlaceholder){const n=this._elementRef.nativeElement;this._previousPlaceholder=g,g?n.setAttribute("placeholder",g):n.removeAttribute("placeholder")}}_getPlaceholder(){return this.placeholder||null}_validateType(){xe.indexOf(this._type)}_isNeverEmpty(){return this._neverEmptyInputTypes.indexOf(this._type)>-1}_isBadInput(){let g=this._elementRef.nativeElement.validity;return g&&g.badInput}get empty(){return!(this._isNeverEmpty()||this._elementRef.nativeElement.value||this._isBadInput()||this.autofilled)}get shouldLabelFloat(){if(this._isNativeSelect){const g=this._elementRef.nativeElement,n=g.options[0];return this.focused||g.multiple||!this.empty||!!(g.selectedIndex>-1&&n&&n.label)}return this.focused&&!this.disabled||!this.empty}setDescribedByIds(g){const n=this._elementRef.nativeElement,E=n.getAttribute("aria-describedby");let A;if(E){const T=this._formFieldDescribedBy||g;A=g.concat(E.split(" ").filter(he=>he&&!T.includes(he)))}else A=g;this._formFieldDescribedBy=g,A.length?n.setAttribute("aria-describedby",A.join(" ")):n.removeAttribute("aria-describedby")}onContainerClick(){this.focused||this.focus()}_isInlineSelect(){const g=this._elementRef.nativeElement;return this._isNativeSelect&&(g.multiple||g.size>1)}_iOSKeyupListener=g=>{const n=g.target;!n.value&&0===n.selectionStart&&0===n.selectionEnd&&(n.setSelectionRange(1,1),n.setSelectionRange(0,0))};_webkitBlinkWheelListener=()=>{};_ensureWheelDefaultBehavior(){this._cleanupWebkitWheel?.(),"number"===this._type&&(this._platform.BLINK||this._platform.WEBKIT)&&(this._cleanupWebkitWheel=this._renderer.listen(this._elementRef.nativeElement,"wheel",this._webkitBlinkWheelListener))}_getReadonlyAttribute(){return this._isNativeSelect?null:this.readonly||this.disabled&&this.disabledInteractive?"true":null}static \u0275fac=function(n){return new(n||C)};static \u0275dir=v.FsC({type:C,selectors:[["input","matInput",""],["textarea","matInput",""],["select","matNativeControl",""],["input","matNativeControl",""],["textarea","matNativeControl",""]],hostAttrs:[1,"mat-mdc-input-element"],hostVars:21,hostBindings:function(n,E){1&n&&v.bIt("focus",function(){return E._focusChanged(!0)})("blur",function(){return E._focusChanged(!1)})("input",function(){return E._onInput()}),2&n&&(v.Mr5("id",E.id)("disabled",E.disabled&&!E.disabledInteractive)("required",E.required),v.BMQ("name",E.name||null)("readonly",E._getReadonlyAttribute())("aria-disabled",E.disabled&&E.disabledInteractive?"true":null)("aria-invalid",E.empty&&E.required?null:E.errorState)("aria-required",E.required)("id",E.id),v.AVh("mat-input-server",E._isServer)("mat-mdc-form-field-textarea-control",E._isInFormField&&E._isTextarea)("mat-mdc-form-field-input-control",E._isInFormField)("mat-mdc-input-disabled-interactive",E.disabledInteractive)("mdc-text-field__input",E._isInFormField)("mat-mdc-native-select-inline",E._isInlineSelect()))},inputs:{disabled:"disabled",id:"id",placeholder:"placeholder",name:"name",required:"required",type:"type",errorStateMatcher:"errorStateMatcher",userAriaDescribedBy:[0,"aria-describedby","userAriaDescribedBy"],value:"value",readonly:"readonly",disabledInteractive:[2,"disabledInteractive","disabledInteractive",v.L39]},exportAs:["matInput"],features:[v.Jv_([{provide:D.qT,useExisting:C}]),v.GFd,v.OA$]})}return C})(),Ie=(()=>{class C{static \u0275fac=function(n){return new(n||C)};static \u0275mod=v.$C({type:C});static \u0275inj=v.G2t({imports:[I.yE,D.RG,D.RG,O,I.yE]})}return C})()},9183:(De,oe,h)=>{h.d(oe,{D6:()=>O,LG:()=>ae});var d=h(4438),$=h(177),v=h(3);const Z=["determinateSpinner"];function Q(_,q){if(1&_&&(d.qSk(),d.j41(0,"svg",11),d.nrm(1,"circle",12),d.k0s()),2&_){const I=d.XpG();d.BMQ("viewBox",I._viewBox()),d.R7$(),d.xc7("stroke-dasharray",I._strokeCircumference(),"px")("stroke-dashoffset",I._strokeCircumference()/2,"px")("stroke-width",I._circleStrokeWidth(),"%"),d.BMQ("r",I._circleRadius())}}const B=new d.nKC("mat-progress-spinner-default-options",{providedIn:"root",factory:function M(){return{diameter:J}}}),J=100;let ae=(()=>{class _{_elementRef=(0,d.WQX)(d.aKT);_noopAnimations;get color(){return this._color||this._defaultColor}set color(I){this._color=I}_color;_defaultColor="primary";_determinateCircle;constructor(){const I=(0,d.WQX)(d.bc$,{optional:!0}),D=(0,d.WQX)(B);this._noopAnimations="NoopAnimations"===I&&!!D&&!D._forceAnimations,this.mode="mat-spinner"===this._elementRef.nativeElement.nodeName.toLowerCase()?"indeterminate":"determinate",D&&(D.color&&(this.color=this._defaultColor=D.color),D.diameter&&(this.diameter=D.diameter),D.strokeWidth&&(this.strokeWidth=D.strokeWidth))}mode;get value(){return"determinate"===this.mode?this._value:0}set value(I){this._value=Math.max(0,Math.min(100,I||0))}_value=0;get diameter(){return this._diameter}set diameter(I){this._diameter=I||0}_diameter=J;get strokeWidth(){return this._strokeWidth??this.diameter/10}set strokeWidth(I){this._strokeWidth=I||0}_strokeWidth;_circleRadius(){return(this.diameter-10)/2}_viewBox(){const I=2*this._circleRadius()+this.strokeWidth;return`0 0 ${I} ${I}`}_strokeCircumference(){return 2*Math.PI*this._circleRadius()}_strokeDashOffset(){return"determinate"===this.mode?this._strokeCircumference()*(100-this._value)/100:null}_circleStrokeWidth(){return this.strokeWidth/this.diameter*100}static \u0275fac=function(D){return new(D||_)};static \u0275cmp=d.VBU({type:_,selectors:[["mat-progress-spinner"],["mat-spinner"]],viewQuery:function(D,X){if(1&D&&d.GBs(Z,5),2&D){let ne;d.mGM(ne=d.lsd())&&(X._determinateCircle=ne.first)}},hostAttrs:["role","progressbar","tabindex","-1",1,"mat-mdc-progress-spinner","mdc-circular-progress"],hostVars:18,hostBindings:function(D,X){2&D&&(d.BMQ("aria-valuemin",0)("aria-valuemax",100)("aria-valuenow","determinate"===X.mode?X.value:null)("mode",X.mode),d.HbH("mat-"+X.color),d.xc7("width",X.diameter,"px")("height",X.diameter,"px")("--mdc-circular-progress-size",X.diameter+"px")("--mdc-circular-progress-active-indicator-width",X.diameter+"px"),d.AVh("_mat-animation-noopable",X._noopAnimations)("mdc-circular-progress--indeterminate","indeterminate"===X.mode))},inputs:{color:"color",mode:"mode",value:[2,"value","value",d.Udg],diameter:[2,"diameter","diameter",d.Udg],strokeWidth:[2,"strokeWidth","strokeWidth",d.Udg]},exportAs:["matProgressSpinner"],features:[d.GFd],decls:14,vars:11,consts:[["circle",""],["determinateSpinner",""],["aria-hidden","true",1,"mdc-circular-progress__determinate-container"],["xmlns","http://www.w3.org/2000/svg","focusable","false",1,"mdc-circular-progress__determinate-circle-graphic"],["cx","50%","cy","50%",1,"mdc-circular-progress__determinate-circle"],["aria-hidden","true",1,"mdc-circular-progress__indeterminate-container"],[1,"mdc-circular-progress__spinner-layer"],[1,"mdc-circular-progress__circle-clipper","mdc-circular-progress__circle-left"],[3,"ngTemplateOutlet"],[1,"mdc-circular-progress__gap-patch"],[1,"mdc-circular-progress__circle-clipper","mdc-circular-progress__circle-right"],["xmlns","http://www.w3.org/2000/svg","focusable","false",1,"mdc-circular-progress__indeterminate-circle-graphic"],["cx","50%","cy","50%"]],template:function(D,X){if(1&D&&(d.DNE(0,Q,2,8,"ng-template",null,0,d.C5r),d.j41(2,"div",2,1),d.qSk(),d.j41(4,"svg",3),d.nrm(5,"circle",4),d.k0s()(),d.joV(),d.j41(6,"div",5)(7,"div",6)(8,"div",7),d.eu8(9,8),d.k0s(),d.j41(10,"div",9),d.eu8(11,8),d.k0s(),d.j41(12,"div",10),d.eu8(13,8),d.k0s()()()),2&D){const ne=d.sdS(1);d.R7$(4),d.BMQ("viewBox",X._viewBox()),d.R7$(),d.xc7("stroke-dasharray",X._strokeCircumference(),"px")("stroke-dashoffset",X._strokeDashOffset(),"px")("stroke-width",X._circleStrokeWidth(),"%"),d.BMQ("r",X._circleRadius()),d.R7$(4),d.Y8G("ngTemplateOutlet",ne),d.R7$(2),d.Y8G("ngTemplateOutlet",ne),d.R7$(2),d.Y8G("ngTemplateOutlet",ne)}},dependencies:[$.T3],styles:[".mat-mdc-progress-spinner{display:block;overflow:hidden;line-height:0;position:relative;direction:ltr;transition:opacity 250ms cubic-bezier(0.4, 0, 0.6, 1)}.mat-mdc-progress-spinner circle{stroke-width:var(--mdc-circular-progress-active-indicator-width, 4px)}.mat-mdc-progress-spinner._mat-animation-noopable,.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__determinate-circle{transition:none !important}.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__indeterminate-circle-graphic,.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__spinner-layer,.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__indeterminate-container{animation:none !important}.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__indeterminate-container circle{stroke-dasharray:0 !important}@media(forced-colors: active){.mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic,.mat-mdc-progress-spinner .mdc-circular-progress__determinate-circle{stroke:currentColor;stroke:CanvasText}}.mdc-circular-progress__determinate-container,.mdc-circular-progress__indeterminate-circle-graphic,.mdc-circular-progress__indeterminate-container,.mdc-circular-progress__spinner-layer{position:absolute;width:100%;height:100%}.mdc-circular-progress__determinate-container{transform:rotate(-90deg)}.mdc-circular-progress--indeterminate .mdc-circular-progress__determinate-container{opacity:0}.mdc-circular-progress__indeterminate-container{font-size:0;letter-spacing:0;white-space:nowrap;opacity:0}.mdc-circular-progress--indeterminate .mdc-circular-progress__indeterminate-container{opacity:1;animation:mdc-circular-progress-container-rotate 1568.2352941176ms linear infinite}.mdc-circular-progress__determinate-circle-graphic,.mdc-circular-progress__indeterminate-circle-graphic{fill:rgba(0,0,0,0)}.mat-mdc-progress-spinner .mdc-circular-progress__determinate-circle,.mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic{stroke:var(--mdc-circular-progress-active-indicator-color, var(--mat-sys-primary))}@media(forced-colors: active){.mat-mdc-progress-spinner .mdc-circular-progress__determinate-circle,.mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic{stroke:CanvasText}}.mdc-circular-progress__determinate-circle{transition:stroke-dashoffset 500ms cubic-bezier(0, 0, 0.2, 1)}.mdc-circular-progress__gap-patch{position:absolute;top:0;left:47.5%;box-sizing:border-box;width:5%;height:100%;overflow:hidden}.mdc-circular-progress__gap-patch .mdc-circular-progress__indeterminate-circle-graphic{left:-900%;width:2000%;transform:rotate(180deg)}.mdc-circular-progress__circle-clipper .mdc-circular-progress__indeterminate-circle-graphic{width:200%}.mdc-circular-progress__circle-right .mdc-circular-progress__indeterminate-circle-graphic{left:-100%}.mdc-circular-progress--indeterminate .mdc-circular-progress__circle-left .mdc-circular-progress__indeterminate-circle-graphic{animation:mdc-circular-progress-left-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--indeterminate .mdc-circular-progress__circle-right .mdc-circular-progress__indeterminate-circle-graphic{animation:mdc-circular-progress-right-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress__circle-clipper{display:inline-flex;position:relative;width:50%;height:100%;overflow:hidden}.mdc-circular-progress--indeterminate .mdc-circular-progress__spinner-layer{animation:mdc-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}@keyframes mdc-circular-progress-container-rotate{to{transform:rotate(360deg)}}@keyframes mdc-circular-progress-spinner-layer-rotate{12.5%{transform:rotate(135deg)}25%{transform:rotate(270deg)}37.5%{transform:rotate(405deg)}50%{transform:rotate(540deg)}62.5%{transform:rotate(675deg)}75%{transform:rotate(810deg)}87.5%{transform:rotate(945deg)}100%{transform:rotate(1080deg)}}@keyframes mdc-circular-progress-left-spin{from{transform:rotate(265deg)}50%{transform:rotate(130deg)}to{transform:rotate(265deg)}}@keyframes mdc-circular-progress-right-spin{from{transform:rotate(-265deg)}50%{transform:rotate(-130deg)}to{transform:rotate(-265deg)}}"],encapsulation:2,changeDetection:0})}return _})(),O=(()=>{class _{static \u0275fac=function(D){return new(D||_)};static \u0275mod=d.$C({type:_});static \u0275inj=d.G2t({imports:[v.yE]})}return _})()},8066:(De,oe,h)=>{h.d(oe,{A:()=>v});var d=h(9136);const v=class $ extends d.A{constructor(Q,B,M,J,pe,ae){super(Q,B,pe),this.originalEvent=M,this.pixel_=null,this.coordinate_=null,this.dragging=void 0!==J&&J,this.activePointers=ae}get pixel(){return this.pixel_||(this.pixel_=this.map.getEventPixel(this.originalEvent)),this.pixel_}set pixel(Q){this.pixel_=Q}get coordinate(){return this.coordinate_||(this.coordinate_=this.map.getCoordinateFromPixel(this.pixel)),this.coordinate_}set coordinate(Q){this.coordinate_=Q}preventDefault(){super.preventDefault(),"preventDefault"in this.originalEvent&&this.originalEvent.preventDefault()}stopPropagation(){super.stopPropagation(),"stopPropagation"in this.originalEvent&&this.originalEvent.stopPropagation()}}},9136:(De,oe,h)=>{h.d(oe,{A:()=>v});var d=h(4888);const v=class $ extends d.Ay{constructor(Q,B,M){super(Q),this.map=B,this.frameState=void 0!==M?M:null}}},3035:(De,oe,h)=>{h.d(oe,{A:()=>d});const d={POSTRENDER:"postrender",MOVESTART:"movestart",MOVEEND:"moveend",LOADSTART:"loadstart",LOADEND:"loadend"}},9200:(De,oe,h)=>{h.d(oe,{A:()=>pe});var d=h(4037),$=h(3035),v=h(215),Z=h(4378),Q=h(7443),B=h(5664);const pe=class J extends d.A{constructor(y){super(),this.options=y,this.id=y.id,this.insertFirst=void 0===y.insertFirst||y.insertFirst,this.stopEvent=void 0===y.stopEvent||y.stopEvent,this.element=document.createElement("div"),this.element.className=void 0!==y.className?y.className:"ol-overlay-container "+v.Q5,this.element.style.position="absolute",this.element.style.pointerEvents="auto",this.autoPan=!0===y.autoPan?{}:y.autoPan||void 0,this.rendered={transform_:"",visible:!0},this.mapPostrenderListenerKey=null,this.addChangeListener("element",this.handleElementChanged),this.addChangeListener("map",this.handleMapChanged),this.addChangeListener("offset",this.handleOffsetChanged),this.addChangeListener("position",this.handlePositionChanged),this.addChangeListener("positioning",this.handlePositioningChanged),void 0!==y.element&&this.setElement(y.element),this.setOffset(void 0!==y.offset?y.offset:[0,0]),this.setPositioning(y.positioning||"top-left"),void 0!==y.position&&this.setPosition(y.position)}getElement(){return this.get("element")}getId(){return this.id}getMap(){return this.get("map")||null}getOffset(){return this.get("offset")}getPosition(){return this.get("position")}getPositioning(){return this.get("positioning")}handleElementChanged(){(0,B.gS)(this.element);const y=this.getElement();y&&this.element.appendChild(y)}handleMapChanged(){this.mapPostrenderListenerKey&&((0,B.bf)(this.element),(0,Q.JH)(this.mapPostrenderListenerKey),this.mapPostrenderListenerKey=null);const y=this.getMap();if(y){this.mapPostrenderListenerKey=(0,Q.KT)(y,$.A.POSTRENDER,this.render,this),this.updatePixelPosition();const O=this.stopEvent?y.getOverlayContainerStopEvent():y.getOverlayContainer();this.insertFirst?O.insertBefore(this.element,O.childNodes[0]||null):O.appendChild(this.element),this.performAutoPan()}}render(){this.updatePixelPosition()}handleOffsetChanged(){this.updatePixelPosition()}handlePositionChanged(){this.updatePixelPosition(),this.performAutoPan()}handlePositioningChanged(){this.updatePixelPosition()}setElement(y){this.set("element",y)}setMap(y){this.set("map",y)}setOffset(y){this.set("offset",y)}setPosition(y){this.set("position",y)}performAutoPan(){this.autoPan&&this.panIntoView(this.autoPan)}panIntoView(y){const O=this.getMap();if(!O||!O.getTargetElement()||!this.get("position"))return;const _=this.getRect(O.getTargetElement(),O.getSize()),q=this.getElement(),I=this.getRect(q,[(0,B.Gq)(q),(0,B.DK)(q)]),D=void 0===(y=y||{}).margin?20:y.margin;if(!(0,Z.ms)(_,I)){const X=I[0]-_[0],ne=_[2]-I[2],xe=I[1]-_[1],me=_[3]-I[3],ge=[0,0];if(X<0?ge[0]=X-D:ne<0&&(ge[0]=Math.abs(ne)+D),xe<0?ge[1]=xe-D:me<0&&(ge[1]=Math.abs(me)+D),0!==ge[0]||0!==ge[1]){const Ie=O.getView().getCenterInternal(),C=O.getPixelFromCoordinateInternal(Ie);if(!C)return;const j=[C[0]+ge[0],C[1]+ge[1]],g=y.animation||{};O.getView().animateInternal({center:O.getCoordinateFromPixelInternal(j),duration:g.duration,easing:g.easing})}}}getRect(y,O){const _=y.getBoundingClientRect(),q=_.left+window.pageXOffset,I=_.top+window.pageYOffset;return[q,I,q+O[0],I+O[1]]}setPositioning(y){this.set("positioning",y)}setVisible(y){this.rendered.visible!==y&&(this.element.style.display=y?"":"none",this.rendered.visible=y)}updatePixelPosition(){const y=this.getMap(),O=this.getPosition();if(!y||!y.isRendered()||!O)return void this.setVisible(!1);const _=y.getPixelFromCoordinate(O),q=y.getSize();this.updateRenderedPosition(_,q)}updateRenderedPosition(y,O){const _=this.element.style,q=this.getOffset(),I=this.getPositioning();this.setVisible(!0);let ne="0%",xe="0%";"bottom-right"==I||"center-right"==I||"top-right"==I?ne="-100%":("bottom-center"==I||"center-center"==I||"top-center"==I)&&(ne="-50%"),"bottom-left"==I||"bottom-center"==I||"bottom-right"==I?xe="-100%":("center-left"==I||"center-center"==I||"center-right"==I)&&(xe="-50%");const me=`translate(${ne}, ${xe}) translate(${Math.round(y[0]+q[0])+"px"}, ${Math.round(y[1]+q[1])+"px"})`;this.rendered.transform_!=me&&(this.rendered.transform_=me,_.transform=me)}getOptions(){return this.options}}}}]); \ No newline at end of file