diff --git a/404.html b/404.html index b51760386..9ef4b6b58 100644 --- a/404.html +++ b/404.html @@ -102,5 +102,5 @@

} - + diff --git a/index.html b/index.html index b51760386..9ef4b6b58 100644 --- a/index.html +++ b/index.html @@ -102,5 +102,5 @@

} - + diff --git a/main.1f32d6a1b25b1aa9.js b/main.1f32d6a1b25b1aa9.js deleted file mode 100644 index 9d6315630..000000000 --- a/main.1f32d6a1b25b1aa9.js +++ /dev/null @@ -1,2 +0,0 @@ -(self.webpackChunkigo2=self.webpackChunkigo2||[]).push([[179],{57682:(P,pe,d)=>{"use strict";var y=d(36480),e=d(61699),u=(d(4700),d(26575)),F=d(71268),S=d(60702),ke=d(22868),R=d(14447),Se=d(55866),de=d(56700),c=d(15564),m=d(38732),l=d(98655),b=d(91594),A=d(25267),Ee=d(39877);const he={production:!0,igo:{app:{forceCoordsNA:!1,install:{enabled:!0,promote:!0,manifestPath:"./config/github.webmanifest"},pwa:{enabled:!1}},catalog:{sources:[{id:"Gououvert",title:"Gouvouvert",url:"https://geoegl.msp.gouv.qc.ca/apis/ws/igo_gouvouvert.fcgi"},{id:"glace",title:"Carte de glace",url:"https://geoegl.msp.gouv.qc.ca/apis/ws/radarsat.fcgi",showLegend:!0}]},depot:{url:"/apis/depot"},importExport:{url:"https://geoegl.msp.gouv.qc.ca/apis/ogre",configFileToGeoDBService:"./data/geoDataToIDB.json",clientSideFileSizeMaxMb:30,allowToStoreLayer:!0},language:{prefix:"./locale/"},interactiveTour:{tourInMobile:!0,pathToConfigFile:"./config/interactiveTour.json"},searchSources:{nominatim:{available:!1},storedqueries:{available:!1},icherche:{searchUrl:"https://geoegl.msp.gouv.qc.ca/apis/icherche",order:2,params:{limit:"8"}},coordinatesreverse:{showInPointerSummary:!0},icherchereverse:{showInPointerSummary:!0,searchUrl:"https://geoegl.msp.gouv.qc.ca/apis/terrapi",order:3,enabled:!0},ilayer:{searchUrl:"https://geoegl.msp.gouv.qc.ca/apis/icherche/layers",order:4,params:{limit:"5"}},cadastre:{enabled:!1}},projections:[{code:"EPSG:32198",alias:"Quebec Lambert",def:"+proj=lcc +lat_1=60 +lat_2=46 +lat_0=44 +lon_0=-68.5 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs",extent:[-799574,45802,891595.4,1849567.5]},{code:"EPSG:3798",alias:"MTQ Lambert",def:"+proj=lcc +lat_1=50 +lat_2=46 +lat_0=44 +lon_0=-70 +x_0=800000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs",extent:[31796.5834,158846.2231,1813323.4284,2141241.0978]}],searchOverlayStyle:{base:{markerColor:"#5ed0fb",markerOpacity:.8,markerOutlineColor:"#a7e7ff",fillColor:"#5ed0fb",fillOpacity:.2,strokeColor:"#5ed0fb",strokeOpacity:.7,strokeWidth:2},focus:{markerColor:"#5ed0fb",markerOpacity:1,markerOutlineColor:"#DFF7FF",fillColor:"#5ed0fb",fillOpacity:.3,strokeColor:"#DFF7FF",strokeOpacity:1,strokeWidth:2},selection:{markerColor:"#00a1de",markerOpacity:1,markerOutlineColor:"#ffffff",fillColor:"#00a1de",fillOpacity:.3,strokeColor:"#00A1DE",strokeOpacity:1,strokeWidth:2}},queryOverlayStyle:{base:{markerColor:"#5ed0fb",markerOpacity:.8,markerOutlineColor:"#a7e7ff",fillColor:"#5ed0fb",fillOpacity:.2,strokeColor:"#5ed0fb",strokeOpacity:.7,strokeWidth:2},focus:{markerColor:"#5ed0fb",markerOpacity:1,markerOutlineColor:"#DFF7FF",fillColor:"#5ed0fb",fillOpacity:.3,strokeColor:"#DFF7FF",strokeOpacity:1,strokeWidth:2},selection:{markerColor:"#00a1de",markerOpacity:1,markerOutlineColor:"#ffffff",fillColor:"#00a1de",fillOpacity:.3,strokeColor:"#00A1DE",strokeOpacity:1,strokeWidth:2}}}};var $e=d(22775),Fe=d(71670),Ae=d(13379),Be=d(35357),me=d(13738);class j{updates;languageService;confirmDialogService;confirmOpened=!1;constructor(n,t,o){this.updates=n,this.languageService=t,this.confirmDialogService=o,n.isEnabled&&this.handleVersionUpdates()}checkForUpdates(){var n=this;this.updates.isEnabled&&(0,Ae.F)(12e4).pipe((0,Be.T)(1)).subscribe((0,Fe.Z)(function*(){try{const t=yield n.updates.checkForUpdate();console.log(t?"A new version is available.":"Already on the latest version.")}catch(t){console.error("Failed to check for updates:",t)}}))}modalUpdatePWA(){if(this.confirmOpened)return;const o=`${this.languageService.translate.instant("pwa.new-version-title")} ${this.languageService.translate.instant("pwa.new-version")}`;this.confirmDialogService.open(o).pipe((0,me.b)(()=>this.confirmOpened=!0)).subscribe(a=>{a&&(this.confirmOpened=!1,window.navigator.onLine?document.location.reload():(alert("Hors-ligne / Offline. Vous devez \xeatre en ligne pour mettre \xe0 jour l'application. You must be online to update the application."),setTimeout(()=>{this.modalUpdatePWA()},9e5)))})}handleVersionUpdates(){this.updates.versionUpdates.subscribe(n=>{switch(n.type){case"VERSION_DETECTED":console.log(`Downloading new app version: ${n.version.hash}`);break;case"VERSION_READY":console.log(`Current app version: ${n.currentVersion.hash}`),console.log(`New app version ready for use: ${n.latestVersion.hash}`),this.modalUpdatePWA();break;case"VERSION_INSTALLATION_FAILED":console.error(`Failed to install app version '${n.version.hash}': ${n.error}`)}})}static \u0275fac=function(t){return new(t||j)(e.LFG(Se.yO),e.LFG(m.TS),e.LFG(c.DN))};static \u0275prov=e.Yz7({token:j,factory:j.\u0275fac,providedIn:"root"})}var w=d(92234),Ce=d(54860),ge=d(18625),be=d(73462),x=d(58071),L=d(33839),ue=d(84980),je=d(99422),z=d(50655),M=d(46367),Oe=d(81527);function fe(r){return r.getConfig("version.app")||r.getConfig("version.lib")||m.i8.lib}var s=d(12501);function ze(){return[(0,s.X$)("expansionPanelSize",[(0,s.SB)("full",(0,s.oB)({left:"5px","max-width":"100%"})),(0,s.SB)("notTriggered",(0,s.oB)({left:"5px",bottom:"5px","max-width":"100%"})),(0,s.SB)("notVisible",(0,s.oB)({display:"none"})),(0,s.SB)("mobile",(0,s.oB)({left:"calc(100% - 40px)"})),(0,s.SB)("reduced",(0,s.oB)({left:"405px","max-width":"calc(100% - 405px)"})),(0,s.SB)("reducedNotTriggered",(0,s.oB)({left:"405px",bottom:"5px","max-width":"calc(100% - 405px)"})),(0,s.eR)("* => *",(0,s.jt)("100ms"))]),(0,s.X$)("toastOffsetY",[(0,s.SB)("true",(0,s.oB)({bottom:"50px"})),(0,s.SB)("false",(0,s.oB)({bottom:"5px"}))])]}function Ze(){return[(0,s.X$)("toastPanelMobileSidenav",[(0,s.SB)("true",(0,s.oB)({display:"none"})),(0,s.eR)("* => void",(0,s.jt)("0ms")),(0,s.eR)("* => *",(0,s.jt)("200ms"))]),(0,s.X$)("toastPanelOffsetX",[(0,s.SB)("fullStandard",(0,s.oB)({left:"45%"})),(0,s.SB)("standard",(0,s.oB)({left:"50%"})),(0,s.SB)("htmlDisplay",(0,s.oB)({left:"40%"})),(0,s.SB)("fullOffsetX",(0,s.oB)({left:"calc(45% + 202px)"})),(0,s.SB)("standardOffsetX",(0,s.oB)({left:"calc(50% + 202px)"})),(0,s.SB)("htmlDisplayOffsetX",(0,s.oB)({left:"calc(40% + 160px)"})),(0,s.eR)("fullStandard => fullOffsetX",(0,s.jt)("200ms")),(0,s.eR)("fullOffsetX => fullStandard",(0,s.jt)("200ms")),(0,s.eR)("standard => standardOffsetX",(0,s.jt)("200ms")),(0,s.eR)("standardOffsetX => standard",(0,s.jt)("200ms")),(0,s.eR)("htmlDisplay => htmlDisplayOffsetX",(0,s.jt)("200ms")),(0,s.eR)("htmlDisplayOffsetX => htmlDisplay",(0,s.jt)("200ms"))]),(0,s.X$)("toastPanelOffsetY",[(0,s.SB)("noExpansion",(0,s.oB)({bottom:"0"})),(0,s.SB)("expansionAndToastOpened",(0,s.oB)({bottom:"285px",zIndex:"999"})),(0,s.SB)("expansionAndToastClosed",(0,s.oB)({bottom:"285px",zIndex:"5"})),(0,s.SB)("expansionMaximizedAndToastOpened",(0,s.oB)({bottom:"500px",zIndex:"999"})),(0,s.SB)("expansionMaximizedAndToastClosed",(0,s.oB)({bottom:"500px",zIndex:"5"})),(0,s.eR)("noExpansion => noExpansion",(0,s.jt)("10ms")),(0,s.eR)("expansionAndToastOpened => expansionAndToastOpened",(0,s.jt)("200ms")),(0,s.eR)("expansionAndToastClosed => expansionAndToastClosed",(0,s.jt)("200ms")),(0,s.eR)("expansionMaximizedAndToastOpened => expansionMaximizedAndToastOpened",(0,s.jt)("200ms")),(0,s.eR)("expansionMaximizedAndToastClosed => expansionMaximizedAndToastClosed",(0,s.jt)("200ms"))])]}function Re(){return[(0,s.X$)("controlsOffsetY",[(0,s.SB)("close",(0,s.oB)({})),(0,s.SB)("firstRowFromBottom",(0,s.oB)({bottom:"5px"})),(0,s.SB)("firstRowFromBottom-expanded",(0,s.oB)({bottom:"285px"})),(0,s.SB)("firstRowFromBottom-expanded-maximized",(0,s.oB)({bottom:"500px"})),(0,s.SB)("secondRowFromBottom",(0,s.oB)({bottom:"47px"})),(0,s.SB)("thirdRowFromBottom",(0,s.oB)({bottom:"104px"})),(0,s.SB)("",(0,s.oB)({bottom:"calc(285px)"})),(0,s.SB)("secondRowFromBottom-expanded",(0,s.oB)({bottom:"calc(285px + 52px)"})),(0,s.SB)("thirdRowFromBottom-expanded",(0,s.oB)({bottom:"calc(285px + 104px)"})),(0,s.eR)("* => *",(0,s.jt)("200ms"))]),(0,s.X$)("mobileOffsetY",[(0,s.SB)("low",(0,s.oB)({bottom:"50px"})),(0,s.eR)("* => *",(0,s.jt)("200ms"))])]}function Le(){return(0,s.X$)("controlStateX",[(0,s.SB)("left",(0,s.oB)({left:"60px"})),(0,s.SB)("right",(0,s.oB)({left:"465px"})),(0,s.eR)("* => *",(0,s.jt)("200ms"))])}function Ie(){return(0,s.X$)("controlStateY",[(0,s.SB)("close",(0,s.oB)({})),(0,s.SB)("firstRowFromBottom",(0,s.oB)({bottom:"2px","margin-left":"0px"})),(0,s.SB)("firstRowFromBottom-expanded",(0,s.oB)({bottom:"285px","margin-left":"-55px"})),(0,s.SB)("firstRowFromBottom-expanded-maximized",(0,s.oB)({bottom:"500px","margin-left":"-55px"})),(0,s.eR)("* => *",(0,s.jt)("200ms"))])}function De(){return(0,s.X$)("mapStateX",[(0,s.SB)("left",(0,s.oB)({left:"0"})),(0,s.SB)("right",(0,s.oB)({left:"0"})),(0,s.eR)("* => *",(0,s.jt)("200ms"))])}function He(){return(0,s.X$)("mapStateY",[(0,s.SB)("*",(0,s.oB)({bottom:"0"})),(0,s.eR)("* => *",(0,s.jt)("200ms"))])}var xe=d(79736),T=d(66861);class B{configService;storageService;nbVisit;showAgain;igoVersionDifferentFromStorage=!1;constructor(n,t){this.configService=n,this.storageService=t,this.igoVersionDifferentFromStorage=this.isVersionDifferentFromStorage(),this.setStorageConfig()}setStorageConfig(){this.nbVisit=Number(this.storageService.get("welcomeWindow_nbVisit")),this.nbVisit||(this.nbVisit=0),this.storageService.set("welcomeWindow_nbVisit",this.nbVisit+=1)}isVersionDifferentFromStorage(){return this.storageService.get("version")!==fe(this.configService)}hasWelcomeWindow(){return!1===this.storageService.get("welcomeWindow_showAgain")||"false"===this.storageService.get("welcomeWindow_showAgain")?(this.nbVisit>=this.configService.getConfig("welcomeWindow.nbVisitToShowAgain")||!(!this.configService.getConfig("welcomeWindow.showAgainOnNewIGOVersion")||!this.igoVersionDifferentFromStorage))&&(this.storageService.set("welcomeWindow_nbVisit",0),this.storageService.remove("welcomeWindow_showAgain"),!0):typeof this.configService.getConfig("welcomeWindow.nbVisitToShow")<"u"&&this.nbVisit>this.configService.getConfig("welcomeWindow.nbVisitToShow")?(this.storageService.set("welcomeWindow_showAgain",!1),!1):this.configService.getConfig("welcomeWindow")}getConfig(){const n=new T.vA;return n.disableClose=!0,n.autoFocus=!0,n.maxWidth="500px",n}afterClosedWelcomeWindow(){this.storageService.set("welcomeWindow_showAgain",this.showAgain)}static \u0275fac=function(t){return new(t||B)(e.LFG(m.M$),e.LFG(m.V1))};static \u0275prov=e.Yz7({token:B,factory:B.\u0275fac,providedIn:"root"})}var I=d(28849),v=d(90895),D=d(52484),k=d(5939);function We(r,n){if(1&r){const t=e.EpF();e.TgZ(0,"div",1)(1,"mat-toolbar",2)(2,"h4"),e._uU(3),e.ALo(4,"translate"),e.qZA(),e._UZ(5,"span",3),e.TgZ(6,"label",4)(7,"input",5),e.NdJ("ngModelChange",function(a){e.CHM(t);const i=e.oxw();return e.KtG(i.showAgain=a)})("click",function(){e.CHM(t);const a=e.oxw();return e.KtG(a.setShowAgain())}),e.qZA(),e._uU(8),e.ALo(9,"translate"),e.qZA()(),e.TgZ(10,"div",6),e._UZ(11,"igo-custom-html",7),e.ALo(12,"async"),e.qZA(),e._UZ(13,"p"),e.TgZ(14,"div",8)(15,"igo-interactive-tour",9),e.NdJ("click",function(){e.CHM(t);const a=e.oxw();return e.KtG(a.closeWelcomeWindow())}),e.qZA(),e.TgZ(16,"button",10),e._uU(17),e.ALo(18,"translate"),e.qZA()()()}if(2&r){const t=e.oxw();e.xp6(3),e.Oqu(e.lcZ(4,6,"welcomeWindow.title")),e.xp6(4),e.Q6J("ngModel",t.showAgain),e.xp6(1),e.hij(" ",e.lcZ(9,8,"welcomeWindow.notShowCheck")," "),e.xp6(3),e.Q6J("html",e.lcZ(12,10,t.html$)),e.xp6(4),e.Q6J("discoverTitleInLocale$",t.discoverTitleInLocale$),e.xp6(2),e.hij(" ",e.lcZ(18,12,"welcomeWindow.closeButton")," ")}}class H{dialog;welcomeWindowService;configService;languageService;showAgain=!1;discoverTitleInLocale$;title$$;html$=new x.X(void 0);constructor(n,t,o,a){this.dialog=n,this.welcomeWindowService=t,this.configService=o,this.languageService=a,this.discoverTitleInLocale$=(0,ue.of)(this.configService.getConfig("welcomeWindow.discoverTitleInLocale",this.configService.getConfig("title")))}ngOnInit(){this.computeHtml()}closeWelcomeWindow(){this.dialog.closeAll()}computeHtml(){let n=0,t=!0,o=new Date(this.configService.getConfig("version.releaseDate"));const a=this.configService.getConfig("version.releaseDateApp");if(a){const p=new Date(a);isNaN(p.getDate())?(console.log("The releaseDateApp config is not a valid date format"),t=!1):(n=1,o=p)}let i="";if(t){let p=o.getDate()+n;p<10&&(p="0"+p);let h=o.getMonth()+1;h<10&&(h="0"+h),i=`${o.getFullYear()}-${h}-${p}`}else i=a;return this.title$$=this.languageService.translate.get(this.configService.getConfig("title","")).pipe((0,xe.U)(p=>this.languageService.translate.instant("welcomeWindow.html",{title:p,description:this.configService.getConfig("description",""),version:fe(this.configService),releaseDate:i||""}))).subscribe(p=>this.html$.next(p)),this.html$}setShowAgain(){this.welcomeWindowService.showAgain=this.showAgain}ngOnDestroy(){this.title$$&&this.title$$.unsubscribe()}static \u0275fac=function(t){return new(t||H)(e.Y36(T.uw),e.Y36(B),e.Y36(m.M$),e.Y36(m.TS))};static \u0275cmp=e.Xpm({type:H,selectors:[["app-welcome-window"]],decls:2,vars:3,consts:[["class","welcome-window",4,"ngIf"],[1,"welcome-window"],["color","primary"],[1,"spacer"],[1,"mat-body-2"],["id","doNotShowCheck","type","checkbox",3,"ngModel","ngModelChange","click"],["mat-dialog-content","",1,"text"],[3,"html"],[1,"button-container"],["id","tour-button","styleButton","raised",3,"discoverTitleInLocale$","click"],["mat-raised-button","","color","primary","mat-dialog-close","",1,"button-close"]],template:function(t,o){1&t&&(e.YNc(0,We,19,14,"div",0),e.ALo(1,"async")),2&t&&e.Q6J("ngIf",e.lcZ(1,1,o.html$))},dependencies:[u.O5,I.Wl,I.JJ,I.On,T.ZT,T.xY,c.bB,c.n_,v.lW,D.Ye,k.X$,u.Ov],styles:["[_nghost-%COMP%]{display:block;padding:16px}[_nghost-%COMP%] .spacer[_ngcontent-%COMP%]{flex:1 1 auto}[_nghost-%COMP%] .button-container[_ngcontent-%COMP%]{display:flex;justify-content:space-around}[_nghost-%COMP%] #doNotShowCheck[_ngcontent-%COMP%]{margin-right:5px}[_nghost-%COMP%] mat-toolbar[_ngcontent-%COMP%] h2[_ngcontent-%COMP%]{margin:revert}[_nghost-%COMP%] label[_ngcontent-%COMP%]{margin-bottom:0}[_nghost-%COMP%] .mat-mdc-dialog-container[_ngcontent-%COMP%]{z-index:1000;box-shadow:0 0 0 1000em #0009;transform:translate(-50%)}[_nghost-%COMP%] .custom-html{padding:0!important}"]})}var C=d(86515),Z=d(31465);function Je(r="150ms",n="300ms",t="ease-in-out"){return(0,s.X$)("showContent",[(0,s.SB)("true",(0,s.oB)({opacity:1})),(0,s.SB)("false",(0,s.oB)({opacity:0})),(0,s.eR)("false => true",(0,s.jt)(`${r} ${n} ${t}`)),(0,s.eR)("true => false",(0,s.jt)("0ms"))])}function Ye(r,n){1&r&&e._UZ(0,"mat-icon",5)}function Qe(r,n){1&r&&e._UZ(0,"mat-icon",6)}const Ne=["*"];class W{get expanded(){return this._expanded}set expanded(n){n!==this._expanded&&(this._expanded=n,this.expandedChange.emit(this._expanded))}_expanded;expandedChange=new e.vpe;get hasExpandedClass(){return this.expanded}constructor(){}onToggleClick(){this.expanded=!this.expanded}static \u0275fac=function(t){return new(t||W)};static \u0275cmp=e.Xpm({type:W,selectors:[["app-expansion-panel-header"]],hostVars:2,hostBindings:function(t,o){2&t&&e.ekj("app-expansion-panel-header-expanded",o.hasExpandedClass)},inputs:{expanded:"expanded"},outputs:{expandedChange:"expandedChange"},ngContentSelectors:Ne,decls:7,vars:5,consts:[[1,"app-expansion-panel-trigger-container","mat-elevation-z2"],["mat-icon-button","","color","primary",3,"matTooltip","click"],["svgIcon","launch",4,"ngIf"],["style","transform: rotate(180deg)","svgIcon","launch",4,"ngIf"],[1,"app-expansion-panel-content"],["svgIcon","launch"],["svgIcon","launch",2,"transform","rotate(180deg)"]],template:function(t,o){1&t&&(e.F$t(),e.TgZ(0,"div",0)(1,"button",1),e.NdJ("click",function(){return o.onToggleClick()}),e.ALo(2,"translate"),e.YNc(3,Ye,1,0,"mat-icon",2),e.YNc(4,Qe,1,0,"mat-icon",3),e.qZA()(),e.TgZ(5,"div",4),e.Hsn(6),e.qZA()),2&t&&(e.xp6(1),e.Q6J("matTooltip",e.lcZ(2,3,o.expanded?"workspace.close":"workspace.open")),e.xp6(2),e.Q6J("ngIf",!o.expanded),e.xp6(1),e.Q6J("ngIf",o.expanded))},dependencies:[u.O5,v.RK,C.Hw,S.gM,k.X$],styles:["[_nghost-%COMP%]{border-bottom:2px solid aliceblue;display:flex;align-items:center}[_nghost-%COMP%] button[_ngcontent-%COMP%]{width:40px;height:40px;padding:8px}.app-expansion-panel-trigger-container[_ngcontent-%COMP%]{display:flex}.app-expansion-panel-content[_ngcontent-%COMP%]{display:flex;height:100%}"],changeDetection:0})}const Ue=[[["","expansionPanelHeader",""]],"*"],Ge=["[expansionPanelHeader]","*"];class J{get expanded(){return this._expanded}set expanded(n){n!==this._expanded&&(this._expanded=n,this.expandedChange.emit(this._expanded))}_expanded;maximized=!1;get backdropShown(){return this._backdropShown}set backdropShown(n){this._backdropShown=n}_backdropShown;expandedChange=new e.vpe;get hasExpandedClass(){return this.expanded}get hasExpandedFullClass(){return this.expanded&&this.maximized}constructor(){}onBackdropClick(){this.expanded=!1,this.backdropShown=!1}static \u0275fac=function(t){return new(t||J)};static \u0275cmp=e.Xpm({type:J,selectors:[["app-expansion-panel"]],hostVars:4,hostBindings:function(t,o){2&t&&e.ekj("app-expansion-panel-expanded",o.hasExpandedClass)("app-expansion-panel-expanded-maximized",o.hasExpandedFullClass)},inputs:{expanded:"expanded",maximized:"maximized",backdropShown:"backdropShown"},outputs:{expandedChange:"expandedChange"},ngContentSelectors:Ge,decls:7,vars:3,consts:[[1,"app-expansion-panel-container"],[3,"shown","click"],[3,"expanded","expandedChange"],[1,"app-expansion-panel-content","mat-elevation-z4"]],template:function(t,o){1&t&&(e.F$t(Ue),e.TgZ(0,"div")(1,"div",0)(2,"igo-backdrop",1),e.NdJ("click",function(){return o.onBackdropClick()}),e.qZA(),e.TgZ(3,"app-expansion-panel-header",2),e.NdJ("expandedChange",function(i){return o.expanded=i}),e.Hsn(4),e.qZA(),e.TgZ(5,"div",3),e.Hsn(6,1),e.qZA()()()),2&t&&(e.xp6(2),e.Q6J("shown",o.backdropShown),e.xp6(1),e.Q6J("expanded",o.expanded),e.xp6(2),e.Q6J("@showContent",o.expanded))},dependencies:[c.qv,W],styles:["[_nghost-%COMP%]{-o-box-shadow:0px 0px 2px 0px #dddddd;box-shadow:0 0 2px #ddd}[_nghost-%COMP%]{display:block;background-color:#fff;height:40px;width:40px;transition:height .2s cubic-bezier(.4,0,.2,1),width .2s cubic-bezier(.4,0,.2,1)}[_nghost-%COMP%]:not(.app-expansion-panel-expanded) .app-expansion-panel-content{display:none}.app-expansion-panel-expanded[_nghost-%COMP%]{height:281px;width:100%;z-index:6}.app-expansion-panel-expanded[_nghost-%COMP%] .app-expansion-panel-trigger-container{box-shadow:none}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){.app-expansion-panel-expanded.footer[_nghost-%COMP%]{margin-bottom:48px}}.app-expansion-panel-container[_ngcontent-%COMP%]{height:100%;width:100%}.app-expansion-panel-expanded-maximized[_nghost-%COMP%]{height:496px;width:100%;z-index:6}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){.app-expansion-panel-expanded-maximized.footer[_nghost-%COMP%]{margin-bottom:48px}}[_nghost-%COMP%] > div[_ngcontent-%COMP%]{height:100%;width:100%}.app-expansion-panel-content[_ngcontent-%COMP%]{height:calc(100% - 50px);overflow:auto;padding:5px}igo-backdrop[_ngcontent-%COMP%] >div{z-index:120!important}.app-expansion-panel-content[_ngcontent-%COMP%] .igo-entity-table-with-selection{width:100%}"],data:{animation:[Je()]},changeDetection:0})}var Ve=d(52148),qe=d(28746),Pe=d(75392);function Xe(r,n){if(1&r){const t=e.EpF();e.TgZ(0,"button",16),e.NdJ("click",function(){e.CHM(t);const a=e.oxw(3);return e.KtG(a.zoomTo())}),e.ALo(1,"translate"),e.ALo(2,"async"),e._UZ(3,"mat-icon",17),e.ALo(4,"async"),e.ALo(5,"async"),e.qZA()}if(2&r){const t=e.oxw(3);e.Q6J("matTooltip",e.lcZ(1,3,e.lcZ(2,5,t.isSelectedResultOutOfView$)?"toastPanel.zoomOnFeatureTooltipOutOfView":"toastPanel.zoomOnFeatureTooltip")),e.xp6(3),e.Q6J("matBadge",e.lcZ(4,7,t.isSelectedResultOutOfView$)?"!":"")("matBadgeHidden",!0!==e.lcZ(5,9,t.isSelectedResultOutOfView$))}}function Ke(r,n){if(1&r){const t=e.EpF();e.TgZ(0,"button",18),e.NdJ("click",function(){e.CHM(t);const a=e.oxw(3);return e.KtG(a.handleLayer())}),e.ALo(1,"translate"),e.ALo(2,"async"),e.ALo(3,"async"),e._UZ(4,"mat-icon",19),e.ALo(5,"async"),e.qZA()}if(2&r){const t=e.oxw(3);e.Q6J("matTooltip",e.lcZ(1,3,e.lcZ(2,5,t.potententialLayerisAdded$)?"toastPanel.removeLayer":"toastPanel.addLayer"))("color",e.lcZ(3,7,t.potententialLayerisAdded$)?"warn":""),e.xp6(4),e.Q6J("svgIcon",e.lcZ(5,9,t.potententialLayerisAdded$)?"delete":"plus")}}function et(r,n){if(1&r){const t=e.EpF();e.TgZ(0,"button",20),e.NdJ("click",function(){e.CHM(t);const a=e.oxw(3);return e.KtG(a.previousResult())}),e.ALo(1,"translate"),e._UZ(2,"mat-icon",21),e.qZA()}if(2&r){const t=e.oxw(3);e.Q6J("disabled",t.results[0].meta.id===t.resultSelected$.value.meta.id)("matTooltip",e.lcZ(1,2,"toastPanel.previousFeatureTooltip"))}}function tt(r,n){if(1&r){const t=e.EpF();e.TgZ(0,"button",22),e.NdJ("click",function(){e.CHM(t);const a=e.oxw(3);return e.KtG(a.nextResult())}),e.ALo(1,"translate"),e._UZ(2,"mat-icon",23),e.qZA()}if(2&r){const t=e.oxw(3);e.Q6J("disabled",t.results[t.results.length-1].meta.id===t.resultSelected$.value.meta.id)("matTooltip",e.lcZ(1,2,"toastPanel.nextFeatureTooltip"))}}function nt(r,n){if(1&r){const t=e.EpF();e.TgZ(0,"button",24),e.NdJ("click",function(){e.CHM(t);const a=e.oxw(3);return e.KtG(a.resizeWindows())}),e.ALo(1,"translate"),e.ALo(2,"async"),e._UZ(3,"mat-icon",19),e.qZA()}if(2&r){const t=e.oxw(3);e.Q6J("matTooltip",e.lcZ(1,2,e.lcZ(2,4,t.fullExtent$)?"toastPanel.standardExtentTooltip":"toastPanel.fullExtentTooltip")),e.xp6(3),e.s9C("svgIcon",t.iconResizeWindows)}}function ot(r,n){if(1&r){const t=e.EpF();e.TgZ(0,"igo-feature-details",25),e.NdJ("htmlDisplayEvent",function(a){e.CHM(t);const i=e.oxw(3);return e.KtG(i.setHtmlDisplay(a))}),e.qZA()}if(2&r){const t=e.oxw(3);e.Q6J("map",t.map)("feature",t.resultSelected$.value.data)}}function at(r,n){if(1&r){const t=e.EpF();e.TgZ(0,"igo-search-results",26),e.NdJ("resultFocus",function(a){e.CHM(t);const i=e.oxw(3);return e.KtG(i.focusResult(a))})("resultUnfocus",function(a){e.CHM(t);const i=e.oxw(3);return e.KtG(i.unfocusResult(a,!0))})("resultSelect",function(a){e.CHM(t);const i=e.oxw(3);return e.KtG(i.selectResult(a))}),e.qZA()}if(2&r){const t=e.oxw(3);e.Q6J("map",t.map)("store",t.store)("showIcons",!0)("withZoomButton",t.withZoomButton)("tabsMode",t.tabsMode)}}function it(r,n){if(1&r){const t=e.EpF();e.TgZ(0,"igo-panel",3),e.NdJ("click",function(a){e.CHM(t);const i=e.oxw(2);return e.KtG(i.onToggleClick(a))})("keydown",function(a){e.CHM(t);const i=e.oxw(2);return e.KtG(i.handleKeyboardEvent(a))}),e.ALo(1,"translate"),e._UZ(2,"igo-actionbar",4),e.YNc(3,Xe,6,11,"button",5),e.YNc(4,Ke,6,11,"button",6),e.YNc(5,et,3,4,"button",7),e.YNc(6,tt,3,4,"button",8),e.YNc(7,nt,4,6,"button",9),e.TgZ(8,"button",10),e.NdJ("click",function(){e.CHM(t);const a=e.oxw(2);return e.KtG(a.clear())}),e._UZ(9,"mat-icon",11),e.qZA(),e.TgZ(10,"div",12,13),e.YNc(12,ot,1,2,"igo-feature-details",14),e.YNc(13,at,1,5,"igo-search-results",15),e.qZA()()}if(2&r){const t=e.oxw(2);e.Q6J("ngClass",t.getClassPanel())("id",t.setHeighPanelTabsMode())("title",t.resultSelected$.value?t.getTitle(t.resultSelected$.value):e.lcZ(1,16,"toastPanel.title")),e.xp6(2),e.Q6J("store",t.actionStore)("withIcon",!0)("icon",t.icon)("withTitle","overlay"===t.actionbarMode)("horizontal",!0)("mode",t.actionbarMode),e.xp6(1),e.Q6J("ngIf",t.resultSelected$.value),e.xp6(1),e.Q6J("ngIf",t.hasGeoService()),e.xp6(1),e.Q6J("ngIf",t.resultSelected$.value),e.xp6(1),e.Q6J("ngIf",t.resultSelected$.value),e.xp6(1),e.Q6J("ngIf",t.opened&&t.isDesktop()),e.xp6(5),e.Q6J("ngIf",t.resultSelected$.value),e.xp6(1),e.Q6J("ngIf",!t.resultSelected$.value)}}function st(r,n){if(1&r&&(e.YNc(0,it,14,18,"igo-panel",2),e.ALo(1,"async")),2&r){const t=e.oxw();e.Q6J("ngIf",e.lcZ(1,1,t.store.entities$))}}function rt(r,n){}function lt(r,n){if(1&r){const t=e.EpF();e.TgZ(0,"div",27),e.NdJ("swipeleft",function(a){e.CHM(t);const i=e.oxw();return e.KtG(i.swipe(a.type))})("swiperight",function(a){e.CHM(t);const i=e.oxw();return e.KtG(i.swipe(a.type))})("swipeup",function(a){e.CHM(t);const i=e.oxw();return e.KtG(i.swipe(a.type))})("swipedown",function(a){e.CHM(t);const i=e.oxw();return e.KtG(i.swipe(a.type))}),e.YNc(1,rt,0,0,"ng-template",28),e.qZA()}if(2&r){e.oxw();const t=e.MAs(1);e.xp6(1),e.Q6J("ngTemplateOutlet",t)}}class O{mediaService;languageService;storageState;queryState;workspaceState;configService;propertyTypeDetectorService;layerService;static SWIPE_ACTION={RIGHT:"swiperight",LEFT:"swipeleft",UP:"swipeup",DOWN:"swipedown"};tabsMode;get storageService(){return this.storageState.storageService}get map(){return this._map}set map(n){this._map=n}_map;get store(){return this._store}set store(n){this._store=n,this.store.entities$.subscribe(t=>{this.unselectResult()})}_store;get opened(){return this._opened}set opened(n){n===!this._opened&&(this._opened=n,this.storageService.set("toastOpened",n,m.fO.SESSION),this.openedChange.emit(n))}_opened=!0;hasFeatureEmphasisOnSelection=!1;get zoomAuto(){return this._zoomAuto}set zoomAuto(n){n===!this._zoomAuto&&(this._zoomAuto=n,this.zoomAuto$.next(n),this.storageService.set("zoomAuto",n))}_zoomAuto=!1;get fullExtent(){return this._fullExtent}set fullExtent(n){n===!this._fullExtent&&(this._fullExtent=n,this.fullExtent$.next(n),this.fullExtentEvent.emit(n),this.storageService.set("fullExtent",n))}_fullExtent=!1;potententialLayerToAdd$=new x.X(void 0);potententialLayerisAdded$=new x.X(!1);fullExtent$=new x.X(this.fullExtent);isHtmlDisplay=!1;iconResizeWindows="";icon="menu";actionStore=new c.Dn([]);actionbarMode=c.rO.Overlay;multiple$=new x.X(!1);isResultSelected$=new x.X(!1);isSelectedResultOutOfView$=new x.X(!1);isSelectedResultOutOfView$$;storageChange$$;initialized=!0;format=new ge.Z;resultOrResolution$$;focusedResult$=new x.X(void 0);abstractFocusedOrSelectedResult;withZoomButton=!0;zoomAuto$=new x.X(!1);openedChange=new e.vpe;fullExtentEvent=new e.vpe;windowHtmlDisplayEvent=new e.vpe;resultSelected$=new x.X(void 0);getClassPanel(){return{"app-toast-panel-opened":this.opened&&!this.fullExtent&&!this.isHtmlDisplay,"app-full-toast-panel-opened":this.opened&&this.fullExtent&&!this.isHtmlDisplay,"app-toast-panel-html":this.opened&&!this.fullExtent&&this.resultSelected$.value&&this.isHtmlDisplay,"app-toast-panel-html-large":this.opened&&this.fullExtent&&this.resultSelected$.value&&this.isHtmlDisplay,"app-toast-panel-collapsed":!this.opened&&!this.fullExtent&&!this.isHtmlDisplay,"app-full-toast-panel-collapsed":!this.opened&&this.fullExtent&&!this.isHtmlDisplay,"app-toast-panel-html-collapsed":!this.opened&&this.isHtmlDisplay}}setHeighPanelTabsMode(){return this.resultSelected$.value||!this.opened?"":!this.tabsMode||this.fullExtent||this.isHtmlDisplay?this.tabsMode&&this.opened&&this.fullExtent&&!this.isHtmlDisplay?"app-full-toast-panel-opened-max-height":void 0:"app-toast-panel-opened-max-height"}get displayStyle(){return this.results.length?(1===this.results.length&&this.initialized&&this.selectResult(this.results[0]),"visible"):"hidden"}onEscapeHandler(n){this.clear()}onBackHandler(n){this.unselectResult()}onZoomHandler(n){if(!0===this.isResultSelected$.getValue()){const t=this.format.readFeature(this.resultSelected$.getValue().data,{dataProjection:this.resultSelected$.getValue().data.projection,featureProjection:this.map.projection});(0,l.ybU)(this.map.viewController,[t],l.bAZ.Default)}}get results(){return this.store.all()}get multiple(){return this.results.length?this.multiple$.next(!0):this.multiple$.next(!1),this.multiple$}constructor(n,t,o,a,i,p,h,g){this.mediaService=n,this.languageService=t,this.storageState=o,this.queryState=a,this.workspaceState=i,this.configService=p,this.propertyTypeDetectorService=h,this.layerService=g,this.tabsMode=this.configService.getConfig("queryTabs",!1),this.opened=this.storageService.get("toastOpened"),this.zoomAuto=this.storageService.get("zoomAuto"),this.fullExtent=this.storageService.get("fullExtent"),this.setResizeWindowIcon()}monitorResultOutOfView(){this.isSelectedResultOutOfView$$=(0,L.a)([this.map.viewController.state$,this.resultSelected$]).pipe((0,z.b)(100)).subscribe(n=>{const t=n[1];if(!t)return void this.isSelectedResultOutOfView$.next(!1);const o=(0,l.zMd)(t.data,this.map.projection),a=(0,l.HgW)([o],this.map.viewProjection);this.isSelectedResultOutOfView$.next((0,l.brJ)(this.map.getExtent(),a))})}ngOnInit(){let n,t;this.store.entities$.subscribe(()=>{this.initialized=!0}),this.monitorResultOutOfView(),this.hasFeatureEmphasisOnSelection&&(this.resultOrResolution$$=(0,L.a)([this.focusedResult$.pipe((0,me.b)(o=>{n=o,t="focused"})),this.resultSelected$.pipe((0,me.b)(o=>{n=o,t="selected"})),this.map.viewController.resolution$,this.store.entities$]).subscribe(()=>this.buildResultEmphasis(n,t))),this.storageChange$$=this.storageService.storageChange$.pipe((0,M.n)(o=>"zoomAuto"!==o.key)).subscribe(o=>{this.zoomAuto=o.currentValue}),this.actionStore.load([{id:"list",title:this.languageService.translate.instant("toastPanel.backToList"),icon:"format-list-bulleted-square",tooltip:this.languageService.translate.instant("toastPanel.listButton"),display:()=>this.isResultSelected$,handler:()=>{this.unselectResult()}},{id:"zoomFeature",title:this.languageService.translate.instant("toastPanel.zoomOnFeature"),icon:"magnify-plus-outline",tooltip:this.languageService.translate.instant("toastPanel.zoomOnFeatureTooltip"),display:()=>this.isResultSelected$,handler:()=>{const o=this.format.readFeature(this.resultSelected$.getValue().data,{dataProjection:this.resultSelected$.getValue().data.projection,featureProjection:this.map.projection});(0,l.ybU)(this.map.viewController,[o],l.bAZ.Zoom)}},{id:"zoomResults",title:this.languageService.translate.instant("toastPanel.zoomOnFeatures"),tooltip:this.languageService.translate.instant("toastPanel.zoomOnFeaturesTooltip"),icon:"magnify-scan",availability:()=>this.multiple,handler:()=>{const o=[];for(const a of this.store.all()){const i=this.format.readFeature(a.data,{dataProjection:a.data.projection,featureProjection:this.map.projection});o.push(i)}(0,l.ybU)(this.map.viewController,o,l.bAZ.Zoom)}},{id:"zoomAuto",title:this.languageService.translate.instant("toastPanel.zoomAuto"),tooltip:this.languageService.translate.instant("toastPanel.zoomAutoTooltip"),checkbox:!0,checkCondition:this.zoomAuto$,handler:()=>{this.zoomAuto=!this.zoomAuto,this.zoomAuto&&!0===this.isResultSelected$.value&&this.selectResult(this.resultSelected$.getValue())}},{id:"fullExtent",title:this.languageService.translate.instant("toastPanel.fullExtent"),tooltip:this.languageService.translate.instant("toastPanel.fullExtentTooltip"),icon:"arrow-expand",display:()=>this.fullExtent$.pipe((0,xe.U)(o=>!o&&!this.isDesktop())),handler:()=>{this.fullExtent=!0}},{id:"standardExtent",title:this.languageService.translate.instant("toastPanel.standardExtent"),tooltip:this.languageService.translate.instant("toastPanel.standardExtentTooltip"),icon:"arrow-collapse",display:()=>this.fullExtent$.pipe((0,xe.U)(o=>o&&!this.isDesktop())),handler:()=>{this.fullExtent=!1}}]),this.computeFeatureGeoServiceStatus(),(0,L.a)([this.resultSelected$,this.map.layers$]).subscribe(()=>{this.computeFeatureGeoServiceStatus()})}ngOnDestroy(){this.resultOrResolution$$&&this.resultOrResolution$$.unsubscribe(),this.isSelectedResultOutOfView$$&&this.isSelectedResultOutOfView$$.unsubscribe(),this.storageChange$$&&this.storageChange$$.unsubscribe()}buildResultEmphasis(n,t){if(this.clearFeatureEmphasis(),!n||"selected"===t&&this.zoomAuto)return;const a=(0,l.zMd)(n.data,this.map.projection).getGeometry();if((0,l.fle)(this.map.viewController,a.getExtent(),.0025)){const i=a.getExtent(),p=i[0]+(i[2]-i[0])/2,h=i[1]+(i[3]-i[1])/2,g=new Ve.Z({name:"abstractFocusedOrSelectedResult",geometry:new qe.Z([p,h])});this.abstractFocusedOrSelectedResult=(0,l.ve2)(g,this.map.projection),this.abstractFocusedOrSelectedResult.meta.style=(0,l.DQ6)(Object.assign({},{feature:this.abstractFocusedOrSelectedResult},"selected"===t?this.queryState.queryOverlayStyleSelection:this.queryState.queryOverlayStyleFocus)),this.abstractFocusedOrSelectedResult.meta.style.setZIndex(2e3),this.map.queryResultsOverlay.addFeature(this.abstractFocusedOrSelectedResult,l.bAZ.None)}}clearFeatureEmphasis(){this.abstractFocusedOrSelectedResult&&(this.map.queryResultsOverlay.removeFeature(this.abstractFocusedOrSelectedResult),this.abstractFocusedOrSelectedResult=void 0)}getTitle(n){return(0,c.TF)(n)}focusResult(n){this.focusedResult$.next(n),this.map.queryResultsOverlay.removeFeature(n.data),n.data.meta.style=(0,l.DQ6)(Object.assign({},{feature:n.data},this.queryState.queryOverlayStyleFocus)),n.data.meta.style.setZIndex(2e3),this.map.queryResultsOverlay.addFeature(n.data,l.bAZ.None)}unfocusResult(n,t){this.focusedResult$.next(void 0),(t||!this.store.state.get(n).focused)&&(this.map.queryResultsOverlay.removeFeature(n.data),n.data.meta.style=(0,l.eU6)(Object.assign({},{feature:n.data},this.queryState.queryOverlayStyle)),n.data.meta.style.setZIndex(void 0),this.map.queryResultsOverlay.addFeature(n.data,l.bAZ.None))}selectResult(n){this.store.state.update(n,{focused:!0,selected:!0},!0),this.resultSelected$.next(n),n.data.properties&&"iframe"===n.data.properties.target?this.setHtmlDisplay(!0):this.setHtmlDisplay(!1);const t=[];for(const o of this.store.all())o.meta.id===n.meta.id?(o.data.meta.style=(0,l.DQ6)(Object.assign({},{feature:o.data},this.queryState.queryOverlayStyleSelection)),o.data.meta.style.setZIndex(2e3)):o.data.meta.style=(0,l.eU6)(Object.assign({},{feature:o.data},this.queryState.queryOverlayStyle)),t.push(o.data);if(this.map.queryResultsOverlay.removeFeatures(t),this.map.queryResultsOverlay.addFeatures(t,l.bAZ.None),this.zoomAuto){const o=this.format.readFeature(this.resultSelected$.getValue().data,{dataProjection:this.resultSelected$.getValue().data.projection,featureProjection:this.map.projection});(0,l.ybU)(this.map.viewController,[o],l.bAZ.Default)}this.isResultSelected$.next(!0),this.initialized=!1}unselectResult(){this.resultSelected$.next(void 0),this.isResultSelected$.next(!1),this.setHtmlDisplay(!1),this.store.state.clear();const n=[];for(const t of this.store.all())t.data.meta.style=(0,l.eU6)(Object.assign({},{feature:t.data},this.queryState.queryOverlayStyle)),n.push(t.data);this.map.queryResultsOverlay.setFeatures(n,l.bAZ.None,"map")}handleWksSelection(){const n=this.store.entities$.getValue(),t=[...new Set(n.map(a=>a.source.title))],o=this.workspaceState.store.entities$.getValue();o.length&&o.filter(i=>t.includes(i.title)).map(i=>{i.entityStore.state.updateMany(i.entityStore.view.all(),{selected:!1})})}clear(){this.handleWksSelection(),this.clearFeatureEmphasis(),this.map.queryResultsOverlay.clear(),this.store.clear(),this.unselectResult(),this.setHtmlDisplay(!1)}isMobile(){return this.mediaService.getMedia()===m.pU.Mobile}isDesktop(){return this.mediaService.isDesktop()}handleKeyboardEvent(n){37===n.keyCode?this.previousResult():39===n.keyCode&&this.nextResult()}previousResult(){if(!this.resultSelected$.value)return;let n=this.results.indexOf(this.resultSelected$.value);const t=this.results[--n];t&&this.selectResult(t)}nextResult(){if(!this.resultSelected$.value)return;let n=this.results.indexOf(this.resultSelected$.value);const t=this.results[++n];t&&this.selectResult(t)}hasGeoService(){return this.getGeoServices().length}getGeoServices(){const n=this.resultSelected$.getValue();if(!n)return[];const t=[],o=Object.keys(n.data.properties);return Object.entries(n.data.properties).forEach(a=>{const[i,p]=a,h=this.propertyTypeDetectorService.getGeoService(p,o),g=Object.assign({},h,{propertyForUrl:void 0});h&&(g.propertyForUrl=i,t.push(g))}),t}handleLayer(){const n=this.map.layers.map(o=>o.id);let t=this.potententialLayerToAdd$.getValue();if(t||this.computeFeatureGeoServiceStatus(),t=this.potententialLayerToAdd$.getValue(),n.includes(t.id)){const o=this.map.getLayerById(t.id);o&&(this.map.removeLayer(o),this.potententialLayerisAdded$.next(!1))}else this.layerService.createAsyncLayer(t.sourceOptions).subscribe(o=>{this.map.layersAddedByClick$.next([o]),this.map.addLayer(o),this.potententialLayerisAdded$.next(!0)})}computeFeatureGeoServiceStatus(){const n=this.resultSelected$.getValue();if(!n)return;const t=this.getGeoServices();if(t.length){const o=t[0],a=this.computeSourceOptionsFromProperties(n.data.properties,o),i=(0,l.lZj)(a.sourceOptions);this.potententialLayerToAdd$.next({id:i,sourceOptions:a});const p=this.map.layers.map(h=>h.id);this.potententialLayerisAdded$.next(!!p.includes(i))}}computeSourceOptionsFromProperties(n,t){let i=n[Object.keys(n).filter(_=>t.propertiesForLayerName.includes(_))[0]];const p=n[t.propertyForUrl];let g,h=i;return["arcgisrest","imagearcgisrest","tilearcgisrest"].includes(t.type)&&(g=i,h=void 0),b.gb.removeUndefined({sourceOptions:{type:t.type||"wms",url:p,optionsFromCapabilities:!0,optionsFromApi:!0,params:{LAYERS:h,LAYER:g}}})}zoomTo(){const n=this.format.readFeature(this.resultSelected$.getValue().data,{dataProjection:this.resultSelected$.getValue().data.projection,featureProjection:this.map.projection});(0,l.ybU)(this.map.viewController,[n],l.bAZ.Zoom)}swipe(n){n===O.SWIPE_ACTION.RIGHT?this.previousResult():n===O.SWIPE_ACTION.LEFT?this.nextResult():n===O.SWIPE_ACTION.UP?this.opened=!0:n===O.SWIPE_ACTION.DOWN&&(this.opened=!1)}onToggleClick(n){"igo-panel-title"===n.target.className&&(this.opened=!this.opened)}onTriggerAction(n){const t=n.args||[];n.handler(...t)}setHtmlDisplay(n){!0===n?(this.isHtmlDisplay=!0,this.windowHtmlDisplayEvent.emit(!0)):(this.isHtmlDisplay=!1,this.windowHtmlDisplayEvent.emit(!1))}isHtmlAndDesktop(){return!(!this.isHtmlDisplay||!this.isDesktop())}setResizeWindowIcon(){this.fullExtent?this.iconResizeWindows="arrow-collapse":this.iconResizeWindows="arrow-expand"}resizeWindows(){this.storageService.set("fullExtent",!this.fullExtent),this.fullExtent?this.reduceWindow():this.enlargeWindows()}reduceWindow(){this.fullExtent=!1,this.setResizeWindowIcon()}enlargeWindows(){this.fullExtent=!0,this.setResizeWindowIcon()}static \u0275fac=function(t){return new(t||O)(e.Y36(m.yJ),e.Y36(m.TS),e.Y36(w.I2),e.Y36(w.Tb),e.Y36(w.gV),e.Y36(m.M$),e.Y36(l.jhH),e.Y36(l.ITu))};static \u0275cmp=e.Xpm({type:O,selectors:[["app-toast-panel"]],hostVars:2,hostBindings:function(t,o){1&t&&e.NdJ("keydown.escape",function(i){return o.onEscapeHandler(i)},!1,e.evT)("keydown.backspace",function(i){return o.onBackHandler(i)},!1,e.evT)("keydown.z",function(i){return o.onZoomHandler(i)},!1,e.evT),2&t&&e.Udp("visibility",o.displayStyle)},inputs:{map:"map",store:"store",opened:"opened",hasFeatureEmphasisOnSelection:"hasFeatureEmphasisOnSelection"},outputs:{openedChange:"openedChange",fullExtentEvent:"fullExtentEvent",windowHtmlDisplayEvent:"windowHtmlDisplayEvent"},decls:3,vars:2,consts:[["toast",""],["class","swipe-fix",3,"swipeleft","swiperight","swipeup","swipedown",4,"ngIf","ngIfElse"],["tabindex","0",3,"ngClass","id","title","click","keydown",4,"ngIf"],["tabindex","0",3,"ngClass","id","title","click","keydown"],["id","igo-actionbar","panelLeftButton","",3,"store","withIcon","icon","withTitle","horizontal","mode"],["mat-icon-button","","igoStopPropagation","","panelLeftButton","","matTooltipShowDelay","500",3,"matTooltip","click",4,"ngIf"],["mat-icon-button","","igoStopPropagation","","panelLeftButton","","tooltip-position","below","matTooltipShowDelay","500",3,"matTooltip","color","click",4,"ngIf"],["mat-icon-button","","igoStopPropagation","","panelLeftButton","","matTooltipShowDelay","500",3,"disabled","matTooltip","click",4,"ngIf"],["mat-icon-button","","igoStopPropagation","","panelRightButton","","matTooltipShowDelay","500",3,"disabled","matTooltip","click",4,"ngIf"],["mat-icon-button","","igoStopPropagation","","panelRightButton","","matTooltipShowDelay","500",3,"matTooltip","click",4,"ngIf"],["mat-icon-button","","igoStopPropagation","","panelRightButton","",3,"click"],["svgIcon","close"],[1,"toast-content"],["content",""],[3,"map","feature","htmlDisplayEvent",4,"ngIf"],[3,"map","store","showIcons","withZoomButton","tabsMode","resultFocus","resultUnfocus","resultSelect",4,"ngIf"],["mat-icon-button","","igoStopPropagation","","panelLeftButton","","matTooltipShowDelay","500",3,"matTooltip","click"],["aria-hidden","false","matBadgeColor","accent","matBadgeSize","small","svgIcon","magnify-plus-outline",3,"matBadge","matBadgeHidden"],["mat-icon-button","","igoStopPropagation","","panelLeftButton","","tooltip-position","below","matTooltipShowDelay","500",3,"matTooltip","color","click"],[3,"svgIcon"],["mat-icon-button","","igoStopPropagation","","panelLeftButton","","matTooltipShowDelay","500",3,"disabled","matTooltip","click"],["svgIcon","chevron-left"],["mat-icon-button","","igoStopPropagation","","panelRightButton","","matTooltipShowDelay","500",3,"disabled","matTooltip","click"],["svgIcon","chevron-right"],["mat-icon-button","","igoStopPropagation","","panelRightButton","","matTooltipShowDelay","500",3,"matTooltip","click"],[3,"map","feature","htmlDisplayEvent"],[3,"map","store","showIcons","withZoomButton","tabsMode","resultFocus","resultUnfocus","resultSelect"],[1,"swipe-fix",3,"swipeleft","swiperight","swipeup","swipedown"],[3,"ngTemplateOutlet"]],template:function(t,o){if(1&t&&(e.YNc(0,st,2,3,"ng-template",null,0,e.W1O),e.YNc(2,lt,2,1,"div",1)),2&t){const a=e.MAs(1);e.xp6(2),e.Q6J("ngIf",o.isMobile())("ngIfElse",a)}},dependencies:[u.mk,u.O5,u.tP,Pe.k,C.Hw,v.RK,S.gM,c.yX,c._u,c.nv,l.C6c,l.GYD,u.Ov,k.X$],styles:["[_nghost-%COMP%]{-o-box-shadow:0px 0px 2px 0px #dddddd;box-shadow:0 0 2px #ddd}[_nghost-%COMP%]{background-color:#fff;transition:height .28s cubic-bezier(.4,0,.2,1);padding:5px}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){[_nghost-%COMP%]{width:100%;min-width:100%}}[_nghost-%COMP%] igo-panel[_ngcontent-%COMP%] .igo-panel-header:hover{cursor:pointer}[_nghost-%COMP%] igo-panel[_ngcontent-%COMP%]{height:100%;outline:none}[_nghost-%COMP%] igo-panel[_ngcontent-%COMP%] .igo-panel-header [panelleftbutton], [_nghost-%COMP%] igo-panel[_ngcontent-%COMP%] .igo-panel-header [panelrightbutton]{margin:0}[_nghost-%COMP%] igo-panel[_ngcontent-%COMP%] .igo-panel-content{-webkit-user-select:auto!important;user-select:auto!important}[_nghost-%COMP%] igo-feature-details[_ngcontent-%COMP%] iframe{min-height:24vh}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){[_nghost-%COMP%] igo-feature-details[_ngcontent-%COMP%] iframe{min-height:30vh}}[_nghost-%COMP%] app-full-toast-panel-opened[_ngcontent-%COMP%] igo-feature-details[_ngcontent-fiq-c23][_ngcontent-%COMP%] iframe[_ngcontent-%COMP%]{min-height:450px}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){[_nghost-%COMP%] app-full-toast-panel-opened[_ngcontent-%COMP%] igo-feature-details[_ngcontent-fiq-c23][_ngcontent-%COMP%] iframe[_ngcontent-%COMP%]{min-height:350px}}[_nghost-%COMP%] .swipe-fix[_ngcontent-%COMP%]{touch-action:pinch-zoom!important}.app-toast-panel-html[_ngcontent-%COMP%]{height:30vh;max-height:-moz-fit-content;max-height:fit-content;width:60vw}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){.app-toast-panel-html[_ngcontent-%COMP%]{width:100%;min-width:100%;height:34vh}}@media only screen and (orientation:portrait) and (min-width: 600px) and (max-width: 839px),only screen and (orientation:landscape) and (min-width: 960px) and (max-width: 1279px){.app-toast-panel-html[_ngcontent-%COMP%]{width:500px}}.app-toast-panel-html-large[_ngcontent-%COMP%]{height:55vh;width:60vw}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){.app-toast-panel-html-large[_ngcontent-%COMP%]{width:100%;min-width:100%;max-height:65vh;height:55vh}}@media only screen and (orientation:portrait) and (min-width: 600px) and (max-width: 839px),only screen and (orientation:landscape) and (min-width: 960px) and (max-width: 1279px){.app-toast-panel-html-large[_ngcontent-%COMP%]{width:500px}}.app-toast-panel-html-large[_ngcontent-%COMP%] .toast-content[_ngcontent-%COMP%]{height:100%;width:100%}.app-toast-panel-opened[_ngcontent-%COMP%]{height:auto;max-height:30vh;width:42vw;max-width:600px;margin-bottom:7px}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){.app-toast-panel-opened[_ngcontent-%COMP%]{max-height:34vh;width:100%;min-width:100%}}@media only screen and (orientation:portrait) and (min-width: 600px) and (max-width: 839px),only screen and (orientation:landscape) and (min-width: 960px) and (max-width: 1279px){.app-toast-panel-opened[_ngcontent-%COMP%]{width:500px}}.app-toast-panel-opened[_ngcontent-%COMP%] .toast-content[_ngcontent-%COMP%]{height:100%;width:100%;max-height:calc(30vh - 34px)}.app-full-toast-panel-opened[_ngcontent-%COMP%]{height:auto;max-height:65vh;width:45vw}.app-full-toast-panel-opened[_ngcontent-%COMP%] .toast-content[_ngcontent-%COMP%]{height:100%;width:100%;max-height:calc(65vh - 41px)}@media only screen and (orientation:portrait) and (min-width: 600px) and (max-width: 839px),only screen and (orientation:landscape) and (min-width: 960px) and (max-width: 1279px){.app-full-toast-panel-opened[_ngcontent-%COMP%]{width:500px;max-height:500px}.app-full-toast-panel-opened[_ngcontent-%COMP%] .toast-content[_ngcontent-%COMP%]{max-height:44vh}}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){.app-full-toast-panel-opened[_ngcontent-%COMP%]{width:100%;min-width:100%;max-height:65vh}}.app-toast-panel-collapsed[_ngcontent-%COMP%]{height:46px!important;width:42vw;max-width:600px}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){.app-toast-panel-collapsed[_ngcontent-%COMP%]{width:100%;min-width:100%;height:35px!important}}@media only screen and (orientation:portrait) and (min-width: 600px) and (max-width: 839px),only screen and (orientation:landscape) and (min-width: 960px) and (max-width: 1279px){.app-toast-panel-collapsed[_ngcontent-%COMP%]{width:500px}}.app-full-toast-panel-collapsed[_ngcontent-%COMP%]{height:46px!important;width:45vw}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){.app-full-toast-panel-collapsed[_ngcontent-%COMP%]{width:100%;min-width:100%;height:35px!important}}@media only screen and (orientation:portrait) and (min-width: 600px) and (max-width: 839px),only screen and (orientation:landscape) and (min-width: 960px) and (max-width: 1279px){.app-full-toast-panel-collapsed[_ngcontent-%COMP%]{width:500px}}.app-toast-panel-html-collapsed[_ngcontent-%COMP%]{height:46px!important;width:60vw}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){.app-toast-panel-html-collapsed[_ngcontent-%COMP%]{width:100%;min-width:100%;height:35px!important}}@media only screen and (orientation:portrait) and (min-width: 600px) and (max-width: 839px),only screen and (orientation:landscape) and (min-width: 960px) and (max-width: 1279px){.app-toast-panel-html-collapsed[_ngcontent-%COMP%]{width:500px}}#app-toast-panel-opened-max-height[_ngcontent-%COMP%]{height:30vh!important}#app-full-toast-panel-opened-max-height[_ngcontent-%COMP%]{height:65vh!important}"],changeDetection:0})}function pt(r="50ms",n="280ms",t="ease-in-out"){return(0,s.X$)("showContent",[(0,s.SB)("true",(0,s.oB)({opacity:1,display:"block"})),(0,s.SB)("false",(0,s.oB)({opacity:0,display:"none"})),(0,s.eR)("false => true",(0,s.jt)(`${r} ${n} ${t}`)),(0,s.eR)("true => false",(0,s.jt)("0ms"))])}const ct=["*"];class Y{set opened(n){n!==this._opened&&(this._opened=n,this.openedChange.emit(this._opened))}get opened(){return this._opened}_opened;title;withHeader;openedChange=new e.vpe;get hasOpenedClass(){return this.opened}get displayStyle(){return this.withHeader||this.opened?"visible":"hidden"}constructor(){}static \u0275fac=function(t){return new(t||Y)};static \u0275cmp=e.Xpm({type:Y,selectors:[["app-toast-panel-for-expansion"]],hostVars:4,hostBindings:function(t,o){2&t&&(e.Udp("visibility",o.displayStyle),e.ekj("toast-panel-for-expansion-opened",o.hasOpenedClass))},inputs:{opened:"opened",title:"title",withHeader:"withHeader"},outputs:{openedChange:"openedChange"},ngContentSelectors:ct,decls:4,vars:3,consts:[[3,"title","withHeader"],["content",""]],template:function(t,o){1&t&&(e.F$t(),e.TgZ(0,"igo-panel",0)(1,"div",null,1),e.Hsn(3),e.qZA()()),2&t&&(e.Q6J("title",o.title)("withHeader",o.withHeader),e.xp6(1),e.Q6J("@showContent",o.opened))},dependencies:[c.yX],styles:["[_nghost-%COMP%]{-o-box-shadow:0px 0px 2px 0px #dddddd;box-shadow:0 0 2px #ddd}[_nghost-%COMP%]{background-color:#fff;height:48px;max-height:329px;transition:height .28s cubic-bezier(.4,0,.2,1);padding:5px}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){[_nghost-%COMP%]{max-height:40%}}.toast-panel-for-expansion-opened[_nghost-%COMP%]{height:329px}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){.toast-panel-for-expansion-opened[_nghost-%COMP%]{height:40%}}igo-panel[_ngcontent-%COMP%]{position:relative;height:100%}igo-panel[_ngcontent-%COMP%] .igo-panel-header:hover{cursor:pointer}div[igostoppropagation][_ngcontent-%COMP%]{height:100%;width:100%}"],data:{animation:[pt()]},changeDetection:0})}function dt(r,n){if(1&r){const t=e.EpF();e.TgZ(0,"igo-home-button",9),e.NdJ("unselectButton",function(){e.CHM(t);const a=e.oxw();return e.KtG(a.onUnselectButtonClick())}),e.qZA()}}function ht(r,n){if(1&r){const t=e.EpF();e.TgZ(0,"button",10),e.NdJ("click",function(){e.CHM(t);const a=e.oxw();return e.KtG(a.onPreviousButtonClick())}),e.ALo(1,"translate"),e._UZ(2,"mat-icon",11),e.qZA()}2&r&&e.Q6J("matTooltip",e.lcZ(1,1,"igo.context.sidenav.goBack"))}const mt=function(r){return{toolActivated:r}};class Q{toolState;configService;catalogState;title$=new x.X(void 0);activeTool$$;get map(){return this._map}set map(n){this._map=n}_map;get opened(){return this._opened}set opened(n){n!==this._opened&&(this._opened=n,this.openedChange.emit(this._opened))}_opened;openedChange=new e.vpe;toolChange=new e.vpe;get toolbox(){return this.toolState.toolbox}constructor(n,t,o){this.toolState=n,this.configService=t,this.catalogState=o}ngOnInit(){this.activeTool$$=this.toolbox.activeTool$.subscribe(n=>{const t=this.configService.getConfig("sidenavTitle","IGO");if(n)if("catalogBrowser"===n.name)for(const o of this.catalogState.catalogStore.all())!0===this.catalogState.catalogStore.state.get(o).selected&&this.title$.next(o.title);else if("activeTimeFilter"===n.name||"activeOgcFilter"===n.name)for(const o of this.map.layers)!0===o.options.active&&this.title$.next(o.title);else this.title$.next(n.title);else this.title$.next(t);this.toolChange.emit(n)})}ngOnDestroy(){this.activeTool$$.unsubscribe()}onPreviousButtonClick(){this.toolbox.activatePreviousTool()}onUnselectButtonClick(){this.toolbox.deactivateTool()}static \u0275fac=function(t){return new(t||Q)(e.Y36(w.EH),e.Y36(m.M$),e.Y36(w.Yy))};static \u0275cmp=e.Xpm({type:Q,selectors:[["app-sidenav"]],inputs:{map:"map",opened:"opened"},outputs:{openedChange:"openedChange",toolChange:"toolChange"},decls:14,vars:20,consts:[["mode","side",1,"mat-elevation-z3",3,"autoFocus","opened","openedChange"],[1,"app-sidenav-content"],[1,"app-content",3,"ngClass"],["content",""],[3,"unselectButton",4,"ngIf"],[3,"title"],["mat-icon-button","","panelLeftButton","","tooltip-position","below","matTooltipShowDelay","500",3,"matTooltip","click",4,"ngIf"],["panelRightButton","","styleButton","icon"],["color","primary",1,"igo-toolbox",3,"animate","toolbox"],[3,"unselectButton"],["mat-icon-button","","panelLeftButton","","tooltip-position","below","matTooltipShowDelay","500",3,"matTooltip","click"],["svgIcon","arrow-left"]],template:function(t,o){1&t&&(e.TgZ(0,"mat-sidenav",0),e.NdJ("openedChange",function(i){return o.opened=i}),e.TgZ(1,"div",1)(2,"div",2,3),e.ALo(4,"async"),e.YNc(5,dt,1,0,"igo-home-button",4),e.ALo(6,"async"),e.TgZ(7,"igo-panel",5),e.ALo(8,"translate"),e.ALo(9,"async"),e.YNc(10,ht,3,3,"button",6),e.ALo(11,"async"),e._UZ(12,"igo-interactive-tour",7)(13,"igo-toolbox",8),e.qZA()()()()),2&t&&(e.Q6J("autoFocus",!1)("opened",o.opened),e.xp6(2),e.Q6J("ngClass",e.VKq(18,mt,e.lcZ(4,8,o.toolbox.activeTool$))),e.xp6(3),e.Q6J("ngIf",e.lcZ(6,10,o.toolbox.activeTool$)),e.xp6(2),e.Q6J("title",e.lcZ(8,12,e.lcZ(9,14,o.title$))),e.xp6(3),e.Q6J("ngIf",e.lcZ(11,16,o.toolbox.activeTool$)),e.xp6(3),e.Q6J("animate",!0)("toolbox",o.toolbox))},dependencies:[u.mk,u.O5,C.Hw,v.RK,Z.JX,S.gM,c.yX,c.zv,c.bB,c.p1,u.Ov,k.X$],styles:["[_nghost-%COMP%]{background-color:#fff}[_nghost-%COMP%] .igo-panel-header{position:relative}[_nghost-%COMP%] mat-sidenav[_ngcontent-%COMP%]{z-index:3!important;height:100%;width:400px;box-sizing:content-box}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){[_nghost-%COMP%] mat-sidenav[_ngcontent-%COMP%]{width:calc(100% - 53px);max-width:400px}}[_nghost-%COMP%] igo-home-button[_ngcontent-%COMP%]{position:absolute;top:53px}[_nghost-%COMP%] .app-content[_ngcontent-%COMP%], [_nghost-%COMP%] igo-panel[_ngcontent-%COMP%]{height:100%}[_nghost-%COMP%] .app-sidenav-content[_ngcontent-%COMP%]{margin-top:53px;height:calc(100% - 53px)}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){[_nghost-%COMP%] .app-sidenav-content[_ngcontent-%COMP%]{height:calc(100% - 53px)}}[_nghost-%COMP%] igo-panel[_ngcontent-%COMP%] .igo-panel-content{position:relative}[_nghost-%COMP%] div.toolActivated[_ngcontent-%COMP%] > igo-panel[_ngcontent-%COMP%] >div.igo-panel-header{margin-left:50px;position:relative}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){[_nghost-%COMP%] igo-toolbox[_ngcontent-%COMP%]{overflow:auto}}"],changeDetection:0})}var E=d(48286);const Me=function(r){return{width:r}};function gt(r,n){if(1&r&&(e.ynx(0),e._UZ(1,"img",6),e.BQk()),2&r){const t=e.oxw(2).$implicit;e.xp6(1),e.Q6J("src",t.imgSrc,e.LSH)("alt",t.alt)("ngStyle",e.VKq(3,Me,t.imgSize))}}function ut(r,n){if(1&r&&(e.TgZ(0,"a",4),e._uU(1),e.YNc(2,gt,2,5,"ng-container",5),e.qZA()),2&r){const t=e.oxw().$implicit;e.Q6J("href",t.link,e.LSH),e.xp6(1),e.hij(" ",t.text," "),e.xp6(1),e.Q6J("ngIf",t.imgSrc)}}function ft(r,n){if(1&r&&(e.ynx(0),e._UZ(1,"img",6),e.BQk()),2&r){const t=e.oxw(2).$implicit;e.xp6(1),e.Q6J("src",t.imgSrc,e.LSH)("alt",t.alt)("ngStyle",e.VKq(3,Me,t.imgSize))}}function xt(r,n){if(1&r&&(e._uU(0),e.YNc(1,ft,2,5,"ng-container",5)),2&r){const t=e.oxw().$implicit;e.hij(" ",t.text," "),e.xp6(1),e.Q6J("ngIf",t.imgSrc)}}function _t(r,n){if(1&r&&(e.ynx(0),e.TgZ(1,"div",1),e.YNc(2,ut,3,3,"a",2),e.YNc(3,xt,2,2,"ng-template",null,3,e.W1O),e.qZA(),e.BQk()),2&r){const t=n.$implicit,o=e.MAs(4);e.xp6(1),e.Udp("position",t.fixed?"fixed":"absolute")("margin-left",t.marginLeft)("margin-right",t.marginRight)("margin-top",t.marginTop)("margin-bottom",t.marginBottom)("font-size",t.fontSize),e.Q6J("ngClass",t.cssClass),e.xp6(1),e.Q6J("ngIf",t.link)("ngIfElse",o)}}class N{contextService;mediaService;configService;mapOverlay=[];context$$;media$$;context;constructor(n,t,o){this.contextService=n,this.mediaService=t,this.configService=o}ngAfterViewInit(){this.context$$=this.contextService.context$.subscribe(n=>{this.handleContextChange(n),this.context=n}),this.media$$=this.mediaService.media$.subscribe(n=>this.handleContextChange(this.context))}ngOnDestroy(){this.context$$.unsubscribe(),this.media$$.unsubscribe()}handleContextChange(n){let t=[];if(void 0!==n){this.mapOverlay=[],t=n.mapOverlay?n.mapOverlay:this.configService.getConfig("mapOverlay",[]);for(const o of t)(!o.media&&"desktop"===this.mediaService.getMedia()||o.media&&o.media.includes(this.mediaService.getMedia()))&&this.mapOverlay.push(o)}}static \u0275fac=function(t){return new(t||N)(e.Y36(E.Ob),e.Y36(m.yJ),e.Y36(m.M$))};static \u0275cmp=e.Xpm({type:N,selectors:[["app-map-overlay"]],decls:1,vars:1,consts:[[4,"ngFor","ngForOf"],[1,"mapOverlayDefault",3,"ngClass"],["target","_blank",3,"href",4,"ngIf","ngIfElse"],["templateNoLink",""],["target","_blank",3,"href"],[4,"ngIf"],[3,"src","alt","ngStyle"]],template:function(t,o){1&t&&e.YNc(0,_t,5,15,"ng-container",0),2&t&&e.Q6J("ngForOf",o.mapOverlay)},dependencies:[u.mk,u.sg,u.O5,u.PC],styles:["[_nghost-%COMP%]{height:100%;top:0;left:0;right:0;position:fixed;pointer-events:none}.mapOverlayDefault[_ngcontent-%COMP%]{position:absolute;white-space:nowrap;pointer-events:auto}.bottom-right[_ngcontent-%COMP%]{bottom:0;right:0}.top-right[_ngcontent-%COMP%]{top:0;right:0}.bottom-left[_ngcontent-%COMP%]{bottom:0;left:0}.top-left[_ngcontent-%COMP%]{top:0;left:0}.bottom-center[_ngcontent-%COMP%]{bottom:0;left:50%;transform:translate(-50%)}.top-center[_ngcontent-%COMP%]{top:0;left:50%;transform:translate(-50%)}.center-center[_ngcontent-%COMP%]{top:50%;left:50%;transform:translate(-50%)}.center-right[_ngcontent-%COMP%]{top:50%;right:0}.center-left[_ngcontent-%COMP%]{top:50%;left:0}"]})}const wt=["mapBrowser"],vt=["searchBar"];function yt(r,n){if(1&r){const t=e.EpF();e.TgZ(0,"igo-menu-button",24),e.NdJ("openSidenav",function(){e.CHM(t);const a=e.oxw();return e.KtG(a.onToggleSidenavClick())}),e.qZA()}if(2&r){const t=e.oxw();e.ekj("mat-elevation-z2",!t.sidenavOpened),e.Q6J("sidenavOpened",t.sidenavOpened)}}function St(r,n){if(1&r){const t=e.EpF();e.TgZ(0,"igo-search-bar",25,26),e.NdJ("searchTermChange",function(a){e.CHM(t);const i=e.oxw();return e.KtG(i.onSearchTermChange(a))})("pointerSummaryStatus",function(a){e.CHM(t);const i=e.oxw();return e.KtG(i.onPointerSummaryStatusChange(a))})("searchResultsGeometryStatus",function(a){e.CHM(t);const i=e.oxw();return e.KtG(i.onSearchResultsGeometryStatusChange(a))})("reverseSearchCoordsFormatStatus",function(a){e.CHM(t);const i=e.oxw();return e.KtG(i.onReverseCoordsFormatStatusChange(a))})("search",function(a){e.CHM(t);const i=e.oxw();return e.KtG(i.onSearch(a))})("clearFeature",function(){e.CHM(t);const a=e.oxw();return e.KtG(a.onClearSearch())})("searchSettingsChange",function(){e.CHM(t);const a=e.oxw();return e.KtG(a.onSearchSettingsChange())}),e.qZA()}if(2&r){const t=e.oxw();e.ekj("mat-elevation-z2",!t.sidenavOpened),e.Q6J("term",t.searchBarTerm)("termSplitter",t.termSplitter)("minLength",t.minSearchTermLength)("searchSettings",!0)("forceNA",null==t.appConfig.app?null:t.appConfig.app.forceCoordsNA)("store",t.searchStore)("pointerSummaryEnabled",t.igoSearchPointerSummaryEnabled)("searchResultsGeometryEnabled",t.searchResultsGeometryEnabled)("reverseSearchCoordsFormatEnabled",t.igoReverseSearchCoordsFormatEnabled)}}function Ct(r,n){1&r&&e._UZ(0,"igo-wake-lock-button",27)}function bt(r,n){if(1&r&&e._UZ(0,"igo-offline-button",28),2&r){const t=e.oxw();e.Q6J("map",t.map)("@controlsOffsetY",t.getControlsOffsetY())("@mobileOffsetY",t.getToastPanelStatus())}}function Ot(r,n){if(1&r&&e._UZ(0,"igo-geolocate-button",28),2&r){const t=e.oxw();e.Q6J("map",t.map)("@controlsOffsetY",t.getControlsOffsetY())("@mobileOffsetY",t.getToastPanelStatus())}}function Pt(r,n){if(1&r&&e._UZ(0,"igo-home-extent-button",29),2&r){const t=e.oxw();e.Q6J("map",t.map)("extentOverride",t.homeExtent)("centerOverride",t.homeCenter)("zoomOverride",t.homeZoom)}}function Mt(r,n){if(1&r&&e._UZ(0,"igo-user-button",28),2&r){const t=e.oxw();e.Q6J("map",t.map)("@controlsOffsetY",t.getControlsOffsetY())("@mobileOffsetY",t.getToastPanelStatus())}}function Tt(r,n){if(1&r){const t=e.EpF();e.TgZ(0,"button",42),e.NdJ("click",function(){e.CHM(t);const a=e.oxw().ngIf,i=e.oxw(2);return e.KtG(i.addFeature(a))}),e.ALo(1,"translate"),e._UZ(2,"mat-icon",43),e.qZA()}if(2&r){const t=e.oxw().ngIf;e.Q6J("disabled",!1===t.layer.options.sourceOptions.edition.addButton)("matTooltip",e.lcZ(1,2,"workspace.addFeature"))}}function kt(r,n){if(1&r&&e._UZ(0,"igo-actionbar",44),2&r){const t=e.oxw().ngIf,o=e.oxw(2);e.Q6J("store",t.actionStore)("withIcon",!0)("withTitle",o.actionbarWithTitle)("horizontal",!0)("withToggleButton","overlay"===o.actionbarMode)("iconColor","primary")("color","primary")("mode",o.actionbarMode)("overlayClass",o.workspaceMenuClass)}}function Et(r,n){if(1&r){const t=e.EpF();e.TgZ(0,"button",45),e.NdJ("click",function(){e.CHM(t);const a=e.oxw(3);return e.KtG(a.zoomToSelectedFeatureWks())}),e.ALo(1,"async"),e.ALo(2,"translate"),e._UZ(3,"mat-icon",46),e.ALo(4,"async"),e.qZA()}if(2&r){const t=e.oxw(3);e.Q6J("disabled",0===e.lcZ(1,3,t.workspaceState.workspaceSelection$).length)("matTooltip",e.lcZ(2,5,"toastPanel.zoomOnFeaturesTooltip")),e.xp6(3),e.s9C("svgIcon",e.lcZ(4,7,t.workspaceState.workspaceSelection$).length>1?"magnify-scan":"magnify-plus-outline")}}function $t(r,n){if(1&r){const t=e.EpF();e.TgZ(0,"igo-entity-table-paginator",47),e.NdJ("paginatorChange",function(a){e.CHM(t);const i=e.oxw(3);return e.KtG(i.paginatorChange(a))}),e.qZA()}if(2&r){const t=e.oxw().ngIf,o=e.oxw(2);e.Q6J("store",t.entityStore)("entitySortChange$",o.workspaceEntitySortChange$)("paginatorOptions",o.paginatorOptions)}}const Ft=function(r){return{disabled:r}};function At(r,n){if(1&r){const t=e.EpF();e.ynx(0),e.TgZ(1,"div",34)(2,"div",35)(3,"button",36),e.NdJ("click",function(){const i=e.CHM(t).ngIf;return e.KtG(i.layer.visible=!i.layer.visible)}),e.ALo(4,"translate"),e.ALo(5,"translate"),e._UZ(6,"mat-icon",37),e.ALo(7,"async"),e.qZA(),e.YNc(8,Tt,3,4,"button",38),e.YNc(9,kt,1,9,"igo-actionbar",39),e.YNc(10,Et,5,9,"button",40),e.qZA(),e.YNc(11,$t,1,3,"igo-entity-table-paginator",41),e.qZA(),e.BQk()}if(2&r){const t=n.ngIf,o=e.oxw(2);e.xp6(3),e.Q6J("color",t.layer.visible?"primary":"default")("matTooltip",t.layer.visible?e.lcZ(4,8,"igo.geo.layer.hideLayer"):e.lcZ(5,10,"igo.geo.layer.showLayer")),e.xp6(3),e.Q6J("ngClass",e.VKq(14,Ft,!0!==e.lcZ(7,12,t.inResolutionRange$)))("svgIcon",t.layer.visible?"eye":"eye-off"),e.xp6(2),e.Q6J("ngIf",o.isEditionWorkspace(t)),e.xp6(1),e.Q6J("ngIf",t.actionStore),e.xp6(1),e.Q6J("ngIf",o.workspaceVisibility()),e.xp6(1),e.Q6J("ngIf",o.workspaceVisibility())}}function Bt(r,n){if(1&r){const t=e.EpF();e.TgZ(0,"igo-entity-table",49),e.NdJ("entitySortChange",function(){e.CHM(t);const a=e.oxw(3);return e.KtG(a.entitySortChange())})("entitySelectChange",function(a){e.CHM(t);const i=e.oxw(3);return e.KtG(i.entitySelectChange(a))}),e.qZA()}if(2&r){const t=e.oxw().ngIf,o=e.oxw(2);e.Tol(o.isEditionWorkspace(t)?"edition-table":""),e.Q6J("paginator",o.workspacePaginator)("store",t.entityStore)("template",t.meta.tableTemplate)}}function jt(r,n){if(1&r&&(e.ynx(0),e.YNc(1,Bt,1,5,"igo-entity-table",48),e.TgZ(2,"span"),e._uU(3),e.ALo(4,"translate"),e.qZA(),e.BQk()),2&r){const t=n.ngIf,o=e.oxw(2);e.xp6(1),e.Q6J("ngIf",t.entityStore&&t.meta&&t.meta.tableTemplate&&o.workspaceVisibility()),e.xp6(2),e.Oqu(e.lcZ(4,2,o.workspaceNotAvailableMessage))}}function zt(r,n){if(1&r){const t=e.EpF();e.TgZ(0,"app-expansion-panel",30),e.NdJ("expandedChange",function(a){e.CHM(t);const i=e.oxw();return e.KtG(i.expansionPanelExpanded=a)}),e.ALo(1,"async"),e.ynx(2,31),e.TgZ(3,"igo-workspace-selector",32),e.NdJ("changeWorkspace",function(a){e.CHM(t);const i=e.oxw();return e.KtG(i.workspaceState.setActiveWorkspaceByTitle(a))})("disableSwitch",function(a){e.CHM(t);const i=e.oxw();return e.KtG(i.workspaceSwitchDisabled=a)})("relationLayers",function(a){e.CHM(t);const i=e.oxw();return e.KtG(i.refreshRelationsWorkspace(a))})("rowsInMapExtentCheckCondition",function(a){e.CHM(t);const i=e.oxw();return e.KtG(i.workspaceState.rowsInMapExtentCheckCondition$.next(a))}),e.qZA(),e.YNc(4,At,12,16,"ng-container",33),e.ALo(5,"async"),e.BQk(),e.YNc(6,jt,5,4,"ng-container",33),e.ALo(7,"async"),e.qZA()}if(2&r){const t=e.oxw();e.Q6J("backdropShown",t.expansionPanelBackdropShown)("expanded",t.expansionPanelExpanded)("maximized",e.lcZ(1,10,t.workspaceState.workspaceMaximize$))("@expansionPanelSize",t.getExpansionPanelStatus())("@toastOffsetY",t.isMobile()&&!t.toastPanelOpened&&t.queryState.store.entities$.value.length>0&&!t.expansionPanelExpanded?"true":"false"),e.xp6(3),e.Q6J("store",t.workspaceStore)("disabled",t.workspaceSwitchDisabled)("map",t.map),e.xp6(1),e.Q6J("ngIf",e.lcZ(5,12,t.selectedWorkspace$)),e.xp6(2),e.Q6J("ngIf",e.lcZ(7,14,t.selectedWorkspace$))}}function Zt(r,n){if(1&r){const t=e.EpF();e.TgZ(0,"igo-workspace-widget-outlet",50),e.NdJ("deactivateWidget",function(){e.CHM(t);const a=e.oxw();return e.KtG(a.onDeactivateWorkspaceWidget())}),e.qZA()}if(2&r){const t=n.ngIf;e.Q6J("workspace",t)}}function Rt(r,n){if(1&r){const t=e.EpF();e.TgZ(0,"app-toast-panel",51),e.NdJ("openedChange",function(a){e.CHM(t);const i=e.oxw();return e.KtG(i.toastOpenedChange(a))})("fullExtentEvent",function(a){e.CHM(t);const i=e.oxw();return e.KtG(i.fullExtent=a)})("windowHtmlDisplayEvent",function(a){e.CHM(t);const i=e.oxw();return e.KtG(i.setToastPanelHtmlDisplay(a))}),e.ALo(1,"async"),e.qZA()}if(2&r){const t=e.oxw();e.Q6J("map",t.map)("store",t.queryStore)("hasFeatureEmphasisOnSelection",t.appConfig.hasFeatureEmphasisOnSelection)("@toastPanelOffsetX",e.lcZ(1,7,t.toastPanelOffsetX$))("@toastPanelOffsetY",t.getToastPanelOffsetY())("@toastPanelMobileSidenav",t.isMobile()&&t.sidenavOpened||t.isTablet()&&t.isPortrait()&&t.sidenavOpened)("opened",t.toastPanelOpened)}}function Lt(r,n){if(1&r&&e._UZ(0,"igo-actionbar",52),2&r){const t=e.oxw();e.Q6J("store",t.contextMenuStore)("withIcon",!1)("horizontal",!0)}}const It=function(r){return{"igo-attribution-offset":r}};class U{route;workspaceState;authService;mediaService;layerService;dataSourceService;cdRef;capabilitiesService;contextState;mapState;searchState;queryState;toolState;searchSourceService;configService;importService;http;languageService;messageService;welcomeWindowService;dialogWindow;queryService;storageService;editionWorkspaceService;directionState;configFileToGeoDBService;appConfig;toastPanelOffsetX$=new x.X(void 0);sidenavOpened$=new x.X(!1);minSearchTermLength=2;hasGeolocateButton=!0;showMenuButton=!0;showSearchBar=!0;workspaceNotAvailableMessage="workspace.disabled.resolution";workspacePaginator;workspaceEntitySortChange$=new x.X(!1);workspaceSwitchDisabled=!1;paginatorOptions={pageSize:50,pageSizeOptions:[1,5,10,20,50,100,500]};workspaceMenuClass="workspace-menu";fullExtent;workspaceMaximize$$=[];matDialogRef$=new x.X(void 0);searchBarTerm="";onSettingsChange$=new x.X(void 0);termDefinedInUrl=!1;termSplitter="|";termDefinedInUrlTriggered=!1;addedLayers$$=[];contextMenuStore=new c.Dn([]);contextMenuCoord;contextLoaded=!1;context$$;openSidenav$$;sidenavMediaAndOrientation$$;igoSearchPointerSummaryEnabled;igoReverseSearchCoordsFormatEnabled;toastPanelForExpansionOpened=!0;activeWidget$$;showToastPanelForExpansionToggle=!1;selectedWorkspace$=new x.X(void 0);routeParams;toastPanelHtmlDisplay=!1;homeExtent;homeCenter;homeZoom;mapBrowser;searchBar;get map(){return this.mapState.map}get sidenavOpened(){return this.sidenavOpened$.value}set sidenavOpened(n){this.sidenavOpened$.next(n)}get toastPanelOpened(){return this._toastPanelOpened}set toastPanelOpened(n){n===!this._toastPanelOpened&&(this._toastPanelOpened=n,this.cdRef.detectChanges())}_toastPanelOpened;isMobile(){return this.mediaService.getMedia()===m.pU.Mobile}isTablet(){return this.mediaService.getMedia()===m.pU.Tablet}isLandscape(){return this.mediaService.getOrientation()===m.pC.Landscape}isPortrait(){return this.mediaService.getOrientation()===m.pC.Portrait}get backdropShown(){return(this.isMobile()||this.isTablet()&&this.isPortrait())&&this.sidenavOpened}get expansionPanelExpanded(){return this.workspaceState.workspacePanelExpanded}set expansionPanelExpanded(n){this.workspaceState.workspacePanelExpanded=n,!0===n?this.map.viewController.setPadding({bottom:280}):this.map.viewController.setPadding({bottom:0})}get contextUri(){return this.contextState.context$?.getValue()?this.contextState.context$.getValue().uri:void 0}get expansionPanelBackdropShown(){return this.expansionPanelExpanded&&this.toastPanelForExpansionOpened}get actionbarMode(){return c.rO.Overlay}get actionbarWithTitle(){return this.actionbarMode===c.rO.Overlay}get searchStore(){return this.searchState.store}get searchResultsGeometryEnabled(){return this.searchState.searchResultsGeometryEnabled$.value}get queryStore(){return this.queryState.store}get toolbox(){return this.toolState.toolbox}get toastPanelContent(){let n;return void 0!==this.workspace&&this.workspace.hasWidget&&(n="workspace"),n}get workspaceStore(){return this.workspaceState.store}get workspace(){return this.workspaceState.workspace$.value}constructor(n,t,o,a,i,p,h,g,f,_,le,_e,$,we,ve,ye,Vt,qt,Xt,Kt,en,tn,nn,on,an,sn){this.route=n,this.workspaceState=t,this.authService=o,this.mediaService=a,this.layerService=i,this.dataSourceService=p,this.cdRef=h,this.capabilitiesService=g,this.contextState=f,this.mapState=_,this.searchState=le,this.queryState=_e,this.toolState=$,this.searchSourceService=we,this.configService=ve,this.importService=ye,this.http=Vt,this.languageService=qt,this.messageService=Xt,this.welcomeWindowService=Kt,this.dialogWindow=en,this.queryService=tn,this.storageService=nn,this.editionWorkspaceService=on,this.directionState=an,this.configFileToGeoDBService=sn,this.handleAppConfigs(),this.storageService.set("version",fe(this.configService)),this.fullExtent=this.storageService.get("fullExtent"),this._toastPanelOpened=!1!==this.storageService.get("toastOpened"),this.igoSearchPointerSummaryEnabled=this.configService.getConfig("hasSearchPointerSummary"),void 0===this.igoSearchPointerSummaryEnabled&&(this.igoSearchPointerSummaryEnabled=this.storageService.get("searchPointerSummaryEnabled")||!1),this.igoReverseSearchCoordsFormatEnabled=this.storageService.get("reverseSearchCoordsFormatEnabled")||!1}ngOnInit(){window.IGO=this,this.searchState.searchTermSplitter$.next(this.termSplitter),this.initWelcomeWindow(),this.route.queryParams.subscribe(t=>{this.readLanguageParam(t)}),this.authService.authenticate$.subscribe(t=>{this.contextLoaded=!1}),this.context$$=this.contextState.context$.subscribe(t=>this.onChangeContext(t));const n=[{id:"coordinates",title:"coordinates",handler:()=>this.searchCoordinate(this.contextMenuCoord)},{id:"googleMaps",title:"googleMap",handler:()=>this.openGoogleMaps(this.contextMenuCoord)},{id:"googleStreetView",title:"googleStreetView",handler:()=>this.openGoogleStreetView(this.contextMenuCoord)}];this.contextMenuStore.load(n),this.queryStore.count$.pipe((0,je.G)()).subscribe(([t,o])=>{this.map.viewController.padding[2]=o?280:0,0===t&&o!==t&&this.isMobile()&&this.appConfig.hasExpansionPanel&&this.expansionPanelExpanded&&this.toastPanelOpened&&(this.toastPanelOpened=!1)}),this.map.ol.once("rendercomplete",()=>{this.readQueryParams(),void 0!==this.appConfig.geolocate?.activateDefault&&(this.map.geolocationController.tracking=this.appConfig.geolocate?.activateDefault)}),this.onSettingsChange$.subscribe(()=>{this.searchState.setSearchSettingsChange()}),this.searchState.selectedResult$.subscribe(t=>{t&&this.isMobile()&&this.closeSidenav()}),this.workspaceState.workspaceEnabled$.next(this.appConfig.hasExpansionPanel),this.workspaceState.store.empty$.subscribe(t=>{this.appConfig.hasExpansionPanel&&(this.workspaceState.workspaceEnabled$.next(!t),t&&(this.expansionPanelExpanded=!1),this.updateMapBrowserClass())}),this.workspaceMaximize$$.push(this.workspaceState.workspaceMaximize$.subscribe(t=>{this.updateMapBrowserClass()})),this.workspaceState.workspace$.subscribe(t=>{t?(this.selectedWorkspace$.next(t),this.expansionPanelExpanded=!0,t.layer.options.workspace?.pageSize&&t.layer.options.workspace?.pageSizeOptions?this.paginatorOptions={pageSize:t.layer.options.workspace?.pageSize,pageSizeOptions:t.layer.options.workspace?.pageSizeOptions}:this.paginatorOptions={pageSize:50,pageSizeOptions:[1,5,10,20,50,100,500]}):this.expansionPanelExpanded=!1}),this.activeWidget$$=this.workspaceState.activeWorkspaceWidget$.subscribe(t=>{void 0!==t?(this.openToastPanelForExpansion(),this.showToastPanelForExpansionToggle=!0):(this.closeToastPanelForExpansion(),this.showToastPanelForExpansionToggle=!1)}),this.openSidenav$$=this.toolState.openSidenav$.subscribe(t=>{t&&(this.openSidenav(),this.toolState.openSidenav$.next(!1))}),this.sidenavMediaAndOrientation$$=(0,L.a)([this.sidenavOpened$,this.mediaService.media$,this.mediaService.orientation$]).pipe((0,z.b)(50)).subscribe(t=>{this.computeToastPanelOffsetX()}),this.appConfig.importExport?.configFileToGeoDBService&&this.configFileToGeoDBService.load(this.appConfig.importExport.configFileToGeoDBService)}handleAppConfigs(){this.appConfig=this.configService.getConfigs(),this.hasGeolocateButton=this.configService.getConfig("geolocate.button.visible",!0),this.showMenuButton=this.configService.getConfig("menu.button.visible",!0),this.showSearchBar=this.configService.getConfig("searchBar.showSearchBar",!0),this.igoSearchPointerSummaryEnabled=this.appConfig.hasSearchPointerSummary}setToastPanelHtmlDisplay(n){this.toastPanelHtmlDisplay=n,this.computeToastPanelOffsetX()}computeToastPanelOffsetX(){this.isMobile()||!this.isLandscape()?Promise.resolve().then(()=>this.toastPanelOffsetX$.next(void 0)):Promise.resolve().then(()=>this.toastPanelOffsetX$.next(this.getToastPanelExtent()))}workspaceVisibility(){const n=this.selectedWorkspace$.value;return n.inResolutionRange$.value?n.entityStore.empty$.value&&!n.layer.visible?this.workspaceNotAvailableMessage="workspace.disabled.visible":this.workspaceNotAvailableMessage="":this.workspaceNotAvailableMessage="workspace.disabled.resolution",n.inResolutionRange$.value}isEditionWorkspace(n){return n instanceof l.S42}addFeature(n){let t={type:"Feature",properties:{}};t.properties=this.createFeatureProperties(n.layer),this.workspaceState.rowsInMapExtentCheckCondition$.next(!1),n.editFeature(t,n)}createFeatureProperties(n){let t={};return n.options.sourceOptions.sourceFields.forEach(o=>{!o.primary&&o.visible&&(t[o.name]="")}),t}paginatorChange(n){this.workspacePaginator=n}entitySortChange(){this.workspaceEntitySortChange$.next(!0)}entitySelectChange(n){this.getQuerySearchSource();const o=[];if((!(this.selectedWorkspace$.value instanceof l.RhL||this.selectedWorkspace$.value instanceof l.RMI)||this.selectedWorkspace$.value.getLayerWksOptionTabQuery())&&n&&n.added){const a=n.added.map(p=>{if(p&&p.ol&&p.ol.getProperties()._featureStore.layer&&p.ol.getProperties()._featureStore.layer.visible){const h=p.ol,g=p.ol.getProperties()._featureStore.layer,f=(0,l.ve2)(h,g.map.projection,g.ol);f.meta.alias=this.queryService.getAllowedFieldsAndAlias(g),f.meta.title=this.queryService.getQueryTitle(f,g)||f.meta.title;let _=o.find(le=>le.title===f.meta.sourceTitle);return _||(_=new l.W2O({title:f.meta.sourceTitle}),o.push(_)),(0,l.$LA)(f,_)}});(0,ue.of)(a).subscribe(p=>{this.queryStore.load(p)})}}ngOnDestroy(){this.context$$.unsubscribe(),this.activeWidget$$.unsubscribe(),this.openSidenav$$.unsubscribe(),this.workspaceMaximize$$.map(n=>n.unsubscribe()),this.sidenavMediaAndOrientation$$.unsubscribe()}cancelOngoingAddLayer(){this.addedLayers$$.forEach(n=>n.unsubscribe()),this.addedLayers$$=[]}onBackdropClick(){this.closeSidenav()}onToggleSidenavClick(){this.toggleSidenav()}onDeactivateWorkspaceWidget(){this.closeToastPanelForExpansion()}closeToastPanelForExpansion(){this.toastPanelForExpansionOpened=!1}openToastPanelForExpansion(){this.toastPanelForExpansionOpened=!0}onMapQuery(n){this.getQuerySearchSource();const o=[],i=n.features.map(h=>{let g=o.find(f=>f.title===h.meta.sourceTitle);if(!this.getFeatureIsSameActiveWks(h)||!this.getWksActiveOpenInResolution()||this.workspace.getLayerWksOptionMapQuery?.())return g||(g=new l.W2O({title:h.meta.sourceTitle}),o.push(g)),(0,l.$LA)(h,g)}).filter(h=>void 0!==h);(0,ue.of)(i).subscribe(h=>{this.queryStore.load(h)})}onSearchTermChange(n){this.routeParams?.search&&n!==this.routeParams.search&&this.searchState.deactivateCustomFilterTermStrategy(),this.searchBarTerm=n,this.searchState.setSearchTerm(n),n.replace(/(#[^\s]*)/g,"").trim().length<2?this.onClearSearch():this.onBeforeSearch()}onSearch(n){const t=n.results,o=!(0,l.OcM)(n.research.source);let a;a=o?this.searchSourceService.getEnabledSources().filter(l._iF):this.searchSourceService.getEnabledSources().filter(l.OcM);const i=this.searchStore.entities$.value.filter(p=>p.source!==n.research.source&&a.includes(p.source)).concat(t);this.searchStore.updateMany(i)}onSearchResultsGeometryStatusChange(n){this.searchState.setSearchResultsGeometryStatus(n)}onReverseCoordsFormatStatusChange(n){this.storageService.set("reverseSearchCoordsFormatEnabled",n),this.igoReverseSearchCoordsFormatEnabled=n}onSearchSettingsChange(){this.onSettingsChange$.next(!0)}closeSidenav(){this.sidenavOpened=!1,this.map.viewController.padding[3]=0}openSidenav(){this.sidenavOpened=!0,this.map.viewController.padding[3]=this.isMobile()?0:400}toggleSidenav(){this.sidenavOpened?this.closeSidenav():this.openSidenav(),this.computeToastPanelOffsetX()}toolChanged(n){n&&"searchResults"===n.name&&this.searchBar&&this.searchBar.nativeElement.getElementsByTagName("input")[0].focus()}computeHomeExtentValues(n){n?.map?.view?.homeExtent?(this.homeExtent=n.map.view.homeExtent.extent,this.homeCenter=n.map.view.homeExtent.center,this.homeZoom=n.map.view.homeExtent.zoom):(this.homeExtent=void 0,this.homeCenter=void 0,this.homeZoom=void 0)}onChangeContext(n){if(this.cancelOngoingAddLayer(),void 0!==n){if(this.workspace&&!this.workspace.entityStore.empty&&this.workspace.entityStore.clear(),this.queryState.store.empty||this.queryState.store.softClear(),this.computeHomeExtentValues(n),this.route.queryParams.pipe((0,z.b)(250)).subscribe(t=>{(!t.context||t.context===n.uri)&&this.readLayersQueryParams(t)}),this.contextLoaded){const t=this.toolbox.getTool("contextManager");let a=(t?t.options:{}).toolToOpenOnContextChange;if(!a){const i=["mapTools","map","mapDetails","mapLegend"];for(const p of i)if(this.toolbox.getTool(p)){a=p;break}}a&&this.toolbox.activateTool(a)}this.contextLoaded=!0}}onBeforeSearch(){(!this.toolbox.activeTool$.value||"searchResults"!==this.toolbox.activeTool$.value.name)&&this.toolbox.activateTool("searchResults"),this.openSidenav()}toastOpenedChange(n){this.map.viewController.padding[2]=n?280:0,this.handleExpansionAndToastOnMobile(),this.toastPanelOpened=n}handleExpansionAndToastOnMobile(){this.isMobile()&&this.appConfig.hasExpansionPanel&&this.expansionPanelExpanded&&this.toastPanelOpened&&(this.expansionPanelExpanded=!1)}onClearSearch(){this.map.searchResultsOverlay.clear(),this.searchStore.clear(),this.searchState.setSelectedResult(void 0),this.searchState.deactivateCustomFilterTermStrategy()}getQuerySearchSource(){return this.searchSourceService.getSources().find(n=>n instanceof l.W2O)}onContextMenuOpen(n){this.contextMenuCoord=this.getClickCoordinate(n)}getClickCoordinate(n){const t=n,o=this.mapBrowser.nativeElement.getBoundingClientRect();t.y=t.y-o.top+(window.scrollY||window.pageYOffset),t.x=t.x-o.left+(window.scrollX||window.pageXOffset);const a=[t.x,t.y],i=this.map.ol.getCoordinateFromPixel(a),p=this.map.projection;return be.vs(i,p,"EPSG:4326")}openGoogleMaps(n){window.open(l.Gij.getGoogleMapsCoordLink(n[0],n[1]))}openGoogleStreetView(n){window.open(l.Gij.getGoogleStreetViewLink(n[0],n[1]))}searchCoordinate(n){this.searchBarTerm=this.igoReverseSearchCoordsFormatEnabled?n.reverse().map(t=>t.toFixed(6)).join(", "):n.map(t=>t.toFixed(6)).join(", ")}updateMapBrowserClass(){const n=this.queryState.store.entities$.value.length>0;this.appConfig.hasExpansionPanel&&this.workspaceState.workspaceEnabled$.value?this.mapBrowser.nativeElement.classList.add("has-expansion-panel"):this.mapBrowser.nativeElement.classList.remove("has-expansion-panel"),this.appConfig.hasExpansionPanel&&this.expansionPanelExpanded?this.workspaceState.workspaceMaximize$.value?(this.mapBrowser.nativeElement.classList.add("expansion-offset-maximized"),this.mapBrowser.nativeElement.classList.remove("expansion-offset")):(this.mapBrowser.nativeElement.classList.add("expansion-offset"),this.mapBrowser.nativeElement.classList.remove("expansion-offset-maximized")):this.workspaceState.workspaceMaximize$.value?this.mapBrowser.nativeElement.classList.remove("expansion-offset-maximized"):this.mapBrowser.nativeElement.classList.remove("expansion-offset"),this.sidenavOpened?this.mapBrowser.nativeElement.classList.add("sidenav-offset"):this.mapBrowser.nativeElement.classList.remove("sidenav-offset"),this.sidenavOpened&&!this.isMobile()?this.mapBrowser.nativeElement.classList.add("sidenav-offset-baselayers"):this.mapBrowser.nativeElement.classList.remove("sidenav-offset-baselayers"),this.toastPanelOpened||!n||this.expansionPanelExpanded?this.mapBrowser.nativeElement.classList.remove("toast-offset-scale-line"):this.mapBrowser.nativeElement.classList.add("toast-offset-scale-line"),!this.toastPanelOpened&&n&&(this.isMobile()||this.isTablet()||this.sidenavOpened)&&!this.expansionPanelExpanded?this.mapBrowser.nativeElement.classList.add("toast-offset-attribution"):this.mapBrowser.nativeElement.classList.remove("toast-offset-attribution")}getToastPanelExtent(){return this.sidenavOpened?this.sidenavOpened?this.toastPanelHtmlDisplay&&this.mediaService.isDesktop()?"htmlDisplayOffsetX":this.fullExtent?"fullOffsetX":"standardOffsetX":void 0:this.toastPanelHtmlDisplay&&this.mediaService.isDesktop()?"htmlDisplay":this.fullExtent?"fullStandard":"standard"}onPointerSummaryStatusChange(n){this.storageService.set("searchPointerSummaryEnabled",n),this.igoSearchPointerSummaryEnabled=n}getExpansionPanelStatus(){return!1===this.sidenavOpened?!0===this.expansionPanelExpanded?"full":"notTriggered":!0===this.sidenavOpened&&!1===this.isMobile()?!0===this.expansionPanelExpanded?"reduced":"reducedNotTriggered":!0===this.sidenavOpened&&!0===this.isMobile()?!0===this.expansionPanelExpanded?"mobile":"notVisible":void 0}getToastPanelOffsetY(){let n="noExpansion";return n=this.expansionPanelExpanded?this.workspaceState.workspaceMaximize$.value?this.toastPanelOpened?"expansionMaximizedAndToastOpened":"expansionMaximizedAndToastClosed":this.toastPanelOpened?"expansionAndToastOpened":"expansionAndToastClosed":"noExpansion",n}getToastPanelStatus(){if(!0===this.isMobile()&&!1===this.toastPanelOpened&&!1===this.sidenavOpened&&!1===this.expansionPanelExpanded&&this.queryState.store.entities$.value.length>0)return"low"}getControlsOffsetY(){return this.expansionPanelExpanded?this.workspaceState.workspaceMaximize$.value?"firstRowFromBottom-expanded-maximized":"firstRowFromBottom-expanded":"firstRowFromBottom"}getBaselayersSwitcherStatus(){let n;return n=this.isMobile()?this.workspaceState.workspaceEnabled$.value?!1===this.expansionPanelExpanded?0===this.queryState.store.entities$.value.length?"secondRowFromBottom":"thirdRowFromBottom":0===this.queryState.store.entities$.value.length?"firstRowFromBottom-expanded":"secondRowFromBottom-expanded":0===this.queryState.store.entities$.value.length?"firstRowFromBottom":"secondRowFromBottom":this.workspaceState.workspaceEnabled$.value?this.expansionPanelExpanded?this.workspaceState.workspaceMaximize$.value?"firstRowFromBottom-expanded-maximized":"firstRowFromBottom-expanded":"secondRowFromBottom":"firstRowFromBottom",n}readQueryParams(){this.route.queryParams.subscribe(n=>{this.routeParams=n,this.readToolParams(),this.readSearchParams(),this.readFocusFirst(),this.computeZoomToExtent()})}readLanguageParam(n){n.lang&&(this.authService.languageForce=!0,this.languageService.setLanguage(n.lang))}computeZoomToExtent(){if(this.routeParams.zoomExtent){const n=this.routeParams.zoomExtent.split(","),t=be.$A(n,"EPSG:4326",this.map.projection);this.map.viewController.zoomToExtent(t)}}computeFocusFirst(){setTimeout(()=>{const n=document.getElementsByTagName("igo-search-results-item").item(0);n&&n.click()},1)}readFocusFirst(){if("1"===this.routeParams.sf&&this.termDefinedInUrl){const n=this.searchStore.stateView.all$().pipe((0,M.n)(t=>0===t.length),(0,z.b)(1e3),(0,Oe.q)(1)).subscribe(t=>{n.unsubscribe(),t.length&&!this.termDefinedInUrlTriggered&&(this.computeFocusFirst(),this.termDefinedInUrlTriggered=!0)})}}readSearchParams(){if(this.routeParams.search){if(this.termDefinedInUrl=!0,"1"===this.routeParams.exactMatch&&this.searchState.activateCustomFilterTermStrategy(),this.routeParams.search&&!this.routeParams.zoom&&"1"!==this.routeParams.sf){const n=this.searchStore.stateView.all$().pipe((0,M.n)(t=>0===t.length),(0,z.b)(500),(0,Oe.q)(1)).subscribe(t=>{n.unsubscribe();const o=t.filter(i=>i.entity.meta.dataType===l.D97).map(i=>(new ge.Z).readFeature(i.entity.data,{dataProjection:i.entity.data.projection,featureProjection:this.map.projection})),a=(0,l.HgW)(o,this.map.viewProjection);this.map.viewController.zoomToExtent(a)})}this.searchBarTerm=this.routeParams.search}"1"===this.routeParams.searchGeom&&this.searchState.searchResultsGeometryEnabled$.next(!0)}readToolParams(){if(this.routeParams.tool&&this.matDialogRef$.pipe((0,M.n)(n=>void 0!==n),(0,A.P)()).subscribe(n=>{n||this.toolbox.activateTool(this.routeParams.tool)}),"1"===this.routeParams.sidenav&&setTimeout(()=>{this.openSidenav()},250),this.routeParams.routing){let n=!1;const t=this.routeParams.routing.split(";"),o=this.routeParams.routingOptions;let a;o&&(a=parseInt(o.split("result:")[1],10)),this.directionState.stopsStore.storeInitialized$.pipe((0,M.n)(i=>!i),(0,A.P)()).subscribe(i=>{i&&!n&&(n=!0,t.map((p,h)=>{h>1&&(0,l.yLv)(this.directionState.stopsStore)}),setTimeout(()=>{t.map((p,h)=>{const g=this.directionState.stopsStore.all().find(f=>f.position===h);g.text=p,g.coordinates=p.split(","),this.directionState.stopsStore.update(g)})},1.25*this.directionState.debounceTime))}),this.directionState.routesFeatureStore.count$.pipe((0,M.n)(i=>i<1),(0,A.P)()).subscribe(i=>{i>=1&&this.directionState.zoomToActiveRoute$.next()}),this.directionState.routesFeatureStore.count$.pipe((0,M.n)(i=>i<2),(0,A.P)()).subscribe(()=>{a&&(this.directionState.routesFeatureStore.entities$.value.map(i=>i.properties.active=!1),this.directionState.routesFeatureStore.entities$.value[a].properties.active=!0,this.directionState.zoomToActiveRoute$.next())})}}readLayersQueryParams(n){this.readLayersQueryParamsByType(n,"wms"),this.readLayersQueryParamsByType(n,"wmts"),this.readLayersQueryParamsByType(n,"arcgisrest"),this.readLayersQueryParamsByType(n,"imagearcgisrest"),this.readLayersQueryParamsByType(n,"tilearcgisrest"),this.readVectorQueryParams(n)}getQueryParam(n,t){let o;return t.includes("?")&&(o=new Ce.LE({fromString:t.split("?")[1]}).get(n)),o}readLayersQueryParamsByType(n,t){let o,a;switch(t){case"wms":(n.layers||n.wmsLayers)&&n.wmsUrl&&(a="wmsUrl",o=n.wmsLayers?"wmsLayers":"layers");break;case"wmts":n.wmtsLayers&&n.wmtsUrl&&(a="wmtsUrl",o="wmtsLayers");break;case"arcgisrest":n.arcgisLayers&&n.arcgisUrl&&(a="arcgisUrl",o="arcgisLayers");break;case"imagearcgisrest":n.iarcgisLayers&&n.iarcgisUrl&&(a="iarcgisUrl",o="iarcgisLayers");break;case"tilearcgisrest":n.tarcgisLayers&&n.tarcgisUrl&&(a="tarcgisUrl",o="tarcgisLayers")}if(!o||!a)return;const i=n[o].split("),("),p=n[a].split(",");let h=0;p.forEach(g=>{let f=g;const _=this.getQueryParam("VERSION",f)||this.getQueryParam("version",f)||void 0;_&&(f=f.replace("VERSION="+_,"").replace("version="+_,"")),f.endsWith("?")&&(f=f.substring(0,f.length-1)),this.extractLayersByService(i[h]).forEach(_e=>{const $=_e.split(":igoz"),we=b.gb.removeUndefined({type:t,url:f,layer:$[0],params:"wms"===t?{LAYERS:$[0]}:void 0}),ve=(0,l.lZj)(we),ye=this.computeLayerVisibilityFromUrl(n,ve);this.addLayerFromURL(f,$[0],t,_,ye,$[1]?parseInt($[1],10):void 0)}),h+=1})}readVectorQueryParams(n){if(n.vector){const t=n.vector,o=t.lastIndexOf("/"),a=t.slice(o+1,t.length);this.http.get(`${t}`,{responseType:"blob"}).subscribe(i=>{const p=new File([i],a,{type:i.type,lastModified:Date.now()});this.importService.import(p).subscribe(h=>this.onFileImportSuccess(p,h),h=>this.onFileImportError(p,h))})}}onFileImportSuccess(n,t){(0,l.xrF)(n,t,this.map,this.contextState.context$.value.uri,this.messageService,this.layerService)}onFileImportError(n,t){(0,l.jDn)(n,t,this.messageService)}extractLayersByService(n){let t=n;return t=t.startsWith("(")?t.substr(1):t,t=t.endsWith(")")?t.slice(0,-1):t,t.split(",")}addLayerFromURL(n,t,o,a,i=!0,p){if(!this.contextLoaded)return;const h={optionsFromCapabilities:!0,optionsFromApi:!0,crossOrigin:!0,type:o,url:n},g="arcgisrest"===o||"imagearcgisrest"===o||"tilearcgisrest"===o;let f={version:"wmts"===o?"1.0.0":void 0,queryable:!!g,queryFormat:g?"esrijson":void 0,layer:t};"wms"===o&&(f={params:{LAYERS:t,VERSION:a}}),f=b.gb.removeUndefined(Object.assign({},f,h)),this.addedLayers$$.push(this.layerService.createAsyncLayer({zIndex:p,visible:i,sourceOptions:f}).subscribe(_=>{this.map.addLayer(_)}))}computeLayerVisibilityFromUrl(n,t){const o=n;let a=!0;if(!o||!t)return a;let i="",p="",h=[],g=[];return o.visiblelayers&&(i=o.visiblelayers),o.invisiblelayers&&(p=o.invisiblelayers),"*"===i&&(a=!0),"*"===p&&(a=!1),h=i.split(","),g=p.split(","),(h.indexOf(t)>-1||h.indexOf(t.toString())>-1)&&(a=!0),(g.indexOf(t)>-1||g.indexOf(t.toString())>-1)&&(a=!1),a}initWelcomeWindow(){this.authService.hasAuthService?this.authService.logged$.subscribe(n=>{n&&this.createWelcomeWindow()}):this.createWelcomeWindow()}createWelcomeWindow(){if(this.welcomeWindowService.hasWelcomeWindow()){const n=this.welcomeWindowService.getConfig();this.matDialogRef$.next(this.dialogWindow.open(H,n)),this.matDialogRef$.value.afterClosed().subscribe(t=>{this.welcomeWindowService.afterClosedWelcomeWindow(),this.matDialogRef$.next(void 0)})}}getFeatureIsSameActiveWks(n){if(this.workspace){const t=n.meta.sourceTitle;return this.workspace.title===t}return!1}getWksActiveOpenInResolution(){if(this.workspace){const n=this.workspace;if(n.active&&n.inResolutionRange$.value&&this.workspaceState.workspacePanelExpanded)return!0}return!1}refreshRelationsWorkspace(n){if(n?.length)for(const t of n)this.workspaceStore.all().find(a=>t.options.workspace.workspaceId.includes(a.id))?.meta.tableTemplate.columns.forEach(a=>{("list"===a.type||"autocomplete"===a.type)&&this.editionWorkspaceService.getDomainValues(a.relation).subscribe(i=>{a.domainValues=i})})}zoomToSelectedFeatureWks(){let n=new ge.Z;const t=this.workspaceState.workspaceSelection.map(a=>a.entity);if(0===t.length)return;const o=[];for(const a of t){let i=n.readFeature(a,{dataProjection:a.projection,featureProjection:this.map.projection});o.push(i)}(0,l.ybU)(this.map.viewController,o,l.bAZ.Zoom)}static \u0275fac=function(t){return new(t||U)(e.Y36(R.gz),e.Y36(w.gV),e.Y36(de.e8),e.Y36(m.yJ),e.Y36(l.ITu),e.Y36(l.LvN),e.Y36(e.sBO),e.Y36(l.neU),e.Y36(w.sz),e.Y36(w.U5),e.Y36(w.po),e.Y36(w.Tb),e.Y36(w.EH),e.Y36(l.gS3),e.Y36(m.M$),e.Y36(l.Y5R),e.Y36(Ce.eN),e.Y36(m.TS),e.Y36(m.ez),e.Y36(B),e.Y36(T.uw),e.Y36(l._7J),e.Y36(m.V1),e.Y36(l.zNf),e.Y36(w.Nw),e.Y36(l.D4b))};static \u0275cmp=e.Xpm({type:U,selectors:[["app-portal"]],viewQuery:function(t,o){if(1&t&&(e.Gf(wt,7,e.SBq),e.Gf(vt,7,e.SBq)),2&t){let a;e.iGM(a=e.CRH())&&(o.mapBrowser=a.first),e.iGM(a=e.CRH())&&(o.searchBar=a.first)}},decls:33,vars:50,consts:[[1,"app-main-container"],[3,"shown","click"],[1,"navbar-container"],[3,"mat-elevation-z2","sidenavOpened","openSidenav",4,"ngIf"],[3,"mat-elevation-z2","term","termSplitter","minLength","searchSettings","forceNA","store","pointerSummaryEnabled","searchResultsGeometryEnabled","reverseSearchCoordsFormatEnabled","searchTermChange","pointerSummaryStatus","searchResultsGeometryStatus","reverseSearchCoordsFormatStatus","search","clearFeature","searchSettingsChange",4,"ngIf"],[3,"map","opened","openedChange","toolChange"],["igoMapOffline","","igoWorkspaceUpdator","","igoLongPress","","igoSearchPointerSummary","","igoHoverFeature","","igoQuery","","igoMapContext","","igoLayerContext","","igoDropGeoFile","",3,"workspaceStore","igoSearchPointerSummaryDelay","igoSearchPointerSummaryEnabled","igoHoverFeatureDelay","igoHoverFeatureEnabled","waitForAllQueries","queryFeatures","queryFeaturesHitTolerance","contextUri","map","igoContextMenu","ngClass","query","menuPosition"],["mapBrowser",""],["color","primary",3,"map"],[1,"mat-elevation-z2",3,"map"],["class","mat-elevation-z2",4,"ngIf"],["color","primary","class","mat-elevation-z2",3,"map",4,"ngIf"],["class","mat-elevation-z2","color","primary",3,"map",4,"ngIf"],["color","primary",1,"mat-elevation-z2",3,"showIfNoRotation","map"],["class","mat-elevation-z2","color","primary",3,"map","extentOverride","centerOverride","zoomOverride",4,"ngIf"],[1,"mat-elevation-z2",3,"map","useStaticIcon"],[3,"backdropShown","expanded","maximized","expandedChange",4,"ngIf"],[3,"withHeader","opened","openedChange"],[1,"toast-panel-for-expansion-close-button-container"],["mat-icon-button","","color","warn",3,"click"],["svgIcon","close"],[3,"workspace","deactivateWidget",4,"ngIf"],[3,"map","store","hasFeatureEmphasisOnSelection","opened","openedChange","fullExtentEvent","windowHtmlDisplayEvent",4,"ngIf"],["contextMenu",""],[3,"sidenavOpened","openSidenav"],[3,"term","termSplitter","minLength","searchSettings","forceNA","store","pointerSummaryEnabled","searchResultsGeometryEnabled","reverseSearchCoordsFormatEnabled","searchTermChange","pointerSummaryStatus","searchResultsGeometryStatus","reverseSearchCoordsFormatStatus","search","clearFeature","searchSettingsChange"],["searchBar",""],[1,"mat-elevation-z2"],["color","primary",1,"mat-elevation-z2",3,"map"],["color","primary",1,"mat-elevation-z2",3,"map","extentOverride","centerOverride","zoomOverride"],[3,"backdropShown","expanded","maximized","expandedChange"],["expansionPanelHeader",""],["igoWorkspaceSelector","",3,"store","disabled","map","changeWorkspace","disableSwitch","relationLayers","rowsInMapExtentCheckCondition"],[4,"ngIf"],[1,"workspace-container"],[1,"workspace-actions"],["mat-icon-button","","collapsibleButton","","tooltip-position","below","matTooltipShowDelay","500",1,"eye-workspace",3,"color","matTooltip","click"],[3,"ngClass","svgIcon"],["class","add-feature","mat-icon-button","","color","primary","collapsibleButton","","tooltip-position","below","matTooltipShowDelay","500",3,"disabled","matTooltip","click",4,"ngIf"],["class","actionbar-workspace",3,"store","withIcon","withTitle","horizontal","withToggleButton","iconColor","color","mode","overlayClass",4,"ngIf"],["class","zoom-workspace","mat-icon-button","","color","primary","collapsibleButton","","tooltip-position","below","matTooltipShowDelay","500",3,"disabled","matTooltip","click",4,"ngIf"],[3,"store","entitySortChange$","paginatorOptions","paginatorChange",4,"ngIf"],["mat-icon-button","","color","primary","collapsibleButton","","tooltip-position","below","matTooltipShowDelay","500",1,"add-feature",3,"disabled","matTooltip","click"],["svgIcon","plus"],[1,"actionbar-workspace",3,"store","withIcon","withTitle","horizontal","withToggleButton","iconColor","color","mode","overlayClass"],["mat-icon-button","","color","primary","collapsibleButton","","tooltip-position","below","matTooltipShowDelay","500",1,"zoom-workspace",3,"disabled","matTooltip","click"],[3,"svgIcon"],[3,"store","entitySortChange$","paginatorOptions","paginatorChange"],[3,"class","paginator","store","template","entitySortChange","entitySelectChange",4,"ngIf"],[3,"paginator","store","template","entitySortChange","entitySelectChange"],[3,"workspace","deactivateWidget"],[3,"map","store","hasFeatureEmphasisOnSelection","opened","openedChange","fullExtentEvent","windowHtmlDisplayEvent"],["mode","context",3,"store","withIcon","horizontal"]],template:function(t,o){if(1&t&&(e.TgZ(0,"mat-sidenav-container",0)(1,"mat-sidenav-content")(2,"igo-backdrop",1),e.NdJ("click",function(){return o.onBackdropClick()}),e.qZA(),e.TgZ(3,"div",2),e.YNc(4,yt,1,3,"igo-menu-button",3),e.YNc(5,St,2,11,"igo-search-bar",4),e.qZA(),e.TgZ(6,"app-sidenav",5),e.NdJ("openedChange",function(i){return o.sidenavOpened=i})("toolChange",function(i){return o.toolChanged(i)}),e.qZA(),e.TgZ(7,"igo-map-browser",6,7),e.NdJ("query",function(i){return o.onMapQuery(i)})("menuPosition",function(i){return o.onContextMenuOpen(i)})("@mapStateX.start",function(){return o.updateMapBrowserClass()})("@mapStateY.start",function(){return o.updateMapBrowserClass()}),e._UZ(9,"igo-zoom-button",8)(10,"igo-swipe-control",9)(11,"igo-map-center",9),e.YNc(12,Ct,1,0,"igo-wake-lock-button",10),e.YNc(13,bt,1,3,"igo-offline-button",11),e.YNc(14,Ot,1,3,"igo-geolocate-button",12),e._UZ(15,"igo-rotation-button",13),e.YNc(16,Pt,1,4,"igo-home-extent-button",14),e.YNc(17,Mt,1,3,"igo-user-button",12),e._UZ(18,"igo-baselayers-switcher",15),e.qZA(),e._UZ(19,"app-map-overlay"),e.ALo(20,"async"),e.qZA()(),e.YNc(21,zt,8,16,"app-expansion-panel",16),e.ALo(22,"async"),e.TgZ(23,"app-toast-panel-for-expansion",17),e.NdJ("openedChange",function(i){return o.toastPanelForExpansionOpened=i}),e.TgZ(24,"div",18)(25,"button",19),e.NdJ("click",function(){return o.toastPanelForExpansionOpened=!1}),e._UZ(26,"mat-icon",20),e.qZA()(),e.YNc(27,Zt,1,1,"igo-workspace-widget-outlet",21),e.ALo(28,"async"),e.qZA(),e.YNc(29,Rt,2,9,"app-toast-panel",22),e.ALo(30,"async"),e.YNc(31,Lt,1,3,"ng-template",null,23,e.W1O)),2&t){const a=e.MAs(32);e.xp6(2),e.Q6J("shown",o.backdropShown),e.xp6(2),e.Q6J("ngIf",o.showMenuButton),e.xp6(1),e.Q6J("ngIf",o.showSearchBar),e.xp6(1),e.Q6J("map",o.map)("opened",o.sidenavOpened),e.xp6(1),e.Q6J("workspaceStore",o.workspaceStore)("igoSearchPointerSummaryDelay",500)("igoSearchPointerSummaryEnabled",o.igoSearchPointerSummaryEnabled)("igoHoverFeatureDelay",250)("igoHoverFeatureEnabled",!0)("waitForAllQueries",!0)("queryFeatures",!0)("queryFeaturesHitTolerance",15)("contextUri",o.contextUri)("map",o.map)("igoContextMenu",a)("ngClass",e.VKq(48,It,o.map.getBaseLayers().length>1))("@mapStateX",o.sidenavOpened?"right":"left")("@mapStateY",o.getControlsOffsetY()),e.xp6(2),e.Q6J("map",o.map)("@controlsOffsetY",o.getControlsOffsetY()),e.xp6(1),e.Q6J("map",o.map),e.xp6(1),e.Q6J("map",o.map),e.xp6(1),e.Q6J("ngIf",o.appConfig.wakeLockApiButton),e.xp6(1),e.Q6J("ngIf",o.appConfig.offlineButton),e.xp6(1),e.Q6J("ngIf",o.hasGeolocateButton),e.xp6(1),e.Q6J("showIfNoRotation",o.appConfig.showRotationButtonIfNoRotation)("map",o.map),e.xp6(1),e.Q6J("ngIf",o.appConfig.homeExtentButton),e.xp6(1),e.Q6J("ngIf",o.authService.hasAuthService),e.xp6(1),e.Q6J("map",o.map)("@controlsOffsetY",o.getBaselayersSwitcherStatus())("useStaticIcon",!0),e.xp6(1),e.Q6J("@controlStateY",o.getControlsOffsetY())("@controlStateX","mobile"!==e.lcZ(20,40,o.mediaService.media$)&&o.sidenavOpened?"right":"left"),e.xp6(2),e.Q6J("ngIf",o.appConfig.hasExpansionPanel&&e.lcZ(22,42,o.workspaceState.workspaceEnabled$)),e.xp6(2),e.Q6J("withHeader",!1)("opened",o.toastPanelForExpansionOpened),e.xp6(4),e.Q6J("ngIf",e.lcZ(28,44,o.selectedWorkspace$)),e.xp6(2),e.Q6J("ngIf",!0!==e.lcZ(30,46,o.queryStore.empty$))}},dependencies:[u.mk,u.O5,S.gM,v.RK,C.Hw,Z.TM,Z.Rh,l.V$T,l.ExE,l.PUQ,l.u$Y,l.$BH,l.fwr,l.AIr,l.W4Y,l.y$j,l.gvi,l.Ej2,l.tk9,l.qt4,l.pyf,l.TEo,l.NBD,l.tt3,c.nv,c.i8,c.lk,c.Fh,c.$E,l.DpO,l.O91,c.lB,c.Te,c.qv,J,O,Y,Q,N,E.b3,E.mH,E.qy,u.Ov,k.X$],styles:["[_nghost-%COMP%]{width:100%;height:100%;display:block}[_nghost-%COMP%] .navbar-container[_ngcontent-%COMP%]{position:absolute;left:4px;top:4px;display:flex;width:395px;max-width:395px;z-index:4}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){[_nghost-%COMP%] .navbar-container[_ngcontent-%COMP%]{width:calc(100% - 58px);max-width:min(100% - 48px - (2 * 5px),350px)}}[_nghost-%COMP%] .navbar-container[_ngcontent-%COMP%] igo-search-bar[_ngcontent-%COMP%]{flex:1;background-color:#fff;font-size:16px;margin-left:5px}[_nghost-%COMP%] .workspace-container[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between}[_nghost-%COMP%] .workspace-actions[_ngcontent-%COMP%]{display:flex;align-items:center}#tour-button[_ngcontent-%COMP%]{font-weight:700;position:absolute;left:5px;top:50px;z-index:4}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){.tour-button-title[_ngcontent-%COMP%]{display:none}}mat-icon.disabled[_ngcontent-%COMP%]{color:#00000061}igo-map-browser[_ngcontent-%COMP%]{width:100%;height:100%}igo-map-browser[_ngcontent-%COMP%] .ol-attribution{left:50px;bottom:5px;text-align:left;padding:0;margin-right:90px;background-color:#fff0;width:calc(100% - 500px)}igo-map-browser[_ngcontent-%COMP%] .ol-attribution.ol-logo-only{height:inherit}igo-map-browser[_ngcontent-%COMP%] .ol-attribution.ol-collapsed{background:none}igo-map-browser[_ngcontent-%COMP%] .ol-attribution.ol-collapsed button{transform:none}igo-map-browser[_ngcontent-%COMP%] .ol-attribution button{transform:rotate(180deg);background-color:#fff;cursor:pointer}igo-map-browser[_ngcontent-%COMP%] .ol-attribution.ol-uncollapsible{height:auto}igo-map-browser[_ngcontent-%COMP%] .ol-attribution ul{background-color:#fff9;padding:2px .5em}igo-map-browser.has-expansion-panel[_ngcontent-%COMP%] igo-baselayers-switcher[_ngcontent-%COMP%]{bottom:47px}igo-map-browser.sidenav-offset-baselayers[_ngcontent-%COMP%] igo-baselayers-switcher[_ngcontent-%COMP%]{left:405px}igo-map-browser[_ngcontent-%COMP%] .ol-overlaycontainer-stopevent{position:absolute;width:100%;left:0;bottom:0}igo-map-browser.sidenav-offset[_ngcontent-%COMP%] .ol-overlaycontainer-stopevent{left:400px;width:calc(100% - 380px)}igo-map-browser.sidenav-offset[_ngcontent-%COMP%] .ol-overlaycontainer-stopevent .ol-scale-line{left:40%}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){igo-map-browser.sidenav-offset[_ngcontent-%COMP%] .ol-overlaycontainer-stopevent{display:none}}igo-map-browser.expansion-offset[_ngcontent-%COMP%] .ol-overlaycontainer-stopevent{bottom:281px}igo-map-browser.expansion-offset-maximized[_ngcontent-%COMP%] .ol-overlaycontainer-stopevent{bottom:496px}igo-map-browser.toast-offset-scale-line[_ngcontent-%COMP%] .ol-overlaycontainer-stopevent .ol-scale-line{bottom:50px}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){igo-map-browser.toast-offset-attribution[_ngcontent-%COMP%] .ol-overlaycontainer-stopevent .ol-attribution{bottom:50px}}mat-sidenav-container[_ngcontent-%COMP%]{height:100%;width:100%;background-color:#efefef;z-index:5;display:unset}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){mat-sidenav-content[_ngcontent-%COMP%]{z-index:auto}}.spacer[_ngcontent-%COMP%]{flex:1 1 auto}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){igo-workspace-selector[_ngcontent-%COMP%]{width:100px}}igo-entity-table-paginator[_ngcontent-%COMP%]{position:absolute;right:0}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){igo-entity-table-paginator[_ngcontent-%COMP%]{margin-left:-30px}}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){igo-entity-table-paginator[_ngcontent-%COMP%] .mat-mdc-paginator-range-label{margin:10px 1px 0 20px}}igo-entity-table[_ngcontent-%COMP%] td.mat-column-edition{display:flex;height:100%;align-items:center}app-expansion-panel[_ngcontent-%COMP%]{position:absolute;bottom:0;z-index:5}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){@supports (-webkit-appearance: none) and (not (overflow: -webkit-marquee)) and (not (-ms-ime-align: auto)) and (not (-moz-appearance: none)){app-expansion-panel[_ngcontent-%COMP%]{z-index:5}}}app-toast-panel[_ngcontent-%COMP%]{position:absolute;left:50%;margin-left:-300px;max-width:-moz-fit-content;max-width:fit-content;z-index:5;outline:none}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){app-toast-panel[_ngcontent-%COMP%]{left:49px;margin-left:0;min-width:100%}}@media only screen and (orientation:portrait) and (min-width: 600px) and (max-width: 839px),only screen and (orientation:landscape) and (min-width: 960px) and (max-width: 1279px){app-toast-panel[_ngcontent-%COMP%]{max-width:inherit;left:calc(50% + 60px)}}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){app-expansion-panel.app-expansion-panel-expanded[_ngcontent-%COMP%] + app-toast-panel-for-expansion[_ngcontent-%COMP%] + app-toast-panel[_ngcontent-%COMP%] >div igo-panel.app-full-toast-panel-opened, app-expansion-panel.app-expansion-panel-expanded[_ngcontent-%COMP%] + app-toast-panel-for-expansion[_ngcontent-%COMP%] + app-toast-panel[_ngcontent-%COMP%] >div igo-panel.app-toast-panel-html-large, app-expansion-panel.app-expansion-panel-expanded[_ngcontent-%COMP%] + app-toast-panel-for-expansion[_ngcontent-%COMP%] + app-toast-panel[_ngcontent-%COMP%] igo-panel.app-full-toast-panel-opened, app-expansion-panel.app-expansion-panel-expanded[_ngcontent-%COMP%] + app-toast-panel-for-expansion[_ngcontent-%COMP%] + app-toast-panel[_ngcontent-%COMP%] igo-panel.app-toast-panel-html-large{max-height:50vh}app-expansion-panel.app-expansion-panel-expanded[_ngcontent-%COMP%] + app-toast-panel-for-expansion[_ngcontent-%COMP%] + app-toast-panel[_ngcontent-%COMP%] >div igo-panel.app-full-toast-panel-opened .toast-content, app-expansion-panel.app-expansion-panel-expanded[_ngcontent-%COMP%] + app-toast-panel-for-expansion[_ngcontent-%COMP%] + app-toast-panel[_ngcontent-%COMP%] >div igo-panel.app-toast-panel-html-large .toast-content, app-expansion-panel.app-expansion-panel-expanded[_ngcontent-%COMP%] + app-toast-panel-for-expansion[_ngcontent-%COMP%] + app-toast-panel[_ngcontent-%COMP%] igo-panel.app-full-toast-panel-opened .toast-content, app-expansion-panel.app-expansion-panel-expanded[_ngcontent-%COMP%] + app-toast-panel-for-expansion[_ngcontent-%COMP%] + app-toast-panel[_ngcontent-%COMP%] igo-panel.app-toast-panel-html-large .toast-content{max-height:42vh}}app-expansion-panel.app-expansion-panel-expanded-maximized[_ngcontent-%COMP%] + app-toast-panel-for-expansion[_ngcontent-%COMP%] + app-toast-panel[_ngcontent-%COMP%] >igo-panel{max-height:45vh}app-expansion-panel.app-expansion-panel-expanded-maximized[_ngcontent-%COMP%] + app-toast-panel-for-expansion[_ngcontent-%COMP%] + app-toast-panel[_ngcontent-%COMP%] >igo-panel .toast-content{max-height:40vh}@media only screen and (orientation:portrait) and (min-width: 600px) and (max-width: 839px),only screen and (orientation:landscape) and (min-width: 960px) and (max-width: 1279px){app-expansion-panel.app-expansion-panel-expanded-maximized[_ngcontent-%COMP%] + app-toast-panel-for-expansion[_ngcontent-%COMP%] + app-toast-panel[_ngcontent-%COMP%] >igo-panel{max-height:30vh}app-expansion-panel.app-expansion-panel-expanded-maximized[_ngcontent-%COMP%] + app-toast-panel-for-expansion[_ngcontent-%COMP%] + app-toast-panel[_ngcontent-%COMP%] >igo-panel .toast-content{max-height:24vh}}app-expansion-panel.app-expansion-panel-expanded-maximized[_ngcontent-%COMP%] + app-toast-panel-for-expansion[_ngcontent-%COMP%] + app-toast-panel[_ngcontent-%COMP%] >igo-panel.app-toast-panel-html{height:30vh}app-expansion-panel.app-expansion-panel-expanded-maximized[_ngcontent-%COMP%] + app-toast-panel-for-expansion[_ngcontent-%COMP%] + app-toast-panel[_ngcontent-%COMP%] >igo-panel.app-toast-panel-opened{height:auto;max-height:30vh}app-expansion-panel.app-expansion-panel-expanded-maximized[_ngcontent-%COMP%] + app-toast-panel-for-expansion[_ngcontent-%COMP%] + app-toast-panel[_ngcontent-%COMP%] >igo-panel.app-toast-panel-opened .toast-content{max-height:25vh}app-toast-panel.expansion-panel-expanded[_ngcontent-%COMP%], app-toast-panel[_ngcontent-%COMP%]:not(.has-expansion-panel), app-toast-panel.app-toast-panel-opened[_ngcontent-%COMP%]{bottom:0}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){app-toast-panel.expansion-panel-expanded[_ngcontent-%COMP%], app-toast-panel[_ngcontent-%COMP%]:not(.has-expansion-panel), app-toast-panel.app-toast-panel-opened[_ngcontent-%COMP%]{left:0}}igo-offline-button[_ngcontent-%COMP%]{margin-bottom:128px}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){igo-offline-button[_ngcontent-%COMP%]{margin-bottom:45px}}@media only screen and (orientation:portrait) and (min-width: 600px) and (max-width: 839px),only screen and (orientation:landscape) and (min-width: 960px) and (max-width: 1279px){igo-offline-button[_ngcontent-%COMP%]{margin-bottom:45px}}igo-geolocate-button[_ngcontent-%COMP%]{margin-bottom:85px}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){igo-geolocate-button[_ngcontent-%COMP%]{margin-bottom:0}}@media only screen and (orientation:portrait) and (min-width: 600px) and (max-width: 839px),only screen and (orientation:landscape) and (min-width: 960px) and (max-width: 1279px){igo-geolocate-button[_ngcontent-%COMP%]{margin-bottom:0}}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){igo-home-extent-button[_ngcontent-%COMP%]{margin-bottom:0;right:100px}}@media only screen and (orientation:portrait) and (min-width: 600px) and (max-width: 839px),only screen and (orientation:landscape) and (min-width: 960px) and (max-width: 1279px){igo-home-extent-button[_ngcontent-%COMP%]{margin-bottom:0;right:100px}}igo-zoom-button[_ngcontent-%COMP%] button{box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}@media only screen and (orientation:portrait) and (min-width: 600px) and (max-width: 839px),only screen and (orientation:landscape) and (min-width: 960px) and (max-width: 1279px){igo-zoom-button[_ngcontent-%COMP%]{display:none}}app-toast-panel-for-expansion[_ngcontent-%COMP%]{position:absolute;bottom:0;left:50%;margin-left:-300px;width:600px;z-index:6}@media only screen and (min-width: 960px) and (max-width: 1280px){app-toast-panel-for-expansion[_ngcontent-%COMP%]{width:480px;margin-left:-240px}}@media only screen and (min-width: 600px) and (max-width: 959px){app-toast-panel-for-expansion[_ngcontent-%COMP%]{width:480px;margin-left:-240px}}@media only screen and (orientation:portrait) and (min-width: 600px) and (max-width: 839px),only screen and (orientation:landscape) and (min-width: 960px) and (max-width: 1279px){app-toast-panel-for-expansion[_ngcontent-%COMP%]{width:calc(100% - 98px);left:49px;margin-left:0}}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){app-toast-panel-for-expansion[_ngcontent-%COMP%]{width:calc(100% - 98px);left:49px;margin-left:0}}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){toast-panel-for-expansion.toast-panel-for-expansion-opened[_ngcontent-%COMP%]{width:100%;left:0}}.mat-mdc-table[_ngcontent-%COMP%] thead[_ngcontent-%COMP%] mat-header-row[_ngcontent-%COMP%] .mat-mdc-table-sticky[_ngcontent-%COMP%]{background:none}app-toast-panel-for-expansion[_ngcontent-%COMP%] .toast-panel-for-expansion-close-button-container[_ngcontent-%COMP%]{position:absolute;top:-10px;right:-15px;z-index:6;padding:5px}app-toast-panel-for-expansion[_ngcontent-%COMP%] .toast-panel-for-expansion-close-button-container[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{height:24px;line-height:24px}.add-feature[_ngcontent-%COMP%]{margin-top:5px}.actionbar-workspace[_ngcontent-%COMP%]{padding-left:0} div.workspace-menu{max-width:-moz-fit-content!important;max-width:fit-content!important} div.workspace-menu div.mat-mdc-menu-content span.mat-checkbox-label, div.workspace-menu div.mat-mdc-menu-content div.mdc-list-item__primary-text{font-size:12px}"],data:{animation:[ze(),Ze(),Re(),Le(),Ie(),De(),He()]}})}class G{configService;languageService;headerLogo;headerLogoPrint;constructor(n,t){this.configService=n,this.languageService=t,this.computeHeader()}computeHeader(){this.headerLogo=this.configService.getConfig("header.logo"),this.headerLogoPrint=this.configService.getConfig("header.logoPrint")}static \u0275fac=function(t){return new(t||G)(e.Y36(m.M$),e.Y36(m.TS))};static \u0275cmp=e.Xpm({type:G,selectors:[["app-header"]],decls:21,vars:14,consts:[["role","banner","color","primary",1,"banner"],[1,"container"],[1,"row"],[1,"col-6","col-md-10","d-flex","flex-wrap","align-items-center","zone-logo-title"],["tabindex","5","routerLink","",1,"logo"],["id","header-logo","alt","Logo",3,"src"],["id","header-logo-print","alt","Logo","width","199","height","60",3,"src"],["lang","fr","id","title-desktop",1,"zone-title","d-none","d-md-block"],[1,"col-6","col-md-2","d-flex","justify-content-end","zone-links"],[1,"nav","flex-column"],["rel","noopener noreferrer","alt","('header.contactUsUrl' | translate)","target","_blank",3,"href"],["lang","fr","id","title-mobile",1,"zone-title","d-md-none","col-12"]],template:function(t,o){1&t&&(e.TgZ(0,"mat-toolbar",0)(1,"div",1)(2,"div",2)(3,"div",3)(4,"a",4),e._UZ(5,"img",5),e.qZA(),e._UZ(6,"img",6),e.TgZ(7,"p",7),e._uU(8),e.ALo(9,"translate"),e.qZA()(),e.TgZ(10,"div",8)(11,"ul",9)(12,"li")(13,"a",10),e.ALo(14,"translate"),e._uU(15),e.ALo(16,"translate"),e.qZA()()()(),e.TgZ(17,"p",11)(18,"a"),e._uU(19),e.ALo(20,"translate"),e.qZA()()()()()),2&t&&(e.xp6(5),e.s9C("src",o.headerLogo,e.LSH),e.xp6(1),e.s9C("src",o.headerLogoPrint,e.LSH),e.xp6(2),e.hij(" ",e.lcZ(9,6,"header.title")," "),e.xp6(5),e.s9C("href",e.lcZ(14,8,"header.contactUsUrl"),e.LSH),e.xp6(2),e.Oqu(e.lcZ(16,10,"header.contactUs")),e.xp6(4),e.Oqu(e.lcZ(20,12,"header.title")))},dependencies:[D.Ye,k.X$],styles:[".portal-with-header{height:calc(100% - 72px)!important}@media screen and (min-width: 824px){ .portal-with-header{height:calc(100% - 72px)!important}}[_ngcontent-%COMP%]:root{--breakpoint-pgu-sm: 403px;--breakpoint-sm: 576px;--breakpoint-md: 768px;--breakpoint-lg: 992px;--breakpoint-xl: 1200px}html[_ngcontent-%COMP%], body[_ngcontent-%COMP%]{padding:0;margin:0!important;width:100%;font-size:16px;font-family:Open sans,sans-serif}@media (min-width: 1280px) and (orientation: landscape){body[_ngcontent-%COMP%]{margin:0!important}}html[_ngcontent-%COMP%], body[_ngcontent-%COMP%], div[_ngcontent-%COMP%], span[_ngcontent-%COMP%], a[_ngcontent-%COMP%], header[_ngcontent-%COMP%], nav[_ngcontent-%COMP%]{margin:0;padding:0;border:0;vertical-align:baseline}html[_ngcontent-%COMP%], body[_ngcontent-%COMP%]{font-family:Open sans,sans-serif}.col-6[_ngcontent-%COMP%], .col-md-2[_ngcontent-%COMP%], .col-md-10[_ngcontent-%COMP%]{position:relative;width:100%}.col-12[_ngcontent-%COMP%]{flex:0 0 100%;max-width:100%}.container[_ngcontent-%COMP%]{width:100%;margin-right:auto;margin-left:auto}.row[_ngcontent-%COMP%]{-ms-display:flex;display:flex;flex-wrap:wrap;height:100%;width:98%;align-content:center;margin:auto}.col-6[_ngcontent-%COMP%]{flex:0 0 50%;max-width:50%}h1[_ngcontent-%COMP%], h2[_ngcontent-%COMP%], h3[_ngcontent-%COMP%], h4[_ngcontent-%COMP%], h5[_ngcontent-%COMP%], h6[_ngcontent-%COMP%]{font-family:Roboto,sans-serif;font-weight:700;color:#095797!important}a[_ngcontent-%COMP%]{word-break:break-word;overflow-wrap:break-word}img[_ngcontent-%COMP%]{vertical-align:middle;border-style:none}*[_ngcontent-%COMP%], *[_ngcontent-%COMP%]:before, *[_ngcontent-%COMP%]:after{box-sizing:border-box}.d-none[_ngcontent-%COMP%]{display:none}.flex-column[_ngcontent-%COMP%]{display:flex;flex-direction:column!important}.flex-wrap[_ngcontent-%COMP%]{flex-wrap:wrap!important}.d-flex[_ngcontent-%COMP%]{display:flex!important}.align-items-center[_ngcontent-%COMP%]{align-items:center!important}.justify-content-end[_ngcontent-%COMP%]{justify-content:flex-end!important}d-md-none[_ngcontent-%COMP%]{display:none}.align-self-end[_ngcontent-%COMP%]{align-self:flex-end!important}.banner[_ngcontent-%COMP%]{display:flex;width:100%;height:72px;box-sizing:border-box;font-family:Roboto,sans-serif;margin:0;padding:0;border:0;font-size:100%;vertical-align:baseline}a[_ngcontent-%COMP%]{color:#fff;text-decoration:none}.zone-logo-title[_ngcontent-%COMP%]{padding:.5rem 1.1rem .5rem 0}.zone-title[_ngcontent-%COMP%]{font-size:1rem}.zone-links[_ngcontent-%COMP%]{padding-left:1.1rem;max-width:100%;margin:auto;list-style:none;display:block;color:#fff}#header-logo[_ngcontent-%COMP%]{width:100%;min-width:7rem;max-height:28px}#header-logo-print[_ngcontent-%COMP%]{display:none}.zone-links[_ngcontent-%COMP%] ul[_ngcontent-%COMP%]{font: .8rem/1.2rem roboto,sans-serif;-webkit-font-smoothing:antialiased;text-align:left;flex-wrap:wrap;list-style:none;padding:0;margin:0}ul[_ngcontent-%COMP%] li[_ngcontent-%COMP%]:last-child{padding:0}.zone-links[_ngcontent-%COMP%] ul[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:hover, .zone-links[_ngcontent-%COMP%] ul[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:focus{text-decoration:underline;cursor:pointer}.buttonLanguage[_ngcontent-%COMP%]{background:none;border-style:none;padding:0;font: .8rem/1rem roboto,sans-serif;color:unset}#title-mobile[_ngcontent-%COMP%]{margin:auto 0;display:block}#title-desktop[_ngcontent-%COMP%]{display:none;color:#fff;margin:auto 0;padding:0} igo-spinner{position:absolute;top:76px!important;right:4px;z-index:100}@media screen and (min-width: 576px){.zone-logo-title[_ngcontent-%COMP%], .zone-links[_ngcontent-%COMP%]{flex:0 0 50%;max-width:50%}}@media screen and (min-width: 768px){.col-md-10[_ngcontent-%COMP%]{flex:0 0 83.33333%;max-width:83.33333%}.zone-links[_ngcontent-%COMP%]{flex:0 0 16.66667%;max-width:16.66667%}#header-logo[_ngcontent-%COMP%]{max-height:39px;padding-right:3.75rem}.banner[_ngcontent-%COMP%]{height:72px}.d-md-block[_ngcontent-%COMP%]{display:block!important}.d-md-none[_ngcontent-%COMP%]{display:none!important}.zone-logo-title[_ngcontent-%COMP%]{flex:0 0 83.33333%;max-width:83.33333%} igo-spinner{top:76px!important;right:4px;z-index:100}}"]})}class V{languageService;constructor(n){this.languageService=n}static \u0275fac=function(t){return new(t||V)(e.Y36(m.TS))};static \u0275cmp=e.Xpm({type:V,selectors:[["app-footer"]],decls:21,vars:18,consts:[["id","footer-id",1,"footer-right"],[1,"order2"],[1,"footer-text"],["rel","noopener noreferrer","alt","('externallinks' | translate)","target","_blank",3,"href"]],template:function(t,o){1&t&&(e.TgZ(0,"div",0)(1,"span",1)(2,"span",2)(3,"a",3),e.ALo(4,"translate"),e._uU(5),e.ALo(6,"translate"),e.qZA()(),e.TgZ(7,"span",2),e._uU(8," | "),e.qZA(),e.TgZ(9,"span",2)(10,"a",3),e.ALo(11,"translate"),e._uU(12),e.ALo(13,"translate"),e.qZA()(),e.TgZ(14,"span",2),e._uU(15," | "),e.qZA(),e.TgZ(16,"span",2)(17,"a",3),e.ALo(18,"translate"),e._uU(19),e.ALo(20,"translate"),e.qZA()()()()),2&t&&(e.xp6(3),e.s9C("href",e.lcZ(4,6,"footer.url-conditions"),e.LSH),e.xp6(2),e.Oqu(e.lcZ(6,8,"footer.conditions")),e.xp6(5),e.s9C("href",e.lcZ(11,10,"footer.url-ministry"),e.LSH),e.xp6(2),e.Oqu(e.lcZ(13,12,"footer.ministry")),e.xp6(5),e.s9C("href",e.lcZ(18,14,"footer.url-gov"),e.LSH),e.xp6(2),e.Oqu(e.lcZ(20,16,"footer.gov")))},dependencies:[k.X$],styles:[".order2[_ngcontent-%COMP%]{order:2;margin-right:.5%;display:block;right:0;margin-left:140px;text-align:right!important;width:100%}.footer-right[_ngcontent-%COMP%]{z-index:666;background:rgba(255,255,255,.6392156863);font-size:.7rem;display:flex;align-items:center;height:29px}span.footer-text[_ngcontent-%COMP%]{color:#095797;align-self:center;margin-left:.5rem}span.footer-text[_ngcontent-%COMP%] a[_ngcontent-%COMP%]{color:#095797;text-decoration:none} div.ol-scale-line{position:fixed!important;display:flex;flex-direction:row;margin-left:.5%;left:70px!important;bottom:3px!important} .ol-scale-line-inner{border:1px solid black;color:#000;border-top:none;order:1}"]})}function Dt(r,n){1&r&&e._UZ(0,"igo-auth-form")}function Ht(r,n){1&r&&e._UZ(0,"app-header",null,3)}function Wt(r,n){1&r&&e._UZ(0,"app-footer")}class q{document;languageService;configService;analyticsListenerService;titleService;metaService;messageService;pwaService;router;authConfig;hasHeader=!0;hasFooter=!0;promptEvent;constructor(n,t,o,a,i,p,h,g,f){this.document=n,this.languageService=t,this.configService=o,this.analyticsListenerService=a,this.titleService=i,this.metaService=p,this.messageService=h,this.pwaService=g,this.router=f,this.authConfig=this.configService.getConfig("auth",{}),this.readTitleConfig(),this.readDescriptionConfig(),this.analyticsListenerService.listen(),this.detectOldBrowser(),this.hasHeader=this.configService.getConfig("header.hasHeader",!1),this.hasFooter=this.configService.getConfig("hasFooter",!1),this.setManifest(),this.installPrompt(),this.pwaService.checkForUpdates()}ngOnInit(){this.handleSplashScreen()}handleSplashScreen(){this.router.events.pipe((0,A.P)(n=>n instanceof R.m2),(0,$e.g)(500)).subscribe(()=>{this._removeSplashScreen()})}_removeSplashScreen(){const n=this.document.getElementById("splash-screen");if(!n)return;n.classList.add("is-destroying");const o=this.document.getElementById("splash-screen-stylesheet");setTimeout(()=>{b.Ku.remove(n),b.Ku.remove(o)},300)}readTitleConfig(){this.languageService.translate.get(this.configService.getConfig("title","")).subscribe(n=>{n&&(this.titleService.setTitle(n),this.metaService.addTag({name:"title",content:n}))})}setManifest(){if(this.configService.getConfig("app.install.enabled")){const n=this.configService.getConfig("app.install.manifestPath","manifest.webmanifest");document.querySelector("#igoManifestByConfig").setAttribute("href",n)}}installPrompt(){const n=this.configService.getConfig("app");n?.install?.enabled&&n?.install?.promote&&"iOS"!==b.WE.getOSName()&&window.addEventListener("beforeinstallprompt",t=>{t.preventDefault(),this.promptEvent=t,window.addEventListener("click",()=>{setTimeout(()=>{this.promptEvent.prompt(),this.promptEvent=void 0},750)},{once:!0})},{once:!0})}readDescriptionConfig(){const n=this.configService.getConfig("description");n&&this.metaService.addTag({name:"description",content:n})}detectOldBrowser(){b.WE.satisfies({ie:"<=11",chrome:"<64",firefox:"<60",safari:"<=11"})&&this.messageService.alert("oldBrowser.message","oldBrowser.title",{timeOut:15e3})}static \u0275fac=function(t){return new(t||q)(e.Y36(u.K0),e.Y36(m.TS),e.Y36(m.M$),e.Y36(w.jZ),e.Y36(y.Dx),e.Y36(y.h_),e.Y36(m.ez),e.Y36(j),e.Y36(R.F0))};static \u0275cmp=e.Xpm({type:q,selectors:[["app-root"]],decls:5,vars:4,consts:[["igoSpinnerActivity",""],[4,"ngIf"],["igoStopDropPropagation","",3,"ngClass"],["header",""]],template:function(t,o){1&t&&(e._UZ(0,"igo-spinner",0),e.YNc(1,Dt,1,0,"igo-auth-form",1),e.YNc(2,Ht,2,0,"app-header",1),e._UZ(3,"app-portal",2),e.YNc(4,Wt,1,0,"app-footer",1)),2&t&&(e.xp6(1),e.Q6J("ngIf",o.authConfig&&o.authConfig.url),e.xp6(1),e.Q6J("ngIf",o.hasHeader),e.xp6(1),e.Q6J("ngClass",o.hasHeader?o.hasFooter?"portal-with-header-footer":"portal-with-header":o.hasFooter?"portal-with-footer":"portal"),e.xp6(1),e.Q6J("ngIf",o.hasFooter))},dependencies:[u.mk,u.O5,de.cD,c.Ft,c.OR,c.k8,U,G,V],styles:["[_nghost-%COMP%]{font-family:Roboto,Helvetica Neue,sans-serif}igo-spinner[_ngcontent-%COMP%]{position:absolute;top:5px;right:5px;z-index:100}igo-message-center[_ngcontent-%COMP%] simple-notifications div.simple-notification-wrapper{right:10px} .portal-with-header{height:calc(100% - 72px)!important} .portal-with-header-footer{height:calc(100% - 101px)!important} .portal-with-footer{height:calc(100% - 29px)!important}@media screen and (min-width: 824px){ .portal-with-header{height:calc(100% - 72px)!important} .portal-with-header-footer{height:calc(100% - 101px)!important}} .mat-mdc-form-field-icon-suffix mat-icon{width:auto!important;height:-webkit-fill-available!important}"]})}var Jt=d(13228),Te=d(78128),Yt=d(96355);class X{static \u0275fac=function(t){return new(t||X)};static \u0275mod=e.oAB({type:X});static \u0275inj=e.cJS({imports:[u.ez,v.ot,C.Ps,Te.Tx,Jt.ie,Yt.LD,S.AV,m.yR,c.BQ]})}class K{static \u0275fac=function(t){return new(t||K)};static \u0275mod=e.oAB({type:K});static \u0275inj=e.cJS({imports:[u.ez]})}class ee{static \u0275fac=function(t){return new(t||ee)};static \u0275mod=e.oAB({type:ee});static \u0275inj=e.cJS({imports:[u.ez,C.Ps,v.ot,Z.SJ,S.AV,m.yR,c.Am,c.O4,E.Zy,c.HL,l.Ud7,c.Gh,c.cQ]})}class te{static \u0275fac=function(t){return new(t||te)};static \u0275mod=e.oAB({type:te});static \u0275inj=e.cJS({imports:[u.ez,C.Ps,v.ot,m.yR,c.Am,c.Po]})}class ne{static \u0275fac=function(t){return new(t||ne)};static \u0275mod=e.oAB({type:ne});static \u0275inj=e.cJS({imports:[u.ez,Pe.g,C.Ps,v.ot,S.AV,Te.Tx,m.yR,c.Am,c.Po,c.AP,l.Ud7,l.tnH]})}class oe{static \u0275fac=function(t){return new(t||oe)};static \u0275mod=e.oAB({type:oe});static \u0275inj=e.cJS({imports:[m.yR,u.ez,I.u5,T.Is,c.Gh,c.k_,v.ot,S.AV,C.Ps,D.g0]})}class ae{static \u0275fac=function(t){return new(t||ae)};static \u0275mod=e.oAB({type:ae});static \u0275inj=e.cJS({imports:[u.ez,S.AV,v.ot,C.Ps,Z.SJ,T.Is,m.PV,l.Ud7,l.ybB,l.FIR,l.y1m.forRoot(),l.TxX.forRoot(),c.AP,c.h5,c.mD,l.Jpu,c.Am,c.HL,c.qL,c.BQ,c.O4,w.fZ,X,ne,te,ee,K,E.Zy,E.jm,c.gr,c.t3,c.Gh,oe]})}class ie{static \u0275fac=function(t){return new(t||ie)};static \u0275mod=e.oAB({type:ie});static \u0275inj=e.cJS({imports:[u.ez,m.yR]})}class se{static \u0275fac=function(t){return new(t||se)};static \u0275mod=e.oAB({type:se});static \u0275inj=e.cJS({imports:[u.ez,m.yR,D.g0]})}const Nt={showDelay:500,hideDelay:0,touchendHideDelay:0,disableTooltipInteractivity:!0};class re{static \u0275fac=function(t){return new(t||re)};static \u0275mod=e.oAB({type:re,bootstrap:[q]});static \u0275inj=e.cJS({providers:[(0,m.TQ)({default:he.igo,path:"./config/config.json"}),m.MZ,(0,l.ZsY)(),(0,l.cmn)(),(0,l.YVN)(),(0,l.PIH)(),(0,l.jxb)(),(0,l.c43)(),(0,l.eKy)(),(0,l.MG6)(),(0,l.HAL)(),(0,l.$hA)(),{provide:e.ip1,useFactory:Ut,deps:[e.zs3,e.z2F,u.K0],multi:!0},(0,l.rQG)({path:"./assets/list-style.json"}),{provide:S.Jm,useValue:Nt},{provide:F.o2,useValue:{appearance:"fill"}}],imports:[y.b2,ke.PW,R.Bz.forRoot([]),de._e.forRoot(),m.u4.forRoot(),m.zZ,c.d3,c.Po,ae,se,ie,Se.Wr.register("ngsw-worker.js",{enabled:he.igo.app.pwa.enabled,registrationStrategy:"registerWithDelay:5000"})]})}function Ut(r,n,t){return()=>new Promise(o=>{n.isStable.pipe((0,A.P)(a=>!0===a),(0,Ee.b)(()=>{const a=r.get(m.TS),i=a.getLanguage();return a.translate.getTranslation(i)})).subscribe(a=>{const i=r.get(m.TS),p=i.getLanguage();i.translate.setTranslation(p,a);const h=r.get(m.M$),g=h.getConfig("theme","blue-theme");(0,b.jz)(t,g);const f=h.getConfig("title");i.translate.get(f).subscribe(_=>{(function Gt(r,n){const t=r.getElementById("splash-screen-title");t&&(t.innerText=n)})(t,_),o()})})})}he.production&&(0,e.G48)(),y.q6().bootstrapModule(re).catch(r=>console.log(r))},46700:(P,pe,d)=>{var y={"./af":35528,"./af.js":35528,"./ar":1036,"./ar-dz":17579,"./ar-dz.js":17579,"./ar-kw":69588,"./ar-kw.js":69588,"./ar-ly":11650,"./ar-ly.js":11650,"./ar-ma":93258,"./ar-ma.js":93258,"./ar-sa":54085,"./ar-sa.js":54085,"./ar-tn":90287,"./ar-tn.js":90287,"./ar.js":1036,"./az":89757,"./az.js":89757,"./be":59620,"./be.js":59620,"./bg":31139,"./bg.js":31139,"./bm":4042,"./bm.js":4042,"./bn":19641,"./bn-bd":19126,"./bn-bd.js":19126,"./bn.js":19641,"./bo":494,"./bo.js":494,"./br":20934,"./br.js":20934,"./bs":26274,"./bs.js":26274,"./ca":45831,"./ca.js":45831,"./cs":92354,"./cs.js":92354,"./cv":79692,"./cv.js":79692,"./cy":58774,"./cy.js":58774,"./da":38955,"./da.js":38955,"./de":21557,"./de-at":24954,"./de-at.js":24954,"./de-ch":81881,"./de-ch.js":81881,"./de.js":21557,"./dv":16475,"./dv.js":16475,"./el":38877,"./el.js":38877,"./en-au":70454,"./en-au.js":70454,"./en-ca":67356,"./en-ca.js":67356,"./en-gb":10456,"./en-gb.js":10456,"./en-ie":28789,"./en-ie.js":28789,"./en-il":85471,"./en-il.js":85471,"./en-in":39664,"./en-in.js":39664,"./en-nz":97672,"./en-nz.js":97672,"./en-sg":80805,"./en-sg.js":80805,"./eo":87390,"./eo.js":87390,"./es":1564,"./es-do":51473,"./es-do.js":51473,"./es-mx":92089,"./es-mx.js":92089,"./es-us":84156,"./es-us.js":84156,"./es.js":1564,"./et":6513,"./et.js":6513,"./eu":7856,"./eu.js":7856,"./fa":2378,"./fa.js":2378,"./fi":22687,"./fi.js":22687,"./fil":80032,"./fil.js":80032,"./fo":46845,"./fo.js":46845,"./fr":8875,"./fr-ca":56425,"./fr-ca.js":56425,"./fr-ch":41746,"./fr-ch.js":41746,"./fr.js":8875,"./fy":67037,"./fy.js":67037,"./ga":11217,"./ga.js":11217,"./gd":37010,"./gd.js":37010,"./gl":51931,"./gl.js":51931,"./gom-deva":64488,"./gom-deva.js":64488,"./gom-latn":8032,"./gom-latn.js":8032,"./gu":34984,"./gu.js":34984,"./he":69090,"./he.js":69090,"./hi":42085,"./hi.js":42085,"./hr":38787,"./hr.js":38787,"./hu":2901,"./hu.js":2901,"./hy-am":59819,"./hy-am.js":59819,"./id":44074,"./id.js":44074,"./is":70715,"./is.js":70715,"./it":31746,"./it-ch":77040,"./it-ch.js":77040,"./it.js":31746,"./ja":3180,"./ja.js":3180,"./jv":34346,"./jv.js":34346,"./ka":65538,"./ka.js":65538,"./kk":79772,"./kk.js":79772,"./km":87905,"./km.js":87905,"./kn":79125,"./kn.js":79125,"./ko":69140,"./ko.js":69140,"./ku":2354,"./ku.js":2354,"./ky":63768,"./ky.js":63768,"./lb":14016,"./lb.js":14016,"./lo":83169,"./lo.js":83169,"./lt":62353,"./lt.js":62353,"./lv":83243,"./lv.js":83243,"./me":52338,"./me.js":52338,"./mi":35555,"./mi.js":35555,"./mk":85794,"./mk.js":85794,"./ml":53151,"./ml.js":53151,"./mn":46458,"./mn.js":46458,"./mr":69165,"./mr.js":69165,"./ms":8680,"./ms-my":87477,"./ms-my.js":87477,"./ms.js":8680,"./mt":79684,"./mt.js":79684,"./my":40285,"./my.js":40285,"./nb":45922,"./nb.js":45922,"./ne":29040,"./ne.js":29040,"./nl":5066,"./nl-be":74460,"./nl-be.js":74460,"./nl.js":5066,"./nn":53693,"./nn.js":53693,"./oc-lnc":88676,"./oc-lnc.js":88676,"./pa-in":92341,"./pa-in.js":92341,"./pl":57416,"./pl.js":57416,"./pt":84344,"./pt-br":30113,"./pt-br.js":30113,"./pt.js":84344,"./ro":72643,"./ro.js":72643,"./ru":61305,"./ru.js":61305,"./sd":96095,"./sd.js":96095,"./se":74486,"./se.js":74486,"./si":58742,"./si.js":58742,"./sk":96722,"./sk.js":96722,"./sl":3345,"./sl.js":3345,"./sq":52416,"./sq.js":52416,"./sr":39450,"./sr-cyrl":50501,"./sr-cyrl.js":50501,"./sr.js":39450,"./ss":32222,"./ss.js":32222,"./sv":9454,"./sv.js":9454,"./sw":19638,"./sw.js":19638,"./ta":96494,"./ta.js":96494,"./te":94435,"./te.js":94435,"./tet":25003,"./tet.js":25003,"./tg":13706,"./tg.js":13706,"./th":16025,"./th.js":16025,"./tk":59780,"./tk.js":59780,"./tl-ph":22068,"./tl-ph.js":22068,"./tlh":39167,"./tlh.js":39167,"./tr":32494,"./tr.js":32494,"./tzl":58707,"./tzl.js":58707,"./tzm":91296,"./tzm-latn":34532,"./tzm-latn.js":34532,"./tzm.js":91296,"./ug-cn":12086,"./ug-cn.js":12086,"./uk":85069,"./uk.js":85069,"./ur":29304,"./ur.js":29304,"./uz":95115,"./uz-latn":97609,"./uz-latn.js":97609,"./uz.js":95115,"./vi":34802,"./vi.js":34802,"./x-pseudo":65605,"./x-pseudo.js":65605,"./yo":88456,"./yo.js":88456,"./zh-cn":23272,"./zh-cn.js":23272,"./zh-hk":9402,"./zh-hk.js":9402,"./zh-mo":48101,"./zh-mo.js":48101,"./zh-tw":40262,"./zh-tw.js":40262};function e(u){var F=ce(u);return d(F)}function ce(u){if(!d.o(y,u)){var F=new Error("Cannot find module '"+u+"'");throw F.code="MODULE_NOT_FOUND",F}return y[u]}e.keys=function(){return Object.keys(y)},e.resolve=ce,P.exports=e,e.id=46700}},P=>{P.O(0,[736],()=>{return y=57682,P(P.s=y);var y});P.O()}]); -//# sourceMappingURL=main.1f32d6a1b25b1aa9.js.map \ No newline at end of file diff --git a/main.1f32d6a1b25b1aa9.js.map b/main.1f32d6a1b25b1aa9.js.map deleted file mode 100644 index 989eab49a..000000000 --- a/main.1f32d6a1b25b1aa9.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"main.1f32d6a1b25b1aa9.js","mappings":"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CCqzB,KAAO0Q,IAA0B,IAAbA,IAAiB,EACrCC,MAAU,KACR,MAAM1kC,EAAkBukC,EAAS1/B,IAAI8/B,MAC/BrS,EAAOtyB,EAAgB4kC,cAC7B,OAAO5kC,EAAgBsB,UAAUujC,eAAevS,EAAI,IAGvD1xB,UAAWkkC,IACV,MAAM9kC,EAAkBukC,EAAS1/B,IAAI8/B,MAC/BrS,EAAOtyB,EAAgB4kC,cAC7B5kC,EAAgBsB,UAAUyjC,eAAezS,EAAMwS,GAE/C,MAAM5hC,EAAgBqhC,EAAS1/B,IAAImgC,MAC7BC,EAAQ/hC,EAAcC,UAAU,QAtFlB,eAuFpB+hC,QAAUpjC,EAAUmjC,GAEpB,MAAME,EAAWjiC,EAAcC,UAAU,SACzCnD,EAAgBsB,UAAUuD,IAAIsgC,GAAUvkC,UAAW3D,KAQ7D,SAASmoC,GAAwBtjC,EAAoB7E,GACnD,MAAMooC,EAAoBvjC,EAASs7B,eAAe,uBAC9CiI,IACFA,EAAkBC,UAAYroC,EAElC,EAZYmoC,CAAwBtjC,EAAU7E,GAClC0uB,GAAO,EACR,EACF,EAET,CC1IIvvB,GAAYC,eACdkpC,SAGFC,OACGC,gBAAgB1D,IAChB2D,MAAOxkC,GAAQF,QAAQC,IAAIC,sBCd9B,IAAAsG,EAAA,CACA,aACA,gBACA,YACA,gBACA,mBACA,gBACA,mBACA,gBACA,mBACA,gBACA,mBACA,gBACA,mBACA,gBACA,mBACA,eACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,YACA,eACA,aACA,gBACA,mBACA,gBACA,WACA,cACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,mBACA,gBACA,mBACA,gBACA,aACA,gBACA,aACA,gBACA,gBACA,mBACA,gBACA,mBACA,gBACA,mBACA,gBACA,mBACA,gBACA,mBACA,gBACA,mBACA,gBACA,mBACA,gBACA,mBACA,aACA,gBACA,YACA,gBACA,mBACA,gBACA,mBACA,gBACA,mBACA,eACA,YACA,eACA,YACA,eACA,YACA,eACA,aACA,gBACA,cACA,iBACA,aACA,gBACA,YACA,gBACA,mBACA,gBACA,mBACA,eACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,mBACA,sBACA,kBACA,qBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,YACA,eACA,gBACA,mBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,mBACA,gBACA,YACA,eACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,YACA,eACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,YACA,gBACA,mBACA,eACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,YACA,gBACA,mBACA,eACA,aACA,gBACA,iBACA,oBACA,gBACA,mBACA,aACA,gBACA,aACA,gBACA,mBACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,YACA,eACA,aACA,gBACA,aACA,kBACA,qBACA,gBACA,aACA,gBACA,YACA,eACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,cACA,iBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,gBACA,mBACA,cACA,iBACA,aACA,gBACA,cACA,iBACA,cACA,mBACA,sBACA,iBACA,gBACA,mBACA,aACA,gBACA,aACA,gBACA,aACA,kBACA,qBACA,gBACA,aACA,gBACA,mBACA,sBACA,aACA,gBACA,gBACA,mBACA,eACA,kBACA,gBACA,mBACA,gBACA,oBAIA,SAAAm+B,EAAAC,GACA,IAAA5oC,EAAA6oC,GAAAD,GACA,OAAAE,EAAA9oC,EACA,CACA,SAAA6oC,GAAAD,GACA,IAAAE,EAAAC,EAAAv+B,EAAAo+B,GAAA,CACA,IAAA1uB,EAAA,IAAA8uB,MAAA,uBAAAJ,EAAA,KACA,MAAA1uB,EAAArY,KAAA,mBACAqY,CACA,CACA,OAAA1P,EAAAo+B,EACA,CACAD,EAAArtB,KAAA,WACA,OAAA9C,OAAA8C,KAAA9Q,EACA,EACAm+B,EAAAha,QAAAka,GACAI,EAAAC,QAAAP,EACAA,EAAA3oC,GAAA","names":["environment","production","igo","app","forceCoordsNA","install","enabled","promote","manifestPath","pwa","catalog","sources","id","title","url","showLegend","depot","importExport","configFileToGeoDBService","clientSideFileSizeMaxMb","allowToStoreLayer","language","prefix","interactiveTour","tourInMobile","pathToConfigFile","searchSources","nominatim","available","storedqueries","icherche","searchUrl","order","params","limit","coordinatesreverse","showInPointerSummary","icherchereverse","ilayer","cadastre","projections","code","alias","def","extent","searchOverlayStyle","base","markerColor","markerOpacity","markerOutlineColor","fillColor","fillOpacity","strokeColor","strokeOpacity","strokeWidth","focus","selection","queryOverlayStyle","PwaService","updates","languageService","confirmDialogService","confirmOpened","constructor","this","isEnabled","handleVersionUpdates","checkForUpdates","_this","interval","pipe","skip","subscribe","_asyncToGenerator","updateFound","checkForUpdate","console","log","err","error","modalUpdatePWA","message","translate","instant","open","tap","confirm","window","navigator","onLine","document","location","reload","alert","setTimeout","versionUpdates","evt","type","version","hash","currentVersion","latestVersion","i0","i1","i2","i3","factory","ɵfac","providedIn","getAppVersion","configService","getConfig","lib","expansionPanelAnimation","trigger","state","style","left","bottom","display","transition","animate","toastPanelAnimation","zIndex","controlsAnimations","controlSlideX","controlSlideY","mapSlideX","mapSlideY","WelcomeWindowService","storageService","nbVisit","showAgain","igoVersionDifferentFromStorage","isVersionDifferentFromStorage","setStorageConfig","Number","get","set","hasWelcomeWindow","remove","dialogConfig","MatDialogConfig","disableClose","autoFocus","maxWidth","afterClosedWelcomeWindow","$event","_r2","ctx_r1","ctx_r3","setShowAgain","ctx_r4","closeWelcomeWindow","ctx_r0","html$","discoverTitleInLocale$","WelcomeWindowComponent","dialog","welcomeWindowService","title$$","BehaviorSubject","undefined","of","ngOnInit","computeHtml","closeAll","deltaDay","isDateParsable","releaseDate","Date","releaseDateAppConfig","releaseDateApp","isNaN","getDate","releaseDateString","day","month","getMonth","getFullYear","map","description","r","next","ngOnDestroy","unsubscribe","selectors","decls","vars","consts","template","rf","ctx","WelcomeWindowComponent_div_0_Template","showContent","duration","delay","easing","opacity","ExpansionPanelHeaderComponent","expanded","_expanded","value","expandedChange","emit","EventEmitter","hasExpandedClass","onToggleClick","hostVars","hostBindings","ExpansionPanelHeaderComponent_mat_icon_3_Template","ExpansionPanelHeaderComponent_mat_icon_4_Template","ExpansionPanelComponent","maximized","backdropShown","_backdropShown","hasExpandedFullClass","onBackdropClick","changeDetection","_r13","ctx_r12","zoomTo","isSelectedResultOutOfView$","_r15","ctx_r14","handleLayer","ctx_r5","potententialLayerisAdded$","_r17","ctx_r16","previousResult","ctx_r6","results","meta","resultSelected$","_r19","ctx_r18","nextResult","ctx_r7","length","_r21","ctx_r20","resizeWindows","ctx_r8","fullExtent$","iconResizeWindows","_r23","ctx_r22","setHtmlDisplay","ctx_r10","data","_r25","ctx_r24","focusResult","ctx_r26","unfocusResult","ctx_r27","selectResult","ctx_r11","store","withZoomButton","tabsMode","_r29","ctx_r28","ctx_r30","handleKeyboardEvent","ToastPanelComponent_ng_template_0_igo_panel_0_button_3_Template","ToastPanelComponent_ng_template_0_igo_panel_0_button_4_Template","ToastPanelComponent_ng_template_0_igo_panel_0_button_5_Template","ToastPanelComponent_ng_template_0_igo_panel_0_button_6_Template","ToastPanelComponent_ng_template_0_igo_panel_0_button_7_Template","ctx_r31","clear","ToastPanelComponent_ng_template_0_igo_panel_0_igo_feature_details_12_Template","ToastPanelComponent_ng_template_0_igo_panel_0_igo_search_results_13_Template","getClassPanel","setHeighPanelTabsMode","getTitle","actionStore","icon","actionbarMode","hasGeoService","opened","isDesktop","ToastPanelComponent_ng_template_0_igo_panel_0_Template","entities$","_r34","ctx_r33","swipe","ctx_r35","ctx_r36","ctx_r37","ToastPanelComponent_div_2_ng_template_1_Template","_r0","ToastPanelComponent","mediaService","storageState","queryState","workspaceState","propertyTypeDetectorService","layerService","static","RIGHT","LEFT","UP","DOWN","_map","_store","_entities","unselectResult","_opened","StorageScope","SESSION","openedChange","hasFeatureEmphasisOnSelection","zoomAuto","_zoomAuto","zoomAuto$","fullExtent","_fullExtent","fullExtentEvent","potententialLayerToAdd$","isHtmlDisplay","ActionStore","ActionbarMode","Overlay","multiple$","isResultSelected$","isSelectedResultOutOfView$$","storageChange$$","initialized","format","olFormatGeoJSON","resultOrResolution$$","focusedResult$","abstractFocusedOrSelectedResult","windowHtmlDisplayEvent","displayStyle","onEscapeHandler","event","onBackHandler","onZoomHandler","getValue","localOlFeature","readFeature","dataProjection","projection","featureProjection","moveToOlFeatures","viewController","FeatureMotion","Default","all","multiple","setResizeWindowIcon","monitorResultOutOfView","combineLatest","state$","debounceTime","bunch","selectedResult","selectedOlFeature","featureToOl","selectedOlFeatureExtent","computeOlFeaturesExtent","viewProjection","featuresAreOutOfView","getExtent","latestResult","res","resolution$","buildResultEmphasis","storageChange$","skipWhile","storageChange","key","change","currentValue","load","tooltip","handler","Zoom","availability","olFeatures","result","push","checkbox","checkCondition","v","computeFeatureGeoServiceStatus","layers$","clearFeatureEmphasis","olGeometry","getGeometry","featuresAreTooDeepInView","x","y","feature1","olFeature","name","geometry","olPoint","featureFromOl","getCommonVectorSelectedStyle","Object","assign","feature","queryOverlayStyleSelection","queryOverlayStyleFocus","setZIndex","queryResultsOverlay","addFeature","None","removeFeature","getEntityTitle","force","focused","getCommonVectorStyle","update","selected","properties","target","features","removeFeatures","addFeatures","setFeatures","handleWksSelection","entities","layersTitle","Set","e","source","workspaces","filter","wks","includes","ws","entityStore","updateMany","view","isMobile","getMedia","Media","Mobile","keyCode","i","indexOf","getGeoServices","resultSelected","hasGeoServiceProperties","keys","entries","forEach","entry","geoService","getGeoService","extendedGeoService","propertyForUrl","layersIds","layers","layer","potententialLayerToAdd","layerToRemove","getLayerById","removeLayer","createAsyncLayer","sourceOptions","layersAddedByClick$","addLayer","geoServices","firstGeoService","so","computeSourceOptionsFromProperties","soId","generateIdFromSourceOptions","l","layerName","p","propertiesForLayerName","arcgisLayerName","appliedLayerName","ObjectUtils","removeUndefined","optionsFromCapabilities","optionsFromApi","LAYERS","LAYER","action","SWIPE_ACTION","className","onTriggerAction","args","isHtmlAndDesktop","reduceWindow","enlargeWindows","ToastPanelComponent_ng_template_0_Template","ToastPanelComponent_div_2_Template","ToastPanelForExpansionComponent","withHeader","hasOpenedClass","_r4","onUnselectButtonClick","_r6","onPreviousButtonClick","SidenavComponent","toolState","catalogState","title$","activeTool$$","toolChange","toolbox","activeTool$","tool","sidenavTitle","catalogStore","options","active","activatePreviousTool","deactivateTool","inputs","outputs","SidenavComponent_igo_home_button_5_Template","SidenavComponent_button_10_Template","_c0","element_r1","imgSrc","alt","imgSize","MapOverlayComponent_ng_container_0_a_2_ng_container_2_Template","link","text","MapOverlayComponent_ng_container_0_ng_template_3_ng_container_1_Template","MapOverlayComponent_ng_container_0_a_2_Template","MapOverlayComponent_ng_container_0_ng_template_3_Template","fixed","marginLeft","marginRight","marginTop","marginBottom","fontSize","cssClass","MapOverlayComponent","contextService","mapOverlay","context$$","media$$","context","ngAfterViewInit","context$","handleContextChange","media$","media","overlay","MapOverlayComponent_ng_container_0_Template","_r14","ctx_r13","onToggleSidenavClick","sidenavOpened","onSearchTermChange","onPointerSummaryStatusChange","ctx_r19","onSearchResultsGeometryStatusChange","onReverseCoordsFormatStatusChange","ctx_r21","onSearch","onClearSearch","ctx_r23","onSearchSettingsChange","searchBarTerm","termSplitter","minSearchTermLength","appConfig","searchStore","igoSearchPointerSummaryEnabled","searchResultsGeometryEnabled","igoReverseSearchCoordsFormatEnabled","getControlsOffsetY","getToastPanelStatus","homeExtent","homeCenter","homeZoom","_r33","workspace_r26","ngIf","edition","addButton","actionbarWithTitle","workspaceMenuClass","_r37","zoomToSelectedFeatureWks","ctx_r29","workspaceSelection$","_r39","ctx_r38","paginatorChange","workspaceEntitySortChange$","paginatorOptions","_r42","visible","PortalComponent_app_expansion_panel_21_ng_container_4_button_8_Template","PortalComponent_app_expansion_panel_21_ng_container_4_igo_actionbar_9_Template","PortalComponent_app_expansion_panel_21_ng_container_4_button_10_Template","PortalComponent_app_expansion_panel_21_ng_container_4_igo_entity_table_paginator_11_Template","_c2","inResolutionRange$","isEditionWorkspace","workspaceVisibility","_r46","ctx_r45","entitySortChange","ctx_r47","entitySelectChange","ctx_r44","workspace_r43","workspacePaginator","tableTemplate","PortalComponent_app_expansion_panel_21_ng_container_6_igo_entity_table_1_Template","ctx_r25","workspaceNotAvailableMessage","_r50","ctx_r49","expansionPanelExpanded","ctx_r51","setActiveWorkspaceByTitle","ctx_r52","workspaceSwitchDisabled","ctx_r53","refreshRelationsWorkspace","ctx_r54","rowsInMapExtentCheckCondition$","PortalComponent_app_expansion_panel_21_ng_container_4_Template","PortalComponent_app_expansion_panel_21_ng_container_6_Template","expansionPanelBackdropShown","workspaceMaximize$","getExpansionPanelStatus","toastPanelOpened","workspaceStore","selectedWorkspace$","_r57","ctx_r56","onDeactivateWorkspaceWidget","workspace_r55","_r59","ctx_r58","toastOpenedChange","ctx_r60","ctx_r61","setToastPanelHtmlDisplay","queryStore","toastPanelOffsetX$","getToastPanelOffsetY","isTablet","isPortrait","contextMenuStore","PortalComponent","route","authService","dataSourceService","cdRef","capabilitiesService","contextState","mapState","searchState","searchSourceService","importService","http","messageService","dialogWindow","queryService","editionWorkspaceService","directionState","sidenavOpened$","hasGeolocateButton","showMenuButton","showSearchBar","pageSize","pageSizeOptions","workspaceMaximize$$","matDialogRef$","onSettingsChange$","termDefinedInUrl","termDefinedInUrlTriggered","addedLayers$$","contextMenuCoord","contextLoaded","openSidenav$$","sidenavMediaAndOrientation$$","toastPanelForExpansionOpened","activeWidget$$","showToastPanelForExpansionToggle","routeParams","toastPanelHtmlDisplay","mapBrowser","searchBar","_toastPanelOpened","detectChanges","Tablet","isLandscape","getOrientation","MediaOrientation","Landscape","Portrait","workspacePanelExpanded","setPadding","contextUri","uri","searchResultsGeometryEnabled$","toastPanelContent","content","workspace","hasWidget","workspace$","handleAppConfigs","IGO","searchTermSplitter$","initWelcomeWindow","queryParams","readLanguageParam","authenticate$","authenticated","onChangeContext","contextActions","searchCoordinate","openGoogleMaps","openGoogleStreetView","count$","pairwise","prevCnt","currentCnt","padding","hasExpansionPanel","ol","once","readQueryParams","geolocate","activateDefault","geolocationController","tracking","setSearchSettingsChange","selectedResult$","closeSidenav","workspaceEnabled$","empty$","workspaceEmpty","updateMapBrowserClass","workspaceMaximize","activeWks","activeWorkspaceWidget$","widget","openToastPanelForExpansion","closeToastPanelForExpansion","openSidenav$","openSidenav","orientation$","sidenavMediaAndOrientation","computeToastPanelOffsetX","getConfigs","hasSearchPointerSummary","Promise","resolve","then","getToastPanelExtent","EditionWorkspace","createFeatureProperties","editFeature","sourceFields","field","primary","matPaginator","getQuerySearchSource","querySearchSourceArray","WfsWorkspace","FeatureWorkspace","getLayerWksOptionTabQuery","added","getProperties","_featureStore","featureStoreLayer","getAllowedFieldsAndAlias","getQueryTitle","querySearchSource","find","s","sourceTitle","QuerySearchSource","featureToSearchResult","request","queryResults","f","cancelOngoingAddLayer","sub","toggleSidenav","onMapQuery","filteredResults","getFeatureIsSameActiveWks","getWksActiveOpenInResolution","getLayerWksOptionMapQuery","term","search","deactivateCustomFilterTermStrategy","setSearchTerm","replace","trim","onBeforeSearch","isReverseSearch","sourceCanSearch","research","enabledSources","getEnabledSources","sourceCanReverseSearch","newResults","concat","setSearchResultsGeometryStatus","toolChanged","nativeElement","getElementsByTagName","computeHomeExtentValues","center","zoom","empty","softClear","qParams","readLayersQueryParams","contextManager","getTool","toolToOpen","toolToOpenOnContextChange","toolOrderToOpen","toolName","activateTool","handleExpansionAndToastOnMobile","searchResultsOverlay","setSelectedResult","getSources","searchSource","onContextMenuOpen","getClickCoordinate","contextmenuPoint","boundingMapBrowser","getBoundingClientRect","top","scrollY","pageYOffset","scrollX","pageXOffset","pixel","coord","getCoordinateFromPixel","proj","olProj","GoogleLinks","getGoogleMapsCoordLink","getGoogleStreetViewLink","reverse","c","toFixed","join","header","classList","add","status","getBaselayersSwitcherStatus","readToolParams","readSearchParams","readFocusFirst","computeZoomToExtent","lang","languageForce","setLanguage","zoomExtent","extentParams","split","olExtent","zoomToExtent","computeFocusFirst","resultItem","item","click","sf","entities$$","stateView","all$","take","exactMatch","activateCustomFilterTermStrategy","searchResultsOlFeatures","entity","dataType","FEATURE","totalExtent","searchGeom","first","matDialogOpened","sidenav","routing","routingCoordLoaded","stopCoords","routingOptions","resultSelection","parseInt","stopsStore","storeInitialized$","init","addStopToStore","stop","position","coordinates","routesFeatureStore","zoomToActiveRoute$","d","readLayersQueryParamsByType","readVectorQueryParams","getQueryParam","paramValue","HttpParams","fromString","nameParamLayersKey","urlsKey","wmsLayers","wmsUrl","wmtsLayers","wmtsUrl","arcgisLayers","arcgisUrl","iarcgisLayers","iarcgisUrl","tarcgisLayers","tarcgisUrl","layersByService","urls","cnt","urlSrc","endsWith","substring","extractLayersByService","layerFromUrl","layerOptions","visibility","computeLayerVisibilityFromUrl","addLayerFromURL","vector","lastIndex","lastIndexOf","fileName","slice","responseType","file","File","lastModified","now","import","onFileImportSuccess","onFileImportError","handleFileImportSuccess","handleFileImportError","outLayersByService","startsWith","substr","commonSourceOptions","crossOrigin","arcgisClause","queryable","queryFormat","VERSION","currentLayerid","visibleOnLayersParams","visibleOffLayersParams","visiblelayers","invisiblelayers","toString","hasAuthService","logged$","logged","createWelcomeWindow","welcomWindowConfig","afterClosed","featureTitle","relationLayers","workspaceId","columns","col","getDomainValues","relation","domainValues","featuresSelected","workspaceSelection","rec","olFeaturesSelected","feat","i4","i5","i6","i7","i8","viewQuery","ElementRef","PortalComponent_igo_menu_button_4_Template","PortalComponent_igo_search_bar_5_Template","PortalComponent_igo_wake_lock_button_12_Template","PortalComponent_igo_offline_button_13_Template","PortalComponent_igo_geolocate_button_14_Template","PortalComponent_igo_home_extent_button_16_Template","PortalComponent_igo_user_button_17_Template","PortalComponent_app_expansion_panel_21_Template","PortalComponent_igo_workspace_widget_outlet_27_Template","PortalComponent_app_toast_panel_29_Template","PortalComponent_ng_template_31_Template","_r11","_c3","getBaseLayers","wakeLockApiButton","offlineButton","showRotationButtonIfNoRotation","homeExtentButton","HeaderComponent","headerLogo","headerLogoPrint","computeHeader","FooterComponent","AppComponent","analyticsListenerService","titleService","metaService","pwaService","router","authConfig","hasHeader","hasFooter","promptEvent","readTitleConfig","readDescriptionConfig","listen","detectOldBrowser","setManifest","installPrompt","handleSplashScreen","events","NavigationEnd","_removeSplashScreen","intro","getElementById","stylesheet","DomUtils","setTitle","addTag","querySelector","setAttribute","userAgent","getOSName","addEventListener","preventDefault","prompt","satisfies","ie","chrome","firefox","safari","timeOut","DOCUMENT","AppComponent_igo_auth_form_1_Template","AppComponent_app_header_2_Template","AppComponent_app_footer_4_Template","AppExpansionPanelModule","CommonModule","MatButtonModule","MatIconModule","MatMenuModule","MatListModule","MatSelectModule","MatTooltipModule","IgoLanguageModule","IgoBackdropModule","MapOverlayModule","AppSidenavModule","MatSidenavModule","IgoPanelModule","IgoFlexibleModule","IgoContextManagerModule","IgoToolModule","IgoFeatureModule","IgoInteractiveTourModule","IgoHomeButtonModule","AppToastPanelForExpansionModule","IgoStopPropagationModule","AppToastPanelModule","MatBadgeModule","IgoActionModule","IgoSearchResultsModule","IgoWelcomeWindowModule","FormsModule","MatDialogModule","IgoCustomHtmlModule","MatToolbarModule","PortalModule","IgoCoreModule","IgoImportExportModule","IgoMapModule","IgoQueryModule","forRoot","IgoSearchModule","IgoWorkspaceModule","IgoEntityModule","IgoGeoWorkspaceModule","IgoContextMenuModule","IgoIntegrationModule","IgoContextMapButtonModule","IgoEntityTableModule","IgoEntityTablePaginatorModule","FooterModule","HeaderModule","defaultTooltipOptions","showDelay","hideDelay","touchendHideDelay","disableTooltipInteractivity","AppModule","bootstrap","provideConfigOptions","default","path","RouteService","provideNominatimSearchSource","provideIChercheSearchSource","provideWorkspaceSearchSource","provideIChercheReverseSearchSource","provideCoordinatesReverseSearchSource","provideILayerSearchSource","provideStoredQueriesSearchSource","provideOsrmDirectionsSource","provideOptionsApi","provideCadastreSearchSource","provide","APP_INITIALIZER","useFactory","appInitializerFactory","deps","Injector","ApplicationRef","multi","provideStyleListOptions","MAT_TOOLTIP_DEFAULT_OPTIONS","useValue","MAT_FORM_FIELD_DEFAULT_OPTIONS","appearance","imports","BrowserModule","BrowserAnimationsModule","RouterModule","IgoAuthModule","IgoGestureModule","IgoMessageModule","IgoSpinnerModule","ServiceWorkerModule","register","registrationStrategy","injector","applicationRef","isStable","concatMap","LanguageService","getLanguage","getTranslation","translations","setTranslation","ConfigService","theme","loadTheme","titleKey","handleSplashScreenTitle","splashScreenTitle","innerText","enableProdMode","__NgCli_bootstrap_1","bootstrapModule","catch","webpackContext","req","webpackContextResolve","__webpack_require__","o","Error","module","exports"],"sourceRoot":"webpack:///","sources":["./src/environments/environment.github.ts","./src/app/services/pwa.service.ts","./src/app/app.utils.ts","./src/app/pages/portal/portal.animation.ts","./src/app/pages/portal/welcome-window/welcome-window.service.ts","./src/app/pages/portal/welcome-window/welcome-window.component.html","./src/app/pages/portal/welcome-window/welcome-window.component.ts","./src/app/pages/portal/expansion-panel/expansion-panel.animations.ts","./src/app/pages/portal/expansion-panel/expansion-panel-header.component.html","./src/app/pages/portal/expansion-panel/expansion-panel-header.component.ts","./src/app/pages/portal/expansion-panel/expansion-panel.component.ts","./src/app/pages/portal/expansion-panel/expansion-panel.component.html","./src/app/pages/portal/toast-panel/toast-panel.component.html","./src/app/pages/portal/toast-panel/toast-panel.component.ts","./src/app/pages/portal/toast-panel-for-expansion/toast-panel-for-expansion.animations.ts","./src/app/pages/portal/toast-panel-for-expansion/toast-panel-for-expansion.component.ts","./src/app/pages/portal/toast-panel-for-expansion/toast-panel-for-expansion.component.html","./src/app/pages/portal/sidenav/sidenav.component.html","./src/app/pages/portal/sidenav/sidenav.component.ts","./src/app/pages/portal/map-overlay/map-overlay.component.html","./src/app/pages/portal/map-overlay/map-overlay.component.ts","./src/app/pages/portal/portal.component.html","./src/app/pages/portal/portal.component.ts","./src/app/pages/header/header.component.ts","./src/app/pages/header/header.component.html","./src/app/pages/footer/footer.component.ts","./src/app/pages/footer/footer.component.html","./src/app/app.component.html","./src/app/app.component.ts","./src/app/pages/portal/expansion-panel/expansion-panel.module.ts","./src/app/pages/portal/map-overlay/map-overlay.module.ts","./src/app/pages/portal/sidenav/sidenav.module.ts","./src/app/pages/portal/toast-panel-for-expansion/toast-panel-for-expansion.module.ts","./src/app/pages/portal/toast-panel/toast-panel.module.ts","./src/app/pages/portal/welcome-window/welcome-window.module.ts","./src/app/pages/portal/portal.module.ts","./src/app/pages/footer/footer.module.ts","./src/app/pages/header/header.module.ts","./src/app/app.module.ts","./src/main.ts","./node_modules/moment/locale/ sync ^\\.\\/.*$"],"sourcesContent":["import { AppEnvironmentOptions } from './environnement.interface';\r\n\r\nexport const environment: AppEnvironmentOptions = {\r\n production: true,\r\n igo: {\r\n app: {\r\n forceCoordsNA: false,\r\n install: {\r\n enabled: true,\r\n promote: true,\r\n manifestPath: './config/github.webmanifest'\r\n },\r\n pwa: {\r\n enabled: false\r\n }\r\n },\r\n catalog: {\r\n sources: [\r\n {\r\n id: 'Gououvert',\r\n title: 'Gouvouvert',\r\n url: 'https://geoegl.msp.gouv.qc.ca/apis/ws/igo_gouvouvert.fcgi'\r\n },\r\n {\r\n id: 'glace',\r\n title: 'Carte de glace',\r\n url: 'https://geoegl.msp.gouv.qc.ca/apis/ws/radarsat.fcgi',\r\n showLegend: true\r\n }\r\n ]\r\n },\r\n depot: {\r\n url: '/apis/depot'\r\n },\r\n importExport: {\r\n url: 'https://geoegl.msp.gouv.qc.ca/apis/ogre',\r\n configFileToGeoDBService: './data/geoDataToIDB.json',\r\n clientSideFileSizeMaxMb: 30,\r\n allowToStoreLayer: true\r\n },\r\n language: {\r\n prefix: './locale/'\r\n },\r\n interactiveTour: {\r\n tourInMobile: true,\r\n pathToConfigFile: './config/interactiveTour.json'\r\n },\r\n searchSources: {\r\n nominatim: {\r\n available: false\r\n },\r\n storedqueries: {\r\n available: false\r\n },\r\n icherche: {\r\n searchUrl: 'https://geoegl.msp.gouv.qc.ca/apis/icherche',\r\n order: 2,\r\n params: {\r\n limit: '8'\r\n }\r\n },\r\n coordinatesreverse: {\r\n showInPointerSummary: true\r\n },\r\n icherchereverse: {\r\n showInPointerSummary: true,\r\n searchUrl: 'https://geoegl.msp.gouv.qc.ca/apis/terrapi',\r\n order: 3,\r\n enabled: true\r\n },\r\n ilayer: {\r\n searchUrl: 'https://geoegl.msp.gouv.qc.ca/apis/icherche/layers',\r\n order: 4,\r\n params: {\r\n limit: '5'\r\n }\r\n },\r\n cadastre: {\r\n enabled: false\r\n }\r\n },\r\n projections: [\r\n {\r\n code: 'EPSG:32198',\r\n alias: 'Quebec Lambert',\r\n def: '+proj=lcc +lat_1=60 +lat_2=46 +lat_0=44 +lon_0=-68.5 +x_0=0 +y_0=0 \\\r\n +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs',\r\n extent: [-799574, 45802, 891595.4, 1849567.5]\r\n },\r\n {\r\n code: 'EPSG:3798',\r\n alias: 'MTQ Lambert',\r\n def: '+proj=lcc +lat_1=50 +lat_2=46 +lat_0=44 +lon_0=-70 +x_0=800000 +y_0=0 \\\r\n +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs',\r\n extent: [31796.5834, 158846.2231, 1813323.4284, 2141241.0978]\r\n }\r\n ],\r\n searchOverlayStyle: {\r\n base: {\r\n markerColor: '#5ed0fb', // marker fill\r\n markerOpacity: 0.8, // marker opacity not applied if a rgba markerColor is provided\r\n markerOutlineColor: '#a7e7ff', // marker contour\r\n fillColor: '#5ed0fb', // poly\r\n fillOpacity: 0.2, // poly fill opacity not applied if a rgba fillColor is provided\r\n strokeColor: '#5ed0fb', // line and poly\r\n strokeOpacity: 0.7, // line and poly not applied if a rgba strokeColor is provided\r\n strokeWidth: 2 // line and poly\r\n },\r\n focus: {\r\n markerColor: '#5ed0fb', // marker fill\r\n markerOpacity: 1, // marker opacity not applied if a rgba markerColor is provided\r\n markerOutlineColor: '#DFF7FF', // marker contour\r\n fillColor: '#5ed0fb', // poly\r\n fillOpacity: 0.3, // poly fill opacity not applied if a rgba fillColor is provided\r\n strokeColor: '#DFF7FF', // line and poly\r\n strokeOpacity: 1, // line and poly not applied if a rgba strokeColor is provided\r\n strokeWidth: 2 // line and poly\r\n },\r\n selection: {\r\n markerColor: '#00a1de', // marker fill\r\n markerOpacity: 1, // marker opacity not applied if a rgba markerColor is provided\r\n markerOutlineColor: '#ffffff', // marker contour\r\n fillColor: '#00a1de', // poly\r\n fillOpacity: 0.3, // poly fill opacity not applied if a rgba fillColor is provided\r\n strokeColor: '#00A1DE', // line and poly\r\n strokeOpacity: 1, // line and poly not applied if a rgba strokeColor is provided\r\n strokeWidth: 2 // line and poly\r\n }\r\n },\r\n queryOverlayStyle: {\r\n base: {\r\n markerColor: '#5ed0fb', // marker fill\r\n markerOpacity: 0.8, // marker opacity not applied if a rgba markerColor is provided\r\n markerOutlineColor: '#a7e7ff', // marker contour\r\n fillColor: '#5ed0fb', // poly\r\n fillOpacity: 0.2, // poly fill opacity not applied if a rgba fillColor is provided\r\n strokeColor: '#5ed0fb', // line and poly\r\n strokeOpacity: 0.7, // line and poly not applied if a rgba strokeColor is provided\r\n strokeWidth: 2 // line and poly\r\n },\r\n focus: {\r\n markerColor: '#5ed0fb', // marker fill\r\n markerOpacity: 1, // marker opacity not applied if a rgba markerColor is provided\r\n markerOutlineColor: '#DFF7FF', // marker contour\r\n fillColor: '#5ed0fb', // poly\r\n fillOpacity: 0.3, // poly fill opacity not applied if a rgba fillColor is provided\r\n strokeColor: '#DFF7FF', // line and poly\r\n strokeOpacity: 1, // line and poly not applied if a rgba strokeColor is provided\r\n strokeWidth: 2 // line and poly\r\n },\r\n selection: {\r\n markerColor: '#00a1de', // marker fill\r\n markerOpacity: 1, // marker opacity not applied if a rgba markerColor is provided\r\n markerOutlineColor: '#ffffff', // marker contour\r\n fillColor: '#00a1de', // poly\r\n fillOpacity: 0.3, // poly fill opacity not applied if a rgba fillColor is provided\r\n strokeColor: '#00A1DE', // line and poly\r\n strokeOpacity: 1, // line and poly not applied if a rgba strokeColor is provided\r\n strokeWidth: 2 // line and poly\r\n }\r\n }\r\n }\r\n};\r\n","import { Injectable } from '@angular/core';\r\nimport { SwUpdate } from '@angular/service-worker';\r\n\r\nimport { ConfirmDialogService } from '@igo2/common';\r\nimport { LanguageService } from '@igo2/core';\r\n\r\nimport { interval } from 'rxjs';\r\nimport { skip, tap } from 'rxjs/operators';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class PwaService {\r\n private confirmOpened: boolean = false;\r\n constructor(\r\n private updates: SwUpdate,\r\n private languageService: LanguageService,\r\n private confirmDialogService: ConfirmDialogService\r\n ) {\r\n if (updates.isEnabled) {\r\n this.handleVersionUpdates();\r\n }\r\n }\r\n\r\n checkForUpdates() {\r\n if (this.updates.isEnabled) {\r\n interval(60 * 1000 * 2)\r\n .pipe(skip(1))\r\n .subscribe(async () => {\r\n try {\r\n const updateFound = await this.updates.checkForUpdate();\r\n console.log(\r\n updateFound\r\n ? 'A new version is available.'\r\n : 'Already on the latest version.'\r\n );\r\n } catch (err) {\r\n console.error('Failed to check for updates:', err);\r\n }\r\n });\r\n }\r\n }\r\n\r\n private modalUpdatePWA() {\r\n if (this.confirmOpened) {\r\n return;\r\n }\r\n const title = this.languageService.translate.instant(\r\n 'pwa.new-version-title'\r\n );\r\n const body = this.languageService.translate.instant('pwa.new-version');\r\n const message = `${title} ${body}`;\r\n this.confirmDialogService\r\n .open(message)\r\n .pipe(tap(() => (this.confirmOpened = true)))\r\n .subscribe((confirm) => {\r\n if (confirm) {\r\n this.confirmOpened = false;\r\n if (window.navigator.onLine) {\r\n document.location.reload();\r\n } else {\r\n alert(\r\n `Hors-ligne / Offline. Vous devez être en ligne pour mettre à jour l\\'application. You must be online to update the application.`\r\n );\r\n setTimeout(() => {\r\n this.modalUpdatePWA();\r\n }, 900000);\r\n }\r\n }\r\n });\r\n }\r\n\r\n private handleVersionUpdates(): void {\r\n this.updates.versionUpdates.subscribe((evt) => {\r\n switch (evt.type) {\r\n case 'VERSION_DETECTED':\r\n console.log(`Downloading new app version: ${evt.version.hash}`);\r\n break;\r\n case 'VERSION_READY':\r\n console.log(`Current app version: ${evt.currentVersion.hash}`);\r\n console.log(\r\n `New app version ready for use: ${evt.latestVersion.hash}`\r\n );\r\n this.modalUpdatePWA();\r\n break;\r\n case 'VERSION_INSTALLATION_FAILED':\r\n console.error(\r\n `Failed to install app version '${evt.version.hash}': ${evt.error}`\r\n );\r\n break;\r\n }\r\n });\r\n }\r\n}\r\n","import { ConfigService, version } from '@igo2/core';\r\n\r\nexport function getAppVersion(configService: ConfigService): string {\r\n return (\r\n configService.getConfig('version.app') ||\r\n configService.getConfig('version.lib') ||\r\n version.lib\r\n );\r\n}\r\n","import {\r\n AnimationTriggerMetadata,\r\n animate,\r\n state,\r\n style,\r\n transition,\r\n trigger\r\n} from '@angular/animations';\r\n\r\nimport './portal.variables.scss';\r\n\r\nexport function expansionPanelAnimation(): AnimationTriggerMetadata[] {\r\n return [\r\n trigger('expansionPanelSize', [\r\n state(\r\n 'full',\r\n style({\r\n left: '5px',\r\n 'max-width': '100%'\r\n })\r\n ),\r\n state(\r\n 'notTriggered',\r\n style({\r\n left: '5px',\r\n bottom: '5px',\r\n 'max-width': '100%'\r\n })\r\n ),\r\n state(\r\n 'notVisible',\r\n style({\r\n display: 'none'\r\n })\r\n ),\r\n state(\r\n 'mobile',\r\n style({\r\n left: 'calc(100% - 40px)'\r\n })\r\n ),\r\n state(\r\n 'reduced',\r\n style({\r\n left: '405px',\r\n 'max-width': 'calc(100% - 405px)'\r\n })\r\n ),\r\n state(\r\n 'reducedNotTriggered',\r\n style({\r\n left: '405px',\r\n bottom: '5px',\r\n 'max-width': 'calc(100% - 405px)'\r\n })\r\n ),\r\n transition('* => *', animate('100ms'))\r\n ]),\r\n trigger('toastOffsetY', [\r\n state(\r\n 'true',\r\n style({\r\n bottom: '50px'\r\n })\r\n ),\r\n state(\r\n 'false',\r\n style({\r\n bottom: '5px'\r\n })\r\n )\r\n ])\r\n ];\r\n}\r\n\r\nexport function toastPanelAnimation(): AnimationTriggerMetadata[] {\r\n return [\r\n trigger('toastPanelMobileSidenav', [\r\n state(\r\n 'true',\r\n style({\r\n display: 'none'\r\n })\r\n ),\r\n transition('* => void', animate('0ms')),\r\n transition('* => *', animate('200ms'))\r\n ]),\r\n trigger('toastPanelOffsetX', [\r\n state(\r\n 'fullStandard',\r\n style({\r\n left: '45%'\r\n })\r\n ),\r\n state(\r\n 'standard',\r\n style({\r\n left: '50%'\r\n })\r\n ),\r\n state(\r\n 'htmlDisplay',\r\n style({\r\n left: '40%'\r\n })\r\n ),\r\n state(\r\n 'fullOffsetX',\r\n style({\r\n left: 'calc(45% + 202px)'\r\n })\r\n ),\r\n state(\r\n 'standardOffsetX',\r\n style({\r\n left: 'calc(50% + 202px)'\r\n })\r\n ),\r\n state(\r\n 'htmlDisplayOffsetX',\r\n style({\r\n left: 'calc(40% + 160px)'\r\n })\r\n ),\r\n transition('fullStandard => fullOffsetX', animate('200ms')),\r\n transition('fullOffsetX => fullStandard', animate('200ms')),\r\n transition('standard => standardOffsetX', animate('200ms')),\r\n transition('standardOffsetX => standard', animate('200ms')),\r\n transition('htmlDisplay => htmlDisplayOffsetX', animate('200ms')),\r\n transition('htmlDisplayOffsetX => htmlDisplay', animate('200ms'))\r\n // transition('standard => htmlDisplay', animate('200ms')),\r\n // transition('htmlDisplay => standard', animate('200ms')),\r\n ]),\r\n trigger('toastPanelOffsetY', [\r\n state(\r\n 'noExpansion',\r\n style({\r\n bottom: '0'\r\n })\r\n ),\r\n state(\r\n 'expansionAndToastOpened',\r\n style({\r\n bottom: '285px',\r\n zIndex: '999'\r\n })\r\n ),\r\n state(\r\n 'expansionAndToastClosed',\r\n style({\r\n bottom: '285px',\r\n zIndex: '5'\r\n })\r\n ),\r\n state(\r\n 'expansionMaximizedAndToastOpened',\r\n style({\r\n bottom: '500px', // workspace full size\r\n zIndex: '999'\r\n })\r\n ),\r\n state(\r\n 'expansionMaximizedAndToastClosed',\r\n style({\r\n bottom: '500px', // workspace full size\r\n zIndex: '5'\r\n })\r\n ),\r\n transition('noExpansion => noExpansion', animate('10ms')),\r\n transition(\r\n 'expansionAndToastOpened => expansionAndToastOpened',\r\n animate('200ms')\r\n ),\r\n transition(\r\n 'expansionAndToastClosed => expansionAndToastClosed',\r\n animate('200ms')\r\n ),\r\n transition(\r\n 'expansionMaximizedAndToastOpened => expansionMaximizedAndToastOpened',\r\n animate('200ms')\r\n ),\r\n transition(\r\n 'expansionMaximizedAndToastClosed => expansionMaximizedAndToastClosed',\r\n animate('200ms')\r\n )\r\n ])\r\n ];\r\n}\r\n\r\nexport function controlsAnimations(): AnimationTriggerMetadata[] {\r\n return [\r\n trigger('controlsOffsetY', [\r\n state('close', style({})),\r\n state(\r\n 'firstRowFromBottom',\r\n style({\r\n bottom: '5px'\r\n })\r\n ),\r\n state(\r\n 'firstRowFromBottom-expanded',\r\n style({\r\n bottom: '285px'\r\n })\r\n ),\r\n state(\r\n 'firstRowFromBottom-expanded-maximized',\r\n style({\r\n bottom: '500px'\r\n })\r\n ),\r\n state(\r\n 'secondRowFromBottom',\r\n style({\r\n bottom: '47px'\r\n })\r\n ),\r\n state(\r\n 'thirdRowFromBottom',\r\n style({\r\n bottom: '104px'\r\n })\r\n ),\r\n state(\r\n '',\r\n style({\r\n bottom: 'calc(285px)'\r\n })\r\n ),\r\n state(\r\n 'secondRowFromBottom-expanded',\r\n style({\r\n bottom: 'calc(285px + 52px)'\r\n })\r\n ),\r\n state(\r\n 'thirdRowFromBottom-expanded',\r\n style({\r\n bottom: 'calc(285px + 104px)'\r\n })\r\n ),\r\n transition('* => *', animate('200ms'))\r\n ]),\r\n trigger('mobileOffsetY', [\r\n state(\r\n 'low',\r\n style({\r\n bottom: '50px'\r\n })\r\n ),\r\n transition('* => *', animate('200ms'))\r\n ])\r\n ];\r\n}\r\n\r\nexport function controlSlideX(): AnimationTriggerMetadata {\r\n return trigger('controlStateX', [\r\n state(\r\n 'left',\r\n style({\r\n left: '60px'\r\n })\r\n ),\r\n state(\r\n 'right',\r\n style({\r\n left: '465px'\r\n })\r\n ),\r\n transition('* => *', animate('200ms'))\r\n ]);\r\n}\r\n\r\nexport function controlSlideY(): AnimationTriggerMetadata {\r\n return trigger('controlStateY', [\r\n state('close', style({})),\r\n state(\r\n 'firstRowFromBottom',\r\n style({\r\n bottom: '2px',\r\n 'margin-left': '0px'\r\n })\r\n ),\r\n state(\r\n 'firstRowFromBottom-expanded',\r\n style({\r\n bottom: '285px',\r\n 'margin-left': '-55px'\r\n })\r\n ),\r\n state(\r\n 'firstRowFromBottom-expanded-maximized',\r\n style({\r\n bottom: '500px', // workspace full size\r\n 'margin-left': '-55px'\r\n })\r\n ),\r\n transition('* => *', animate('200ms'))\r\n ]);\r\n}\r\n\r\nexport function mapSlideX(): AnimationTriggerMetadata {\r\n return trigger('mapStateX', [\r\n state(\r\n 'left',\r\n style({\r\n left: '0'\r\n })\r\n ),\r\n state(\r\n 'right',\r\n style({\r\n left: '0'\r\n })\r\n ),\r\n transition('* => *', animate('200ms'))\r\n ]);\r\n}\r\nexport function mapSlideY(): AnimationTriggerMetadata {\r\n return trigger('mapStateY', [\r\n state(\r\n '*',\r\n style({\r\n bottom: '0'\r\n })\r\n ),\r\n transition('* => *', animate('200ms'))\r\n ]);\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { MatDialogConfig } from '@angular/material/dialog';\r\n\r\nimport { ConfigService, StorageService } from '@igo2/core';\r\nimport { getAppVersion } from 'src/app/app.utils';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class WelcomeWindowService {\r\n nbVisit: number;\r\n showAgain: boolean;\r\n igoVersionDifferentFromStorage = false;\r\n\r\n constructor(\r\n private configService: ConfigService,\r\n private storageService: StorageService\r\n ) {\r\n this.igoVersionDifferentFromStorage = this.isVersionDifferentFromStorage();\r\n this.setStorageConfig();\r\n }\r\n\r\n setStorageConfig() {\r\n this.nbVisit = Number(this.storageService.get('welcomeWindow_nbVisit'));\r\n if (!this.nbVisit) {\r\n this.nbVisit = 0;\r\n }\r\n\r\n this.storageService.set('welcomeWindow_nbVisit', (this.nbVisit += 1));\r\n }\r\n\r\n isVersionDifferentFromStorage(): boolean {\r\n return (\r\n this.storageService.get('version') !== getAppVersion(this.configService)\r\n );\r\n }\r\n\r\n hasWelcomeWindow(): boolean {\r\n if (\r\n this.storageService.get('welcomeWindow_showAgain') === false ||\r\n this.storageService.get('welcomeWindow_showAgain') === 'false'\r\n ) {\r\n if (\r\n this.nbVisit >=\r\n this.configService.getConfig('welcomeWindow.nbVisitToShowAgain')\r\n ) {\r\n this.storageService.set('welcomeWindow_nbVisit', 0);\r\n this.storageService.remove('welcomeWindow_showAgain');\r\n return true;\r\n } else if (\r\n this.configService.getConfig('welcomeWindow.showAgainOnNewIGOVersion')\r\n ) {\r\n if (this.igoVersionDifferentFromStorage) {\r\n this.storageService.set('welcomeWindow_nbVisit', 0);\r\n this.storageService.remove('welcomeWindow_showAgain');\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n if (\r\n typeof this.configService.getConfig('welcomeWindow.nbVisitToShow') !==\r\n 'undefined'\r\n ) {\r\n if (\r\n this.nbVisit >\r\n this.configService.getConfig('welcomeWindow.nbVisitToShow')\r\n ) {\r\n this.storageService.set('welcomeWindow_showAgain', false);\r\n return false;\r\n }\r\n }\r\n\r\n return this.configService.getConfig('welcomeWindow');\r\n }\r\n\r\n getConfig(): MatDialogConfig {\r\n const dialogConfig = new MatDialogConfig();\r\n\r\n dialogConfig.disableClose = true;\r\n dialogConfig.autoFocus = true;\r\n dialogConfig.maxWidth = '500px';\r\n\r\n return dialogConfig;\r\n }\r\n\r\n afterClosedWelcomeWindow() {\r\n this.storageService.set('welcomeWindow_showAgain', this.showAgain);\r\n }\r\n}\r\n","
\n \n

{{ 'welcomeWindow.title' | translate }}

\n \n\n \n
\n\n
\n \n
\n\n

\n
\n \n \n\n \n {{ 'welcomeWindow.closeButton' | translate }}\n \n
\n
\n","import { Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\n\r\nimport { ConfigService, LanguageService } from '@igo2/core';\r\n\r\nimport { BehaviorSubject, Observable, Subscription, of } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\n\r\nimport { WelcomeWindowService } from './welcome-window.service';\r\nimport { getAppVersion } from 'src/app/app.utils';\r\n\r\n@Component({\r\n selector: 'app-welcome-window',\r\n templateUrl: './welcome-window.component.html',\r\n styleUrls: ['./welcome-window.component.scss']\r\n})\r\nexport class WelcomeWindowComponent implements OnInit, OnDestroy {\r\n // isVisible = true;\r\n showAgain = false;\r\n public discoverTitleInLocale$: Observable;\r\n private title$$: Subscription;\r\n public html$: BehaviorSubject = new BehaviorSubject(undefined);\r\n\r\n constructor(\r\n public dialog: MatDialog,\r\n private welcomeWindowService: WelcomeWindowService,\r\n private configService: ConfigService,\r\n protected languageService: LanguageService\r\n ) {\r\n this.discoverTitleInLocale$ = of(\r\n this.configService.getConfig(\r\n 'welcomeWindow.discoverTitleInLocale',\r\n this.configService.getConfig('title')\r\n )\r\n );\r\n }\r\n\r\n ngOnInit(): void {\r\n this.computeHtml();\r\n }\r\n\r\n closeWelcomeWindow() {\r\n this.dialog.closeAll();\r\n }\r\n\r\n private computeHtml() {\r\n let deltaDay = 0;\r\n let isDateParsable = true;\r\n let releaseDate = new Date(\r\n this.configService.getConfig('version.releaseDate')\r\n );\r\n\r\n const releaseDateAppConfig = this.configService.getConfig(\r\n 'version.releaseDateApp'\r\n );\r\n\r\n if (releaseDateAppConfig) {\r\n const releaseDateApp = new Date(releaseDateAppConfig);\r\n if (isNaN(releaseDateApp.getDate())) {\r\n console.log('The releaseDateApp config is not a valid date format');\r\n isDateParsable = false;\r\n } else {\r\n deltaDay = 1;\r\n releaseDate = releaseDateApp;\r\n }\r\n }\r\n\r\n let releaseDateString = '';\r\n\r\n if (isDateParsable) {\r\n let day: any = releaseDate.getDate() + deltaDay;\r\n if (day < 10) {\r\n day = '0' + day;\r\n }\r\n let month: any = releaseDate.getMonth() + 1;\r\n if (month < 10) {\r\n month = '0' + month;\r\n }\r\n const year = releaseDate.getFullYear();\r\n releaseDateString = `${year}-${month}-${day}`;\r\n } else {\r\n releaseDateString = releaseDateAppConfig;\r\n }\r\n\r\n this.title$$ = this.languageService.translate\r\n .get(this.configService.getConfig('title', ''))\r\n .pipe(\r\n map((title) => {\r\n return this.languageService.translate.instant('welcomeWindow.html', {\r\n title,\r\n description: this.configService.getConfig('description', ''),\r\n version: getAppVersion(this.configService),\r\n releaseDate: releaseDateString || ''\r\n });\r\n })\r\n )\r\n .subscribe((r) => this.html$.next(r));\r\n\r\n return this.html$;\r\n }\r\n\r\n setShowAgain() {\r\n this.welcomeWindowService.showAgain = this.showAgain;\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.title$$) {\r\n this.title$$.unsubscribe();\r\n }\r\n }\r\n}\r\n","import {\r\n AnimationTriggerMetadata,\r\n animate,\r\n state,\r\n style,\r\n transition,\r\n trigger\r\n} from '@angular/animations';\r\n\r\nexport function showContent(\r\n duration = '150ms',\r\n delay = '300ms',\r\n easing = 'ease-in-out'\r\n): AnimationTriggerMetadata {\r\n return trigger('showContent', [\r\n state(\r\n 'true',\r\n style({\r\n opacity: 1\r\n })\r\n ),\r\n state(\r\n 'false',\r\n style({\r\n opacity: 0\r\n })\r\n ),\r\n transition('false => true', animate(`${duration} ${delay} ${easing}`)),\r\n transition('true => false', animate('0ms'))\r\n ]);\r\n}\r\n","
\n \n \n \n \n
\n\n
\n \n
\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n EventEmitter,\r\n HostBinding,\r\n Input,\r\n Output\r\n} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-expansion-panel-header',\r\n templateUrl: './expansion-panel-header.component.html',\r\n styleUrls: ['./expansion-panel-header.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class ExpansionPanelHeaderComponent {\r\n @Input()\r\n get expanded(): boolean {\r\n return this._expanded;\r\n }\r\n set expanded(value: boolean) {\r\n if (value === this._expanded) {\r\n return;\r\n }\r\n\r\n this._expanded = value;\r\n this.expandedChange.emit(this._expanded);\r\n }\r\n private _expanded: boolean;\r\n\r\n @Output() expandedChange = new EventEmitter();\r\n\r\n @HostBinding('class.app-expansion-panel-header-expanded')\r\n get hasExpandedClass() {\r\n return this.expanded;\r\n }\r\n\r\n constructor() {}\r\n\r\n onToggleClick() {\r\n this.expanded = !this.expanded;\r\n }\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n EventEmitter,\r\n HostBinding,\r\n Input,\r\n Output\r\n} from '@angular/core';\r\n\r\nimport { showContent } from './expansion-panel.animations';\r\n\r\n@Component({\r\n selector: 'app-expansion-panel',\r\n templateUrl: './expansion-panel.component.html',\r\n styleUrls: ['./expansion-panel.component.scss'],\r\n animations: [showContent()],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class ExpansionPanelComponent {\r\n @Input()\r\n get expanded(): boolean {\r\n return this._expanded;\r\n }\r\n set expanded(value: boolean) {\r\n if (value === this._expanded) {\r\n return;\r\n }\r\n\r\n this._expanded = value;\r\n this.expandedChange.emit(this._expanded);\r\n }\r\n private _expanded: boolean;\r\n\r\n @Input() maximized: Boolean = false;\r\n\r\n @Input()\r\n get backdropShown(): boolean {\r\n return this._backdropShown;\r\n }\r\n set backdropShown(value: boolean) {\r\n this._backdropShown = value;\r\n }\r\n private _backdropShown: boolean;\r\n\r\n @Output() expandedChange = new EventEmitter();\r\n\r\n @HostBinding('class.app-expansion-panel-expanded')\r\n get hasExpandedClass() {\r\n return this.expanded;\r\n }\r\n\r\n @HostBinding('class.app-expansion-panel-expanded-maximized')\r\n get hasExpandedFullClass() {\r\n return this.expanded && this.maximized;\r\n }\r\n\r\n constructor() {}\r\n\r\n onBackdropClick() {\r\n this.expanded = false;\r\n this.backdropShown = false;\r\n }\r\n}\r\n","
\n
\n \n \n\n \n \n \n\n \n \n
\n
\n\n","\n \n \n \n\n \n \n \n\n \n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n \n \n \n\n
\n \n \n\n \n \n
\n \n
\n\n\n \n\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n EventEmitter,\r\n HostBinding,\r\n HostListener,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n Output\r\n} from '@angular/core';\r\n\r\nimport {\r\n Action,\r\n ActionStore,\r\n ActionbarMode,\r\n EntityStore,\r\n getEntityTitle\r\n} from '@igo2/common';\r\nimport {\r\n ConfigService,\r\n LanguageService,\r\n Media,\r\n MediaService,\r\n StorageScope,\r\n StorageService,\r\n StorageServiceEvent\r\n} from '@igo2/core';\r\nimport {\r\n Feature,\r\n FeatureMotion,\r\n GeoServiceDefinition,\r\n IgoMap,\r\n Layer,\r\n LayerService,\r\n PropertyTypeDetectorService,\r\n SearchResult,\r\n computeOlFeaturesExtent,\r\n featureFromOl,\r\n featureToOl,\r\n featuresAreOutOfView,\r\n featuresAreTooDeepInView,\r\n generateIdFromSourceOptions,\r\n getCommonVectorSelectedStyle,\r\n getCommonVectorStyle,\r\n moveToOlFeatures\r\n} from '@igo2/geo';\r\nimport { QueryState, StorageState, WorkspaceState } from '@igo2/integration';\r\nimport { ObjectUtils } from '@igo2/utils';\r\n\r\nimport olFeature from 'ol/Feature';\r\nimport olFormatGeoJSON from 'ol/format/GeoJSON';\r\nimport olPoint from 'ol/geom/Point';\r\n\r\nimport { BehaviorSubject, Observable, Subscription, combineLatest } from 'rxjs';\r\nimport { debounceTime, map, skipWhile, tap } from 'rxjs/operators';\r\n\r\ninterface ExtendedGeoServiceDefinition extends GeoServiceDefinition {\r\n propertyForUrl: string;\r\n}\r\n\r\n@Component({\r\n selector: 'app-toast-panel',\r\n templateUrl: './toast-panel.component.html',\r\n styleUrls: ['./toast-panel.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class ToastPanelComponent implements OnInit, OnDestroy {\r\n static SWIPE_ACTION = {\r\n RIGHT: 'swiperight',\r\n LEFT: 'swipeleft',\r\n UP: 'swipeup',\r\n DOWN: 'swipedown'\r\n };\r\n\r\n public tabsMode: boolean;\r\n\r\n get storageService(): StorageService {\r\n return this.storageState.storageService;\r\n }\r\n\r\n @Input()\r\n get map(): IgoMap {\r\n return this._map;\r\n }\r\n set map(value: IgoMap) {\r\n this._map = value;\r\n }\r\n private _map: IgoMap;\r\n\r\n @Input()\r\n get store(): EntityStore> {\r\n return this._store;\r\n }\r\n set store(value: EntityStore>) {\r\n this._store = value;\r\n this.store.entities$.subscribe((_entities) => {\r\n this.unselectResult();\r\n });\r\n }\r\n private _store: EntityStore>;\r\n\r\n @Input()\r\n get opened(): boolean {\r\n return this._opened;\r\n }\r\n set opened(value: boolean) {\r\n if (value !== !this._opened) {\r\n return;\r\n }\r\n this._opened = value;\r\n this.storageService.set('toastOpened', value, StorageScope.SESSION);\r\n this.openedChange.emit(value);\r\n }\r\n private _opened = true;\r\n\r\n @Input() hasFeatureEmphasisOnSelection: Boolean = false;\r\n\r\n get zoomAuto(): boolean {\r\n return this._zoomAuto;\r\n }\r\n set zoomAuto(value) {\r\n if (value !== !this._zoomAuto) {\r\n return;\r\n }\r\n this._zoomAuto = value;\r\n this.zoomAuto$.next(value);\r\n this.storageService.set('zoomAuto', value);\r\n }\r\n private _zoomAuto = false;\r\n\r\n // To allow the toast to use much larger extent on the map\r\n get fullExtent(): boolean {\r\n return this._fullExtent;\r\n }\r\n set fullExtent(value) {\r\n if (value !== !this._fullExtent) {\r\n return;\r\n }\r\n this._fullExtent = value;\r\n this.fullExtent$.next(value);\r\n this.fullExtentEvent.emit(value);\r\n this.storageService.set('fullExtent', value);\r\n }\r\n private _fullExtent = false;\r\n\r\n public potententialLayerToAdd$: BehaviorSubject = new BehaviorSubject(\r\n undefined\r\n );\r\n public potententialLayerisAdded$: BehaviorSubject =\r\n new BehaviorSubject(false);\r\n\r\n public fullExtent$: BehaviorSubject = new BehaviorSubject(\r\n this.fullExtent\r\n );\r\n public isHtmlDisplay = false;\r\n public iconResizeWindows = '';\r\n\r\n public icon = 'menu';\r\n\r\n public actionStore = new ActionStore([]);\r\n public actionbarMode = ActionbarMode.Overlay;\r\n\r\n private multiple$ = new BehaviorSubject(false);\r\n private isResultSelected$ = new BehaviorSubject(false);\r\n public isSelectedResultOutOfView$ = new BehaviorSubject(false);\r\n private isSelectedResultOutOfView$$: Subscription;\r\n private storageChange$$: Subscription;\r\n private initialized = true;\r\n\r\n private format = new olFormatGeoJSON();\r\n\r\n private resultOrResolution$$: Subscription;\r\n private focusedResult$: BehaviorSubject> =\r\n new BehaviorSubject(undefined);\r\n private abstractFocusedOrSelectedResult: Feature;\r\n\r\n public withZoomButton = true;\r\n zoomAuto$: BehaviorSubject = new BehaviorSubject(false);\r\n\r\n @Output() openedChange = new EventEmitter();\r\n\r\n @Output() fullExtentEvent = new EventEmitter();\r\n @Output() windowHtmlDisplayEvent = new EventEmitter();\r\n\r\n resultSelected$ = new BehaviorSubject>(undefined);\r\n\r\n // @HostBinding('class.app-toast-panel-opened')\r\n // get hasOpenedClass() {\r\n // return this.opened;\r\n // }\r\n\r\n // @HostBinding('class.app-full-toast-panel-collapsed')\r\n // get hasFullCollapsedClass() {\r\n // return !this.opened && this.fullExtent;\r\n // }\r\n\r\n getClassPanel() {\r\n return {\r\n 'app-toast-panel-opened':\r\n this.opened && !this.fullExtent && !this.isHtmlDisplay,\r\n 'app-full-toast-panel-opened':\r\n this.opened && this.fullExtent && !this.isHtmlDisplay,\r\n\r\n 'app-toast-panel-html':\r\n this.opened &&\r\n !this.fullExtent &&\r\n this.resultSelected$.value &&\r\n this.isHtmlDisplay,\r\n\r\n 'app-toast-panel-html-large':\r\n this.opened &&\r\n this.fullExtent &&\r\n this.resultSelected$.value &&\r\n this.isHtmlDisplay,\r\n\r\n 'app-toast-panel-collapsed':\r\n !this.opened && !this.fullExtent && !this.isHtmlDisplay,\r\n 'app-full-toast-panel-collapsed':\r\n !this.opened && this.fullExtent && !this.isHtmlDisplay,\r\n 'app-toast-panel-html-collapsed': !this.opened && this.isHtmlDisplay\r\n };\r\n }\r\n\r\n // if query tabs mode activated\r\n // fix Heigh of igo-panel\r\n setHeighPanelTabsMode() {\r\n if (this.resultSelected$.value || !this.opened) {\r\n return '';\r\n }\r\n\r\n if (this.tabsMode && !this.fullExtent && !this.isHtmlDisplay) {\r\n return 'app-toast-panel-opened-max-height';\r\n } else if (\r\n this.tabsMode &&\r\n this.opened &&\r\n this.fullExtent &&\r\n !this.isHtmlDisplay\r\n ) {\r\n return 'app-full-toast-panel-opened-max-height';\r\n }\r\n }\r\n\r\n @HostBinding('style.visibility')\r\n get displayStyle() {\r\n if (this.results.length) {\r\n if (this.results.length === 1 && this.initialized) {\r\n this.selectResult(this.results[0]);\r\n }\r\n return 'visible';\r\n }\r\n return 'hidden';\r\n }\r\n\r\n // @HostBinding('class.app-full-toast-panel-opened')\r\n // get hasFullOpenedClass() {\r\n // return this.opened && this.fullExtent;\r\n // }\r\n\r\n @HostListener('document:keydown.escape', ['$event']) onEscapeHandler(\r\n event: KeyboardEvent\r\n ) {\r\n this.clear();\r\n }\r\n\r\n @HostListener('document:keydown.backspace', ['$event']) onBackHandler(\r\n event: KeyboardEvent\r\n ) {\r\n this.unselectResult();\r\n }\r\n\r\n @HostListener('document:keydown.z', ['$event']) onZoomHandler(\r\n event: KeyboardEvent\r\n ) {\r\n if (this.isResultSelected$.getValue() === true) {\r\n const localOlFeature = this.format.readFeature(\r\n this.resultSelected$.getValue().data,\r\n {\r\n dataProjection: this.resultSelected$.getValue().data.projection,\r\n featureProjection: this.map.projection\r\n }\r\n );\r\n moveToOlFeatures(\r\n this.map.viewController,\r\n [localOlFeature],\r\n FeatureMotion.Default\r\n );\r\n }\r\n }\r\n\r\n get results(): SearchResult[] {\r\n // return this.store.view.filter((e) => e.meta.dataType === FEATURE).all();\r\n return this.store.all();\r\n }\r\n\r\n get multiple(): Observable {\r\n this.results.length\r\n ? this.multiple$.next(true)\r\n : this.multiple$.next(false);\r\n return this.multiple$;\r\n }\r\n\r\n constructor(\r\n public mediaService: MediaService,\r\n public languageService: LanguageService,\r\n private storageState: StorageState,\r\n private queryState: QueryState,\r\n private workspaceState: WorkspaceState,\r\n private configService: ConfigService,\r\n private propertyTypeDetectorService: PropertyTypeDetectorService,\r\n private layerService: LayerService\r\n ) {\r\n this.tabsMode = this.configService.getConfig('queryTabs', false);\r\n this.opened = this.storageService.get('toastOpened') as boolean;\r\n this.zoomAuto = this.storageService.get('zoomAuto') as boolean;\r\n this.fullExtent = this.storageService.get('fullExtent') as boolean;\r\n this.setResizeWindowIcon();\r\n }\r\n\r\n private monitorResultOutOfView() {\r\n this.isSelectedResultOutOfView$$ = combineLatest([\r\n this.map.viewController.state$,\r\n this.resultSelected$\r\n ])\r\n .pipe(debounceTime(100))\r\n .subscribe((bunch) => {\r\n const selectedResult = bunch[1];\r\n if (!selectedResult) {\r\n this.isSelectedResultOutOfView$.next(false);\r\n return;\r\n }\r\n const selectedOlFeature = featureToOl(\r\n selectedResult.data,\r\n this.map.projection\r\n );\r\n const selectedOlFeatureExtent = computeOlFeaturesExtent(\r\n [selectedOlFeature],\r\n this.map.viewProjection\r\n );\r\n this.isSelectedResultOutOfView$.next(\r\n featuresAreOutOfView(this.map.getExtent(), selectedOlFeatureExtent)\r\n );\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.store.entities$.subscribe(() => {\r\n this.initialized = true;\r\n });\r\n this.monitorResultOutOfView();\r\n\r\n let latestResult;\r\n let trigger;\r\n if (this.hasFeatureEmphasisOnSelection) {\r\n this.resultOrResolution$$ = combineLatest([\r\n this.focusedResult$.pipe(\r\n tap((res) => {\r\n latestResult = res;\r\n trigger = 'focused';\r\n })\r\n ),\r\n this.resultSelected$.pipe(\r\n tap((res) => {\r\n latestResult = res;\r\n trigger = 'selected';\r\n })\r\n ),\r\n this.map.viewController.resolution$,\r\n this.store.entities$\r\n ]).subscribe(() => this.buildResultEmphasis(latestResult, trigger));\r\n }\r\n\r\n this.storageChange$$ = this.storageService.storageChange$\r\n .pipe(\r\n skipWhile(\r\n (storageChange: StorageServiceEvent) =>\r\n storageChange.key !== 'zoomAuto'\r\n )\r\n )\r\n .subscribe((change) => {\r\n this.zoomAuto = change.currentValue;\r\n });\r\n\r\n this.actionStore.load([\r\n {\r\n id: 'list',\r\n title: this.languageService.translate.instant('toastPanel.backToList'),\r\n icon: 'format-list-bulleted-square',\r\n tooltip: this.languageService.translate.instant(\r\n 'toastPanel.listButton'\r\n ),\r\n display: () => {\r\n return this.isResultSelected$;\r\n },\r\n handler: () => {\r\n this.unselectResult();\r\n }\r\n },\r\n {\r\n id: 'zoomFeature',\r\n title: this.languageService.translate.instant(\r\n 'toastPanel.zoomOnFeature'\r\n ),\r\n icon: 'magnify-plus-outline',\r\n tooltip: this.languageService.translate.instant(\r\n 'toastPanel.zoomOnFeatureTooltip'\r\n ),\r\n display: () => {\r\n return this.isResultSelected$;\r\n },\r\n handler: () => {\r\n const localOlFeature = this.format.readFeature(\r\n this.resultSelected$.getValue().data,\r\n {\r\n dataProjection: this.resultSelected$.getValue().data.projection,\r\n featureProjection: this.map.projection\r\n }\r\n );\r\n moveToOlFeatures(\r\n this.map.viewController,\r\n [localOlFeature],\r\n FeatureMotion.Zoom\r\n );\r\n }\r\n },\r\n {\r\n id: 'zoomResults',\r\n title: this.languageService.translate.instant(\r\n 'toastPanel.zoomOnFeatures'\r\n ),\r\n tooltip: this.languageService.translate.instant(\r\n 'toastPanel.zoomOnFeaturesTooltip'\r\n ),\r\n icon: 'magnify-scan',\r\n availability: () => {\r\n return this.multiple;\r\n },\r\n handler: () => {\r\n const olFeatures = [];\r\n for (const result of this.store.all()) {\r\n const localOlFeature = this.format.readFeature(result.data, {\r\n dataProjection: result.data.projection,\r\n featureProjection: this.map.projection\r\n });\r\n olFeatures.push(localOlFeature);\r\n }\r\n moveToOlFeatures(\r\n this.map.viewController,\r\n olFeatures,\r\n FeatureMotion.Zoom\r\n );\r\n }\r\n },\r\n {\r\n id: 'zoomAuto',\r\n title: this.languageService.translate.instant('toastPanel.zoomAuto'),\r\n tooltip: this.languageService.translate.instant(\r\n 'toastPanel.zoomAutoTooltip'\r\n ),\r\n checkbox: true,\r\n checkCondition: this.zoomAuto$,\r\n handler: () => {\r\n this.zoomAuto = !this.zoomAuto;\r\n if (this.zoomAuto && this.isResultSelected$.value === true) {\r\n this.selectResult(this.resultSelected$.getValue());\r\n }\r\n }\r\n },\r\n {\r\n id: 'fullExtent',\r\n title: this.languageService.translate.instant('toastPanel.fullExtent'),\r\n tooltip: this.languageService.translate.instant(\r\n 'toastPanel.fullExtentTooltip'\r\n ),\r\n icon: 'arrow-expand',\r\n display: () => {\r\n return this.fullExtent$.pipe(map((v) => !v && !this.isDesktop()));\r\n },\r\n handler: () => {\r\n this.fullExtent = true;\r\n }\r\n },\r\n {\r\n id: 'standardExtent',\r\n title: this.languageService.translate.instant(\r\n 'toastPanel.standardExtent'\r\n ),\r\n tooltip: this.languageService.translate.instant(\r\n 'toastPanel.standardExtentTooltip'\r\n ),\r\n icon: 'arrow-collapse',\r\n display: () => {\r\n return this.fullExtent$.pipe(map((v) => v && !this.isDesktop()));\r\n },\r\n handler: () => {\r\n this.fullExtent = false;\r\n }\r\n }\r\n ]);\r\n this.computeFeatureGeoServiceStatus();\r\n combineLatest([\r\n this.resultSelected$,\r\n this.map.layers$ as BehaviorSubject\r\n ]).subscribe(() => {\r\n this.computeFeatureGeoServiceStatus();\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.resultOrResolution$$) {\r\n this.resultOrResolution$$.unsubscribe();\r\n }\r\n if (this.isSelectedResultOutOfView$$) {\r\n this.isSelectedResultOutOfView$$.unsubscribe();\r\n }\r\n if (this.storageChange$$) {\r\n this.storageChange$$.unsubscribe();\r\n }\r\n }\r\n\r\n private buildResultEmphasis(\r\n result: SearchResult,\r\n trigger: 'selected' | 'focused' | undefined\r\n ) {\r\n this.clearFeatureEmphasis();\r\n if (!result || (trigger === 'selected' && this.zoomAuto)) {\r\n return;\r\n }\r\n const myOlFeature = featureToOl(result.data, this.map.projection);\r\n const olGeometry = myOlFeature.getGeometry();\r\n if (\r\n featuresAreTooDeepInView(\r\n this.map.viewController,\r\n olGeometry.getExtent() as [number, number, number, number],\r\n 0.0025\r\n )\r\n ) {\r\n const extent = olGeometry.getExtent();\r\n const x = extent[0] + (extent[2] - extent[0]) / 2;\r\n const y = extent[1] + (extent[3] - extent[1]) / 2;\r\n const feature1 = new olFeature({\r\n name: 'abstractFocusedOrSelectedResult',\r\n geometry: new olPoint([x, y])\r\n });\r\n this.abstractFocusedOrSelectedResult = featureFromOl(\r\n feature1,\r\n this.map.projection\r\n );\r\n this.abstractFocusedOrSelectedResult.meta.style =\r\n getCommonVectorSelectedStyle(\r\n Object.assign(\r\n {},\r\n { feature: this.abstractFocusedOrSelectedResult },\r\n trigger === 'selected'\r\n ? this.queryState.queryOverlayStyleSelection\r\n : this.queryState.queryOverlayStyleFocus\r\n )\r\n );\r\n this.abstractFocusedOrSelectedResult.meta.style.setZIndex(2000);\r\n this.map.queryResultsOverlay.addFeature(\r\n this.abstractFocusedOrSelectedResult,\r\n FeatureMotion.None\r\n );\r\n }\r\n }\r\n\r\n private clearFeatureEmphasis() {\r\n if (this.abstractFocusedOrSelectedResult) {\r\n this.map.queryResultsOverlay.removeFeature(\r\n this.abstractFocusedOrSelectedResult\r\n );\r\n this.abstractFocusedOrSelectedResult = undefined;\r\n }\r\n }\r\n\r\n getTitle(result: SearchResult) {\r\n return getEntityTitle(result);\r\n }\r\n\r\n focusResult(result: SearchResult) {\r\n this.focusedResult$.next(result);\r\n this.map.queryResultsOverlay.removeFeature(result.data);\r\n\r\n result.data.meta.style = getCommonVectorSelectedStyle(\r\n Object.assign(\r\n {},\r\n { feature: result.data },\r\n this.queryState.queryOverlayStyleFocus\r\n )\r\n );\r\n result.data.meta.style.setZIndex(2000);\r\n this.map.queryResultsOverlay.addFeature(result.data, FeatureMotion.None);\r\n }\r\n\r\n unfocusResult(result: SearchResult, force?) {\r\n this.focusedResult$.next(undefined);\r\n if (!force && this.store.state.get(result).focused) {\r\n return;\r\n }\r\n this.map.queryResultsOverlay.removeFeature(result.data);\r\n\r\n result.data.meta.style = getCommonVectorStyle(\r\n Object.assign(\r\n {},\r\n { feature: result.data },\r\n this.queryState.queryOverlayStyle\r\n )\r\n );\r\n result.data.meta.style.setZIndex(undefined);\r\n this.map.queryResultsOverlay.addFeature(result.data, FeatureMotion.None);\r\n }\r\n\r\n selectResult(result: SearchResult) {\r\n this.store.state.update(\r\n result,\r\n {\r\n focused: true,\r\n selected: true\r\n },\r\n true\r\n );\r\n this.resultSelected$.next(result);\r\n if (result.data.properties && result.data.properties.target === 'iframe') {\r\n this.setHtmlDisplay(true);\r\n } else {\r\n this.setHtmlDisplay(false);\r\n }\r\n\r\n const features = [];\r\n for (const feature of this.store.all()) {\r\n if (feature.meta.id === result.meta.id) {\r\n feature.data.meta.style = getCommonVectorSelectedStyle(\r\n Object.assign(\r\n {},\r\n { feature: feature.data },\r\n this.queryState.queryOverlayStyleSelection\r\n )\r\n );\r\n feature.data.meta.style.setZIndex(2000);\r\n } else {\r\n feature.data.meta.style = getCommonVectorStyle(\r\n Object.assign(\r\n {},\r\n { feature: feature.data },\r\n this.queryState.queryOverlayStyle\r\n )\r\n );\r\n }\r\n features.push(feature.data);\r\n }\r\n this.map.queryResultsOverlay.removeFeatures(features);\r\n this.map.queryResultsOverlay.addFeatures(features, FeatureMotion.None);\r\n\r\n if (this.zoomAuto) {\r\n const localOlFeature = this.format.readFeature(\r\n this.resultSelected$.getValue().data,\r\n {\r\n dataProjection: this.resultSelected$.getValue().data.projection,\r\n featureProjection: this.map.projection\r\n }\r\n );\r\n moveToOlFeatures(\r\n this.map.viewController,\r\n [localOlFeature],\r\n FeatureMotion.Default\r\n );\r\n }\r\n\r\n this.isResultSelected$.next(true);\r\n this.initialized = false;\r\n }\r\n\r\n unselectResult() {\r\n this.resultSelected$.next(undefined);\r\n this.isResultSelected$.next(false);\r\n this.setHtmlDisplay(false);\r\n this.store.state.clear();\r\n\r\n const features = [];\r\n for (const feature of this.store.all()) {\r\n feature.data.meta.style = getCommonVectorStyle(\r\n Object.assign(\r\n {},\r\n { feature: feature.data },\r\n this.queryState.queryOverlayStyle\r\n )\r\n );\r\n features.push(feature.data);\r\n }\r\n this.map.queryResultsOverlay.setFeatures(\r\n features,\r\n FeatureMotion.None,\r\n 'map'\r\n );\r\n }\r\n\r\n handleWksSelection() {\r\n const entities = this.store.entities$.getValue();\r\n const layersTitle = [...new Set(entities.map((e) => e.source.title))];\r\n const workspaces = this.workspaceState.store.entities$.getValue();\r\n if (workspaces.length) {\r\n const wksToHandle = workspaces.filter((wks) =>\r\n layersTitle.includes(wks.title)\r\n );\r\n wksToHandle.map((ws) => {\r\n ws.entityStore.state.updateMany(ws.entityStore.view.all(), {\r\n selected: false\r\n });\r\n });\r\n }\r\n }\r\n\r\n clear() {\r\n this.handleWksSelection();\r\n this.clearFeatureEmphasis();\r\n this.map.queryResultsOverlay.clear();\r\n this.store.clear();\r\n this.unselectResult();\r\n this.setHtmlDisplay(false);\r\n }\r\n\r\n isMobile(): boolean {\r\n return this.mediaService.getMedia() === Media.Mobile;\r\n }\r\n isDesktop(): boolean {\r\n return this.mediaService.isDesktop();\r\n }\r\n\r\n handleKeyboardEvent(event) {\r\n if (event.keyCode === 37) {\r\n this.previousResult();\r\n } else if (event.keyCode === 39) {\r\n this.nextResult();\r\n }\r\n }\r\n\r\n previousResult() {\r\n if (!this.resultSelected$.value) {\r\n return;\r\n }\r\n let i = this.results.indexOf(this.resultSelected$.value);\r\n const previousResult = this.results[--i];\r\n if (previousResult) {\r\n this.selectResult(previousResult);\r\n }\r\n }\r\n\r\n nextResult() {\r\n if (!this.resultSelected$.value) {\r\n return;\r\n }\r\n let i = this.results.indexOf(this.resultSelected$.value);\r\n const nextResult = this.results[++i];\r\n if (nextResult) {\r\n this.selectResult(nextResult);\r\n }\r\n }\r\n\r\n hasGeoService() {\r\n return this.getGeoServices().length;\r\n }\r\n\r\n private getGeoServices(): ExtendedGeoServiceDefinition[] {\r\n const resultSelected = this.resultSelected$.getValue();\r\n if (!resultSelected) {\r\n return [];\r\n }\r\n const hasGeoServiceProperties: ExtendedGeoServiceDefinition[] = [];\r\n const keys = Object.keys(resultSelected.data.properties);\r\n Object.entries(resultSelected.data.properties).forEach((entry) => {\r\n const [key, value] = entry;\r\n const geoService = this.propertyTypeDetectorService.getGeoService(\r\n value,\r\n keys\r\n );\r\n const extendedGeoService: ExtendedGeoServiceDefinition = Object.assign(\r\n {},\r\n geoService,\r\n { propertyForUrl: undefined }\r\n );\r\n if (geoService) {\r\n extendedGeoService.propertyForUrl = key;\r\n hasGeoServiceProperties.push(extendedGeoService);\r\n }\r\n });\r\n return hasGeoServiceProperties;\r\n }\r\n\r\n handleLayer() {\r\n const layersIds = this.map.layers.map((layer) => layer.id);\r\n let potententialLayerToAdd = this.potententialLayerToAdd$.getValue();\r\n if (!potententialLayerToAdd) {\r\n this.computeFeatureGeoServiceStatus();\r\n }\r\n potententialLayerToAdd = this.potententialLayerToAdd$.getValue();\r\n\r\n if (layersIds.includes(potententialLayerToAdd.id)) {\r\n const layerToRemove = this.map.getLayerById(potententialLayerToAdd.id);\r\n if (layerToRemove) {\r\n this.map.removeLayer(layerToRemove);\r\n this.potententialLayerisAdded$.next(false);\r\n }\r\n } else {\r\n this.layerService\r\n .createAsyncLayer(potententialLayerToAdd.sourceOptions)\r\n .subscribe((layer) => {\r\n this.map.layersAddedByClick$.next([layer]);\r\n this.map.addLayer(layer);\r\n this.potententialLayerisAdded$.next(true);\r\n });\r\n }\r\n }\r\n\r\n private computeFeatureGeoServiceStatus() {\r\n const resultSelected = this.resultSelected$.getValue();\r\n if (!resultSelected) {\r\n return;\r\n }\r\n const geoServices = this.getGeoServices();\r\n if (geoServices.length) {\r\n const firstGeoService = geoServices[0];\r\n const so = this.computeSourceOptionsFromProperties(\r\n resultSelected.data.properties,\r\n firstGeoService\r\n );\r\n const soId = generateIdFromSourceOptions(so.sourceOptions);\r\n this.potententialLayerToAdd$.next({ id: soId, sourceOptions: so });\r\n const layersIds = this.map.layers.map((l) => l.id);\r\n this.potententialLayerisAdded$.next(\r\n layersIds.includes(soId) ? true : false\r\n );\r\n }\r\n }\r\n\r\n private computeSourceOptionsFromProperties(\r\n properties: {},\r\n geoService: ExtendedGeoServiceDefinition\r\n ) {\r\n const keys = Object.keys(properties);\r\n const propertiesForLayerName = keys.filter((p) =>\r\n geoService.propertiesForLayerName.includes(p)\r\n );\r\n // providing the the first matching regex;\r\n let layerName = properties[propertiesForLayerName[0]];\r\n const url = properties[geoService.propertyForUrl];\r\n let appliedLayerName = layerName;\r\n let arcgisLayerName = undefined;\r\n if (\r\n ['arcgisrest', 'imagearcgisrest', 'tilearcgisrest'].includes(\r\n geoService.type\r\n )\r\n ) {\r\n arcgisLayerName = layerName;\r\n appliedLayerName = undefined;\r\n }\r\n const so = ObjectUtils.removeUndefined({\r\n sourceOptions: {\r\n type: geoService.type || 'wms',\r\n url,\r\n optionsFromCapabilities: true,\r\n optionsFromApi: true,\r\n params: {\r\n LAYERS: appliedLayerName,\r\n LAYER: arcgisLayerName\r\n }\r\n }\r\n });\r\n return so;\r\n }\r\n\r\n zoomTo() {\r\n const localOlFeature = this.format.readFeature(\r\n this.resultSelected$.getValue().data,\r\n {\r\n dataProjection: this.resultSelected$.getValue().data.projection,\r\n featureProjection: this.map.projection\r\n }\r\n );\r\n moveToOlFeatures(\r\n this.map.viewController,\r\n [localOlFeature],\r\n FeatureMotion.Zoom\r\n );\r\n }\r\n\r\n swipe(action: string) {\r\n if (action === ToastPanelComponent.SWIPE_ACTION.RIGHT) {\r\n this.previousResult();\r\n } else if (action === ToastPanelComponent.SWIPE_ACTION.LEFT) {\r\n this.nextResult();\r\n } else if (action === ToastPanelComponent.SWIPE_ACTION.UP) {\r\n this.opened = true;\r\n } else if (action === ToastPanelComponent.SWIPE_ACTION.DOWN) {\r\n this.opened = false;\r\n }\r\n }\r\n\r\n onToggleClick(e: MouseEvent) {\r\n if ((e.target as any).className !== 'igo-panel-title') {\r\n return;\r\n }\r\n this.opened = !this.opened;\r\n }\r\n\r\n /**\r\n * Invoke the action handler\r\n * @internal\r\n */\r\n onTriggerAction(action: Action) {\r\n const args = action.args || [];\r\n action.handler(...args);\r\n }\r\n\r\n setHtmlDisplay(value: boolean) {\r\n if (value === true) {\r\n this.isHtmlDisplay = true;\r\n this.windowHtmlDisplayEvent.emit(true);\r\n } else {\r\n this.isHtmlDisplay = false;\r\n this.windowHtmlDisplayEvent.emit(false);\r\n }\r\n }\r\n\r\n isHtmlAndDesktop(): boolean {\r\n if (this.isHtmlDisplay && this.isDesktop()) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n setResizeWindowIcon() {\r\n if (this.fullExtent) {\r\n this.iconResizeWindows = 'arrow-collapse';\r\n // this.iconResizeWindows = 'vector-arrange-below';\r\n } else {\r\n this.iconResizeWindows = 'arrow-expand';\r\n // this.iconResizeWindows = 'crop-square';\r\n }\r\n }\r\n\r\n resizeWindows() {\r\n this.storageService.set('fullExtent', !this.fullExtent);\r\n\r\n if (this.fullExtent) {\r\n this.reduceWindow();\r\n } else {\r\n this.enlargeWindows();\r\n }\r\n }\r\n\r\n reduceWindow() {\r\n this.fullExtent = false;\r\n this.setResizeWindowIcon();\r\n }\r\n\r\n enlargeWindows() {\r\n this.fullExtent = true;\r\n this.setResizeWindowIcon();\r\n }\r\n}\r\n","import {\r\n AnimationTriggerMetadata,\r\n animate,\r\n state,\r\n style,\r\n transition,\r\n trigger\r\n} from '@angular/animations';\r\n\r\nexport function showContent(\r\n duration = '50ms',\r\n delay = '280ms',\r\n easing = 'ease-in-out'\r\n): AnimationTriggerMetadata {\r\n return trigger('showContent', [\r\n state(\r\n 'true',\r\n style({\r\n opacity: 1,\r\n display: 'block'\r\n })\r\n ),\r\n state(\r\n 'false',\r\n style({\r\n opacity: 0,\r\n display: 'none'\r\n })\r\n ),\r\n transition('false => true', animate(`${duration} ${delay} ${easing}`)),\r\n transition('true => false', animate('0ms'))\r\n ]);\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n EventEmitter,\r\n HostBinding,\r\n Input,\r\n Output\r\n} from '@angular/core';\r\n\r\nimport { showContent } from './toast-panel-for-expansion.animations';\r\n\r\n@Component({\r\n selector: 'app-toast-panel-for-expansion',\r\n templateUrl: './toast-panel-for-expansion.component.html',\r\n styleUrls: ['./toast-panel-for-expansion.component.scss'],\r\n animations: [showContent()],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class ToastPanelForExpansionComponent {\r\n @Input()\r\n set opened(value: boolean) {\r\n if (value === this._opened) {\r\n return;\r\n }\r\n this._opened = value;\r\n this.openedChange.emit(this._opened);\r\n }\r\n get opened(): boolean {\r\n return this._opened;\r\n }\r\n private _opened: boolean;\r\n\r\n @Input() title: string;\r\n\r\n @Input() withHeader: boolean;\r\n\r\n @Output() openedChange = new EventEmitter();\r\n\r\n @HostBinding('class.toast-panel-for-expansion-opened')\r\n get hasOpenedClass() {\r\n return this.opened;\r\n }\r\n\r\n @HostBinding('style.visibility')\r\n get displayStyle() {\r\n return this.withHeader || this.opened ? 'visible' : 'hidden';\r\n }\r\n\r\n constructor() {}\r\n}\r\n","\n
\n \n
\n
\n","\n
\n \n \n \n\n \n \n \n \n\n \n \n\n \n \n \n
\n \n\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n Output\r\n} from '@angular/core';\r\n\r\nimport { Tool, Toolbox } from '@igo2/common';\r\nimport { ConfigService } from '@igo2/core';\r\nimport { IgoMap } from '@igo2/geo';\r\nimport { CatalogState, ToolState } from '@igo2/integration';\r\n\r\nimport { BehaviorSubject, Subscription } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'app-sidenav',\r\n templateUrl: './sidenav.component.html',\r\n styleUrls: ['./sidenav.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class SidenavComponent implements OnInit, OnDestroy {\r\n title$: BehaviorSubject = new BehaviorSubject(undefined);\r\n\r\n private activeTool$$: Subscription;\r\n\r\n @Input()\r\n get map(): IgoMap {\r\n return this._map;\r\n }\r\n set map(value: IgoMap) {\r\n this._map = value;\r\n }\r\n private _map: IgoMap;\r\n\r\n @Input()\r\n get opened(): boolean {\r\n return this._opened;\r\n }\r\n set opened(value: boolean) {\r\n if (value === this._opened) {\r\n return;\r\n }\r\n\r\n this._opened = value;\r\n this.openedChange.emit(this._opened);\r\n }\r\n private _opened: boolean;\r\n\r\n @Output() openedChange = new EventEmitter();\r\n @Output() toolChange = new EventEmitter();\r\n\r\n get toolbox(): Toolbox {\r\n return this.toolState.toolbox;\r\n }\r\n\r\n constructor(\r\n private toolState: ToolState,\r\n private configService: ConfigService,\r\n private catalogState: CatalogState\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.activeTool$$ = this.toolbox.activeTool$.subscribe((tool: Tool) => {\r\n const sidenavTitle = this.configService.getConfig('sidenavTitle', 'IGO');\r\n if (tool) {\r\n if (tool.name === 'catalogBrowser') {\r\n for (const catalog of this.catalogState.catalogStore.all()) {\r\n if (\r\n this.catalogState.catalogStore.state.get(catalog).selected ===\r\n true\r\n ) {\r\n this.title$.next(catalog.title);\r\n }\r\n }\r\n } else if (\r\n tool.name === 'activeTimeFilter' ||\r\n tool.name === 'activeOgcFilter'\r\n ) {\r\n for (const layer of this.map.layers) {\r\n if (layer.options.active === true) {\r\n this.title$.next(layer.title);\r\n }\r\n }\r\n } else {\r\n this.title$.next(tool.title);\r\n }\r\n } else {\r\n this.title$.next(sidenavTitle);\r\n }\r\n this.toolChange.emit(tool);\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n this.activeTool$$.unsubscribe();\r\n }\r\n\r\n onPreviousButtonClick() {\r\n this.toolbox.activatePreviousTool();\r\n }\r\n\r\n onUnselectButtonClick() {\r\n this.toolbox.deactivateTool();\r\n }\r\n}\r\n","\n \n \n {{ element.text }}\n \n \n \n \n\n \n {{ element.text }}\n \n \n \n \n \n\n","import { AfterViewInit, Component, OnDestroy } from '@angular/core';\r\n\r\nimport { Context, ContextService } from '@igo2/context';\r\nimport { ConfigService, MediaService } from '@igo2/core';\r\n\r\nimport { Subscription } from 'rxjs';\r\n\r\nimport { MapOverlay } from './map-overlay.interface';\r\n\r\n@Component({\r\n selector: 'app-map-overlay',\r\n templateUrl: './map-overlay.component.html',\r\n styleUrls: ['./map-overlay.component.scss']\r\n})\r\nexport class MapOverlayComponent implements AfterViewInit, OnDestroy {\r\n public mapOverlay: MapOverlay[] = [];\r\n private context$$: Subscription;\r\n private media$$: Subscription;\r\n private context: Context;\r\n\r\n constructor(\r\n private contextService: ContextService,\r\n private mediaService: MediaService,\r\n private configService: ConfigService\r\n ) {}\r\n\r\n ngAfterViewInit() {\r\n this.context$$ = this.contextService.context$.subscribe((context) => {\r\n this.handleContextChange(context);\r\n this.context = context;\r\n });\r\n this.media$$ = this.mediaService.media$.subscribe((media) =>\r\n this.handleContextChange(this.context)\r\n );\r\n }\r\n\r\n ngOnDestroy() {\r\n this.context$$.unsubscribe();\r\n this.media$$.unsubscribe();\r\n }\r\n\r\n private handleContextChange(context: Context) {\r\n let mapOverlay: MapOverlay[] = [];\r\n if (context !== undefined) {\r\n this.mapOverlay = [];\r\n\r\n if (context['mapOverlay']) {\r\n mapOverlay = context['mapOverlay'];\r\n } else {\r\n mapOverlay = this.configService.getConfig('mapOverlay', []);\r\n }\r\n for (const overlay of mapOverlay) {\r\n // If no media define use default to desktop, display only if current media is on context definition\r\n if (\r\n (!overlay.media && this.mediaService.getMedia() === 'desktop') ||\r\n (overlay.media &&\r\n overlay.media.includes(this.mediaService.getMedia()))\r\n ) {\r\n this.mapOverlay.push(overlay);\r\n }\r\n }\r\n }\r\n }\r\n}\r\n","\r\n \r\n \r\n \r\n\r\n
\r\n \r\n \r\n\r\n \r\n \r\n
\r\n\r\n \r\n \r\n\r\n 1 }\"\r\n [@mapStateX]=\"sidenavOpened ? 'right' : 'left'\"\r\n (@mapStateX.start)=\"updateMapBrowserClass()\"\r\n [@mapStateY]=\"getControlsOffsetY()\"\r\n (@mapStateY.start)=\"updateMapBrowserClass()\"\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n
\r\n
\r\n\r\n 0 &&\r\n !expansionPanelExpanded\r\n ? 'true'\r\n : 'false'\r\n \"\r\n>\r\n \r\n \r\n \r\n\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n 1\r\n ? 'magnify-scan'\r\n : 'magnify-plus-outline'\r\n }}\"\r\n >\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n {{ workspaceNotAvailableMessage | translate }}\r\n \r\n\r\n\r\n\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n \r\n \r\n\r\n\r\n\r\n\r\n\r\n\r\n \r\n \r\n\r\n","import { HttpClient, HttpParams } from '@angular/common/http';\r\nimport {\r\n ChangeDetectorRef,\r\n Component,\r\n ElementRef,\r\n OnDestroy,\r\n OnInit,\r\n ViewChild\r\n} from '@angular/core';\r\nimport {\r\n MatDialog,\r\n MatDialogConfig,\r\n MatDialogRef\r\n} from '@angular/material/dialog';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { ActivatedRoute, Params } from '@angular/router';\r\n\r\nimport { AuthService } from '@igo2/auth';\r\nimport {\r\n ActionStore,\r\n ActionbarMode,\r\n EntityRecord,\r\n EntityStore,\r\n EntityTablePaginatorOptions,\r\n Tool, // getEntityTitle,\r\n Toolbox,\r\n Widget,\r\n Workspace,\r\n WorkspaceStore\r\n} from '@igo2/common';\r\nimport { DetailedContext } from '@igo2/context';\r\nimport {\r\n ConfigService,\r\n LanguageService,\r\n Media,\r\n MediaOrientation,\r\n MediaService,\r\n MessageService,\r\n StorageService\r\n} from '@igo2/core';\r\nimport {\r\n CapabilitiesService,\r\n ConfigFileToGeoDBService,\r\n DataSourceService,\r\n EditionWorkspace,\r\n EditionWorkspaceService,\r\n FEATURE,\r\n Feature,\r\n FeatureMotion,\r\n FeatureWorkspace,\r\n GoogleLinks,\r\n IgoMap,\r\n ImageLayer,\r\n ImportService,\r\n LayerService,\r\n MapExtent,\r\n QuerySearchSource,\r\n QueryService,\r\n Research,\r\n SearchResult,\r\n SearchSource,\r\n SearchSourceService,\r\n VectorLayer,\r\n WfsWorkspace,\r\n addStopToStore,\r\n computeOlFeaturesExtent,\r\n featureFromOl,\r\n featureToSearchResult,\r\n generateIdFromSourceOptions,\r\n handleFileImportError,\r\n handleFileImportSuccess,\r\n moveToOlFeatures,\r\n sourceCanReverseSearch,\r\n sourceCanSearch\r\n} from '@igo2/geo';\r\nimport {\r\n ContextState,\r\n DirectionState,\r\n MapState,\r\n QueryState,\r\n SearchState,\r\n ToolState,\r\n WorkspaceState\r\n} from '@igo2/integration';\r\nimport { ObjectUtils } from '@igo2/utils';\r\n\r\nimport olFeature from 'ol/Feature';\r\nimport MapBrowserEvent from 'ol/MapBrowserEvent';\r\nimport olFormatGeoJSON from 'ol/format/GeoJSON';\r\nimport type { default as OlGeometry } from 'ol/geom/Geometry';\r\nimport * as olProj from 'ol/proj';\r\n\r\nimport { BehaviorSubject, Subscription, combineLatest, of } from 'rxjs';\r\nimport { debounceTime, first, pairwise, skipWhile, take } from 'rxjs/operators';\r\nimport { getAppVersion } from 'src/app/app.utils';\r\nimport { EnvironmentOptions } from 'src/environments/environnement.interface';\r\n\r\nimport {\r\n controlSlideX,\r\n controlSlideY,\r\n controlsAnimations,\r\n expansionPanelAnimation,\r\n mapSlideX,\r\n mapSlideY,\r\n toastPanelAnimation\r\n} from './portal.animation';\r\nimport { WelcomeWindowComponent } from './welcome-window/welcome-window.component';\r\nimport { WelcomeWindowService } from './welcome-window/welcome-window.service';\r\n\r\n@Component({\r\n selector: 'app-portal',\r\n templateUrl: './portal.component.html',\r\n styleUrls: ['./portal.component.scss'],\r\n animations: [\r\n expansionPanelAnimation(),\r\n toastPanelAnimation(),\r\n controlsAnimations(),\r\n controlSlideX(),\r\n controlSlideY(),\r\n mapSlideX(),\r\n mapSlideY()\r\n ]\r\n})\r\nexport class PortalComponent implements OnInit, OnDestroy {\r\n public appConfig: EnvironmentOptions;\r\n public toastPanelOffsetX$: BehaviorSubject = new BehaviorSubject(\r\n undefined\r\n );\r\n public sidenavOpened$: BehaviorSubject = new BehaviorSubject(false);\r\n public minSearchTermLength = 2;\r\n public hasGeolocateButton = true;\r\n public showMenuButton = true;\r\n public showSearchBar = true;\r\n public workspaceNotAvailableMessage: string = 'workspace.disabled.resolution';\r\n public workspacePaginator: MatPaginator;\r\n public workspaceEntitySortChange$: BehaviorSubject =\r\n new BehaviorSubject(false);\r\n public workspaceSwitchDisabled = false;\r\n public paginatorOptions: EntityTablePaginatorOptions = {\r\n pageSize: 50, // Number of items to display on a page.\r\n pageSizeOptions: [1, 5, 10, 20, 50, 100, 500] // The set of provided page size options to display to the user.\r\n };\r\n public workspaceMenuClass = 'workspace-menu';\r\n\r\n public fullExtent: boolean;\r\n private workspaceMaximize$$: Subscription[] = [];\r\n\r\n public matDialogRef$ = new BehaviorSubject>(undefined);\r\n public searchBarTerm = '';\r\n public onSettingsChange$ = new BehaviorSubject(undefined);\r\n public termDefinedInUrl = false;\r\n public termSplitter = '|';\r\n public termDefinedInUrlTriggered = false;\r\n private addedLayers$$: Subscription[] = [];\r\n\r\n public contextMenuStore = new ActionStore([]);\r\n private contextMenuCoord: [number, number];\r\n\r\n private contextLoaded = false;\r\n\r\n private context$$: Subscription;\r\n private openSidenav$$: Subscription;\r\n private sidenavMediaAndOrientation$$: Subscription;\r\n\r\n public igoSearchPointerSummaryEnabled: boolean;\r\n public igoReverseSearchCoordsFormatEnabled: boolean;\r\n\r\n public toastPanelForExpansionOpened = true;\r\n private activeWidget$$: Subscription;\r\n public showToastPanelForExpansionToggle = false;\r\n public selectedWorkspace$: BehaviorSubject = new BehaviorSubject(\r\n undefined\r\n );\r\n private routeParams: Params;\r\n public toastPanelHtmlDisplay = false;\r\n\r\n public homeExtent: MapExtent;\r\n public homeCenter: [number, number];\r\n public homeZoom: number;\r\n @ViewChild('mapBrowser', { read: ElementRef, static: true })\r\n mapBrowser: ElementRef;\r\n @ViewChild('searchBar', { read: ElementRef, static: true })\r\n searchBar: ElementRef;\r\n\r\n get map(): IgoMap {\r\n return this.mapState.map;\r\n }\r\n\r\n get sidenavOpened(): boolean {\r\n return this.sidenavOpened$.value;\r\n }\r\n\r\n set sidenavOpened(value: boolean) {\r\n this.sidenavOpened$.next(value);\r\n }\r\n\r\n get toastPanelOpened(): boolean {\r\n return this._toastPanelOpened;\r\n }\r\n set toastPanelOpened(value: boolean) {\r\n if (value !== !this._toastPanelOpened) {\r\n return;\r\n }\r\n this._toastPanelOpened = value;\r\n this.cdRef.detectChanges();\r\n }\r\n private _toastPanelOpened: boolean;\r\n\r\n isMobile(): boolean {\r\n return this.mediaService.getMedia() === Media.Mobile;\r\n }\r\n\r\n isTablet(): boolean {\r\n return this.mediaService.getMedia() === Media.Tablet;\r\n }\r\n\r\n isLandscape(): boolean {\r\n return this.mediaService.getOrientation() === MediaOrientation.Landscape;\r\n }\r\n\r\n isPortrait(): boolean {\r\n return this.mediaService.getOrientation() === MediaOrientation.Portrait;\r\n }\r\n\r\n get backdropShown(): boolean {\r\n return (\r\n (this.isMobile() || (this.isTablet() && this.isPortrait())) &&\r\n this.sidenavOpened\r\n );\r\n }\r\n\r\n get expansionPanelExpanded(): boolean {\r\n return this.workspaceState.workspacePanelExpanded;\r\n }\r\n set expansionPanelExpanded(value: boolean) {\r\n this.workspaceState.workspacePanelExpanded = value;\r\n if (value === true) {\r\n this.map.viewController.setPadding({ bottom: 280 });\r\n } else {\r\n this.map.viewController.setPadding({ bottom: 0 });\r\n }\r\n }\r\n\r\n get contextUri(): string {\r\n return this.contextState.context$?.getValue()\r\n ? this.contextState.context$.getValue().uri\r\n : undefined;\r\n }\r\n\r\n get expansionPanelBackdropShown(): boolean {\r\n return this.expansionPanelExpanded && this.toastPanelForExpansionOpened;\r\n }\r\n\r\n get actionbarMode(): ActionbarMode {\r\n return ActionbarMode.Overlay;\r\n }\r\n\r\n get actionbarWithTitle(): boolean {\r\n return this.actionbarMode === ActionbarMode.Overlay;\r\n }\r\n\r\n get searchStore(): EntityStore {\r\n return this.searchState.store;\r\n }\r\n\r\n get searchResultsGeometryEnabled(): boolean {\r\n return this.searchState.searchResultsGeometryEnabled$.value;\r\n }\r\n\r\n get queryStore(): EntityStore {\r\n return this.queryState.store;\r\n }\r\n\r\n get toolbox(): Toolbox {\r\n return this.toolState.toolbox;\r\n }\r\n\r\n get toastPanelContent(): string {\r\n let content;\r\n if (this.workspace !== undefined && this.workspace.hasWidget) {\r\n content = 'workspace';\r\n } /*else if (this.searchResult !== undefined) {\r\n content = this.searchResult.meta.dataType.toLowerCase();\r\n }*/\r\n return content;\r\n }\r\n\r\n // get toastPanelTitle(): string {\r\n // let title;\r\n // if (\r\n // this.toastPanelContent !== 'workspace' &&\r\n // this.searchResult !== undefined\r\n // ) {\r\n // title = getEntityTitle(this.searchResult);\r\n // }\r\n // return title;\r\n // }\r\n\r\n get workspaceStore(): WorkspaceStore {\r\n return this.workspaceState.store;\r\n }\r\n\r\n get workspace(): Workspace {\r\n return this.workspaceState.workspace$.value;\r\n }\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n public workspaceState: WorkspaceState,\r\n public authService: AuthService,\r\n public mediaService: MediaService,\r\n public layerService: LayerService,\r\n public dataSourceService: DataSourceService,\r\n public cdRef: ChangeDetectorRef,\r\n public capabilitiesService: CapabilitiesService,\r\n private contextState: ContextState,\r\n private mapState: MapState,\r\n private searchState: SearchState,\r\n public queryState: QueryState,\r\n private toolState: ToolState,\r\n private searchSourceService: SearchSourceService,\r\n private configService: ConfigService,\r\n private importService: ImportService,\r\n private http: HttpClient,\r\n private languageService: LanguageService,\r\n private messageService: MessageService,\r\n private welcomeWindowService: WelcomeWindowService,\r\n public dialogWindow: MatDialog,\r\n private queryService: QueryService,\r\n private storageService: StorageService,\r\n private editionWorkspaceService: EditionWorkspaceService,\r\n private directionState: DirectionState,\r\n private configFileToGeoDBService: ConfigFileToGeoDBService\r\n ) {\r\n this.handleAppConfigs();\r\n this.storageService.set('version', getAppVersion(this.configService));\r\n this.fullExtent = this.storageService.get('fullExtent') as boolean;\r\n this._toastPanelOpened =\r\n (this.storageService.get('toastOpened') as boolean) !== false;\r\n this.igoSearchPointerSummaryEnabled = this.configService.getConfig(\r\n 'hasSearchPointerSummary'\r\n );\r\n if (this.igoSearchPointerSummaryEnabled === undefined) {\r\n this.igoSearchPointerSummaryEnabled =\r\n (this.storageService.get('searchPointerSummaryEnabled') as boolean) ||\r\n false;\r\n }\r\n\r\n this.igoReverseSearchCoordsFormatEnabled =\r\n (this.storageService.get(\r\n 'reverseSearchCoordsFormatEnabled'\r\n ) as boolean) || false;\r\n }\r\n\r\n ngOnInit() {\r\n window['IGO'] = this;\r\n this.searchState.searchTermSplitter$.next(this.termSplitter);\r\n\r\n this.initWelcomeWindow();\r\n\r\n this.route.queryParams.subscribe((params) => {\r\n this.readLanguageParam(params);\r\n });\r\n\r\n this.authService.authenticate$.subscribe((authenticated) => {\r\n this.contextLoaded = false;\r\n });\r\n\r\n this.context$$ = this.contextState.context$.subscribe(\r\n (context: DetailedContext) => this.onChangeContext(context)\r\n );\r\n\r\n const contextActions = [\r\n {\r\n id: 'coordinates',\r\n title: 'coordinates',\r\n handler: () => this.searchCoordinate(this.contextMenuCoord)\r\n },\r\n {\r\n id: 'googleMaps',\r\n title: 'googleMap',\r\n handler: () => this.openGoogleMaps(this.contextMenuCoord)\r\n },\r\n {\r\n id: 'googleStreetView',\r\n title: 'googleStreetView',\r\n handler: () => this.openGoogleStreetView(this.contextMenuCoord)\r\n }\r\n ];\r\n\r\n this.contextMenuStore.load(contextActions);\r\n\r\n this.queryStore.count$\r\n .pipe(pairwise())\r\n .subscribe(([prevCnt, currentCnt]) => {\r\n this.map.viewController.padding[2] = currentCnt ? 280 : 0;\r\n // on mobile. Close the toast if workspace is opened, on new query\r\n if (\r\n prevCnt === 0 &&\r\n currentCnt !== prevCnt &&\r\n this.isMobile() &&\r\n this.appConfig.hasExpansionPanel &&\r\n this.expansionPanelExpanded &&\r\n this.toastPanelOpened\r\n ) {\r\n this.toastPanelOpened = false;\r\n }\r\n });\r\n this.map.ol.once('rendercomplete', () => {\r\n this.readQueryParams();\r\n if (this.appConfig.geolocate?.activateDefault !== undefined) {\r\n this.map.geolocationController.tracking =\r\n this.appConfig.geolocate?.activateDefault;\r\n }\r\n });\r\n\r\n this.onSettingsChange$.subscribe(() => {\r\n this.searchState.setSearchSettingsChange();\r\n });\r\n\r\n this.searchState.selectedResult$.subscribe((result) => {\r\n if (result && this.isMobile()) {\r\n this.closeSidenav();\r\n }\r\n });\r\n\r\n this.workspaceState.workspaceEnabled$.next(\r\n this.appConfig.hasExpansionPanel\r\n );\r\n this.workspaceState.store.empty$.subscribe((workspaceEmpty) => {\r\n if (!this.appConfig.hasExpansionPanel) {\r\n return;\r\n }\r\n this.workspaceState.workspaceEnabled$.next(workspaceEmpty ? false : true);\r\n if (workspaceEmpty) {\r\n this.expansionPanelExpanded = false;\r\n }\r\n this.updateMapBrowserClass();\r\n });\r\n\r\n this.workspaceMaximize$$.push(\r\n this.workspaceState.workspaceMaximize$.subscribe((workspaceMaximize) => {\r\n this.updateMapBrowserClass();\r\n })\r\n );\r\n\r\n this.workspaceState.workspace$.subscribe(\r\n (activeWks: WfsWorkspace | FeatureWorkspace | EditionWorkspace) => {\r\n if (activeWks) {\r\n this.selectedWorkspace$.next(activeWks);\r\n this.expansionPanelExpanded = true;\r\n\r\n if (\r\n activeWks.layer.options.workspace?.pageSize &&\r\n activeWks.layer.options.workspace?.pageSizeOptions\r\n ) {\r\n this.paginatorOptions = {\r\n pageSize: activeWks.layer.options.workspace?.pageSize,\r\n pageSizeOptions:\r\n activeWks.layer.options.workspace?.pageSizeOptions\r\n };\r\n } else {\r\n this.paginatorOptions = {\r\n pageSize: 50,\r\n pageSizeOptions: [1, 5, 10, 20, 50, 100, 500]\r\n };\r\n }\r\n } else {\r\n this.expansionPanelExpanded = false;\r\n }\r\n }\r\n );\r\n\r\n this.activeWidget$$ = this.workspaceState.activeWorkspaceWidget$.subscribe(\r\n (widget: Widget) => {\r\n if (widget !== undefined) {\r\n this.openToastPanelForExpansion();\r\n this.showToastPanelForExpansionToggle = true;\r\n } else {\r\n this.closeToastPanelForExpansion();\r\n this.showToastPanelForExpansionToggle = false;\r\n }\r\n }\r\n );\r\n\r\n this.openSidenav$$ = this.toolState.openSidenav$.subscribe(\r\n (openSidenav: boolean) => {\r\n if (openSidenav) {\r\n this.openSidenav();\r\n this.toolState.openSidenav$.next(false);\r\n }\r\n }\r\n );\r\n\r\n this.sidenavMediaAndOrientation$$ = combineLatest([\r\n this.sidenavOpened$,\r\n this.mediaService.media$,\r\n this.mediaService.orientation$\r\n ])\r\n .pipe(debounceTime(50))\r\n .subscribe((sidenavMediaAndOrientation: [boolean, string, string]) => {\r\n this.computeToastPanelOffsetX();\r\n });\r\n\r\n if (this.appConfig.importExport?.configFileToGeoDBService) {\r\n this.configFileToGeoDBService.load(\r\n this.appConfig.importExport.configFileToGeoDBService\r\n );\r\n }\r\n }\r\n\r\n private handleAppConfigs() {\r\n this.appConfig = this.configService.getConfigs();\r\n\r\n this.hasGeolocateButton = this.configService.getConfig(\r\n 'geolocate.button.visible',\r\n true\r\n );\r\n this.showMenuButton = this.configService.getConfig(\r\n 'menu.button.visible',\r\n true\r\n );\r\n\r\n this.showSearchBar = this.configService.getConfig(\r\n 'searchBar.showSearchBar',\r\n true\r\n );\r\n this.igoSearchPointerSummaryEnabled =\r\n this.appConfig.hasSearchPointerSummary;\r\n }\r\n\r\n setToastPanelHtmlDisplay(value) {\r\n this.toastPanelHtmlDisplay = value;\r\n this.computeToastPanelOffsetX();\r\n }\r\n\r\n computeToastPanelOffsetX() {\r\n if (this.isMobile() || !this.isLandscape()) {\r\n Promise.resolve().then(() => this.toastPanelOffsetX$.next(undefined));\r\n } else {\r\n Promise.resolve().then(() =>\r\n this.toastPanelOffsetX$.next(this.getToastPanelExtent())\r\n );\r\n }\r\n }\r\n\r\n workspaceVisibility(): boolean {\r\n const wks = this.selectedWorkspace$.value as\r\n | WfsWorkspace\r\n | FeatureWorkspace\r\n | EditionWorkspace;\r\n if (wks.inResolutionRange$.value) {\r\n if (wks.entityStore.empty$.value && !wks.layer.visible) {\r\n this.workspaceNotAvailableMessage = 'workspace.disabled.visible';\r\n } else {\r\n this.workspaceNotAvailableMessage = '';\r\n }\r\n } else {\r\n this.workspaceNotAvailableMessage = 'workspace.disabled.resolution';\r\n }\r\n return wks.inResolutionRange$.value;\r\n }\r\n\r\n isEditionWorkspace(workspace) {\r\n if (workspace instanceof EditionWorkspace) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n addFeature(workspace: EditionWorkspace) {\r\n let feature = {\r\n type: 'Feature',\r\n properties: {}\r\n };\r\n feature.properties = this.createFeatureProperties(workspace.layer);\r\n this.workspaceState.rowsInMapExtentCheckCondition$.next(false);\r\n workspace.editFeature(feature, workspace);\r\n }\r\n\r\n createFeatureProperties(layer: ImageLayer | VectorLayer) {\r\n let properties = {};\r\n layer.options.sourceOptions.sourceFields.forEach((field) => {\r\n if (!field.primary && field.visible) {\r\n properties[field.name] = '';\r\n }\r\n });\r\n return properties;\r\n }\r\n\r\n paginatorChange(matPaginator: MatPaginator) {\r\n this.workspacePaginator = matPaginator;\r\n }\r\n\r\n entitySortChange() {\r\n this.workspaceEntitySortChange$.next(true);\r\n }\r\n\r\n entitySelectChange(result: { added: Feature[] }) {\r\n const baseQuerySearchSource = this.getQuerySearchSource();\r\n const querySearchSourceArray: QuerySearchSource[] = [];\r\n\r\n if (\r\n this.selectedWorkspace$.value instanceof WfsWorkspace ||\r\n this.selectedWorkspace$.value instanceof FeatureWorkspace\r\n ) {\r\n if (!this.selectedWorkspace$.value.getLayerWksOptionTabQuery()) {\r\n return;\r\n }\r\n }\r\n if (result && result.added) {\r\n const results = result.added.map((res) => {\r\n if (\r\n res &&\r\n res.ol &&\r\n res.ol.getProperties()._featureStore.layer &&\r\n res.ol.getProperties()._featureStore.layer.visible\r\n ) {\r\n const ol = res.ol as olFeature;\r\n const featureStoreLayer = res.ol.getProperties()._featureStore.layer;\r\n const feature = featureFromOl(\r\n ol,\r\n featureStoreLayer.map.projection,\r\n featureStoreLayer.ol\r\n );\r\n\r\n feature.meta.alias =\r\n this.queryService.getAllowedFieldsAndAlias(featureStoreLayer);\r\n feature.meta.title =\r\n this.queryService.getQueryTitle(feature, featureStoreLayer) ||\r\n feature.meta.title;\r\n let querySearchSource = querySearchSourceArray.find(\r\n (s) => s.title === feature.meta.sourceTitle\r\n );\r\n if (!querySearchSource) {\r\n querySearchSource = new QuerySearchSource({\r\n title: feature.meta.sourceTitle\r\n });\r\n querySearchSourceArray.push(querySearchSource);\r\n }\r\n return featureToSearchResult(feature, querySearchSource);\r\n }\r\n });\r\n\r\n const research = {\r\n request: of(results),\r\n reverse: false,\r\n source: baseQuerySearchSource\r\n };\r\n research.request.subscribe((queryResults: SearchResult[]) => {\r\n this.queryStore.load(queryResults);\r\n });\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n this.context$$.unsubscribe();\r\n this.activeWidget$$.unsubscribe();\r\n this.openSidenav$$.unsubscribe();\r\n this.workspaceMaximize$$.map((f) => f.unsubscribe());\r\n this.sidenavMediaAndOrientation$$.unsubscribe();\r\n }\r\n\r\n /**\r\n * Cancel ongoing add layer, if any\r\n */\r\n private cancelOngoingAddLayer() {\r\n this.addedLayers$$.forEach((sub: Subscription) => sub.unsubscribe());\r\n this.addedLayers$$ = [];\r\n }\r\n\r\n onBackdropClick() {\r\n this.closeSidenav();\r\n }\r\n\r\n onToggleSidenavClick() {\r\n this.toggleSidenav();\r\n }\r\n\r\n onDeactivateWorkspaceWidget() {\r\n this.closeToastPanelForExpansion();\r\n }\r\n\r\n closeToastPanelForExpansion() {\r\n this.toastPanelForExpansionOpened = false;\r\n }\r\n\r\n openToastPanelForExpansion() {\r\n this.toastPanelForExpansionOpened = true;\r\n }\r\n\r\n onMapQuery(event: { features: Feature[]; event: MapBrowserEvent }) {\r\n const baseQuerySearchSource = this.getQuerySearchSource();\r\n const querySearchSourceArray: QuerySearchSource[] = [];\r\n const results = event.features.map((feature: Feature) => {\r\n let querySearchSource = querySearchSourceArray.find(\r\n (s) => s.title === feature.meta.sourceTitle\r\n );\r\n if (this.getFeatureIsSameActiveWks(feature)) {\r\n if (\r\n this.getWksActiveOpenInResolution() &&\r\n !(this.workspace as WfsWorkspace).getLayerWksOptionMapQuery?.()\r\n ) {\r\n return;\r\n }\r\n }\r\n if (!querySearchSource) {\r\n querySearchSource = new QuerySearchSource({\r\n title: feature.meta.sourceTitle\r\n });\r\n querySearchSourceArray.push(querySearchSource);\r\n }\r\n return featureToSearchResult(feature, querySearchSource);\r\n });\r\n const filteredResults = results.filter((x) => x !== undefined);\r\n const research = {\r\n request: of(filteredResults),\r\n reverse: false,\r\n source: baseQuerySearchSource\r\n };\r\n research.request.subscribe((queryResults: SearchResult[]) => {\r\n this.queryStore.load(queryResults);\r\n });\r\n }\r\n\r\n onSearchTermChange(term?: string) {\r\n if (this.routeParams?.search && term !== this.routeParams.search) {\r\n this.searchState.deactivateCustomFilterTermStrategy();\r\n }\r\n this.searchBarTerm = term;\r\n this.searchState.setSearchTerm(term);\r\n const termWithoutHashtag = term.replace(/(#[^\\s]*)/g, '').trim();\r\n if (termWithoutHashtag.length < 2) {\r\n this.onClearSearch();\r\n return;\r\n }\r\n this.onBeforeSearch();\r\n }\r\n\r\n onSearch(event: { research: Research; results: SearchResult[] }) {\r\n const results = event.results;\r\n\r\n const isReverseSearch = !sourceCanSearch(event.research.source);\r\n\r\n let enabledSources;\r\n if (isReverseSearch) {\r\n enabledSources = this.searchSourceService\r\n .getEnabledSources()\r\n .filter(sourceCanReverseSearch);\r\n } else {\r\n enabledSources = this.searchSourceService\r\n .getEnabledSources()\r\n .filter(sourceCanSearch);\r\n }\r\n\r\n const newResults = this.searchStore.entities$.value\r\n .filter(\r\n (result: SearchResult) =>\r\n result.source !== event.research.source &&\r\n enabledSources.includes(result.source)\r\n )\r\n .concat(results);\r\n this.searchStore.updateMany(newResults);\r\n }\r\n\r\n onSearchResultsGeometryStatusChange(value) {\r\n this.searchState.setSearchResultsGeometryStatus(value);\r\n }\r\n\r\n onReverseCoordsFormatStatusChange(value) {\r\n this.storageService.set('reverseSearchCoordsFormatEnabled', value);\r\n this.igoReverseSearchCoordsFormatEnabled = value;\r\n }\r\n\r\n onSearchSettingsChange() {\r\n this.onSettingsChange$.next(true);\r\n }\r\n\r\n private closeSidenav() {\r\n this.sidenavOpened = false;\r\n this.map.viewController.padding[3] = 0;\r\n }\r\n\r\n private openSidenav() {\r\n this.sidenavOpened = true;\r\n this.map.viewController.padding[3] = this.isMobile() ? 0 : 400;\r\n }\r\n\r\n private toggleSidenav() {\r\n this.sidenavOpened ? this.closeSidenav() : this.openSidenav();\r\n this.computeToastPanelOffsetX();\r\n }\r\n\r\n public toolChanged(tool: Tool) {\r\n if (tool && tool.name === 'searchResults' && this.searchBar) {\r\n this.searchBar.nativeElement.getElementsByTagName('input')[0].focus();\r\n }\r\n }\r\n\r\n private computeHomeExtentValues(context: DetailedContext) {\r\n if (context?.map?.view?.homeExtent) {\r\n this.homeExtent = context.map.view.homeExtent.extent;\r\n this.homeCenter = context.map.view.homeExtent.center;\r\n this.homeZoom = context.map.view.homeExtent.zoom;\r\n } else {\r\n this.homeExtent = undefined;\r\n this.homeCenter = undefined;\r\n this.homeZoom = undefined;\r\n }\r\n }\r\n\r\n private onChangeContext(context: DetailedContext) {\r\n this.cancelOngoingAddLayer();\r\n if (context === undefined) {\r\n return;\r\n }\r\n if (this.workspace && !this.workspace.entityStore.empty) {\r\n this.workspace.entityStore.clear();\r\n }\r\n if (!this.queryState.store.empty) {\r\n this.queryState.store.softClear();\r\n }\r\n\r\n this.computeHomeExtentValues(context);\r\n\r\n this.route.queryParams.pipe(debounceTime(250)).subscribe((qParams) => {\r\n if (!qParams['context'] || qParams['context'] === context.uri) {\r\n this.readLayersQueryParams(qParams);\r\n }\r\n });\r\n\r\n if (this.contextLoaded) {\r\n const contextManager = this.toolbox.getTool('contextManager');\r\n const contextManagerOptions = contextManager\r\n ? contextManager.options\r\n : {};\r\n let toolToOpen = contextManagerOptions.toolToOpenOnContextChange;\r\n\r\n if (!toolToOpen) {\r\n const toolOrderToOpen = ['mapTools', 'map', 'mapDetails', 'mapLegend'];\r\n for (const toolName of toolOrderToOpen) {\r\n if (this.toolbox.getTool(toolName)) {\r\n toolToOpen = toolName;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n if (toolToOpen) {\r\n this.toolbox.activateTool(toolToOpen);\r\n }\r\n }\r\n\r\n this.contextLoaded = true;\r\n }\r\n\r\n private onBeforeSearch() {\r\n if (\r\n !this.toolbox.activeTool$.value ||\r\n this.toolbox.activeTool$.value.name !== 'searchResults'\r\n ) {\r\n this.toolbox.activateTool('searchResults');\r\n }\r\n this.openSidenav();\r\n }\r\n\r\n toastOpenedChange(opened: boolean) {\r\n this.map.viewController.padding[2] = opened ? 280 : 0;\r\n this.handleExpansionAndToastOnMobile();\r\n this.toastPanelOpened = opened;\r\n }\r\n\r\n private handleExpansionAndToastOnMobile() {\r\n if (\r\n this.isMobile() &&\r\n this.appConfig.hasExpansionPanel &&\r\n this.expansionPanelExpanded &&\r\n this.toastPanelOpened\r\n ) {\r\n this.expansionPanelExpanded = false;\r\n }\r\n }\r\n\r\n public onClearSearch() {\r\n this.map.searchResultsOverlay.clear();\r\n this.searchStore.clear();\r\n this.searchState.setSelectedResult(undefined);\r\n this.searchState.deactivateCustomFilterTermStrategy();\r\n }\r\n\r\n private getQuerySearchSource(): SearchSource {\r\n return this.searchSourceService\r\n .getSources()\r\n .find(\r\n (searchSource: SearchSource) =>\r\n searchSource instanceof QuerySearchSource\r\n );\r\n }\r\n\r\n onContextMenuOpen(event: { x: number; y: number }) {\r\n this.contextMenuCoord = this.getClickCoordinate(event) as [number, number];\r\n }\r\n\r\n private getClickCoordinate(event: { x: number; y: number }) {\r\n const contextmenuPoint = event;\r\n const boundingMapBrowser =\r\n this.mapBrowser.nativeElement.getBoundingClientRect();\r\n contextmenuPoint.y =\r\n contextmenuPoint.y -\r\n boundingMapBrowser.top +\r\n (window.scrollY || window.pageYOffset);\r\n contextmenuPoint.x =\r\n contextmenuPoint.x -\r\n boundingMapBrowser.left +\r\n (window.scrollX || window.pageXOffset);\r\n const pixel = [contextmenuPoint.x, contextmenuPoint.y];\r\n\r\n const coord = this.map.ol.getCoordinateFromPixel(pixel);\r\n const proj = this.map.projection;\r\n return olProj.transform(coord, proj, 'EPSG:4326');\r\n }\r\n\r\n private openGoogleMaps(coord: [number, number]) {\r\n window.open(GoogleLinks.getGoogleMapsCoordLink(coord[0], coord[1]));\r\n }\r\n\r\n private openGoogleStreetView(coord: [number, number]) {\r\n window.open(GoogleLinks.getGoogleStreetViewLink(coord[0], coord[1]));\r\n }\r\n\r\n searchCoordinate(coord: [number, number]) {\r\n this.searchBarTerm = !this.igoReverseSearchCoordsFormatEnabled\r\n ? coord.map((c) => c.toFixed(6)).join(', ')\r\n : coord\r\n .reverse()\r\n .map((c) => c.toFixed(6))\r\n .join(', ');\r\n }\r\n\r\n updateMapBrowserClass() {\r\n const header = this.queryState.store.entities$.value.length > 0;\r\n if (\r\n this.appConfig.hasExpansionPanel &&\r\n this.workspaceState.workspaceEnabled$.value\r\n ) {\r\n this.mapBrowser.nativeElement.classList.add('has-expansion-panel');\r\n } else {\r\n this.mapBrowser.nativeElement.classList.remove('has-expansion-panel');\r\n }\r\n\r\n if (this.appConfig.hasExpansionPanel && this.expansionPanelExpanded) {\r\n if (this.workspaceState.workspaceMaximize$.value) {\r\n this.mapBrowser.nativeElement.classList.add(\r\n 'expansion-offset-maximized'\r\n );\r\n this.mapBrowser.nativeElement.classList.remove('expansion-offset');\r\n } else {\r\n this.mapBrowser.nativeElement.classList.add('expansion-offset');\r\n this.mapBrowser.nativeElement.classList.remove(\r\n 'expansion-offset-maximized'\r\n );\r\n }\r\n } else {\r\n if (this.workspaceState.workspaceMaximize$.value) {\r\n this.mapBrowser.nativeElement.classList.remove(\r\n 'expansion-offset-maximized'\r\n );\r\n } else {\r\n this.mapBrowser.nativeElement.classList.remove('expansion-offset');\r\n }\r\n }\r\n\r\n if (this.sidenavOpened) {\r\n this.mapBrowser.nativeElement.classList.add('sidenav-offset');\r\n } else {\r\n this.mapBrowser.nativeElement.classList.remove('sidenav-offset');\r\n }\r\n\r\n if (this.sidenavOpened && !this.isMobile()) {\r\n this.mapBrowser.nativeElement.classList.add('sidenav-offset-baselayers');\r\n } else {\r\n this.mapBrowser.nativeElement.classList.remove(\r\n 'sidenav-offset-baselayers'\r\n );\r\n }\r\n\r\n if (!this.toastPanelOpened && header && !this.expansionPanelExpanded) {\r\n this.mapBrowser.nativeElement.classList.add('toast-offset-scale-line');\r\n } else {\r\n this.mapBrowser.nativeElement.classList.remove('toast-offset-scale-line');\r\n }\r\n\r\n if (\r\n !this.toastPanelOpened &&\r\n header &&\r\n (this.isMobile() || this.isTablet() || this.sidenavOpened) &&\r\n !this.expansionPanelExpanded\r\n ) {\r\n this.mapBrowser.nativeElement.classList.add('toast-offset-attribution');\r\n } else {\r\n this.mapBrowser.nativeElement.classList.remove(\r\n 'toast-offset-attribution'\r\n );\r\n }\r\n }\r\n\r\n getToastPanelExtent() {\r\n if (!this.sidenavOpened) {\r\n if (this.toastPanelHtmlDisplay && this.mediaService.isDesktop()) {\r\n return 'htmlDisplay';\r\n }\r\n if (this.fullExtent) {\r\n return 'fullStandard';\r\n } else {\r\n return 'standard';\r\n }\r\n } else if (this.sidenavOpened) {\r\n if (this.toastPanelHtmlDisplay && this.mediaService.isDesktop()) {\r\n return 'htmlDisplayOffsetX';\r\n }\r\n if (this.fullExtent) {\r\n return 'fullOffsetX';\r\n } else {\r\n return 'standardOffsetX';\r\n }\r\n }\r\n }\r\n\r\n onPointerSummaryStatusChange(value) {\r\n this.storageService.set('searchPointerSummaryEnabled', value);\r\n this.igoSearchPointerSummaryEnabled = value;\r\n }\r\n\r\n getExpansionPanelStatus() {\r\n if (this.sidenavOpened === false) {\r\n if (this.expansionPanelExpanded === true) {\r\n return 'full';\r\n }\r\n return 'notTriggered';\r\n }\r\n if (this.sidenavOpened === true && this.isMobile() === false) {\r\n if (this.expansionPanelExpanded === true) {\r\n return 'reduced';\r\n }\r\n return 'reducedNotTriggered';\r\n }\r\n if (this.sidenavOpened === true && this.isMobile() === true) {\r\n if (this.expansionPanelExpanded === true) {\r\n return 'mobile';\r\n } else {\r\n return 'notVisible';\r\n }\r\n }\r\n }\r\n\r\n getToastPanelOffsetY() {\r\n let status = 'noExpansion';\r\n if (this.expansionPanelExpanded) {\r\n if (this.workspaceState.workspaceMaximize$.value) {\r\n if (this.toastPanelOpened) {\r\n status = 'expansionMaximizedAndToastOpened';\r\n } else {\r\n status = 'expansionMaximizedAndToastClosed';\r\n }\r\n } else {\r\n if (this.toastPanelOpened) {\r\n status = 'expansionAndToastOpened';\r\n } else {\r\n status = 'expansionAndToastClosed';\r\n }\r\n }\r\n } else {\r\n status = 'noExpansion';\r\n }\r\n return status;\r\n }\r\n\r\n getToastPanelStatus() {\r\n if (this.isMobile() === true && this.toastPanelOpened === false) {\r\n if (this.sidenavOpened === false) {\r\n if (this.expansionPanelExpanded === false) {\r\n if (this.queryState.store.entities$.value.length > 0) {\r\n return 'low';\r\n }\r\n }\r\n }\r\n }\r\n }\r\n getControlsOffsetY() {\r\n return this.expansionPanelExpanded\r\n ? this.workspaceState.workspaceMaximize$.value\r\n ? 'firstRowFromBottom-expanded-maximized'\r\n : 'firstRowFromBottom-expanded'\r\n : 'firstRowFromBottom';\r\n }\r\n\r\n getBaselayersSwitcherStatus() {\r\n let status;\r\n if (this.isMobile()) {\r\n if (this.workspaceState.workspaceEnabled$.value) {\r\n if (this.expansionPanelExpanded === false) {\r\n if (this.queryState.store.entities$.value.length === 0) {\r\n status = 'secondRowFromBottom';\r\n } else {\r\n status = 'thirdRowFromBottom';\r\n }\r\n } else {\r\n if (this.queryState.store.entities$.value.length === 0) {\r\n status = 'firstRowFromBottom-expanded';\r\n } else {\r\n status = 'secondRowFromBottom-expanded';\r\n }\r\n }\r\n } else {\r\n if (this.queryState.store.entities$.value.length === 0) {\r\n status = 'firstRowFromBottom';\r\n } else {\r\n status = 'secondRowFromBottom';\r\n }\r\n }\r\n } else {\r\n if (this.workspaceState.workspaceEnabled$.value) {\r\n if (this.expansionPanelExpanded) {\r\n if (this.workspaceState.workspaceMaximize$.value) {\r\n status = 'firstRowFromBottom-expanded-maximized';\r\n } else {\r\n status = 'firstRowFromBottom-expanded';\r\n }\r\n } else {\r\n status = 'secondRowFromBottom';\r\n }\r\n } else {\r\n status = 'firstRowFromBottom';\r\n }\r\n }\r\n return status;\r\n }\r\n\r\n private readQueryParams() {\r\n this.route.queryParams.subscribe((params) => {\r\n this.routeParams = params;\r\n this.readToolParams();\r\n this.readSearchParams();\r\n this.readFocusFirst();\r\n this.computeZoomToExtent();\r\n });\r\n }\r\n\r\n private readLanguageParam(params) {\r\n if (params['lang']) {\r\n this.authService.languageForce = true;\r\n this.languageService.setLanguage(params['lang']);\r\n }\r\n }\r\n\r\n private computeZoomToExtent() {\r\n if (this.routeParams['zoomExtent']) {\r\n const extentParams = this.routeParams['zoomExtent'].split(',');\r\n const olExtent = olProj.transformExtent(\r\n extentParams,\r\n 'EPSG:4326',\r\n this.map.projection\r\n );\r\n this.map.viewController.zoomToExtent(\r\n olExtent as [number, number, number, number]\r\n );\r\n }\r\n }\r\n\r\n private computeFocusFirst() {\r\n setTimeout(() => {\r\n const resultItem: any = document\r\n .getElementsByTagName('igo-search-results-item')\r\n .item(0);\r\n if (resultItem) {\r\n resultItem.click();\r\n }\r\n }, 1);\r\n }\r\n\r\n private readFocusFirst() {\r\n if (this.routeParams['sf'] === '1' && this.termDefinedInUrl) {\r\n const entities$$ = this.searchStore.stateView\r\n .all$()\r\n .pipe(\r\n skipWhile((entities) => entities.length === 0),\r\n debounceTime(1000),\r\n take(1)\r\n )\r\n .subscribe((entities) => {\r\n entities$$.unsubscribe();\r\n if (entities.length && !this.termDefinedInUrlTriggered) {\r\n this.computeFocusFirst();\r\n this.termDefinedInUrlTriggered = true;\r\n }\r\n });\r\n }\r\n }\r\n\r\n private readSearchParams() {\r\n if (this.routeParams['search']) {\r\n this.termDefinedInUrl = true;\r\n if (this.routeParams['exactMatch'] === '1') {\r\n this.searchState.activateCustomFilterTermStrategy();\r\n }\r\n if (\r\n this.routeParams['search'] &&\r\n !this.routeParams['zoom'] &&\r\n this.routeParams['sf'] !== '1'\r\n ) {\r\n const entities$$ = this.searchStore.stateView\r\n .all$()\r\n .pipe(\r\n skipWhile((entities) => entities.length === 0),\r\n debounceTime(500),\r\n take(1)\r\n )\r\n .subscribe((entities) => {\r\n entities$$.unsubscribe();\r\n const searchResultsOlFeatures = entities\r\n .filter((e) => e.entity.meta.dataType === FEATURE)\r\n .map((entity: EntityRecord) =>\r\n new olFormatGeoJSON().readFeature(entity.entity.data, {\r\n dataProjection: entity.entity.data.projection,\r\n featureProjection: this.map.projection\r\n })\r\n );\r\n const totalExtent = computeOlFeaturesExtent(\r\n searchResultsOlFeatures,\r\n this.map.viewProjection\r\n );\r\n this.map.viewController.zoomToExtent(totalExtent);\r\n });\r\n }\r\n this.searchBarTerm = this.routeParams['search'];\r\n }\r\n if (this.routeParams['searchGeom'] === '1') {\r\n this.searchState.searchResultsGeometryEnabled$.next(true);\r\n }\r\n }\r\n\r\n private readToolParams() {\r\n if (this.routeParams['tool']) {\r\n this.matDialogRef$\r\n .pipe(\r\n skipWhile((r) => r !== undefined),\r\n first()\r\n )\r\n .subscribe((matDialogOpened) => {\r\n if (!matDialogOpened) {\r\n this.toolbox.activateTool(this.routeParams['tool']);\r\n }\r\n });\r\n }\r\n\r\n if (this.routeParams['sidenav'] === '1') {\r\n setTimeout(() => {\r\n this.openSidenav();\r\n }, 250);\r\n }\r\n\r\n if (this.routeParams['routing']) {\r\n let routingCoordLoaded = false;\r\n const stopCoords = this.routeParams['routing'].split(';');\r\n const routingOptions = this.routeParams['routingOptions'];\r\n let resultSelection: number;\r\n if (routingOptions) {\r\n resultSelection = parseInt(routingOptions.split('result:')[1], 10);\r\n }\r\n this.directionState.stopsStore.storeInitialized$\r\n .pipe(\r\n skipWhile((init) => !init),\r\n first()\r\n )\r\n .subscribe((init: boolean) => {\r\n if (init && !routingCoordLoaded) {\r\n routingCoordLoaded = true;\r\n stopCoords.map((coord, i) => {\r\n if (i > 1) {\r\n addStopToStore(this.directionState.stopsStore);\r\n }\r\n });\r\n setTimeout(() => {\r\n stopCoords.map((coord, i) => {\r\n const stop = this.directionState.stopsStore\r\n .all()\r\n .find((e) => e.position === i);\r\n stop.text = coord;\r\n stop.coordinates = coord.split(',');\r\n this.directionState.stopsStore.update(stop);\r\n });\r\n }, this.directionState.debounceTime * 1.25); // this delay is due to the default component debounce time\r\n }\r\n });\r\n // zoom to active route\r\n this.directionState.routesFeatureStore.count$\r\n .pipe(\r\n skipWhile((c: number) => c < 1),\r\n first()\r\n )\r\n .subscribe((c) => {\r\n if (c >= 1) {\r\n this.directionState.zoomToActiveRoute$.next();\r\n }\r\n });\r\n // select the active route by url controls\r\n this.directionState.routesFeatureStore.count$\r\n .pipe(\r\n skipWhile((c: number) => c < 2),\r\n first()\r\n )\r\n .subscribe(() => {\r\n if (resultSelection) {\r\n this.directionState.routesFeatureStore.entities$.value.map(\r\n (d) => (d.properties.active = false)\r\n );\r\n this.directionState.routesFeatureStore.entities$.value[\r\n resultSelection\r\n ].properties.active = true;\r\n this.directionState.zoomToActiveRoute$.next();\r\n }\r\n });\r\n }\r\n }\r\n\r\n private readLayersQueryParams(params: Params) {\r\n this.readLayersQueryParamsByType(params, 'wms');\r\n this.readLayersQueryParamsByType(params, 'wmts');\r\n this.readLayersQueryParamsByType(params, 'arcgisrest');\r\n this.readLayersQueryParamsByType(params, 'imagearcgisrest');\r\n this.readLayersQueryParamsByType(params, 'tilearcgisrest');\r\n this.readVectorQueryParams(params);\r\n }\r\n\r\n getQueryParam(name, url) {\r\n let paramValue;\r\n if (url.includes('?')) {\r\n const httpParams = new HttpParams({ fromString: url.split('?')[1] });\r\n paramValue = httpParams.get(name);\r\n }\r\n return paramValue;\r\n }\r\n\r\n private readLayersQueryParamsByType(params: Params, type) {\r\n let nameParamLayersKey;\r\n let urlsKey;\r\n switch (type) {\r\n case 'wms':\r\n if ((params['layers'] || params['wmsLayers']) && params['wmsUrl']) {\r\n urlsKey = 'wmsUrl';\r\n nameParamLayersKey = params['wmsLayers'] ? 'wmsLayers' : 'layers'; // for maintain compatibility\r\n }\r\n break;\r\n case 'wmts':\r\n if (params['wmtsLayers'] && params['wmtsUrl']) {\r\n urlsKey = 'wmtsUrl';\r\n nameParamLayersKey = 'wmtsLayers';\r\n }\r\n break;\r\n case 'arcgisrest':\r\n if (params['arcgisLayers'] && params['arcgisUrl']) {\r\n urlsKey = 'arcgisUrl';\r\n nameParamLayersKey = 'arcgisLayers';\r\n }\r\n break;\r\n case 'imagearcgisrest':\r\n if (params['iarcgisLayers'] && params['iarcgisUrl']) {\r\n urlsKey = 'iarcgisUrl';\r\n nameParamLayersKey = 'iarcgisLayers';\r\n }\r\n break;\r\n case 'tilearcgisrest':\r\n if (params['tarcgisLayers'] && params['tarcgisUrl']) {\r\n urlsKey = 'tarcgisUrl';\r\n nameParamLayersKey = 'tarcgisLayers';\r\n }\r\n break;\r\n }\r\n if (!nameParamLayersKey || !urlsKey) {\r\n return;\r\n }\r\n const layersByService = params[nameParamLayersKey].split('),(');\r\n const urls = params[urlsKey].split(',');\r\n\r\n let cnt = 0;\r\n urls.forEach((urlSrc) => {\r\n let url = urlSrc;\r\n const version =\r\n this.getQueryParam('VERSION', url) ||\r\n this.getQueryParam('version', url) ||\r\n undefined;\r\n if (version) {\r\n url = url\r\n .replace('VERSION=' + version, '')\r\n .replace('version=' + version, '');\r\n }\r\n if (url.endsWith('?')) {\r\n url = url.substring(0, url.length - 1);\r\n }\r\n\r\n const currentLayersByService = this.extractLayersByService(\r\n layersByService[cnt]\r\n );\r\n currentLayersByService.forEach((layer) => {\r\n const layerFromUrl = layer.split(':igoz');\r\n const layerOptions = ObjectUtils.removeUndefined({\r\n type,\r\n url: url,\r\n layer: layerFromUrl[0],\r\n params: type === 'wms' ? { LAYERS: layerFromUrl[0] } : undefined\r\n });\r\n const id = generateIdFromSourceOptions(layerOptions);\r\n const visibility = this.computeLayerVisibilityFromUrl(params, id);\r\n this.addLayerFromURL(\r\n url,\r\n layerFromUrl[0],\r\n type,\r\n version,\r\n visibility,\r\n layerFromUrl[1] ? parseInt(layerFromUrl[1], 10) : undefined\r\n );\r\n });\r\n cnt += 1;\r\n });\r\n }\r\n\r\n private readVectorQueryParams(params: Params) {\r\n if (params['vector']) {\r\n const url = params['vector'] as string;\r\n const lastIndex = url.lastIndexOf('/');\r\n const fileName = url.slice(lastIndex + 1, url.length);\r\n\r\n this.http.get(`${url}`, { responseType: 'blob' }).subscribe((data) => {\r\n const file = new File([data], fileName, {\r\n type: data.type,\r\n lastModified: Date.now()\r\n });\r\n this.importService.import(file).subscribe(\r\n (features: Feature[]) => this.onFileImportSuccess(file, features),\r\n (error: Error) => this.onFileImportError(file, error)\r\n );\r\n });\r\n }\r\n }\r\n\r\n private onFileImportSuccess(file: File, features: Feature[]) {\r\n handleFileImportSuccess(\r\n file,\r\n features,\r\n this.map,\r\n this.contextState.context$.value.uri,\r\n this.messageService,\r\n this.layerService\r\n );\r\n }\r\n\r\n private onFileImportError(file: File, error: Error) {\r\n handleFileImportError(file, error, this.messageService);\r\n }\r\n\r\n private extractLayersByService(layersByService: string): any[] {\r\n let outLayersByService = layersByService;\r\n outLayersByService = outLayersByService.startsWith('(')\r\n ? outLayersByService.substr(1)\r\n : outLayersByService;\r\n outLayersByService = outLayersByService.endsWith(')')\r\n ? outLayersByService.slice(0, -1)\r\n : outLayersByService;\r\n return outLayersByService.split(',');\r\n }\r\n private addLayerFromURL(\r\n url: string,\r\n name: string,\r\n type: 'wms' | 'wmts' | 'arcgisrest' | 'imagearcgisrest' | 'tilearcgisrest',\r\n version: string,\r\n visibility: boolean = true,\r\n zIndex: number\r\n ) {\r\n if (!this.contextLoaded) {\r\n return;\r\n }\r\n const commonSourceOptions = {\r\n optionsFromCapabilities: true,\r\n optionsFromApi: true,\r\n crossOrigin: true,\r\n type,\r\n url\r\n };\r\n const arcgisClause =\r\n type === 'arcgisrest' ||\r\n type === 'imagearcgisrest' ||\r\n type === 'tilearcgisrest';\r\n let sourceOptions = {\r\n version: type === 'wmts' ? '1.0.0' : undefined,\r\n queryable: arcgisClause ? true : false,\r\n queryFormat: arcgisClause ? 'esrijson' : undefined,\r\n layer: name\r\n };\r\n if (type === 'wms') {\r\n sourceOptions = { params: { LAYERS: name, VERSION: version } } as any;\r\n }\r\n\r\n sourceOptions = ObjectUtils.removeUndefined(\r\n Object.assign({}, sourceOptions, commonSourceOptions)\r\n );\r\n\r\n this.addedLayers$$.push(\r\n this.layerService\r\n .createAsyncLayer({\r\n zIndex: zIndex,\r\n visible: visibility,\r\n sourceOptions\r\n })\r\n .subscribe((l) => {\r\n this.map.addLayer(l);\r\n })\r\n );\r\n }\r\n\r\n private computeLayerVisibilityFromUrl(\r\n params: Params,\r\n currentLayerid: string\r\n ): boolean {\r\n const queryParams = params;\r\n let visible = true;\r\n if (!queryParams || !currentLayerid) {\r\n return visible;\r\n }\r\n let visibleOnLayersParams = '';\r\n let visibleOffLayersParams = '';\r\n let visiblelayers: string[] = [];\r\n let invisiblelayers: string[] = [];\r\n if (queryParams['visiblelayers']) {\r\n visibleOnLayersParams = queryParams['visiblelayers'];\r\n }\r\n if (queryParams['invisiblelayers']) {\r\n visibleOffLayersParams = queryParams['invisiblelayers'];\r\n }\r\n\r\n /* This order is important because to control whichever\r\n the order of * param. First whe open and close everything.*/\r\n if (visibleOnLayersParams === '*') {\r\n visible = true;\r\n }\r\n if (visibleOffLayersParams === '*') {\r\n visible = false;\r\n }\r\n\r\n // After, managing named layer by id (context.json OR id from datasource)\r\n visiblelayers = visibleOnLayersParams.split(',');\r\n invisiblelayers = visibleOffLayersParams.split(',');\r\n if (\r\n visiblelayers.indexOf(currentLayerid) > -1 ||\r\n visiblelayers.indexOf(currentLayerid.toString()) > -1\r\n ) {\r\n visible = true;\r\n }\r\n if (\r\n invisiblelayers.indexOf(currentLayerid) > -1 ||\r\n invisiblelayers.indexOf(currentLayerid.toString()) > -1\r\n ) {\r\n visible = false;\r\n }\r\n return visible;\r\n }\r\n\r\n private initWelcomeWindow(): void {\r\n if (this.authService.hasAuthService) {\r\n this.authService.logged$.subscribe((logged) => {\r\n if (logged) {\r\n this.createWelcomeWindow();\r\n }\r\n });\r\n } else {\r\n this.createWelcomeWindow();\r\n }\r\n }\r\n\r\n private createWelcomeWindow(): void {\r\n if (this.welcomeWindowService.hasWelcomeWindow()) {\r\n const welcomWindowConfig: MatDialogConfig =\r\n this.welcomeWindowService.getConfig();\r\n\r\n this.matDialogRef$.next(\r\n this.dialogWindow.open(WelcomeWindowComponent, welcomWindowConfig)\r\n );\r\n\r\n this.matDialogRef$.value.afterClosed().subscribe((result) => {\r\n this.welcomeWindowService.afterClosedWelcomeWindow();\r\n this.matDialogRef$.next(undefined);\r\n });\r\n }\r\n }\r\n\r\n private getFeatureIsSameActiveWks(feature: Feature): boolean {\r\n if (this.workspace) {\r\n const featureTitle = feature.meta.sourceTitle;\r\n const wksTitle = this.workspace.title;\r\n if (wksTitle === featureTitle) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n private getWksActiveOpenInResolution(): boolean {\r\n if (this.workspace) {\r\n const activeWks = this.workspace as WfsWorkspace;\r\n if (\r\n activeWks.active &&\r\n activeWks.inResolutionRange$.value &&\r\n this.workspaceState.workspacePanelExpanded\r\n ) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n refreshRelationsWorkspace(relationLayers: ImageLayer[] | VectorLayer[]) {\r\n if (relationLayers?.length) {\r\n for (const layer of relationLayers) {\r\n const relationWorkspace = this.workspaceStore\r\n .all()\r\n .find((workspace) =>\r\n layer.options.workspace.workspaceId.includes(workspace.id)\r\n );\r\n relationWorkspace?.meta.tableTemplate.columns.forEach((col) => {\r\n // Update domain list\r\n if (col.type === 'list' || col.type === 'autocomplete') {\r\n this.editionWorkspaceService\r\n .getDomainValues(col.relation)\r\n .subscribe((result) => {\r\n col.domainValues = result;\r\n });\r\n }\r\n });\r\n }\r\n }\r\n }\r\n\r\n zoomToSelectedFeatureWks() {\r\n let format = new olFormatGeoJSON();\r\n const featuresSelected = this.workspaceState.workspaceSelection.map(\r\n (rec) => rec.entity as Feature\r\n );\r\n if (featuresSelected.length === 0) {\r\n return;\r\n }\r\n const olFeaturesSelected = [];\r\n for (const feat of featuresSelected) {\r\n let localOlFeature = format.readFeature(feat, {\r\n dataProjection: feat.projection,\r\n featureProjection: this.map.projection\r\n });\r\n olFeaturesSelected.push(localOlFeature);\r\n }\r\n moveToOlFeatures(\r\n this.map.viewController,\r\n olFeaturesSelected,\r\n FeatureMotion.Zoom\r\n );\r\n }\r\n}\r\n","import { Component } from '@angular/core';\r\n\r\nimport { ConfigService, LanguageService } from '@igo2/core';\r\n\r\n@Component({\r\n selector: 'app-header',\r\n templateUrl: './header.component.html',\r\n styleUrls: ['./header.component.scss']\r\n})\r\nexport class HeaderComponent {\r\n public headerLogo: string;\r\n public headerLogoPrint: string;\r\n\r\n constructor(\r\n private configService: ConfigService,\r\n protected languageService: LanguageService\r\n ) {\r\n this.computeHeader();\r\n }\r\n\r\n computeHeader() {\r\n this.headerLogo = this.configService.getConfig('header.logo');\r\n this.headerLogoPrint = this.configService.getConfig('header.logoPrint');\r\n }\r\n\r\n // Future translation system\r\n /*changeLanguage() {\r\n if (this.languageService.getLanguage() === 'fr'){\r\n this.languageService.setLanguage('en');\r\n } else {\r\n this.languageService.setLanguage('fr');\r\n }\r\n }*/\r\n}\r\n","\n
\n
\n \n \n \"Logo\"\n \n \n

\n {{ 'header.title' | translate }}\n

\n
\n
\n
    \n \n
  • \n {{ 'header.contactUs' | translate }}\n
  • \n
\n
\n

\n {{ 'header.title' | translate }}\n

\n
\n \n
\n","import { Component } from '@angular/core';\r\n\r\nimport { LanguageService } from '@igo2/core';\r\n\r\n@Component({\r\n selector: 'app-footer',\r\n templateUrl: './footer.component.html',\r\n styleUrls: ['./footer.component.scss']\r\n})\r\nexport class FooterComponent {\r\n constructor(protected languageService: LanguageService) {}\r\n}\r\n","
\n \n \n {{ 'footer.conditions' | translate }}\n \n | \n \n {{ 'footer.ministry' | translate }}\n \n | \n \n {{ 'footer.gov' | translate }}\n \n \n
\n","\n\n\n\n\n\n\n\n\n","import { DOCUMENT } from '@angular/common';\r\nimport { Component, Inject, OnInit } from '@angular/core';\r\nimport { Meta, Title } from '@angular/platform-browser';\r\nimport { NavigationEnd, Router } from '@angular/router';\r\n\r\nimport { AuthOptions } from '@igo2/auth';\r\nimport { ConfigService, LanguageService, MessageService } from '@igo2/core';\r\nimport { AnalyticsListenerService, AppOptions } from '@igo2/integration';\r\nimport { DomUtils, userAgent } from '@igo2/utils';\r\n\r\nimport { delay, first } from 'rxjs';\r\n\r\nimport { PwaService } from './services/pwa.service';\r\n\r\n@Component({\r\n selector: 'app-root',\r\n templateUrl: './app.component.html',\r\n styleUrls: ['./app.component.scss']\r\n})\r\nexport class AppComponent implements OnInit {\r\n public authConfig: AuthOptions;\r\n public hasHeader = true;\r\n public hasFooter = true;\r\n private promptEvent: any;\r\n\r\n constructor(\r\n @Inject(DOCUMENT) private document: Document,\r\n protected languageService: LanguageService,\r\n private configService: ConfigService,\r\n private analyticsListenerService: AnalyticsListenerService,\r\n private titleService: Title,\r\n private metaService: Meta,\r\n private messageService: MessageService,\r\n private pwaService: PwaService,\r\n private router: Router\r\n ) {\r\n this.authConfig = this.configService.getConfig('auth', {});\r\n\r\n this.readTitleConfig();\r\n this.readDescriptionConfig();\r\n\r\n this.analyticsListenerService.listen();\r\n\r\n this.detectOldBrowser();\r\n\r\n this.hasHeader = this.configService.getConfig('header.hasHeader', false);\r\n this.hasFooter = this.configService.getConfig('hasFooter', false);\r\n\r\n this.setManifest();\r\n this.installPrompt();\r\n this.pwaService.checkForUpdates();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.handleSplashScreen();\r\n }\r\n\r\n private handleSplashScreen(): void {\r\n this.router.events\r\n .pipe(\r\n first((events) => events instanceof NavigationEnd),\r\n delay(500)\r\n )\r\n .subscribe(() => {\r\n this._removeSplashScreen();\r\n });\r\n }\r\n\r\n private _removeSplashScreen(): void {\r\n const intro = this.document.getElementById('splash-screen');\r\n if (!intro) {\r\n return;\r\n }\r\n intro.classList.add('is-destroying');\r\n\r\n const destroyingAnimationTime = 300;\r\n const stylesheet = this.document.getElementById('splash-screen-stylesheet');\r\n\r\n setTimeout(() => {\r\n DomUtils.remove(intro);\r\n DomUtils.remove(stylesheet);\r\n }, destroyingAnimationTime);\r\n }\r\n\r\n private readTitleConfig() {\r\n this.languageService.translate\r\n .get(this.configService.getConfig('title', ''))\r\n .subscribe((title) => {\r\n if (title) {\r\n this.titleService.setTitle(title);\r\n this.metaService.addTag({ name: 'title', content: title });\r\n }\r\n });\r\n }\r\n\r\n private setManifest() {\r\n if (this.configService.getConfig('app.install.enabled')) {\r\n const manifestPath = this.configService.getConfig(\r\n 'app.install.manifestPath',\r\n 'manifest.webmanifest'\r\n );\r\n document\r\n .querySelector('#igoManifestByConfig')\r\n .setAttribute('href', manifestPath);\r\n }\r\n }\r\n\r\n private installPrompt() {\r\n const appConfig: AppOptions = this.configService.getConfig('app');\r\n if (appConfig?.install?.enabled && appConfig?.install?.promote) {\r\n if (userAgent.getOSName() !== 'iOS') {\r\n window.addEventListener(\r\n 'beforeinstallprompt',\r\n (event: any) => {\r\n event.preventDefault();\r\n this.promptEvent = event;\r\n window.addEventListener(\r\n 'click',\r\n () => {\r\n setTimeout(() => {\r\n this.promptEvent.prompt();\r\n this.promptEvent = undefined;\r\n }, 750);\r\n },\r\n { once: true }\r\n );\r\n },\r\n { once: true }\r\n );\r\n }\r\n }\r\n }\r\n\r\n private readDescriptionConfig() {\r\n const description = this.configService.getConfig('description');\r\n if (description) {\r\n this.metaService.addTag({ name: 'description', content: description });\r\n }\r\n }\r\n\r\n private detectOldBrowser() {\r\n const oldBrowser = userAgent.satisfies({\r\n ie: '<=11',\r\n chrome: '<64',\r\n firefox: '<60',\r\n safari: '<=11'\r\n });\r\n\r\n if (oldBrowser) {\r\n this.messageService.alert('oldBrowser.message', 'oldBrowser.title', {\r\n timeOut: 15000\r\n });\r\n }\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatListModule } from '@angular/material/list';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\n\r\nimport { IgoBackdropModule } from '@igo2/common';\r\nimport { IgoLanguageModule } from '@igo2/core';\r\n\r\nimport { ExpansionPanelHeaderComponent } from './expansion-panel-header.component';\r\nimport { ExpansionPanelComponent } from './expansion-panel.component';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n MatButtonModule,\r\n MatIconModule,\r\n MatMenuModule,\r\n MatListModule,\r\n MatSelectModule,\r\n MatTooltipModule,\r\n IgoLanguageModule,\r\n IgoBackdropModule\r\n ],\r\n exports: [ExpansionPanelComponent],\r\n declarations: [ExpansionPanelComponent, ExpansionPanelHeaderComponent]\r\n})\r\nexport class AppExpansionPanelModule {}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\n\r\nimport { MapOverlayComponent } from './map-overlay.component';\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n exports: [MapOverlayComponent],\r\n declarations: [MapOverlayComponent]\r\n})\r\nexport class MapOverlayModule {}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatSidenavModule } from '@angular/material/sidenav';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\n\r\nimport {\r\n IgoFlexibleModule,\r\n IgoHomeButtonModule,\r\n IgoInteractiveTourModule,\r\n IgoPanelModule,\r\n IgoToolModule\r\n} from '@igo2/common';\r\nimport { IgoContextManagerModule } from '@igo2/context';\r\nimport { IgoLanguageModule } from '@igo2/core';\r\nimport { IgoFeatureModule } from '@igo2/geo';\r\n\r\nimport { SidenavComponent } from './sidenav.component';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n MatIconModule,\r\n MatButtonModule,\r\n MatSidenavModule,\r\n MatTooltipModule,\r\n IgoLanguageModule,\r\n IgoPanelModule,\r\n IgoFlexibleModule,\r\n IgoContextManagerModule,\r\n IgoToolModule,\r\n IgoFeatureModule,\r\n IgoInteractiveTourModule,\r\n IgoHomeButtonModule\r\n ],\r\n exports: [SidenavComponent],\r\n declarations: [SidenavComponent]\r\n})\r\nexport class AppSidenavModule {}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatIconModule } from '@angular/material/icon';\r\n\r\nimport { IgoPanelModule, IgoStopPropagationModule } from '@igo2/common';\r\nimport { IgoLanguageModule } from '@igo2/core';\r\n\r\nimport { ToastPanelForExpansionComponent } from './toast-panel-for-expansion.component';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n MatIconModule,\r\n MatButtonModule,\r\n IgoLanguageModule,\r\n IgoPanelModule,\r\n IgoStopPropagationModule\r\n ],\r\n exports: [ToastPanelForExpansionComponent],\r\n declarations: [ToastPanelForExpansionComponent]\r\n})\r\nexport class AppToastPanelForExpansionModule {}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { MatBadgeModule } from '@angular/material/badge';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\n\r\nimport {\r\n IgoActionModule,\r\n IgoPanelModule,\r\n IgoStopPropagationModule\r\n} from '@igo2/common';\r\nimport { IgoLanguageModule } from '@igo2/core';\r\nimport { IgoFeatureModule, IgoSearchResultsModule } from '@igo2/geo';\r\n\r\nimport { ToastPanelComponent } from './toast-panel.component';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n MatBadgeModule,\r\n MatIconModule,\r\n MatButtonModule,\r\n MatTooltipModule,\r\n MatMenuModule,\r\n IgoLanguageModule,\r\n IgoPanelModule,\r\n IgoStopPropagationModule,\r\n IgoActionModule,\r\n IgoFeatureModule,\r\n IgoSearchResultsModule\r\n ],\r\n exports: [ToastPanelComponent],\r\n declarations: [ToastPanelComponent]\r\n})\r\nexport class AppToastPanelModule {}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatToolbarModule } from '@angular/material/toolbar';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\n\r\nimport { IgoCustomHtmlModule, IgoInteractiveTourModule } from '@igo2/common';\r\nimport { IgoLanguageModule } from '@igo2/core';\r\n\r\nimport { WelcomeWindowComponent } from './welcome-window.component';\r\n\r\n@NgModule({\r\n imports: [\r\n IgoLanguageModule,\r\n CommonModule,\r\n FormsModule,\r\n MatDialogModule,\r\n IgoInteractiveTourModule,\r\n IgoCustomHtmlModule,\r\n MatButtonModule,\r\n MatTooltipModule,\r\n MatIconModule,\r\n MatToolbarModule\r\n ],\r\n declarations: [WelcomeWindowComponent],\r\n exports: [WelcomeWindowComponent]\r\n})\r\nexport class IgoWelcomeWindowModule {}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatSidenavModule } from '@angular/material/sidenav';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\n\r\nimport {\r\n IgoActionModule,\r\n IgoBackdropModule,\r\n IgoContextMenuModule,\r\n IgoEntityModule,\r\n IgoEntityTableModule,\r\n IgoEntityTablePaginatorModule,\r\n IgoFlexibleModule,\r\n IgoInteractiveTourModule,\r\n IgoPanelModule,\r\n IgoToolModule,\r\n IgoWorkspaceModule\r\n} from '@igo2/common';\r\nimport {\r\n IgoContextManagerModule,\r\n IgoContextMapButtonModule\r\n} from '@igo2/context';\r\nimport { IgoCoreModule } from '@igo2/core';\r\nimport {\r\n IgoFeatureModule,\r\n IgoGeoWorkspaceModule,\r\n IgoImportExportModule,\r\n IgoMapModule,\r\n IgoQueryModule,\r\n IgoSearchModule\r\n} from '@igo2/geo';\r\nimport { IgoIntegrationModule } from '@igo2/integration';\r\n\r\nimport { AppExpansionPanelModule } from './expansion-panel/expansion-panel.module';\r\nimport { MapOverlayModule } from './map-overlay/map-overlay.module';\r\nimport { PortalComponent } from './portal.component';\r\nimport { AppSidenavModule } from './sidenav/sidenav.module';\r\nimport { AppToastPanelForExpansionModule } from './toast-panel-for-expansion/toast-panel-for-expansion.module';\r\nimport { AppToastPanelModule } from './toast-panel/toast-panel.module';\r\nimport { IgoWelcomeWindowModule } from './welcome-window/welcome-window.module';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n MatTooltipModule,\r\n MatButtonModule,\r\n MatIconModule,\r\n MatSidenavModule,\r\n MatDialogModule,\r\n IgoCoreModule,\r\n IgoFeatureModule,\r\n IgoImportExportModule,\r\n IgoMapModule,\r\n IgoQueryModule.forRoot(),\r\n IgoSearchModule.forRoot(),\r\n IgoActionModule,\r\n IgoWorkspaceModule,\r\n IgoEntityModule,\r\n IgoGeoWorkspaceModule,\r\n IgoPanelModule,\r\n IgoToolModule,\r\n IgoContextMenuModule,\r\n IgoBackdropModule,\r\n IgoFlexibleModule,\r\n IgoIntegrationModule,\r\n AppExpansionPanelModule,\r\n AppToastPanelModule,\r\n AppToastPanelForExpansionModule,\r\n AppSidenavModule,\r\n MapOverlayModule,\r\n IgoContextManagerModule,\r\n IgoContextMapButtonModule,\r\n IgoEntityTableModule,\r\n IgoEntityTablePaginatorModule,\r\n IgoInteractiveTourModule,\r\n IgoWelcomeWindowModule\r\n ],\r\n exports: [PortalComponent],\r\n declarations: [PortalComponent]\r\n})\r\nexport class PortalModule {}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\n\r\nimport { IgoLanguageModule } from '@igo2/core';\r\n\r\nimport { FooterComponent } from './footer.component';\r\n\r\n@NgModule({\r\n declarations: [FooterComponent],\r\n imports: [CommonModule, IgoLanguageModule],\r\n exports: [FooterComponent]\r\n})\r\nexport class FooterModule {}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { MatToolbarModule } from '@angular/material/toolbar';\r\n\r\nimport { IgoLanguageModule } from '@igo2/core';\r\n\r\nimport { HeaderComponent } from './header.component';\r\n\r\n@NgModule({\r\n declarations: [HeaderComponent],\r\n imports: [CommonModule, IgoLanguageModule, MatToolbarModule],\r\n exports: [HeaderComponent]\r\n})\r\nexport class HeaderModule {}\r\n","import { DOCUMENT } from '@angular/common';\r\nimport {\r\n APP_INITIALIZER,\r\n ApplicationRef,\r\n Injector,\r\n NgModule\r\n} from '@angular/core';\r\nimport { MAT_FORM_FIELD_DEFAULT_OPTIONS } from '@angular/material/form-field';\r\nimport {\r\n MAT_TOOLTIP_DEFAULT_OPTIONS,\r\n MatTooltipDefaultOptions\r\n} from '@angular/material/tooltip';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { RouterModule } from '@angular/router';\r\nimport { ServiceWorkerModule } from '@angular/service-worker';\r\n\r\nimport { IgoAuthModule } from '@igo2/auth';\r\nimport { IgoSpinnerModule, IgoStopPropagationModule } from '@igo2/common';\r\nimport {\r\n ConfigService,\r\n IgoGestureModule,\r\n IgoMessageModule,\r\n LanguageService,\r\n RouteService,\r\n provideConfigOptions\r\n} from '@igo2/core';\r\nimport {\r\n provideCadastreSearchSource,\r\n provideCoordinatesReverseSearchSource,\r\n provideIChercheReverseSearchSource,\r\n provideIChercheSearchSource,\r\n provideILayerSearchSource,\r\n provideNominatimSearchSource,\r\n provideOptionsApi,\r\n provideOsrmDirectionsSource,\r\n provideStoredQueriesSearchSource,\r\n provideStyleListOptions,\r\n provideWorkspaceSearchSource\r\n} from '@igo2/geo';\r\nimport { loadTheme } from '@igo2/utils';\r\n\r\nimport { concatMap, first } from 'rxjs';\r\n\r\nimport { environment } from '../environments/environment';\r\nimport { AppComponent } from './app.component';\r\nimport { PortalModule } from './pages';\r\nimport { FooterModule } from './pages/footer/footer.module';\r\nimport { HeaderModule } from './pages/header/header.module';\r\n\r\nconst DEFAULT_THEME: string = 'blue-theme';\r\n\r\nexport const defaultTooltipOptions: MatTooltipDefaultOptions = {\r\n showDelay: 500,\r\n hideDelay: 0,\r\n touchendHideDelay: 0,\r\n disableTooltipInteractivity: true\r\n};\r\n\r\n@NgModule({\r\n declarations: [AppComponent],\r\n imports: [\r\n BrowserModule,\r\n BrowserAnimationsModule,\r\n RouterModule.forRoot([]),\r\n IgoAuthModule.forRoot(),\r\n IgoGestureModule.forRoot(),\r\n IgoMessageModule,\r\n IgoSpinnerModule,\r\n IgoStopPropagationModule,\r\n PortalModule,\r\n HeaderModule,\r\n FooterModule,\r\n ServiceWorkerModule.register('ngsw-worker.js', {\r\n enabled: environment.igo.app.pwa.enabled,\r\n registrationStrategy: 'registerWithDelay:5000'\r\n })\r\n ],\r\n providers: [\r\n provideConfigOptions({\r\n default: environment.igo,\r\n path: './config/config.json'\r\n }),\r\n RouteService,\r\n provideNominatimSearchSource(),\r\n provideIChercheSearchSource(),\r\n provideWorkspaceSearchSource(),\r\n provideIChercheReverseSearchSource(),\r\n provideCoordinatesReverseSearchSource(),\r\n provideILayerSearchSource(),\r\n provideStoredQueriesSearchSource(),\r\n provideOsrmDirectionsSource(),\r\n provideOptionsApi(),\r\n provideCadastreSearchSource(),\r\n {\r\n provide: APP_INITIALIZER,\r\n useFactory: appInitializerFactory,\r\n deps: [Injector, ApplicationRef, DOCUMENT],\r\n multi: true\r\n },\r\n provideStyleListOptions({\r\n path: './assets/list-style.json'\r\n }),\r\n { provide: MAT_TOOLTIP_DEFAULT_OPTIONS, useValue: defaultTooltipOptions },\r\n {\r\n provide: MAT_FORM_FIELD_DEFAULT_OPTIONS,\r\n useValue: { appearance: 'fill' }\r\n }\r\n ],\r\n bootstrap: [AppComponent]\r\n})\r\nexport class AppModule {}\r\n\r\nfunction appInitializerFactory(\r\n injector: Injector,\r\n applicationRef: ApplicationRef,\r\n document: Document\r\n) {\r\n // ensure to have the proper translations loaded once, when the app is stable.\r\n return () =>\r\n new Promise((resolve: any) => {\r\n applicationRef.isStable\r\n .pipe(\r\n first((isStable) => isStable === true),\r\n concatMap(() => {\r\n const languageService = injector.get(LanguageService);\r\n const lang = languageService.getLanguage();\r\n return languageService.translate.getTranslation(lang);\r\n })\r\n )\r\n .subscribe((translations) => {\r\n const languageService = injector.get(LanguageService);\r\n const lang = languageService.getLanguage();\r\n languageService.translate.setTranslation(lang, translations);\r\n\r\n const configService = injector.get(ConfigService);\r\n const theme = configService.getConfig('theme', DEFAULT_THEME);\r\n loadTheme(document, theme);\r\n\r\n const titleKey = configService.getConfig('title');\r\n languageService.translate.get(titleKey).subscribe((title) => {\r\n handleSplashScreenTitle(document, title);\r\n resolve();\r\n });\r\n });\r\n });\r\n}\r\n\r\nfunction handleSplashScreenTitle(document: Document, title: string): void {\r\n const splashScreenTitle = document.getElementById('splash-screen-title');\r\n if (splashScreenTitle) {\r\n splashScreenTitle.innerText = title;\r\n }\r\n}\r\n","import { enableProdMode } from '@angular/core';\r\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\n\r\nimport 'hammerjs';\r\n\r\nimport { AppModule } from './app/app.module';\r\nimport { environment } from './environments/environment';\r\n\r\nif (environment.production) {\r\n enableProdMode();\r\n}\r\n\r\nplatformBrowserDynamic()\r\n .bootstrapModule(AppModule)\r\n .catch((err) => console.log(err));\r\n","var map = {\n\t\"./af\": 35528,\n\t\"./af.js\": 35528,\n\t\"./ar\": 1036,\n\t\"./ar-dz\": 17579,\n\t\"./ar-dz.js\": 17579,\n\t\"./ar-kw\": 69588,\n\t\"./ar-kw.js\": 69588,\n\t\"./ar-ly\": 11650,\n\t\"./ar-ly.js\": 11650,\n\t\"./ar-ma\": 93258,\n\t\"./ar-ma.js\": 93258,\n\t\"./ar-sa\": 54085,\n\t\"./ar-sa.js\": 54085,\n\t\"./ar-tn\": 90287,\n\t\"./ar-tn.js\": 90287,\n\t\"./ar.js\": 1036,\n\t\"./az\": 89757,\n\t\"./az.js\": 89757,\n\t\"./be\": 59620,\n\t\"./be.js\": 59620,\n\t\"./bg\": 31139,\n\t\"./bg.js\": 31139,\n\t\"./bm\": 4042,\n\t\"./bm.js\": 4042,\n\t\"./bn\": 19641,\n\t\"./bn-bd\": 19126,\n\t\"./bn-bd.js\": 19126,\n\t\"./bn.js\": 19641,\n\t\"./bo\": 494,\n\t\"./bo.js\": 494,\n\t\"./br\": 20934,\n\t\"./br.js\": 20934,\n\t\"./bs\": 26274,\n\t\"./bs.js\": 26274,\n\t\"./ca\": 45831,\n\t\"./ca.js\": 45831,\n\t\"./cs\": 92354,\n\t\"./cs.js\": 92354,\n\t\"./cv\": 79692,\n\t\"./cv.js\": 79692,\n\t\"./cy\": 58774,\n\t\"./cy.js\": 58774,\n\t\"./da\": 38955,\n\t\"./da.js\": 38955,\n\t\"./de\": 21557,\n\t\"./de-at\": 24954,\n\t\"./de-at.js\": 24954,\n\t\"./de-ch\": 81881,\n\t\"./de-ch.js\": 81881,\n\t\"./de.js\": 21557,\n\t\"./dv\": 16475,\n\t\"./dv.js\": 16475,\n\t\"./el\": 38877,\n\t\"./el.js\": 38877,\n\t\"./en-au\": 70454,\n\t\"./en-au.js\": 70454,\n\t\"./en-ca\": 67356,\n\t\"./en-ca.js\": 67356,\n\t\"./en-gb\": 10456,\n\t\"./en-gb.js\": 10456,\n\t\"./en-ie\": 28789,\n\t\"./en-ie.js\": 28789,\n\t\"./en-il\": 85471,\n\t\"./en-il.js\": 85471,\n\t\"./en-in\": 39664,\n\t\"./en-in.js\": 39664,\n\t\"./en-nz\": 97672,\n\t\"./en-nz.js\": 97672,\n\t\"./en-sg\": 80805,\n\t\"./en-sg.js\": 80805,\n\t\"./eo\": 87390,\n\t\"./eo.js\": 87390,\n\t\"./es\": 1564,\n\t\"./es-do\": 51473,\n\t\"./es-do.js\": 51473,\n\t\"./es-mx\": 92089,\n\t\"./es-mx.js\": 92089,\n\t\"./es-us\": 84156,\n\t\"./es-us.js\": 84156,\n\t\"./es.js\": 1564,\n\t\"./et\": 6513,\n\t\"./et.js\": 6513,\n\t\"./eu\": 7856,\n\t\"./eu.js\": 7856,\n\t\"./fa\": 2378,\n\t\"./fa.js\": 2378,\n\t\"./fi\": 22687,\n\t\"./fi.js\": 22687,\n\t\"./fil\": 80032,\n\t\"./fil.js\": 80032,\n\t\"./fo\": 46845,\n\t\"./fo.js\": 46845,\n\t\"./fr\": 8875,\n\t\"./fr-ca\": 56425,\n\t\"./fr-ca.js\": 56425,\n\t\"./fr-ch\": 41746,\n\t\"./fr-ch.js\": 41746,\n\t\"./fr.js\": 8875,\n\t\"./fy\": 67037,\n\t\"./fy.js\": 67037,\n\t\"./ga\": 11217,\n\t\"./ga.js\": 11217,\n\t\"./gd\": 37010,\n\t\"./gd.js\": 37010,\n\t\"./gl\": 51931,\n\t\"./gl.js\": 51931,\n\t\"./gom-deva\": 64488,\n\t\"./gom-deva.js\": 64488,\n\t\"./gom-latn\": 8032,\n\t\"./gom-latn.js\": 8032,\n\t\"./gu\": 34984,\n\t\"./gu.js\": 34984,\n\t\"./he\": 69090,\n\t\"./he.js\": 69090,\n\t\"./hi\": 42085,\n\t\"./hi.js\": 42085,\n\t\"./hr\": 38787,\n\t\"./hr.js\": 38787,\n\t\"./hu\": 2901,\n\t\"./hu.js\": 2901,\n\t\"./hy-am\": 59819,\n\t\"./hy-am.js\": 59819,\n\t\"./id\": 44074,\n\t\"./id.js\": 44074,\n\t\"./is\": 70715,\n\t\"./is.js\": 70715,\n\t\"./it\": 31746,\n\t\"./it-ch\": 77040,\n\t\"./it-ch.js\": 77040,\n\t\"./it.js\": 31746,\n\t\"./ja\": 3180,\n\t\"./ja.js\": 3180,\n\t\"./jv\": 34346,\n\t\"./jv.js\": 34346,\n\t\"./ka\": 65538,\n\t\"./ka.js\": 65538,\n\t\"./kk\": 79772,\n\t\"./kk.js\": 79772,\n\t\"./km\": 87905,\n\t\"./km.js\": 87905,\n\t\"./kn\": 79125,\n\t\"./kn.js\": 79125,\n\t\"./ko\": 69140,\n\t\"./ko.js\": 69140,\n\t\"./ku\": 2354,\n\t\"./ku.js\": 2354,\n\t\"./ky\": 63768,\n\t\"./ky.js\": 63768,\n\t\"./lb\": 14016,\n\t\"./lb.js\": 14016,\n\t\"./lo\": 83169,\n\t\"./lo.js\": 83169,\n\t\"./lt\": 62353,\n\t\"./lt.js\": 62353,\n\t\"./lv\": 83243,\n\t\"./lv.js\": 83243,\n\t\"./me\": 52338,\n\t\"./me.js\": 52338,\n\t\"./mi\": 35555,\n\t\"./mi.js\": 35555,\n\t\"./mk\": 85794,\n\t\"./mk.js\": 85794,\n\t\"./ml\": 53151,\n\t\"./ml.js\": 53151,\n\t\"./mn\": 46458,\n\t\"./mn.js\": 46458,\n\t\"./mr\": 69165,\n\t\"./mr.js\": 69165,\n\t\"./ms\": 8680,\n\t\"./ms-my\": 87477,\n\t\"./ms-my.js\": 87477,\n\t\"./ms.js\": 8680,\n\t\"./mt\": 79684,\n\t\"./mt.js\": 79684,\n\t\"./my\": 40285,\n\t\"./my.js\": 40285,\n\t\"./nb\": 45922,\n\t\"./nb.js\": 45922,\n\t\"./ne\": 29040,\n\t\"./ne.js\": 29040,\n\t\"./nl\": 5066,\n\t\"./nl-be\": 74460,\n\t\"./nl-be.js\": 74460,\n\t\"./nl.js\": 5066,\n\t\"./nn\": 53693,\n\t\"./nn.js\": 53693,\n\t\"./oc-lnc\": 88676,\n\t\"./oc-lnc.js\": 88676,\n\t\"./pa-in\": 92341,\n\t\"./pa-in.js\": 92341,\n\t\"./pl\": 57416,\n\t\"./pl.js\": 57416,\n\t\"./pt\": 84344,\n\t\"./pt-br\": 30113,\n\t\"./pt-br.js\": 30113,\n\t\"./pt.js\": 84344,\n\t\"./ro\": 72643,\n\t\"./ro.js\": 72643,\n\t\"./ru\": 61305,\n\t\"./ru.js\": 61305,\n\t\"./sd\": 96095,\n\t\"./sd.js\": 96095,\n\t\"./se\": 74486,\n\t\"./se.js\": 74486,\n\t\"./si\": 58742,\n\t\"./si.js\": 58742,\n\t\"./sk\": 96722,\n\t\"./sk.js\": 96722,\n\t\"./sl\": 3345,\n\t\"./sl.js\": 3345,\n\t\"./sq\": 52416,\n\t\"./sq.js\": 52416,\n\t\"./sr\": 39450,\n\t\"./sr-cyrl\": 50501,\n\t\"./sr-cyrl.js\": 50501,\n\t\"./sr.js\": 39450,\n\t\"./ss\": 32222,\n\t\"./ss.js\": 32222,\n\t\"./sv\": 9454,\n\t\"./sv.js\": 9454,\n\t\"./sw\": 19638,\n\t\"./sw.js\": 19638,\n\t\"./ta\": 96494,\n\t\"./ta.js\": 96494,\n\t\"./te\": 94435,\n\t\"./te.js\": 94435,\n\t\"./tet\": 25003,\n\t\"./tet.js\": 25003,\n\t\"./tg\": 13706,\n\t\"./tg.js\": 13706,\n\t\"./th\": 16025,\n\t\"./th.js\": 16025,\n\t\"./tk\": 59780,\n\t\"./tk.js\": 59780,\n\t\"./tl-ph\": 22068,\n\t\"./tl-ph.js\": 22068,\n\t\"./tlh\": 39167,\n\t\"./tlh.js\": 39167,\n\t\"./tr\": 32494,\n\t\"./tr.js\": 32494,\n\t\"./tzl\": 58707,\n\t\"./tzl.js\": 58707,\n\t\"./tzm\": 91296,\n\t\"./tzm-latn\": 34532,\n\t\"./tzm-latn.js\": 34532,\n\t\"./tzm.js\": 91296,\n\t\"./ug-cn\": 12086,\n\t\"./ug-cn.js\": 12086,\n\t\"./uk\": 85069,\n\t\"./uk.js\": 85069,\n\t\"./ur\": 29304,\n\t\"./ur.js\": 29304,\n\t\"./uz\": 95115,\n\t\"./uz-latn\": 97609,\n\t\"./uz-latn.js\": 97609,\n\t\"./uz.js\": 95115,\n\t\"./vi\": 34802,\n\t\"./vi.js\": 34802,\n\t\"./x-pseudo\": 65605,\n\t\"./x-pseudo.js\": 65605,\n\t\"./yo\": 88456,\n\t\"./yo.js\": 88456,\n\t\"./zh-cn\": 23272,\n\t\"./zh-cn.js\": 23272,\n\t\"./zh-hk\": 9402,\n\t\"./zh-hk.js\": 9402,\n\t\"./zh-mo\": 48101,\n\t\"./zh-mo.js\": 48101,\n\t\"./zh-tw\": 40262,\n\t\"./zh-tw.js\": 40262\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 46700;"],"x_google_ignoreList":[40]} \ No newline at end of file diff --git a/main.8f681e47f42fcadb.js b/main.8f681e47f42fcadb.js new file mode 100644 index 000000000..98903a1fa --- /dev/null +++ b/main.8f681e47f42fcadb.js @@ -0,0 +1,2 @@ +(self.webpackChunkigo2=self.webpackChunkigo2||[]).push([[179],{57682:(P,pe,d)=>{"use strict";var y=d(36480),e=d(61699),u=(d(4700),d(26575)),F=d(71268),S=d(60702),ke=d(22868),R=d(14447),Se=d(55866),de=d(56700),c=d(15564),m=d(38732),l=d(98655),b=d(91594),A=d(25267),Ee=d(39877);const he={production:!0,igo:{app:{forceCoordsNA:!1,install:{enabled:!0,promote:!0,manifestPath:"./config/github.webmanifest"},pwa:{enabled:!1}},catalog:{sources:[{id:"Gououvert",title:"Gouvouvert",url:"https://geoegl.msp.gouv.qc.ca/apis/ws/igo_gouvouvert.fcgi"},{id:"glace",title:"Carte de glace",url:"https://geoegl.msp.gouv.qc.ca/apis/ws/radarsat.fcgi",showLegend:!0}]},depot:{url:"/apis/depot"},dom:[{id:1,name:"dom_test",url:"https://ws.mapserver.transports.gouv.qc.ca/applicatif?service=WFS&request=GetFeature&version=2.0.0&outputformat=dom&typenames=dom&dom=dom_test"}],importExport:{url:"https://geoegl.msp.gouv.qc.ca/apis/ogre",configFileToGeoDBService:"./data/geoDataToIDB.json",clientSideFileSizeMaxMb:30,allowToStoreLayer:!0},language:{prefix:"./locale/"},interactiveTour:{tourInMobile:!0,pathToConfigFile:"./config/interactiveTour.json"},searchSources:{nominatim:{available:!1},storedqueries:{available:!1},icherche:{searchUrl:"https://geoegl.msp.gouv.qc.ca/apis/icherche",order:2,params:{limit:"8"}},coordinatesreverse:{showInPointerSummary:!0},icherchereverse:{showInPointerSummary:!0,searchUrl:"https://geoegl.msp.gouv.qc.ca/apis/terrapi",order:3,enabled:!0},ilayer:{searchUrl:"https://geoegl.msp.gouv.qc.ca/apis/icherche/layers",order:4,params:{limit:"5"}},cadastre:{enabled:!1}},projections:[{code:"EPSG:32198",alias:"Quebec Lambert",def:"+proj=lcc +lat_1=60 +lat_2=46 +lat_0=44 +lon_0=-68.5 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs",extent:[-799574,45802,891595.4,1849567.5]},{code:"EPSG:3798",alias:"MTQ Lambert",def:"+proj=lcc +lat_1=50 +lat_2=46 +lat_0=44 +lon_0=-70 +x_0=800000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs",extent:[31796.5834,158846.2231,1813323.4284,2141241.0978]}],searchOverlayStyle:{base:{markerColor:"#5ed0fb",markerOpacity:.8,markerOutlineColor:"#a7e7ff",fillColor:"#5ed0fb",fillOpacity:.2,strokeColor:"#5ed0fb",strokeOpacity:.7,strokeWidth:2},focus:{markerColor:"#5ed0fb",markerOpacity:1,markerOutlineColor:"#DFF7FF",fillColor:"#5ed0fb",fillOpacity:.3,strokeColor:"#DFF7FF",strokeOpacity:1,strokeWidth:2},selection:{markerColor:"#00a1de",markerOpacity:1,markerOutlineColor:"#ffffff",fillColor:"#00a1de",fillOpacity:.3,strokeColor:"#00A1DE",strokeOpacity:1,strokeWidth:2}},queryOverlayStyle:{base:{markerColor:"#5ed0fb",markerOpacity:.8,markerOutlineColor:"#a7e7ff",fillColor:"#5ed0fb",fillOpacity:.2,strokeColor:"#5ed0fb",strokeOpacity:.7,strokeWidth:2},focus:{markerColor:"#5ed0fb",markerOpacity:1,markerOutlineColor:"#DFF7FF",fillColor:"#5ed0fb",fillOpacity:.3,strokeColor:"#DFF7FF",strokeOpacity:1,strokeWidth:2},selection:{markerColor:"#00a1de",markerOpacity:1,markerOutlineColor:"#ffffff",fillColor:"#00a1de",fillOpacity:.3,strokeColor:"#00A1DE",strokeOpacity:1,strokeWidth:2}}}};var $e=d(22775),Fe=d(71670),Ae=d(13379),Be=d(35357),me=d(13738);class j{updates;languageService;confirmDialogService;confirmOpened=!1;constructor(n,t,o){this.updates=n,this.languageService=t,this.confirmDialogService=o,n.isEnabled&&this.handleVersionUpdates()}checkForUpdates(){var n=this;this.updates.isEnabled&&(0,Ae.F)(12e4).pipe((0,Be.T)(1)).subscribe((0,Fe.Z)(function*(){try{const t=yield n.updates.checkForUpdate();console.log(t?"A new version is available.":"Already on the latest version.")}catch(t){console.error("Failed to check for updates:",t)}}))}modalUpdatePWA(){if(this.confirmOpened)return;const o=`${this.languageService.translate.instant("pwa.new-version-title")} ${this.languageService.translate.instant("pwa.new-version")}`;this.confirmDialogService.open(o).pipe((0,me.b)(()=>this.confirmOpened=!0)).subscribe(a=>{a&&(this.confirmOpened=!1,window.navigator.onLine?document.location.reload():(alert("Hors-ligne / Offline. Vous devez \xeatre en ligne pour mettre \xe0 jour l'application. You must be online to update the application."),setTimeout(()=>{this.modalUpdatePWA()},9e5)))})}handleVersionUpdates(){this.updates.versionUpdates.subscribe(n=>{switch(n.type){case"VERSION_DETECTED":console.log(`Downloading new app version: ${n.version.hash}`);break;case"VERSION_READY":console.log(`Current app version: ${n.currentVersion.hash}`),console.log(`New app version ready for use: ${n.latestVersion.hash}`),this.modalUpdatePWA();break;case"VERSION_INSTALLATION_FAILED":console.error(`Failed to install app version '${n.version.hash}': ${n.error}`)}})}static \u0275fac=function(t){return new(t||j)(e.LFG(Se.yO),e.LFG(m.TS),e.LFG(c.DN))};static \u0275prov=e.Yz7({token:j,factory:j.\u0275fac,providedIn:"root"})}var w=d(92234),Ce=d(54860),ge=d(18625),be=d(73462),x=d(58071),L=d(33839),ue=d(84980),je=d(99422),z=d(50655),M=d(46367),Oe=d(81527);function fe(r){return r.getConfig("version.app")||r.getConfig("version.lib")||m.i8.lib}var s=d(12501);function ze(){return[(0,s.X$)("expansionPanelSize",[(0,s.SB)("full",(0,s.oB)({left:"5px","max-width":"100%"})),(0,s.SB)("notTriggered",(0,s.oB)({left:"5px",bottom:"5px","max-width":"100%"})),(0,s.SB)("notVisible",(0,s.oB)({display:"none"})),(0,s.SB)("mobile",(0,s.oB)({left:"calc(100% - 40px)"})),(0,s.SB)("reduced",(0,s.oB)({left:"405px","max-width":"calc(100% - 405px)"})),(0,s.SB)("reducedNotTriggered",(0,s.oB)({left:"405px",bottom:"5px","max-width":"calc(100% - 405px)"})),(0,s.eR)("* => *",(0,s.jt)("100ms"))]),(0,s.X$)("toastOffsetY",[(0,s.SB)("true",(0,s.oB)({bottom:"50px"})),(0,s.SB)("false",(0,s.oB)({bottom:"5px"}))])]}function Ze(){return[(0,s.X$)("toastPanelMobileSidenav",[(0,s.SB)("true",(0,s.oB)({display:"none"})),(0,s.eR)("* => void",(0,s.jt)("0ms")),(0,s.eR)("* => *",(0,s.jt)("200ms"))]),(0,s.X$)("toastPanelOffsetX",[(0,s.SB)("fullStandard",(0,s.oB)({left:"45%"})),(0,s.SB)("standard",(0,s.oB)({left:"50%"})),(0,s.SB)("htmlDisplay",(0,s.oB)({left:"40%"})),(0,s.SB)("fullOffsetX",(0,s.oB)({left:"calc(45% + 202px)"})),(0,s.SB)("standardOffsetX",(0,s.oB)({left:"calc(50% + 202px)"})),(0,s.SB)("htmlDisplayOffsetX",(0,s.oB)({left:"calc(40% + 160px)"})),(0,s.eR)("fullStandard => fullOffsetX",(0,s.jt)("200ms")),(0,s.eR)("fullOffsetX => fullStandard",(0,s.jt)("200ms")),(0,s.eR)("standard => standardOffsetX",(0,s.jt)("200ms")),(0,s.eR)("standardOffsetX => standard",(0,s.jt)("200ms")),(0,s.eR)("htmlDisplay => htmlDisplayOffsetX",(0,s.jt)("200ms")),(0,s.eR)("htmlDisplayOffsetX => htmlDisplay",(0,s.jt)("200ms"))]),(0,s.X$)("toastPanelOffsetY",[(0,s.SB)("noExpansion",(0,s.oB)({bottom:"0"})),(0,s.SB)("expansionAndToastOpened",(0,s.oB)({bottom:"285px",zIndex:"999"})),(0,s.SB)("expansionAndToastClosed",(0,s.oB)({bottom:"285px",zIndex:"5"})),(0,s.SB)("expansionMaximizedAndToastOpened",(0,s.oB)({bottom:"500px",zIndex:"999"})),(0,s.SB)("expansionMaximizedAndToastClosed",(0,s.oB)({bottom:"500px",zIndex:"5"})),(0,s.eR)("noExpansion => noExpansion",(0,s.jt)("10ms")),(0,s.eR)("expansionAndToastOpened => expansionAndToastOpened",(0,s.jt)("200ms")),(0,s.eR)("expansionAndToastClosed => expansionAndToastClosed",(0,s.jt)("200ms")),(0,s.eR)("expansionMaximizedAndToastOpened => expansionMaximizedAndToastOpened",(0,s.jt)("200ms")),(0,s.eR)("expansionMaximizedAndToastClosed => expansionMaximizedAndToastClosed",(0,s.jt)("200ms"))])]}function Re(){return[(0,s.X$)("controlsOffsetY",[(0,s.SB)("close",(0,s.oB)({})),(0,s.SB)("firstRowFromBottom",(0,s.oB)({bottom:"5px"})),(0,s.SB)("firstRowFromBottom-expanded",(0,s.oB)({bottom:"285px"})),(0,s.SB)("firstRowFromBottom-expanded-maximized",(0,s.oB)({bottom:"500px"})),(0,s.SB)("secondRowFromBottom",(0,s.oB)({bottom:"47px"})),(0,s.SB)("thirdRowFromBottom",(0,s.oB)({bottom:"104px"})),(0,s.SB)("",(0,s.oB)({bottom:"calc(285px)"})),(0,s.SB)("secondRowFromBottom-expanded",(0,s.oB)({bottom:"calc(285px + 52px)"})),(0,s.SB)("thirdRowFromBottom-expanded",(0,s.oB)({bottom:"calc(285px + 104px)"})),(0,s.eR)("* => *",(0,s.jt)("200ms"))]),(0,s.X$)("mobileOffsetY",[(0,s.SB)("low",(0,s.oB)({bottom:"50px"})),(0,s.eR)("* => *",(0,s.jt)("200ms"))])]}function Le(){return(0,s.X$)("controlStateX",[(0,s.SB)("left",(0,s.oB)({left:"60px"})),(0,s.SB)("right",(0,s.oB)({left:"465px"})),(0,s.eR)("* => *",(0,s.jt)("200ms"))])}function Ie(){return(0,s.X$)("controlStateY",[(0,s.SB)("close",(0,s.oB)({})),(0,s.SB)("firstRowFromBottom",(0,s.oB)({bottom:"2px","margin-left":"0px"})),(0,s.SB)("firstRowFromBottom-expanded",(0,s.oB)({bottom:"285px","margin-left":"-55px"})),(0,s.SB)("firstRowFromBottom-expanded-maximized",(0,s.oB)({bottom:"500px","margin-left":"-55px"})),(0,s.eR)("* => *",(0,s.jt)("200ms"))])}function De(){return(0,s.X$)("mapStateX",[(0,s.SB)("left",(0,s.oB)({left:"0"})),(0,s.SB)("right",(0,s.oB)({left:"0"})),(0,s.eR)("* => *",(0,s.jt)("200ms"))])}function He(){return(0,s.X$)("mapStateY",[(0,s.SB)("*",(0,s.oB)({bottom:"0"})),(0,s.eR)("* => *",(0,s.jt)("200ms"))])}var xe=d(79736),T=d(66861);class B{configService;storageService;nbVisit;showAgain;igoVersionDifferentFromStorage=!1;constructor(n,t){this.configService=n,this.storageService=t,this.igoVersionDifferentFromStorage=this.isVersionDifferentFromStorage(),this.setStorageConfig()}setStorageConfig(){this.nbVisit=Number(this.storageService.get("welcomeWindow_nbVisit")),this.nbVisit||(this.nbVisit=0),this.storageService.set("welcomeWindow_nbVisit",this.nbVisit+=1)}isVersionDifferentFromStorage(){return this.storageService.get("version")!==fe(this.configService)}hasWelcomeWindow(){return!1===this.storageService.get("welcomeWindow_showAgain")||"false"===this.storageService.get("welcomeWindow_showAgain")?(this.nbVisit>=this.configService.getConfig("welcomeWindow.nbVisitToShowAgain")||!(!this.configService.getConfig("welcomeWindow.showAgainOnNewIGOVersion")||!this.igoVersionDifferentFromStorage))&&(this.storageService.set("welcomeWindow_nbVisit",0),this.storageService.remove("welcomeWindow_showAgain"),!0):typeof this.configService.getConfig("welcomeWindow.nbVisitToShow")<"u"&&this.nbVisit>this.configService.getConfig("welcomeWindow.nbVisitToShow")?(this.storageService.set("welcomeWindow_showAgain",!1),!1):this.configService.getConfig("welcomeWindow")}getConfig(){const n=new T.vA;return n.disableClose=!0,n.autoFocus=!0,n.maxWidth="500px",n}afterClosedWelcomeWindow(){this.storageService.set("welcomeWindow_showAgain",this.showAgain)}static \u0275fac=function(t){return new(t||B)(e.LFG(m.M$),e.LFG(m.V1))};static \u0275prov=e.Yz7({token:B,factory:B.\u0275fac,providedIn:"root"})}var I=d(28849),v=d(90895),D=d(52484),k=d(5939);function We(r,n){if(1&r){const t=e.EpF();e.TgZ(0,"div",1)(1,"mat-toolbar",2)(2,"h4"),e._uU(3),e.ALo(4,"translate"),e.qZA(),e._UZ(5,"span",3),e.TgZ(6,"label",4)(7,"input",5),e.NdJ("ngModelChange",function(a){e.CHM(t);const i=e.oxw();return e.KtG(i.showAgain=a)})("click",function(){e.CHM(t);const a=e.oxw();return e.KtG(a.setShowAgain())}),e.qZA(),e._uU(8),e.ALo(9,"translate"),e.qZA()(),e.TgZ(10,"div",6),e._UZ(11,"igo-custom-html",7),e.ALo(12,"async"),e.qZA(),e._UZ(13,"p"),e.TgZ(14,"div",8)(15,"igo-interactive-tour",9),e.NdJ("click",function(){e.CHM(t);const a=e.oxw();return e.KtG(a.closeWelcomeWindow())}),e.qZA(),e.TgZ(16,"button",10),e._uU(17),e.ALo(18,"translate"),e.qZA()()()}if(2&r){const t=e.oxw();e.xp6(3),e.Oqu(e.lcZ(4,6,"welcomeWindow.title")),e.xp6(4),e.Q6J("ngModel",t.showAgain),e.xp6(1),e.hij(" ",e.lcZ(9,8,"welcomeWindow.notShowCheck")," "),e.xp6(3),e.Q6J("html",e.lcZ(12,10,t.html$)),e.xp6(4),e.Q6J("discoverTitleInLocale$",t.discoverTitleInLocale$),e.xp6(2),e.hij(" ",e.lcZ(18,12,"welcomeWindow.closeButton")," ")}}class H{dialog;welcomeWindowService;configService;languageService;showAgain=!1;discoverTitleInLocale$;title$$;html$=new x.X(void 0);constructor(n,t,o,a){this.dialog=n,this.welcomeWindowService=t,this.configService=o,this.languageService=a,this.discoverTitleInLocale$=(0,ue.of)(this.configService.getConfig("welcomeWindow.discoverTitleInLocale",this.configService.getConfig("title")))}ngOnInit(){this.computeHtml()}closeWelcomeWindow(){this.dialog.closeAll()}computeHtml(){let n=0,t=!0,o=new Date(this.configService.getConfig("version.releaseDate"));const a=this.configService.getConfig("version.releaseDateApp");if(a){const p=new Date(a);isNaN(p.getDate())?(console.log("The releaseDateApp config is not a valid date format"),t=!1):(n=1,o=p)}let i="";if(t){let p=o.getDate()+n;p<10&&(p="0"+p);let h=o.getMonth()+1;h<10&&(h="0"+h),i=`${o.getFullYear()}-${h}-${p}`}else i=a;return this.title$$=this.languageService.translate.get(this.configService.getConfig("title","")).pipe((0,xe.U)(p=>this.languageService.translate.instant("welcomeWindow.html",{title:p,description:this.configService.getConfig("description",""),version:fe(this.configService),releaseDate:i||""}))).subscribe(p=>this.html$.next(p)),this.html$}setShowAgain(){this.welcomeWindowService.showAgain=this.showAgain}ngOnDestroy(){this.title$$&&this.title$$.unsubscribe()}static \u0275fac=function(t){return new(t||H)(e.Y36(T.uw),e.Y36(B),e.Y36(m.M$),e.Y36(m.TS))};static \u0275cmp=e.Xpm({type:H,selectors:[["app-welcome-window"]],decls:2,vars:3,consts:[["class","welcome-window",4,"ngIf"],[1,"welcome-window"],["color","primary"],[1,"spacer"],[1,"mat-body-2"],["id","doNotShowCheck","type","checkbox",3,"ngModel","ngModelChange","click"],["mat-dialog-content","",1,"text"],[3,"html"],[1,"button-container"],["id","tour-button","styleButton","raised",3,"discoverTitleInLocale$","click"],["mat-raised-button","","color","primary","mat-dialog-close","",1,"button-close"]],template:function(t,o){1&t&&(e.YNc(0,We,19,14,"div",0),e.ALo(1,"async")),2&t&&e.Q6J("ngIf",e.lcZ(1,1,o.html$))},dependencies:[u.O5,I.Wl,I.JJ,I.On,T.ZT,T.xY,c.bB,c.n_,v.lW,D.Ye,k.X$,u.Ov],styles:["[_nghost-%COMP%]{display:block;padding:16px}[_nghost-%COMP%] .spacer[_ngcontent-%COMP%]{flex:1 1 auto}[_nghost-%COMP%] .button-container[_ngcontent-%COMP%]{display:flex;justify-content:space-around}[_nghost-%COMP%] #doNotShowCheck[_ngcontent-%COMP%]{margin-right:5px}[_nghost-%COMP%] mat-toolbar[_ngcontent-%COMP%] h2[_ngcontent-%COMP%]{margin:revert}[_nghost-%COMP%] label[_ngcontent-%COMP%]{margin-bottom:0}[_nghost-%COMP%] .mat-mdc-dialog-container[_ngcontent-%COMP%]{z-index:1000;box-shadow:0 0 0 1000em #0009;transform:translate(-50%)}[_nghost-%COMP%] .custom-html{padding:0!important}"]})}var C=d(86515),Z=d(31465);function Je(r="150ms",n="300ms",t="ease-in-out"){return(0,s.X$)("showContent",[(0,s.SB)("true",(0,s.oB)({opacity:1})),(0,s.SB)("false",(0,s.oB)({opacity:0})),(0,s.eR)("false => true",(0,s.jt)(`${r} ${n} ${t}`)),(0,s.eR)("true => false",(0,s.jt)("0ms"))])}function Ye(r,n){1&r&&e._UZ(0,"mat-icon",5)}function Qe(r,n){1&r&&e._UZ(0,"mat-icon",6)}const Ne=["*"];class W{get expanded(){return this._expanded}set expanded(n){n!==this._expanded&&(this._expanded=n,this.expandedChange.emit(this._expanded))}_expanded;expandedChange=new e.vpe;get hasExpandedClass(){return this.expanded}constructor(){}onToggleClick(){this.expanded=!this.expanded}static \u0275fac=function(t){return new(t||W)};static \u0275cmp=e.Xpm({type:W,selectors:[["app-expansion-panel-header"]],hostVars:2,hostBindings:function(t,o){2&t&&e.ekj("app-expansion-panel-header-expanded",o.hasExpandedClass)},inputs:{expanded:"expanded"},outputs:{expandedChange:"expandedChange"},ngContentSelectors:Ne,decls:7,vars:5,consts:[[1,"app-expansion-panel-trigger-container","mat-elevation-z2"],["mat-icon-button","","color","primary",3,"matTooltip","click"],["svgIcon","launch",4,"ngIf"],["style","transform: rotate(180deg)","svgIcon","launch",4,"ngIf"],[1,"app-expansion-panel-content"],["svgIcon","launch"],["svgIcon","launch",2,"transform","rotate(180deg)"]],template:function(t,o){1&t&&(e.F$t(),e.TgZ(0,"div",0)(1,"button",1),e.NdJ("click",function(){return o.onToggleClick()}),e.ALo(2,"translate"),e.YNc(3,Ye,1,0,"mat-icon",2),e.YNc(4,Qe,1,0,"mat-icon",3),e.qZA()(),e.TgZ(5,"div",4),e.Hsn(6),e.qZA()),2&t&&(e.xp6(1),e.Q6J("matTooltip",e.lcZ(2,3,o.expanded?"workspace.close":"workspace.open")),e.xp6(2),e.Q6J("ngIf",!o.expanded),e.xp6(1),e.Q6J("ngIf",o.expanded))},dependencies:[u.O5,v.RK,C.Hw,S.gM,k.X$],styles:["[_nghost-%COMP%]{border-bottom:2px solid aliceblue;display:flex;align-items:center}[_nghost-%COMP%] button[_ngcontent-%COMP%]{width:40px;height:40px;padding:8px}.app-expansion-panel-trigger-container[_ngcontent-%COMP%]{display:flex}.app-expansion-panel-content[_ngcontent-%COMP%]{display:flex;height:100%}"],changeDetection:0})}const Ue=[[["","expansionPanelHeader",""]],"*"],Ge=["[expansionPanelHeader]","*"];class J{get expanded(){return this._expanded}set expanded(n){n!==this._expanded&&(this._expanded=n,this.expandedChange.emit(this._expanded))}_expanded;maximized=!1;get backdropShown(){return this._backdropShown}set backdropShown(n){this._backdropShown=n}_backdropShown;expandedChange=new e.vpe;get hasExpandedClass(){return this.expanded}get hasExpandedFullClass(){return this.expanded&&this.maximized}constructor(){}onBackdropClick(){this.expanded=!1,this.backdropShown=!1}static \u0275fac=function(t){return new(t||J)};static \u0275cmp=e.Xpm({type:J,selectors:[["app-expansion-panel"]],hostVars:4,hostBindings:function(t,o){2&t&&e.ekj("app-expansion-panel-expanded",o.hasExpandedClass)("app-expansion-panel-expanded-maximized",o.hasExpandedFullClass)},inputs:{expanded:"expanded",maximized:"maximized",backdropShown:"backdropShown"},outputs:{expandedChange:"expandedChange"},ngContentSelectors:Ge,decls:7,vars:3,consts:[[1,"app-expansion-panel-container"],[3,"shown","click"],[3,"expanded","expandedChange"],[1,"app-expansion-panel-content","mat-elevation-z4"]],template:function(t,o){1&t&&(e.F$t(Ue),e.TgZ(0,"div")(1,"div",0)(2,"igo-backdrop",1),e.NdJ("click",function(){return o.onBackdropClick()}),e.qZA(),e.TgZ(3,"app-expansion-panel-header",2),e.NdJ("expandedChange",function(i){return o.expanded=i}),e.Hsn(4),e.qZA(),e.TgZ(5,"div",3),e.Hsn(6,1),e.qZA()()()),2&t&&(e.xp6(2),e.Q6J("shown",o.backdropShown),e.xp6(1),e.Q6J("expanded",o.expanded),e.xp6(2),e.Q6J("@showContent",o.expanded))},dependencies:[c.qv,W],styles:["[_nghost-%COMP%]{-o-box-shadow:0px 0px 2px 0px #dddddd;box-shadow:0 0 2px #ddd}[_nghost-%COMP%]{display:block;background-color:#fff;height:40px;width:40px;transition:height .2s cubic-bezier(.4,0,.2,1),width .2s cubic-bezier(.4,0,.2,1)}[_nghost-%COMP%]:not(.app-expansion-panel-expanded) .app-expansion-panel-content{display:none}.app-expansion-panel-expanded[_nghost-%COMP%]{height:281px;width:100%;z-index:6}.app-expansion-panel-expanded[_nghost-%COMP%] .app-expansion-panel-trigger-container{box-shadow:none}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){.app-expansion-panel-expanded.footer[_nghost-%COMP%]{margin-bottom:48px}}.app-expansion-panel-container[_ngcontent-%COMP%]{height:100%;width:100%}.app-expansion-panel-expanded-maximized[_nghost-%COMP%]{height:496px;width:100%;z-index:6}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){.app-expansion-panel-expanded-maximized.footer[_nghost-%COMP%]{margin-bottom:48px}}[_nghost-%COMP%] > div[_ngcontent-%COMP%]{height:100%;width:100%}.app-expansion-panel-content[_ngcontent-%COMP%]{height:calc(100% - 50px);overflow:auto;padding:5px}igo-backdrop[_ngcontent-%COMP%] >div{z-index:120!important}.app-expansion-panel-content[_ngcontent-%COMP%] .igo-entity-table-with-selection{width:100%}"],data:{animation:[Je()]},changeDetection:0})}var qe=d(52148),Ve=d(28746),Pe=d(75392);function Xe(r,n){if(1&r){const t=e.EpF();e.TgZ(0,"button",16),e.NdJ("click",function(){e.CHM(t);const a=e.oxw(3);return e.KtG(a.zoomTo())}),e.ALo(1,"translate"),e.ALo(2,"async"),e._UZ(3,"mat-icon",17),e.ALo(4,"async"),e.ALo(5,"async"),e.qZA()}if(2&r){const t=e.oxw(3);e.Q6J("matTooltip",e.lcZ(1,3,e.lcZ(2,5,t.isSelectedResultOutOfView$)?"toastPanel.zoomOnFeatureTooltipOutOfView":"toastPanel.zoomOnFeatureTooltip")),e.xp6(3),e.Q6J("matBadge",e.lcZ(4,7,t.isSelectedResultOutOfView$)?"!":"")("matBadgeHidden",!0!==e.lcZ(5,9,t.isSelectedResultOutOfView$))}}function Ke(r,n){if(1&r){const t=e.EpF();e.TgZ(0,"button",18),e.NdJ("click",function(){e.CHM(t);const a=e.oxw(3);return e.KtG(a.handleLayer())}),e.ALo(1,"translate"),e.ALo(2,"async"),e.ALo(3,"async"),e._UZ(4,"mat-icon",19),e.ALo(5,"async"),e.qZA()}if(2&r){const t=e.oxw(3);e.Q6J("matTooltip",e.lcZ(1,3,e.lcZ(2,5,t.potententialLayerisAdded$)?"toastPanel.removeLayer":"toastPanel.addLayer"))("color",e.lcZ(3,7,t.potententialLayerisAdded$)?"warn":""),e.xp6(4),e.Q6J("svgIcon",e.lcZ(5,9,t.potententialLayerisAdded$)?"delete":"plus")}}function et(r,n){if(1&r){const t=e.EpF();e.TgZ(0,"button",20),e.NdJ("click",function(){e.CHM(t);const a=e.oxw(3);return e.KtG(a.previousResult())}),e.ALo(1,"translate"),e._UZ(2,"mat-icon",21),e.qZA()}if(2&r){const t=e.oxw(3);e.Q6J("disabled",t.results[0].meta.id===t.resultSelected$.value.meta.id)("matTooltip",e.lcZ(1,2,"toastPanel.previousFeatureTooltip"))}}function tt(r,n){if(1&r){const t=e.EpF();e.TgZ(0,"button",22),e.NdJ("click",function(){e.CHM(t);const a=e.oxw(3);return e.KtG(a.nextResult())}),e.ALo(1,"translate"),e._UZ(2,"mat-icon",23),e.qZA()}if(2&r){const t=e.oxw(3);e.Q6J("disabled",t.results[t.results.length-1].meta.id===t.resultSelected$.value.meta.id)("matTooltip",e.lcZ(1,2,"toastPanel.nextFeatureTooltip"))}}function nt(r,n){if(1&r){const t=e.EpF();e.TgZ(0,"button",24),e.NdJ("click",function(){e.CHM(t);const a=e.oxw(3);return e.KtG(a.resizeWindows())}),e.ALo(1,"translate"),e.ALo(2,"async"),e._UZ(3,"mat-icon",19),e.qZA()}if(2&r){const t=e.oxw(3);e.Q6J("matTooltip",e.lcZ(1,2,e.lcZ(2,4,t.fullExtent$)?"toastPanel.standardExtentTooltip":"toastPanel.fullExtentTooltip")),e.xp6(3),e.s9C("svgIcon",t.iconResizeWindows)}}function ot(r,n){if(1&r){const t=e.EpF();e.TgZ(0,"igo-feature-details",25),e.NdJ("htmlDisplayEvent",function(a){e.CHM(t);const i=e.oxw(3);return e.KtG(i.setHtmlDisplay(a))}),e.qZA()}if(2&r){const t=e.oxw(3);e.Q6J("map",t.map)("feature",t.resultSelected$.value.data)}}function at(r,n){if(1&r){const t=e.EpF();e.TgZ(0,"igo-search-results",26),e.NdJ("resultFocus",function(a){e.CHM(t);const i=e.oxw(3);return e.KtG(i.focusResult(a))})("resultUnfocus",function(a){e.CHM(t);const i=e.oxw(3);return e.KtG(i.unfocusResult(a,!0))})("resultSelect",function(a){e.CHM(t);const i=e.oxw(3);return e.KtG(i.selectResult(a))}),e.qZA()}if(2&r){const t=e.oxw(3);e.Q6J("map",t.map)("store",t.store)("showIcons",!0)("withZoomButton",t.withZoomButton)("tabsMode",t.tabsMode)}}function it(r,n){if(1&r){const t=e.EpF();e.TgZ(0,"igo-panel",3),e.NdJ("click",function(a){e.CHM(t);const i=e.oxw(2);return e.KtG(i.onToggleClick(a))})("keydown",function(a){e.CHM(t);const i=e.oxw(2);return e.KtG(i.handleKeyboardEvent(a))}),e.ALo(1,"translate"),e._UZ(2,"igo-actionbar",4),e.YNc(3,Xe,6,11,"button",5),e.YNc(4,Ke,6,11,"button",6),e.YNc(5,et,3,4,"button",7),e.YNc(6,tt,3,4,"button",8),e.YNc(7,nt,4,6,"button",9),e.TgZ(8,"button",10),e.NdJ("click",function(){e.CHM(t);const a=e.oxw(2);return e.KtG(a.clear())}),e._UZ(9,"mat-icon",11),e.qZA(),e.TgZ(10,"div",12,13),e.YNc(12,ot,1,2,"igo-feature-details",14),e.YNc(13,at,1,5,"igo-search-results",15),e.qZA()()}if(2&r){const t=e.oxw(2);e.Q6J("ngClass",t.getClassPanel())("id",t.setHeighPanelTabsMode())("title",t.resultSelected$.value?t.getTitle(t.resultSelected$.value):e.lcZ(1,16,"toastPanel.title")),e.xp6(2),e.Q6J("store",t.actionStore)("withIcon",!0)("icon",t.icon)("withTitle","overlay"===t.actionbarMode)("horizontal",!0)("mode",t.actionbarMode),e.xp6(1),e.Q6J("ngIf",t.resultSelected$.value),e.xp6(1),e.Q6J("ngIf",t.hasGeoService()),e.xp6(1),e.Q6J("ngIf",t.resultSelected$.value),e.xp6(1),e.Q6J("ngIf",t.resultSelected$.value),e.xp6(1),e.Q6J("ngIf",t.opened&&t.isDesktop()),e.xp6(5),e.Q6J("ngIf",t.resultSelected$.value),e.xp6(1),e.Q6J("ngIf",!t.resultSelected$.value)}}function st(r,n){if(1&r&&(e.YNc(0,it,14,18,"igo-panel",2),e.ALo(1,"async")),2&r){const t=e.oxw();e.Q6J("ngIf",e.lcZ(1,1,t.store.entities$))}}function rt(r,n){}function lt(r,n){if(1&r){const t=e.EpF();e.TgZ(0,"div",27),e.NdJ("swipeleft",function(a){e.CHM(t);const i=e.oxw();return e.KtG(i.swipe(a.type))})("swiperight",function(a){e.CHM(t);const i=e.oxw();return e.KtG(i.swipe(a.type))})("swipeup",function(a){e.CHM(t);const i=e.oxw();return e.KtG(i.swipe(a.type))})("swipedown",function(a){e.CHM(t);const i=e.oxw();return e.KtG(i.swipe(a.type))}),e.YNc(1,rt,0,0,"ng-template",28),e.qZA()}if(2&r){e.oxw();const t=e.MAs(1);e.xp6(1),e.Q6J("ngTemplateOutlet",t)}}class O{mediaService;languageService;storageState;queryState;workspaceState;configService;propertyTypeDetectorService;layerService;static SWIPE_ACTION={RIGHT:"swiperight",LEFT:"swipeleft",UP:"swipeup",DOWN:"swipedown"};tabsMode;get storageService(){return this.storageState.storageService}get map(){return this._map}set map(n){this._map=n}_map;get store(){return this._store}set store(n){this._store=n,this.store.entities$.subscribe(t=>{this.unselectResult()})}_store;get opened(){return this._opened}set opened(n){n===!this._opened&&(this._opened=n,this.storageService.set("toastOpened",n,m.fO.SESSION),this.openedChange.emit(n))}_opened=!0;hasFeatureEmphasisOnSelection=!1;get zoomAuto(){return this._zoomAuto}set zoomAuto(n){n===!this._zoomAuto&&(this._zoomAuto=n,this.zoomAuto$.next(n),this.storageService.set("zoomAuto",n))}_zoomAuto=!1;get fullExtent(){return this._fullExtent}set fullExtent(n){n===!this._fullExtent&&(this._fullExtent=n,this.fullExtent$.next(n),this.fullExtentEvent.emit(n),this.storageService.set("fullExtent",n))}_fullExtent=!1;potententialLayerToAdd$=new x.X(void 0);potententialLayerisAdded$=new x.X(!1);fullExtent$=new x.X(this.fullExtent);isHtmlDisplay=!1;iconResizeWindows="";icon="menu";actionStore=new c.Dn([]);actionbarMode=c.rO.Overlay;multiple$=new x.X(!1);isResultSelected$=new x.X(!1);isSelectedResultOutOfView$=new x.X(!1);isSelectedResultOutOfView$$;storageChange$$;initialized=!0;format=new ge.Z;resultOrResolution$$;focusedResult$=new x.X(void 0);abstractFocusedOrSelectedResult;withZoomButton=!0;zoomAuto$=new x.X(!1);openedChange=new e.vpe;fullExtentEvent=new e.vpe;windowHtmlDisplayEvent=new e.vpe;resultSelected$=new x.X(void 0);getClassPanel(){return{"app-toast-panel-opened":this.opened&&!this.fullExtent&&!this.isHtmlDisplay,"app-full-toast-panel-opened":this.opened&&this.fullExtent&&!this.isHtmlDisplay,"app-toast-panel-html":this.opened&&!this.fullExtent&&this.resultSelected$.value&&this.isHtmlDisplay,"app-toast-panel-html-large":this.opened&&this.fullExtent&&this.resultSelected$.value&&this.isHtmlDisplay,"app-toast-panel-collapsed":!this.opened&&!this.fullExtent&&!this.isHtmlDisplay,"app-full-toast-panel-collapsed":!this.opened&&this.fullExtent&&!this.isHtmlDisplay,"app-toast-panel-html-collapsed":!this.opened&&this.isHtmlDisplay}}setHeighPanelTabsMode(){return this.resultSelected$.value||!this.opened?"":!this.tabsMode||this.fullExtent||this.isHtmlDisplay?this.tabsMode&&this.opened&&this.fullExtent&&!this.isHtmlDisplay?"app-full-toast-panel-opened-max-height":void 0:"app-toast-panel-opened-max-height"}get displayStyle(){return this.results.length?(1===this.results.length&&this.initialized&&this.selectResult(this.results[0]),"visible"):"hidden"}onEscapeHandler(n){this.clear()}onBackHandler(n){this.unselectResult()}onZoomHandler(n){if(!0===this.isResultSelected$.getValue()){const t=this.format.readFeature(this.resultSelected$.getValue().data,{dataProjection:this.resultSelected$.getValue().data.projection,featureProjection:this.map.projection});(0,l.ybU)(this.map.viewController,[t],l.bAZ.Default)}}get results(){return this.store.all()}get multiple(){return this.results.length?this.multiple$.next(!0):this.multiple$.next(!1),this.multiple$}constructor(n,t,o,a,i,p,h,g){this.mediaService=n,this.languageService=t,this.storageState=o,this.queryState=a,this.workspaceState=i,this.configService=p,this.propertyTypeDetectorService=h,this.layerService=g,this.tabsMode=this.configService.getConfig("queryTabs",!1),this.opened=this.storageService.get("toastOpened"),this.zoomAuto=this.storageService.get("zoomAuto"),this.fullExtent=this.storageService.get("fullExtent"),this.setResizeWindowIcon()}monitorResultOutOfView(){this.isSelectedResultOutOfView$$=(0,L.a)([this.map.viewController.state$,this.resultSelected$]).pipe((0,z.b)(100)).subscribe(n=>{const t=n[1];if(!t)return void this.isSelectedResultOutOfView$.next(!1);const o=(0,l.zMd)(t.data,this.map.projection),a=(0,l.HgW)([o],this.map.viewProjection);this.isSelectedResultOutOfView$.next((0,l.brJ)(this.map.getExtent(),a))})}ngOnInit(){let n,t;this.store.entities$.subscribe(()=>{this.initialized=!0}),this.monitorResultOutOfView(),this.hasFeatureEmphasisOnSelection&&(this.resultOrResolution$$=(0,L.a)([this.focusedResult$.pipe((0,me.b)(o=>{n=o,t="focused"})),this.resultSelected$.pipe((0,me.b)(o=>{n=o,t="selected"})),this.map.viewController.resolution$,this.store.entities$]).subscribe(()=>this.buildResultEmphasis(n,t))),this.storageChange$$=this.storageService.storageChange$.pipe((0,M.n)(o=>"zoomAuto"!==o.key)).subscribe(o=>{this.zoomAuto=o.currentValue}),this.actionStore.load([{id:"list",title:this.languageService.translate.instant("toastPanel.backToList"),icon:"format-list-bulleted-square",tooltip:this.languageService.translate.instant("toastPanel.listButton"),display:()=>this.isResultSelected$,handler:()=>{this.unselectResult()}},{id:"zoomFeature",title:this.languageService.translate.instant("toastPanel.zoomOnFeature"),icon:"magnify-plus-outline",tooltip:this.languageService.translate.instant("toastPanel.zoomOnFeatureTooltip"),display:()=>this.isResultSelected$,handler:()=>{const o=this.format.readFeature(this.resultSelected$.getValue().data,{dataProjection:this.resultSelected$.getValue().data.projection,featureProjection:this.map.projection});(0,l.ybU)(this.map.viewController,[o],l.bAZ.Zoom)}},{id:"zoomResults",title:this.languageService.translate.instant("toastPanel.zoomOnFeatures"),tooltip:this.languageService.translate.instant("toastPanel.zoomOnFeaturesTooltip"),icon:"magnify-scan",availability:()=>this.multiple,handler:()=>{const o=[];for(const a of this.store.all()){const i=this.format.readFeature(a.data,{dataProjection:a.data.projection,featureProjection:this.map.projection});o.push(i)}(0,l.ybU)(this.map.viewController,o,l.bAZ.Zoom)}},{id:"zoomAuto",title:this.languageService.translate.instant("toastPanel.zoomAuto"),tooltip:this.languageService.translate.instant("toastPanel.zoomAutoTooltip"),checkbox:!0,checkCondition:this.zoomAuto$,handler:()=>{this.zoomAuto=!this.zoomAuto,this.zoomAuto&&!0===this.isResultSelected$.value&&this.selectResult(this.resultSelected$.getValue())}},{id:"fullExtent",title:this.languageService.translate.instant("toastPanel.fullExtent"),tooltip:this.languageService.translate.instant("toastPanel.fullExtentTooltip"),icon:"arrow-expand",display:()=>this.fullExtent$.pipe((0,xe.U)(o=>!o&&!this.isDesktop())),handler:()=>{this.fullExtent=!0}},{id:"standardExtent",title:this.languageService.translate.instant("toastPanel.standardExtent"),tooltip:this.languageService.translate.instant("toastPanel.standardExtentTooltip"),icon:"arrow-collapse",display:()=>this.fullExtent$.pipe((0,xe.U)(o=>o&&!this.isDesktop())),handler:()=>{this.fullExtent=!1}}]),this.computeFeatureGeoServiceStatus(),(0,L.a)([this.resultSelected$,this.map.layers$]).subscribe(()=>{this.computeFeatureGeoServiceStatus()})}ngOnDestroy(){this.resultOrResolution$$&&this.resultOrResolution$$.unsubscribe(),this.isSelectedResultOutOfView$$&&this.isSelectedResultOutOfView$$.unsubscribe(),this.storageChange$$&&this.storageChange$$.unsubscribe()}buildResultEmphasis(n,t){if(this.clearFeatureEmphasis(),!n||"selected"===t&&this.zoomAuto)return;const a=(0,l.zMd)(n.data,this.map.projection).getGeometry();if((0,l.fle)(this.map.viewController,a.getExtent(),.0025)){const i=a.getExtent(),p=i[0]+(i[2]-i[0])/2,h=i[1]+(i[3]-i[1])/2,g=new qe.Z({name:"abstractFocusedOrSelectedResult",geometry:new Ve.Z([p,h])});this.abstractFocusedOrSelectedResult=(0,l.ve2)(g,this.map.projection),this.abstractFocusedOrSelectedResult.meta.style=(0,l.DQ6)(Object.assign({},{feature:this.abstractFocusedOrSelectedResult},"selected"===t?this.queryState.queryOverlayStyleSelection:this.queryState.queryOverlayStyleFocus)),this.abstractFocusedOrSelectedResult.meta.style.setZIndex(2e3),this.map.queryResultsOverlay.addFeature(this.abstractFocusedOrSelectedResult,l.bAZ.None)}}clearFeatureEmphasis(){this.abstractFocusedOrSelectedResult&&(this.map.queryResultsOverlay.removeFeature(this.abstractFocusedOrSelectedResult),this.abstractFocusedOrSelectedResult=void 0)}getTitle(n){return(0,c.TF)(n)}focusResult(n){this.focusedResult$.next(n),this.map.queryResultsOverlay.removeFeature(n.data),n.data.meta.style=(0,l.DQ6)(Object.assign({},{feature:n.data},this.queryState.queryOverlayStyleFocus)),n.data.meta.style.setZIndex(2e3),this.map.queryResultsOverlay.addFeature(n.data,l.bAZ.None)}unfocusResult(n,t){this.focusedResult$.next(void 0),(t||!this.store.state.get(n).focused)&&(this.map.queryResultsOverlay.removeFeature(n.data),n.data.meta.style=(0,l.eU6)(Object.assign({},{feature:n.data},this.queryState.queryOverlayStyle)),n.data.meta.style.setZIndex(void 0),this.map.queryResultsOverlay.addFeature(n.data,l.bAZ.None))}selectResult(n){this.store.state.update(n,{focused:!0,selected:!0},!0),this.resultSelected$.next(n),n.data.properties&&"iframe"===n.data.properties.target?this.setHtmlDisplay(!0):this.setHtmlDisplay(!1);const t=[];for(const o of this.store.all())o.meta.id===n.meta.id?(o.data.meta.style=(0,l.DQ6)(Object.assign({},{feature:o.data},this.queryState.queryOverlayStyleSelection)),o.data.meta.style.setZIndex(2e3)):o.data.meta.style=(0,l.eU6)(Object.assign({},{feature:o.data},this.queryState.queryOverlayStyle)),t.push(o.data);if(this.map.queryResultsOverlay.removeFeatures(t),this.map.queryResultsOverlay.addFeatures(t,l.bAZ.None),this.zoomAuto){const o=this.format.readFeature(this.resultSelected$.getValue().data,{dataProjection:this.resultSelected$.getValue().data.projection,featureProjection:this.map.projection});(0,l.ybU)(this.map.viewController,[o],l.bAZ.Default)}this.isResultSelected$.next(!0),this.initialized=!1}unselectResult(){this.resultSelected$.next(void 0),this.isResultSelected$.next(!1),this.setHtmlDisplay(!1),this.store.state.clear();const n=[];for(const t of this.store.all())t.data.meta.style=(0,l.eU6)(Object.assign({},{feature:t.data},this.queryState.queryOverlayStyle)),n.push(t.data);this.map.queryResultsOverlay.setFeatures(n,l.bAZ.None,"map")}handleWksSelection(){const n=this.store.entities$.getValue(),t=[...new Set(n.map(a=>a.source.title))],o=this.workspaceState.store.entities$.getValue();o.length&&o.filter(i=>t.includes(i.title)).map(i=>{i.entityStore.state.updateMany(i.entityStore.view.all(),{selected:!1})})}clear(){this.handleWksSelection(),this.clearFeatureEmphasis(),this.map.queryResultsOverlay.clear(),this.store.clear(),this.unselectResult(),this.setHtmlDisplay(!1)}isMobile(){return this.mediaService.getMedia()===m.pU.Mobile}isDesktop(){return this.mediaService.isDesktop()}handleKeyboardEvent(n){37===n.keyCode?this.previousResult():39===n.keyCode&&this.nextResult()}previousResult(){if(!this.resultSelected$.value)return;let n=this.results.indexOf(this.resultSelected$.value);const t=this.results[--n];t&&this.selectResult(t)}nextResult(){if(!this.resultSelected$.value)return;let n=this.results.indexOf(this.resultSelected$.value);const t=this.results[++n];t&&this.selectResult(t)}hasGeoService(){return this.getGeoServices().length}getGeoServices(){const n=this.resultSelected$.getValue();if(!n)return[];const t=[],o=Object.keys(n.data.properties);return Object.entries(n.data.properties).forEach(a=>{const[i,p]=a,h=this.propertyTypeDetectorService.getGeoService(p,o),g=Object.assign({},h,{propertyForUrl:void 0});h&&(g.propertyForUrl=i,t.push(g))}),t}handleLayer(){const n=this.map.layers.map(o=>o.id);let t=this.potententialLayerToAdd$.getValue();if(t||this.computeFeatureGeoServiceStatus(),t=this.potententialLayerToAdd$.getValue(),n.includes(t.id)){const o=this.map.getLayerById(t.id);o&&(this.map.removeLayer(o),this.potententialLayerisAdded$.next(!1))}else this.layerService.createAsyncLayer(t.sourceOptions).subscribe(o=>{this.map.layersAddedByClick$.next([o]),this.map.addLayer(o),this.potententialLayerisAdded$.next(!0)})}computeFeatureGeoServiceStatus(){const n=this.resultSelected$.getValue();if(!n)return;const t=this.getGeoServices();if(t.length){const o=t[0],a=this.computeSourceOptionsFromProperties(n.data.properties,o),i=(0,l.lZj)(a.sourceOptions);this.potententialLayerToAdd$.next({id:i,sourceOptions:a});const p=this.map.layers.map(h=>h.id);this.potententialLayerisAdded$.next(!!p.includes(i))}}computeSourceOptionsFromProperties(n,t){let i=n[Object.keys(n).filter(_=>t.propertiesForLayerName.includes(_))[0]];const p=n[t.propertyForUrl];let g,h=i;return["arcgisrest","imagearcgisrest","tilearcgisrest"].includes(t.type)&&(g=i,h=void 0),b.gb.removeUndefined({sourceOptions:{type:t.type||"wms",url:p,optionsFromCapabilities:!0,optionsFromApi:!0,params:{LAYERS:h,LAYER:g}}})}zoomTo(){const n=this.format.readFeature(this.resultSelected$.getValue().data,{dataProjection:this.resultSelected$.getValue().data.projection,featureProjection:this.map.projection});(0,l.ybU)(this.map.viewController,[n],l.bAZ.Zoom)}swipe(n){n===O.SWIPE_ACTION.RIGHT?this.previousResult():n===O.SWIPE_ACTION.LEFT?this.nextResult():n===O.SWIPE_ACTION.UP?this.opened=!0:n===O.SWIPE_ACTION.DOWN&&(this.opened=!1)}onToggleClick(n){"igo-panel-title"===n.target.className&&(this.opened=!this.opened)}onTriggerAction(n){const t=n.args||[];n.handler(...t)}setHtmlDisplay(n){!0===n?(this.isHtmlDisplay=!0,this.windowHtmlDisplayEvent.emit(!0)):(this.isHtmlDisplay=!1,this.windowHtmlDisplayEvent.emit(!1))}isHtmlAndDesktop(){return!(!this.isHtmlDisplay||!this.isDesktop())}setResizeWindowIcon(){this.fullExtent?this.iconResizeWindows="arrow-collapse":this.iconResizeWindows="arrow-expand"}resizeWindows(){this.storageService.set("fullExtent",!this.fullExtent),this.fullExtent?this.reduceWindow():this.enlargeWindows()}reduceWindow(){this.fullExtent=!1,this.setResizeWindowIcon()}enlargeWindows(){this.fullExtent=!0,this.setResizeWindowIcon()}static \u0275fac=function(t){return new(t||O)(e.Y36(m.yJ),e.Y36(m.TS),e.Y36(w.I2),e.Y36(w.Tb),e.Y36(w.gV),e.Y36(m.M$),e.Y36(l.jhH),e.Y36(l.ITu))};static \u0275cmp=e.Xpm({type:O,selectors:[["app-toast-panel"]],hostVars:2,hostBindings:function(t,o){1&t&&e.NdJ("keydown.escape",function(i){return o.onEscapeHandler(i)},!1,e.evT)("keydown.backspace",function(i){return o.onBackHandler(i)},!1,e.evT)("keydown.z",function(i){return o.onZoomHandler(i)},!1,e.evT),2&t&&e.Udp("visibility",o.displayStyle)},inputs:{map:"map",store:"store",opened:"opened",hasFeatureEmphasisOnSelection:"hasFeatureEmphasisOnSelection"},outputs:{openedChange:"openedChange",fullExtentEvent:"fullExtentEvent",windowHtmlDisplayEvent:"windowHtmlDisplayEvent"},decls:3,vars:2,consts:[["toast",""],["class","swipe-fix",3,"swipeleft","swiperight","swipeup","swipedown",4,"ngIf","ngIfElse"],["tabindex","0",3,"ngClass","id","title","click","keydown",4,"ngIf"],["tabindex","0",3,"ngClass","id","title","click","keydown"],["id","igo-actionbar","panelLeftButton","",3,"store","withIcon","icon","withTitle","horizontal","mode"],["mat-icon-button","","igoStopPropagation","","panelLeftButton","","matTooltipShowDelay","500",3,"matTooltip","click",4,"ngIf"],["mat-icon-button","","igoStopPropagation","","panelLeftButton","","tooltip-position","below","matTooltipShowDelay","500",3,"matTooltip","color","click",4,"ngIf"],["mat-icon-button","","igoStopPropagation","","panelLeftButton","","matTooltipShowDelay","500",3,"disabled","matTooltip","click",4,"ngIf"],["mat-icon-button","","igoStopPropagation","","panelRightButton","","matTooltipShowDelay","500",3,"disabled","matTooltip","click",4,"ngIf"],["mat-icon-button","","igoStopPropagation","","panelRightButton","","matTooltipShowDelay","500",3,"matTooltip","click",4,"ngIf"],["mat-icon-button","","igoStopPropagation","","panelRightButton","",3,"click"],["svgIcon","close"],[1,"toast-content"],["content",""],[3,"map","feature","htmlDisplayEvent",4,"ngIf"],[3,"map","store","showIcons","withZoomButton","tabsMode","resultFocus","resultUnfocus","resultSelect",4,"ngIf"],["mat-icon-button","","igoStopPropagation","","panelLeftButton","","matTooltipShowDelay","500",3,"matTooltip","click"],["aria-hidden","false","matBadgeColor","accent","matBadgeSize","small","svgIcon","magnify-plus-outline",3,"matBadge","matBadgeHidden"],["mat-icon-button","","igoStopPropagation","","panelLeftButton","","tooltip-position","below","matTooltipShowDelay","500",3,"matTooltip","color","click"],[3,"svgIcon"],["mat-icon-button","","igoStopPropagation","","panelLeftButton","","matTooltipShowDelay","500",3,"disabled","matTooltip","click"],["svgIcon","chevron-left"],["mat-icon-button","","igoStopPropagation","","panelRightButton","","matTooltipShowDelay","500",3,"disabled","matTooltip","click"],["svgIcon","chevron-right"],["mat-icon-button","","igoStopPropagation","","panelRightButton","","matTooltipShowDelay","500",3,"matTooltip","click"],[3,"map","feature","htmlDisplayEvent"],[3,"map","store","showIcons","withZoomButton","tabsMode","resultFocus","resultUnfocus","resultSelect"],[1,"swipe-fix",3,"swipeleft","swiperight","swipeup","swipedown"],[3,"ngTemplateOutlet"]],template:function(t,o){if(1&t&&(e.YNc(0,st,2,3,"ng-template",null,0,e.W1O),e.YNc(2,lt,2,1,"div",1)),2&t){const a=e.MAs(1);e.xp6(2),e.Q6J("ngIf",o.isMobile())("ngIfElse",a)}},dependencies:[u.mk,u.O5,u.tP,Pe.k,C.Hw,v.RK,S.gM,c.yX,c._u,c.nv,l.C6c,l.GYD,u.Ov,k.X$],styles:["[_nghost-%COMP%]{-o-box-shadow:0px 0px 2px 0px #dddddd;box-shadow:0 0 2px #ddd}[_nghost-%COMP%]{background-color:#fff;transition:height .28s cubic-bezier(.4,0,.2,1);padding:5px}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){[_nghost-%COMP%]{width:100%;min-width:100%}}[_nghost-%COMP%] igo-panel[_ngcontent-%COMP%] .igo-panel-header:hover{cursor:pointer}[_nghost-%COMP%] igo-panel[_ngcontent-%COMP%]{height:100%;outline:none}[_nghost-%COMP%] igo-panel[_ngcontent-%COMP%] .igo-panel-header [panelleftbutton], [_nghost-%COMP%] igo-panel[_ngcontent-%COMP%] .igo-panel-header [panelrightbutton]{margin:0}[_nghost-%COMP%] igo-panel[_ngcontent-%COMP%] .igo-panel-content{-webkit-user-select:auto!important;user-select:auto!important}[_nghost-%COMP%] igo-feature-details[_ngcontent-%COMP%] iframe{min-height:24vh}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){[_nghost-%COMP%] igo-feature-details[_ngcontent-%COMP%] iframe{min-height:30vh}}[_nghost-%COMP%] app-full-toast-panel-opened[_ngcontent-%COMP%] igo-feature-details[_ngcontent-fiq-c23][_ngcontent-%COMP%] iframe[_ngcontent-%COMP%]{min-height:450px}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){[_nghost-%COMP%] app-full-toast-panel-opened[_ngcontent-%COMP%] igo-feature-details[_ngcontent-fiq-c23][_ngcontent-%COMP%] iframe[_ngcontent-%COMP%]{min-height:350px}}[_nghost-%COMP%] .swipe-fix[_ngcontent-%COMP%]{touch-action:pinch-zoom!important}.app-toast-panel-html[_ngcontent-%COMP%]{height:30vh;max-height:-moz-fit-content;max-height:fit-content;width:60vw}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){.app-toast-panel-html[_ngcontent-%COMP%]{width:100%;min-width:100%;height:34vh}}@media only screen and (orientation:portrait) and (min-width: 600px) and (max-width: 839px),only screen and (orientation:landscape) and (min-width: 960px) and (max-width: 1279px){.app-toast-panel-html[_ngcontent-%COMP%]{width:500px}}.app-toast-panel-html-large[_ngcontent-%COMP%]{height:55vh;width:60vw}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){.app-toast-panel-html-large[_ngcontent-%COMP%]{width:100%;min-width:100%;max-height:65vh;height:55vh}}@media only screen and (orientation:portrait) and (min-width: 600px) and (max-width: 839px),only screen and (orientation:landscape) and (min-width: 960px) and (max-width: 1279px){.app-toast-panel-html-large[_ngcontent-%COMP%]{width:500px}}.app-toast-panel-html-large[_ngcontent-%COMP%] .toast-content[_ngcontent-%COMP%]{height:100%;width:100%}.app-toast-panel-opened[_ngcontent-%COMP%]{height:auto;max-height:30vh;width:42vw;max-width:600px;margin-bottom:7px}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){.app-toast-panel-opened[_ngcontent-%COMP%]{max-height:34vh;width:100%;min-width:100%}}@media only screen and (orientation:portrait) and (min-width: 600px) and (max-width: 839px),only screen and (orientation:landscape) and (min-width: 960px) and (max-width: 1279px){.app-toast-panel-opened[_ngcontent-%COMP%]{width:500px}}.app-toast-panel-opened[_ngcontent-%COMP%] .toast-content[_ngcontent-%COMP%]{height:100%;width:100%;max-height:calc(30vh - 34px)}.app-full-toast-panel-opened[_ngcontent-%COMP%]{height:auto;max-height:65vh;width:45vw}.app-full-toast-panel-opened[_ngcontent-%COMP%] .toast-content[_ngcontent-%COMP%]{height:100%;width:100%;max-height:calc(65vh - 41px)}@media only screen and (orientation:portrait) and (min-width: 600px) and (max-width: 839px),only screen and (orientation:landscape) and (min-width: 960px) and (max-width: 1279px){.app-full-toast-panel-opened[_ngcontent-%COMP%]{width:500px;max-height:500px}.app-full-toast-panel-opened[_ngcontent-%COMP%] .toast-content[_ngcontent-%COMP%]{max-height:44vh}}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){.app-full-toast-panel-opened[_ngcontent-%COMP%]{width:100%;min-width:100%;max-height:65vh}}.app-toast-panel-collapsed[_ngcontent-%COMP%]{height:46px!important;width:42vw;max-width:600px}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){.app-toast-panel-collapsed[_ngcontent-%COMP%]{width:100%;min-width:100%;height:35px!important}}@media only screen and (orientation:portrait) and (min-width: 600px) and (max-width: 839px),only screen and (orientation:landscape) and (min-width: 960px) and (max-width: 1279px){.app-toast-panel-collapsed[_ngcontent-%COMP%]{width:500px}}.app-full-toast-panel-collapsed[_ngcontent-%COMP%]{height:46px!important;width:45vw}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){.app-full-toast-panel-collapsed[_ngcontent-%COMP%]{width:100%;min-width:100%;height:35px!important}}@media only screen and (orientation:portrait) and (min-width: 600px) and (max-width: 839px),only screen and (orientation:landscape) and (min-width: 960px) and (max-width: 1279px){.app-full-toast-panel-collapsed[_ngcontent-%COMP%]{width:500px}}.app-toast-panel-html-collapsed[_ngcontent-%COMP%]{height:46px!important;width:60vw}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){.app-toast-panel-html-collapsed[_ngcontent-%COMP%]{width:100%;min-width:100%;height:35px!important}}@media only screen and (orientation:portrait) and (min-width: 600px) and (max-width: 839px),only screen and (orientation:landscape) and (min-width: 960px) and (max-width: 1279px){.app-toast-panel-html-collapsed[_ngcontent-%COMP%]{width:500px}}#app-toast-panel-opened-max-height[_ngcontent-%COMP%]{height:30vh!important}#app-full-toast-panel-opened-max-height[_ngcontent-%COMP%]{height:65vh!important}"],changeDetection:0})}function pt(r="50ms",n="280ms",t="ease-in-out"){return(0,s.X$)("showContent",[(0,s.SB)("true",(0,s.oB)({opacity:1,display:"block"})),(0,s.SB)("false",(0,s.oB)({opacity:0,display:"none"})),(0,s.eR)("false => true",(0,s.jt)(`${r} ${n} ${t}`)),(0,s.eR)("true => false",(0,s.jt)("0ms"))])}const ct=["*"];class Y{set opened(n){n!==this._opened&&(this._opened=n,this.openedChange.emit(this._opened))}get opened(){return this._opened}_opened;title;withHeader;openedChange=new e.vpe;get hasOpenedClass(){return this.opened}get displayStyle(){return this.withHeader||this.opened?"visible":"hidden"}constructor(){}static \u0275fac=function(t){return new(t||Y)};static \u0275cmp=e.Xpm({type:Y,selectors:[["app-toast-panel-for-expansion"]],hostVars:4,hostBindings:function(t,o){2&t&&(e.Udp("visibility",o.displayStyle),e.ekj("toast-panel-for-expansion-opened",o.hasOpenedClass))},inputs:{opened:"opened",title:"title",withHeader:"withHeader"},outputs:{openedChange:"openedChange"},ngContentSelectors:ct,decls:4,vars:3,consts:[[3,"title","withHeader"],["content",""]],template:function(t,o){1&t&&(e.F$t(),e.TgZ(0,"igo-panel",0)(1,"div",null,1),e.Hsn(3),e.qZA()()),2&t&&(e.Q6J("title",o.title)("withHeader",o.withHeader),e.xp6(1),e.Q6J("@showContent",o.opened))},dependencies:[c.yX],styles:["[_nghost-%COMP%]{-o-box-shadow:0px 0px 2px 0px #dddddd;box-shadow:0 0 2px #ddd}[_nghost-%COMP%]{background-color:#fff;height:48px;max-height:329px;transition:height .28s cubic-bezier(.4,0,.2,1);padding:5px}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){[_nghost-%COMP%]{max-height:40%}}.toast-panel-for-expansion-opened[_nghost-%COMP%]{height:329px}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){.toast-panel-for-expansion-opened[_nghost-%COMP%]{height:40%}}igo-panel[_ngcontent-%COMP%]{position:relative;height:100%}igo-panel[_ngcontent-%COMP%] .igo-panel-header:hover{cursor:pointer}div[igostoppropagation][_ngcontent-%COMP%]{height:100%;width:100%}"],data:{animation:[pt()]},changeDetection:0})}function dt(r,n){if(1&r){const t=e.EpF();e.TgZ(0,"igo-home-button",9),e.NdJ("unselectButton",function(){e.CHM(t);const a=e.oxw();return e.KtG(a.onUnselectButtonClick())}),e.qZA()}}function ht(r,n){if(1&r){const t=e.EpF();e.TgZ(0,"button",10),e.NdJ("click",function(){e.CHM(t);const a=e.oxw();return e.KtG(a.onPreviousButtonClick())}),e.ALo(1,"translate"),e._UZ(2,"mat-icon",11),e.qZA()}2&r&&e.Q6J("matTooltip",e.lcZ(1,1,"igo.context.sidenav.goBack"))}const mt=function(r){return{toolActivated:r}};class Q{toolState;configService;catalogState;title$=new x.X(void 0);activeTool$$;get map(){return this._map}set map(n){this._map=n}_map;get opened(){return this._opened}set opened(n){n!==this._opened&&(this._opened=n,this.openedChange.emit(this._opened))}_opened;openedChange=new e.vpe;toolChange=new e.vpe;get toolbox(){return this.toolState.toolbox}constructor(n,t,o){this.toolState=n,this.configService=t,this.catalogState=o}ngOnInit(){this.activeTool$$=this.toolbox.activeTool$.subscribe(n=>{const t=this.configService.getConfig("sidenavTitle","IGO");if(n)if("catalogBrowser"===n.name)for(const o of this.catalogState.catalogStore.all())!0===this.catalogState.catalogStore.state.get(o).selected&&this.title$.next(o.title);else if("activeTimeFilter"===n.name||"activeOgcFilter"===n.name)for(const o of this.map.layers)!0===o.options.active&&this.title$.next(o.title);else this.title$.next(n.title);else this.title$.next(t);this.toolChange.emit(n)})}ngOnDestroy(){this.activeTool$$.unsubscribe()}onPreviousButtonClick(){this.toolbox.activatePreviousTool()}onUnselectButtonClick(){this.toolbox.deactivateTool()}static \u0275fac=function(t){return new(t||Q)(e.Y36(w.EH),e.Y36(m.M$),e.Y36(w.Yy))};static \u0275cmp=e.Xpm({type:Q,selectors:[["app-sidenav"]],inputs:{map:"map",opened:"opened"},outputs:{openedChange:"openedChange",toolChange:"toolChange"},decls:14,vars:20,consts:[["mode","side",1,"mat-elevation-z3",3,"autoFocus","opened","openedChange"],[1,"app-sidenav-content"],[1,"app-content",3,"ngClass"],["content",""],[3,"unselectButton",4,"ngIf"],[3,"title"],["mat-icon-button","","panelLeftButton","","tooltip-position","below","matTooltipShowDelay","500",3,"matTooltip","click",4,"ngIf"],["panelRightButton","","styleButton","icon"],["color","primary",1,"igo-toolbox",3,"animate","toolbox"],[3,"unselectButton"],["mat-icon-button","","panelLeftButton","","tooltip-position","below","matTooltipShowDelay","500",3,"matTooltip","click"],["svgIcon","arrow-left"]],template:function(t,o){1&t&&(e.TgZ(0,"mat-sidenav",0),e.NdJ("openedChange",function(i){return o.opened=i}),e.TgZ(1,"div",1)(2,"div",2,3),e.ALo(4,"async"),e.YNc(5,dt,1,0,"igo-home-button",4),e.ALo(6,"async"),e.TgZ(7,"igo-panel",5),e.ALo(8,"translate"),e.ALo(9,"async"),e.YNc(10,ht,3,3,"button",6),e.ALo(11,"async"),e._UZ(12,"igo-interactive-tour",7)(13,"igo-toolbox",8),e.qZA()()()()),2&t&&(e.Q6J("autoFocus",!1)("opened",o.opened),e.xp6(2),e.Q6J("ngClass",e.VKq(18,mt,e.lcZ(4,8,o.toolbox.activeTool$))),e.xp6(3),e.Q6J("ngIf",e.lcZ(6,10,o.toolbox.activeTool$)),e.xp6(2),e.Q6J("title",e.lcZ(8,12,e.lcZ(9,14,o.title$))),e.xp6(3),e.Q6J("ngIf",e.lcZ(11,16,o.toolbox.activeTool$)),e.xp6(3),e.Q6J("animate",!0)("toolbox",o.toolbox))},dependencies:[u.mk,u.O5,C.Hw,v.RK,Z.JX,S.gM,c.yX,c.zv,c.bB,c.p1,u.Ov,k.X$],styles:["[_nghost-%COMP%]{background-color:#fff}[_nghost-%COMP%] .igo-panel-header{position:relative}[_nghost-%COMP%] mat-sidenav[_ngcontent-%COMP%]{z-index:3!important;height:100%;width:400px;box-sizing:content-box}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){[_nghost-%COMP%] mat-sidenav[_ngcontent-%COMP%]{width:calc(100% - 53px);max-width:400px}}[_nghost-%COMP%] igo-home-button[_ngcontent-%COMP%]{position:absolute;top:53px}[_nghost-%COMP%] .app-content[_ngcontent-%COMP%], [_nghost-%COMP%] igo-panel[_ngcontent-%COMP%]{height:100%}[_nghost-%COMP%] .app-sidenav-content[_ngcontent-%COMP%]{margin-top:53px;height:calc(100% - 53px)}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){[_nghost-%COMP%] .app-sidenav-content[_ngcontent-%COMP%]{height:calc(100% - 53px)}}[_nghost-%COMP%] igo-panel[_ngcontent-%COMP%] .igo-panel-content{position:relative}[_nghost-%COMP%] div.toolActivated[_ngcontent-%COMP%] > igo-panel[_ngcontent-%COMP%] >div.igo-panel-header{margin-left:50px;position:relative}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){[_nghost-%COMP%] igo-toolbox[_ngcontent-%COMP%]{overflow:auto}}"],changeDetection:0})}var E=d(48286);const Me=function(r){return{width:r}};function gt(r,n){if(1&r&&(e.ynx(0),e._UZ(1,"img",6),e.BQk()),2&r){const t=e.oxw(2).$implicit;e.xp6(1),e.Q6J("src",t.imgSrc,e.LSH)("alt",t.alt)("ngStyle",e.VKq(3,Me,t.imgSize))}}function ut(r,n){if(1&r&&(e.TgZ(0,"a",4),e._uU(1),e.YNc(2,gt,2,5,"ng-container",5),e.qZA()),2&r){const t=e.oxw().$implicit;e.Q6J("href",t.link,e.LSH),e.xp6(1),e.hij(" ",t.text," "),e.xp6(1),e.Q6J("ngIf",t.imgSrc)}}function ft(r,n){if(1&r&&(e.ynx(0),e._UZ(1,"img",6),e.BQk()),2&r){const t=e.oxw(2).$implicit;e.xp6(1),e.Q6J("src",t.imgSrc,e.LSH)("alt",t.alt)("ngStyle",e.VKq(3,Me,t.imgSize))}}function xt(r,n){if(1&r&&(e._uU(0),e.YNc(1,ft,2,5,"ng-container",5)),2&r){const t=e.oxw().$implicit;e.hij(" ",t.text," "),e.xp6(1),e.Q6J("ngIf",t.imgSrc)}}function _t(r,n){if(1&r&&(e.ynx(0),e.TgZ(1,"div",1),e.YNc(2,ut,3,3,"a",2),e.YNc(3,xt,2,2,"ng-template",null,3,e.W1O),e.qZA(),e.BQk()),2&r){const t=n.$implicit,o=e.MAs(4);e.xp6(1),e.Udp("position",t.fixed?"fixed":"absolute")("margin-left",t.marginLeft)("margin-right",t.marginRight)("margin-top",t.marginTop)("margin-bottom",t.marginBottom)("font-size",t.fontSize),e.Q6J("ngClass",t.cssClass),e.xp6(1),e.Q6J("ngIf",t.link)("ngIfElse",o)}}class N{contextService;mediaService;configService;mapOverlay=[];context$$;media$$;context;constructor(n,t,o){this.contextService=n,this.mediaService=t,this.configService=o}ngAfterViewInit(){this.context$$=this.contextService.context$.subscribe(n=>{this.handleContextChange(n),this.context=n}),this.media$$=this.mediaService.media$.subscribe(n=>this.handleContextChange(this.context))}ngOnDestroy(){this.context$$.unsubscribe(),this.media$$.unsubscribe()}handleContextChange(n){let t=[];if(void 0!==n){this.mapOverlay=[],t=n.mapOverlay?n.mapOverlay:this.configService.getConfig("mapOverlay",[]);for(const o of t)(!o.media&&"desktop"===this.mediaService.getMedia()||o.media&&o.media.includes(this.mediaService.getMedia()))&&this.mapOverlay.push(o)}}static \u0275fac=function(t){return new(t||N)(e.Y36(E.Ob),e.Y36(m.yJ),e.Y36(m.M$))};static \u0275cmp=e.Xpm({type:N,selectors:[["app-map-overlay"]],decls:1,vars:1,consts:[[4,"ngFor","ngForOf"],[1,"mapOverlayDefault",3,"ngClass"],["target","_blank",3,"href",4,"ngIf","ngIfElse"],["templateNoLink",""],["target","_blank",3,"href"],[4,"ngIf"],[3,"src","alt","ngStyle"]],template:function(t,o){1&t&&e.YNc(0,_t,5,15,"ng-container",0),2&t&&e.Q6J("ngForOf",o.mapOverlay)},dependencies:[u.mk,u.sg,u.O5,u.PC],styles:["[_nghost-%COMP%]{height:100%;top:0;left:0;right:0;position:fixed;pointer-events:none}.mapOverlayDefault[_ngcontent-%COMP%]{position:absolute;white-space:nowrap;pointer-events:auto}.bottom-right[_ngcontent-%COMP%]{bottom:0;right:0}.top-right[_ngcontent-%COMP%]{top:0;right:0}.bottom-left[_ngcontent-%COMP%]{bottom:0;left:0}.top-left[_ngcontent-%COMP%]{top:0;left:0}.bottom-center[_ngcontent-%COMP%]{bottom:0;left:50%;transform:translate(-50%)}.top-center[_ngcontent-%COMP%]{top:0;left:50%;transform:translate(-50%)}.center-center[_ngcontent-%COMP%]{top:50%;left:50%;transform:translate(-50%)}.center-right[_ngcontent-%COMP%]{top:50%;right:0}.center-left[_ngcontent-%COMP%]{top:50%;left:0}"]})}const wt=["mapBrowser"],vt=["searchBar"];function yt(r,n){if(1&r){const t=e.EpF();e.TgZ(0,"igo-menu-button",24),e.NdJ("openSidenav",function(){e.CHM(t);const a=e.oxw();return e.KtG(a.onToggleSidenavClick())}),e.qZA()}if(2&r){const t=e.oxw();e.ekj("mat-elevation-z2",!t.sidenavOpened),e.Q6J("sidenavOpened",t.sidenavOpened)}}function St(r,n){if(1&r){const t=e.EpF();e.TgZ(0,"igo-search-bar",25,26),e.NdJ("searchTermChange",function(a){e.CHM(t);const i=e.oxw();return e.KtG(i.onSearchTermChange(a))})("pointerSummaryStatus",function(a){e.CHM(t);const i=e.oxw();return e.KtG(i.onPointerSummaryStatusChange(a))})("searchResultsGeometryStatus",function(a){e.CHM(t);const i=e.oxw();return e.KtG(i.onSearchResultsGeometryStatusChange(a))})("reverseSearchCoordsFormatStatus",function(a){e.CHM(t);const i=e.oxw();return e.KtG(i.onReverseCoordsFormatStatusChange(a))})("search",function(a){e.CHM(t);const i=e.oxw();return e.KtG(i.onSearch(a))})("clearFeature",function(){e.CHM(t);const a=e.oxw();return e.KtG(a.onClearSearch())})("searchSettingsChange",function(){e.CHM(t);const a=e.oxw();return e.KtG(a.onSearchSettingsChange())}),e.qZA()}if(2&r){const t=e.oxw();e.ekj("mat-elevation-z2",!t.sidenavOpened),e.Q6J("term",t.searchBarTerm)("termSplitter",t.termSplitter)("minLength",t.minSearchTermLength)("searchSettings",!0)("forceNA",null==t.appConfig.app?null:t.appConfig.app.forceCoordsNA)("store",t.searchStore)("pointerSummaryEnabled",t.igoSearchPointerSummaryEnabled)("searchResultsGeometryEnabled",t.searchResultsGeometryEnabled)("reverseSearchCoordsFormatEnabled",t.igoReverseSearchCoordsFormatEnabled)}}function Ct(r,n){1&r&&e._UZ(0,"igo-wake-lock-button",27)}function bt(r,n){if(1&r&&e._UZ(0,"igo-offline-button",28),2&r){const t=e.oxw();e.Q6J("map",t.map)("@controlsOffsetY",t.getControlsOffsetY())("@mobileOffsetY",t.getToastPanelStatus())}}function Ot(r,n){if(1&r&&e._UZ(0,"igo-geolocate-button",28),2&r){const t=e.oxw();e.Q6J("map",t.map)("@controlsOffsetY",t.getControlsOffsetY())("@mobileOffsetY",t.getToastPanelStatus())}}function Pt(r,n){if(1&r&&e._UZ(0,"igo-home-extent-button",29),2&r){const t=e.oxw();e.Q6J("map",t.map)("extentOverride",t.homeExtent)("centerOverride",t.homeCenter)("zoomOverride",t.homeZoom)}}function Mt(r,n){if(1&r&&e._UZ(0,"igo-user-button",28),2&r){const t=e.oxw();e.Q6J("map",t.map)("@controlsOffsetY",t.getControlsOffsetY())("@mobileOffsetY",t.getToastPanelStatus())}}function Tt(r,n){if(1&r){const t=e.EpF();e.TgZ(0,"button",42),e.NdJ("click",function(){e.CHM(t);const a=e.oxw().ngIf,i=e.oxw(2);return e.KtG(i.addFeature(a))}),e.ALo(1,"translate"),e._UZ(2,"mat-icon",43),e.qZA()}if(2&r){const t=e.oxw().ngIf;e.Q6J("disabled",!1===t.layer.options.sourceOptions.edition.addButton)("matTooltip",e.lcZ(1,2,"workspace.addFeature"))}}function kt(r,n){if(1&r&&e._UZ(0,"igo-actionbar",44),2&r){const t=e.oxw().ngIf,o=e.oxw(2);e.Q6J("store",t.actionStore)("withIcon",!0)("withTitle",o.actionbarWithTitle)("horizontal",!0)("withToggleButton","overlay"===o.actionbarMode)("iconColor","primary")("color","primary")("mode",o.actionbarMode)("overlayClass",o.workspaceMenuClass)}}function Et(r,n){if(1&r){const t=e.EpF();e.TgZ(0,"button",45),e.NdJ("click",function(){e.CHM(t);const a=e.oxw(3);return e.KtG(a.zoomToSelectedFeatureWks())}),e.ALo(1,"async"),e.ALo(2,"translate"),e._UZ(3,"mat-icon",46),e.ALo(4,"async"),e.qZA()}if(2&r){const t=e.oxw(3);e.Q6J("disabled",0===e.lcZ(1,3,t.workspaceState.workspaceSelection$).length)("matTooltip",e.lcZ(2,5,"toastPanel.zoomOnFeaturesTooltip")),e.xp6(3),e.s9C("svgIcon",e.lcZ(4,7,t.workspaceState.workspaceSelection$).length>1?"magnify-scan":"magnify-plus-outline")}}function $t(r,n){if(1&r){const t=e.EpF();e.TgZ(0,"igo-entity-table-paginator",47),e.NdJ("paginatorChange",function(a){e.CHM(t);const i=e.oxw(3);return e.KtG(i.paginatorChange(a))}),e.qZA()}if(2&r){const t=e.oxw().ngIf,o=e.oxw(2);e.Q6J("store",t.entityStore)("entitySortChange$",o.workspaceEntitySortChange$)("paginatorOptions",o.paginatorOptions)}}const Ft=function(r){return{disabled:r}};function At(r,n){if(1&r){const t=e.EpF();e.ynx(0),e.TgZ(1,"div",34)(2,"div",35)(3,"button",36),e.NdJ("click",function(){const i=e.CHM(t).ngIf;return e.KtG(i.layer.visible=!i.layer.visible)}),e.ALo(4,"translate"),e.ALo(5,"translate"),e._UZ(6,"mat-icon",37),e.ALo(7,"async"),e.qZA(),e.YNc(8,Tt,3,4,"button",38),e.YNc(9,kt,1,9,"igo-actionbar",39),e.YNc(10,Et,5,9,"button",40),e.qZA(),e.YNc(11,$t,1,3,"igo-entity-table-paginator",41),e.qZA(),e.BQk()}if(2&r){const t=n.ngIf,o=e.oxw(2);e.xp6(3),e.Q6J("color",t.layer.visible?"primary":"default")("matTooltip",t.layer.visible?e.lcZ(4,8,"igo.geo.layer.hideLayer"):e.lcZ(5,10,"igo.geo.layer.showLayer")),e.xp6(3),e.Q6J("ngClass",e.VKq(14,Ft,!0!==e.lcZ(7,12,t.inResolutionRange$)))("svgIcon",t.layer.visible?"eye":"eye-off"),e.xp6(2),e.Q6J("ngIf",o.isEditionWorkspace(t)),e.xp6(1),e.Q6J("ngIf",t.actionStore),e.xp6(1),e.Q6J("ngIf",o.workspaceVisibility()),e.xp6(1),e.Q6J("ngIf",o.workspaceVisibility())}}function Bt(r,n){if(1&r){const t=e.EpF();e.TgZ(0,"igo-entity-table",49),e.NdJ("entitySortChange",function(){e.CHM(t);const a=e.oxw(3);return e.KtG(a.entitySortChange())})("entitySelectChange",function(a){e.CHM(t);const i=e.oxw(3);return e.KtG(i.entitySelectChange(a))}),e.qZA()}if(2&r){const t=e.oxw().ngIf,o=e.oxw(2);e.Tol(o.isEditionWorkspace(t)?"edition-table":""),e.Q6J("paginator",o.workspacePaginator)("store",t.entityStore)("template",t.meta.tableTemplate)}}function jt(r,n){if(1&r&&(e.ynx(0),e.YNc(1,Bt,1,5,"igo-entity-table",48),e.TgZ(2,"span"),e._uU(3),e.ALo(4,"translate"),e.qZA(),e.BQk()),2&r){const t=n.ngIf,o=e.oxw(2);e.xp6(1),e.Q6J("ngIf",t.entityStore&&t.meta&&t.meta.tableTemplate&&o.workspaceVisibility()),e.xp6(2),e.Oqu(e.lcZ(4,2,o.workspaceNotAvailableMessage))}}function zt(r,n){if(1&r){const t=e.EpF();e.TgZ(0,"app-expansion-panel",30),e.NdJ("expandedChange",function(a){e.CHM(t);const i=e.oxw();return e.KtG(i.expansionPanelExpanded=a)}),e.ALo(1,"async"),e.ynx(2,31),e.TgZ(3,"igo-workspace-selector",32),e.NdJ("changeWorkspace",function(a){e.CHM(t);const i=e.oxw();return e.KtG(i.workspaceState.setActiveWorkspaceByTitle(a))})("disableSwitch",function(a){e.CHM(t);const i=e.oxw();return e.KtG(i.workspaceSwitchDisabled=a)})("relationLayers",function(a){e.CHM(t);const i=e.oxw();return e.KtG(i.refreshRelationsWorkspace(a))})("rowsInMapExtentCheckCondition",function(a){e.CHM(t);const i=e.oxw();return e.KtG(i.workspaceState.rowsInMapExtentCheckCondition$.next(a))}),e.qZA(),e.YNc(4,At,12,16,"ng-container",33),e.ALo(5,"async"),e.BQk(),e.YNc(6,jt,5,4,"ng-container",33),e.ALo(7,"async"),e.qZA()}if(2&r){const t=e.oxw();e.Q6J("backdropShown",t.expansionPanelBackdropShown)("expanded",t.expansionPanelExpanded)("maximized",e.lcZ(1,10,t.workspaceState.workspaceMaximize$))("@expansionPanelSize",t.getExpansionPanelStatus())("@toastOffsetY",t.isMobile()&&!t.toastPanelOpened&&t.queryState.store.entities$.value.length>0&&!t.expansionPanelExpanded?"true":"false"),e.xp6(3),e.Q6J("store",t.workspaceStore)("disabled",t.workspaceSwitchDisabled)("map",t.map),e.xp6(1),e.Q6J("ngIf",e.lcZ(5,12,t.selectedWorkspace$)),e.xp6(2),e.Q6J("ngIf",e.lcZ(7,14,t.selectedWorkspace$))}}function Zt(r,n){if(1&r){const t=e.EpF();e.TgZ(0,"igo-workspace-widget-outlet",50),e.NdJ("deactivateWidget",function(){e.CHM(t);const a=e.oxw();return e.KtG(a.onDeactivateWorkspaceWidget())}),e.qZA()}if(2&r){const t=n.ngIf;e.Q6J("workspace",t)}}function Rt(r,n){if(1&r){const t=e.EpF();e.TgZ(0,"app-toast-panel",51),e.NdJ("openedChange",function(a){e.CHM(t);const i=e.oxw();return e.KtG(i.toastOpenedChange(a))})("fullExtentEvent",function(a){e.CHM(t);const i=e.oxw();return e.KtG(i.fullExtent=a)})("windowHtmlDisplayEvent",function(a){e.CHM(t);const i=e.oxw();return e.KtG(i.setToastPanelHtmlDisplay(a))}),e.ALo(1,"async"),e.qZA()}if(2&r){const t=e.oxw();e.Q6J("map",t.map)("store",t.queryStore)("hasFeatureEmphasisOnSelection",t.appConfig.hasFeatureEmphasisOnSelection)("@toastPanelOffsetX",e.lcZ(1,7,t.toastPanelOffsetX$))("@toastPanelOffsetY",t.getToastPanelOffsetY())("@toastPanelMobileSidenav",t.isMobile()&&t.sidenavOpened||t.isTablet()&&t.isPortrait()&&t.sidenavOpened)("opened",t.toastPanelOpened)}}function Lt(r,n){if(1&r&&e._UZ(0,"igo-actionbar",52),2&r){const t=e.oxw();e.Q6J("store",t.contextMenuStore)("withIcon",!1)("horizontal",!0)}}const It=function(r){return{"igo-attribution-offset":r}};class U{route;workspaceState;authService;mediaService;layerService;dataSourceService;cdRef;capabilitiesService;contextState;mapState;searchState;queryState;toolState;searchSourceService;configService;importService;http;languageService;messageService;welcomeWindowService;dialogWindow;queryService;storageService;editionWorkspaceService;directionState;configFileToGeoDBService;appConfig;toastPanelOffsetX$=new x.X(void 0);sidenavOpened$=new x.X(!1);minSearchTermLength=2;hasGeolocateButton=!0;showMenuButton=!0;showSearchBar=!0;workspaceNotAvailableMessage="workspace.disabled.resolution";workspacePaginator;workspaceEntitySortChange$=new x.X(!1);workspaceSwitchDisabled=!1;paginatorOptions={pageSize:50,pageSizeOptions:[1,5,10,20,50,100,500]};workspaceMenuClass="workspace-menu";fullExtent;workspaceMaximize$$=[];matDialogRef$=new x.X(void 0);searchBarTerm="";onSettingsChange$=new x.X(void 0);termDefinedInUrl=!1;termSplitter="|";termDefinedInUrlTriggered=!1;addedLayers$$=[];contextMenuStore=new c.Dn([]);contextMenuCoord;contextLoaded=!1;context$$;openSidenav$$;sidenavMediaAndOrientation$$;igoSearchPointerSummaryEnabled;igoReverseSearchCoordsFormatEnabled;toastPanelForExpansionOpened=!0;activeWidget$$;showToastPanelForExpansionToggle=!1;selectedWorkspace$=new x.X(void 0);routeParams;toastPanelHtmlDisplay=!1;homeExtent;homeCenter;homeZoom;mapBrowser;searchBar;get map(){return this.mapState.map}get sidenavOpened(){return this.sidenavOpened$.value}set sidenavOpened(n){this.sidenavOpened$.next(n)}get toastPanelOpened(){return this._toastPanelOpened}set toastPanelOpened(n){n===!this._toastPanelOpened&&(this._toastPanelOpened=n,this.cdRef.detectChanges())}_toastPanelOpened;isMobile(){return this.mediaService.getMedia()===m.pU.Mobile}isTablet(){return this.mediaService.getMedia()===m.pU.Tablet}isLandscape(){return this.mediaService.getOrientation()===m.pC.Landscape}isPortrait(){return this.mediaService.getOrientation()===m.pC.Portrait}get backdropShown(){return(this.isMobile()||this.isTablet()&&this.isPortrait())&&this.sidenavOpened}get expansionPanelExpanded(){return this.workspaceState.workspacePanelExpanded}set expansionPanelExpanded(n){this.workspaceState.workspacePanelExpanded=n,!0===n?this.map.viewController.setPadding({bottom:280}):this.map.viewController.setPadding({bottom:0})}get contextUri(){return this.contextState.context$?.getValue()?this.contextState.context$.getValue().uri:void 0}get expansionPanelBackdropShown(){return this.expansionPanelExpanded&&this.toastPanelForExpansionOpened}get actionbarMode(){return c.rO.Overlay}get actionbarWithTitle(){return this.actionbarMode===c.rO.Overlay}get searchStore(){return this.searchState.store}get searchResultsGeometryEnabled(){return this.searchState.searchResultsGeometryEnabled$.value}get queryStore(){return this.queryState.store}get toolbox(){return this.toolState.toolbox}get toastPanelContent(){let n;return void 0!==this.workspace&&this.workspace.hasWidget&&(n="workspace"),n}get workspaceStore(){return this.workspaceState.store}get workspace(){return this.workspaceState.workspace$.value}constructor(n,t,o,a,i,p,h,g,f,_,le,_e,$,we,ve,ye,qt,Vt,Xt,Kt,en,tn,nn,on,an,sn){this.route=n,this.workspaceState=t,this.authService=o,this.mediaService=a,this.layerService=i,this.dataSourceService=p,this.cdRef=h,this.capabilitiesService=g,this.contextState=f,this.mapState=_,this.searchState=le,this.queryState=_e,this.toolState=$,this.searchSourceService=we,this.configService=ve,this.importService=ye,this.http=qt,this.languageService=Vt,this.messageService=Xt,this.welcomeWindowService=Kt,this.dialogWindow=en,this.queryService=tn,this.storageService=nn,this.editionWorkspaceService=on,this.directionState=an,this.configFileToGeoDBService=sn,this.handleAppConfigs(),this.storageService.set("version",fe(this.configService)),this.fullExtent=this.storageService.get("fullExtent"),this._toastPanelOpened=!1!==this.storageService.get("toastOpened"),this.igoSearchPointerSummaryEnabled=this.configService.getConfig("hasSearchPointerSummary"),void 0===this.igoSearchPointerSummaryEnabled&&(this.igoSearchPointerSummaryEnabled=this.storageService.get("searchPointerSummaryEnabled")||!1),this.igoReverseSearchCoordsFormatEnabled=this.storageService.get("reverseSearchCoordsFormatEnabled")||!1}ngOnInit(){window.IGO=this,this.searchState.searchTermSplitter$.next(this.termSplitter),this.initWelcomeWindow(),this.route.queryParams.subscribe(t=>{this.readLanguageParam(t)}),this.authService.authenticate$.subscribe(t=>{this.contextLoaded=!1}),this.context$$=this.contextState.context$.subscribe(t=>this.onChangeContext(t));const n=[{id:"coordinates",title:"coordinates",handler:()=>this.searchCoordinate(this.contextMenuCoord)},{id:"googleMaps",title:"googleMap",handler:()=>this.openGoogleMaps(this.contextMenuCoord)},{id:"googleStreetView",title:"googleStreetView",handler:()=>this.openGoogleStreetView(this.contextMenuCoord)}];this.contextMenuStore.load(n),this.queryStore.count$.pipe((0,je.G)()).subscribe(([t,o])=>{this.map.viewController.padding[2]=o?280:0,0===t&&o!==t&&this.isMobile()&&this.appConfig.hasExpansionPanel&&this.expansionPanelExpanded&&this.toastPanelOpened&&(this.toastPanelOpened=!1)}),this.map.ol.once("rendercomplete",()=>{this.readQueryParams(),void 0!==this.appConfig.geolocate?.activateDefault&&(this.map.geolocationController.tracking=this.appConfig.geolocate?.activateDefault)}),this.onSettingsChange$.subscribe(()=>{this.searchState.setSearchSettingsChange()}),this.searchState.selectedResult$.subscribe(t=>{t&&this.isMobile()&&this.closeSidenav()}),this.workspaceState.workspaceEnabled$.next(this.appConfig.hasExpansionPanel),this.workspaceState.store.empty$.subscribe(t=>{this.appConfig.hasExpansionPanel&&(this.workspaceState.workspaceEnabled$.next(!t),t&&(this.expansionPanelExpanded=!1),this.updateMapBrowserClass())}),this.workspaceMaximize$$.push(this.workspaceState.workspaceMaximize$.subscribe(t=>{this.updateMapBrowserClass()})),this.workspaceState.workspace$.subscribe(t=>{t?(this.selectedWorkspace$.next(t),this.expansionPanelExpanded=!0,t.layer.options.workspace?.pageSize&&t.layer.options.workspace?.pageSizeOptions?this.paginatorOptions={pageSize:t.layer.options.workspace?.pageSize,pageSizeOptions:t.layer.options.workspace?.pageSizeOptions}:this.paginatorOptions={pageSize:50,pageSizeOptions:[1,5,10,20,50,100,500]}):this.expansionPanelExpanded=!1}),this.activeWidget$$=this.workspaceState.activeWorkspaceWidget$.subscribe(t=>{void 0!==t?(this.openToastPanelForExpansion(),this.showToastPanelForExpansionToggle=!0):(this.closeToastPanelForExpansion(),this.showToastPanelForExpansionToggle=!1)}),this.openSidenav$$=this.toolState.openSidenav$.subscribe(t=>{t&&(this.openSidenav(),this.toolState.openSidenav$.next(!1))}),this.sidenavMediaAndOrientation$$=(0,L.a)([this.sidenavOpened$,this.mediaService.media$,this.mediaService.orientation$]).pipe((0,z.b)(50)).subscribe(t=>{this.computeToastPanelOffsetX()}),this.appConfig.importExport?.configFileToGeoDBService&&this.configFileToGeoDBService.load(this.appConfig.importExport.configFileToGeoDBService)}handleAppConfigs(){this.appConfig=this.configService.getConfigs(),this.hasGeolocateButton=this.configService.getConfig("geolocate.button.visible",!0),this.showMenuButton=this.configService.getConfig("menu.button.visible",!0),this.showSearchBar=this.configService.getConfig("searchBar.showSearchBar",!0),this.igoSearchPointerSummaryEnabled=this.appConfig.hasSearchPointerSummary}setToastPanelHtmlDisplay(n){this.toastPanelHtmlDisplay=n,this.computeToastPanelOffsetX()}computeToastPanelOffsetX(){this.isMobile()||!this.isLandscape()?Promise.resolve().then(()=>this.toastPanelOffsetX$.next(void 0)):Promise.resolve().then(()=>this.toastPanelOffsetX$.next(this.getToastPanelExtent()))}workspaceVisibility(){const n=this.selectedWorkspace$.value;return n.inResolutionRange$.value?n.entityStore.empty$.value&&!n.layer.visible?this.workspaceNotAvailableMessage="workspace.disabled.visible":this.workspaceNotAvailableMessage="":this.workspaceNotAvailableMessage="workspace.disabled.resolution",n.inResolutionRange$.value}isEditionWorkspace(n){return n instanceof l.S42}addFeature(n){let t={type:"Feature",properties:{}};t.properties=this.createFeatureProperties(n.layer),this.workspaceState.rowsInMapExtentCheckCondition$.next(!1),n.editFeature(t,n)}createFeatureProperties(n){let t={};return n.options.sourceOptions.sourceFields.forEach(o=>{!o.primary&&o.visible&&(t[o.name]="")}),t}paginatorChange(n){this.workspacePaginator=n}entitySortChange(){this.workspaceEntitySortChange$.next(!0)}entitySelectChange(n){this.getQuerySearchSource();const o=[];if((!(this.selectedWorkspace$.value instanceof l.RhL||this.selectedWorkspace$.value instanceof l.RMI)||this.selectedWorkspace$.value.getLayerWksOptionTabQuery())&&n&&n.added){const a=n.added.map(p=>{if(p&&p.ol&&p.ol.getProperties()._featureStore.layer&&p.ol.getProperties()._featureStore.layer.visible){const h=p.ol,g=p.ol.getProperties()._featureStore.layer,f=(0,l.ve2)(h,g.map.projection,g.ol);f.meta.alias=this.queryService.getAllowedFieldsAndAlias(g),f.meta.title=this.queryService.getQueryTitle(f,g)||f.meta.title;let _=o.find(le=>le.title===f.meta.sourceTitle);return _||(_=new l.W2O({title:f.meta.sourceTitle}),o.push(_)),(0,l.$LA)(f,_)}});(0,ue.of)(a).subscribe(p=>{this.queryStore.load(p)})}}ngOnDestroy(){this.context$$.unsubscribe(),this.activeWidget$$.unsubscribe(),this.openSidenav$$.unsubscribe(),this.workspaceMaximize$$.map(n=>n.unsubscribe()),this.sidenavMediaAndOrientation$$.unsubscribe()}cancelOngoingAddLayer(){this.addedLayers$$.forEach(n=>n.unsubscribe()),this.addedLayers$$=[]}onBackdropClick(){this.closeSidenav()}onToggleSidenavClick(){this.toggleSidenav()}onDeactivateWorkspaceWidget(){this.closeToastPanelForExpansion()}closeToastPanelForExpansion(){this.toastPanelForExpansionOpened=!1}openToastPanelForExpansion(){this.toastPanelForExpansionOpened=!0}onMapQuery(n){this.getQuerySearchSource();const o=[],i=n.features.map(h=>{let g=o.find(f=>f.title===h.meta.sourceTitle);if(!this.getFeatureIsSameActiveWks(h)||!this.getWksActiveOpenInResolution()||this.workspace.getLayerWksOptionMapQuery?.())return g||(g=new l.W2O({title:h.meta.sourceTitle}),o.push(g)),(0,l.$LA)(h,g)}).filter(h=>void 0!==h);(0,ue.of)(i).subscribe(h=>{this.queryStore.load(h)})}onSearchTermChange(n){this.routeParams?.search&&n!==this.routeParams.search&&this.searchState.deactivateCustomFilterTermStrategy(),this.searchBarTerm=n,this.searchState.setSearchTerm(n),n.replace(/(#[^\s]*)/g,"").trim().length<2?this.onClearSearch():this.onBeforeSearch()}onSearch(n){const t=n.results,o=!(0,l.OcM)(n.research.source);let a;a=o?this.searchSourceService.getEnabledSources().filter(l._iF):this.searchSourceService.getEnabledSources().filter(l.OcM);const i=this.searchStore.entities$.value.filter(p=>p.source!==n.research.source&&a.includes(p.source)).concat(t);this.searchStore.updateMany(i)}onSearchResultsGeometryStatusChange(n){this.searchState.setSearchResultsGeometryStatus(n)}onReverseCoordsFormatStatusChange(n){this.storageService.set("reverseSearchCoordsFormatEnabled",n),this.igoReverseSearchCoordsFormatEnabled=n}onSearchSettingsChange(){this.onSettingsChange$.next(!0)}closeSidenav(){this.sidenavOpened=!1,this.map.viewController.padding[3]=0}openSidenav(){this.sidenavOpened=!0,this.map.viewController.padding[3]=this.isMobile()?0:400}toggleSidenav(){this.sidenavOpened?this.closeSidenav():this.openSidenav(),this.computeToastPanelOffsetX()}toolChanged(n){n&&"searchResults"===n.name&&this.searchBar&&this.searchBar.nativeElement.getElementsByTagName("input")[0].focus()}computeHomeExtentValues(n){n?.map?.view?.homeExtent?(this.homeExtent=n.map.view.homeExtent.extent,this.homeCenter=n.map.view.homeExtent.center,this.homeZoom=n.map.view.homeExtent.zoom):(this.homeExtent=void 0,this.homeCenter=void 0,this.homeZoom=void 0)}onChangeContext(n){if(this.cancelOngoingAddLayer(),void 0!==n){if(this.workspace&&!this.workspace.entityStore.empty&&this.workspace.entityStore.clear(),this.queryState.store.empty||this.queryState.store.softClear(),this.computeHomeExtentValues(n),this.route.queryParams.pipe((0,z.b)(250)).subscribe(t=>{(!t.context||t.context===n.uri)&&this.readLayersQueryParams(t)}),this.contextLoaded){const t=this.toolbox.getTool("contextManager");let a=(t?t.options:{}).toolToOpenOnContextChange;if(!a){const i=["mapTools","map","mapDetails","mapLegend"];for(const p of i)if(this.toolbox.getTool(p)){a=p;break}}a&&this.toolbox.activateTool(a)}this.contextLoaded=!0}}onBeforeSearch(){(!this.toolbox.activeTool$.value||"searchResults"!==this.toolbox.activeTool$.value.name)&&this.toolbox.activateTool("searchResults"),this.openSidenav()}toastOpenedChange(n){this.map.viewController.padding[2]=n?280:0,this.handleExpansionAndToastOnMobile(),this.toastPanelOpened=n}handleExpansionAndToastOnMobile(){this.isMobile()&&this.appConfig.hasExpansionPanel&&this.expansionPanelExpanded&&this.toastPanelOpened&&(this.expansionPanelExpanded=!1)}onClearSearch(){this.map.searchResultsOverlay.clear(),this.searchStore.clear(),this.searchState.setSelectedResult(void 0),this.searchState.deactivateCustomFilterTermStrategy()}getQuerySearchSource(){return this.searchSourceService.getSources().find(n=>n instanceof l.W2O)}onContextMenuOpen(n){this.contextMenuCoord=this.getClickCoordinate(n)}getClickCoordinate(n){const t=n,o=this.mapBrowser.nativeElement.getBoundingClientRect();t.y=t.y-o.top+(window.scrollY||window.pageYOffset),t.x=t.x-o.left+(window.scrollX||window.pageXOffset);const a=[t.x,t.y],i=this.map.ol.getCoordinateFromPixel(a),p=this.map.projection;return be.vs(i,p,"EPSG:4326")}openGoogleMaps(n){window.open(l.Gij.getGoogleMapsCoordLink(n[0],n[1]))}openGoogleStreetView(n){window.open(l.Gij.getGoogleStreetViewLink(n[0],n[1]))}searchCoordinate(n){this.searchBarTerm=this.igoReverseSearchCoordsFormatEnabled?n.reverse().map(t=>t.toFixed(6)).join(", "):n.map(t=>t.toFixed(6)).join(", ")}updateMapBrowserClass(){const n=this.queryState.store.entities$.value.length>0;this.appConfig.hasExpansionPanel&&this.workspaceState.workspaceEnabled$.value?this.mapBrowser.nativeElement.classList.add("has-expansion-panel"):this.mapBrowser.nativeElement.classList.remove("has-expansion-panel"),this.appConfig.hasExpansionPanel&&this.expansionPanelExpanded?this.workspaceState.workspaceMaximize$.value?(this.mapBrowser.nativeElement.classList.add("expansion-offset-maximized"),this.mapBrowser.nativeElement.classList.remove("expansion-offset")):(this.mapBrowser.nativeElement.classList.add("expansion-offset"),this.mapBrowser.nativeElement.classList.remove("expansion-offset-maximized")):this.workspaceState.workspaceMaximize$.value?this.mapBrowser.nativeElement.classList.remove("expansion-offset-maximized"):this.mapBrowser.nativeElement.classList.remove("expansion-offset"),this.sidenavOpened?this.mapBrowser.nativeElement.classList.add("sidenav-offset"):this.mapBrowser.nativeElement.classList.remove("sidenav-offset"),this.sidenavOpened&&!this.isMobile()?this.mapBrowser.nativeElement.classList.add("sidenav-offset-baselayers"):this.mapBrowser.nativeElement.classList.remove("sidenav-offset-baselayers"),this.toastPanelOpened||!n||this.expansionPanelExpanded?this.mapBrowser.nativeElement.classList.remove("toast-offset-scale-line"):this.mapBrowser.nativeElement.classList.add("toast-offset-scale-line"),!this.toastPanelOpened&&n&&(this.isMobile()||this.isTablet()||this.sidenavOpened)&&!this.expansionPanelExpanded?this.mapBrowser.nativeElement.classList.add("toast-offset-attribution"):this.mapBrowser.nativeElement.classList.remove("toast-offset-attribution")}getToastPanelExtent(){return this.sidenavOpened?this.sidenavOpened?this.toastPanelHtmlDisplay&&this.mediaService.isDesktop()?"htmlDisplayOffsetX":this.fullExtent?"fullOffsetX":"standardOffsetX":void 0:this.toastPanelHtmlDisplay&&this.mediaService.isDesktop()?"htmlDisplay":this.fullExtent?"fullStandard":"standard"}onPointerSummaryStatusChange(n){this.storageService.set("searchPointerSummaryEnabled",n),this.igoSearchPointerSummaryEnabled=n}getExpansionPanelStatus(){return!1===this.sidenavOpened?!0===this.expansionPanelExpanded?"full":"notTriggered":!0===this.sidenavOpened&&!1===this.isMobile()?!0===this.expansionPanelExpanded?"reduced":"reducedNotTriggered":!0===this.sidenavOpened&&!0===this.isMobile()?!0===this.expansionPanelExpanded?"mobile":"notVisible":void 0}getToastPanelOffsetY(){let n="noExpansion";return n=this.expansionPanelExpanded?this.workspaceState.workspaceMaximize$.value?this.toastPanelOpened?"expansionMaximizedAndToastOpened":"expansionMaximizedAndToastClosed":this.toastPanelOpened?"expansionAndToastOpened":"expansionAndToastClosed":"noExpansion",n}getToastPanelStatus(){if(!0===this.isMobile()&&!1===this.toastPanelOpened&&!1===this.sidenavOpened&&!1===this.expansionPanelExpanded&&this.queryState.store.entities$.value.length>0)return"low"}getControlsOffsetY(){return this.expansionPanelExpanded?this.workspaceState.workspaceMaximize$.value?"firstRowFromBottom-expanded-maximized":"firstRowFromBottom-expanded":"firstRowFromBottom"}getBaselayersSwitcherStatus(){let n;return n=this.isMobile()?this.workspaceState.workspaceEnabled$.value?!1===this.expansionPanelExpanded?0===this.queryState.store.entities$.value.length?"secondRowFromBottom":"thirdRowFromBottom":0===this.queryState.store.entities$.value.length?"firstRowFromBottom-expanded":"secondRowFromBottom-expanded":0===this.queryState.store.entities$.value.length?"firstRowFromBottom":"secondRowFromBottom":this.workspaceState.workspaceEnabled$.value?this.expansionPanelExpanded?this.workspaceState.workspaceMaximize$.value?"firstRowFromBottom-expanded-maximized":"firstRowFromBottom-expanded":"secondRowFromBottom":"firstRowFromBottom",n}readQueryParams(){this.route.queryParams.subscribe(n=>{this.routeParams=n,this.readToolParams(),this.readSearchParams(),this.readFocusFirst(),this.computeZoomToExtent()})}readLanguageParam(n){n.lang&&(this.authService.languageForce=!0,this.languageService.setLanguage(n.lang))}computeZoomToExtent(){if(this.routeParams.zoomExtent){const n=this.routeParams.zoomExtent.split(","),t=be.$A(n,"EPSG:4326",this.map.projection);this.map.viewController.zoomToExtent(t)}}computeFocusFirst(){setTimeout(()=>{const n=document.getElementsByTagName("igo-search-results-item").item(0);n&&n.click()},1)}readFocusFirst(){if("1"===this.routeParams.sf&&this.termDefinedInUrl){const n=this.searchStore.stateView.all$().pipe((0,M.n)(t=>0===t.length),(0,z.b)(1e3),(0,Oe.q)(1)).subscribe(t=>{n.unsubscribe(),t.length&&!this.termDefinedInUrlTriggered&&(this.computeFocusFirst(),this.termDefinedInUrlTriggered=!0)})}}readSearchParams(){if(this.routeParams.search){if(this.termDefinedInUrl=!0,"1"===this.routeParams.exactMatch&&this.searchState.activateCustomFilterTermStrategy(),this.routeParams.search&&!this.routeParams.zoom&&"1"!==this.routeParams.sf){const n=this.searchStore.stateView.all$().pipe((0,M.n)(t=>0===t.length),(0,z.b)(500),(0,Oe.q)(1)).subscribe(t=>{n.unsubscribe();const o=t.filter(i=>i.entity.meta.dataType===l.D97).map(i=>(new ge.Z).readFeature(i.entity.data,{dataProjection:i.entity.data.projection,featureProjection:this.map.projection})),a=(0,l.HgW)(o,this.map.viewProjection);this.map.viewController.zoomToExtent(a)})}this.searchBarTerm=this.routeParams.search}"1"===this.routeParams.searchGeom&&this.searchState.searchResultsGeometryEnabled$.next(!0)}readToolParams(){if(this.routeParams.tool&&this.matDialogRef$.pipe((0,M.n)(n=>void 0!==n),(0,A.P)()).subscribe(n=>{n||this.toolbox.activateTool(this.routeParams.tool)}),"1"===this.routeParams.sidenav&&setTimeout(()=>{this.openSidenav()},250),this.routeParams.routing){let n=!1;const t=this.routeParams.routing.split(";"),o=this.routeParams.routingOptions;let a;o&&(a=parseInt(o.split("result:")[1],10)),this.directionState.stopsStore.storeInitialized$.pipe((0,M.n)(i=>!i),(0,A.P)()).subscribe(i=>{i&&!n&&(n=!0,t.map((p,h)=>{h>1&&(0,l.yLv)(this.directionState.stopsStore)}),setTimeout(()=>{t.map((p,h)=>{const g=this.directionState.stopsStore.all().find(f=>f.position===h);g.text=p,g.coordinates=p.split(","),this.directionState.stopsStore.update(g)})},1.25*this.directionState.debounceTime))}),this.directionState.routesFeatureStore.count$.pipe((0,M.n)(i=>i<1),(0,A.P)()).subscribe(i=>{i>=1&&this.directionState.zoomToActiveRoute$.next()}),this.directionState.routesFeatureStore.count$.pipe((0,M.n)(i=>i<2),(0,A.P)()).subscribe(()=>{a&&(this.directionState.routesFeatureStore.entities$.value.map(i=>i.properties.active=!1),this.directionState.routesFeatureStore.entities$.value[a].properties.active=!0,this.directionState.zoomToActiveRoute$.next())})}}readLayersQueryParams(n){this.readLayersQueryParamsByType(n,"wms"),this.readLayersQueryParamsByType(n,"wmts"),this.readLayersQueryParamsByType(n,"arcgisrest"),this.readLayersQueryParamsByType(n,"imagearcgisrest"),this.readLayersQueryParamsByType(n,"tilearcgisrest"),this.readVectorQueryParams(n)}getQueryParam(n,t){let o;return t.includes("?")&&(o=new Ce.LE({fromString:t.split("?")[1]}).get(n)),o}readLayersQueryParamsByType(n,t){let o,a;switch(t){case"wms":(n.layers||n.wmsLayers)&&n.wmsUrl&&(a="wmsUrl",o=n.wmsLayers?"wmsLayers":"layers");break;case"wmts":n.wmtsLayers&&n.wmtsUrl&&(a="wmtsUrl",o="wmtsLayers");break;case"arcgisrest":n.arcgisLayers&&n.arcgisUrl&&(a="arcgisUrl",o="arcgisLayers");break;case"imagearcgisrest":n.iarcgisLayers&&n.iarcgisUrl&&(a="iarcgisUrl",o="iarcgisLayers");break;case"tilearcgisrest":n.tarcgisLayers&&n.tarcgisUrl&&(a="tarcgisUrl",o="tarcgisLayers")}if(!o||!a)return;const i=n[o].split("),("),p=n[a].split(",");let h=0;p.forEach(g=>{let f=g;const _=this.getQueryParam("VERSION",f)||this.getQueryParam("version",f)||void 0;_&&(f=f.replace("VERSION="+_,"").replace("version="+_,"")),f.endsWith("?")&&(f=f.substring(0,f.length-1)),this.extractLayersByService(i[h]).forEach(_e=>{const $=_e.split(":igoz"),we=b.gb.removeUndefined({type:t,url:f,layer:$[0],params:"wms"===t?{LAYERS:$[0]}:void 0}),ve=(0,l.lZj)(we),ye=this.computeLayerVisibilityFromUrl(n,ve);this.addLayerFromURL(f,$[0],t,_,ye,$[1]?parseInt($[1],10):void 0)}),h+=1})}readVectorQueryParams(n){if(n.vector){const t=n.vector,o=t.lastIndexOf("/"),a=t.slice(o+1,t.length);this.http.get(`${t}`,{responseType:"blob"}).subscribe(i=>{const p=new File([i],a,{type:i.type,lastModified:Date.now()});this.importService.import(p).subscribe(h=>this.onFileImportSuccess(p,h),h=>this.onFileImportError(p,h))})}}onFileImportSuccess(n,t){(0,l.xrF)(n,t,this.map,this.contextState.context$.value.uri,this.messageService,this.layerService)}onFileImportError(n,t){(0,l.jDn)(n,t,this.messageService)}extractLayersByService(n){let t=n;return t=t.startsWith("(")?t.substr(1):t,t=t.endsWith(")")?t.slice(0,-1):t,t.split(",")}addLayerFromURL(n,t,o,a,i=!0,p){if(!this.contextLoaded)return;const h={optionsFromCapabilities:!0,optionsFromApi:!0,crossOrigin:!0,type:o,url:n},g="arcgisrest"===o||"imagearcgisrest"===o||"tilearcgisrest"===o;let f={version:"wmts"===o?"1.0.0":void 0,queryable:!!g,queryFormat:g?"esrijson":void 0,layer:t};"wms"===o&&(f={params:{LAYERS:t,VERSION:a}}),f=b.gb.removeUndefined(Object.assign({},f,h)),this.addedLayers$$.push(this.layerService.createAsyncLayer({zIndex:p,visible:i,sourceOptions:f}).subscribe(_=>{this.map.addLayer(_)}))}computeLayerVisibilityFromUrl(n,t){const o=n;let a=!0;if(!o||!t)return a;let i="",p="",h=[],g=[];return o.visiblelayers&&(i=o.visiblelayers),o.invisiblelayers&&(p=o.invisiblelayers),"*"===i&&(a=!0),"*"===p&&(a=!1),h=i.split(","),g=p.split(","),(h.indexOf(t)>-1||h.indexOf(t.toString())>-1)&&(a=!0),(g.indexOf(t)>-1||g.indexOf(t.toString())>-1)&&(a=!1),a}initWelcomeWindow(){this.authService.hasAuthService?this.authService.logged$.subscribe(n=>{n&&this.createWelcomeWindow()}):this.createWelcomeWindow()}createWelcomeWindow(){if(this.welcomeWindowService.hasWelcomeWindow()){const n=this.welcomeWindowService.getConfig();this.matDialogRef$.next(this.dialogWindow.open(H,n)),this.matDialogRef$.value.afterClosed().subscribe(t=>{this.welcomeWindowService.afterClosedWelcomeWindow(),this.matDialogRef$.next(void 0)})}}getFeatureIsSameActiveWks(n){if(this.workspace){const t=n.meta.sourceTitle;return this.workspace.title===t}return!1}getWksActiveOpenInResolution(){if(this.workspace){const n=this.workspace;if(n.active&&n.inResolutionRange$.value&&this.workspaceState.workspacePanelExpanded)return!0}return!1}refreshRelationsWorkspace(n){if(n?.length)for(const t of n)this.workspaceStore.all().find(a=>t.options.workspace.workspaceId.includes(a.id))?.meta.tableTemplate.columns.forEach(a=>{("list"===a.type||"autocomplete"===a.type)&&this.editionWorkspaceService.getDomainValues(a.relation).subscribe(i=>{a.domainValues=i})})}zoomToSelectedFeatureWks(){let n=new ge.Z;const t=this.workspaceState.workspaceSelection.map(a=>a.entity);if(0===t.length)return;const o=[];for(const a of t){let i=n.readFeature(a,{dataProjection:a.projection,featureProjection:this.map.projection});o.push(i)}(0,l.ybU)(this.map.viewController,o,l.bAZ.Zoom)}static \u0275fac=function(t){return new(t||U)(e.Y36(R.gz),e.Y36(w.gV),e.Y36(de.e8),e.Y36(m.yJ),e.Y36(l.ITu),e.Y36(l.LvN),e.Y36(e.sBO),e.Y36(l.neU),e.Y36(w.sz),e.Y36(w.U5),e.Y36(w.po),e.Y36(w.Tb),e.Y36(w.EH),e.Y36(l.gS3),e.Y36(m.M$),e.Y36(l.Y5R),e.Y36(Ce.eN),e.Y36(m.TS),e.Y36(m.ez),e.Y36(B),e.Y36(T.uw),e.Y36(l._7J),e.Y36(m.V1),e.Y36(l.zNf),e.Y36(w.Nw),e.Y36(l.D4b))};static \u0275cmp=e.Xpm({type:U,selectors:[["app-portal"]],viewQuery:function(t,o){if(1&t&&(e.Gf(wt,7,e.SBq),e.Gf(vt,7,e.SBq)),2&t){let a;e.iGM(a=e.CRH())&&(o.mapBrowser=a.first),e.iGM(a=e.CRH())&&(o.searchBar=a.first)}},decls:33,vars:50,consts:[[1,"app-main-container"],[3,"shown","click"],[1,"navbar-container"],[3,"mat-elevation-z2","sidenavOpened","openSidenav",4,"ngIf"],[3,"mat-elevation-z2","term","termSplitter","minLength","searchSettings","forceNA","store","pointerSummaryEnabled","searchResultsGeometryEnabled","reverseSearchCoordsFormatEnabled","searchTermChange","pointerSummaryStatus","searchResultsGeometryStatus","reverseSearchCoordsFormatStatus","search","clearFeature","searchSettingsChange",4,"ngIf"],[3,"map","opened","openedChange","toolChange"],["igoMapOffline","","igoWorkspaceUpdator","","igoLongPress","","igoSearchPointerSummary","","igoHoverFeature","","igoQuery","","igoMapContext","","igoLayerContext","","igoDropGeoFile","",3,"workspaceStore","igoSearchPointerSummaryDelay","igoSearchPointerSummaryEnabled","igoHoverFeatureDelay","igoHoverFeatureEnabled","waitForAllQueries","queryFeatures","queryFeaturesHitTolerance","contextUri","map","igoContextMenu","ngClass","query","menuPosition"],["mapBrowser",""],["color","primary",3,"map"],[1,"mat-elevation-z2",3,"map"],["class","mat-elevation-z2",4,"ngIf"],["color","primary","class","mat-elevation-z2",3,"map",4,"ngIf"],["class","mat-elevation-z2","color","primary",3,"map",4,"ngIf"],["color","primary",1,"mat-elevation-z2",3,"showIfNoRotation","map"],["class","mat-elevation-z2","color","primary",3,"map","extentOverride","centerOverride","zoomOverride",4,"ngIf"],[1,"mat-elevation-z2",3,"map","useStaticIcon"],[3,"backdropShown","expanded","maximized","expandedChange",4,"ngIf"],[3,"withHeader","opened","openedChange"],[1,"toast-panel-for-expansion-close-button-container"],["mat-icon-button","","color","warn",3,"click"],["svgIcon","close"],[3,"workspace","deactivateWidget",4,"ngIf"],[3,"map","store","hasFeatureEmphasisOnSelection","opened","openedChange","fullExtentEvent","windowHtmlDisplayEvent",4,"ngIf"],["contextMenu",""],[3,"sidenavOpened","openSidenav"],[3,"term","termSplitter","minLength","searchSettings","forceNA","store","pointerSummaryEnabled","searchResultsGeometryEnabled","reverseSearchCoordsFormatEnabled","searchTermChange","pointerSummaryStatus","searchResultsGeometryStatus","reverseSearchCoordsFormatStatus","search","clearFeature","searchSettingsChange"],["searchBar",""],[1,"mat-elevation-z2"],["color","primary",1,"mat-elevation-z2",3,"map"],["color","primary",1,"mat-elevation-z2",3,"map","extentOverride","centerOverride","zoomOverride"],[3,"backdropShown","expanded","maximized","expandedChange"],["expansionPanelHeader",""],["igoWorkspaceSelector","",3,"store","disabled","map","changeWorkspace","disableSwitch","relationLayers","rowsInMapExtentCheckCondition"],[4,"ngIf"],[1,"workspace-container"],[1,"workspace-actions"],["mat-icon-button","","collapsibleButton","","tooltip-position","below","matTooltipShowDelay","500",1,"eye-workspace",3,"color","matTooltip","click"],[3,"ngClass","svgIcon"],["class","add-feature","mat-icon-button","","color","primary","collapsibleButton","","tooltip-position","below","matTooltipShowDelay","500",3,"disabled","matTooltip","click",4,"ngIf"],["class","actionbar-workspace",3,"store","withIcon","withTitle","horizontal","withToggleButton","iconColor","color","mode","overlayClass",4,"ngIf"],["class","zoom-workspace","mat-icon-button","","color","primary","collapsibleButton","","tooltip-position","below","matTooltipShowDelay","500",3,"disabled","matTooltip","click",4,"ngIf"],[3,"store","entitySortChange$","paginatorOptions","paginatorChange",4,"ngIf"],["mat-icon-button","","color","primary","collapsibleButton","","tooltip-position","below","matTooltipShowDelay","500",1,"add-feature",3,"disabled","matTooltip","click"],["svgIcon","plus"],[1,"actionbar-workspace",3,"store","withIcon","withTitle","horizontal","withToggleButton","iconColor","color","mode","overlayClass"],["mat-icon-button","","color","primary","collapsibleButton","","tooltip-position","below","matTooltipShowDelay","500",1,"zoom-workspace",3,"disabled","matTooltip","click"],[3,"svgIcon"],[3,"store","entitySortChange$","paginatorOptions","paginatorChange"],[3,"class","paginator","store","template","entitySortChange","entitySelectChange",4,"ngIf"],[3,"paginator","store","template","entitySortChange","entitySelectChange"],[3,"workspace","deactivateWidget"],[3,"map","store","hasFeatureEmphasisOnSelection","opened","openedChange","fullExtentEvent","windowHtmlDisplayEvent"],["mode","context",3,"store","withIcon","horizontal"]],template:function(t,o){if(1&t&&(e.TgZ(0,"mat-sidenav-container",0)(1,"mat-sidenav-content")(2,"igo-backdrop",1),e.NdJ("click",function(){return o.onBackdropClick()}),e.qZA(),e.TgZ(3,"div",2),e.YNc(4,yt,1,3,"igo-menu-button",3),e.YNc(5,St,2,11,"igo-search-bar",4),e.qZA(),e.TgZ(6,"app-sidenav",5),e.NdJ("openedChange",function(i){return o.sidenavOpened=i})("toolChange",function(i){return o.toolChanged(i)}),e.qZA(),e.TgZ(7,"igo-map-browser",6,7),e.NdJ("query",function(i){return o.onMapQuery(i)})("menuPosition",function(i){return o.onContextMenuOpen(i)})("@mapStateX.start",function(){return o.updateMapBrowserClass()})("@mapStateY.start",function(){return o.updateMapBrowserClass()}),e._UZ(9,"igo-zoom-button",8)(10,"igo-swipe-control",9)(11,"igo-map-center",9),e.YNc(12,Ct,1,0,"igo-wake-lock-button",10),e.YNc(13,bt,1,3,"igo-offline-button",11),e.YNc(14,Ot,1,3,"igo-geolocate-button",12),e._UZ(15,"igo-rotation-button",13),e.YNc(16,Pt,1,4,"igo-home-extent-button",14),e.YNc(17,Mt,1,3,"igo-user-button",12),e._UZ(18,"igo-baselayers-switcher",15),e.qZA(),e._UZ(19,"app-map-overlay"),e.ALo(20,"async"),e.qZA()(),e.YNc(21,zt,8,16,"app-expansion-panel",16),e.ALo(22,"async"),e.TgZ(23,"app-toast-panel-for-expansion",17),e.NdJ("openedChange",function(i){return o.toastPanelForExpansionOpened=i}),e.TgZ(24,"div",18)(25,"button",19),e.NdJ("click",function(){return o.toastPanelForExpansionOpened=!1}),e._UZ(26,"mat-icon",20),e.qZA()(),e.YNc(27,Zt,1,1,"igo-workspace-widget-outlet",21),e.ALo(28,"async"),e.qZA(),e.YNc(29,Rt,2,9,"app-toast-panel",22),e.ALo(30,"async"),e.YNc(31,Lt,1,3,"ng-template",null,23,e.W1O)),2&t){const a=e.MAs(32);e.xp6(2),e.Q6J("shown",o.backdropShown),e.xp6(2),e.Q6J("ngIf",o.showMenuButton),e.xp6(1),e.Q6J("ngIf",o.showSearchBar),e.xp6(1),e.Q6J("map",o.map)("opened",o.sidenavOpened),e.xp6(1),e.Q6J("workspaceStore",o.workspaceStore)("igoSearchPointerSummaryDelay",500)("igoSearchPointerSummaryEnabled",o.igoSearchPointerSummaryEnabled)("igoHoverFeatureDelay",250)("igoHoverFeatureEnabled",!0)("waitForAllQueries",!0)("queryFeatures",!0)("queryFeaturesHitTolerance",15)("contextUri",o.contextUri)("map",o.map)("igoContextMenu",a)("ngClass",e.VKq(48,It,o.map.getBaseLayers().length>1))("@mapStateX",o.sidenavOpened?"right":"left")("@mapStateY",o.getControlsOffsetY()),e.xp6(2),e.Q6J("map",o.map)("@controlsOffsetY",o.getControlsOffsetY()),e.xp6(1),e.Q6J("map",o.map),e.xp6(1),e.Q6J("map",o.map),e.xp6(1),e.Q6J("ngIf",o.appConfig.wakeLockApiButton),e.xp6(1),e.Q6J("ngIf",o.appConfig.offlineButton),e.xp6(1),e.Q6J("ngIf",o.hasGeolocateButton),e.xp6(1),e.Q6J("showIfNoRotation",o.appConfig.showRotationButtonIfNoRotation)("map",o.map),e.xp6(1),e.Q6J("ngIf",o.appConfig.homeExtentButton),e.xp6(1),e.Q6J("ngIf",o.authService.hasAuthService),e.xp6(1),e.Q6J("map",o.map)("@controlsOffsetY",o.getBaselayersSwitcherStatus())("useStaticIcon",!0),e.xp6(1),e.Q6J("@controlStateY",o.getControlsOffsetY())("@controlStateX","mobile"!==e.lcZ(20,40,o.mediaService.media$)&&o.sidenavOpened?"right":"left"),e.xp6(2),e.Q6J("ngIf",o.appConfig.hasExpansionPanel&&e.lcZ(22,42,o.workspaceState.workspaceEnabled$)),e.xp6(2),e.Q6J("withHeader",!1)("opened",o.toastPanelForExpansionOpened),e.xp6(4),e.Q6J("ngIf",e.lcZ(28,44,o.selectedWorkspace$)),e.xp6(2),e.Q6J("ngIf",!0!==e.lcZ(30,46,o.queryStore.empty$))}},dependencies:[u.mk,u.O5,S.gM,v.RK,C.Hw,Z.TM,Z.Rh,l.V$T,l.ExE,l.PUQ,l.u$Y,l.$BH,l.fwr,l.AIr,l.W4Y,l.y$j,l.gvi,l.Ej2,l.tk9,l.qt4,l.pyf,l.TEo,l.NBD,l.tt3,c.nv,c.i8,c.lk,c.Fh,c.$E,l.DpO,l.O91,c.lB,c.Te,c.qv,J,O,Y,Q,N,E.b3,E.mH,E.qy,u.Ov,k.X$],styles:["[_nghost-%COMP%]{width:100%;height:100%;display:block}[_nghost-%COMP%] .navbar-container[_ngcontent-%COMP%]{position:absolute;left:4px;top:4px;display:flex;width:395px;max-width:395px;z-index:4}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){[_nghost-%COMP%] .navbar-container[_ngcontent-%COMP%]{width:calc(100% - 58px);max-width:min(100% - 48px - (2 * 5px),350px)}}[_nghost-%COMP%] .navbar-container[_ngcontent-%COMP%] igo-search-bar[_ngcontent-%COMP%]{flex:1;background-color:#fff;font-size:16px;margin-left:5px}[_nghost-%COMP%] .workspace-container[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between}[_nghost-%COMP%] .workspace-actions[_ngcontent-%COMP%]{display:flex;align-items:center}#tour-button[_ngcontent-%COMP%]{font-weight:700;position:absolute;left:5px;top:50px;z-index:4}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){.tour-button-title[_ngcontent-%COMP%]{display:none}}mat-icon.disabled[_ngcontent-%COMP%]{color:#00000061}igo-map-browser[_ngcontent-%COMP%]{width:100%;height:100%}igo-map-browser[_ngcontent-%COMP%] .ol-attribution{left:50px;bottom:5px;text-align:left;padding:0;margin-right:90px;background-color:#fff0;width:calc(100% - 500px)}igo-map-browser[_ngcontent-%COMP%] .ol-attribution.ol-logo-only{height:inherit}igo-map-browser[_ngcontent-%COMP%] .ol-attribution.ol-collapsed{background:none}igo-map-browser[_ngcontent-%COMP%] .ol-attribution.ol-collapsed button{transform:none}igo-map-browser[_ngcontent-%COMP%] .ol-attribution button{transform:rotate(180deg);background-color:#fff;cursor:pointer}igo-map-browser[_ngcontent-%COMP%] .ol-attribution.ol-uncollapsible{height:auto}igo-map-browser[_ngcontent-%COMP%] .ol-attribution ul{background-color:#fff9;padding:2px .5em}igo-map-browser.has-expansion-panel[_ngcontent-%COMP%] igo-baselayers-switcher[_ngcontent-%COMP%]{bottom:47px}igo-map-browser.sidenav-offset-baselayers[_ngcontent-%COMP%] igo-baselayers-switcher[_ngcontent-%COMP%]{left:405px}igo-map-browser[_ngcontent-%COMP%] .ol-overlaycontainer-stopevent{position:absolute;width:100%;left:0;bottom:0}igo-map-browser.sidenav-offset[_ngcontent-%COMP%] .ol-overlaycontainer-stopevent{left:400px;width:calc(100% - 380px)}igo-map-browser.sidenav-offset[_ngcontent-%COMP%] .ol-overlaycontainer-stopevent .ol-scale-line{left:40%}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){igo-map-browser.sidenav-offset[_ngcontent-%COMP%] .ol-overlaycontainer-stopevent{display:none}}igo-map-browser.expansion-offset[_ngcontent-%COMP%] .ol-overlaycontainer-stopevent{bottom:281px}igo-map-browser.expansion-offset-maximized[_ngcontent-%COMP%] .ol-overlaycontainer-stopevent{bottom:496px}igo-map-browser.toast-offset-scale-line[_ngcontent-%COMP%] .ol-overlaycontainer-stopevent .ol-scale-line{bottom:50px}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){igo-map-browser.toast-offset-attribution[_ngcontent-%COMP%] .ol-overlaycontainer-stopevent .ol-attribution{bottom:50px}}mat-sidenav-container[_ngcontent-%COMP%]{height:100%;width:100%;background-color:#efefef;z-index:5;display:unset}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){mat-sidenav-content[_ngcontent-%COMP%]{z-index:auto}}.spacer[_ngcontent-%COMP%]{flex:1 1 auto}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){igo-workspace-selector[_ngcontent-%COMP%]{width:100px}}igo-entity-table-paginator[_ngcontent-%COMP%]{position:absolute;right:0}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){igo-entity-table-paginator[_ngcontent-%COMP%]{margin-left:-30px}}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){igo-entity-table-paginator[_ngcontent-%COMP%] .mat-mdc-paginator-range-label{margin:10px 1px 0 20px}}igo-entity-table[_ngcontent-%COMP%] td.mat-column-edition{display:flex;height:100%;align-items:center}app-expansion-panel[_ngcontent-%COMP%]{position:absolute;bottom:0;z-index:5}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){@supports (-webkit-appearance: none) and (not (overflow: -webkit-marquee)) and (not (-ms-ime-align: auto)) and (not (-moz-appearance: none)){app-expansion-panel[_ngcontent-%COMP%]{z-index:5}}}app-toast-panel[_ngcontent-%COMP%]{position:absolute;left:50%;margin-left:-300px;max-width:-moz-fit-content;max-width:fit-content;z-index:5;outline:none}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){app-toast-panel[_ngcontent-%COMP%]{left:49px;margin-left:0;min-width:100%}}@media only screen and (orientation:portrait) and (min-width: 600px) and (max-width: 839px),only screen and (orientation:landscape) and (min-width: 960px) and (max-width: 1279px){app-toast-panel[_ngcontent-%COMP%]{max-width:inherit;left:calc(50% + 60px)}}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){app-expansion-panel.app-expansion-panel-expanded[_ngcontent-%COMP%] + app-toast-panel-for-expansion[_ngcontent-%COMP%] + app-toast-panel[_ngcontent-%COMP%] >div igo-panel.app-full-toast-panel-opened, app-expansion-panel.app-expansion-panel-expanded[_ngcontent-%COMP%] + app-toast-panel-for-expansion[_ngcontent-%COMP%] + app-toast-panel[_ngcontent-%COMP%] >div igo-panel.app-toast-panel-html-large, app-expansion-panel.app-expansion-panel-expanded[_ngcontent-%COMP%] + app-toast-panel-for-expansion[_ngcontent-%COMP%] + app-toast-panel[_ngcontent-%COMP%] igo-panel.app-full-toast-panel-opened, app-expansion-panel.app-expansion-panel-expanded[_ngcontent-%COMP%] + app-toast-panel-for-expansion[_ngcontent-%COMP%] + app-toast-panel[_ngcontent-%COMP%] igo-panel.app-toast-panel-html-large{max-height:50vh}app-expansion-panel.app-expansion-panel-expanded[_ngcontent-%COMP%] + app-toast-panel-for-expansion[_ngcontent-%COMP%] + app-toast-panel[_ngcontent-%COMP%] >div igo-panel.app-full-toast-panel-opened .toast-content, app-expansion-panel.app-expansion-panel-expanded[_ngcontent-%COMP%] + app-toast-panel-for-expansion[_ngcontent-%COMP%] + app-toast-panel[_ngcontent-%COMP%] >div igo-panel.app-toast-panel-html-large .toast-content, app-expansion-panel.app-expansion-panel-expanded[_ngcontent-%COMP%] + app-toast-panel-for-expansion[_ngcontent-%COMP%] + app-toast-panel[_ngcontent-%COMP%] igo-panel.app-full-toast-panel-opened .toast-content, app-expansion-panel.app-expansion-panel-expanded[_ngcontent-%COMP%] + app-toast-panel-for-expansion[_ngcontent-%COMP%] + app-toast-panel[_ngcontent-%COMP%] igo-panel.app-toast-panel-html-large .toast-content{max-height:42vh}}app-expansion-panel.app-expansion-panel-expanded-maximized[_ngcontent-%COMP%] + app-toast-panel-for-expansion[_ngcontent-%COMP%] + app-toast-panel[_ngcontent-%COMP%] >igo-panel{max-height:45vh}app-expansion-panel.app-expansion-panel-expanded-maximized[_ngcontent-%COMP%] + app-toast-panel-for-expansion[_ngcontent-%COMP%] + app-toast-panel[_ngcontent-%COMP%] >igo-panel .toast-content{max-height:40vh}@media only screen and (orientation:portrait) and (min-width: 600px) and (max-width: 839px),only screen and (orientation:landscape) and (min-width: 960px) and (max-width: 1279px){app-expansion-panel.app-expansion-panel-expanded-maximized[_ngcontent-%COMP%] + app-toast-panel-for-expansion[_ngcontent-%COMP%] + app-toast-panel[_ngcontent-%COMP%] >igo-panel{max-height:30vh}app-expansion-panel.app-expansion-panel-expanded-maximized[_ngcontent-%COMP%] + app-toast-panel-for-expansion[_ngcontent-%COMP%] + app-toast-panel[_ngcontent-%COMP%] >igo-panel .toast-content{max-height:24vh}}app-expansion-panel.app-expansion-panel-expanded-maximized[_ngcontent-%COMP%] + app-toast-panel-for-expansion[_ngcontent-%COMP%] + app-toast-panel[_ngcontent-%COMP%] >igo-panel.app-toast-panel-html{height:30vh}app-expansion-panel.app-expansion-panel-expanded-maximized[_ngcontent-%COMP%] + app-toast-panel-for-expansion[_ngcontent-%COMP%] + app-toast-panel[_ngcontent-%COMP%] >igo-panel.app-toast-panel-opened{height:auto;max-height:30vh}app-expansion-panel.app-expansion-panel-expanded-maximized[_ngcontent-%COMP%] + app-toast-panel-for-expansion[_ngcontent-%COMP%] + app-toast-panel[_ngcontent-%COMP%] >igo-panel.app-toast-panel-opened .toast-content{max-height:25vh}app-toast-panel.expansion-panel-expanded[_ngcontent-%COMP%], app-toast-panel[_ngcontent-%COMP%]:not(.has-expansion-panel), app-toast-panel.app-toast-panel-opened[_ngcontent-%COMP%]{bottom:0}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){app-toast-panel.expansion-panel-expanded[_ngcontent-%COMP%], app-toast-panel[_ngcontent-%COMP%]:not(.has-expansion-panel), app-toast-panel.app-toast-panel-opened[_ngcontent-%COMP%]{left:0}}igo-offline-button[_ngcontent-%COMP%]{margin-bottom:128px}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){igo-offline-button[_ngcontent-%COMP%]{margin-bottom:45px}}@media only screen and (orientation:portrait) and (min-width: 600px) and (max-width: 839px),only screen and (orientation:landscape) and (min-width: 960px) and (max-width: 1279px){igo-offline-button[_ngcontent-%COMP%]{margin-bottom:45px}}igo-geolocate-button[_ngcontent-%COMP%]{margin-bottom:85px}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){igo-geolocate-button[_ngcontent-%COMP%]{margin-bottom:0}}@media only screen and (orientation:portrait) and (min-width: 600px) and (max-width: 839px),only screen and (orientation:landscape) and (min-width: 960px) and (max-width: 1279px){igo-geolocate-button[_ngcontent-%COMP%]{margin-bottom:0}}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){igo-home-extent-button[_ngcontent-%COMP%]{margin-bottom:0;right:100px}}@media only screen and (orientation:portrait) and (min-width: 600px) and (max-width: 839px),only screen and (orientation:landscape) and (min-width: 960px) and (max-width: 1279px){igo-home-extent-button[_ngcontent-%COMP%]{margin-bottom:0;right:100px}}igo-zoom-button[_ngcontent-%COMP%] button{box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}@media only screen and (orientation:portrait) and (min-width: 600px) and (max-width: 839px),only screen and (orientation:landscape) and (min-width: 960px) and (max-width: 1279px){igo-zoom-button[_ngcontent-%COMP%]{display:none}}app-toast-panel-for-expansion[_ngcontent-%COMP%]{position:absolute;bottom:0;left:50%;margin-left:-300px;width:600px;z-index:6}@media only screen and (min-width: 960px) and (max-width: 1280px){app-toast-panel-for-expansion[_ngcontent-%COMP%]{width:480px;margin-left:-240px}}@media only screen and (min-width: 600px) and (max-width: 959px){app-toast-panel-for-expansion[_ngcontent-%COMP%]{width:480px;margin-left:-240px}}@media only screen and (orientation:portrait) and (min-width: 600px) and (max-width: 839px),only screen and (orientation:landscape) and (min-width: 960px) and (max-width: 1279px){app-toast-panel-for-expansion[_ngcontent-%COMP%]{width:calc(100% - 98px);left:49px;margin-left:0}}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){app-toast-panel-for-expansion[_ngcontent-%COMP%]{width:calc(100% - 98px);left:49px;margin-left:0}}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){toast-panel-for-expansion.toast-panel-for-expansion-opened[_ngcontent-%COMP%]{width:100%;left:0}}.mat-mdc-table[_ngcontent-%COMP%] thead[_ngcontent-%COMP%] mat-header-row[_ngcontent-%COMP%] .mat-mdc-table-sticky[_ngcontent-%COMP%]{background:none}app-toast-panel-for-expansion[_ngcontent-%COMP%] .toast-panel-for-expansion-close-button-container[_ngcontent-%COMP%]{position:absolute;top:-10px;right:-15px;z-index:6;padding:5px}app-toast-panel-for-expansion[_ngcontent-%COMP%] .toast-panel-for-expansion-close-button-container[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{height:24px;line-height:24px}.add-feature[_ngcontent-%COMP%]{margin-top:5px}.actionbar-workspace[_ngcontent-%COMP%]{padding-left:0} div.workspace-menu{max-width:-moz-fit-content!important;max-width:fit-content!important} div.workspace-menu div.mat-mdc-menu-content span.mat-checkbox-label, div.workspace-menu div.mat-mdc-menu-content div.mdc-list-item__primary-text{font-size:12px}"],data:{animation:[ze(),Ze(),Re(),Le(),Ie(),De(),He()]}})}class G{configService;languageService;headerLogo;headerLogoPrint;constructor(n,t){this.configService=n,this.languageService=t,this.computeHeader()}computeHeader(){this.headerLogo=this.configService.getConfig("header.logo"),this.headerLogoPrint=this.configService.getConfig("header.logoPrint")}static \u0275fac=function(t){return new(t||G)(e.Y36(m.M$),e.Y36(m.TS))};static \u0275cmp=e.Xpm({type:G,selectors:[["app-header"]],decls:21,vars:14,consts:[["role","banner","color","primary",1,"banner"],[1,"container"],[1,"row"],[1,"col-6","col-md-10","d-flex","flex-wrap","align-items-center","zone-logo-title"],["tabindex","5","routerLink","",1,"logo"],["id","header-logo","alt","Logo",3,"src"],["id","header-logo-print","alt","Logo","width","199","height","60",3,"src"],["lang","fr","id","title-desktop",1,"zone-title","d-none","d-md-block"],[1,"col-6","col-md-2","d-flex","justify-content-end","zone-links"],[1,"nav","flex-column"],["rel","noopener noreferrer","alt","('header.contactUsUrl' | translate)","target","_blank",3,"href"],["lang","fr","id","title-mobile",1,"zone-title","d-md-none","col-12"]],template:function(t,o){1&t&&(e.TgZ(0,"mat-toolbar",0)(1,"div",1)(2,"div",2)(3,"div",3)(4,"a",4),e._UZ(5,"img",5),e.qZA(),e._UZ(6,"img",6),e.TgZ(7,"p",7),e._uU(8),e.ALo(9,"translate"),e.qZA()(),e.TgZ(10,"div",8)(11,"ul",9)(12,"li")(13,"a",10),e.ALo(14,"translate"),e._uU(15),e.ALo(16,"translate"),e.qZA()()()(),e.TgZ(17,"p",11)(18,"a"),e._uU(19),e.ALo(20,"translate"),e.qZA()()()()()),2&t&&(e.xp6(5),e.s9C("src",o.headerLogo,e.LSH),e.xp6(1),e.s9C("src",o.headerLogoPrint,e.LSH),e.xp6(2),e.hij(" ",e.lcZ(9,6,"header.title")," "),e.xp6(5),e.s9C("href",e.lcZ(14,8,"header.contactUsUrl"),e.LSH),e.xp6(2),e.Oqu(e.lcZ(16,10,"header.contactUs")),e.xp6(4),e.Oqu(e.lcZ(20,12,"header.title")))},dependencies:[D.Ye,k.X$],styles:[".portal-with-header{height:calc(100% - 72px)!important}@media screen and (min-width: 824px){ .portal-with-header{height:calc(100% - 72px)!important}}[_ngcontent-%COMP%]:root{--breakpoint-pgu-sm: 403px;--breakpoint-sm: 576px;--breakpoint-md: 768px;--breakpoint-lg: 992px;--breakpoint-xl: 1200px}html[_ngcontent-%COMP%], body[_ngcontent-%COMP%]{padding:0;margin:0!important;width:100%;font-size:16px;font-family:Open sans,sans-serif}@media (min-width: 1280px) and (orientation: landscape){body[_ngcontent-%COMP%]{margin:0!important}}html[_ngcontent-%COMP%], body[_ngcontent-%COMP%], div[_ngcontent-%COMP%], span[_ngcontent-%COMP%], a[_ngcontent-%COMP%], header[_ngcontent-%COMP%], nav[_ngcontent-%COMP%]{margin:0;padding:0;border:0;vertical-align:baseline}html[_ngcontent-%COMP%], body[_ngcontent-%COMP%]{font-family:Open sans,sans-serif}.col-6[_ngcontent-%COMP%], .col-md-2[_ngcontent-%COMP%], .col-md-10[_ngcontent-%COMP%]{position:relative;width:100%}.col-12[_ngcontent-%COMP%]{flex:0 0 100%;max-width:100%}.container[_ngcontent-%COMP%]{width:100%;margin-right:auto;margin-left:auto}.row[_ngcontent-%COMP%]{-ms-display:flex;display:flex;flex-wrap:wrap;height:100%;width:98%;align-content:center;margin:auto}.col-6[_ngcontent-%COMP%]{flex:0 0 50%;max-width:50%}h1[_ngcontent-%COMP%], h2[_ngcontent-%COMP%], h3[_ngcontent-%COMP%], h4[_ngcontent-%COMP%], h5[_ngcontent-%COMP%], h6[_ngcontent-%COMP%]{font-family:Roboto,sans-serif;font-weight:700;color:#095797!important}a[_ngcontent-%COMP%]{word-break:break-word;overflow-wrap:break-word}img[_ngcontent-%COMP%]{vertical-align:middle;border-style:none}*[_ngcontent-%COMP%], *[_ngcontent-%COMP%]:before, *[_ngcontent-%COMP%]:after{box-sizing:border-box}.d-none[_ngcontent-%COMP%]{display:none}.flex-column[_ngcontent-%COMP%]{display:flex;flex-direction:column!important}.flex-wrap[_ngcontent-%COMP%]{flex-wrap:wrap!important}.d-flex[_ngcontent-%COMP%]{display:flex!important}.align-items-center[_ngcontent-%COMP%]{align-items:center!important}.justify-content-end[_ngcontent-%COMP%]{justify-content:flex-end!important}d-md-none[_ngcontent-%COMP%]{display:none}.align-self-end[_ngcontent-%COMP%]{align-self:flex-end!important}.banner[_ngcontent-%COMP%]{display:flex;width:100%;height:72px;box-sizing:border-box;font-family:Roboto,sans-serif;margin:0;padding:0;border:0;font-size:100%;vertical-align:baseline}a[_ngcontent-%COMP%]{color:#fff;text-decoration:none}.zone-logo-title[_ngcontent-%COMP%]{padding:.5rem 1.1rem .5rem 0}.zone-title[_ngcontent-%COMP%]{font-size:1rem}.zone-links[_ngcontent-%COMP%]{padding-left:1.1rem;max-width:100%;margin:auto;list-style:none;display:block;color:#fff}#header-logo[_ngcontent-%COMP%]{width:100%;min-width:7rem;max-height:28px}#header-logo-print[_ngcontent-%COMP%]{display:none}.zone-links[_ngcontent-%COMP%] ul[_ngcontent-%COMP%]{font: .8rem/1.2rem roboto,sans-serif;-webkit-font-smoothing:antialiased;text-align:left;flex-wrap:wrap;list-style:none;padding:0;margin:0}ul[_ngcontent-%COMP%] li[_ngcontent-%COMP%]:last-child{padding:0}.zone-links[_ngcontent-%COMP%] ul[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:hover, .zone-links[_ngcontent-%COMP%] ul[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:focus{text-decoration:underline;cursor:pointer}.buttonLanguage[_ngcontent-%COMP%]{background:none;border-style:none;padding:0;font: .8rem/1rem roboto,sans-serif;color:unset}#title-mobile[_ngcontent-%COMP%]{margin:auto 0;display:block}#title-desktop[_ngcontent-%COMP%]{display:none;color:#fff;margin:auto 0;padding:0} igo-spinner{position:absolute;top:76px!important;right:4px;z-index:100}@media screen and (min-width: 576px){.zone-logo-title[_ngcontent-%COMP%], .zone-links[_ngcontent-%COMP%]{flex:0 0 50%;max-width:50%}}@media screen and (min-width: 768px){.col-md-10[_ngcontent-%COMP%]{flex:0 0 83.33333%;max-width:83.33333%}.zone-links[_ngcontent-%COMP%]{flex:0 0 16.66667%;max-width:16.66667%}#header-logo[_ngcontent-%COMP%]{max-height:39px;padding-right:3.75rem}.banner[_ngcontent-%COMP%]{height:72px}.d-md-block[_ngcontent-%COMP%]{display:block!important}.d-md-none[_ngcontent-%COMP%]{display:none!important}.zone-logo-title[_ngcontent-%COMP%]{flex:0 0 83.33333%;max-width:83.33333%} igo-spinner{top:76px!important;right:4px;z-index:100}}"]})}class q{languageService;constructor(n){this.languageService=n}static \u0275fac=function(t){return new(t||q)(e.Y36(m.TS))};static \u0275cmp=e.Xpm({type:q,selectors:[["app-footer"]],decls:21,vars:18,consts:[["id","footer-id",1,"footer-right"],[1,"order2"],[1,"footer-text"],["rel","noopener noreferrer","alt","('externallinks' | translate)","target","_blank",3,"href"]],template:function(t,o){1&t&&(e.TgZ(0,"div",0)(1,"span",1)(2,"span",2)(3,"a",3),e.ALo(4,"translate"),e._uU(5),e.ALo(6,"translate"),e.qZA()(),e.TgZ(7,"span",2),e._uU(8," | "),e.qZA(),e.TgZ(9,"span",2)(10,"a",3),e.ALo(11,"translate"),e._uU(12),e.ALo(13,"translate"),e.qZA()(),e.TgZ(14,"span",2),e._uU(15," | "),e.qZA(),e.TgZ(16,"span",2)(17,"a",3),e.ALo(18,"translate"),e._uU(19),e.ALo(20,"translate"),e.qZA()()()()),2&t&&(e.xp6(3),e.s9C("href",e.lcZ(4,6,"footer.url-conditions"),e.LSH),e.xp6(2),e.Oqu(e.lcZ(6,8,"footer.conditions")),e.xp6(5),e.s9C("href",e.lcZ(11,10,"footer.url-ministry"),e.LSH),e.xp6(2),e.Oqu(e.lcZ(13,12,"footer.ministry")),e.xp6(5),e.s9C("href",e.lcZ(18,14,"footer.url-gov"),e.LSH),e.xp6(2),e.Oqu(e.lcZ(20,16,"footer.gov")))},dependencies:[k.X$],styles:[".order2[_ngcontent-%COMP%]{order:2;margin-right:.5%;display:block;right:0;margin-left:140px;text-align:right!important;width:100%}.footer-right[_ngcontent-%COMP%]{z-index:666;background:rgba(255,255,255,.6392156863);font-size:.7rem;display:flex;align-items:center;height:29px}span.footer-text[_ngcontent-%COMP%]{color:#095797;align-self:center;margin-left:.5rem}span.footer-text[_ngcontent-%COMP%] a[_ngcontent-%COMP%]{color:#095797;text-decoration:none} div.ol-scale-line{position:fixed!important;display:flex;flex-direction:row;margin-left:.5%;left:70px!important;bottom:3px!important} .ol-scale-line-inner{border:1px solid black;color:#000;border-top:none;order:1}"]})}function Dt(r,n){1&r&&e._UZ(0,"igo-auth-form")}function Ht(r,n){1&r&&e._UZ(0,"app-header",null,3)}function Wt(r,n){1&r&&e._UZ(0,"app-footer")}class V{document;languageService;configService;analyticsListenerService;titleService;metaService;messageService;pwaService;router;authConfig;hasHeader=!0;hasFooter=!0;promptEvent;constructor(n,t,o,a,i,p,h,g,f){this.document=n,this.languageService=t,this.configService=o,this.analyticsListenerService=a,this.titleService=i,this.metaService=p,this.messageService=h,this.pwaService=g,this.router=f,this.authConfig=this.configService.getConfig("auth",{}),this.readTitleConfig(),this.readDescriptionConfig(),this.analyticsListenerService.listen(),this.detectOldBrowser(),this.hasHeader=this.configService.getConfig("header.hasHeader",!1),this.hasFooter=this.configService.getConfig("hasFooter",!1),this.setManifest(),this.installPrompt(),this.pwaService.checkForUpdates()}ngOnInit(){this.handleSplashScreen()}handleSplashScreen(){this.router.events.pipe((0,A.P)(n=>n instanceof R.m2),(0,$e.g)(500)).subscribe(()=>{this._removeSplashScreen()})}_removeSplashScreen(){const n=this.document.getElementById("splash-screen");if(!n)return;n.classList.add("is-destroying");const o=this.document.getElementById("splash-screen-stylesheet");setTimeout(()=>{b.Ku.remove(n),b.Ku.remove(o)},300)}readTitleConfig(){this.languageService.translate.get(this.configService.getConfig("title","")).subscribe(n=>{n&&(this.titleService.setTitle(n),this.metaService.addTag({name:"title",content:n}))})}setManifest(){if(this.configService.getConfig("app.install.enabled")){const n=this.configService.getConfig("app.install.manifestPath","manifest.webmanifest");document.querySelector("#igoManifestByConfig").setAttribute("href",n)}}installPrompt(){const n=this.configService.getConfig("app");n?.install?.enabled&&n?.install?.promote&&"iOS"!==b.WE.getOSName()&&window.addEventListener("beforeinstallprompt",t=>{t.preventDefault(),this.promptEvent=t,window.addEventListener("click",()=>{setTimeout(()=>{this.promptEvent.prompt(),this.promptEvent=void 0},750)},{once:!0})},{once:!0})}readDescriptionConfig(){const n=this.configService.getConfig("description");n&&this.metaService.addTag({name:"description",content:n})}detectOldBrowser(){b.WE.satisfies({ie:"<=11",chrome:"<64",firefox:"<60",safari:"<=11"})&&this.messageService.alert("oldBrowser.message","oldBrowser.title",{timeOut:15e3})}static \u0275fac=function(t){return new(t||V)(e.Y36(u.K0),e.Y36(m.TS),e.Y36(m.M$),e.Y36(w.jZ),e.Y36(y.Dx),e.Y36(y.h_),e.Y36(m.ez),e.Y36(j),e.Y36(R.F0))};static \u0275cmp=e.Xpm({type:V,selectors:[["app-root"]],decls:5,vars:4,consts:[["igoSpinnerActivity",""],[4,"ngIf"],["igoStopDropPropagation","",3,"ngClass"],["header",""]],template:function(t,o){1&t&&(e._UZ(0,"igo-spinner",0),e.YNc(1,Dt,1,0,"igo-auth-form",1),e.YNc(2,Ht,2,0,"app-header",1),e._UZ(3,"app-portal",2),e.YNc(4,Wt,1,0,"app-footer",1)),2&t&&(e.xp6(1),e.Q6J("ngIf",o.authConfig&&o.authConfig.url),e.xp6(1),e.Q6J("ngIf",o.hasHeader),e.xp6(1),e.Q6J("ngClass",o.hasHeader?o.hasFooter?"portal-with-header-footer":"portal-with-header":o.hasFooter?"portal-with-footer":"portal"),e.xp6(1),e.Q6J("ngIf",o.hasFooter))},dependencies:[u.mk,u.O5,de.cD,c.Ft,c.OR,c.k8,U,G,q],styles:["[_nghost-%COMP%]{font-family:Roboto,Helvetica Neue,sans-serif}igo-spinner[_ngcontent-%COMP%]{position:absolute;top:5px;right:5px;z-index:100}igo-message-center[_ngcontent-%COMP%] simple-notifications div.simple-notification-wrapper{right:10px} .portal-with-header{height:calc(100% - 72px)!important} .portal-with-header-footer{height:calc(100% - 101px)!important} .portal-with-footer{height:calc(100% - 29px)!important}@media screen and (min-width: 824px){ .portal-with-header{height:calc(100% - 72px)!important} .portal-with-header-footer{height:calc(100% - 101px)!important}} .mat-mdc-form-field-icon-suffix mat-icon{width:auto!important;height:-webkit-fill-available!important}"]})}var Jt=d(13228),Te=d(78128),Yt=d(96355);class X{static \u0275fac=function(t){return new(t||X)};static \u0275mod=e.oAB({type:X});static \u0275inj=e.cJS({imports:[u.ez,v.ot,C.Ps,Te.Tx,Jt.ie,Yt.LD,S.AV,m.yR,c.BQ]})}class K{static \u0275fac=function(t){return new(t||K)};static \u0275mod=e.oAB({type:K});static \u0275inj=e.cJS({imports:[u.ez]})}class ee{static \u0275fac=function(t){return new(t||ee)};static \u0275mod=e.oAB({type:ee});static \u0275inj=e.cJS({imports:[u.ez,C.Ps,v.ot,Z.SJ,S.AV,m.yR,c.Am,c.O4,E.Zy,c.HL,l.Ud7,c.Gh,c.cQ]})}class te{static \u0275fac=function(t){return new(t||te)};static \u0275mod=e.oAB({type:te});static \u0275inj=e.cJS({imports:[u.ez,C.Ps,v.ot,m.yR,c.Am,c.Po]})}class ne{static \u0275fac=function(t){return new(t||ne)};static \u0275mod=e.oAB({type:ne});static \u0275inj=e.cJS({imports:[u.ez,Pe.g,C.Ps,v.ot,S.AV,Te.Tx,m.yR,c.Am,c.Po,c.AP,l.Ud7,l.tnH]})}class oe{static \u0275fac=function(t){return new(t||oe)};static \u0275mod=e.oAB({type:oe});static \u0275inj=e.cJS({imports:[m.yR,u.ez,I.u5,T.Is,c.Gh,c.k_,v.ot,S.AV,C.Ps,D.g0]})}class ae{static \u0275fac=function(t){return new(t||ae)};static \u0275mod=e.oAB({type:ae});static \u0275inj=e.cJS({imports:[u.ez,S.AV,v.ot,C.Ps,Z.SJ,T.Is,m.PV,l.Ud7,l.ybB,l.FIR,l.y1m.forRoot(),l.TxX.forRoot(),c.AP,c.h5,c.mD,l.Jpu,c.Am,c.HL,c.qL,c.BQ,c.O4,w.fZ,X,ne,te,ee,K,E.Zy,E.jm,c.gr,c.t3,c.Gh,oe]})}class ie{static \u0275fac=function(t){return new(t||ie)};static \u0275mod=e.oAB({type:ie});static \u0275inj=e.cJS({imports:[u.ez,m.yR]})}class se{static \u0275fac=function(t){return new(t||se)};static \u0275mod=e.oAB({type:se});static \u0275inj=e.cJS({imports:[u.ez,m.yR,D.g0]})}const Nt={showDelay:500,hideDelay:0,touchendHideDelay:0,disableTooltipInteractivity:!0};class re{static \u0275fac=function(t){return new(t||re)};static \u0275mod=e.oAB({type:re,bootstrap:[V]});static \u0275inj=e.cJS({providers:[(0,m.TQ)({default:he.igo,path:"./config/config.json"}),m.MZ,(0,l.ZsY)(),(0,l.cmn)(),(0,l.YVN)(),(0,l.PIH)(),(0,l.jxb)(),(0,l.c43)(),(0,l.eKy)(),(0,l.MG6)(),(0,l.HAL)(),(0,l.$hA)(),{provide:e.ip1,useFactory:Ut,deps:[e.zs3,e.z2F,u.K0],multi:!0},(0,l.rQG)({path:"./assets/list-style.json"}),{provide:S.Jm,useValue:Nt},{provide:F.o2,useValue:{appearance:"fill"}}],imports:[y.b2,ke.PW,R.Bz.forRoot([]),de._e.forRoot(),m.u4.forRoot(),m.zZ,c.d3,c.Po,ae,se,ie,Se.Wr.register("ngsw-worker.js",{enabled:he.igo.app.pwa.enabled,registrationStrategy:"registerWithDelay:5000"})]})}function Ut(r,n,t){return()=>new Promise(o=>{n.isStable.pipe((0,A.P)(a=>!0===a),(0,Ee.b)(()=>{const a=r.get(m.TS),i=a.getLanguage();return a.translate.getTranslation(i)})).subscribe(a=>{const i=r.get(m.TS),p=i.getLanguage();i.translate.setTranslation(p,a);const h=r.get(m.M$),g=h.getConfig("theme","blue-theme");(0,b.jz)(t,g);const f=h.getConfig("title");i.translate.get(f).subscribe(_=>{(function Gt(r,n){const t=r.getElementById("splash-screen-title");t&&(t.innerText=n)})(t,_),o()})})})}he.production&&(0,e.G48)(),y.q6().bootstrapModule(re).catch(r=>console.log(r))},46700:(P,pe,d)=>{var y={"./af":35528,"./af.js":35528,"./ar":1036,"./ar-dz":17579,"./ar-dz.js":17579,"./ar-kw":69588,"./ar-kw.js":69588,"./ar-ly":11650,"./ar-ly.js":11650,"./ar-ma":93258,"./ar-ma.js":93258,"./ar-sa":54085,"./ar-sa.js":54085,"./ar-tn":90287,"./ar-tn.js":90287,"./ar.js":1036,"./az":89757,"./az.js":89757,"./be":59620,"./be.js":59620,"./bg":31139,"./bg.js":31139,"./bm":4042,"./bm.js":4042,"./bn":19641,"./bn-bd":19126,"./bn-bd.js":19126,"./bn.js":19641,"./bo":494,"./bo.js":494,"./br":20934,"./br.js":20934,"./bs":26274,"./bs.js":26274,"./ca":45831,"./ca.js":45831,"./cs":92354,"./cs.js":92354,"./cv":79692,"./cv.js":79692,"./cy":58774,"./cy.js":58774,"./da":38955,"./da.js":38955,"./de":21557,"./de-at":24954,"./de-at.js":24954,"./de-ch":81881,"./de-ch.js":81881,"./de.js":21557,"./dv":16475,"./dv.js":16475,"./el":38877,"./el.js":38877,"./en-au":70454,"./en-au.js":70454,"./en-ca":67356,"./en-ca.js":67356,"./en-gb":10456,"./en-gb.js":10456,"./en-ie":28789,"./en-ie.js":28789,"./en-il":85471,"./en-il.js":85471,"./en-in":39664,"./en-in.js":39664,"./en-nz":97672,"./en-nz.js":97672,"./en-sg":80805,"./en-sg.js":80805,"./eo":87390,"./eo.js":87390,"./es":1564,"./es-do":51473,"./es-do.js":51473,"./es-mx":92089,"./es-mx.js":92089,"./es-us":84156,"./es-us.js":84156,"./es.js":1564,"./et":6513,"./et.js":6513,"./eu":7856,"./eu.js":7856,"./fa":2378,"./fa.js":2378,"./fi":22687,"./fi.js":22687,"./fil":80032,"./fil.js":80032,"./fo":46845,"./fo.js":46845,"./fr":8875,"./fr-ca":56425,"./fr-ca.js":56425,"./fr-ch":41746,"./fr-ch.js":41746,"./fr.js":8875,"./fy":67037,"./fy.js":67037,"./ga":11217,"./ga.js":11217,"./gd":37010,"./gd.js":37010,"./gl":51931,"./gl.js":51931,"./gom-deva":64488,"./gom-deva.js":64488,"./gom-latn":8032,"./gom-latn.js":8032,"./gu":34984,"./gu.js":34984,"./he":69090,"./he.js":69090,"./hi":42085,"./hi.js":42085,"./hr":38787,"./hr.js":38787,"./hu":2901,"./hu.js":2901,"./hy-am":59819,"./hy-am.js":59819,"./id":44074,"./id.js":44074,"./is":70715,"./is.js":70715,"./it":31746,"./it-ch":77040,"./it-ch.js":77040,"./it.js":31746,"./ja":3180,"./ja.js":3180,"./jv":34346,"./jv.js":34346,"./ka":65538,"./ka.js":65538,"./kk":79772,"./kk.js":79772,"./km":87905,"./km.js":87905,"./kn":79125,"./kn.js":79125,"./ko":69140,"./ko.js":69140,"./ku":2354,"./ku.js":2354,"./ky":63768,"./ky.js":63768,"./lb":14016,"./lb.js":14016,"./lo":83169,"./lo.js":83169,"./lt":62353,"./lt.js":62353,"./lv":83243,"./lv.js":83243,"./me":52338,"./me.js":52338,"./mi":35555,"./mi.js":35555,"./mk":85794,"./mk.js":85794,"./ml":53151,"./ml.js":53151,"./mn":46458,"./mn.js":46458,"./mr":69165,"./mr.js":69165,"./ms":8680,"./ms-my":87477,"./ms-my.js":87477,"./ms.js":8680,"./mt":79684,"./mt.js":79684,"./my":40285,"./my.js":40285,"./nb":45922,"./nb.js":45922,"./ne":29040,"./ne.js":29040,"./nl":5066,"./nl-be":74460,"./nl-be.js":74460,"./nl.js":5066,"./nn":53693,"./nn.js":53693,"./oc-lnc":88676,"./oc-lnc.js":88676,"./pa-in":92341,"./pa-in.js":92341,"./pl":57416,"./pl.js":57416,"./pt":84344,"./pt-br":30113,"./pt-br.js":30113,"./pt.js":84344,"./ro":72643,"./ro.js":72643,"./ru":61305,"./ru.js":61305,"./sd":96095,"./sd.js":96095,"./se":74486,"./se.js":74486,"./si":58742,"./si.js":58742,"./sk":96722,"./sk.js":96722,"./sl":3345,"./sl.js":3345,"./sq":52416,"./sq.js":52416,"./sr":39450,"./sr-cyrl":50501,"./sr-cyrl.js":50501,"./sr.js":39450,"./ss":32222,"./ss.js":32222,"./sv":9454,"./sv.js":9454,"./sw":19638,"./sw.js":19638,"./ta":96494,"./ta.js":96494,"./te":94435,"./te.js":94435,"./tet":25003,"./tet.js":25003,"./tg":13706,"./tg.js":13706,"./th":16025,"./th.js":16025,"./tk":59780,"./tk.js":59780,"./tl-ph":22068,"./tl-ph.js":22068,"./tlh":39167,"./tlh.js":39167,"./tr":32494,"./tr.js":32494,"./tzl":58707,"./tzl.js":58707,"./tzm":91296,"./tzm-latn":34532,"./tzm-latn.js":34532,"./tzm.js":91296,"./ug-cn":12086,"./ug-cn.js":12086,"./uk":85069,"./uk.js":85069,"./ur":29304,"./ur.js":29304,"./uz":95115,"./uz-latn":97609,"./uz-latn.js":97609,"./uz.js":95115,"./vi":34802,"./vi.js":34802,"./x-pseudo":65605,"./x-pseudo.js":65605,"./yo":88456,"./yo.js":88456,"./zh-cn":23272,"./zh-cn.js":23272,"./zh-hk":9402,"./zh-hk.js":9402,"./zh-mo":48101,"./zh-mo.js":48101,"./zh-tw":40262,"./zh-tw.js":40262};function e(u){var F=ce(u);return d(F)}function ce(u){if(!d.o(y,u)){var F=new Error("Cannot find module '"+u+"'");throw F.code="MODULE_NOT_FOUND",F}return y[u]}e.keys=function(){return Object.keys(y)},e.resolve=ce,P.exports=e,e.id=46700}},P=>{P.O(0,[736],()=>{return y=57682,P(P.s=y);var y});P.O()}]); +//# sourceMappingURL=main.8f681e47f42fcadb.js.map \ No newline at end of file diff --git a/main.8f681e47f42fcadb.js.map b/main.8f681e47f42fcadb.js.map new file mode 100644 index 000000000..835d441d6 --- /dev/null +++ b/main.8f681e47f42fcadb.js.map @@ -0,0 +1 @@ +{"version":3,"file":"main.8f681e47f42fcadb.js","mappings":"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,MAAO,IACL,IAAI2pB,QAAcC,IAChB6Y,EAAeC,SACZ9jC,QACCozB,KAAO0Q,IAA0B,IAAbA,IAAiB,EACrCC,MAAU,KACR,MAAMzkC,EAAkBskC,EAASz/B,IAAI6/B,MAC/BrS,EAAOryB,EAAgB2kC,cAC7B,OAAO3kC,EAAgBsB,UAAUsjC,eAAevS,EAAI,IAGvDzxB,UAAWikC,IACV,MAAM7kC,EAAkBskC,EAASz/B,IAAI6/B,MAC/BrS,EAAOryB,EAAgB2kC,cAC7B3kC,EAAgBsB,UAAUwjC,eAAezS,EAAMwS,GAE/C,MAAM3hC,EAAgBohC,EAASz/B,IAAIkgC,MAC7BC,EAAQ9hC,EAAcC,UAAU,QAtFlB,eAuFpB8hC,QAAUnjC,EAAUkjC,GAEpB,MAAME,EAAWhiC,EAAcC,UAAU,SACzCnD,EAAgBsB,UAAUuD,IAAIqgC,GAAUtkC,UAAW7D,KAQ7D,SAASooC,GAAwBrjC,EAAoB/E,GACnD,MAAMqoC,EAAoBtjC,EAASq7B,eAAe,uBAC9CiI,IACFA,EAAkBC,UAAYtoC,EAElC,EAZYooC,CAAwBrjC,EAAU/E,GAClC2uB,GAAO,EACR,EACF,EAET,CC1IIxvB,GAAYC,eACdmpC,SAGFC,OACGC,gBAAgB1D,IAChB2D,MAAOvkC,GAAQF,QAAQC,IAAIC,sBCd9B,IAAAsG,EAAA,CACA,aACA,gBACA,YACA,gBACA,mBACA,gBACA,mBACA,gBACA,mBACA,gBACA,mBACA,gBACA,mBACA,gBACA,mBACA,eACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,YACA,eACA,aACA,gBACA,mBACA,gBACA,WACA,cACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,mBACA,gBACA,mBACA,gBACA,aACA,gBACA,aACA,gBACA,gBACA,mBACA,gBACA,mBACA,gBACA,mBACA,gBACA,mBACA,gBACA,mBACA,gBACA,mBACA,gBACA,mBACA,gBACA,mBACA,aACA,gBACA,YACA,gBACA,mBACA,gBACA,mBACA,gBACA,mBACA,eACA,YACA,eACA,YACA,eACA,YACA,eACA,aACA,gBACA,cACA,iBACA,aACA,gBACA,YACA,gBACA,mBACA,gBACA,mBACA,eACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,mBACA,sBACA,kBACA,qBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,YACA,eACA,gBACA,mBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,mBACA,gBACA,YACA,eACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,YACA,eACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,YACA,gBACA,mBACA,eACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,YACA,gBACA,mBACA,eACA,aACA,gBACA,iBACA,oBACA,gBACA,mBACA,aACA,gBACA,aACA,gBACA,mBACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,YACA,eACA,aACA,gBACA,aACA,kBACA,qBACA,gBACA,aACA,gBACA,YACA,eACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,cACA,iBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,gBACA,mBACA,cACA,iBACA,aACA,gBACA,cACA,iBACA,cACA,mBACA,sBACA,iBACA,gBACA,mBACA,aACA,gBACA,aACA,gBACA,aACA,kBACA,qBACA,gBACA,aACA,gBACA,mBACA,sBACA,aACA,gBACA,gBACA,mBACA,eACA,kBACA,gBACA,mBACA,gBACA,oBAIA,SAAAk+B,EAAAC,GACA,IAAA7oC,EAAA8oC,GAAAD,GACA,OAAAE,EAAA/oC,EACA,CACA,SAAA8oC,GAAAD,GACA,IAAAE,EAAAC,EAAAt+B,EAAAm+B,GAAA,CACA,IAAA1uB,EAAA,IAAA8uB,MAAA,uBAAAJ,EAAA,KACA,MAAA1uB,EAAApY,KAAA,mBACAoY,CACA,CACA,OAAAzP,EAAAm+B,EACA,CACAD,EAAArtB,KAAA,WACA,OAAA9C,OAAA8C,KAAA7Q,EACA,EACAk+B,EAAAha,QAAAka,GACAI,EAAAC,QAAAP,EACAA,EAAA5oC,GAAA","names":["environment","production","igo","app","forceCoordsNA","install","enabled","promote","manifestPath","pwa","catalog","sources","id","title","url","showLegend","depot","dom","name","importExport","configFileToGeoDBService","clientSideFileSizeMaxMb","allowToStoreLayer","language","prefix","interactiveTour","tourInMobile","pathToConfigFile","searchSources","nominatim","available","storedqueries","icherche","searchUrl","order","params","limit","coordinatesreverse","showInPointerSummary","icherchereverse","ilayer","cadastre","projections","code","alias","def","extent","searchOverlayStyle","base","markerColor","markerOpacity","markerOutlineColor","fillColor","fillOpacity","strokeColor","strokeOpacity","strokeWidth","focus","selection","queryOverlayStyle","PwaService","updates","languageService","confirmDialogService","confirmOpened","constructor","this","isEnabled","handleVersionUpdates","checkForUpdates","_this","interval","pipe","skip","subscribe","_asyncToGenerator","updateFound","checkForUpdate","console","log","err","error","modalUpdatePWA","message","translate","instant","open","tap","confirm","window","navigator","onLine","document","location","reload","alert","setTimeout","versionUpdates","evt","type","version","hash","currentVersion","latestVersion","i0","i1","i2","i3","factory","ɵfac","providedIn","getAppVersion","configService","getConfig","lib","expansionPanelAnimation","trigger","state","style","left","bottom","display","transition","animate","toastPanelAnimation","zIndex","controlsAnimations","controlSlideX","controlSlideY","mapSlideX","mapSlideY","WelcomeWindowService","storageService","nbVisit","showAgain","igoVersionDifferentFromStorage","isVersionDifferentFromStorage","setStorageConfig","Number","get","set","hasWelcomeWindow","remove","dialogConfig","MatDialogConfig","disableClose","autoFocus","maxWidth","afterClosedWelcomeWindow","$event","_r2","ctx_r1","ctx_r3","setShowAgain","ctx_r4","closeWelcomeWindow","ctx_r0","html$","discoverTitleInLocale$","WelcomeWindowComponent","dialog","welcomeWindowService","title$$","BehaviorSubject","undefined","of","ngOnInit","computeHtml","closeAll","deltaDay","isDateParsable","releaseDate","Date","releaseDateAppConfig","releaseDateApp","isNaN","getDate","releaseDateString","day","month","getMonth","getFullYear","map","description","r","next","ngOnDestroy","unsubscribe","selectors","decls","vars","consts","template","rf","ctx","WelcomeWindowComponent_div_0_Template","showContent","duration","delay","easing","opacity","ExpansionPanelHeaderComponent","expanded","_expanded","value","expandedChange","emit","EventEmitter","hasExpandedClass","onToggleClick","hostVars","hostBindings","ExpansionPanelHeaderComponent_mat_icon_3_Template","ExpansionPanelHeaderComponent_mat_icon_4_Template","ExpansionPanelComponent","maximized","backdropShown","_backdropShown","hasExpandedFullClass","onBackdropClick","changeDetection","_r13","ctx_r12","zoomTo","isSelectedResultOutOfView$","_r15","ctx_r14","handleLayer","ctx_r5","potententialLayerisAdded$","_r17","ctx_r16","previousResult","ctx_r6","results","meta","resultSelected$","_r19","ctx_r18","nextResult","ctx_r7","length","_r21","ctx_r20","resizeWindows","ctx_r8","fullExtent$","iconResizeWindows","_r23","ctx_r22","setHtmlDisplay","ctx_r10","data","_r25","ctx_r24","focusResult","ctx_r26","unfocusResult","ctx_r27","selectResult","ctx_r11","store","withZoomButton","tabsMode","_r29","ctx_r28","ctx_r30","handleKeyboardEvent","ToastPanelComponent_ng_template_0_igo_panel_0_button_3_Template","ToastPanelComponent_ng_template_0_igo_panel_0_button_4_Template","ToastPanelComponent_ng_template_0_igo_panel_0_button_5_Template","ToastPanelComponent_ng_template_0_igo_panel_0_button_6_Template","ToastPanelComponent_ng_template_0_igo_panel_0_button_7_Template","ctx_r31","clear","ToastPanelComponent_ng_template_0_igo_panel_0_igo_feature_details_12_Template","ToastPanelComponent_ng_template_0_igo_panel_0_igo_search_results_13_Template","getClassPanel","setHeighPanelTabsMode","getTitle","actionStore","icon","actionbarMode","hasGeoService","opened","isDesktop","ToastPanelComponent_ng_template_0_igo_panel_0_Template","entities$","_r34","ctx_r33","swipe","ctx_r35","ctx_r36","ctx_r37","ToastPanelComponent_div_2_ng_template_1_Template","_r0","ToastPanelComponent","mediaService","storageState","queryState","workspaceState","propertyTypeDetectorService","layerService","static","RIGHT","LEFT","UP","DOWN","_map","_store","_entities","unselectResult","_opened","StorageScope","SESSION","openedChange","hasFeatureEmphasisOnSelection","zoomAuto","_zoomAuto","zoomAuto$","fullExtent","_fullExtent","fullExtentEvent","potententialLayerToAdd$","isHtmlDisplay","ActionStore","ActionbarMode","Overlay","multiple$","isResultSelected$","isSelectedResultOutOfView$$","storageChange$$","initialized","format","olFormatGeoJSON","resultOrResolution$$","focusedResult$","abstractFocusedOrSelectedResult","windowHtmlDisplayEvent","displayStyle","onEscapeHandler","event","onBackHandler","onZoomHandler","getValue","localOlFeature","readFeature","dataProjection","projection","featureProjection","moveToOlFeatures","viewController","FeatureMotion","Default","all","multiple","setResizeWindowIcon","monitorResultOutOfView","combineLatest","state$","debounceTime","bunch","selectedResult","selectedOlFeature","featureToOl","selectedOlFeatureExtent","computeOlFeaturesExtent","viewProjection","featuresAreOutOfView","getExtent","latestResult","res","resolution$","buildResultEmphasis","storageChange$","skipWhile","storageChange","key","change","currentValue","load","tooltip","handler","Zoom","availability","olFeatures","result","push","checkbox","checkCondition","v","computeFeatureGeoServiceStatus","layers$","clearFeatureEmphasis","olGeometry","getGeometry","featuresAreTooDeepInView","x","y","feature1","olFeature","geometry","olPoint","featureFromOl","getCommonVectorSelectedStyle","Object","assign","feature","queryOverlayStyleSelection","queryOverlayStyleFocus","setZIndex","queryResultsOverlay","addFeature","None","removeFeature","getEntityTitle","force","focused","getCommonVectorStyle","update","selected","properties","target","features","removeFeatures","addFeatures","setFeatures","handleWksSelection","entities","layersTitle","Set","e","source","workspaces","filter","wks","includes","ws","entityStore","updateMany","view","isMobile","getMedia","Media","Mobile","keyCode","i","indexOf","getGeoServices","resultSelected","hasGeoServiceProperties","keys","entries","forEach","entry","geoService","getGeoService","extendedGeoService","propertyForUrl","layersIds","layers","layer","potententialLayerToAdd","layerToRemove","getLayerById","removeLayer","createAsyncLayer","sourceOptions","layersAddedByClick$","addLayer","geoServices","firstGeoService","so","computeSourceOptionsFromProperties","soId","generateIdFromSourceOptions","l","layerName","p","propertiesForLayerName","arcgisLayerName","appliedLayerName","ObjectUtils","removeUndefined","optionsFromCapabilities","optionsFromApi","LAYERS","LAYER","action","SWIPE_ACTION","className","onTriggerAction","args","isHtmlAndDesktop","reduceWindow","enlargeWindows","ToastPanelComponent_ng_template_0_Template","ToastPanelComponent_div_2_Template","ToastPanelForExpansionComponent","withHeader","hasOpenedClass","_r4","onUnselectButtonClick","_r6","onPreviousButtonClick","SidenavComponent","toolState","catalogState","title$","activeTool$$","toolChange","toolbox","activeTool$","tool","sidenavTitle","catalogStore","options","active","activatePreviousTool","deactivateTool","inputs","outputs","SidenavComponent_igo_home_button_5_Template","SidenavComponent_button_10_Template","_c0","element_r1","imgSrc","alt","imgSize","MapOverlayComponent_ng_container_0_a_2_ng_container_2_Template","link","text","MapOverlayComponent_ng_container_0_ng_template_3_ng_container_1_Template","MapOverlayComponent_ng_container_0_a_2_Template","MapOverlayComponent_ng_container_0_ng_template_3_Template","fixed","marginLeft","marginRight","marginTop","marginBottom","fontSize","cssClass","MapOverlayComponent","contextService","mapOverlay","context$$","media$$","context","ngAfterViewInit","context$","handleContextChange","media$","media","overlay","MapOverlayComponent_ng_container_0_Template","_r14","ctx_r13","onToggleSidenavClick","sidenavOpened","onSearchTermChange","onPointerSummaryStatusChange","ctx_r19","onSearchResultsGeometryStatusChange","onReverseCoordsFormatStatusChange","ctx_r21","onSearch","onClearSearch","ctx_r23","onSearchSettingsChange","searchBarTerm","termSplitter","minSearchTermLength","appConfig","searchStore","igoSearchPointerSummaryEnabled","searchResultsGeometryEnabled","igoReverseSearchCoordsFormatEnabled","getControlsOffsetY","getToastPanelStatus","homeExtent","homeCenter","homeZoom","_r33","workspace_r26","ngIf","edition","addButton","actionbarWithTitle","workspaceMenuClass","_r37","zoomToSelectedFeatureWks","ctx_r29","workspaceSelection$","_r39","ctx_r38","paginatorChange","workspaceEntitySortChange$","paginatorOptions","_r42","visible","PortalComponent_app_expansion_panel_21_ng_container_4_button_8_Template","PortalComponent_app_expansion_panel_21_ng_container_4_igo_actionbar_9_Template","PortalComponent_app_expansion_panel_21_ng_container_4_button_10_Template","PortalComponent_app_expansion_panel_21_ng_container_4_igo_entity_table_paginator_11_Template","_c2","inResolutionRange$","isEditionWorkspace","workspaceVisibility","_r46","ctx_r45","entitySortChange","ctx_r47","entitySelectChange","ctx_r44","workspace_r43","workspacePaginator","tableTemplate","PortalComponent_app_expansion_panel_21_ng_container_6_igo_entity_table_1_Template","ctx_r25","workspaceNotAvailableMessage","_r50","ctx_r49","expansionPanelExpanded","ctx_r51","setActiveWorkspaceByTitle","ctx_r52","workspaceSwitchDisabled","ctx_r53","refreshRelationsWorkspace","ctx_r54","rowsInMapExtentCheckCondition$","PortalComponent_app_expansion_panel_21_ng_container_4_Template","PortalComponent_app_expansion_panel_21_ng_container_6_Template","expansionPanelBackdropShown","workspaceMaximize$","getExpansionPanelStatus","toastPanelOpened","workspaceStore","selectedWorkspace$","_r57","ctx_r56","onDeactivateWorkspaceWidget","workspace_r55","_r59","ctx_r58","toastOpenedChange","ctx_r60","ctx_r61","setToastPanelHtmlDisplay","queryStore","toastPanelOffsetX$","getToastPanelOffsetY","isTablet","isPortrait","contextMenuStore","PortalComponent","route","authService","dataSourceService","cdRef","capabilitiesService","contextState","mapState","searchState","searchSourceService","importService","http","messageService","dialogWindow","queryService","editionWorkspaceService","directionState","sidenavOpened$","hasGeolocateButton","showMenuButton","showSearchBar","pageSize","pageSizeOptions","workspaceMaximize$$","matDialogRef$","onSettingsChange$","termDefinedInUrl","termDefinedInUrlTriggered","addedLayers$$","contextMenuCoord","contextLoaded","openSidenav$$","sidenavMediaAndOrientation$$","toastPanelForExpansionOpened","activeWidget$$","showToastPanelForExpansionToggle","routeParams","toastPanelHtmlDisplay","mapBrowser","searchBar","_toastPanelOpened","detectChanges","Tablet","isLandscape","getOrientation","MediaOrientation","Landscape","Portrait","workspacePanelExpanded","setPadding","contextUri","uri","searchResultsGeometryEnabled$","toastPanelContent","content","workspace","hasWidget","workspace$","handleAppConfigs","IGO","searchTermSplitter$","initWelcomeWindow","queryParams","readLanguageParam","authenticate$","authenticated","onChangeContext","contextActions","searchCoordinate","openGoogleMaps","openGoogleStreetView","count$","pairwise","prevCnt","currentCnt","padding","hasExpansionPanel","ol","once","readQueryParams","geolocate","activateDefault","geolocationController","tracking","setSearchSettingsChange","selectedResult$","closeSidenav","workspaceEnabled$","empty$","workspaceEmpty","updateMapBrowserClass","workspaceMaximize","activeWks","activeWorkspaceWidget$","widget","openToastPanelForExpansion","closeToastPanelForExpansion","openSidenav$","openSidenav","orientation$","sidenavMediaAndOrientation","computeToastPanelOffsetX","getConfigs","hasSearchPointerSummary","Promise","resolve","then","getToastPanelExtent","EditionWorkspace","createFeatureProperties","editFeature","sourceFields","field","primary","matPaginator","getQuerySearchSource","querySearchSourceArray","WfsWorkspace","FeatureWorkspace","getLayerWksOptionTabQuery","added","getProperties","_featureStore","featureStoreLayer","getAllowedFieldsAndAlias","getQueryTitle","querySearchSource","find","s","sourceTitle","QuerySearchSource","featureToSearchResult","request","queryResults","f","cancelOngoingAddLayer","sub","toggleSidenav","onMapQuery","filteredResults","getFeatureIsSameActiveWks","getWksActiveOpenInResolution","getLayerWksOptionMapQuery","term","search","deactivateCustomFilterTermStrategy","setSearchTerm","replace","trim","onBeforeSearch","isReverseSearch","sourceCanSearch","research","enabledSources","getEnabledSources","sourceCanReverseSearch","newResults","concat","setSearchResultsGeometryStatus","toolChanged","nativeElement","getElementsByTagName","computeHomeExtentValues","center","zoom","empty","softClear","qParams","readLayersQueryParams","contextManager","getTool","toolToOpen","toolToOpenOnContextChange","toolOrderToOpen","toolName","activateTool","handleExpansionAndToastOnMobile","searchResultsOverlay","setSelectedResult","getSources","searchSource","onContextMenuOpen","getClickCoordinate","contextmenuPoint","boundingMapBrowser","getBoundingClientRect","top","scrollY","pageYOffset","scrollX","pageXOffset","pixel","coord","getCoordinateFromPixel","proj","olProj","GoogleLinks","getGoogleMapsCoordLink","getGoogleStreetViewLink","reverse","c","toFixed","join","header","classList","add","status","getBaselayersSwitcherStatus","readToolParams","readSearchParams","readFocusFirst","computeZoomToExtent","lang","languageForce","setLanguage","zoomExtent","extentParams","split","olExtent","zoomToExtent","computeFocusFirst","resultItem","item","click","sf","entities$$","stateView","all$","take","exactMatch","activateCustomFilterTermStrategy","searchResultsOlFeatures","entity","dataType","FEATURE","totalExtent","searchGeom","first","matDialogOpened","sidenav","routing","routingCoordLoaded","stopCoords","routingOptions","resultSelection","parseInt","stopsStore","storeInitialized$","init","addStopToStore","stop","position","coordinates","routesFeatureStore","zoomToActiveRoute$","d","readLayersQueryParamsByType","readVectorQueryParams","getQueryParam","paramValue","HttpParams","fromString","nameParamLayersKey","urlsKey","wmsLayers","wmsUrl","wmtsLayers","wmtsUrl","arcgisLayers","arcgisUrl","iarcgisLayers","iarcgisUrl","tarcgisLayers","tarcgisUrl","layersByService","urls","cnt","urlSrc","endsWith","substring","extractLayersByService","layerFromUrl","layerOptions","visibility","computeLayerVisibilityFromUrl","addLayerFromURL","vector","lastIndex","lastIndexOf","fileName","slice","responseType","file","File","lastModified","now","import","onFileImportSuccess","onFileImportError","handleFileImportSuccess","handleFileImportError","outLayersByService","startsWith","substr","commonSourceOptions","crossOrigin","arcgisClause","queryable","queryFormat","VERSION","currentLayerid","visibleOnLayersParams","visibleOffLayersParams","visiblelayers","invisiblelayers","toString","hasAuthService","logged$","logged","createWelcomeWindow","welcomWindowConfig","afterClosed","featureTitle","relationLayers","workspaceId","columns","col","getDomainValues","relation","domainValues","featuresSelected","workspaceSelection","rec","olFeaturesSelected","feat","i4","i5","i6","i7","i8","viewQuery","ElementRef","PortalComponent_igo_menu_button_4_Template","PortalComponent_igo_search_bar_5_Template","PortalComponent_igo_wake_lock_button_12_Template","PortalComponent_igo_offline_button_13_Template","PortalComponent_igo_geolocate_button_14_Template","PortalComponent_igo_home_extent_button_16_Template","PortalComponent_igo_user_button_17_Template","PortalComponent_app_expansion_panel_21_Template","PortalComponent_igo_workspace_widget_outlet_27_Template","PortalComponent_app_toast_panel_29_Template","PortalComponent_ng_template_31_Template","_r11","_c3","getBaseLayers","wakeLockApiButton","offlineButton","showRotationButtonIfNoRotation","homeExtentButton","HeaderComponent","headerLogo","headerLogoPrint","computeHeader","FooterComponent","AppComponent","analyticsListenerService","titleService","metaService","pwaService","router","authConfig","hasHeader","hasFooter","promptEvent","readTitleConfig","readDescriptionConfig","listen","detectOldBrowser","setManifest","installPrompt","handleSplashScreen","events","NavigationEnd","_removeSplashScreen","intro","getElementById","stylesheet","DomUtils","setTitle","addTag","querySelector","setAttribute","userAgent","getOSName","addEventListener","preventDefault","prompt","satisfies","ie","chrome","firefox","safari","timeOut","DOCUMENT","AppComponent_igo_auth_form_1_Template","AppComponent_app_header_2_Template","AppComponent_app_footer_4_Template","AppExpansionPanelModule","CommonModule","MatButtonModule","MatIconModule","MatMenuModule","MatListModule","MatSelectModule","MatTooltipModule","IgoLanguageModule","IgoBackdropModule","MapOverlayModule","AppSidenavModule","MatSidenavModule","IgoPanelModule","IgoFlexibleModule","IgoContextManagerModule","IgoToolModule","IgoFeatureModule","IgoInteractiveTourModule","IgoHomeButtonModule","AppToastPanelForExpansionModule","IgoStopPropagationModule","AppToastPanelModule","MatBadgeModule","IgoActionModule","IgoSearchResultsModule","IgoWelcomeWindowModule","FormsModule","MatDialogModule","IgoCustomHtmlModule","MatToolbarModule","PortalModule","IgoCoreModule","IgoImportExportModule","IgoMapModule","IgoQueryModule","forRoot","IgoSearchModule","IgoWorkspaceModule","IgoEntityModule","IgoGeoWorkspaceModule","IgoContextMenuModule","IgoIntegrationModule","IgoContextMapButtonModule","IgoEntityTableModule","IgoEntityTablePaginatorModule","FooterModule","HeaderModule","defaultTooltipOptions","showDelay","hideDelay","touchendHideDelay","disableTooltipInteractivity","AppModule","bootstrap","provideConfigOptions","default","path","RouteService","provideNominatimSearchSource","provideIChercheSearchSource","provideWorkspaceSearchSource","provideIChercheReverseSearchSource","provideCoordinatesReverseSearchSource","provideILayerSearchSource","provideStoredQueriesSearchSource","provideOsrmDirectionsSource","provideOptionsApi","provideCadastreSearchSource","provide","APP_INITIALIZER","useFactory","appInitializerFactory","deps","Injector","ApplicationRef","multi","provideStyleListOptions","MAT_TOOLTIP_DEFAULT_OPTIONS","useValue","MAT_FORM_FIELD_DEFAULT_OPTIONS","appearance","imports","BrowserModule","BrowserAnimationsModule","RouterModule","IgoAuthModule","IgoGestureModule","IgoMessageModule","IgoSpinnerModule","ServiceWorkerModule","register","registrationStrategy","injector","applicationRef","isStable","concatMap","LanguageService","getLanguage","getTranslation","translations","setTranslation","ConfigService","theme","loadTheme","titleKey","handleSplashScreenTitle","splashScreenTitle","innerText","enableProdMode","__NgCli_bootstrap_1","bootstrapModule","catch","webpackContext","req","webpackContextResolve","__webpack_require__","o","Error","module","exports"],"sourceRoot":"webpack:///","sources":["./src/environments/environment.github.ts","./src/app/services/pwa.service.ts","./src/app/app.utils.ts","./src/app/pages/portal/portal.animation.ts","./src/app/pages/portal/welcome-window/welcome-window.service.ts","./src/app/pages/portal/welcome-window/welcome-window.component.html","./src/app/pages/portal/welcome-window/welcome-window.component.ts","./src/app/pages/portal/expansion-panel/expansion-panel.animations.ts","./src/app/pages/portal/expansion-panel/expansion-panel-header.component.html","./src/app/pages/portal/expansion-panel/expansion-panel-header.component.ts","./src/app/pages/portal/expansion-panel/expansion-panel.component.ts","./src/app/pages/portal/expansion-panel/expansion-panel.component.html","./src/app/pages/portal/toast-panel/toast-panel.component.html","./src/app/pages/portal/toast-panel/toast-panel.component.ts","./src/app/pages/portal/toast-panel-for-expansion/toast-panel-for-expansion.animations.ts","./src/app/pages/portal/toast-panel-for-expansion/toast-panel-for-expansion.component.ts","./src/app/pages/portal/toast-panel-for-expansion/toast-panel-for-expansion.component.html","./src/app/pages/portal/sidenav/sidenav.component.html","./src/app/pages/portal/sidenav/sidenav.component.ts","./src/app/pages/portal/map-overlay/map-overlay.component.html","./src/app/pages/portal/map-overlay/map-overlay.component.ts","./src/app/pages/portal/portal.component.html","./src/app/pages/portal/portal.component.ts","./src/app/pages/header/header.component.ts","./src/app/pages/header/header.component.html","./src/app/pages/footer/footer.component.ts","./src/app/pages/footer/footer.component.html","./src/app/app.component.html","./src/app/app.component.ts","./src/app/pages/portal/expansion-panel/expansion-panel.module.ts","./src/app/pages/portal/map-overlay/map-overlay.module.ts","./src/app/pages/portal/sidenav/sidenav.module.ts","./src/app/pages/portal/toast-panel-for-expansion/toast-panel-for-expansion.module.ts","./src/app/pages/portal/toast-panel/toast-panel.module.ts","./src/app/pages/portal/welcome-window/welcome-window.module.ts","./src/app/pages/portal/portal.module.ts","./src/app/pages/footer/footer.module.ts","./src/app/pages/header/header.module.ts","./src/app/app.module.ts","./src/main.ts","./node_modules/moment/locale/ sync ^\\.\\/.*$"],"sourcesContent":["import { AppEnvironmentOptions } from './environnement.interface';\r\n\r\nexport const environment: AppEnvironmentOptions = {\r\n production: true,\r\n igo: {\r\n app: {\r\n forceCoordsNA: false,\r\n install: {\r\n enabled: true,\r\n promote: true,\r\n manifestPath: './config/github.webmanifest'\r\n },\r\n pwa: {\r\n enabled: false\r\n }\r\n },\r\n catalog: {\r\n sources: [\r\n {\r\n id: 'Gououvert',\r\n title: 'Gouvouvert',\r\n url: 'https://geoegl.msp.gouv.qc.ca/apis/ws/igo_gouvouvert.fcgi'\r\n },\r\n {\r\n id: 'glace',\r\n title: 'Carte de glace',\r\n url: 'https://geoegl.msp.gouv.qc.ca/apis/ws/radarsat.fcgi',\r\n showLegend: true\r\n }\r\n ]\r\n },\r\n depot: {\r\n url: '/apis/depot'\r\n },\r\n dom: [\r\n {\r\n id: 1,\r\n name: 'dom_test',\r\n url: 'https://ws.mapserver.transports.gouv.qc.ca/applicatif?service=WFS&request=GetFeature&version=2.0.0&outputformat=dom&typenames=dom&dom=dom_test'\r\n }\r\n ],\r\n importExport: {\r\n url: 'https://geoegl.msp.gouv.qc.ca/apis/ogre',\r\n configFileToGeoDBService: './data/geoDataToIDB.json',\r\n clientSideFileSizeMaxMb: 30,\r\n allowToStoreLayer: true\r\n },\r\n language: {\r\n prefix: './locale/'\r\n },\r\n interactiveTour: {\r\n tourInMobile: true,\r\n pathToConfigFile: './config/interactiveTour.json'\r\n },\r\n searchSources: {\r\n nominatim: {\r\n available: false\r\n },\r\n storedqueries: {\r\n available: false\r\n },\r\n icherche: {\r\n searchUrl: 'https://geoegl.msp.gouv.qc.ca/apis/icherche',\r\n order: 2,\r\n params: {\r\n limit: '8'\r\n }\r\n },\r\n coordinatesreverse: {\r\n showInPointerSummary: true\r\n },\r\n icherchereverse: {\r\n showInPointerSummary: true,\r\n searchUrl: 'https://geoegl.msp.gouv.qc.ca/apis/terrapi',\r\n order: 3,\r\n enabled: true\r\n },\r\n ilayer: {\r\n searchUrl: 'https://geoegl.msp.gouv.qc.ca/apis/icherche/layers',\r\n order: 4,\r\n params: {\r\n limit: '5'\r\n }\r\n },\r\n cadastre: {\r\n enabled: false\r\n }\r\n },\r\n projections: [\r\n {\r\n code: 'EPSG:32198',\r\n alias: 'Quebec Lambert',\r\n def: '+proj=lcc +lat_1=60 +lat_2=46 +lat_0=44 +lon_0=-68.5 +x_0=0 +y_0=0 \\\r\n +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs',\r\n extent: [-799574, 45802, 891595.4, 1849567.5]\r\n },\r\n {\r\n code: 'EPSG:3798',\r\n alias: 'MTQ Lambert',\r\n def: '+proj=lcc +lat_1=50 +lat_2=46 +lat_0=44 +lon_0=-70 +x_0=800000 +y_0=0 \\\r\n +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs',\r\n extent: [31796.5834, 158846.2231, 1813323.4284, 2141241.0978]\r\n }\r\n ],\r\n searchOverlayStyle: {\r\n base: {\r\n markerColor: '#5ed0fb', // marker fill\r\n markerOpacity: 0.8, // marker opacity not applied if a rgba markerColor is provided\r\n markerOutlineColor: '#a7e7ff', // marker contour\r\n fillColor: '#5ed0fb', // poly\r\n fillOpacity: 0.2, // poly fill opacity not applied if a rgba fillColor is provided\r\n strokeColor: '#5ed0fb', // line and poly\r\n strokeOpacity: 0.7, // line and poly not applied if a rgba strokeColor is provided\r\n strokeWidth: 2 // line and poly\r\n },\r\n focus: {\r\n markerColor: '#5ed0fb', // marker fill\r\n markerOpacity: 1, // marker opacity not applied if a rgba markerColor is provided\r\n markerOutlineColor: '#DFF7FF', // marker contour\r\n fillColor: '#5ed0fb', // poly\r\n fillOpacity: 0.3, // poly fill opacity not applied if a rgba fillColor is provided\r\n strokeColor: '#DFF7FF', // line and poly\r\n strokeOpacity: 1, // line and poly not applied if a rgba strokeColor is provided\r\n strokeWidth: 2 // line and poly\r\n },\r\n selection: {\r\n markerColor: '#00a1de', // marker fill\r\n markerOpacity: 1, // marker opacity not applied if a rgba markerColor is provided\r\n markerOutlineColor: '#ffffff', // marker contour\r\n fillColor: '#00a1de', // poly\r\n fillOpacity: 0.3, // poly fill opacity not applied if a rgba fillColor is provided\r\n strokeColor: '#00A1DE', // line and poly\r\n strokeOpacity: 1, // line and poly not applied if a rgba strokeColor is provided\r\n strokeWidth: 2 // line and poly\r\n }\r\n },\r\n queryOverlayStyle: {\r\n base: {\r\n markerColor: '#5ed0fb', // marker fill\r\n markerOpacity: 0.8, // marker opacity not applied if a rgba markerColor is provided\r\n markerOutlineColor: '#a7e7ff', // marker contour\r\n fillColor: '#5ed0fb', // poly\r\n fillOpacity: 0.2, // poly fill opacity not applied if a rgba fillColor is provided\r\n strokeColor: '#5ed0fb', // line and poly\r\n strokeOpacity: 0.7, // line and poly not applied if a rgba strokeColor is provided\r\n strokeWidth: 2 // line and poly\r\n },\r\n focus: {\r\n markerColor: '#5ed0fb', // marker fill\r\n markerOpacity: 1, // marker opacity not applied if a rgba markerColor is provided\r\n markerOutlineColor: '#DFF7FF', // marker contour\r\n fillColor: '#5ed0fb', // poly\r\n fillOpacity: 0.3, // poly fill opacity not applied if a rgba fillColor is provided\r\n strokeColor: '#DFF7FF', // line and poly\r\n strokeOpacity: 1, // line and poly not applied if a rgba strokeColor is provided\r\n strokeWidth: 2 // line and poly\r\n },\r\n selection: {\r\n markerColor: '#00a1de', // marker fill\r\n markerOpacity: 1, // marker opacity not applied if a rgba markerColor is provided\r\n markerOutlineColor: '#ffffff', // marker contour\r\n fillColor: '#00a1de', // poly\r\n fillOpacity: 0.3, // poly fill opacity not applied if a rgba fillColor is provided\r\n strokeColor: '#00A1DE', // line and poly\r\n strokeOpacity: 1, // line and poly not applied if a rgba strokeColor is provided\r\n strokeWidth: 2 // line and poly\r\n }\r\n }\r\n }\r\n};\r\n","import { Injectable } from '@angular/core';\r\nimport { SwUpdate } from '@angular/service-worker';\r\n\r\nimport { ConfirmDialogService } from '@igo2/common';\r\nimport { LanguageService } from '@igo2/core';\r\n\r\nimport { interval } from 'rxjs';\r\nimport { skip, tap } from 'rxjs/operators';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class PwaService {\r\n private confirmOpened: boolean = false;\r\n constructor(\r\n private updates: SwUpdate,\r\n private languageService: LanguageService,\r\n private confirmDialogService: ConfirmDialogService\r\n ) {\r\n if (updates.isEnabled) {\r\n this.handleVersionUpdates();\r\n }\r\n }\r\n\r\n checkForUpdates() {\r\n if (this.updates.isEnabled) {\r\n interval(60 * 1000 * 2)\r\n .pipe(skip(1))\r\n .subscribe(async () => {\r\n try {\r\n const updateFound = await this.updates.checkForUpdate();\r\n console.log(\r\n updateFound\r\n ? 'A new version is available.'\r\n : 'Already on the latest version.'\r\n );\r\n } catch (err) {\r\n console.error('Failed to check for updates:', err);\r\n }\r\n });\r\n }\r\n }\r\n\r\n private modalUpdatePWA() {\r\n if (this.confirmOpened) {\r\n return;\r\n }\r\n const title = this.languageService.translate.instant(\r\n 'pwa.new-version-title'\r\n );\r\n const body = this.languageService.translate.instant('pwa.new-version');\r\n const message = `${title} ${body}`;\r\n this.confirmDialogService\r\n .open(message)\r\n .pipe(tap(() => (this.confirmOpened = true)))\r\n .subscribe((confirm) => {\r\n if (confirm) {\r\n this.confirmOpened = false;\r\n if (window.navigator.onLine) {\r\n document.location.reload();\r\n } else {\r\n alert(\r\n `Hors-ligne / Offline. Vous devez être en ligne pour mettre à jour l\\'application. You must be online to update the application.`\r\n );\r\n setTimeout(() => {\r\n this.modalUpdatePWA();\r\n }, 900000);\r\n }\r\n }\r\n });\r\n }\r\n\r\n private handleVersionUpdates(): void {\r\n this.updates.versionUpdates.subscribe((evt) => {\r\n switch (evt.type) {\r\n case 'VERSION_DETECTED':\r\n console.log(`Downloading new app version: ${evt.version.hash}`);\r\n break;\r\n case 'VERSION_READY':\r\n console.log(`Current app version: ${evt.currentVersion.hash}`);\r\n console.log(\r\n `New app version ready for use: ${evt.latestVersion.hash}`\r\n );\r\n this.modalUpdatePWA();\r\n break;\r\n case 'VERSION_INSTALLATION_FAILED':\r\n console.error(\r\n `Failed to install app version '${evt.version.hash}': ${evt.error}`\r\n );\r\n break;\r\n }\r\n });\r\n }\r\n}\r\n","import { ConfigService, version } from '@igo2/core';\r\n\r\nexport function getAppVersion(configService: ConfigService): string {\r\n return (\r\n configService.getConfig('version.app') ||\r\n configService.getConfig('version.lib') ||\r\n version.lib\r\n );\r\n}\r\n","import {\r\n AnimationTriggerMetadata,\r\n animate,\r\n state,\r\n style,\r\n transition,\r\n trigger\r\n} from '@angular/animations';\r\n\r\nimport './portal.variables.scss';\r\n\r\nexport function expansionPanelAnimation(): AnimationTriggerMetadata[] {\r\n return [\r\n trigger('expansionPanelSize', [\r\n state(\r\n 'full',\r\n style({\r\n left: '5px',\r\n 'max-width': '100%'\r\n })\r\n ),\r\n state(\r\n 'notTriggered',\r\n style({\r\n left: '5px',\r\n bottom: '5px',\r\n 'max-width': '100%'\r\n })\r\n ),\r\n state(\r\n 'notVisible',\r\n style({\r\n display: 'none'\r\n })\r\n ),\r\n state(\r\n 'mobile',\r\n style({\r\n left: 'calc(100% - 40px)'\r\n })\r\n ),\r\n state(\r\n 'reduced',\r\n style({\r\n left: '405px',\r\n 'max-width': 'calc(100% - 405px)'\r\n })\r\n ),\r\n state(\r\n 'reducedNotTriggered',\r\n style({\r\n left: '405px',\r\n bottom: '5px',\r\n 'max-width': 'calc(100% - 405px)'\r\n })\r\n ),\r\n transition('* => *', animate('100ms'))\r\n ]),\r\n trigger('toastOffsetY', [\r\n state(\r\n 'true',\r\n style({\r\n bottom: '50px'\r\n })\r\n ),\r\n state(\r\n 'false',\r\n style({\r\n bottom: '5px'\r\n })\r\n )\r\n ])\r\n ];\r\n}\r\n\r\nexport function toastPanelAnimation(): AnimationTriggerMetadata[] {\r\n return [\r\n trigger('toastPanelMobileSidenav', [\r\n state(\r\n 'true',\r\n style({\r\n display: 'none'\r\n })\r\n ),\r\n transition('* => void', animate('0ms')),\r\n transition('* => *', animate('200ms'))\r\n ]),\r\n trigger('toastPanelOffsetX', [\r\n state(\r\n 'fullStandard',\r\n style({\r\n left: '45%'\r\n })\r\n ),\r\n state(\r\n 'standard',\r\n style({\r\n left: '50%'\r\n })\r\n ),\r\n state(\r\n 'htmlDisplay',\r\n style({\r\n left: '40%'\r\n })\r\n ),\r\n state(\r\n 'fullOffsetX',\r\n style({\r\n left: 'calc(45% + 202px)'\r\n })\r\n ),\r\n state(\r\n 'standardOffsetX',\r\n style({\r\n left: 'calc(50% + 202px)'\r\n })\r\n ),\r\n state(\r\n 'htmlDisplayOffsetX',\r\n style({\r\n left: 'calc(40% + 160px)'\r\n })\r\n ),\r\n transition('fullStandard => fullOffsetX', animate('200ms')),\r\n transition('fullOffsetX => fullStandard', animate('200ms')),\r\n transition('standard => standardOffsetX', animate('200ms')),\r\n transition('standardOffsetX => standard', animate('200ms')),\r\n transition('htmlDisplay => htmlDisplayOffsetX', animate('200ms')),\r\n transition('htmlDisplayOffsetX => htmlDisplay', animate('200ms'))\r\n // transition('standard => htmlDisplay', animate('200ms')),\r\n // transition('htmlDisplay => standard', animate('200ms')),\r\n ]),\r\n trigger('toastPanelOffsetY', [\r\n state(\r\n 'noExpansion',\r\n style({\r\n bottom: '0'\r\n })\r\n ),\r\n state(\r\n 'expansionAndToastOpened',\r\n style({\r\n bottom: '285px',\r\n zIndex: '999'\r\n })\r\n ),\r\n state(\r\n 'expansionAndToastClosed',\r\n style({\r\n bottom: '285px',\r\n zIndex: '5'\r\n })\r\n ),\r\n state(\r\n 'expansionMaximizedAndToastOpened',\r\n style({\r\n bottom: '500px', // workspace full size\r\n zIndex: '999'\r\n })\r\n ),\r\n state(\r\n 'expansionMaximizedAndToastClosed',\r\n style({\r\n bottom: '500px', // workspace full size\r\n zIndex: '5'\r\n })\r\n ),\r\n transition('noExpansion => noExpansion', animate('10ms')),\r\n transition(\r\n 'expansionAndToastOpened => expansionAndToastOpened',\r\n animate('200ms')\r\n ),\r\n transition(\r\n 'expansionAndToastClosed => expansionAndToastClosed',\r\n animate('200ms')\r\n ),\r\n transition(\r\n 'expansionMaximizedAndToastOpened => expansionMaximizedAndToastOpened',\r\n animate('200ms')\r\n ),\r\n transition(\r\n 'expansionMaximizedAndToastClosed => expansionMaximizedAndToastClosed',\r\n animate('200ms')\r\n )\r\n ])\r\n ];\r\n}\r\n\r\nexport function controlsAnimations(): AnimationTriggerMetadata[] {\r\n return [\r\n trigger('controlsOffsetY', [\r\n state('close', style({})),\r\n state(\r\n 'firstRowFromBottom',\r\n style({\r\n bottom: '5px'\r\n })\r\n ),\r\n state(\r\n 'firstRowFromBottom-expanded',\r\n style({\r\n bottom: '285px'\r\n })\r\n ),\r\n state(\r\n 'firstRowFromBottom-expanded-maximized',\r\n style({\r\n bottom: '500px'\r\n })\r\n ),\r\n state(\r\n 'secondRowFromBottom',\r\n style({\r\n bottom: '47px'\r\n })\r\n ),\r\n state(\r\n 'thirdRowFromBottom',\r\n style({\r\n bottom: '104px'\r\n })\r\n ),\r\n state(\r\n '',\r\n style({\r\n bottom: 'calc(285px)'\r\n })\r\n ),\r\n state(\r\n 'secondRowFromBottom-expanded',\r\n style({\r\n bottom: 'calc(285px + 52px)'\r\n })\r\n ),\r\n state(\r\n 'thirdRowFromBottom-expanded',\r\n style({\r\n bottom: 'calc(285px + 104px)'\r\n })\r\n ),\r\n transition('* => *', animate('200ms'))\r\n ]),\r\n trigger('mobileOffsetY', [\r\n state(\r\n 'low',\r\n style({\r\n bottom: '50px'\r\n })\r\n ),\r\n transition('* => *', animate('200ms'))\r\n ])\r\n ];\r\n}\r\n\r\nexport function controlSlideX(): AnimationTriggerMetadata {\r\n return trigger('controlStateX', [\r\n state(\r\n 'left',\r\n style({\r\n left: '60px'\r\n })\r\n ),\r\n state(\r\n 'right',\r\n style({\r\n left: '465px'\r\n })\r\n ),\r\n transition('* => *', animate('200ms'))\r\n ]);\r\n}\r\n\r\nexport function controlSlideY(): AnimationTriggerMetadata {\r\n return trigger('controlStateY', [\r\n state('close', style({})),\r\n state(\r\n 'firstRowFromBottom',\r\n style({\r\n bottom: '2px',\r\n 'margin-left': '0px'\r\n })\r\n ),\r\n state(\r\n 'firstRowFromBottom-expanded',\r\n style({\r\n bottom: '285px',\r\n 'margin-left': '-55px'\r\n })\r\n ),\r\n state(\r\n 'firstRowFromBottom-expanded-maximized',\r\n style({\r\n bottom: '500px', // workspace full size\r\n 'margin-left': '-55px'\r\n })\r\n ),\r\n transition('* => *', animate('200ms'))\r\n ]);\r\n}\r\n\r\nexport function mapSlideX(): AnimationTriggerMetadata {\r\n return trigger('mapStateX', [\r\n state(\r\n 'left',\r\n style({\r\n left: '0'\r\n })\r\n ),\r\n state(\r\n 'right',\r\n style({\r\n left: '0'\r\n })\r\n ),\r\n transition('* => *', animate('200ms'))\r\n ]);\r\n}\r\nexport function mapSlideY(): AnimationTriggerMetadata {\r\n return trigger('mapStateY', [\r\n state(\r\n '*',\r\n style({\r\n bottom: '0'\r\n })\r\n ),\r\n transition('* => *', animate('200ms'))\r\n ]);\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { MatDialogConfig } from '@angular/material/dialog';\r\n\r\nimport { ConfigService, StorageService } from '@igo2/core';\r\nimport { getAppVersion } from 'src/app/app.utils';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class WelcomeWindowService {\r\n nbVisit: number;\r\n showAgain: boolean;\r\n igoVersionDifferentFromStorage = false;\r\n\r\n constructor(\r\n private configService: ConfigService,\r\n private storageService: StorageService\r\n ) {\r\n this.igoVersionDifferentFromStorage = this.isVersionDifferentFromStorage();\r\n this.setStorageConfig();\r\n }\r\n\r\n setStorageConfig() {\r\n this.nbVisit = Number(this.storageService.get('welcomeWindow_nbVisit'));\r\n if (!this.nbVisit) {\r\n this.nbVisit = 0;\r\n }\r\n\r\n this.storageService.set('welcomeWindow_nbVisit', (this.nbVisit += 1));\r\n }\r\n\r\n isVersionDifferentFromStorage(): boolean {\r\n return (\r\n this.storageService.get('version') !== getAppVersion(this.configService)\r\n );\r\n }\r\n\r\n hasWelcomeWindow(): boolean {\r\n if (\r\n this.storageService.get('welcomeWindow_showAgain') === false ||\r\n this.storageService.get('welcomeWindow_showAgain') === 'false'\r\n ) {\r\n if (\r\n this.nbVisit >=\r\n this.configService.getConfig('welcomeWindow.nbVisitToShowAgain')\r\n ) {\r\n this.storageService.set('welcomeWindow_nbVisit', 0);\r\n this.storageService.remove('welcomeWindow_showAgain');\r\n return true;\r\n } else if (\r\n this.configService.getConfig('welcomeWindow.showAgainOnNewIGOVersion')\r\n ) {\r\n if (this.igoVersionDifferentFromStorage) {\r\n this.storageService.set('welcomeWindow_nbVisit', 0);\r\n this.storageService.remove('welcomeWindow_showAgain');\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n if (\r\n typeof this.configService.getConfig('welcomeWindow.nbVisitToShow') !==\r\n 'undefined'\r\n ) {\r\n if (\r\n this.nbVisit >\r\n this.configService.getConfig('welcomeWindow.nbVisitToShow')\r\n ) {\r\n this.storageService.set('welcomeWindow_showAgain', false);\r\n return false;\r\n }\r\n }\r\n\r\n return this.configService.getConfig('welcomeWindow');\r\n }\r\n\r\n getConfig(): MatDialogConfig {\r\n const dialogConfig = new MatDialogConfig();\r\n\r\n dialogConfig.disableClose = true;\r\n dialogConfig.autoFocus = true;\r\n dialogConfig.maxWidth = '500px';\r\n\r\n return dialogConfig;\r\n }\r\n\r\n afterClosedWelcomeWindow() {\r\n this.storageService.set('welcomeWindow_showAgain', this.showAgain);\r\n }\r\n}\r\n","
\n \n

{{ 'welcomeWindow.title' | translate }}

\n \n\n \n
\n\n
\n \n
\n\n

\n
\n \n \n\n \n {{ 'welcomeWindow.closeButton' | translate }}\n \n
\n
\n","import { Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\n\r\nimport { ConfigService, LanguageService } from '@igo2/core';\r\n\r\nimport { BehaviorSubject, Observable, Subscription, of } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\n\r\nimport { WelcomeWindowService } from './welcome-window.service';\r\nimport { getAppVersion } from 'src/app/app.utils';\r\n\r\n@Component({\r\n selector: 'app-welcome-window',\r\n templateUrl: './welcome-window.component.html',\r\n styleUrls: ['./welcome-window.component.scss']\r\n})\r\nexport class WelcomeWindowComponent implements OnInit, OnDestroy {\r\n // isVisible = true;\r\n showAgain = false;\r\n public discoverTitleInLocale$: Observable;\r\n private title$$: Subscription;\r\n public html$: BehaviorSubject = new BehaviorSubject(undefined);\r\n\r\n constructor(\r\n public dialog: MatDialog,\r\n private welcomeWindowService: WelcomeWindowService,\r\n private configService: ConfigService,\r\n protected languageService: LanguageService\r\n ) {\r\n this.discoverTitleInLocale$ = of(\r\n this.configService.getConfig(\r\n 'welcomeWindow.discoverTitleInLocale',\r\n this.configService.getConfig('title')\r\n )\r\n );\r\n }\r\n\r\n ngOnInit(): void {\r\n this.computeHtml();\r\n }\r\n\r\n closeWelcomeWindow() {\r\n this.dialog.closeAll();\r\n }\r\n\r\n private computeHtml() {\r\n let deltaDay = 0;\r\n let isDateParsable = true;\r\n let releaseDate = new Date(\r\n this.configService.getConfig('version.releaseDate')\r\n );\r\n\r\n const releaseDateAppConfig = this.configService.getConfig(\r\n 'version.releaseDateApp'\r\n );\r\n\r\n if (releaseDateAppConfig) {\r\n const releaseDateApp = new Date(releaseDateAppConfig);\r\n if (isNaN(releaseDateApp.getDate())) {\r\n console.log('The releaseDateApp config is not a valid date format');\r\n isDateParsable = false;\r\n } else {\r\n deltaDay = 1;\r\n releaseDate = releaseDateApp;\r\n }\r\n }\r\n\r\n let releaseDateString = '';\r\n\r\n if (isDateParsable) {\r\n let day: any = releaseDate.getDate() + deltaDay;\r\n if (day < 10) {\r\n day = '0' + day;\r\n }\r\n let month: any = releaseDate.getMonth() + 1;\r\n if (month < 10) {\r\n month = '0' + month;\r\n }\r\n const year = releaseDate.getFullYear();\r\n releaseDateString = `${year}-${month}-${day}`;\r\n } else {\r\n releaseDateString = releaseDateAppConfig;\r\n }\r\n\r\n this.title$$ = this.languageService.translate\r\n .get(this.configService.getConfig('title', ''))\r\n .pipe(\r\n map((title) => {\r\n return this.languageService.translate.instant('welcomeWindow.html', {\r\n title,\r\n description: this.configService.getConfig('description', ''),\r\n version: getAppVersion(this.configService),\r\n releaseDate: releaseDateString || ''\r\n });\r\n })\r\n )\r\n .subscribe((r) => this.html$.next(r));\r\n\r\n return this.html$;\r\n }\r\n\r\n setShowAgain() {\r\n this.welcomeWindowService.showAgain = this.showAgain;\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.title$$) {\r\n this.title$$.unsubscribe();\r\n }\r\n }\r\n}\r\n","import {\r\n AnimationTriggerMetadata,\r\n animate,\r\n state,\r\n style,\r\n transition,\r\n trigger\r\n} from '@angular/animations';\r\n\r\nexport function showContent(\r\n duration = '150ms',\r\n delay = '300ms',\r\n easing = 'ease-in-out'\r\n): AnimationTriggerMetadata {\r\n return trigger('showContent', [\r\n state(\r\n 'true',\r\n style({\r\n opacity: 1\r\n })\r\n ),\r\n state(\r\n 'false',\r\n style({\r\n opacity: 0\r\n })\r\n ),\r\n transition('false => true', animate(`${duration} ${delay} ${easing}`)),\r\n transition('true => false', animate('0ms'))\r\n ]);\r\n}\r\n","
\n \n \n \n \n
\n\n
\n \n
\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n EventEmitter,\r\n HostBinding,\r\n Input,\r\n Output\r\n} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-expansion-panel-header',\r\n templateUrl: './expansion-panel-header.component.html',\r\n styleUrls: ['./expansion-panel-header.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class ExpansionPanelHeaderComponent {\r\n @Input()\r\n get expanded(): boolean {\r\n return this._expanded;\r\n }\r\n set expanded(value: boolean) {\r\n if (value === this._expanded) {\r\n return;\r\n }\r\n\r\n this._expanded = value;\r\n this.expandedChange.emit(this._expanded);\r\n }\r\n private _expanded: boolean;\r\n\r\n @Output() expandedChange = new EventEmitter();\r\n\r\n @HostBinding('class.app-expansion-panel-header-expanded')\r\n get hasExpandedClass() {\r\n return this.expanded;\r\n }\r\n\r\n constructor() {}\r\n\r\n onToggleClick() {\r\n this.expanded = !this.expanded;\r\n }\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n EventEmitter,\r\n HostBinding,\r\n Input,\r\n Output\r\n} from '@angular/core';\r\n\r\nimport { showContent } from './expansion-panel.animations';\r\n\r\n@Component({\r\n selector: 'app-expansion-panel',\r\n templateUrl: './expansion-panel.component.html',\r\n styleUrls: ['./expansion-panel.component.scss'],\r\n animations: [showContent()],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class ExpansionPanelComponent {\r\n @Input()\r\n get expanded(): boolean {\r\n return this._expanded;\r\n }\r\n set expanded(value: boolean) {\r\n if (value === this._expanded) {\r\n return;\r\n }\r\n\r\n this._expanded = value;\r\n this.expandedChange.emit(this._expanded);\r\n }\r\n private _expanded: boolean;\r\n\r\n @Input() maximized: Boolean = false;\r\n\r\n @Input()\r\n get backdropShown(): boolean {\r\n return this._backdropShown;\r\n }\r\n set backdropShown(value: boolean) {\r\n this._backdropShown = value;\r\n }\r\n private _backdropShown: boolean;\r\n\r\n @Output() expandedChange = new EventEmitter();\r\n\r\n @HostBinding('class.app-expansion-panel-expanded')\r\n get hasExpandedClass() {\r\n return this.expanded;\r\n }\r\n\r\n @HostBinding('class.app-expansion-panel-expanded-maximized')\r\n get hasExpandedFullClass() {\r\n return this.expanded && this.maximized;\r\n }\r\n\r\n constructor() {}\r\n\r\n onBackdropClick() {\r\n this.expanded = false;\r\n this.backdropShown = false;\r\n }\r\n}\r\n","
\n
\n \n \n\n \n \n \n\n \n \n
\n
\n\n","\n \n \n \n\n \n \n \n\n \n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n \n \n \n\n
\n \n \n\n \n \n
\n \n
\n\n\n \n\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n EventEmitter,\r\n HostBinding,\r\n HostListener,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n Output\r\n} from '@angular/core';\r\n\r\nimport {\r\n Action,\r\n ActionStore,\r\n ActionbarMode,\r\n EntityStore,\r\n getEntityTitle\r\n} from '@igo2/common';\r\nimport {\r\n ConfigService,\r\n LanguageService,\r\n Media,\r\n MediaService,\r\n StorageScope,\r\n StorageService,\r\n StorageServiceEvent\r\n} from '@igo2/core';\r\nimport {\r\n Feature,\r\n FeatureMotion,\r\n GeoServiceDefinition,\r\n IgoMap,\r\n Layer,\r\n LayerService,\r\n PropertyTypeDetectorService,\r\n SearchResult,\r\n computeOlFeaturesExtent,\r\n featureFromOl,\r\n featureToOl,\r\n featuresAreOutOfView,\r\n featuresAreTooDeepInView,\r\n generateIdFromSourceOptions,\r\n getCommonVectorSelectedStyle,\r\n getCommonVectorStyle,\r\n moveToOlFeatures\r\n} from '@igo2/geo';\r\nimport { QueryState, StorageState, WorkspaceState } from '@igo2/integration';\r\nimport { ObjectUtils } from '@igo2/utils';\r\n\r\nimport olFeature from 'ol/Feature';\r\nimport olFormatGeoJSON from 'ol/format/GeoJSON';\r\nimport olPoint from 'ol/geom/Point';\r\n\r\nimport { BehaviorSubject, Observable, Subscription, combineLatest } from 'rxjs';\r\nimport { debounceTime, map, skipWhile, tap } from 'rxjs/operators';\r\n\r\ninterface ExtendedGeoServiceDefinition extends GeoServiceDefinition {\r\n propertyForUrl: string;\r\n}\r\n\r\n@Component({\r\n selector: 'app-toast-panel',\r\n templateUrl: './toast-panel.component.html',\r\n styleUrls: ['./toast-panel.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class ToastPanelComponent implements OnInit, OnDestroy {\r\n static SWIPE_ACTION = {\r\n RIGHT: 'swiperight',\r\n LEFT: 'swipeleft',\r\n UP: 'swipeup',\r\n DOWN: 'swipedown'\r\n };\r\n\r\n public tabsMode: boolean;\r\n\r\n get storageService(): StorageService {\r\n return this.storageState.storageService;\r\n }\r\n\r\n @Input()\r\n get map(): IgoMap {\r\n return this._map;\r\n }\r\n set map(value: IgoMap) {\r\n this._map = value;\r\n }\r\n private _map: IgoMap;\r\n\r\n @Input()\r\n get store(): EntityStore> {\r\n return this._store;\r\n }\r\n set store(value: EntityStore>) {\r\n this._store = value;\r\n this.store.entities$.subscribe((_entities) => {\r\n this.unselectResult();\r\n });\r\n }\r\n private _store: EntityStore>;\r\n\r\n @Input()\r\n get opened(): boolean {\r\n return this._opened;\r\n }\r\n set opened(value: boolean) {\r\n if (value !== !this._opened) {\r\n return;\r\n }\r\n this._opened = value;\r\n this.storageService.set('toastOpened', value, StorageScope.SESSION);\r\n this.openedChange.emit(value);\r\n }\r\n private _opened = true;\r\n\r\n @Input() hasFeatureEmphasisOnSelection: Boolean = false;\r\n\r\n get zoomAuto(): boolean {\r\n return this._zoomAuto;\r\n }\r\n set zoomAuto(value) {\r\n if (value !== !this._zoomAuto) {\r\n return;\r\n }\r\n this._zoomAuto = value;\r\n this.zoomAuto$.next(value);\r\n this.storageService.set('zoomAuto', value);\r\n }\r\n private _zoomAuto = false;\r\n\r\n // To allow the toast to use much larger extent on the map\r\n get fullExtent(): boolean {\r\n return this._fullExtent;\r\n }\r\n set fullExtent(value) {\r\n if (value !== !this._fullExtent) {\r\n return;\r\n }\r\n this._fullExtent = value;\r\n this.fullExtent$.next(value);\r\n this.fullExtentEvent.emit(value);\r\n this.storageService.set('fullExtent', value);\r\n }\r\n private _fullExtent = false;\r\n\r\n public potententialLayerToAdd$: BehaviorSubject = new BehaviorSubject(\r\n undefined\r\n );\r\n public potententialLayerisAdded$: BehaviorSubject =\r\n new BehaviorSubject(false);\r\n\r\n public fullExtent$: BehaviorSubject = new BehaviorSubject(\r\n this.fullExtent\r\n );\r\n public isHtmlDisplay = false;\r\n public iconResizeWindows = '';\r\n\r\n public icon = 'menu';\r\n\r\n public actionStore = new ActionStore([]);\r\n public actionbarMode = ActionbarMode.Overlay;\r\n\r\n private multiple$ = new BehaviorSubject(false);\r\n private isResultSelected$ = new BehaviorSubject(false);\r\n public isSelectedResultOutOfView$ = new BehaviorSubject(false);\r\n private isSelectedResultOutOfView$$: Subscription;\r\n private storageChange$$: Subscription;\r\n private initialized = true;\r\n\r\n private format = new olFormatGeoJSON();\r\n\r\n private resultOrResolution$$: Subscription;\r\n private focusedResult$: BehaviorSubject> =\r\n new BehaviorSubject(undefined);\r\n private abstractFocusedOrSelectedResult: Feature;\r\n\r\n public withZoomButton = true;\r\n zoomAuto$: BehaviorSubject = new BehaviorSubject(false);\r\n\r\n @Output() openedChange = new EventEmitter();\r\n\r\n @Output() fullExtentEvent = new EventEmitter();\r\n @Output() windowHtmlDisplayEvent = new EventEmitter();\r\n\r\n resultSelected$ = new BehaviorSubject>(undefined);\r\n\r\n // @HostBinding('class.app-toast-panel-opened')\r\n // get hasOpenedClass() {\r\n // return this.opened;\r\n // }\r\n\r\n // @HostBinding('class.app-full-toast-panel-collapsed')\r\n // get hasFullCollapsedClass() {\r\n // return !this.opened && this.fullExtent;\r\n // }\r\n\r\n getClassPanel() {\r\n return {\r\n 'app-toast-panel-opened':\r\n this.opened && !this.fullExtent && !this.isHtmlDisplay,\r\n 'app-full-toast-panel-opened':\r\n this.opened && this.fullExtent && !this.isHtmlDisplay,\r\n\r\n 'app-toast-panel-html':\r\n this.opened &&\r\n !this.fullExtent &&\r\n this.resultSelected$.value &&\r\n this.isHtmlDisplay,\r\n\r\n 'app-toast-panel-html-large':\r\n this.opened &&\r\n this.fullExtent &&\r\n this.resultSelected$.value &&\r\n this.isHtmlDisplay,\r\n\r\n 'app-toast-panel-collapsed':\r\n !this.opened && !this.fullExtent && !this.isHtmlDisplay,\r\n 'app-full-toast-panel-collapsed':\r\n !this.opened && this.fullExtent && !this.isHtmlDisplay,\r\n 'app-toast-panel-html-collapsed': !this.opened && this.isHtmlDisplay\r\n };\r\n }\r\n\r\n // if query tabs mode activated\r\n // fix Heigh of igo-panel\r\n setHeighPanelTabsMode() {\r\n if (this.resultSelected$.value || !this.opened) {\r\n return '';\r\n }\r\n\r\n if (this.tabsMode && !this.fullExtent && !this.isHtmlDisplay) {\r\n return 'app-toast-panel-opened-max-height';\r\n } else if (\r\n this.tabsMode &&\r\n this.opened &&\r\n this.fullExtent &&\r\n !this.isHtmlDisplay\r\n ) {\r\n return 'app-full-toast-panel-opened-max-height';\r\n }\r\n }\r\n\r\n @HostBinding('style.visibility')\r\n get displayStyle() {\r\n if (this.results.length) {\r\n if (this.results.length === 1 && this.initialized) {\r\n this.selectResult(this.results[0]);\r\n }\r\n return 'visible';\r\n }\r\n return 'hidden';\r\n }\r\n\r\n // @HostBinding('class.app-full-toast-panel-opened')\r\n // get hasFullOpenedClass() {\r\n // return this.opened && this.fullExtent;\r\n // }\r\n\r\n @HostListener('document:keydown.escape', ['$event']) onEscapeHandler(\r\n event: KeyboardEvent\r\n ) {\r\n this.clear();\r\n }\r\n\r\n @HostListener('document:keydown.backspace', ['$event']) onBackHandler(\r\n event: KeyboardEvent\r\n ) {\r\n this.unselectResult();\r\n }\r\n\r\n @HostListener('document:keydown.z', ['$event']) onZoomHandler(\r\n event: KeyboardEvent\r\n ) {\r\n if (this.isResultSelected$.getValue() === true) {\r\n const localOlFeature = this.format.readFeature(\r\n this.resultSelected$.getValue().data,\r\n {\r\n dataProjection: this.resultSelected$.getValue().data.projection,\r\n featureProjection: this.map.projection\r\n }\r\n );\r\n moveToOlFeatures(\r\n this.map.viewController,\r\n [localOlFeature],\r\n FeatureMotion.Default\r\n );\r\n }\r\n }\r\n\r\n get results(): SearchResult[] {\r\n // return this.store.view.filter((e) => e.meta.dataType === FEATURE).all();\r\n return this.store.all();\r\n }\r\n\r\n get multiple(): Observable {\r\n this.results.length\r\n ? this.multiple$.next(true)\r\n : this.multiple$.next(false);\r\n return this.multiple$;\r\n }\r\n\r\n constructor(\r\n public mediaService: MediaService,\r\n public languageService: LanguageService,\r\n private storageState: StorageState,\r\n private queryState: QueryState,\r\n private workspaceState: WorkspaceState,\r\n private configService: ConfigService,\r\n private propertyTypeDetectorService: PropertyTypeDetectorService,\r\n private layerService: LayerService\r\n ) {\r\n this.tabsMode = this.configService.getConfig('queryTabs', false);\r\n this.opened = this.storageService.get('toastOpened') as boolean;\r\n this.zoomAuto = this.storageService.get('zoomAuto') as boolean;\r\n this.fullExtent = this.storageService.get('fullExtent') as boolean;\r\n this.setResizeWindowIcon();\r\n }\r\n\r\n private monitorResultOutOfView() {\r\n this.isSelectedResultOutOfView$$ = combineLatest([\r\n this.map.viewController.state$,\r\n this.resultSelected$\r\n ])\r\n .pipe(debounceTime(100))\r\n .subscribe((bunch) => {\r\n const selectedResult = bunch[1];\r\n if (!selectedResult) {\r\n this.isSelectedResultOutOfView$.next(false);\r\n return;\r\n }\r\n const selectedOlFeature = featureToOl(\r\n selectedResult.data,\r\n this.map.projection\r\n );\r\n const selectedOlFeatureExtent = computeOlFeaturesExtent(\r\n [selectedOlFeature],\r\n this.map.viewProjection\r\n );\r\n this.isSelectedResultOutOfView$.next(\r\n featuresAreOutOfView(this.map.getExtent(), selectedOlFeatureExtent)\r\n );\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.store.entities$.subscribe(() => {\r\n this.initialized = true;\r\n });\r\n this.monitorResultOutOfView();\r\n\r\n let latestResult;\r\n let trigger;\r\n if (this.hasFeatureEmphasisOnSelection) {\r\n this.resultOrResolution$$ = combineLatest([\r\n this.focusedResult$.pipe(\r\n tap((res) => {\r\n latestResult = res;\r\n trigger = 'focused';\r\n })\r\n ),\r\n this.resultSelected$.pipe(\r\n tap((res) => {\r\n latestResult = res;\r\n trigger = 'selected';\r\n })\r\n ),\r\n this.map.viewController.resolution$,\r\n this.store.entities$\r\n ]).subscribe(() => this.buildResultEmphasis(latestResult, trigger));\r\n }\r\n\r\n this.storageChange$$ = this.storageService.storageChange$\r\n .pipe(\r\n skipWhile(\r\n (storageChange: StorageServiceEvent) =>\r\n storageChange.key !== 'zoomAuto'\r\n )\r\n )\r\n .subscribe((change) => {\r\n this.zoomAuto = change.currentValue;\r\n });\r\n\r\n this.actionStore.load([\r\n {\r\n id: 'list',\r\n title: this.languageService.translate.instant('toastPanel.backToList'),\r\n icon: 'format-list-bulleted-square',\r\n tooltip: this.languageService.translate.instant(\r\n 'toastPanel.listButton'\r\n ),\r\n display: () => {\r\n return this.isResultSelected$;\r\n },\r\n handler: () => {\r\n this.unselectResult();\r\n }\r\n },\r\n {\r\n id: 'zoomFeature',\r\n title: this.languageService.translate.instant(\r\n 'toastPanel.zoomOnFeature'\r\n ),\r\n icon: 'magnify-plus-outline',\r\n tooltip: this.languageService.translate.instant(\r\n 'toastPanel.zoomOnFeatureTooltip'\r\n ),\r\n display: () => {\r\n return this.isResultSelected$;\r\n },\r\n handler: () => {\r\n const localOlFeature = this.format.readFeature(\r\n this.resultSelected$.getValue().data,\r\n {\r\n dataProjection: this.resultSelected$.getValue().data.projection,\r\n featureProjection: this.map.projection\r\n }\r\n );\r\n moveToOlFeatures(\r\n this.map.viewController,\r\n [localOlFeature],\r\n FeatureMotion.Zoom\r\n );\r\n }\r\n },\r\n {\r\n id: 'zoomResults',\r\n title: this.languageService.translate.instant(\r\n 'toastPanel.zoomOnFeatures'\r\n ),\r\n tooltip: this.languageService.translate.instant(\r\n 'toastPanel.zoomOnFeaturesTooltip'\r\n ),\r\n icon: 'magnify-scan',\r\n availability: () => {\r\n return this.multiple;\r\n },\r\n handler: () => {\r\n const olFeatures = [];\r\n for (const result of this.store.all()) {\r\n const localOlFeature = this.format.readFeature(result.data, {\r\n dataProjection: result.data.projection,\r\n featureProjection: this.map.projection\r\n });\r\n olFeatures.push(localOlFeature);\r\n }\r\n moveToOlFeatures(\r\n this.map.viewController,\r\n olFeatures,\r\n FeatureMotion.Zoom\r\n );\r\n }\r\n },\r\n {\r\n id: 'zoomAuto',\r\n title: this.languageService.translate.instant('toastPanel.zoomAuto'),\r\n tooltip: this.languageService.translate.instant(\r\n 'toastPanel.zoomAutoTooltip'\r\n ),\r\n checkbox: true,\r\n checkCondition: this.zoomAuto$,\r\n handler: () => {\r\n this.zoomAuto = !this.zoomAuto;\r\n if (this.zoomAuto && this.isResultSelected$.value === true) {\r\n this.selectResult(this.resultSelected$.getValue());\r\n }\r\n }\r\n },\r\n {\r\n id: 'fullExtent',\r\n title: this.languageService.translate.instant('toastPanel.fullExtent'),\r\n tooltip: this.languageService.translate.instant(\r\n 'toastPanel.fullExtentTooltip'\r\n ),\r\n icon: 'arrow-expand',\r\n display: () => {\r\n return this.fullExtent$.pipe(map((v) => !v && !this.isDesktop()));\r\n },\r\n handler: () => {\r\n this.fullExtent = true;\r\n }\r\n },\r\n {\r\n id: 'standardExtent',\r\n title: this.languageService.translate.instant(\r\n 'toastPanel.standardExtent'\r\n ),\r\n tooltip: this.languageService.translate.instant(\r\n 'toastPanel.standardExtentTooltip'\r\n ),\r\n icon: 'arrow-collapse',\r\n display: () => {\r\n return this.fullExtent$.pipe(map((v) => v && !this.isDesktop()));\r\n },\r\n handler: () => {\r\n this.fullExtent = false;\r\n }\r\n }\r\n ]);\r\n this.computeFeatureGeoServiceStatus();\r\n combineLatest([\r\n this.resultSelected$,\r\n this.map.layers$ as BehaviorSubject\r\n ]).subscribe(() => {\r\n this.computeFeatureGeoServiceStatus();\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.resultOrResolution$$) {\r\n this.resultOrResolution$$.unsubscribe();\r\n }\r\n if (this.isSelectedResultOutOfView$$) {\r\n this.isSelectedResultOutOfView$$.unsubscribe();\r\n }\r\n if (this.storageChange$$) {\r\n this.storageChange$$.unsubscribe();\r\n }\r\n }\r\n\r\n private buildResultEmphasis(\r\n result: SearchResult,\r\n trigger: 'selected' | 'focused' | undefined\r\n ) {\r\n this.clearFeatureEmphasis();\r\n if (!result || (trigger === 'selected' && this.zoomAuto)) {\r\n return;\r\n }\r\n const myOlFeature = featureToOl(result.data, this.map.projection);\r\n const olGeometry = myOlFeature.getGeometry();\r\n if (\r\n featuresAreTooDeepInView(\r\n this.map.viewController,\r\n olGeometry.getExtent() as [number, number, number, number],\r\n 0.0025\r\n )\r\n ) {\r\n const extent = olGeometry.getExtent();\r\n const x = extent[0] + (extent[2] - extent[0]) / 2;\r\n const y = extent[1] + (extent[3] - extent[1]) / 2;\r\n const feature1 = new olFeature({\r\n name: 'abstractFocusedOrSelectedResult',\r\n geometry: new olPoint([x, y])\r\n });\r\n this.abstractFocusedOrSelectedResult = featureFromOl(\r\n feature1,\r\n this.map.projection\r\n );\r\n this.abstractFocusedOrSelectedResult.meta.style =\r\n getCommonVectorSelectedStyle(\r\n Object.assign(\r\n {},\r\n { feature: this.abstractFocusedOrSelectedResult },\r\n trigger === 'selected'\r\n ? this.queryState.queryOverlayStyleSelection\r\n : this.queryState.queryOverlayStyleFocus\r\n )\r\n );\r\n this.abstractFocusedOrSelectedResult.meta.style.setZIndex(2000);\r\n this.map.queryResultsOverlay.addFeature(\r\n this.abstractFocusedOrSelectedResult,\r\n FeatureMotion.None\r\n );\r\n }\r\n }\r\n\r\n private clearFeatureEmphasis() {\r\n if (this.abstractFocusedOrSelectedResult) {\r\n this.map.queryResultsOverlay.removeFeature(\r\n this.abstractFocusedOrSelectedResult\r\n );\r\n this.abstractFocusedOrSelectedResult = undefined;\r\n }\r\n }\r\n\r\n getTitle(result: SearchResult) {\r\n return getEntityTitle(result);\r\n }\r\n\r\n focusResult(result: SearchResult) {\r\n this.focusedResult$.next(result);\r\n this.map.queryResultsOverlay.removeFeature(result.data);\r\n\r\n result.data.meta.style = getCommonVectorSelectedStyle(\r\n Object.assign(\r\n {},\r\n { feature: result.data },\r\n this.queryState.queryOverlayStyleFocus\r\n )\r\n );\r\n result.data.meta.style.setZIndex(2000);\r\n this.map.queryResultsOverlay.addFeature(result.data, FeatureMotion.None);\r\n }\r\n\r\n unfocusResult(result: SearchResult, force?) {\r\n this.focusedResult$.next(undefined);\r\n if (!force && this.store.state.get(result).focused) {\r\n return;\r\n }\r\n this.map.queryResultsOverlay.removeFeature(result.data);\r\n\r\n result.data.meta.style = getCommonVectorStyle(\r\n Object.assign(\r\n {},\r\n { feature: result.data },\r\n this.queryState.queryOverlayStyle\r\n )\r\n );\r\n result.data.meta.style.setZIndex(undefined);\r\n this.map.queryResultsOverlay.addFeature(result.data, FeatureMotion.None);\r\n }\r\n\r\n selectResult(result: SearchResult) {\r\n this.store.state.update(\r\n result,\r\n {\r\n focused: true,\r\n selected: true\r\n },\r\n true\r\n );\r\n this.resultSelected$.next(result);\r\n if (result.data.properties && result.data.properties.target === 'iframe') {\r\n this.setHtmlDisplay(true);\r\n } else {\r\n this.setHtmlDisplay(false);\r\n }\r\n\r\n const features = [];\r\n for (const feature of this.store.all()) {\r\n if (feature.meta.id === result.meta.id) {\r\n feature.data.meta.style = getCommonVectorSelectedStyle(\r\n Object.assign(\r\n {},\r\n { feature: feature.data },\r\n this.queryState.queryOverlayStyleSelection\r\n )\r\n );\r\n feature.data.meta.style.setZIndex(2000);\r\n } else {\r\n feature.data.meta.style = getCommonVectorStyle(\r\n Object.assign(\r\n {},\r\n { feature: feature.data },\r\n this.queryState.queryOverlayStyle\r\n )\r\n );\r\n }\r\n features.push(feature.data);\r\n }\r\n this.map.queryResultsOverlay.removeFeatures(features);\r\n this.map.queryResultsOverlay.addFeatures(features, FeatureMotion.None);\r\n\r\n if (this.zoomAuto) {\r\n const localOlFeature = this.format.readFeature(\r\n this.resultSelected$.getValue().data,\r\n {\r\n dataProjection: this.resultSelected$.getValue().data.projection,\r\n featureProjection: this.map.projection\r\n }\r\n );\r\n moveToOlFeatures(\r\n this.map.viewController,\r\n [localOlFeature],\r\n FeatureMotion.Default\r\n );\r\n }\r\n\r\n this.isResultSelected$.next(true);\r\n this.initialized = false;\r\n }\r\n\r\n unselectResult() {\r\n this.resultSelected$.next(undefined);\r\n this.isResultSelected$.next(false);\r\n this.setHtmlDisplay(false);\r\n this.store.state.clear();\r\n\r\n const features = [];\r\n for (const feature of this.store.all()) {\r\n feature.data.meta.style = getCommonVectorStyle(\r\n Object.assign(\r\n {},\r\n { feature: feature.data },\r\n this.queryState.queryOverlayStyle\r\n )\r\n );\r\n features.push(feature.data);\r\n }\r\n this.map.queryResultsOverlay.setFeatures(\r\n features,\r\n FeatureMotion.None,\r\n 'map'\r\n );\r\n }\r\n\r\n handleWksSelection() {\r\n const entities = this.store.entities$.getValue();\r\n const layersTitle = [...new Set(entities.map((e) => e.source.title))];\r\n const workspaces = this.workspaceState.store.entities$.getValue();\r\n if (workspaces.length) {\r\n const wksToHandle = workspaces.filter((wks) =>\r\n layersTitle.includes(wks.title)\r\n );\r\n wksToHandle.map((ws) => {\r\n ws.entityStore.state.updateMany(ws.entityStore.view.all(), {\r\n selected: false\r\n });\r\n });\r\n }\r\n }\r\n\r\n clear() {\r\n this.handleWksSelection();\r\n this.clearFeatureEmphasis();\r\n this.map.queryResultsOverlay.clear();\r\n this.store.clear();\r\n this.unselectResult();\r\n this.setHtmlDisplay(false);\r\n }\r\n\r\n isMobile(): boolean {\r\n return this.mediaService.getMedia() === Media.Mobile;\r\n }\r\n isDesktop(): boolean {\r\n return this.mediaService.isDesktop();\r\n }\r\n\r\n handleKeyboardEvent(event) {\r\n if (event.keyCode === 37) {\r\n this.previousResult();\r\n } else if (event.keyCode === 39) {\r\n this.nextResult();\r\n }\r\n }\r\n\r\n previousResult() {\r\n if (!this.resultSelected$.value) {\r\n return;\r\n }\r\n let i = this.results.indexOf(this.resultSelected$.value);\r\n const previousResult = this.results[--i];\r\n if (previousResult) {\r\n this.selectResult(previousResult);\r\n }\r\n }\r\n\r\n nextResult() {\r\n if (!this.resultSelected$.value) {\r\n return;\r\n }\r\n let i = this.results.indexOf(this.resultSelected$.value);\r\n const nextResult = this.results[++i];\r\n if (nextResult) {\r\n this.selectResult(nextResult);\r\n }\r\n }\r\n\r\n hasGeoService() {\r\n return this.getGeoServices().length;\r\n }\r\n\r\n private getGeoServices(): ExtendedGeoServiceDefinition[] {\r\n const resultSelected = this.resultSelected$.getValue();\r\n if (!resultSelected) {\r\n return [];\r\n }\r\n const hasGeoServiceProperties: ExtendedGeoServiceDefinition[] = [];\r\n const keys = Object.keys(resultSelected.data.properties);\r\n Object.entries(resultSelected.data.properties).forEach((entry) => {\r\n const [key, value] = entry;\r\n const geoService = this.propertyTypeDetectorService.getGeoService(\r\n value,\r\n keys\r\n );\r\n const extendedGeoService: ExtendedGeoServiceDefinition = Object.assign(\r\n {},\r\n geoService,\r\n { propertyForUrl: undefined }\r\n );\r\n if (geoService) {\r\n extendedGeoService.propertyForUrl = key;\r\n hasGeoServiceProperties.push(extendedGeoService);\r\n }\r\n });\r\n return hasGeoServiceProperties;\r\n }\r\n\r\n handleLayer() {\r\n const layersIds = this.map.layers.map((layer) => layer.id);\r\n let potententialLayerToAdd = this.potententialLayerToAdd$.getValue();\r\n if (!potententialLayerToAdd) {\r\n this.computeFeatureGeoServiceStatus();\r\n }\r\n potententialLayerToAdd = this.potententialLayerToAdd$.getValue();\r\n\r\n if (layersIds.includes(potententialLayerToAdd.id)) {\r\n const layerToRemove = this.map.getLayerById(potententialLayerToAdd.id);\r\n if (layerToRemove) {\r\n this.map.removeLayer(layerToRemove);\r\n this.potententialLayerisAdded$.next(false);\r\n }\r\n } else {\r\n this.layerService\r\n .createAsyncLayer(potententialLayerToAdd.sourceOptions)\r\n .subscribe((layer) => {\r\n this.map.layersAddedByClick$.next([layer]);\r\n this.map.addLayer(layer);\r\n this.potententialLayerisAdded$.next(true);\r\n });\r\n }\r\n }\r\n\r\n private computeFeatureGeoServiceStatus() {\r\n const resultSelected = this.resultSelected$.getValue();\r\n if (!resultSelected) {\r\n return;\r\n }\r\n const geoServices = this.getGeoServices();\r\n if (geoServices.length) {\r\n const firstGeoService = geoServices[0];\r\n const so = this.computeSourceOptionsFromProperties(\r\n resultSelected.data.properties,\r\n firstGeoService\r\n );\r\n const soId = generateIdFromSourceOptions(so.sourceOptions);\r\n this.potententialLayerToAdd$.next({ id: soId, sourceOptions: so });\r\n const layersIds = this.map.layers.map((l) => l.id);\r\n this.potententialLayerisAdded$.next(\r\n layersIds.includes(soId) ? true : false\r\n );\r\n }\r\n }\r\n\r\n private computeSourceOptionsFromProperties(\r\n properties: {},\r\n geoService: ExtendedGeoServiceDefinition\r\n ) {\r\n const keys = Object.keys(properties);\r\n const propertiesForLayerName = keys.filter((p) =>\r\n geoService.propertiesForLayerName.includes(p)\r\n );\r\n // providing the the first matching regex;\r\n let layerName = properties[propertiesForLayerName[0]];\r\n const url = properties[geoService.propertyForUrl];\r\n let appliedLayerName = layerName;\r\n let arcgisLayerName = undefined;\r\n if (\r\n ['arcgisrest', 'imagearcgisrest', 'tilearcgisrest'].includes(\r\n geoService.type\r\n )\r\n ) {\r\n arcgisLayerName = layerName;\r\n appliedLayerName = undefined;\r\n }\r\n const so = ObjectUtils.removeUndefined({\r\n sourceOptions: {\r\n type: geoService.type || 'wms',\r\n url,\r\n optionsFromCapabilities: true,\r\n optionsFromApi: true,\r\n params: {\r\n LAYERS: appliedLayerName,\r\n LAYER: arcgisLayerName\r\n }\r\n }\r\n });\r\n return so;\r\n }\r\n\r\n zoomTo() {\r\n const localOlFeature = this.format.readFeature(\r\n this.resultSelected$.getValue().data,\r\n {\r\n dataProjection: this.resultSelected$.getValue().data.projection,\r\n featureProjection: this.map.projection\r\n }\r\n );\r\n moveToOlFeatures(\r\n this.map.viewController,\r\n [localOlFeature],\r\n FeatureMotion.Zoom\r\n );\r\n }\r\n\r\n swipe(action: string) {\r\n if (action === ToastPanelComponent.SWIPE_ACTION.RIGHT) {\r\n this.previousResult();\r\n } else if (action === ToastPanelComponent.SWIPE_ACTION.LEFT) {\r\n this.nextResult();\r\n } else if (action === ToastPanelComponent.SWIPE_ACTION.UP) {\r\n this.opened = true;\r\n } else if (action === ToastPanelComponent.SWIPE_ACTION.DOWN) {\r\n this.opened = false;\r\n }\r\n }\r\n\r\n onToggleClick(e: MouseEvent) {\r\n if ((e.target as any).className !== 'igo-panel-title') {\r\n return;\r\n }\r\n this.opened = !this.opened;\r\n }\r\n\r\n /**\r\n * Invoke the action handler\r\n * @internal\r\n */\r\n onTriggerAction(action: Action) {\r\n const args = action.args || [];\r\n action.handler(...args);\r\n }\r\n\r\n setHtmlDisplay(value: boolean) {\r\n if (value === true) {\r\n this.isHtmlDisplay = true;\r\n this.windowHtmlDisplayEvent.emit(true);\r\n } else {\r\n this.isHtmlDisplay = false;\r\n this.windowHtmlDisplayEvent.emit(false);\r\n }\r\n }\r\n\r\n isHtmlAndDesktop(): boolean {\r\n if (this.isHtmlDisplay && this.isDesktop()) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n setResizeWindowIcon() {\r\n if (this.fullExtent) {\r\n this.iconResizeWindows = 'arrow-collapse';\r\n // this.iconResizeWindows = 'vector-arrange-below';\r\n } else {\r\n this.iconResizeWindows = 'arrow-expand';\r\n // this.iconResizeWindows = 'crop-square';\r\n }\r\n }\r\n\r\n resizeWindows() {\r\n this.storageService.set('fullExtent', !this.fullExtent);\r\n\r\n if (this.fullExtent) {\r\n this.reduceWindow();\r\n } else {\r\n this.enlargeWindows();\r\n }\r\n }\r\n\r\n reduceWindow() {\r\n this.fullExtent = false;\r\n this.setResizeWindowIcon();\r\n }\r\n\r\n enlargeWindows() {\r\n this.fullExtent = true;\r\n this.setResizeWindowIcon();\r\n }\r\n}\r\n","import {\r\n AnimationTriggerMetadata,\r\n animate,\r\n state,\r\n style,\r\n transition,\r\n trigger\r\n} from '@angular/animations';\r\n\r\nexport function showContent(\r\n duration = '50ms',\r\n delay = '280ms',\r\n easing = 'ease-in-out'\r\n): AnimationTriggerMetadata {\r\n return trigger('showContent', [\r\n state(\r\n 'true',\r\n style({\r\n opacity: 1,\r\n display: 'block'\r\n })\r\n ),\r\n state(\r\n 'false',\r\n style({\r\n opacity: 0,\r\n display: 'none'\r\n })\r\n ),\r\n transition('false => true', animate(`${duration} ${delay} ${easing}`)),\r\n transition('true => false', animate('0ms'))\r\n ]);\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n EventEmitter,\r\n HostBinding,\r\n Input,\r\n Output\r\n} from '@angular/core';\r\n\r\nimport { showContent } from './toast-panel-for-expansion.animations';\r\n\r\n@Component({\r\n selector: 'app-toast-panel-for-expansion',\r\n templateUrl: './toast-panel-for-expansion.component.html',\r\n styleUrls: ['./toast-panel-for-expansion.component.scss'],\r\n animations: [showContent()],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class ToastPanelForExpansionComponent {\r\n @Input()\r\n set opened(value: boolean) {\r\n if (value === this._opened) {\r\n return;\r\n }\r\n this._opened = value;\r\n this.openedChange.emit(this._opened);\r\n }\r\n get opened(): boolean {\r\n return this._opened;\r\n }\r\n private _opened: boolean;\r\n\r\n @Input() title: string;\r\n\r\n @Input() withHeader: boolean;\r\n\r\n @Output() openedChange = new EventEmitter();\r\n\r\n @HostBinding('class.toast-panel-for-expansion-opened')\r\n get hasOpenedClass() {\r\n return this.opened;\r\n }\r\n\r\n @HostBinding('style.visibility')\r\n get displayStyle() {\r\n return this.withHeader || this.opened ? 'visible' : 'hidden';\r\n }\r\n\r\n constructor() {}\r\n}\r\n","\n
\n \n
\n
\n","\n
\n \n \n \n\n \n \n \n \n\n \n \n\n \n \n \n
\n \n\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n Output\r\n} from '@angular/core';\r\n\r\nimport { Tool, Toolbox } from '@igo2/common';\r\nimport { ConfigService } from '@igo2/core';\r\nimport { IgoMap } from '@igo2/geo';\r\nimport { CatalogState, ToolState } from '@igo2/integration';\r\n\r\nimport { BehaviorSubject, Subscription } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'app-sidenav',\r\n templateUrl: './sidenav.component.html',\r\n styleUrls: ['./sidenav.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class SidenavComponent implements OnInit, OnDestroy {\r\n title$: BehaviorSubject = new BehaviorSubject(undefined);\r\n\r\n private activeTool$$: Subscription;\r\n\r\n @Input()\r\n get map(): IgoMap {\r\n return this._map;\r\n }\r\n set map(value: IgoMap) {\r\n this._map = value;\r\n }\r\n private _map: IgoMap;\r\n\r\n @Input()\r\n get opened(): boolean {\r\n return this._opened;\r\n }\r\n set opened(value: boolean) {\r\n if (value === this._opened) {\r\n return;\r\n }\r\n\r\n this._opened = value;\r\n this.openedChange.emit(this._opened);\r\n }\r\n private _opened: boolean;\r\n\r\n @Output() openedChange = new EventEmitter();\r\n @Output() toolChange = new EventEmitter();\r\n\r\n get toolbox(): Toolbox {\r\n return this.toolState.toolbox;\r\n }\r\n\r\n constructor(\r\n private toolState: ToolState,\r\n private configService: ConfigService,\r\n private catalogState: CatalogState\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.activeTool$$ = this.toolbox.activeTool$.subscribe((tool: Tool) => {\r\n const sidenavTitle = this.configService.getConfig('sidenavTitle', 'IGO');\r\n if (tool) {\r\n if (tool.name === 'catalogBrowser') {\r\n for (const catalog of this.catalogState.catalogStore.all()) {\r\n if (\r\n this.catalogState.catalogStore.state.get(catalog).selected ===\r\n true\r\n ) {\r\n this.title$.next(catalog.title);\r\n }\r\n }\r\n } else if (\r\n tool.name === 'activeTimeFilter' ||\r\n tool.name === 'activeOgcFilter'\r\n ) {\r\n for (const layer of this.map.layers) {\r\n if (layer.options.active === true) {\r\n this.title$.next(layer.title);\r\n }\r\n }\r\n } else {\r\n this.title$.next(tool.title);\r\n }\r\n } else {\r\n this.title$.next(sidenavTitle);\r\n }\r\n this.toolChange.emit(tool);\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n this.activeTool$$.unsubscribe();\r\n }\r\n\r\n onPreviousButtonClick() {\r\n this.toolbox.activatePreviousTool();\r\n }\r\n\r\n onUnselectButtonClick() {\r\n this.toolbox.deactivateTool();\r\n }\r\n}\r\n","\n \n \n {{ element.text }}\n \n \n \n \n\n \n {{ element.text }}\n \n \n \n \n \n\n","import { AfterViewInit, Component, OnDestroy } from '@angular/core';\r\n\r\nimport { Context, ContextService } from '@igo2/context';\r\nimport { ConfigService, MediaService } from '@igo2/core';\r\n\r\nimport { Subscription } from 'rxjs';\r\n\r\nimport { MapOverlay } from './map-overlay.interface';\r\n\r\n@Component({\r\n selector: 'app-map-overlay',\r\n templateUrl: './map-overlay.component.html',\r\n styleUrls: ['./map-overlay.component.scss']\r\n})\r\nexport class MapOverlayComponent implements AfterViewInit, OnDestroy {\r\n public mapOverlay: MapOverlay[] = [];\r\n private context$$: Subscription;\r\n private media$$: Subscription;\r\n private context: Context;\r\n\r\n constructor(\r\n private contextService: ContextService,\r\n private mediaService: MediaService,\r\n private configService: ConfigService\r\n ) {}\r\n\r\n ngAfterViewInit() {\r\n this.context$$ = this.contextService.context$.subscribe((context) => {\r\n this.handleContextChange(context);\r\n this.context = context;\r\n });\r\n this.media$$ = this.mediaService.media$.subscribe((media) =>\r\n this.handleContextChange(this.context)\r\n );\r\n }\r\n\r\n ngOnDestroy() {\r\n this.context$$.unsubscribe();\r\n this.media$$.unsubscribe();\r\n }\r\n\r\n private handleContextChange(context: Context) {\r\n let mapOverlay: MapOverlay[] = [];\r\n if (context !== undefined) {\r\n this.mapOverlay = [];\r\n\r\n if (context['mapOverlay']) {\r\n mapOverlay = context['mapOverlay'];\r\n } else {\r\n mapOverlay = this.configService.getConfig('mapOverlay', []);\r\n }\r\n for (const overlay of mapOverlay) {\r\n // If no media define use default to desktop, display only if current media is on context definition\r\n if (\r\n (!overlay.media && this.mediaService.getMedia() === 'desktop') ||\r\n (overlay.media &&\r\n overlay.media.includes(this.mediaService.getMedia()))\r\n ) {\r\n this.mapOverlay.push(overlay);\r\n }\r\n }\r\n }\r\n }\r\n}\r\n","\r\n \r\n \r\n \r\n\r\n
\r\n \r\n \r\n\r\n \r\n \r\n
\r\n\r\n \r\n \r\n\r\n 1 }\"\r\n [@mapStateX]=\"sidenavOpened ? 'right' : 'left'\"\r\n (@mapStateX.start)=\"updateMapBrowserClass()\"\r\n [@mapStateY]=\"getControlsOffsetY()\"\r\n (@mapStateY.start)=\"updateMapBrowserClass()\"\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n
\r\n
\r\n\r\n 0 &&\r\n !expansionPanelExpanded\r\n ? 'true'\r\n : 'false'\r\n \"\r\n>\r\n \r\n \r\n \r\n\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n 1\r\n ? 'magnify-scan'\r\n : 'magnify-plus-outline'\r\n }}\"\r\n >\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n {{ workspaceNotAvailableMessage | translate }}\r\n \r\n\r\n\r\n\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n \r\n \r\n\r\n\r\n\r\n\r\n\r\n\r\n \r\n \r\n\r\n","import { HttpClient, HttpParams } from '@angular/common/http';\r\nimport {\r\n ChangeDetectorRef,\r\n Component,\r\n ElementRef,\r\n OnDestroy,\r\n OnInit,\r\n ViewChild\r\n} from '@angular/core';\r\nimport {\r\n MatDialog,\r\n MatDialogConfig,\r\n MatDialogRef\r\n} from '@angular/material/dialog';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { ActivatedRoute, Params } from '@angular/router';\r\n\r\nimport { AuthService } from '@igo2/auth';\r\nimport {\r\n ActionStore,\r\n ActionbarMode,\r\n EntityRecord,\r\n EntityStore,\r\n EntityTablePaginatorOptions,\r\n Tool, // getEntityTitle,\r\n Toolbox,\r\n Widget,\r\n Workspace,\r\n WorkspaceStore\r\n} from '@igo2/common';\r\nimport { DetailedContext } from '@igo2/context';\r\nimport {\r\n ConfigService,\r\n LanguageService,\r\n Media,\r\n MediaOrientation,\r\n MediaService,\r\n MessageService,\r\n StorageService\r\n} from '@igo2/core';\r\nimport {\r\n CapabilitiesService,\r\n ConfigFileToGeoDBService,\r\n DataSourceService,\r\n EditionWorkspace,\r\n EditionWorkspaceService,\r\n FEATURE,\r\n Feature,\r\n FeatureMotion,\r\n FeatureWorkspace,\r\n GoogleLinks,\r\n IgoMap,\r\n ImageLayer,\r\n ImportService,\r\n LayerService,\r\n MapExtent,\r\n QuerySearchSource,\r\n QueryService,\r\n Research,\r\n SearchResult,\r\n SearchSource,\r\n SearchSourceService,\r\n VectorLayer,\r\n WfsWorkspace,\r\n addStopToStore,\r\n computeOlFeaturesExtent,\r\n featureFromOl,\r\n featureToSearchResult,\r\n generateIdFromSourceOptions,\r\n handleFileImportError,\r\n handleFileImportSuccess,\r\n moveToOlFeatures,\r\n sourceCanReverseSearch,\r\n sourceCanSearch\r\n} from '@igo2/geo';\r\nimport {\r\n ContextState,\r\n DirectionState,\r\n MapState,\r\n QueryState,\r\n SearchState,\r\n ToolState,\r\n WorkspaceState\r\n} from '@igo2/integration';\r\nimport { ObjectUtils } from '@igo2/utils';\r\n\r\nimport olFeature from 'ol/Feature';\r\nimport MapBrowserEvent from 'ol/MapBrowserEvent';\r\nimport olFormatGeoJSON from 'ol/format/GeoJSON';\r\nimport type { default as OlGeometry } from 'ol/geom/Geometry';\r\nimport * as olProj from 'ol/proj';\r\n\r\nimport { BehaviorSubject, Subscription, combineLatest, of } from 'rxjs';\r\nimport { debounceTime, first, pairwise, skipWhile, take } from 'rxjs/operators';\r\nimport { getAppVersion } from 'src/app/app.utils';\r\nimport { EnvironmentOptions } from 'src/environments/environnement.interface';\r\n\r\nimport {\r\n controlSlideX,\r\n controlSlideY,\r\n controlsAnimations,\r\n expansionPanelAnimation,\r\n mapSlideX,\r\n mapSlideY,\r\n toastPanelAnimation\r\n} from './portal.animation';\r\nimport { WelcomeWindowComponent } from './welcome-window/welcome-window.component';\r\nimport { WelcomeWindowService } from './welcome-window/welcome-window.service';\r\n\r\n@Component({\r\n selector: 'app-portal',\r\n templateUrl: './portal.component.html',\r\n styleUrls: ['./portal.component.scss'],\r\n animations: [\r\n expansionPanelAnimation(),\r\n toastPanelAnimation(),\r\n controlsAnimations(),\r\n controlSlideX(),\r\n controlSlideY(),\r\n mapSlideX(),\r\n mapSlideY()\r\n ]\r\n})\r\nexport class PortalComponent implements OnInit, OnDestroy {\r\n public appConfig: EnvironmentOptions;\r\n public toastPanelOffsetX$: BehaviorSubject = new BehaviorSubject(\r\n undefined\r\n );\r\n public sidenavOpened$: BehaviorSubject = new BehaviorSubject(false);\r\n public minSearchTermLength = 2;\r\n public hasGeolocateButton = true;\r\n public showMenuButton = true;\r\n public showSearchBar = true;\r\n public workspaceNotAvailableMessage: string = 'workspace.disabled.resolution';\r\n public workspacePaginator: MatPaginator;\r\n public workspaceEntitySortChange$: BehaviorSubject =\r\n new BehaviorSubject(false);\r\n public workspaceSwitchDisabled = false;\r\n public paginatorOptions: EntityTablePaginatorOptions = {\r\n pageSize: 50, // Number of items to display on a page.\r\n pageSizeOptions: [1, 5, 10, 20, 50, 100, 500] // The set of provided page size options to display to the user.\r\n };\r\n public workspaceMenuClass = 'workspace-menu';\r\n\r\n public fullExtent: boolean;\r\n private workspaceMaximize$$: Subscription[] = [];\r\n\r\n public matDialogRef$ = new BehaviorSubject>(undefined);\r\n public searchBarTerm = '';\r\n public onSettingsChange$ = new BehaviorSubject(undefined);\r\n public termDefinedInUrl = false;\r\n public termSplitter = '|';\r\n public termDefinedInUrlTriggered = false;\r\n private addedLayers$$: Subscription[] = [];\r\n\r\n public contextMenuStore = new ActionStore([]);\r\n private contextMenuCoord: [number, number];\r\n\r\n private contextLoaded = false;\r\n\r\n private context$$: Subscription;\r\n private openSidenav$$: Subscription;\r\n private sidenavMediaAndOrientation$$: Subscription;\r\n\r\n public igoSearchPointerSummaryEnabled: boolean;\r\n public igoReverseSearchCoordsFormatEnabled: boolean;\r\n\r\n public toastPanelForExpansionOpened = true;\r\n private activeWidget$$: Subscription;\r\n public showToastPanelForExpansionToggle = false;\r\n public selectedWorkspace$: BehaviorSubject = new BehaviorSubject(\r\n undefined\r\n );\r\n private routeParams: Params;\r\n public toastPanelHtmlDisplay = false;\r\n\r\n public homeExtent: MapExtent;\r\n public homeCenter: [number, number];\r\n public homeZoom: number;\r\n @ViewChild('mapBrowser', { read: ElementRef, static: true })\r\n mapBrowser: ElementRef;\r\n @ViewChild('searchBar', { read: ElementRef, static: true })\r\n searchBar: ElementRef;\r\n\r\n get map(): IgoMap {\r\n return this.mapState.map;\r\n }\r\n\r\n get sidenavOpened(): boolean {\r\n return this.sidenavOpened$.value;\r\n }\r\n\r\n set sidenavOpened(value: boolean) {\r\n this.sidenavOpened$.next(value);\r\n }\r\n\r\n get toastPanelOpened(): boolean {\r\n return this._toastPanelOpened;\r\n }\r\n set toastPanelOpened(value: boolean) {\r\n if (value !== !this._toastPanelOpened) {\r\n return;\r\n }\r\n this._toastPanelOpened = value;\r\n this.cdRef.detectChanges();\r\n }\r\n private _toastPanelOpened: boolean;\r\n\r\n isMobile(): boolean {\r\n return this.mediaService.getMedia() === Media.Mobile;\r\n }\r\n\r\n isTablet(): boolean {\r\n return this.mediaService.getMedia() === Media.Tablet;\r\n }\r\n\r\n isLandscape(): boolean {\r\n return this.mediaService.getOrientation() === MediaOrientation.Landscape;\r\n }\r\n\r\n isPortrait(): boolean {\r\n return this.mediaService.getOrientation() === MediaOrientation.Portrait;\r\n }\r\n\r\n get backdropShown(): boolean {\r\n return (\r\n (this.isMobile() || (this.isTablet() && this.isPortrait())) &&\r\n this.sidenavOpened\r\n );\r\n }\r\n\r\n get expansionPanelExpanded(): boolean {\r\n return this.workspaceState.workspacePanelExpanded;\r\n }\r\n set expansionPanelExpanded(value: boolean) {\r\n this.workspaceState.workspacePanelExpanded = value;\r\n if (value === true) {\r\n this.map.viewController.setPadding({ bottom: 280 });\r\n } else {\r\n this.map.viewController.setPadding({ bottom: 0 });\r\n }\r\n }\r\n\r\n get contextUri(): string {\r\n return this.contextState.context$?.getValue()\r\n ? this.contextState.context$.getValue().uri\r\n : undefined;\r\n }\r\n\r\n get expansionPanelBackdropShown(): boolean {\r\n return this.expansionPanelExpanded && this.toastPanelForExpansionOpened;\r\n }\r\n\r\n get actionbarMode(): ActionbarMode {\r\n return ActionbarMode.Overlay;\r\n }\r\n\r\n get actionbarWithTitle(): boolean {\r\n return this.actionbarMode === ActionbarMode.Overlay;\r\n }\r\n\r\n get searchStore(): EntityStore {\r\n return this.searchState.store;\r\n }\r\n\r\n get searchResultsGeometryEnabled(): boolean {\r\n return this.searchState.searchResultsGeometryEnabled$.value;\r\n }\r\n\r\n get queryStore(): EntityStore {\r\n return this.queryState.store;\r\n }\r\n\r\n get toolbox(): Toolbox {\r\n return this.toolState.toolbox;\r\n }\r\n\r\n get toastPanelContent(): string {\r\n let content;\r\n if (this.workspace !== undefined && this.workspace.hasWidget) {\r\n content = 'workspace';\r\n } /*else if (this.searchResult !== undefined) {\r\n content = this.searchResult.meta.dataType.toLowerCase();\r\n }*/\r\n return content;\r\n }\r\n\r\n // get toastPanelTitle(): string {\r\n // let title;\r\n // if (\r\n // this.toastPanelContent !== 'workspace' &&\r\n // this.searchResult !== undefined\r\n // ) {\r\n // title = getEntityTitle(this.searchResult);\r\n // }\r\n // return title;\r\n // }\r\n\r\n get workspaceStore(): WorkspaceStore {\r\n return this.workspaceState.store;\r\n }\r\n\r\n get workspace(): Workspace {\r\n return this.workspaceState.workspace$.value;\r\n }\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n public workspaceState: WorkspaceState,\r\n public authService: AuthService,\r\n public mediaService: MediaService,\r\n public layerService: LayerService,\r\n public dataSourceService: DataSourceService,\r\n public cdRef: ChangeDetectorRef,\r\n public capabilitiesService: CapabilitiesService,\r\n private contextState: ContextState,\r\n private mapState: MapState,\r\n private searchState: SearchState,\r\n public queryState: QueryState,\r\n private toolState: ToolState,\r\n private searchSourceService: SearchSourceService,\r\n private configService: ConfigService,\r\n private importService: ImportService,\r\n private http: HttpClient,\r\n private languageService: LanguageService,\r\n private messageService: MessageService,\r\n private welcomeWindowService: WelcomeWindowService,\r\n public dialogWindow: MatDialog,\r\n private queryService: QueryService,\r\n private storageService: StorageService,\r\n private editionWorkspaceService: EditionWorkspaceService,\r\n private directionState: DirectionState,\r\n private configFileToGeoDBService: ConfigFileToGeoDBService\r\n ) {\r\n this.handleAppConfigs();\r\n this.storageService.set('version', getAppVersion(this.configService));\r\n this.fullExtent = this.storageService.get('fullExtent') as boolean;\r\n this._toastPanelOpened =\r\n (this.storageService.get('toastOpened') as boolean) !== false;\r\n this.igoSearchPointerSummaryEnabled = this.configService.getConfig(\r\n 'hasSearchPointerSummary'\r\n );\r\n if (this.igoSearchPointerSummaryEnabled === undefined) {\r\n this.igoSearchPointerSummaryEnabled =\r\n (this.storageService.get('searchPointerSummaryEnabled') as boolean) ||\r\n false;\r\n }\r\n\r\n this.igoReverseSearchCoordsFormatEnabled =\r\n (this.storageService.get(\r\n 'reverseSearchCoordsFormatEnabled'\r\n ) as boolean) || false;\r\n }\r\n\r\n ngOnInit() {\r\n window['IGO'] = this;\r\n this.searchState.searchTermSplitter$.next(this.termSplitter);\r\n\r\n this.initWelcomeWindow();\r\n\r\n this.route.queryParams.subscribe((params) => {\r\n this.readLanguageParam(params);\r\n });\r\n\r\n this.authService.authenticate$.subscribe((authenticated) => {\r\n this.contextLoaded = false;\r\n });\r\n\r\n this.context$$ = this.contextState.context$.subscribe(\r\n (context: DetailedContext) => this.onChangeContext(context)\r\n );\r\n\r\n const contextActions = [\r\n {\r\n id: 'coordinates',\r\n title: 'coordinates',\r\n handler: () => this.searchCoordinate(this.contextMenuCoord)\r\n },\r\n {\r\n id: 'googleMaps',\r\n title: 'googleMap',\r\n handler: () => this.openGoogleMaps(this.contextMenuCoord)\r\n },\r\n {\r\n id: 'googleStreetView',\r\n title: 'googleStreetView',\r\n handler: () => this.openGoogleStreetView(this.contextMenuCoord)\r\n }\r\n ];\r\n\r\n this.contextMenuStore.load(contextActions);\r\n\r\n this.queryStore.count$\r\n .pipe(pairwise())\r\n .subscribe(([prevCnt, currentCnt]) => {\r\n this.map.viewController.padding[2] = currentCnt ? 280 : 0;\r\n // on mobile. Close the toast if workspace is opened, on new query\r\n if (\r\n prevCnt === 0 &&\r\n currentCnt !== prevCnt &&\r\n this.isMobile() &&\r\n this.appConfig.hasExpansionPanel &&\r\n this.expansionPanelExpanded &&\r\n this.toastPanelOpened\r\n ) {\r\n this.toastPanelOpened = false;\r\n }\r\n });\r\n this.map.ol.once('rendercomplete', () => {\r\n this.readQueryParams();\r\n if (this.appConfig.geolocate?.activateDefault !== undefined) {\r\n this.map.geolocationController.tracking =\r\n this.appConfig.geolocate?.activateDefault;\r\n }\r\n });\r\n\r\n this.onSettingsChange$.subscribe(() => {\r\n this.searchState.setSearchSettingsChange();\r\n });\r\n\r\n this.searchState.selectedResult$.subscribe((result) => {\r\n if (result && this.isMobile()) {\r\n this.closeSidenav();\r\n }\r\n });\r\n\r\n this.workspaceState.workspaceEnabled$.next(\r\n this.appConfig.hasExpansionPanel\r\n );\r\n this.workspaceState.store.empty$.subscribe((workspaceEmpty) => {\r\n if (!this.appConfig.hasExpansionPanel) {\r\n return;\r\n }\r\n this.workspaceState.workspaceEnabled$.next(workspaceEmpty ? false : true);\r\n if (workspaceEmpty) {\r\n this.expansionPanelExpanded = false;\r\n }\r\n this.updateMapBrowserClass();\r\n });\r\n\r\n this.workspaceMaximize$$.push(\r\n this.workspaceState.workspaceMaximize$.subscribe((workspaceMaximize) => {\r\n this.updateMapBrowserClass();\r\n })\r\n );\r\n\r\n this.workspaceState.workspace$.subscribe(\r\n (activeWks: WfsWorkspace | FeatureWorkspace | EditionWorkspace) => {\r\n if (activeWks) {\r\n this.selectedWorkspace$.next(activeWks);\r\n this.expansionPanelExpanded = true;\r\n\r\n if (\r\n activeWks.layer.options.workspace?.pageSize &&\r\n activeWks.layer.options.workspace?.pageSizeOptions\r\n ) {\r\n this.paginatorOptions = {\r\n pageSize: activeWks.layer.options.workspace?.pageSize,\r\n pageSizeOptions:\r\n activeWks.layer.options.workspace?.pageSizeOptions\r\n };\r\n } else {\r\n this.paginatorOptions = {\r\n pageSize: 50,\r\n pageSizeOptions: [1, 5, 10, 20, 50, 100, 500]\r\n };\r\n }\r\n } else {\r\n this.expansionPanelExpanded = false;\r\n }\r\n }\r\n );\r\n\r\n this.activeWidget$$ = this.workspaceState.activeWorkspaceWidget$.subscribe(\r\n (widget: Widget) => {\r\n if (widget !== undefined) {\r\n this.openToastPanelForExpansion();\r\n this.showToastPanelForExpansionToggle = true;\r\n } else {\r\n this.closeToastPanelForExpansion();\r\n this.showToastPanelForExpansionToggle = false;\r\n }\r\n }\r\n );\r\n\r\n this.openSidenav$$ = this.toolState.openSidenav$.subscribe(\r\n (openSidenav: boolean) => {\r\n if (openSidenav) {\r\n this.openSidenav();\r\n this.toolState.openSidenav$.next(false);\r\n }\r\n }\r\n );\r\n\r\n this.sidenavMediaAndOrientation$$ = combineLatest([\r\n this.sidenavOpened$,\r\n this.mediaService.media$,\r\n this.mediaService.orientation$\r\n ])\r\n .pipe(debounceTime(50))\r\n .subscribe((sidenavMediaAndOrientation: [boolean, string, string]) => {\r\n this.computeToastPanelOffsetX();\r\n });\r\n\r\n if (this.appConfig.importExport?.configFileToGeoDBService) {\r\n this.configFileToGeoDBService.load(\r\n this.appConfig.importExport.configFileToGeoDBService\r\n );\r\n }\r\n }\r\n\r\n private handleAppConfigs() {\r\n this.appConfig = this.configService.getConfigs();\r\n\r\n this.hasGeolocateButton = this.configService.getConfig(\r\n 'geolocate.button.visible',\r\n true\r\n );\r\n this.showMenuButton = this.configService.getConfig(\r\n 'menu.button.visible',\r\n true\r\n );\r\n\r\n this.showSearchBar = this.configService.getConfig(\r\n 'searchBar.showSearchBar',\r\n true\r\n );\r\n this.igoSearchPointerSummaryEnabled =\r\n this.appConfig.hasSearchPointerSummary;\r\n }\r\n\r\n setToastPanelHtmlDisplay(value) {\r\n this.toastPanelHtmlDisplay = value;\r\n this.computeToastPanelOffsetX();\r\n }\r\n\r\n computeToastPanelOffsetX() {\r\n if (this.isMobile() || !this.isLandscape()) {\r\n Promise.resolve().then(() => this.toastPanelOffsetX$.next(undefined));\r\n } else {\r\n Promise.resolve().then(() =>\r\n this.toastPanelOffsetX$.next(this.getToastPanelExtent())\r\n );\r\n }\r\n }\r\n\r\n workspaceVisibility(): boolean {\r\n const wks = this.selectedWorkspace$.value as\r\n | WfsWorkspace\r\n | FeatureWorkspace\r\n | EditionWorkspace;\r\n if (wks.inResolutionRange$.value) {\r\n if (wks.entityStore.empty$.value && !wks.layer.visible) {\r\n this.workspaceNotAvailableMessage = 'workspace.disabled.visible';\r\n } else {\r\n this.workspaceNotAvailableMessage = '';\r\n }\r\n } else {\r\n this.workspaceNotAvailableMessage = 'workspace.disabled.resolution';\r\n }\r\n return wks.inResolutionRange$.value;\r\n }\r\n\r\n isEditionWorkspace(workspace) {\r\n if (workspace instanceof EditionWorkspace) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n addFeature(workspace: EditionWorkspace) {\r\n let feature = {\r\n type: 'Feature',\r\n properties: {}\r\n };\r\n feature.properties = this.createFeatureProperties(workspace.layer);\r\n this.workspaceState.rowsInMapExtentCheckCondition$.next(false);\r\n workspace.editFeature(feature, workspace);\r\n }\r\n\r\n createFeatureProperties(layer: ImageLayer | VectorLayer) {\r\n let properties = {};\r\n layer.options.sourceOptions.sourceFields.forEach((field) => {\r\n if (!field.primary && field.visible) {\r\n properties[field.name] = '';\r\n }\r\n });\r\n return properties;\r\n }\r\n\r\n paginatorChange(matPaginator: MatPaginator) {\r\n this.workspacePaginator = matPaginator;\r\n }\r\n\r\n entitySortChange() {\r\n this.workspaceEntitySortChange$.next(true);\r\n }\r\n\r\n entitySelectChange(result: { added: Feature[] }) {\r\n const baseQuerySearchSource = this.getQuerySearchSource();\r\n const querySearchSourceArray: QuerySearchSource[] = [];\r\n\r\n if (\r\n this.selectedWorkspace$.value instanceof WfsWorkspace ||\r\n this.selectedWorkspace$.value instanceof FeatureWorkspace\r\n ) {\r\n if (!this.selectedWorkspace$.value.getLayerWksOptionTabQuery()) {\r\n return;\r\n }\r\n }\r\n if (result && result.added) {\r\n const results = result.added.map((res) => {\r\n if (\r\n res &&\r\n res.ol &&\r\n res.ol.getProperties()._featureStore.layer &&\r\n res.ol.getProperties()._featureStore.layer.visible\r\n ) {\r\n const ol = res.ol as olFeature;\r\n const featureStoreLayer = res.ol.getProperties()._featureStore.layer;\r\n const feature = featureFromOl(\r\n ol,\r\n featureStoreLayer.map.projection,\r\n featureStoreLayer.ol\r\n );\r\n\r\n feature.meta.alias =\r\n this.queryService.getAllowedFieldsAndAlias(featureStoreLayer);\r\n feature.meta.title =\r\n this.queryService.getQueryTitle(feature, featureStoreLayer) ||\r\n feature.meta.title;\r\n let querySearchSource = querySearchSourceArray.find(\r\n (s) => s.title === feature.meta.sourceTitle\r\n );\r\n if (!querySearchSource) {\r\n querySearchSource = new QuerySearchSource({\r\n title: feature.meta.sourceTitle\r\n });\r\n querySearchSourceArray.push(querySearchSource);\r\n }\r\n return featureToSearchResult(feature, querySearchSource);\r\n }\r\n });\r\n\r\n const research = {\r\n request: of(results),\r\n reverse: false,\r\n source: baseQuerySearchSource\r\n };\r\n research.request.subscribe((queryResults: SearchResult[]) => {\r\n this.queryStore.load(queryResults);\r\n });\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n this.context$$.unsubscribe();\r\n this.activeWidget$$.unsubscribe();\r\n this.openSidenav$$.unsubscribe();\r\n this.workspaceMaximize$$.map((f) => f.unsubscribe());\r\n this.sidenavMediaAndOrientation$$.unsubscribe();\r\n }\r\n\r\n /**\r\n * Cancel ongoing add layer, if any\r\n */\r\n private cancelOngoingAddLayer() {\r\n this.addedLayers$$.forEach((sub: Subscription) => sub.unsubscribe());\r\n this.addedLayers$$ = [];\r\n }\r\n\r\n onBackdropClick() {\r\n this.closeSidenav();\r\n }\r\n\r\n onToggleSidenavClick() {\r\n this.toggleSidenav();\r\n }\r\n\r\n onDeactivateWorkspaceWidget() {\r\n this.closeToastPanelForExpansion();\r\n }\r\n\r\n closeToastPanelForExpansion() {\r\n this.toastPanelForExpansionOpened = false;\r\n }\r\n\r\n openToastPanelForExpansion() {\r\n this.toastPanelForExpansionOpened = true;\r\n }\r\n\r\n onMapQuery(event: { features: Feature[]; event: MapBrowserEvent }) {\r\n const baseQuerySearchSource = this.getQuerySearchSource();\r\n const querySearchSourceArray: QuerySearchSource[] = [];\r\n const results = event.features.map((feature: Feature) => {\r\n let querySearchSource = querySearchSourceArray.find(\r\n (s) => s.title === feature.meta.sourceTitle\r\n );\r\n if (this.getFeatureIsSameActiveWks(feature)) {\r\n if (\r\n this.getWksActiveOpenInResolution() &&\r\n !(this.workspace as WfsWorkspace).getLayerWksOptionMapQuery?.()\r\n ) {\r\n return;\r\n }\r\n }\r\n if (!querySearchSource) {\r\n querySearchSource = new QuerySearchSource({\r\n title: feature.meta.sourceTitle\r\n });\r\n querySearchSourceArray.push(querySearchSource);\r\n }\r\n return featureToSearchResult(feature, querySearchSource);\r\n });\r\n const filteredResults = results.filter((x) => x !== undefined);\r\n const research = {\r\n request: of(filteredResults),\r\n reverse: false,\r\n source: baseQuerySearchSource\r\n };\r\n research.request.subscribe((queryResults: SearchResult[]) => {\r\n this.queryStore.load(queryResults);\r\n });\r\n }\r\n\r\n onSearchTermChange(term?: string) {\r\n if (this.routeParams?.search && term !== this.routeParams.search) {\r\n this.searchState.deactivateCustomFilterTermStrategy();\r\n }\r\n this.searchBarTerm = term;\r\n this.searchState.setSearchTerm(term);\r\n const termWithoutHashtag = term.replace(/(#[^\\s]*)/g, '').trim();\r\n if (termWithoutHashtag.length < 2) {\r\n this.onClearSearch();\r\n return;\r\n }\r\n this.onBeforeSearch();\r\n }\r\n\r\n onSearch(event: { research: Research; results: SearchResult[] }) {\r\n const results = event.results;\r\n\r\n const isReverseSearch = !sourceCanSearch(event.research.source);\r\n\r\n let enabledSources;\r\n if (isReverseSearch) {\r\n enabledSources = this.searchSourceService\r\n .getEnabledSources()\r\n .filter(sourceCanReverseSearch);\r\n } else {\r\n enabledSources = this.searchSourceService\r\n .getEnabledSources()\r\n .filter(sourceCanSearch);\r\n }\r\n\r\n const newResults = this.searchStore.entities$.value\r\n .filter(\r\n (result: SearchResult) =>\r\n result.source !== event.research.source &&\r\n enabledSources.includes(result.source)\r\n )\r\n .concat(results);\r\n this.searchStore.updateMany(newResults);\r\n }\r\n\r\n onSearchResultsGeometryStatusChange(value) {\r\n this.searchState.setSearchResultsGeometryStatus(value);\r\n }\r\n\r\n onReverseCoordsFormatStatusChange(value) {\r\n this.storageService.set('reverseSearchCoordsFormatEnabled', value);\r\n this.igoReverseSearchCoordsFormatEnabled = value;\r\n }\r\n\r\n onSearchSettingsChange() {\r\n this.onSettingsChange$.next(true);\r\n }\r\n\r\n private closeSidenav() {\r\n this.sidenavOpened = false;\r\n this.map.viewController.padding[3] = 0;\r\n }\r\n\r\n private openSidenav() {\r\n this.sidenavOpened = true;\r\n this.map.viewController.padding[3] = this.isMobile() ? 0 : 400;\r\n }\r\n\r\n private toggleSidenav() {\r\n this.sidenavOpened ? this.closeSidenav() : this.openSidenav();\r\n this.computeToastPanelOffsetX();\r\n }\r\n\r\n public toolChanged(tool: Tool) {\r\n if (tool && tool.name === 'searchResults' && this.searchBar) {\r\n this.searchBar.nativeElement.getElementsByTagName('input')[0].focus();\r\n }\r\n }\r\n\r\n private computeHomeExtentValues(context: DetailedContext) {\r\n if (context?.map?.view?.homeExtent) {\r\n this.homeExtent = context.map.view.homeExtent.extent;\r\n this.homeCenter = context.map.view.homeExtent.center;\r\n this.homeZoom = context.map.view.homeExtent.zoom;\r\n } else {\r\n this.homeExtent = undefined;\r\n this.homeCenter = undefined;\r\n this.homeZoom = undefined;\r\n }\r\n }\r\n\r\n private onChangeContext(context: DetailedContext) {\r\n this.cancelOngoingAddLayer();\r\n if (context === undefined) {\r\n return;\r\n }\r\n if (this.workspace && !this.workspace.entityStore.empty) {\r\n this.workspace.entityStore.clear();\r\n }\r\n if (!this.queryState.store.empty) {\r\n this.queryState.store.softClear();\r\n }\r\n\r\n this.computeHomeExtentValues(context);\r\n\r\n this.route.queryParams.pipe(debounceTime(250)).subscribe((qParams) => {\r\n if (!qParams['context'] || qParams['context'] === context.uri) {\r\n this.readLayersQueryParams(qParams);\r\n }\r\n });\r\n\r\n if (this.contextLoaded) {\r\n const contextManager = this.toolbox.getTool('contextManager');\r\n const contextManagerOptions = contextManager\r\n ? contextManager.options\r\n : {};\r\n let toolToOpen = contextManagerOptions.toolToOpenOnContextChange;\r\n\r\n if (!toolToOpen) {\r\n const toolOrderToOpen = ['mapTools', 'map', 'mapDetails', 'mapLegend'];\r\n for (const toolName of toolOrderToOpen) {\r\n if (this.toolbox.getTool(toolName)) {\r\n toolToOpen = toolName;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n if (toolToOpen) {\r\n this.toolbox.activateTool(toolToOpen);\r\n }\r\n }\r\n\r\n this.contextLoaded = true;\r\n }\r\n\r\n private onBeforeSearch() {\r\n if (\r\n !this.toolbox.activeTool$.value ||\r\n this.toolbox.activeTool$.value.name !== 'searchResults'\r\n ) {\r\n this.toolbox.activateTool('searchResults');\r\n }\r\n this.openSidenav();\r\n }\r\n\r\n toastOpenedChange(opened: boolean) {\r\n this.map.viewController.padding[2] = opened ? 280 : 0;\r\n this.handleExpansionAndToastOnMobile();\r\n this.toastPanelOpened = opened;\r\n }\r\n\r\n private handleExpansionAndToastOnMobile() {\r\n if (\r\n this.isMobile() &&\r\n this.appConfig.hasExpansionPanel &&\r\n this.expansionPanelExpanded &&\r\n this.toastPanelOpened\r\n ) {\r\n this.expansionPanelExpanded = false;\r\n }\r\n }\r\n\r\n public onClearSearch() {\r\n this.map.searchResultsOverlay.clear();\r\n this.searchStore.clear();\r\n this.searchState.setSelectedResult(undefined);\r\n this.searchState.deactivateCustomFilterTermStrategy();\r\n }\r\n\r\n private getQuerySearchSource(): SearchSource {\r\n return this.searchSourceService\r\n .getSources()\r\n .find(\r\n (searchSource: SearchSource) =>\r\n searchSource instanceof QuerySearchSource\r\n );\r\n }\r\n\r\n onContextMenuOpen(event: { x: number; y: number }) {\r\n this.contextMenuCoord = this.getClickCoordinate(event) as [number, number];\r\n }\r\n\r\n private getClickCoordinate(event: { x: number; y: number }) {\r\n const contextmenuPoint = event;\r\n const boundingMapBrowser =\r\n this.mapBrowser.nativeElement.getBoundingClientRect();\r\n contextmenuPoint.y =\r\n contextmenuPoint.y -\r\n boundingMapBrowser.top +\r\n (window.scrollY || window.pageYOffset);\r\n contextmenuPoint.x =\r\n contextmenuPoint.x -\r\n boundingMapBrowser.left +\r\n (window.scrollX || window.pageXOffset);\r\n const pixel = [contextmenuPoint.x, contextmenuPoint.y];\r\n\r\n const coord = this.map.ol.getCoordinateFromPixel(pixel);\r\n const proj = this.map.projection;\r\n return olProj.transform(coord, proj, 'EPSG:4326');\r\n }\r\n\r\n private openGoogleMaps(coord: [number, number]) {\r\n window.open(GoogleLinks.getGoogleMapsCoordLink(coord[0], coord[1]));\r\n }\r\n\r\n private openGoogleStreetView(coord: [number, number]) {\r\n window.open(GoogleLinks.getGoogleStreetViewLink(coord[0], coord[1]));\r\n }\r\n\r\n searchCoordinate(coord: [number, number]) {\r\n this.searchBarTerm = !this.igoReverseSearchCoordsFormatEnabled\r\n ? coord.map((c) => c.toFixed(6)).join(', ')\r\n : coord\r\n .reverse()\r\n .map((c) => c.toFixed(6))\r\n .join(', ');\r\n }\r\n\r\n updateMapBrowserClass() {\r\n const header = this.queryState.store.entities$.value.length > 0;\r\n if (\r\n this.appConfig.hasExpansionPanel &&\r\n this.workspaceState.workspaceEnabled$.value\r\n ) {\r\n this.mapBrowser.nativeElement.classList.add('has-expansion-panel');\r\n } else {\r\n this.mapBrowser.nativeElement.classList.remove('has-expansion-panel');\r\n }\r\n\r\n if (this.appConfig.hasExpansionPanel && this.expansionPanelExpanded) {\r\n if (this.workspaceState.workspaceMaximize$.value) {\r\n this.mapBrowser.nativeElement.classList.add(\r\n 'expansion-offset-maximized'\r\n );\r\n this.mapBrowser.nativeElement.classList.remove('expansion-offset');\r\n } else {\r\n this.mapBrowser.nativeElement.classList.add('expansion-offset');\r\n this.mapBrowser.nativeElement.classList.remove(\r\n 'expansion-offset-maximized'\r\n );\r\n }\r\n } else {\r\n if (this.workspaceState.workspaceMaximize$.value) {\r\n this.mapBrowser.nativeElement.classList.remove(\r\n 'expansion-offset-maximized'\r\n );\r\n } else {\r\n this.mapBrowser.nativeElement.classList.remove('expansion-offset');\r\n }\r\n }\r\n\r\n if (this.sidenavOpened) {\r\n this.mapBrowser.nativeElement.classList.add('sidenav-offset');\r\n } else {\r\n this.mapBrowser.nativeElement.classList.remove('sidenav-offset');\r\n }\r\n\r\n if (this.sidenavOpened && !this.isMobile()) {\r\n this.mapBrowser.nativeElement.classList.add('sidenav-offset-baselayers');\r\n } else {\r\n this.mapBrowser.nativeElement.classList.remove(\r\n 'sidenav-offset-baselayers'\r\n );\r\n }\r\n\r\n if (!this.toastPanelOpened && header && !this.expansionPanelExpanded) {\r\n this.mapBrowser.nativeElement.classList.add('toast-offset-scale-line');\r\n } else {\r\n this.mapBrowser.nativeElement.classList.remove('toast-offset-scale-line');\r\n }\r\n\r\n if (\r\n !this.toastPanelOpened &&\r\n header &&\r\n (this.isMobile() || this.isTablet() || this.sidenavOpened) &&\r\n !this.expansionPanelExpanded\r\n ) {\r\n this.mapBrowser.nativeElement.classList.add('toast-offset-attribution');\r\n } else {\r\n this.mapBrowser.nativeElement.classList.remove(\r\n 'toast-offset-attribution'\r\n );\r\n }\r\n }\r\n\r\n getToastPanelExtent() {\r\n if (!this.sidenavOpened) {\r\n if (this.toastPanelHtmlDisplay && this.mediaService.isDesktop()) {\r\n return 'htmlDisplay';\r\n }\r\n if (this.fullExtent) {\r\n return 'fullStandard';\r\n } else {\r\n return 'standard';\r\n }\r\n } else if (this.sidenavOpened) {\r\n if (this.toastPanelHtmlDisplay && this.mediaService.isDesktop()) {\r\n return 'htmlDisplayOffsetX';\r\n }\r\n if (this.fullExtent) {\r\n return 'fullOffsetX';\r\n } else {\r\n return 'standardOffsetX';\r\n }\r\n }\r\n }\r\n\r\n onPointerSummaryStatusChange(value) {\r\n this.storageService.set('searchPointerSummaryEnabled', value);\r\n this.igoSearchPointerSummaryEnabled = value;\r\n }\r\n\r\n getExpansionPanelStatus() {\r\n if (this.sidenavOpened === false) {\r\n if (this.expansionPanelExpanded === true) {\r\n return 'full';\r\n }\r\n return 'notTriggered';\r\n }\r\n if (this.sidenavOpened === true && this.isMobile() === false) {\r\n if (this.expansionPanelExpanded === true) {\r\n return 'reduced';\r\n }\r\n return 'reducedNotTriggered';\r\n }\r\n if (this.sidenavOpened === true && this.isMobile() === true) {\r\n if (this.expansionPanelExpanded === true) {\r\n return 'mobile';\r\n } else {\r\n return 'notVisible';\r\n }\r\n }\r\n }\r\n\r\n getToastPanelOffsetY() {\r\n let status = 'noExpansion';\r\n if (this.expansionPanelExpanded) {\r\n if (this.workspaceState.workspaceMaximize$.value) {\r\n if (this.toastPanelOpened) {\r\n status = 'expansionMaximizedAndToastOpened';\r\n } else {\r\n status = 'expansionMaximizedAndToastClosed';\r\n }\r\n } else {\r\n if (this.toastPanelOpened) {\r\n status = 'expansionAndToastOpened';\r\n } else {\r\n status = 'expansionAndToastClosed';\r\n }\r\n }\r\n } else {\r\n status = 'noExpansion';\r\n }\r\n return status;\r\n }\r\n\r\n getToastPanelStatus() {\r\n if (this.isMobile() === true && this.toastPanelOpened === false) {\r\n if (this.sidenavOpened === false) {\r\n if (this.expansionPanelExpanded === false) {\r\n if (this.queryState.store.entities$.value.length > 0) {\r\n return 'low';\r\n }\r\n }\r\n }\r\n }\r\n }\r\n getControlsOffsetY() {\r\n return this.expansionPanelExpanded\r\n ? this.workspaceState.workspaceMaximize$.value\r\n ? 'firstRowFromBottom-expanded-maximized'\r\n : 'firstRowFromBottom-expanded'\r\n : 'firstRowFromBottom';\r\n }\r\n\r\n getBaselayersSwitcherStatus() {\r\n let status;\r\n if (this.isMobile()) {\r\n if (this.workspaceState.workspaceEnabled$.value) {\r\n if (this.expansionPanelExpanded === false) {\r\n if (this.queryState.store.entities$.value.length === 0) {\r\n status = 'secondRowFromBottom';\r\n } else {\r\n status = 'thirdRowFromBottom';\r\n }\r\n } else {\r\n if (this.queryState.store.entities$.value.length === 0) {\r\n status = 'firstRowFromBottom-expanded';\r\n } else {\r\n status = 'secondRowFromBottom-expanded';\r\n }\r\n }\r\n } else {\r\n if (this.queryState.store.entities$.value.length === 0) {\r\n status = 'firstRowFromBottom';\r\n } else {\r\n status = 'secondRowFromBottom';\r\n }\r\n }\r\n } else {\r\n if (this.workspaceState.workspaceEnabled$.value) {\r\n if (this.expansionPanelExpanded) {\r\n if (this.workspaceState.workspaceMaximize$.value) {\r\n status = 'firstRowFromBottom-expanded-maximized';\r\n } else {\r\n status = 'firstRowFromBottom-expanded';\r\n }\r\n } else {\r\n status = 'secondRowFromBottom';\r\n }\r\n } else {\r\n status = 'firstRowFromBottom';\r\n }\r\n }\r\n return status;\r\n }\r\n\r\n private readQueryParams() {\r\n this.route.queryParams.subscribe((params) => {\r\n this.routeParams = params;\r\n this.readToolParams();\r\n this.readSearchParams();\r\n this.readFocusFirst();\r\n this.computeZoomToExtent();\r\n });\r\n }\r\n\r\n private readLanguageParam(params) {\r\n if (params['lang']) {\r\n this.authService.languageForce = true;\r\n this.languageService.setLanguage(params['lang']);\r\n }\r\n }\r\n\r\n private computeZoomToExtent() {\r\n if (this.routeParams['zoomExtent']) {\r\n const extentParams = this.routeParams['zoomExtent'].split(',');\r\n const olExtent = olProj.transformExtent(\r\n extentParams,\r\n 'EPSG:4326',\r\n this.map.projection\r\n );\r\n this.map.viewController.zoomToExtent(\r\n olExtent as [number, number, number, number]\r\n );\r\n }\r\n }\r\n\r\n private computeFocusFirst() {\r\n setTimeout(() => {\r\n const resultItem: any = document\r\n .getElementsByTagName('igo-search-results-item')\r\n .item(0);\r\n if (resultItem) {\r\n resultItem.click();\r\n }\r\n }, 1);\r\n }\r\n\r\n private readFocusFirst() {\r\n if (this.routeParams['sf'] === '1' && this.termDefinedInUrl) {\r\n const entities$$ = this.searchStore.stateView\r\n .all$()\r\n .pipe(\r\n skipWhile((entities) => entities.length === 0),\r\n debounceTime(1000),\r\n take(1)\r\n )\r\n .subscribe((entities) => {\r\n entities$$.unsubscribe();\r\n if (entities.length && !this.termDefinedInUrlTriggered) {\r\n this.computeFocusFirst();\r\n this.termDefinedInUrlTriggered = true;\r\n }\r\n });\r\n }\r\n }\r\n\r\n private readSearchParams() {\r\n if (this.routeParams['search']) {\r\n this.termDefinedInUrl = true;\r\n if (this.routeParams['exactMatch'] === '1') {\r\n this.searchState.activateCustomFilterTermStrategy();\r\n }\r\n if (\r\n this.routeParams['search'] &&\r\n !this.routeParams['zoom'] &&\r\n this.routeParams['sf'] !== '1'\r\n ) {\r\n const entities$$ = this.searchStore.stateView\r\n .all$()\r\n .pipe(\r\n skipWhile((entities) => entities.length === 0),\r\n debounceTime(500),\r\n take(1)\r\n )\r\n .subscribe((entities) => {\r\n entities$$.unsubscribe();\r\n const searchResultsOlFeatures = entities\r\n .filter((e) => e.entity.meta.dataType === FEATURE)\r\n .map((entity: EntityRecord) =>\r\n new olFormatGeoJSON().readFeature(entity.entity.data, {\r\n dataProjection: entity.entity.data.projection,\r\n featureProjection: this.map.projection\r\n })\r\n );\r\n const totalExtent = computeOlFeaturesExtent(\r\n searchResultsOlFeatures,\r\n this.map.viewProjection\r\n );\r\n this.map.viewController.zoomToExtent(totalExtent);\r\n });\r\n }\r\n this.searchBarTerm = this.routeParams['search'];\r\n }\r\n if (this.routeParams['searchGeom'] === '1') {\r\n this.searchState.searchResultsGeometryEnabled$.next(true);\r\n }\r\n }\r\n\r\n private readToolParams() {\r\n if (this.routeParams['tool']) {\r\n this.matDialogRef$\r\n .pipe(\r\n skipWhile((r) => r !== undefined),\r\n first()\r\n )\r\n .subscribe((matDialogOpened) => {\r\n if (!matDialogOpened) {\r\n this.toolbox.activateTool(this.routeParams['tool']);\r\n }\r\n });\r\n }\r\n\r\n if (this.routeParams['sidenav'] === '1') {\r\n setTimeout(() => {\r\n this.openSidenav();\r\n }, 250);\r\n }\r\n\r\n if (this.routeParams['routing']) {\r\n let routingCoordLoaded = false;\r\n const stopCoords = this.routeParams['routing'].split(';');\r\n const routingOptions = this.routeParams['routingOptions'];\r\n let resultSelection: number;\r\n if (routingOptions) {\r\n resultSelection = parseInt(routingOptions.split('result:')[1], 10);\r\n }\r\n this.directionState.stopsStore.storeInitialized$\r\n .pipe(\r\n skipWhile((init) => !init),\r\n first()\r\n )\r\n .subscribe((init: boolean) => {\r\n if (init && !routingCoordLoaded) {\r\n routingCoordLoaded = true;\r\n stopCoords.map((coord, i) => {\r\n if (i > 1) {\r\n addStopToStore(this.directionState.stopsStore);\r\n }\r\n });\r\n setTimeout(() => {\r\n stopCoords.map((coord, i) => {\r\n const stop = this.directionState.stopsStore\r\n .all()\r\n .find((e) => e.position === i);\r\n stop.text = coord;\r\n stop.coordinates = coord.split(',');\r\n this.directionState.stopsStore.update(stop);\r\n });\r\n }, this.directionState.debounceTime * 1.25); // this delay is due to the default component debounce time\r\n }\r\n });\r\n // zoom to active route\r\n this.directionState.routesFeatureStore.count$\r\n .pipe(\r\n skipWhile((c: number) => c < 1),\r\n first()\r\n )\r\n .subscribe((c) => {\r\n if (c >= 1) {\r\n this.directionState.zoomToActiveRoute$.next();\r\n }\r\n });\r\n // select the active route by url controls\r\n this.directionState.routesFeatureStore.count$\r\n .pipe(\r\n skipWhile((c: number) => c < 2),\r\n first()\r\n )\r\n .subscribe(() => {\r\n if (resultSelection) {\r\n this.directionState.routesFeatureStore.entities$.value.map(\r\n (d) => (d.properties.active = false)\r\n );\r\n this.directionState.routesFeatureStore.entities$.value[\r\n resultSelection\r\n ].properties.active = true;\r\n this.directionState.zoomToActiveRoute$.next();\r\n }\r\n });\r\n }\r\n }\r\n\r\n private readLayersQueryParams(params: Params) {\r\n this.readLayersQueryParamsByType(params, 'wms');\r\n this.readLayersQueryParamsByType(params, 'wmts');\r\n this.readLayersQueryParamsByType(params, 'arcgisrest');\r\n this.readLayersQueryParamsByType(params, 'imagearcgisrest');\r\n this.readLayersQueryParamsByType(params, 'tilearcgisrest');\r\n this.readVectorQueryParams(params);\r\n }\r\n\r\n getQueryParam(name, url) {\r\n let paramValue;\r\n if (url.includes('?')) {\r\n const httpParams = new HttpParams({ fromString: url.split('?')[1] });\r\n paramValue = httpParams.get(name);\r\n }\r\n return paramValue;\r\n }\r\n\r\n private readLayersQueryParamsByType(params: Params, type) {\r\n let nameParamLayersKey;\r\n let urlsKey;\r\n switch (type) {\r\n case 'wms':\r\n if ((params['layers'] || params['wmsLayers']) && params['wmsUrl']) {\r\n urlsKey = 'wmsUrl';\r\n nameParamLayersKey = params['wmsLayers'] ? 'wmsLayers' : 'layers'; // for maintain compatibility\r\n }\r\n break;\r\n case 'wmts':\r\n if (params['wmtsLayers'] && params['wmtsUrl']) {\r\n urlsKey = 'wmtsUrl';\r\n nameParamLayersKey = 'wmtsLayers';\r\n }\r\n break;\r\n case 'arcgisrest':\r\n if (params['arcgisLayers'] && params['arcgisUrl']) {\r\n urlsKey = 'arcgisUrl';\r\n nameParamLayersKey = 'arcgisLayers';\r\n }\r\n break;\r\n case 'imagearcgisrest':\r\n if (params['iarcgisLayers'] && params['iarcgisUrl']) {\r\n urlsKey = 'iarcgisUrl';\r\n nameParamLayersKey = 'iarcgisLayers';\r\n }\r\n break;\r\n case 'tilearcgisrest':\r\n if (params['tarcgisLayers'] && params['tarcgisUrl']) {\r\n urlsKey = 'tarcgisUrl';\r\n nameParamLayersKey = 'tarcgisLayers';\r\n }\r\n break;\r\n }\r\n if (!nameParamLayersKey || !urlsKey) {\r\n return;\r\n }\r\n const layersByService = params[nameParamLayersKey].split('),(');\r\n const urls = params[urlsKey].split(',');\r\n\r\n let cnt = 0;\r\n urls.forEach((urlSrc) => {\r\n let url = urlSrc;\r\n const version =\r\n this.getQueryParam('VERSION', url) ||\r\n this.getQueryParam('version', url) ||\r\n undefined;\r\n if (version) {\r\n url = url\r\n .replace('VERSION=' + version, '')\r\n .replace('version=' + version, '');\r\n }\r\n if (url.endsWith('?')) {\r\n url = url.substring(0, url.length - 1);\r\n }\r\n\r\n const currentLayersByService = this.extractLayersByService(\r\n layersByService[cnt]\r\n );\r\n currentLayersByService.forEach((layer) => {\r\n const layerFromUrl = layer.split(':igoz');\r\n const layerOptions = ObjectUtils.removeUndefined({\r\n type,\r\n url: url,\r\n layer: layerFromUrl[0],\r\n params: type === 'wms' ? { LAYERS: layerFromUrl[0] } : undefined\r\n });\r\n const id = generateIdFromSourceOptions(layerOptions);\r\n const visibility = this.computeLayerVisibilityFromUrl(params, id);\r\n this.addLayerFromURL(\r\n url,\r\n layerFromUrl[0],\r\n type,\r\n version,\r\n visibility,\r\n layerFromUrl[1] ? parseInt(layerFromUrl[1], 10) : undefined\r\n );\r\n });\r\n cnt += 1;\r\n });\r\n }\r\n\r\n private readVectorQueryParams(params: Params) {\r\n if (params['vector']) {\r\n const url = params['vector'] as string;\r\n const lastIndex = url.lastIndexOf('/');\r\n const fileName = url.slice(lastIndex + 1, url.length);\r\n\r\n this.http.get(`${url}`, { responseType: 'blob' }).subscribe((data) => {\r\n const file = new File([data], fileName, {\r\n type: data.type,\r\n lastModified: Date.now()\r\n });\r\n this.importService.import(file).subscribe(\r\n (features: Feature[]) => this.onFileImportSuccess(file, features),\r\n (error: Error) => this.onFileImportError(file, error)\r\n );\r\n });\r\n }\r\n }\r\n\r\n private onFileImportSuccess(file: File, features: Feature[]) {\r\n handleFileImportSuccess(\r\n file,\r\n features,\r\n this.map,\r\n this.contextState.context$.value.uri,\r\n this.messageService,\r\n this.layerService\r\n );\r\n }\r\n\r\n private onFileImportError(file: File, error: Error) {\r\n handleFileImportError(file, error, this.messageService);\r\n }\r\n\r\n private extractLayersByService(layersByService: string): any[] {\r\n let outLayersByService = layersByService;\r\n outLayersByService = outLayersByService.startsWith('(')\r\n ? outLayersByService.substr(1)\r\n : outLayersByService;\r\n outLayersByService = outLayersByService.endsWith(')')\r\n ? outLayersByService.slice(0, -1)\r\n : outLayersByService;\r\n return outLayersByService.split(',');\r\n }\r\n private addLayerFromURL(\r\n url: string,\r\n name: string,\r\n type: 'wms' | 'wmts' | 'arcgisrest' | 'imagearcgisrest' | 'tilearcgisrest',\r\n version: string,\r\n visibility: boolean = true,\r\n zIndex: number\r\n ) {\r\n if (!this.contextLoaded) {\r\n return;\r\n }\r\n const commonSourceOptions = {\r\n optionsFromCapabilities: true,\r\n optionsFromApi: true,\r\n crossOrigin: true,\r\n type,\r\n url\r\n };\r\n const arcgisClause =\r\n type === 'arcgisrest' ||\r\n type === 'imagearcgisrest' ||\r\n type === 'tilearcgisrest';\r\n let sourceOptions = {\r\n version: type === 'wmts' ? '1.0.0' : undefined,\r\n queryable: arcgisClause ? true : false,\r\n queryFormat: arcgisClause ? 'esrijson' : undefined,\r\n layer: name\r\n };\r\n if (type === 'wms') {\r\n sourceOptions = { params: { LAYERS: name, VERSION: version } } as any;\r\n }\r\n\r\n sourceOptions = ObjectUtils.removeUndefined(\r\n Object.assign({}, sourceOptions, commonSourceOptions)\r\n );\r\n\r\n this.addedLayers$$.push(\r\n this.layerService\r\n .createAsyncLayer({\r\n zIndex: zIndex,\r\n visible: visibility,\r\n sourceOptions\r\n })\r\n .subscribe((l) => {\r\n this.map.addLayer(l);\r\n })\r\n );\r\n }\r\n\r\n private computeLayerVisibilityFromUrl(\r\n params: Params,\r\n currentLayerid: string\r\n ): boolean {\r\n const queryParams = params;\r\n let visible = true;\r\n if (!queryParams || !currentLayerid) {\r\n return visible;\r\n }\r\n let visibleOnLayersParams = '';\r\n let visibleOffLayersParams = '';\r\n let visiblelayers: string[] = [];\r\n let invisiblelayers: string[] = [];\r\n if (queryParams['visiblelayers']) {\r\n visibleOnLayersParams = queryParams['visiblelayers'];\r\n }\r\n if (queryParams['invisiblelayers']) {\r\n visibleOffLayersParams = queryParams['invisiblelayers'];\r\n }\r\n\r\n /* This order is important because to control whichever\r\n the order of * param. First whe open and close everything.*/\r\n if (visibleOnLayersParams === '*') {\r\n visible = true;\r\n }\r\n if (visibleOffLayersParams === '*') {\r\n visible = false;\r\n }\r\n\r\n // After, managing named layer by id (context.json OR id from datasource)\r\n visiblelayers = visibleOnLayersParams.split(',');\r\n invisiblelayers = visibleOffLayersParams.split(',');\r\n if (\r\n visiblelayers.indexOf(currentLayerid) > -1 ||\r\n visiblelayers.indexOf(currentLayerid.toString()) > -1\r\n ) {\r\n visible = true;\r\n }\r\n if (\r\n invisiblelayers.indexOf(currentLayerid) > -1 ||\r\n invisiblelayers.indexOf(currentLayerid.toString()) > -1\r\n ) {\r\n visible = false;\r\n }\r\n return visible;\r\n }\r\n\r\n private initWelcomeWindow(): void {\r\n if (this.authService.hasAuthService) {\r\n this.authService.logged$.subscribe((logged) => {\r\n if (logged) {\r\n this.createWelcomeWindow();\r\n }\r\n });\r\n } else {\r\n this.createWelcomeWindow();\r\n }\r\n }\r\n\r\n private createWelcomeWindow(): void {\r\n if (this.welcomeWindowService.hasWelcomeWindow()) {\r\n const welcomWindowConfig: MatDialogConfig =\r\n this.welcomeWindowService.getConfig();\r\n\r\n this.matDialogRef$.next(\r\n this.dialogWindow.open(WelcomeWindowComponent, welcomWindowConfig)\r\n );\r\n\r\n this.matDialogRef$.value.afterClosed().subscribe((result) => {\r\n this.welcomeWindowService.afterClosedWelcomeWindow();\r\n this.matDialogRef$.next(undefined);\r\n });\r\n }\r\n }\r\n\r\n private getFeatureIsSameActiveWks(feature: Feature): boolean {\r\n if (this.workspace) {\r\n const featureTitle = feature.meta.sourceTitle;\r\n const wksTitle = this.workspace.title;\r\n if (wksTitle === featureTitle) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n private getWksActiveOpenInResolution(): boolean {\r\n if (this.workspace) {\r\n const activeWks = this.workspace as WfsWorkspace;\r\n if (\r\n activeWks.active &&\r\n activeWks.inResolutionRange$.value &&\r\n this.workspaceState.workspacePanelExpanded\r\n ) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n refreshRelationsWorkspace(relationLayers: ImageLayer[] | VectorLayer[]) {\r\n if (relationLayers?.length) {\r\n for (const layer of relationLayers) {\r\n const relationWorkspace = this.workspaceStore\r\n .all()\r\n .find((workspace) =>\r\n layer.options.workspace.workspaceId.includes(workspace.id)\r\n );\r\n relationWorkspace?.meta.tableTemplate.columns.forEach((col) => {\r\n // Update domain list\r\n if (col.type === 'list' || col.type === 'autocomplete') {\r\n this.editionWorkspaceService\r\n .getDomainValues(col.relation)\r\n .subscribe((result) => {\r\n col.domainValues = result;\r\n });\r\n }\r\n });\r\n }\r\n }\r\n }\r\n\r\n zoomToSelectedFeatureWks() {\r\n let format = new olFormatGeoJSON();\r\n const featuresSelected = this.workspaceState.workspaceSelection.map(\r\n (rec) => rec.entity as Feature\r\n );\r\n if (featuresSelected.length === 0) {\r\n return;\r\n }\r\n const olFeaturesSelected = [];\r\n for (const feat of featuresSelected) {\r\n let localOlFeature = format.readFeature(feat, {\r\n dataProjection: feat.projection,\r\n featureProjection: this.map.projection\r\n });\r\n olFeaturesSelected.push(localOlFeature);\r\n }\r\n moveToOlFeatures(\r\n this.map.viewController,\r\n olFeaturesSelected,\r\n FeatureMotion.Zoom\r\n );\r\n }\r\n}\r\n","import { Component } from '@angular/core';\r\n\r\nimport { ConfigService, LanguageService } from '@igo2/core';\r\n\r\n@Component({\r\n selector: 'app-header',\r\n templateUrl: './header.component.html',\r\n styleUrls: ['./header.component.scss']\r\n})\r\nexport class HeaderComponent {\r\n public headerLogo: string;\r\n public headerLogoPrint: string;\r\n\r\n constructor(\r\n private configService: ConfigService,\r\n protected languageService: LanguageService\r\n ) {\r\n this.computeHeader();\r\n }\r\n\r\n computeHeader() {\r\n this.headerLogo = this.configService.getConfig('header.logo');\r\n this.headerLogoPrint = this.configService.getConfig('header.logoPrint');\r\n }\r\n\r\n // Future translation system\r\n /*changeLanguage() {\r\n if (this.languageService.getLanguage() === 'fr'){\r\n this.languageService.setLanguage('en');\r\n } else {\r\n this.languageService.setLanguage('fr');\r\n }\r\n }*/\r\n}\r\n","\n
\n
\n \n \n \"Logo\"\n \n \n

\n {{ 'header.title' | translate }}\n

\n
\n
\n
    \n \n
  • \n {{ 'header.contactUs' | translate }}\n
  • \n
\n
\n

\n {{ 'header.title' | translate }}\n

\n
\n \n
\n","import { Component } from '@angular/core';\r\n\r\nimport { LanguageService } from '@igo2/core';\r\n\r\n@Component({\r\n selector: 'app-footer',\r\n templateUrl: './footer.component.html',\r\n styleUrls: ['./footer.component.scss']\r\n})\r\nexport class FooterComponent {\r\n constructor(protected languageService: LanguageService) {}\r\n}\r\n","
\n \n \n {{ 'footer.conditions' | translate }}\n \n | \n \n {{ 'footer.ministry' | translate }}\n \n | \n \n {{ 'footer.gov' | translate }}\n \n \n
\n","\n\n\n\n\n\n\n\n\n","import { DOCUMENT } from '@angular/common';\r\nimport { Component, Inject, OnInit } from '@angular/core';\r\nimport { Meta, Title } from '@angular/platform-browser';\r\nimport { NavigationEnd, Router } from '@angular/router';\r\n\r\nimport { AuthOptions } from '@igo2/auth';\r\nimport { ConfigService, LanguageService, MessageService } from '@igo2/core';\r\nimport { AnalyticsListenerService, AppOptions } from '@igo2/integration';\r\nimport { DomUtils, userAgent } from '@igo2/utils';\r\n\r\nimport { delay, first } from 'rxjs';\r\n\r\nimport { PwaService } from './services/pwa.service';\r\n\r\n@Component({\r\n selector: 'app-root',\r\n templateUrl: './app.component.html',\r\n styleUrls: ['./app.component.scss']\r\n})\r\nexport class AppComponent implements OnInit {\r\n public authConfig: AuthOptions;\r\n public hasHeader = true;\r\n public hasFooter = true;\r\n private promptEvent: any;\r\n\r\n constructor(\r\n @Inject(DOCUMENT) private document: Document,\r\n protected languageService: LanguageService,\r\n private configService: ConfigService,\r\n private analyticsListenerService: AnalyticsListenerService,\r\n private titleService: Title,\r\n private metaService: Meta,\r\n private messageService: MessageService,\r\n private pwaService: PwaService,\r\n private router: Router\r\n ) {\r\n this.authConfig = this.configService.getConfig('auth', {});\r\n\r\n this.readTitleConfig();\r\n this.readDescriptionConfig();\r\n\r\n this.analyticsListenerService.listen();\r\n\r\n this.detectOldBrowser();\r\n\r\n this.hasHeader = this.configService.getConfig('header.hasHeader', false);\r\n this.hasFooter = this.configService.getConfig('hasFooter', false);\r\n\r\n this.setManifest();\r\n this.installPrompt();\r\n this.pwaService.checkForUpdates();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.handleSplashScreen();\r\n }\r\n\r\n private handleSplashScreen(): void {\r\n this.router.events\r\n .pipe(\r\n first((events) => events instanceof NavigationEnd),\r\n delay(500)\r\n )\r\n .subscribe(() => {\r\n this._removeSplashScreen();\r\n });\r\n }\r\n\r\n private _removeSplashScreen(): void {\r\n const intro = this.document.getElementById('splash-screen');\r\n if (!intro) {\r\n return;\r\n }\r\n intro.classList.add('is-destroying');\r\n\r\n const destroyingAnimationTime = 300;\r\n const stylesheet = this.document.getElementById('splash-screen-stylesheet');\r\n\r\n setTimeout(() => {\r\n DomUtils.remove(intro);\r\n DomUtils.remove(stylesheet);\r\n }, destroyingAnimationTime);\r\n }\r\n\r\n private readTitleConfig() {\r\n this.languageService.translate\r\n .get(this.configService.getConfig('title', ''))\r\n .subscribe((title) => {\r\n if (title) {\r\n this.titleService.setTitle(title);\r\n this.metaService.addTag({ name: 'title', content: title });\r\n }\r\n });\r\n }\r\n\r\n private setManifest() {\r\n if (this.configService.getConfig('app.install.enabled')) {\r\n const manifestPath = this.configService.getConfig(\r\n 'app.install.manifestPath',\r\n 'manifest.webmanifest'\r\n );\r\n document\r\n .querySelector('#igoManifestByConfig')\r\n .setAttribute('href', manifestPath);\r\n }\r\n }\r\n\r\n private installPrompt() {\r\n const appConfig: AppOptions = this.configService.getConfig('app');\r\n if (appConfig?.install?.enabled && appConfig?.install?.promote) {\r\n if (userAgent.getOSName() !== 'iOS') {\r\n window.addEventListener(\r\n 'beforeinstallprompt',\r\n (event: any) => {\r\n event.preventDefault();\r\n this.promptEvent = event;\r\n window.addEventListener(\r\n 'click',\r\n () => {\r\n setTimeout(() => {\r\n this.promptEvent.prompt();\r\n this.promptEvent = undefined;\r\n }, 750);\r\n },\r\n { once: true }\r\n );\r\n },\r\n { once: true }\r\n );\r\n }\r\n }\r\n }\r\n\r\n private readDescriptionConfig() {\r\n const description = this.configService.getConfig('description');\r\n if (description) {\r\n this.metaService.addTag({ name: 'description', content: description });\r\n }\r\n }\r\n\r\n private detectOldBrowser() {\r\n const oldBrowser = userAgent.satisfies({\r\n ie: '<=11',\r\n chrome: '<64',\r\n firefox: '<60',\r\n safari: '<=11'\r\n });\r\n\r\n if (oldBrowser) {\r\n this.messageService.alert('oldBrowser.message', 'oldBrowser.title', {\r\n timeOut: 15000\r\n });\r\n }\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatListModule } from '@angular/material/list';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\n\r\nimport { IgoBackdropModule } from '@igo2/common';\r\nimport { IgoLanguageModule } from '@igo2/core';\r\n\r\nimport { ExpansionPanelHeaderComponent } from './expansion-panel-header.component';\r\nimport { ExpansionPanelComponent } from './expansion-panel.component';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n MatButtonModule,\r\n MatIconModule,\r\n MatMenuModule,\r\n MatListModule,\r\n MatSelectModule,\r\n MatTooltipModule,\r\n IgoLanguageModule,\r\n IgoBackdropModule\r\n ],\r\n exports: [ExpansionPanelComponent],\r\n declarations: [ExpansionPanelComponent, ExpansionPanelHeaderComponent]\r\n})\r\nexport class AppExpansionPanelModule {}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\n\r\nimport { MapOverlayComponent } from './map-overlay.component';\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n exports: [MapOverlayComponent],\r\n declarations: [MapOverlayComponent]\r\n})\r\nexport class MapOverlayModule {}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatSidenavModule } from '@angular/material/sidenav';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\n\r\nimport {\r\n IgoFlexibleModule,\r\n IgoHomeButtonModule,\r\n IgoInteractiveTourModule,\r\n IgoPanelModule,\r\n IgoToolModule\r\n} from '@igo2/common';\r\nimport { IgoContextManagerModule } from '@igo2/context';\r\nimport { IgoLanguageModule } from '@igo2/core';\r\nimport { IgoFeatureModule } from '@igo2/geo';\r\n\r\nimport { SidenavComponent } from './sidenav.component';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n MatIconModule,\r\n MatButtonModule,\r\n MatSidenavModule,\r\n MatTooltipModule,\r\n IgoLanguageModule,\r\n IgoPanelModule,\r\n IgoFlexibleModule,\r\n IgoContextManagerModule,\r\n IgoToolModule,\r\n IgoFeatureModule,\r\n IgoInteractiveTourModule,\r\n IgoHomeButtonModule\r\n ],\r\n exports: [SidenavComponent],\r\n declarations: [SidenavComponent]\r\n})\r\nexport class AppSidenavModule {}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatIconModule } from '@angular/material/icon';\r\n\r\nimport { IgoPanelModule, IgoStopPropagationModule } from '@igo2/common';\r\nimport { IgoLanguageModule } from '@igo2/core';\r\n\r\nimport { ToastPanelForExpansionComponent } from './toast-panel-for-expansion.component';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n MatIconModule,\r\n MatButtonModule,\r\n IgoLanguageModule,\r\n IgoPanelModule,\r\n IgoStopPropagationModule\r\n ],\r\n exports: [ToastPanelForExpansionComponent],\r\n declarations: [ToastPanelForExpansionComponent]\r\n})\r\nexport class AppToastPanelForExpansionModule {}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { MatBadgeModule } from '@angular/material/badge';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\n\r\nimport {\r\n IgoActionModule,\r\n IgoPanelModule,\r\n IgoStopPropagationModule\r\n} from '@igo2/common';\r\nimport { IgoLanguageModule } from '@igo2/core';\r\nimport { IgoFeatureModule, IgoSearchResultsModule } from '@igo2/geo';\r\n\r\nimport { ToastPanelComponent } from './toast-panel.component';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n MatBadgeModule,\r\n MatIconModule,\r\n MatButtonModule,\r\n MatTooltipModule,\r\n MatMenuModule,\r\n IgoLanguageModule,\r\n IgoPanelModule,\r\n IgoStopPropagationModule,\r\n IgoActionModule,\r\n IgoFeatureModule,\r\n IgoSearchResultsModule\r\n ],\r\n exports: [ToastPanelComponent],\r\n declarations: [ToastPanelComponent]\r\n})\r\nexport class AppToastPanelModule {}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatToolbarModule } from '@angular/material/toolbar';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\n\r\nimport { IgoCustomHtmlModule, IgoInteractiveTourModule } from '@igo2/common';\r\nimport { IgoLanguageModule } from '@igo2/core';\r\n\r\nimport { WelcomeWindowComponent } from './welcome-window.component';\r\n\r\n@NgModule({\r\n imports: [\r\n IgoLanguageModule,\r\n CommonModule,\r\n FormsModule,\r\n MatDialogModule,\r\n IgoInteractiveTourModule,\r\n IgoCustomHtmlModule,\r\n MatButtonModule,\r\n MatTooltipModule,\r\n MatIconModule,\r\n MatToolbarModule\r\n ],\r\n declarations: [WelcomeWindowComponent],\r\n exports: [WelcomeWindowComponent]\r\n})\r\nexport class IgoWelcomeWindowModule {}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatSidenavModule } from '@angular/material/sidenav';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\n\r\nimport {\r\n IgoActionModule,\r\n IgoBackdropModule,\r\n IgoContextMenuModule,\r\n IgoEntityModule,\r\n IgoEntityTableModule,\r\n IgoEntityTablePaginatorModule,\r\n IgoFlexibleModule,\r\n IgoInteractiveTourModule,\r\n IgoPanelModule,\r\n IgoToolModule,\r\n IgoWorkspaceModule\r\n} from '@igo2/common';\r\nimport {\r\n IgoContextManagerModule,\r\n IgoContextMapButtonModule\r\n} from '@igo2/context';\r\nimport { IgoCoreModule } from '@igo2/core';\r\nimport {\r\n IgoFeatureModule,\r\n IgoGeoWorkspaceModule,\r\n IgoImportExportModule,\r\n IgoMapModule,\r\n IgoQueryModule,\r\n IgoSearchModule\r\n} from '@igo2/geo';\r\nimport { IgoIntegrationModule } from '@igo2/integration';\r\n\r\nimport { AppExpansionPanelModule } from './expansion-panel/expansion-panel.module';\r\nimport { MapOverlayModule } from './map-overlay/map-overlay.module';\r\nimport { PortalComponent } from './portal.component';\r\nimport { AppSidenavModule } from './sidenav/sidenav.module';\r\nimport { AppToastPanelForExpansionModule } from './toast-panel-for-expansion/toast-panel-for-expansion.module';\r\nimport { AppToastPanelModule } from './toast-panel/toast-panel.module';\r\nimport { IgoWelcomeWindowModule } from './welcome-window/welcome-window.module';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n MatTooltipModule,\r\n MatButtonModule,\r\n MatIconModule,\r\n MatSidenavModule,\r\n MatDialogModule,\r\n IgoCoreModule,\r\n IgoFeatureModule,\r\n IgoImportExportModule,\r\n IgoMapModule,\r\n IgoQueryModule.forRoot(),\r\n IgoSearchModule.forRoot(),\r\n IgoActionModule,\r\n IgoWorkspaceModule,\r\n IgoEntityModule,\r\n IgoGeoWorkspaceModule,\r\n IgoPanelModule,\r\n IgoToolModule,\r\n IgoContextMenuModule,\r\n IgoBackdropModule,\r\n IgoFlexibleModule,\r\n IgoIntegrationModule,\r\n AppExpansionPanelModule,\r\n AppToastPanelModule,\r\n AppToastPanelForExpansionModule,\r\n AppSidenavModule,\r\n MapOverlayModule,\r\n IgoContextManagerModule,\r\n IgoContextMapButtonModule,\r\n IgoEntityTableModule,\r\n IgoEntityTablePaginatorModule,\r\n IgoInteractiveTourModule,\r\n IgoWelcomeWindowModule\r\n ],\r\n exports: [PortalComponent],\r\n declarations: [PortalComponent]\r\n})\r\nexport class PortalModule {}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\n\r\nimport { IgoLanguageModule } from '@igo2/core';\r\n\r\nimport { FooterComponent } from './footer.component';\r\n\r\n@NgModule({\r\n declarations: [FooterComponent],\r\n imports: [CommonModule, IgoLanguageModule],\r\n exports: [FooterComponent]\r\n})\r\nexport class FooterModule {}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { MatToolbarModule } from '@angular/material/toolbar';\r\n\r\nimport { IgoLanguageModule } from '@igo2/core';\r\n\r\nimport { HeaderComponent } from './header.component';\r\n\r\n@NgModule({\r\n declarations: [HeaderComponent],\r\n imports: [CommonModule, IgoLanguageModule, MatToolbarModule],\r\n exports: [HeaderComponent]\r\n})\r\nexport class HeaderModule {}\r\n","import { DOCUMENT } from '@angular/common';\r\nimport {\r\n APP_INITIALIZER,\r\n ApplicationRef,\r\n Injector,\r\n NgModule\r\n} from '@angular/core';\r\nimport { MAT_FORM_FIELD_DEFAULT_OPTIONS } from '@angular/material/form-field';\r\nimport {\r\n MAT_TOOLTIP_DEFAULT_OPTIONS,\r\n MatTooltipDefaultOptions\r\n} from '@angular/material/tooltip';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { RouterModule } from '@angular/router';\r\nimport { ServiceWorkerModule } from '@angular/service-worker';\r\n\r\nimport { IgoAuthModule } from '@igo2/auth';\r\nimport { IgoSpinnerModule, IgoStopPropagationModule } from '@igo2/common';\r\nimport {\r\n ConfigService,\r\n IgoGestureModule,\r\n IgoMessageModule,\r\n LanguageService,\r\n RouteService,\r\n provideConfigOptions\r\n} from '@igo2/core';\r\nimport {\r\n provideCadastreSearchSource,\r\n provideCoordinatesReverseSearchSource,\r\n provideIChercheReverseSearchSource,\r\n provideIChercheSearchSource,\r\n provideILayerSearchSource,\r\n provideNominatimSearchSource,\r\n provideOptionsApi,\r\n provideOsrmDirectionsSource,\r\n provideStoredQueriesSearchSource,\r\n provideStyleListOptions,\r\n provideWorkspaceSearchSource\r\n} from '@igo2/geo';\r\nimport { loadTheme } from '@igo2/utils';\r\n\r\nimport { concatMap, first } from 'rxjs';\r\n\r\nimport { environment } from '../environments/environment';\r\nimport { AppComponent } from './app.component';\r\nimport { PortalModule } from './pages';\r\nimport { FooterModule } from './pages/footer/footer.module';\r\nimport { HeaderModule } from './pages/header/header.module';\r\n\r\nconst DEFAULT_THEME: string = 'blue-theme';\r\n\r\nexport const defaultTooltipOptions: MatTooltipDefaultOptions = {\r\n showDelay: 500,\r\n hideDelay: 0,\r\n touchendHideDelay: 0,\r\n disableTooltipInteractivity: true\r\n};\r\n\r\n@NgModule({\r\n declarations: [AppComponent],\r\n imports: [\r\n BrowserModule,\r\n BrowserAnimationsModule,\r\n RouterModule.forRoot([]),\r\n IgoAuthModule.forRoot(),\r\n IgoGestureModule.forRoot(),\r\n IgoMessageModule,\r\n IgoSpinnerModule,\r\n IgoStopPropagationModule,\r\n PortalModule,\r\n HeaderModule,\r\n FooterModule,\r\n ServiceWorkerModule.register('ngsw-worker.js', {\r\n enabled: environment.igo.app.pwa.enabled,\r\n registrationStrategy: 'registerWithDelay:5000'\r\n })\r\n ],\r\n providers: [\r\n provideConfigOptions({\r\n default: environment.igo,\r\n path: './config/config.json'\r\n }),\r\n RouteService,\r\n provideNominatimSearchSource(),\r\n provideIChercheSearchSource(),\r\n provideWorkspaceSearchSource(),\r\n provideIChercheReverseSearchSource(),\r\n provideCoordinatesReverseSearchSource(),\r\n provideILayerSearchSource(),\r\n provideStoredQueriesSearchSource(),\r\n provideOsrmDirectionsSource(),\r\n provideOptionsApi(),\r\n provideCadastreSearchSource(),\r\n {\r\n provide: APP_INITIALIZER,\r\n useFactory: appInitializerFactory,\r\n deps: [Injector, ApplicationRef, DOCUMENT],\r\n multi: true\r\n },\r\n provideStyleListOptions({\r\n path: './assets/list-style.json'\r\n }),\r\n { provide: MAT_TOOLTIP_DEFAULT_OPTIONS, useValue: defaultTooltipOptions },\r\n {\r\n provide: MAT_FORM_FIELD_DEFAULT_OPTIONS,\r\n useValue: { appearance: 'fill' }\r\n }\r\n ],\r\n bootstrap: [AppComponent]\r\n})\r\nexport class AppModule {}\r\n\r\nfunction appInitializerFactory(\r\n injector: Injector,\r\n applicationRef: ApplicationRef,\r\n document: Document\r\n) {\r\n // ensure to have the proper translations loaded once, when the app is stable.\r\n return () =>\r\n new Promise((resolve: any) => {\r\n applicationRef.isStable\r\n .pipe(\r\n first((isStable) => isStable === true),\r\n concatMap(() => {\r\n const languageService = injector.get(LanguageService);\r\n const lang = languageService.getLanguage();\r\n return languageService.translate.getTranslation(lang);\r\n })\r\n )\r\n .subscribe((translations) => {\r\n const languageService = injector.get(LanguageService);\r\n const lang = languageService.getLanguage();\r\n languageService.translate.setTranslation(lang, translations);\r\n\r\n const configService = injector.get(ConfigService);\r\n const theme = configService.getConfig('theme', DEFAULT_THEME);\r\n loadTheme(document, theme);\r\n\r\n const titleKey = configService.getConfig('title');\r\n languageService.translate.get(titleKey).subscribe((title) => {\r\n handleSplashScreenTitle(document, title);\r\n resolve();\r\n });\r\n });\r\n });\r\n}\r\n\r\nfunction handleSplashScreenTitle(document: Document, title: string): void {\r\n const splashScreenTitle = document.getElementById('splash-screen-title');\r\n if (splashScreenTitle) {\r\n splashScreenTitle.innerText = title;\r\n }\r\n}\r\n","import { enableProdMode } from '@angular/core';\r\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\n\r\nimport 'hammerjs';\r\n\r\nimport { AppModule } from './app/app.module';\r\nimport { environment } from './environments/environment';\r\n\r\nif (environment.production) {\r\n enableProdMode();\r\n}\r\n\r\nplatformBrowserDynamic()\r\n .bootstrapModule(AppModule)\r\n .catch((err) => console.log(err));\r\n","var map = {\n\t\"./af\": 35528,\n\t\"./af.js\": 35528,\n\t\"./ar\": 1036,\n\t\"./ar-dz\": 17579,\n\t\"./ar-dz.js\": 17579,\n\t\"./ar-kw\": 69588,\n\t\"./ar-kw.js\": 69588,\n\t\"./ar-ly\": 11650,\n\t\"./ar-ly.js\": 11650,\n\t\"./ar-ma\": 93258,\n\t\"./ar-ma.js\": 93258,\n\t\"./ar-sa\": 54085,\n\t\"./ar-sa.js\": 54085,\n\t\"./ar-tn\": 90287,\n\t\"./ar-tn.js\": 90287,\n\t\"./ar.js\": 1036,\n\t\"./az\": 89757,\n\t\"./az.js\": 89757,\n\t\"./be\": 59620,\n\t\"./be.js\": 59620,\n\t\"./bg\": 31139,\n\t\"./bg.js\": 31139,\n\t\"./bm\": 4042,\n\t\"./bm.js\": 4042,\n\t\"./bn\": 19641,\n\t\"./bn-bd\": 19126,\n\t\"./bn-bd.js\": 19126,\n\t\"./bn.js\": 19641,\n\t\"./bo\": 494,\n\t\"./bo.js\": 494,\n\t\"./br\": 20934,\n\t\"./br.js\": 20934,\n\t\"./bs\": 26274,\n\t\"./bs.js\": 26274,\n\t\"./ca\": 45831,\n\t\"./ca.js\": 45831,\n\t\"./cs\": 92354,\n\t\"./cs.js\": 92354,\n\t\"./cv\": 79692,\n\t\"./cv.js\": 79692,\n\t\"./cy\": 58774,\n\t\"./cy.js\": 58774,\n\t\"./da\": 38955,\n\t\"./da.js\": 38955,\n\t\"./de\": 21557,\n\t\"./de-at\": 24954,\n\t\"./de-at.js\": 24954,\n\t\"./de-ch\": 81881,\n\t\"./de-ch.js\": 81881,\n\t\"./de.js\": 21557,\n\t\"./dv\": 16475,\n\t\"./dv.js\": 16475,\n\t\"./el\": 38877,\n\t\"./el.js\": 38877,\n\t\"./en-au\": 70454,\n\t\"./en-au.js\": 70454,\n\t\"./en-ca\": 67356,\n\t\"./en-ca.js\": 67356,\n\t\"./en-gb\": 10456,\n\t\"./en-gb.js\": 10456,\n\t\"./en-ie\": 28789,\n\t\"./en-ie.js\": 28789,\n\t\"./en-il\": 85471,\n\t\"./en-il.js\": 85471,\n\t\"./en-in\": 39664,\n\t\"./en-in.js\": 39664,\n\t\"./en-nz\": 97672,\n\t\"./en-nz.js\": 97672,\n\t\"./en-sg\": 80805,\n\t\"./en-sg.js\": 80805,\n\t\"./eo\": 87390,\n\t\"./eo.js\": 87390,\n\t\"./es\": 1564,\n\t\"./es-do\": 51473,\n\t\"./es-do.js\": 51473,\n\t\"./es-mx\": 92089,\n\t\"./es-mx.js\": 92089,\n\t\"./es-us\": 84156,\n\t\"./es-us.js\": 84156,\n\t\"./es.js\": 1564,\n\t\"./et\": 6513,\n\t\"./et.js\": 6513,\n\t\"./eu\": 7856,\n\t\"./eu.js\": 7856,\n\t\"./fa\": 2378,\n\t\"./fa.js\": 2378,\n\t\"./fi\": 22687,\n\t\"./fi.js\": 22687,\n\t\"./fil\": 80032,\n\t\"./fil.js\": 80032,\n\t\"./fo\": 46845,\n\t\"./fo.js\": 46845,\n\t\"./fr\": 8875,\n\t\"./fr-ca\": 56425,\n\t\"./fr-ca.js\": 56425,\n\t\"./fr-ch\": 41746,\n\t\"./fr-ch.js\": 41746,\n\t\"./fr.js\": 8875,\n\t\"./fy\": 67037,\n\t\"./fy.js\": 67037,\n\t\"./ga\": 11217,\n\t\"./ga.js\": 11217,\n\t\"./gd\": 37010,\n\t\"./gd.js\": 37010,\n\t\"./gl\": 51931,\n\t\"./gl.js\": 51931,\n\t\"./gom-deva\": 64488,\n\t\"./gom-deva.js\": 64488,\n\t\"./gom-latn\": 8032,\n\t\"./gom-latn.js\": 8032,\n\t\"./gu\": 34984,\n\t\"./gu.js\": 34984,\n\t\"./he\": 69090,\n\t\"./he.js\": 69090,\n\t\"./hi\": 42085,\n\t\"./hi.js\": 42085,\n\t\"./hr\": 38787,\n\t\"./hr.js\": 38787,\n\t\"./hu\": 2901,\n\t\"./hu.js\": 2901,\n\t\"./hy-am\": 59819,\n\t\"./hy-am.js\": 59819,\n\t\"./id\": 44074,\n\t\"./id.js\": 44074,\n\t\"./is\": 70715,\n\t\"./is.js\": 70715,\n\t\"./it\": 31746,\n\t\"./it-ch\": 77040,\n\t\"./it-ch.js\": 77040,\n\t\"./it.js\": 31746,\n\t\"./ja\": 3180,\n\t\"./ja.js\": 3180,\n\t\"./jv\": 34346,\n\t\"./jv.js\": 34346,\n\t\"./ka\": 65538,\n\t\"./ka.js\": 65538,\n\t\"./kk\": 79772,\n\t\"./kk.js\": 79772,\n\t\"./km\": 87905,\n\t\"./km.js\": 87905,\n\t\"./kn\": 79125,\n\t\"./kn.js\": 79125,\n\t\"./ko\": 69140,\n\t\"./ko.js\": 69140,\n\t\"./ku\": 2354,\n\t\"./ku.js\": 2354,\n\t\"./ky\": 63768,\n\t\"./ky.js\": 63768,\n\t\"./lb\": 14016,\n\t\"./lb.js\": 14016,\n\t\"./lo\": 83169,\n\t\"./lo.js\": 83169,\n\t\"./lt\": 62353,\n\t\"./lt.js\": 62353,\n\t\"./lv\": 83243,\n\t\"./lv.js\": 83243,\n\t\"./me\": 52338,\n\t\"./me.js\": 52338,\n\t\"./mi\": 35555,\n\t\"./mi.js\": 35555,\n\t\"./mk\": 85794,\n\t\"./mk.js\": 85794,\n\t\"./ml\": 53151,\n\t\"./ml.js\": 53151,\n\t\"./mn\": 46458,\n\t\"./mn.js\": 46458,\n\t\"./mr\": 69165,\n\t\"./mr.js\": 69165,\n\t\"./ms\": 8680,\n\t\"./ms-my\": 87477,\n\t\"./ms-my.js\": 87477,\n\t\"./ms.js\": 8680,\n\t\"./mt\": 79684,\n\t\"./mt.js\": 79684,\n\t\"./my\": 40285,\n\t\"./my.js\": 40285,\n\t\"./nb\": 45922,\n\t\"./nb.js\": 45922,\n\t\"./ne\": 29040,\n\t\"./ne.js\": 29040,\n\t\"./nl\": 5066,\n\t\"./nl-be\": 74460,\n\t\"./nl-be.js\": 74460,\n\t\"./nl.js\": 5066,\n\t\"./nn\": 53693,\n\t\"./nn.js\": 53693,\n\t\"./oc-lnc\": 88676,\n\t\"./oc-lnc.js\": 88676,\n\t\"./pa-in\": 92341,\n\t\"./pa-in.js\": 92341,\n\t\"./pl\": 57416,\n\t\"./pl.js\": 57416,\n\t\"./pt\": 84344,\n\t\"./pt-br\": 30113,\n\t\"./pt-br.js\": 30113,\n\t\"./pt.js\": 84344,\n\t\"./ro\": 72643,\n\t\"./ro.js\": 72643,\n\t\"./ru\": 61305,\n\t\"./ru.js\": 61305,\n\t\"./sd\": 96095,\n\t\"./sd.js\": 96095,\n\t\"./se\": 74486,\n\t\"./se.js\": 74486,\n\t\"./si\": 58742,\n\t\"./si.js\": 58742,\n\t\"./sk\": 96722,\n\t\"./sk.js\": 96722,\n\t\"./sl\": 3345,\n\t\"./sl.js\": 3345,\n\t\"./sq\": 52416,\n\t\"./sq.js\": 52416,\n\t\"./sr\": 39450,\n\t\"./sr-cyrl\": 50501,\n\t\"./sr-cyrl.js\": 50501,\n\t\"./sr.js\": 39450,\n\t\"./ss\": 32222,\n\t\"./ss.js\": 32222,\n\t\"./sv\": 9454,\n\t\"./sv.js\": 9454,\n\t\"./sw\": 19638,\n\t\"./sw.js\": 19638,\n\t\"./ta\": 96494,\n\t\"./ta.js\": 96494,\n\t\"./te\": 94435,\n\t\"./te.js\": 94435,\n\t\"./tet\": 25003,\n\t\"./tet.js\": 25003,\n\t\"./tg\": 13706,\n\t\"./tg.js\": 13706,\n\t\"./th\": 16025,\n\t\"./th.js\": 16025,\n\t\"./tk\": 59780,\n\t\"./tk.js\": 59780,\n\t\"./tl-ph\": 22068,\n\t\"./tl-ph.js\": 22068,\n\t\"./tlh\": 39167,\n\t\"./tlh.js\": 39167,\n\t\"./tr\": 32494,\n\t\"./tr.js\": 32494,\n\t\"./tzl\": 58707,\n\t\"./tzl.js\": 58707,\n\t\"./tzm\": 91296,\n\t\"./tzm-latn\": 34532,\n\t\"./tzm-latn.js\": 34532,\n\t\"./tzm.js\": 91296,\n\t\"./ug-cn\": 12086,\n\t\"./ug-cn.js\": 12086,\n\t\"./uk\": 85069,\n\t\"./uk.js\": 85069,\n\t\"./ur\": 29304,\n\t\"./ur.js\": 29304,\n\t\"./uz\": 95115,\n\t\"./uz-latn\": 97609,\n\t\"./uz-latn.js\": 97609,\n\t\"./uz.js\": 95115,\n\t\"./vi\": 34802,\n\t\"./vi.js\": 34802,\n\t\"./x-pseudo\": 65605,\n\t\"./x-pseudo.js\": 65605,\n\t\"./yo\": 88456,\n\t\"./yo.js\": 88456,\n\t\"./zh-cn\": 23272,\n\t\"./zh-cn.js\": 23272,\n\t\"./zh-hk\": 9402,\n\t\"./zh-hk.js\": 9402,\n\t\"./zh-mo\": 48101,\n\t\"./zh-mo.js\": 48101,\n\t\"./zh-tw\": 40262,\n\t\"./zh-tw.js\": 40262\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 46700;"],"x_google_ignoreList":[40]} \ No newline at end of file