@igo2/context 16.0.1 → 16.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/esm2022/lib/context-import-export/context-import-export/context-import-export.component.mjs +9 -133
  2. package/esm2022/lib/context-import-export/context-import-export.module.mjs +42 -43
  3. package/esm2022/lib/context-import-export/shared/context-export.service.mjs +9 -9
  4. package/esm2022/lib/context-import-export/shared/context-import.service.mjs +9 -9
  5. package/esm2022/lib/context-manager/context-edit/context-edit-binding.directive.mjs +16 -18
  6. package/esm2022/lib/context-manager/context-edit/context-edit.component.mjs +11 -25
  7. package/esm2022/lib/context-manager/context-form/context-form.component.mjs +19 -69
  8. package/esm2022/lib/context-manager/context-item/context-item.component.mjs +33 -204
  9. package/esm2022/lib/context-manager/context-list/context-list-binding.directive.mjs +50 -52
  10. package/esm2022/lib/context-manager/context-list/context-list.component.mjs +45 -276
  11. package/esm2022/lib/context-manager/context-manager.module.mjs +94 -95
  12. package/esm2022/lib/context-manager/context-permissions/context-permissions-binding.directive.mjs +20 -22
  13. package/esm2022/lib/context-manager/context-permissions/context-permissions.component.mjs +17 -209
  14. package/esm2022/lib/context-manager/shared/context.service.mjs +11 -11
  15. package/esm2022/lib/context-manager/shared/layer-context.directive.mjs +13 -13
  16. package/esm2022/lib/context-manager/shared/map-context.directive.mjs +9 -9
  17. package/esm2022/lib/context-map-button/bookmark-button/bookmark-button.component.mjs +11 -20
  18. package/esm2022/lib/context-map-button/bookmark-button/bookmark-dialog.component.mjs +7 -37
  19. package/esm2022/lib/context-map-button/context-map-button.module.mjs +63 -64
  20. package/esm2022/lib/context-map-button/poi-button/poi-button.component.mjs +11 -50
  21. package/esm2022/lib/context-map-button/poi-button/poi-dialog.component.mjs +7 -37
  22. package/esm2022/lib/context-map-button/poi-button/shared/poi.service.mjs +6 -6
  23. package/esm2022/lib/context-map-button/user-button/user-button.component.mjs +11 -52
  24. package/esm2022/lib/context-map-button/user-button/user-dialog.component.mjs +8 -47
  25. package/esm2022/lib/context.module.mjs +22 -23
  26. package/esm2022/lib/share-map/share-map/share-map-api.component.mjs +10 -103
  27. package/esm2022/lib/share-map/share-map/share-map-url.component.mjs +9 -195
  28. package/esm2022/lib/share-map/share-map/share-map.component.mjs +9 -42
  29. package/esm2022/lib/share-map/share-map.module.mjs +34 -35
  30. package/esm2022/lib/share-map/shared/share-map.service.mjs +11 -11
  31. package/esm2022/lib/sidenav/sidenav.component.mjs +19 -90
  32. package/esm2022/lib/sidenav/sidenav.module.mjs +32 -33
  33. package/fesm2022/igo2-context.mjs +645 -2010
  34. package/fesm2022/igo2-context.mjs.map +1 -1
  35. package/package.json +22 -22
  36. /package/{context-theme.scss → src/context-theme.scss} +0 -0
  37. /package/{lib → src/lib}/context-manager/context-item/context-item.theming.scss +0 -0
  38. /package/{lib → src/lib}/context-manager/context-list/context-list.theming.scss +0 -0
  39. /package/{lib → src/lib}/context-manager/context-manager.theming.scss +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"igo2-context.mjs","sources":["../../../packages/context/src/lib/context-manager/shared/context.enum.ts","../../../packages/context/src/lib/context-manager/shared/context.service.ts","../../../packages/context/src/lib/context-import-export/shared/context-export.errors.ts","../../../packages/context/src/lib/context-import-export/shared/context-export.service.ts","../../../packages/context/src/lib/context-import-export/shared/context-export.utils.ts","../../../packages/context/src/lib/context-import-export/shared/context-import.errors.ts","../../../packages/context/src/lib/context-import-export/shared/context-import.utils.ts","../../../packages/context/src/lib/context-import-export/shared/context-import.service.ts","../../../packages/context/src/lib/context-import-export/context-import-export/context-import-export.component.html","../../../packages/context/src/lib/context-import-export/context-import-export/context-import-export.component.ts","../../../packages/context/src/lib/context-import-export/context-import-export.module.ts","../../../packages/context/src/lib/context-map-button/bookmark-button/bookmark-dialog.component.ts","../../../packages/context/src/lib/context-map-button/bookmark-button/bookmark-dialog.component.html","../../../packages/context/src/lib/context-map-button/bookmark-button/bookmark-button.component.ts","../../../packages/context/src/lib/context-map-button/bookmark-button/bookmark-button.component.html","../../../packages/context/src/lib/context-map-button/poi-button/poi-dialog.component.ts","../../../packages/context/src/lib/context-map-button/poi-button/poi-dialog.component.html","../../../packages/context/src/lib/context-map-button/poi-button/shared/poi.service.ts","../../../packages/context/src/lib/context-map-button/poi-button/poi-button.component.html","../../../packages/context/src/lib/context-map-button/poi-button/poi-button.component.ts","../../../packages/context/src/lib/context-map-button/user-button/user-button.animation.ts","../../../packages/context/src/lib/context-map-button/user-button/user-dialog.component.ts","../../../packages/context/src/lib/context-map-button/user-button/user-dialog.component.html","../../../packages/context/src/lib/context-map-button/user-button/user-button.component.html","../../../packages/context/src/lib/context-map-button/user-button/user-button.component.ts","../../../packages/context/src/lib/context-map-button/context-map-button.module.ts","../../../packages/context/src/lib/context-manager/context-form/context-form.component.html","../../../packages/context/src/lib/context-manager/context-form/context-form.component.ts","../../../packages/context/src/lib/context-manager/context-edit/context-edit.component.html","../../../packages/context/src/lib/context-manager/context-edit/context-edit.component.ts","../../../packages/context/src/lib/context-manager/context-edit/context-edit-binding.directive.ts","../../../packages/context/src/lib/context-manager/context-item/context-item.component.html","../../../packages/context/src/lib/context-manager/context-item/context-item.component.ts","../../../packages/context/src/lib/context-manager/context-list/context-list.enum.ts","../../../packages/context/src/lib/context-manager/context-list/context-list.component.html","../../../packages/context/src/lib/context-manager/context-list/context-list.component.ts","../../../packages/context/src/lib/context-manager/context-list/context-list-binding.directive.ts","../../../packages/context/src/lib/context-manager/context-permissions/context-permissions.component.html","../../../packages/context/src/lib/context-manager/context-permissions/context-permissions.component.ts","../../../packages/context/src/lib/context-manager/context-permissions/context-permissions-binding.directive.ts","../../../packages/context/src/lib/context-manager/shared/layer-context.directive.ts","../../../packages/context/src/lib/context-manager/shared/map-context.directive.ts","../../../packages/context/src/lib/context-manager/context-manager.module.ts","../../../packages/context/src/lib/share-map/shared/share-map.service.ts","../../../packages/context/src/lib/share-map/share-map/share-map-api.component.html","../../../packages/context/src/lib/share-map/share-map/share-map-api.component.ts","../../../packages/context/src/lib/share-map/share-map/share-map-url.component.html","../../../packages/context/src/lib/share-map/share-map/share-map-url.component.ts","../../../packages/context/src/lib/share-map/share-map/share-map.component.html","../../../packages/context/src/lib/share-map/share-map/share-map.component.ts","../../../packages/context/src/lib/share-map/share-map.module.ts","../../../packages/context/src/lib/sidenav/sidenav.component.html","../../../packages/context/src/lib/sidenav/sidenav.component.ts","../../../packages/context/src/lib/sidenav/sidenav.module.ts","../../../packages/context/src/lib/context.module.ts","../../../packages/context/src/public_api.ts","../../../packages/context/src/igo2-context.ts"],"sourcesContent":["export enum TypePermission {\n null,\n read,\n write\n}\n\nexport enum Scope {\n public,\n protected,\n private\n}\n","import { HttpClient, HttpErrorResponse } from '@angular/common/http';\r\nimport { Injectable, Optional } from '@angular/core';\r\n\r\nimport { AuthService } from '@igo2/auth';\r\nimport { Tool } from '@igo2/common';\r\nimport {\r\n ConfigService,\r\n LanguageService,\r\n Message,\r\n MessageService,\r\n RouteService,\r\n StorageService\r\n} from '@igo2/core';\r\nimport type {\r\n AnyLayerOptions,\r\n IgoMap,\r\n Layer,\r\n VectorLayerOptions,\r\n VectorTileLayerOptions\r\n} from '@igo2/geo';\r\nimport { ExportService } from '@igo2/geo';\r\nimport { ObjectUtils, uuid } from '@igo2/utils';\r\n\r\nimport GeoJSON from 'ol/format/GeoJSON';\r\nimport { Geometry } from 'ol/geom';\r\nimport olPoint from 'ol/geom/Point';\r\nimport Cluster from 'ol/source/Cluster';\r\nimport olVectorSource from 'ol/source/Vector';\r\n\r\nimport { Feature } from 'ol';\r\nimport { BehaviorSubject, Observable, Subject, of } from 'rxjs';\r\nimport {\r\n catchError,\r\n debounceTime,\r\n first,\r\n map,\r\n mergeMap,\r\n skip,\r\n tap\r\n} from 'rxjs/operators';\r\n\r\nimport { TypePermission } from './context.enum';\r\nimport {\r\n Context,\r\n ContextMapView,\r\n ContextPermission,\r\n ContextProfils,\r\n ContextServiceOptions,\r\n ContextsList,\r\n DetailedContext,\r\n ExtraFeatures\r\n} from './context.interface';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ContextService {\r\n public context$ = new BehaviorSubject<DetailedContext>(undefined);\r\n public contexts$ = new BehaviorSubject<ContextsList>({ ours: [] });\r\n public defaultContextId$ = new BehaviorSubject<string>(undefined);\r\n public editedContext$ = new BehaviorSubject<DetailedContext>(undefined);\r\n public importedContext: Array<DetailedContext> = [];\r\n public toolsChanged$ = new Subject<DetailedContext>();\r\n private mapViewFromRoute: ContextMapView = {};\r\n private options: ContextServiceOptions;\r\n private baseUrl: string;\r\n\r\n // Until the ContextService is completely refactored, this is needed\r\n // to track the current tools\r\n private tools: Tool[];\r\n private toolbar: string[];\r\n\r\n get defaultContextUri(): string {\r\n return (\r\n (this.storageService.get('favorite.context.uri') as string) ||\r\n this._defaultContextUri ||\r\n this.options.defaultContextUri\r\n );\r\n }\r\n set defaultContextUri(uri: string) {\r\n this._defaultContextUri = uri;\r\n }\r\n private _defaultContextUri: string;\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private authService: AuthService,\r\n private languageService: LanguageService,\r\n private config: ConfigService,\r\n private messageService: MessageService,\r\n private storageService: StorageService,\r\n private exportService: ExportService,\r\n @Optional() private route: RouteService\r\n ) {\r\n this.options = Object.assign(\r\n {\r\n basePath: 'contexts',\r\n contextListFile: '_contexts.json',\r\n defaultContextUri: '_default'\r\n },\r\n this.config.getConfig('context')\r\n );\r\n\r\n this.baseUrl = this.options.url ?? '';\r\n\r\n this.readParamsFromRoute();\r\n\r\n if (this.authService.hasAuthService) {\r\n this.authService.logged$.subscribe((logged) => {\r\n if (logged) {\r\n this.contexts$.pipe(skip(1), first()).subscribe((c) => {\r\n this.handleContextsChange();\r\n });\r\n this.loadContexts();\r\n }\r\n });\r\n } else {\r\n this.loadContexts();\r\n this.handleContextsChange(false);\r\n }\r\n }\r\n\r\n get(permissions?: string[], hidden?: boolean): Observable<ContextsList> {\r\n let url = this.baseUrl + '/contexts';\r\n if (permissions && this.authService.authenticated) {\r\n url += '?permission=' + permissions.join();\r\n if (hidden) {\r\n url += '&hidden=true';\r\n }\r\n }\r\n return this.http.get<ContextsList>(url);\r\n }\r\n\r\n getById(id: string): Observable<Context> {\r\n const url = this.baseUrl + '/contexts/' + id;\r\n return this.http.get<Context>(url);\r\n }\r\n\r\n getDetails(id: string): Observable<DetailedContext> {\r\n const url = `${this.baseUrl}/contexts/${id}/details`;\r\n return this.http.get<DetailedContext>(url).pipe(\r\n catchError((res) => {\r\n this.handleError(res, id);\r\n throw res;\r\n })\r\n );\r\n }\r\n\r\n getDefault(): Observable<DetailedContext> {\r\n if (this.authService.authenticated) {\r\n const url = this.baseUrl + '/contexts/default';\r\n return this.http.get<DetailedContext>(url).pipe(\r\n tap((context) => {\r\n this.defaultContextId$.next(context.id);\r\n })\r\n );\r\n } else {\r\n const uri = this.storageService.get('favorite.context.uri') as string;\r\n this.defaultContextId$.next(uri);\r\n return this.getContextByUri(uri);\r\n }\r\n }\r\n\r\n getProfilByUser(): Observable<ContextProfils[]> {\r\n if (this.baseUrl) {\r\n const url = this.baseUrl + '/profils?';\r\n return this.http.get<ContextProfils[]>(url);\r\n }\r\n return of([]);\r\n }\r\n\r\n setDefault(id: string): Observable<any> {\r\n if (this.authService.authenticated) {\r\n const url = this.baseUrl + '/contexts/default';\r\n return this.http.post(url, { defaultContextId: id });\r\n } else {\r\n this.storageService.set('favorite.context.uri', id);\r\n return of(undefined);\r\n }\r\n }\r\n\r\n hideContext(id: string) {\r\n const url = this.baseUrl + '/contexts/' + id + '/hide';\r\n return this.http.post(url, {});\r\n }\r\n\r\n showContext(id: string) {\r\n const url = this.baseUrl + '/contexts/' + id + '/show';\r\n return this.http.post(url, {});\r\n }\r\n\r\n delete(id: string, imported = false): Observable<void> {\r\n const contexts: ContextsList = { ours: [] };\r\n Object.keys(this.contexts$.value).forEach(\r\n (key) =>\r\n (contexts[key] = this.contexts$.value[key].filter((c) => c.id !== id))\r\n );\r\n\r\n if (imported) {\r\n this.importedContext = this.importedContext.filter((c) => c.id !== id);\r\n return of(this.contexts$.next(contexts));\r\n }\r\n\r\n const url = this.baseUrl + '/contexts/' + id;\r\n return this.http.delete<void>(url).pipe(\r\n tap((res) => {\r\n this.contexts$.next(contexts);\r\n })\r\n );\r\n }\r\n\r\n create(context: DetailedContext): Observable<Context> {\r\n const url = this.baseUrl + '/contexts';\r\n return this.http.post<Context>(url, context).pipe(\r\n map((contextCreated) => {\r\n if (this.authService.authenticated) {\r\n contextCreated.permission = TypePermission[TypePermission.write];\r\n } else {\r\n contextCreated.permission = TypePermission[TypePermission.read];\r\n }\r\n this.contexts$.value.ours.unshift(contextCreated);\r\n this.contexts$.next(this.contexts$.value);\r\n return contextCreated;\r\n })\r\n );\r\n }\r\n\r\n clone(id: string, properties = {}): Observable<Context> {\r\n const url = this.baseUrl + '/contexts/' + id + '/clone';\r\n return this.http.post<Context>(url, properties).pipe(\r\n map((contextCloned) => {\r\n contextCloned.permission = TypePermission[TypePermission.write];\r\n this.contexts$.value.ours.unshift(contextCloned);\r\n this.contexts$.next(this.contexts$.value);\r\n return contextCloned;\r\n })\r\n );\r\n }\r\n\r\n update(id: string, context: Context): Observable<Context> {\r\n const url = this.baseUrl + '/contexts/' + id;\r\n return this.http.patch<Context>(url, context);\r\n }\r\n\r\n // =================================================================\r\n\r\n addToolAssociation(contextId: string, toolId: string): Observable<void> {\r\n const url = `${this.baseUrl}/contexts/${contextId}/tools`;\r\n const association = {\r\n toolId\r\n };\r\n return this.http.post<void>(url, association);\r\n }\r\n\r\n deleteToolAssociation(contextId: string, toolId: string): Observable<any> {\r\n const url = `${this.baseUrl}/contexts/${contextId}/tools/${toolId}`;\r\n return this.http.delete(url);\r\n }\r\n\r\n getPermissions(id: string): Observable<ContextPermission[]> {\r\n const url = this.baseUrl + '/contexts/' + id + '/permissions';\r\n return this.http.get<ContextPermission[]>(url);\r\n }\r\n\r\n addPermissionAssociation(\r\n contextId: string,\r\n profil: string,\r\n type: TypePermission\r\n ): Observable<ContextPermission[]> {\r\n const url = `${this.baseUrl}/contexts/${contextId}/permissions`;\r\n const association = {\r\n profil,\r\n typePermission: type\r\n };\r\n\r\n return this.http.post<ContextPermission[]>(url, association).pipe(\r\n catchError((res) => {\r\n this.handleError(res, undefined, true);\r\n throw [res]; // TODO Not sure about this.\r\n })\r\n );\r\n }\r\n\r\n deletePermissionAssociation(\r\n contextId: string,\r\n permissionId: string\r\n ): Observable<void> {\r\n const url = `${this.baseUrl}/contexts/${contextId}/permissions/${permissionId}`;\r\n return this.http.delete<void>(url);\r\n }\r\n\r\n // ======================================================================\r\n\r\n getLocalContexts(): Observable<ContextsList> {\r\n const url = this.getPath(this.options.contextListFile);\r\n return this.http.get<ContextsList>(url).pipe(\r\n map((res: any) => {\r\n return { ours: res };\r\n })\r\n );\r\n }\r\n\r\n getLocalContext(uri: string): Observable<DetailedContext> {\r\n const url = this.getPath(`${uri}.json`);\r\n return this.http.get<DetailedContext>(url).pipe(\r\n mergeMap((res) => {\r\n if (!res.base) {\r\n return of(res);\r\n }\r\n const urlBase = this.getPath(`${res.base}.json`);\r\n return this.http.get<DetailedContext>(urlBase).pipe(\r\n map((resBase: DetailedContext) => {\r\n const resMerge = res;\r\n resMerge.map = ObjectUtils.mergeDeep(resBase.map, res.map);\r\n resMerge.layers = (resBase.layers || [])\r\n .concat(res.layers || [])\r\n .reverse()\r\n .filter(\r\n (l, index, self) =>\r\n !l.id || self.findIndex((l2) => l2.id === l.id) === index\r\n )\r\n .reverse();\r\n resMerge.toolbar = res.toolbar || resBase.toolbar;\r\n resMerge.message = res.message || resBase.message;\r\n resMerge.messages = res.messages || resBase.messages;\r\n resMerge.tools = (res.tools || [])\r\n .concat(resBase.tools || [])\r\n .filter(\r\n (t, index, self) =>\r\n self.findIndex((t2) => t2.name === t.name) === index\r\n );\r\n return resMerge;\r\n }),\r\n catchError((err) => {\r\n this.handleError(err, uri);\r\n throw err;\r\n })\r\n );\r\n }),\r\n catchError((err2) => {\r\n this.handleError(err2, uri);\r\n throw err2;\r\n })\r\n );\r\n }\r\n\r\n loadContexts(permissions?: string[], hidden?: boolean) {\r\n let request;\r\n if (this.baseUrl) {\r\n request = this.get(permissions, hidden);\r\n } else {\r\n request = this.getLocalContexts();\r\n }\r\n request.subscribe((contexts) => {\r\n contexts.ours = this.importedContext.concat(contexts.ours);\r\n this.contexts$.next(contexts);\r\n });\r\n }\r\n\r\n loadDefaultContext() {\r\n const loadFct = (direct = false) => {\r\n if (!direct && this.baseUrl && this.authService.authenticated) {\r\n this.getDefault().subscribe(\r\n (_context: DetailedContext) => {\r\n this.defaultContextUri = _context.uri;\r\n this.addContextToList(_context);\r\n this.setContext(_context);\r\n },\r\n () => {\r\n this.defaultContextId$.next(undefined);\r\n this.loadContext(this.defaultContextUri);\r\n }\r\n );\r\n } else {\r\n this.loadContext(this.defaultContextUri);\r\n }\r\n };\r\n\r\n if (this.route && this.route.options.contextKey) {\r\n this.route.queryParams.pipe(debounceTime(100)).subscribe((params) => {\r\n const contextParam = params[this.route.options.contextKey as string];\r\n let direct = false;\r\n if (contextParam) {\r\n this.defaultContextUri = contextParam;\r\n direct = true;\r\n }\r\n loadFct(direct);\r\n });\r\n } else {\r\n loadFct();\r\n }\r\n }\r\n\r\n loadContext(uri: string) {\r\n const context = this.context$.value;\r\n\r\n if (context && context.uri === uri) {\r\n return;\r\n }\r\n\r\n this.getContextByUri(uri)\r\n .pipe(first())\r\n .subscribe(\r\n (_context: DetailedContext) => {\r\n this.addContextToList(_context);\r\n this.setContext(_context);\r\n },\r\n (err) => {\r\n if (uri !== this.options.defaultContextUri) {\r\n this.loadContext(this.options.defaultContextUri);\r\n }\r\n }\r\n );\r\n }\r\n\r\n setContext(context: DetailedContext) {\r\n this.handleContextMessage(context);\r\n const currentContext = this.context$.value;\r\n if (currentContext && context && context.id === currentContext.id) {\r\n if (context.map.view.keepCurrentView === undefined) {\r\n context.map.view.keepCurrentView = true;\r\n }\r\n this.context$.next(context);\r\n return;\r\n }\r\n\r\n if (!context.map) {\r\n context.map = { view: {} };\r\n }\r\n\r\n Object.assign(context.map.view, this.mapViewFromRoute);\r\n\r\n this.context$.next(context);\r\n }\r\n\r\n loadEditedContext(uri: string) {\r\n this.getContextByUri(uri).subscribe((_context: DetailedContext) => {\r\n this.setEditedContext(_context);\r\n });\r\n }\r\n\r\n setEditedContext(context: DetailedContext) {\r\n this.editedContext$.next(context);\r\n }\r\n\r\n getContextFromMap(igoMap: IgoMap, empty?: boolean): DetailedContext {\r\n const view = igoMap.ol.getView();\r\n const proj = view.getProjection().getCode();\r\n const center: any = new olPoint(view.getCenter()).transform(\r\n proj,\r\n 'EPSG:4326'\r\n );\r\n\r\n const context: DetailedContext = {\r\n uri: uuid(),\r\n title: '',\r\n scope: 'private',\r\n map: {\r\n view: {\r\n center: center.getCoordinates(),\r\n zoom: view.getZoom(),\r\n projection: proj,\r\n maxZoomOnExtent: igoMap.viewController.maxZoomOnExtent\r\n }\r\n },\r\n layers: [],\r\n tools: []\r\n };\r\n\r\n let layers = [];\r\n if (empty === true) {\r\n layers = igoMap.layers$\r\n .getValue()\r\n .filter(\r\n (lay) =>\r\n lay.baseLayer === true ||\r\n lay.options.id === 'searchPointerSummaryId'\r\n )\r\n .sort((a, b) => a.zIndex - b.zIndex);\r\n } else {\r\n layers = igoMap.layers$\r\n .getValue()\r\n .filter((lay) => !lay.id.includes('WfsWorkspaceTableDest'))\r\n .sort((a, b) => a.zIndex - b.zIndex);\r\n }\r\n\r\n let i = 0;\r\n for (const layer of layers) {\r\n const layerOptions: AnyLayerOptions = {\r\n title: layer.options.title,\r\n zIndex: ++i,\r\n visible: layer.visible,\r\n security: layer.options.security,\r\n opacity: layer.opacity\r\n };\r\n const opts = {\r\n id: layer.options.id ? String(layer.options.id) : undefined,\r\n layerOptions,\r\n sourceOptions: {\r\n type: layer.dataSource.options.type,\r\n params: layer.dataSource.options.params,\r\n url: layer.dataSource.options.url,\r\n queryable: layer.queryable\r\n }\r\n };\r\n if (opts.sourceOptions.type) {\r\n context.layers.push(opts);\r\n }\r\n }\r\n\r\n context.tools = this.tools.map((tool) => {\r\n return {\r\n id: String(tool.id),\r\n global: tool.global\r\n } as Tool;\r\n });\r\n\r\n return context;\r\n }\r\n\r\n getContextFromLayers(\r\n igoMap: IgoMap,\r\n layers: Layer[],\r\n name: string,\r\n keepCurrentView?: boolean\r\n ): DetailedContext {\r\n const currentContext = this.context$.getValue();\r\n const view = igoMap.ol.getView();\r\n const proj = view.getProjection().getCode();\r\n const center: any = new olPoint(view.getCenter()).transform(\r\n proj,\r\n 'EPSG:4326'\r\n );\r\n\r\n const context: DetailedContext = {\r\n uri: name,\r\n title: name,\r\n map: {\r\n view: {\r\n center: center.getCoordinates(),\r\n zoom: view.getZoom(),\r\n projection: proj,\r\n keepCurrentView\r\n }\r\n },\r\n layers: [],\r\n toolbar: [],\r\n tools: [],\r\n extraFeatures: []\r\n };\r\n\r\n const currentLayers = igoMap.layers$.getValue();\r\n context.layers = currentLayers\r\n .filter((l) => l.baseLayer)\r\n .map((l) => {\r\n return {\r\n baseLayer: true,\r\n sourceOptions: l.options.sourceOptions,\r\n title: l.options.title,\r\n visible: l.visible\r\n };\r\n });\r\n\r\n layers.forEach((layer) => {\r\n // Do not seem to work properly. layerFound is always undefined.\r\n const layerFound = currentContext.layers.find((contextLayer) => {\r\n const source = contextLayer.source;\r\n return source && layer.id === source.id && !contextLayer.baseLayer;\r\n });\r\n if (layerFound) {\r\n let layerFoundAs = layerFound as\r\n | VectorLayerOptions\r\n | VectorTileLayerOptions;\r\n let layerStyle = layerFoundAs.style;\r\n if (layerFoundAs.igoStyle?.styleByAttribute) {\r\n layerStyle = undefined;\r\n } else if (layerFoundAs.igoStyle?.clusterBaseStyle) {\r\n layerStyle = undefined;\r\n delete layerFound.sourceOptions[`source`];\r\n delete layerFound.sourceOptions[`format`];\r\n }\r\n const opts = {\r\n baseLayer: layerFound.baseLayer,\r\n title: layer.options.title,\r\n zIndex: layer.zIndex,\r\n igoStyle: {\r\n styleByAttribute: layerFoundAs.igoStyle?.styleByAttribute,\r\n clusterBaseStyle: layerFoundAs.igoStyle?.clusterBaseStyle\r\n },\r\n style: layerStyle,\r\n clusterParam: layerFound[`clusterParam`],\r\n visible: layer.visible,\r\n opacity: layer.opacity,\r\n sourceOptions: layerFound.sourceOptions\r\n };\r\n context.layers.push(opts);\r\n } else {\r\n if (!(layer.ol.getSource() instanceof olVectorSource)) {\r\n const catalogLayer = layer.options;\r\n catalogLayer.zIndex = layer.zIndex;\r\n (catalogLayer.visible = layer.visible),\r\n (catalogLayer.opacity = layer.opacity);\r\n delete catalogLayer.source;\r\n context.layers.push(catalogLayer);\r\n } else {\r\n const extraFeatures = this.getExtraFeatures(layer);\r\n extraFeatures.name = layer.options.title;\r\n extraFeatures.opacity = layer.opacity;\r\n extraFeatures.visible = layer.visible;\r\n context.extraFeatures.push(extraFeatures);\r\n }\r\n }\r\n });\r\n\r\n context.toolbar = this.toolbar;\r\n context.tools = this.tools;\r\n\r\n return context;\r\n }\r\n\r\n private getExtraFeatures(layer: Layer): ExtraFeatures {\r\n const writer = new GeoJSON();\r\n let olFeatures: Feature<Geometry>[];\r\n if (layer.ol.getSource() instanceof Cluster) {\r\n const clusterSource = layer.ol.getSource() as Cluster;\r\n olFeatures = clusterSource.getFeatures();\r\n olFeatures = (olFeatures as any).flatMap((cluster: any) =>\r\n cluster.get('features')\r\n );\r\n } else {\r\n const source = layer.ol.getSource() as olVectorSource;\r\n olFeatures = source.getFeatures();\r\n }\r\n const cleanedOlFeatures = this.exportService.generateFeature(\r\n olFeatures,\r\n 'GeoJSON',\r\n '_featureStore'\r\n );\r\n const features = writer.writeFeatures(cleanedOlFeatures, {\r\n dataProjection: 'EPSG:4326',\r\n featureProjection: 'EPSG:3857'\r\n });\r\n return JSON.parse(features);\r\n }\r\n\r\n setTools(tools: Tool[]) {\r\n this.tools = tools;\r\n }\r\n\r\n setToolbar(toolbar: string[]) {\r\n this.toolbar = toolbar;\r\n }\r\n\r\n private handleContextMessage(context: DetailedContext) {\r\n if (\r\n this.context$.value &&\r\n context.uri &&\r\n this.context$.value.uri !== context.uri\r\n ) {\r\n this.messageService.removeAllAreNotError();\r\n }\r\n\r\n context.messages = context.messages ? context.messages : [];\r\n context.messages.push(context.message);\r\n context.messages.map((message) => {\r\n if (message) {\r\n this.messageService.message(message as Message);\r\n }\r\n });\r\n }\r\n\r\n private getContextByUri(uri: string): Observable<DetailedContext> {\r\n if (this.baseUrl) {\r\n let contextToLoad;\r\n for (const key of Object.keys(this.contexts$.value)) {\r\n contextToLoad = this.contexts$.value[key].find((c) => {\r\n return c.uri === uri;\r\n });\r\n if (contextToLoad) {\r\n break;\r\n }\r\n }\r\n\r\n if (contextToLoad && contextToLoad.imported) {\r\n return of(contextToLoad);\r\n }\r\n\r\n // TODO : use always id or uri\r\n const id = contextToLoad ? contextToLoad.id : uri;\r\n return this.getDetails(id);\r\n }\r\n\r\n const importedContext = this.contexts$.value.ours.find((currentContext) => {\r\n return currentContext.uri === uri && currentContext.imported === true;\r\n });\r\n\r\n if (importedContext) {\r\n return of(importedContext);\r\n } else {\r\n return this.getLocalContext(uri);\r\n }\r\n }\r\n\r\n getContextLayers(igoMap: IgoMap) {\r\n const layers: Layer[] = [];\r\n const mapLayers = igoMap.layers$.getValue();\r\n mapLayers.forEach((layer) => {\r\n if (!layer.baseLayer && layer.options.id !== 'searchPointerSummaryId') {\r\n layers.push(layer);\r\n }\r\n });\r\n return layers;\r\n }\r\n\r\n private readParamsFromRoute() {\r\n if (!this.route) {\r\n return;\r\n }\r\n\r\n this.route.queryParams.subscribe((params) => {\r\n const centerKey = this.route.options.centerKey;\r\n if (centerKey && params[centerKey as string]) {\r\n const centerParams = params[centerKey as string];\r\n this.mapViewFromRoute.center = centerParams.split(',').map(Number);\r\n }\r\n\r\n const projectionKey = this.route.options.projectionKey;\r\n if (projectionKey && params[projectionKey as string]) {\r\n const projectionParam = params[projectionKey as string];\r\n this.mapViewFromRoute.projection = projectionParam;\r\n }\r\n\r\n const zoomKey = this.route.options.zoomKey;\r\n if (zoomKey && params[zoomKey as string]) {\r\n const zoomParam = params[zoomKey as string];\r\n this.mapViewFromRoute.zoom = Number(zoomParam);\r\n }\r\n });\r\n }\r\n\r\n private getPath(file: string) {\r\n const basePath = this.options.basePath.replace(/\\/$/, '');\r\n\r\n return `${basePath}/${file}`;\r\n }\r\n\r\n private handleError(\r\n error: HttpErrorResponse,\r\n uri: string,\r\n permissionError?: boolean\r\n ) {\r\n const context = this.contexts$.value.ours.find((obj) => obj.uri === uri);\r\n const titleContext = context ? context.title : uri;\r\n error.error.title = this.languageService.translate.instant(\r\n 'igo.context.contextManager.invalid.title'\r\n );\r\n\r\n error.error.message = this.languageService.translate.instant(\r\n 'igo.context.contextManager.invalid.text',\r\n { value: titleContext }\r\n );\r\n\r\n error.error.toDisplay = true;\r\n\r\n if (permissionError) {\r\n error.error.title = this.languageService.translate.instant(\r\n 'igo.context.contextManager.errors.addPermissionTitle'\r\n );\r\n error.error.message = this.languageService.translate.instant(\r\n 'igo.context.contextManager.errors.addPermission'\r\n );\r\n }\r\n this.messageService.error(\r\n 'igo.context.contextManager.errors.addPermission',\r\n 'igo.context.contextManager.errors.addPermissionTitle'\r\n );\r\n }\r\n\r\n private handleContextsChange(keepCurrentContext = true) {\r\n const context = this.context$.value;\r\n const editedContext = this.editedContext$.value;\r\n if (!context || context.uri === this.options.defaultContextUri) {\r\n keepCurrentContext = false;\r\n }\r\n if (!keepCurrentContext || !this.findContext(context)) {\r\n this.defaultContextUri = undefined;\r\n this.loadDefaultContext();\r\n } else {\r\n this.getContextByUri(context.uri)\r\n .pipe(first())\r\n .subscribe((newContext: DetailedContext) => {\r\n this.toolsChanged$.next(newContext);\r\n });\r\n\r\n if (this.baseUrl && this.authService.authenticated) {\r\n this.getDefault().subscribe();\r\n }\r\n }\r\n const editedFound = this.findContext(editedContext);\r\n if (!editedFound || editedFound.permission !== 'write') {\r\n this.setEditedContext(undefined);\r\n }\r\n }\r\n\r\n private addContextToList(context: Context) {\r\n const contextFound = this.findContext(context);\r\n if (!contextFound) {\r\n const contextSimplifie = {\r\n id: context.id,\r\n uri: context.uri,\r\n title: context.title,\r\n scope: context.scope,\r\n permission: TypePermission[TypePermission.read]\r\n };\r\n\r\n if (this.contexts$.value && this.contexts$.value.public) {\r\n this.contexts$.value.public.push(contextSimplifie);\r\n this.contexts$.next(this.contexts$.value);\r\n }\r\n }\r\n }\r\n\r\n private findContext(context: Context) {\r\n if (!context) {\r\n return false;\r\n }\r\n\r\n const contexts = this.contexts$.value;\r\n let found;\r\n for (const key of Object.keys(contexts)) {\r\n const value = contexts[key];\r\n found = value.find(\r\n (c) =>\r\n (context.id && c.id === context.id) ||\r\n (context.uri && c.uri === context.uri)\r\n );\r\n if (found) {\r\n break;\r\n }\r\n }\r\n\r\n return found;\r\n }\r\n}\r\n","export class ExportError extends Error {}\n\nexport class ExportInvalidFileError extends ExportError {\n constructor() {\n super('Invalid context');\n Object.setPrototypeOf(this, ExportInvalidFileError.prototype);\n }\n}\n\nexport class ExportNothingToExportError extends ExportError {\n constructor() {\n super('Nothing to export');\n Object.setPrototypeOf(this, ExportNothingToExportError.prototype);\n }\n}\n","import { Injectable } from '@angular/core';\r\n\r\nimport { downloadContent } from '@igo2/utils';\r\n\r\nimport { Observable, Observer } from 'rxjs';\r\n\r\nimport { DetailedContext } from '../../context-manager/shared/context.interface';\r\nimport { ExportNothingToExportError } from './context-export.errors';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ContextExportService {\r\n export(res: DetailedContext): Observable<void> {\r\n return this.exportAsync(res);\r\n }\r\n\r\n protected exportAsync(res: DetailedContext): Observable<void> {\r\n const doExport = (observer: Observer<void>) => {\r\n const nothingToExport = this.nothingToExport(res);\r\n if (nothingToExport === true) {\r\n observer.error(new ExportNothingToExportError());\r\n return;\r\n }\r\n const contextJSON = JSON.stringify(res);\r\n downloadContent(\r\n contextJSON,\r\n 'text/json;charset=utf-8',\r\n `${res.uri}.json`\r\n );\r\n observer.complete();\r\n };\r\n return new Observable(doExport);\r\n }\r\n\r\n protected nothingToExport(res: DetailedContext): boolean {\r\n if (res.map === undefined) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n}\r\n","import { MessageService } from '@igo2/core';\r\n\r\nimport { ExportNothingToExportError } from './context-export.errors';\r\n\r\nexport function handleFileExportError(\r\n error: Error,\r\n messageService: MessageService\r\n) {\r\n if (error instanceof ExportNothingToExportError) {\r\n this.handleNothingToExportError(messageService);\r\n return;\r\n }\r\n messageService.error(\r\n 'igo.context.contextImportExport.export.failed.text',\r\n 'igo.context.contextImportExport.export.failed.title'\r\n );\r\n}\r\n\r\nexport function handleFileExportSuccess(messageService: MessageService) {\r\n messageService.success(\r\n 'igo.context.contextImportExport.export.success.text',\r\n 'igo.context.contextImportExport.export.success.title'\r\n );\r\n}\r\n\r\nexport function handleNothingToExportError(messageService: MessageService) {\r\n messageService.error(\r\n 'igo.context.contextImportExport.export.nothing.text',\r\n 'igo.context.contextImportExport.export.nothing.title'\r\n );\r\n}\r\n","export class ImportError extends Error {}\r\n\r\nexport class ImportInvalidFileError extends ImportError {\r\n constructor() {\r\n super('Invalid file');\r\n Object.setPrototypeOf(this, ImportInvalidFileError.prototype);\r\n }\r\n}\r\n\r\nexport class ImportUnreadableFileError extends ImportError {\r\n constructor() {\r\n super('Failed to read file');\r\n Object.setPrototypeOf(this, ImportUnreadableFileError.prototype);\r\n }\r\n}\r\n\r\nexport class ImportNothingToImportError extends ImportError {\r\n constructor() {\r\n super('Nothing to import');\r\n Object.setPrototypeOf(this, ImportNothingToImportError.prototype);\r\n }\r\n}\r\n\r\nexport class ImportSizeError extends ImportError {\r\n constructor() {\r\n super('File is too large');\r\n Object.setPrototypeOf(this, ImportNothingToImportError.prototype);\r\n }\r\n}\r\n\r\nexport class ImportSRSError extends ImportError {\r\n constructor() {\r\n super('Invalid SRS definition');\r\n Object.setPrototypeOf(this, ImportNothingToImportError.prototype);\r\n }\r\n}\r\n","import { MessageService } from '@igo2/core';\r\nimport {\r\n ClusterDataSource,\r\n ClusterDataSourceOptions,\r\n ClusterParam,\r\n FeatureDataSource,\r\n FeatureDataSourceOptions,\r\n IgoMap,\r\n QueryableDataSourceOptions,\r\n StyleByAttribute,\r\n StyleListService,\r\n StyleService,\r\n VectorLayer,\r\n featureRandomStyle,\r\n featureRandomStyleFunction\r\n} from '@igo2/geo';\r\n\r\nimport OlFeature from 'ol/Feature';\r\nimport GeoJSON from 'ol/format/GeoJSON';\r\nimport type { default as OlGeometry } from 'ol/geom/Geometry';\r\n\r\nimport {\r\n DetailedContext,\r\n ExtraFeatures\r\n} from '../../context-manager/shared/context.interface';\r\nimport { ContextService } from '../../context-manager/shared/context.service';\r\n\r\nexport function handleFileImportSuccess(\r\n file: File,\r\n context: DetailedContext,\r\n messageService: MessageService,\r\n contextService: ContextService\r\n) {\r\n if (Object.keys(context).length <= 0) {\r\n handleNothingToImportError(file, messageService);\r\n return;\r\n }\r\n\r\n const contextTitle = computeLayerTitleFromFile(file);\r\n\r\n addContextToContextList(context, contextTitle, contextService);\r\n\r\n messageService.success(\r\n 'igo.context.contextImportExport.import.success.text',\r\n 'igo.context.contextImportExport.import.success.title',\r\n undefined,\r\n {\r\n value: contextTitle\r\n }\r\n );\r\n}\r\n\r\nexport function handleFileImportError(\r\n file: File,\r\n error: Error,\r\n messageService: MessageService,\r\n sizeMb?: number\r\n) {\r\n sizeMb = sizeMb ? sizeMb : 30;\r\n const errMapping = {\r\n 'Invalid file': handleInvalidFileImportError,\r\n 'File is too large': handleSizeFileImportError,\r\n 'Failed to read file': handleUnreadbleFileImportError\r\n };\r\n errMapping[error.message](file, error, messageService, sizeMb);\r\n}\r\n\r\nexport function handleInvalidFileImportError(\r\n file: File,\r\n error: Error,\r\n messageService: MessageService\r\n) {\r\n messageService.error(\r\n 'igo.context.contextImportExport.import.invalid.text',\r\n 'igo.context.contextImportExport.import.invalid.title',\r\n undefined,\r\n {\r\n value: file.name,\r\n mimeType: file.type\r\n }\r\n );\r\n}\r\n\r\nexport function handleSizeFileImportError(\r\n file: File,\r\n error: Error,\r\n messageService: MessageService,\r\n sizeMb: number\r\n) {\r\n messageService.error(\r\n 'igo.context.contextImportExport.import.tooLarge.text',\r\n 'igo.context.contextImportExport.import.tooLarge.title',\r\n undefined,\r\n {\r\n value: file.name,\r\n size: sizeMb\r\n }\r\n );\r\n}\r\n\r\nexport function handleUnreadbleFileImportError(\r\n file: File,\r\n error: Error,\r\n messageService: MessageService\r\n) {\r\n messageService.error(\r\n 'igo.context.contextImportExport.import.unreadable.text',\r\n 'igo.context.contextImportExport.import.unreadable.title',\r\n undefined,\r\n {\r\n value: file.name\r\n }\r\n );\r\n}\r\n\r\nexport function handleNothingToImportError(\r\n file: File,\r\n messageService: MessageService\r\n) {\r\n messageService.error(\r\n 'igo.context.contextImportExport.import.empty.text',\r\n 'igo.context.contextImportExport.import.empty.title',\r\n undefined,\r\n { value: file.name }\r\n );\r\n}\r\n\r\nexport function addContextToContextList(\r\n context: DetailedContext,\r\n contextTitle: string,\r\n contextService: ContextService\r\n) {\r\n context.title = contextTitle;\r\n context.imported = true;\r\n contextService.contexts$.value.ours.unshift(context);\r\n contextService.contexts$.next(contextService.contexts$.value);\r\n contextService.importedContext.unshift(context);\r\n contextService.loadContext(context.uri);\r\n}\r\n\r\nexport function getFileExtension(file: File): string {\r\n return file.name.split('.').pop().toLowerCase();\r\n}\r\n\r\nexport function computeLayerTitleFromFile(file: File): string {\r\n return file.name.substr(0, file.name.lastIndexOf('.'));\r\n}\r\n\r\nexport function addImportedFeaturesToMap(\r\n extraFeatures: ExtraFeatures,\r\n map: IgoMap\r\n): VectorLayer {\r\n const sourceOptions: FeatureDataSourceOptions & QueryableDataSourceOptions = {\r\n type: 'vector',\r\n queryable: true\r\n };\r\n\r\n const olFeatures = collectFeaturesFromExtraFeatures(extraFeatures);\r\n const source = new FeatureDataSource(sourceOptions);\r\n source.ol.addFeatures(olFeatures);\r\n\r\n let randomStyle;\r\n let editable: boolean = false;\r\n const featureKeys = olFeatures[0]?.getKeys() ?? [];\r\n if (featureKeys.includes('_style') || featureKeys.includes('_mapTitle')) {\r\n randomStyle = featureRandomStyleFunction();\r\n } else {\r\n randomStyle = featureRandomStyle();\r\n editable = true;\r\n }\r\n const layer = new VectorLayer({\r\n title: extraFeatures.name,\r\n isIgoInternalLayer: true,\r\n source,\r\n igoStyle: { editable },\r\n style: randomStyle,\r\n visible: extraFeatures.visible,\r\n opacity: extraFeatures.opacity\r\n });\r\n map.addLayer(layer);\r\n\r\n return layer;\r\n}\r\n\r\nexport function addImportedFeaturesStyledToMap(\r\n extraFeatures: ExtraFeatures,\r\n map: IgoMap,\r\n styleListService: StyleListService,\r\n styleService: StyleService\r\n): VectorLayer {\r\n let style;\r\n let distance: number;\r\n\r\n if (styleListService.getStyleList(extraFeatures.name + '.styleByAttribute')) {\r\n const styleByAttribute: StyleByAttribute = styleListService.getStyleList(\r\n extraFeatures.name + '.styleByAttribute'\r\n );\r\n\r\n style = (feature, resolution) => {\r\n return styleService.createStyleByAttribute(\r\n feature,\r\n styleByAttribute,\r\n resolution\r\n );\r\n };\r\n } else if (\r\n styleListService.getStyleList(extraFeatures.name + '.clusterStyle')\r\n ) {\r\n const clusterParam: ClusterParam = styleListService.getStyleList(\r\n extraFeatures.name + '.clusterParam'\r\n );\r\n distance = styleListService.getStyleList(extraFeatures.name + '.distance');\r\n\r\n style = (feature, resolution) => {\r\n const baseStyle = styleService.createStyle(\r\n styleListService.getStyleList(extraFeatures.name + '.clusterStyle'),\r\n feature,\r\n resolution\r\n );\r\n return styleService.createClusterStyle(\r\n feature,\r\n resolution,\r\n clusterParam,\r\n baseStyle\r\n );\r\n };\r\n } else if (styleListService.getStyleList(extraFeatures.name + '.style')) {\r\n style = (feature, resolution) =>\r\n styleService.createStyle(\r\n styleListService.getStyleList(extraFeatures.name + '.style'),\r\n feature,\r\n resolution\r\n );\r\n } else {\r\n style = (feature, resolution) =>\r\n styleService.createStyle(\r\n styleListService.getStyleList('default.style'),\r\n feature,\r\n resolution\r\n );\r\n }\r\n let source;\r\n const olFeatures = collectFeaturesFromExtraFeatures(extraFeatures);\r\n if (styleListService.getStyleList(extraFeatures.name + '.clusterStyle')) {\r\n const sourceOptions: ClusterDataSourceOptions & QueryableDataSourceOptions =\r\n {\r\n distance,\r\n type: 'cluster',\r\n queryable: true\r\n };\r\n source = new ClusterDataSource(sourceOptions);\r\n source.ol.source.addFeatures(olFeatures);\r\n } else {\r\n const sourceOptions: FeatureDataSourceOptions & QueryableDataSourceOptions =\r\n {\r\n type: 'vector',\r\n queryable: true\r\n };\r\n source = new FeatureDataSource(sourceOptions);\r\n source.ol.addFeatures(olFeatures);\r\n }\r\n\r\n const layer = new VectorLayer({\r\n title: extraFeatures.name,\r\n isIgoInternalLayer: true,\r\n source,\r\n style,\r\n opacity: extraFeatures.opacity,\r\n visible: extraFeatures.visible\r\n });\r\n map.addLayer(layer);\r\n\r\n return layer;\r\n}\r\n\r\nfunction collectFeaturesFromExtraFeatures(\r\n featureCollection: ExtraFeatures\r\n): OlFeature<OlGeometry>[] {\r\n const format = new GeoJSON();\r\n const features = format.readFeatures(featureCollection, {\r\n dataProjection: 'EPSG:4326',\r\n featureProjection: 'EPSG:3857'\r\n });\r\n return features;\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\nimport { ConfigService } from '@igo2/core';\r\n\r\nimport { Observable, Observer } from 'rxjs';\r\n\r\nimport { DetailedContext } from '../../context-manager/shared/context.interface';\r\nimport {\r\n ImportInvalidFileError,\r\n ImportSizeError,\r\n ImportUnreadableFileError\r\n} from './context-import.errors';\r\nimport { getFileExtension } from './context-import.utils';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ContextImportService {\r\n static allowedMimeTypes = ['application/json'];\r\n\r\n static allowedExtensions = 'json';\r\n\r\n private clientSideFileSizeMax: number;\r\n\r\n constructor(private config: ConfigService) {\r\n const configFileSizeMb = this.config.getConfig(\r\n 'importExport.clientSideFileSizeMaxMb'\r\n );\r\n this.clientSideFileSizeMax =\r\n (configFileSizeMb ? configFileSizeMb : 30) * Math.pow(1024, 2);\r\n }\r\n\r\n import(file: File): Observable<DetailedContext> {\r\n return this.importAsync(file);\r\n }\r\n\r\n private getFileImporter(\r\n file: File\r\n ): (\r\n file: File,\r\n observer: Observer<DetailedContext>,\r\n projectionIn: string,\r\n projectionOut: string\r\n ) => void {\r\n const extension = getFileExtension(file);\r\n const mimeType = file.type;\r\n const allowedMimeTypes = [...ContextImportService.allowedMimeTypes];\r\n const allowedExtensions = ContextImportService.allowedExtensions;\r\n\r\n if (\r\n allowedMimeTypes.indexOf(mimeType) < 0 &&\r\n allowedExtensions.indexOf(extension) < 0\r\n ) {\r\n return undefined;\r\n } else if (\r\n mimeType === 'application/json' ||\r\n extension === ContextImportService.allowedExtensions\r\n ) {\r\n return this.importFile;\r\n }\r\n return undefined;\r\n }\r\n\r\n private importAsync(file: File): Observable<DetailedContext> {\r\n const doImport = (observer: Observer<DetailedContext>) => {\r\n if (file.size >= this.clientSideFileSizeMax) {\r\n observer.error(new ImportSizeError());\r\n return;\r\n }\r\n const importer = this.getFileImporter(file);\r\n if (importer === undefined) {\r\n observer.error(new ImportInvalidFileError());\r\n return;\r\n }\r\n\r\n importer.call(this, file, observer);\r\n };\r\n\r\n return new Observable(doImport);\r\n }\r\n\r\n private importFile(file: File, observer: Observer<DetailedContext>) {\r\n const reader = new FileReader();\r\n\r\n reader.onload = (event: any) => {\r\n try {\r\n const context = this.parseContextFromFile(file, event.target.result);\r\n observer.next(context);\r\n } catch (e) {\r\n observer.error(new ImportUnreadableFileError());\r\n }\r\n\r\n observer.complete();\r\n };\r\n\r\n reader.onerror = (evt) => {\r\n observer.error(new ImportUnreadableFileError());\r\n };\r\n\r\n reader.readAsText(file, 'UTF-8');\r\n }\r\n\r\n private parseContextFromFile(file: File, data: string): DetailedContext {\r\n const context: DetailedContext = JSON.parse(data);\r\n return context;\r\n }\r\n}\r\n","<div class=\"import-export-toggle mat-typography\">\r\n <mat-button-toggle-group\r\n [value]=\"activeImportExport\"\r\n (change)=\"onImportExportChange($event)\"\r\n >\r\n <mat-button-toggle [value]=\"'import'\">\r\n {{ 'igo.geo.importExportForm.importTabTitle' | translate }}\r\n </mat-button-toggle>\r\n <mat-button-toggle [value]=\"'export'\">\r\n {{ 'igo.geo.importExportForm.exportTabTitle' | translate }}\r\n </mat-button-toggle>\r\n </mat-button-toggle-group>\r\n</div>\r\n\r\n<div *ngIf=\"activeImportExport === 'import'\">\r\n <form class=\"igo-form\">\r\n <div class=\"igo-form-button-group\">\r\n <button\r\n mat-raised-button\r\n type=\"button\"\r\n (click)=\"fileInput.click()\"\r\n [disabled]=\"loading$ | async\"\r\n >\r\n {{ 'igo.geo.importExportForm.importButton' | translate }}\r\n </button>\r\n <igo-spinner [shown]=\"loading$ | async\"></igo-spinner>\r\n <input\r\n #fileInput\r\n type=\"file\"\r\n [style.display]=\"'none'\"\r\n (click)=\"fileInput.value = null\"\r\n (change)=\"importFiles($event.target.files)\"\r\n />\r\n </div>\r\n </form>\r\n <section class=\"mat-typography\">\r\n <h4>{{ 'igo.geo.importExportForm.importClarifications' | translate }}</h4>\r\n <ul>\r\n <li>\r\n {{\r\n 'igo.geo.importExportForm.importSizeMax'\r\n | translate: { size: fileSizeMb }\r\n }}\r\n </li>\r\n </ul>\r\n </section>\r\n</div>\r\n\r\n<form\r\n class=\"igo-form\"\r\n *ngIf=\"activeImportExport === 'export'\"\r\n [formGroup]=\"form\"\r\n>\r\n <div class=\"igo-input-container\">\r\n <mat-form-field class=\"example-full-width\">\r\n <mat-label>{{\r\n 'igo.context.contextImportExport.export.exportContextName' | translate\r\n }}</mat-label>\r\n <input formControlName=\"name\" matInput [value]=\"\" />\r\n </mat-form-field>\r\n </div>\r\n <div class=\"igo-input-container\">\r\n <mat-form-field>\r\n <mat-label>{{\r\n 'igo.context.contextImportExport.export.exportPlaceHolder' | translate\r\n }}</mat-label>\r\n <mat-select formControlName=\"layers\" multiple>\r\n <mat-option [value]=\"1\" (click)=\"selectAll(e)\" #e>\r\n {{\r\n 'igo.context.contextImportExport.export.exportSelectAll' | translate\r\n }}\r\n </mat-option>\r\n <mat-divider></mat-divider>\r\n <mat-option\r\n *ngFor=\"let layer of userControlledLayerList\"\r\n [value]=\"layer\"\r\n >{{ layer.title }}</mat-option\r\n >\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"igo-form-button-group\">\r\n <button\r\n mat-raised-button\r\n type=\"button\"\r\n [disabled]=\"!form.valid || (loading$ | async)\"\r\n (click)=\"handleExportFormSubmit(form.value)\"\r\n >\r\n {{ 'igo.geo.importExportForm.exportButton' | translate }}\r\n </button>\r\n <igo-spinner [shown]=\"loading$ | async\"></igo-spinner>\r\n </div>\r\n</form>\r\n","import { Component, Input, OnDestroy, OnInit } from '@angular/core';\r\nimport {\r\n UntypedFormBuilder,\r\n UntypedFormGroup,\r\n Validators\r\n} from '@angular/forms';\r\n\r\nimport { ConfigService, MessageService } from '@igo2/core';\r\nimport { Layer, VectorLayer } from '@igo2/geo';\r\nimport type { IgoMap } from '@igo2/geo';\r\n\r\nimport { BehaviorSubject, Subscription } from 'rxjs';\r\nimport { take } from 'rxjs/operators';\r\n\r\nimport { DetailedContext } from '../../context-manager/shared/context.interface';\r\nimport { ContextService } from '../../context-manager/shared/context.service';\r\nimport { ContextExportService } from '../shared/context-export.service';\r\nimport { handleFileExportError } from '../shared/context-export.utils';\r\nimport { handleFileExportSuccess } from '../shared/context-export.utils';\r\nimport { ContextImportService } from '../shared/context-import.service';\r\nimport {\r\n handleFileImportError,\r\n handleFileImportSuccess\r\n} from '../shared/context-import.utils';\r\n\r\n@Component({\r\n selector: 'igo-context-import-export',\r\n templateUrl: './context-import-export.component.html',\r\n styleUrls: ['./context-import-export.component.scss']\r\n})\r\nexport class ContextImportExportComponent implements OnInit, OnDestroy {\r\n public form: UntypedFormGroup;\r\n public layers: VectorLayer[];\r\n public inputProj: string = 'EPSG:4326';\r\n public loading$ = new BehaviorSubject(false);\r\n public forceNaming = false;\r\n public layerList: Layer[];\r\n public userControlledLayerList: Layer[];\r\n public res: DetailedContext;\r\n private clientSideFileSizeMax: number;\r\n public fileSizeMb: number;\r\n public activeImportExport: string = 'import';\r\n\r\n private layers$$: Subscription;\r\n\r\n @Input() map: IgoMap;\r\n\r\n constructor(\r\n private contextImportService: ContextImportService,\r\n private contextExportService: ContextExportService,\r\n private messageService: MessageService,\r\n private formBuilder: UntypedFormBuilder,\r\n private config: ConfigService,\r\n private contextService: ContextService\r\n ) {\r\n this.buildForm();\r\n }\r\n\r\n ngOnInit() {\r\n const configFileSizeMb = this.config.getConfig(\r\n 'importExport.clientSideFileSizeMaxMb'\r\n );\r\n this.clientSideFileSizeMax =\r\n (configFileSizeMb ? configFileSizeMb : 30) * Math.pow(1024, 2);\r\n this.fileSizeMb = this.clientSideFileSizeMax / Math.pow(1024, 2);\r\n this.layers$$ = this.map.layers$.subscribe(() => {\r\n this.layerList = this.contextService.getContextLayers(this.map);\r\n this.userControlledLayerList = this.layerList.filter(\r\n (layer) => layer.showInLayerList\r\n );\r\n });\r\n }\r\n\r\n importFiles(files: File[]) {\r\n this.loading$.next(true);\r\n for (const file of files) {\r\n this.contextImportService\r\n .import(file)\r\n .pipe(take(1))\r\n .subscribe(\r\n (context: DetailedContext) => this.onFileImportSuccess(file, context),\r\n (error: Error) => this.onFileImportError(file, error),\r\n () => {\r\n this.loading$.next(false);\r\n }\r\n );\r\n }\r\n }\r\n\r\n handleExportFormSubmit(contextOptions) {\r\n this.loading$.next(true);\r\n this.res = this.contextService.getContextFromLayers(\r\n this.map,\r\n contextOptions.layers,\r\n contextOptions.name,\r\n false\r\n );\r\n this.res.imported = true;\r\n this.contextExportService\r\n .export(this.res)\r\n .pipe(take(1))\r\n .subscribe(\r\n () => {},\r\n (error: Error) => this.onFileExportError(error),\r\n () => {\r\n this.onFileExportSuccess();\r\n this.loading$.next(false);\r\n }\r\n );\r\n }\r\n\r\n private buildForm() {\r\n this.form = this.formBuilder.group({\r\n layers: ['', [Validators.required]],\r\n name: ['', [Validators.required]]\r\n });\r\n }\r\n\r\n private onFileImportSuccess(file: File, context: DetailedContext) {\r\n handleFileImportSuccess(\r\n file,\r\n context,\r\n this.messageService,\r\n this.contextService\r\n );\r\n }\r\n\r\n private onFileImportError(file: File, error: Error) {\r\n this.loading$.next(false);\r\n handleFileImportError(file, error, this.messageService, this.fileSizeMb);\r\n }\r\n\r\n private onFileExportError(error: Error) {\r\n this.loading$.next(false);\r\n handleFileExportError(error, this.messageService);\r\n }\r\n\r\n private onFileExportSuccess() {\r\n handleFileExportSuccess(this.messageService);\r\n }\r\n\r\n selectAll(e) {\r\n if (e._selected) {\r\n this.form.controls.layers.setValue(this.userControlledLayerList);\r\n e._selected = true;\r\n }\r\n if (e._selected === false) {\r\n this.form.controls.layers.setValue([]);\r\n }\r\n }\r\n\r\n onImportExportChange(event) {\r\n this.activeImportExport = event.value;\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.layers$$.unsubscribe();\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatOptionModule } from '@angular/material/core';\r\nimport { MatDividerModule } from '@angular/material/divider';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatTabsModule } from '@angular/material/tabs';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\n\r\nimport { IgoSpinnerModule } from '@igo2/common';\r\nimport { IgoLanguageModule } from '@igo2/core';\r\n\r\nimport { ContextImportExportComponent } from './context-import-export/context-import-export.component';\r\n\r\n@NgModule({\r\n imports: [\r\n FormsModule,\r\n ReactiveFormsModule,\r\n CommonModule,\r\n MatButtonModule,\r\n MatButtonToggleModule,\r\n MatDividerModule,\r\n MatTabsModule,\r\n MatSelectModule,\r\n MatOptionModule,\r\n MatFormFieldModule,\r\n MatInputModule,\r\n MatCheckboxModule,\r\n IgoLanguageModule,\r\n IgoSpinnerModule,\r\n MatTooltipModule\r\n ],\r\n exports: [ContextImportExportComponent],\r\n declarations: [ContextImportExportComponent]\r\n})\r\nexport class IgoContextImportExportModule {\r\n static forRoot(): ModuleWithProviders<IgoContextImportExportModule> {\r\n return {\r\n ngModule: IgoContextImportExportModule\r\n };\r\n }\r\n}\r\n","import { Component } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\n\n@Component({\n selector: 'igo-bookmark-dialog',\n templateUrl: './bookmark-dialog.component.html'\n})\nexport class BookmarkDialogComponent {\n public title: string;\n\n constructor(public dialogRef: MatDialogRef<BookmarkDialogComponent>) {}\n}\n","<h1 mat-dialog-title class=\"mat-typography\">\r\n {{ 'igo.context.bookmarkButton.dialog.title' | translate }}\r\n</h1>\r\n<div mat-dialog-content class=\"mat-typography\">\r\n <mat-form-field>\r\n <input\r\n matInput\r\n required\r\n autocomplete=\"off\"\r\n maxlength=\"128\"\r\n [placeholder]=\"\r\n 'igo.context.bookmarkButton.dialog.placeholder' | translate\r\n \"\r\n [(ngModel)]=\"title\"\r\n />\r\n </mat-form-field>\r\n</div>\r\n<div mat-dialog-actions>\r\n <button\r\n mat-button\r\n color=\"primary\"\r\n [disabled]=\"!title\"\r\n (click)=\"dialogRef.close(title)\"\r\n >\r\n {{ 'igo.common.confirmDialog.confirmBtn' | translate }}\r\n </button>\r\n <button mat-button (click)=\"dialogRef.close(false)\">\r\n {{ 'igo.common.confirmDialog.cancelBtn' | translate }}\r\n </button>\r\n</div>\r\n","import { Component, Input } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\n\r\nimport { MessageService } from '@igo2/core';\r\nimport type { IgoMap } from '@igo2/geo';\r\n\r\nimport { take } from 'rxjs/operators';\r\n\r\nimport { ContextService } from '../../context-manager/shared/context.service';\r\nimport { BookmarkDialogComponent } from './bookmark-dialog.component';\r\n\r\n@Component({\r\n selector: 'igo-bookmark-button',\r\n templateUrl: './bookmark-button.component.html',\r\n styleUrls: ['./bookmark-button.component.scss']\r\n})\r\nexport class BookmarkButtonComponent {\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 color(): string {\r\n return this._color;\r\n }\r\n set color(value: string) {\r\n this._color = value;\r\n }\r\n private _color: string;\r\n\r\n constructor(\r\n private dialog: MatDialog,\r\n private contextService: ContextService,\r\n private messageService: MessageService\r\n ) {}\r\n\r\n createContext() {\r\n this.dialog\r\n .open(BookmarkDialogComponent, { disableClose: false })\r\n .afterClosed()\r\n .pipe(take(1))\r\n .subscribe((title) => {\r\n if (title) {\r\n const context = this.contextService.getContextFromMap(this.map);\r\n context.title = title;\r\n this.contextService.create(context).subscribe(() => {\r\n this.messageService.success(\r\n 'igo.context.bookmarkButton.dialog.createMsg',\r\n 'igo.context.bookmarkButton.dialog.createTitle',\r\n undefined,\r\n { value: context.title }\r\n );\r\n this.contextService.loadContext(context.uri);\r\n });\r\n }\r\n });\r\n }\r\n}\r\n","<div class=\"igo-bookmark-button-container\">\r\n <button\r\n mat-icon-button\r\n [matTooltip]=\"'igo.context.bookmarkButton.create' | translate\"\r\n matTooltipPosition=\"above\"\r\n [color]=\"color\"\r\n (click)=\"createContext()\"\r\n >\r\n <mat-icon svgIcon=\"star\"></mat-icon>\r\n </button>\r\n</div>\r\n","import { Component } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\n\n@Component({\n selector: 'igo-poi-dialog',\n templateUrl: './poi-dialog.component.html'\n})\nexport class PoiDialogComponent {\n public title: string;\n\n constructor(public dialogRef: MatDialogRef<PoiDialogComponent>) {}\n}\n","<h1 mat-dialog-title class=\"mat-typography\">\r\n {{ 'igo.context.poiButton.dialog.title' | translate }}\r\n</h1>\r\n<div mat-dialog-content>\r\n <mat-form-field>\r\n <input\r\n matInput\r\n required\r\n autocomplete=\"off\"\r\n [placeholder]=\"'igo.context.poiButton.dialog.placeholder' | translate\"\r\n [(ngModel)]=\"title\"\r\n />\r\n </mat-form-field>\r\n</div>\r\n<div mat-dialog-actions>\r\n <button\r\n mat-button\r\n color=\"primary\"\r\n [disabled]=\"!title\"\r\n (click)=\"dialogRef.close(title)\"\r\n >\r\n {{ 'igo.common.confirmDialog.confirmBtn' | translate }}\r\n </button>\r\n <button mat-button (click)=\"dialogRef.close(false)\">\r\n {{ 'igo.common.confirmDialog.cancelBtn' | translate }}\r\n </button>\r\n</div>\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\n\r\nimport { ConfigService } from '@igo2/core';\r\n\r\nimport { EMPTY, Observable } from 'rxjs';\r\n\r\nimport { Poi } from './poi.interface';\r\n\r\n@Injectable()\r\nexport class PoiService {\r\n private baseUrl: string;\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private config: ConfigService\r\n ) {\r\n this.baseUrl = this.config.getConfig('context.url');\r\n }\r\n\r\n get(): Observable<Poi[]> {\r\n if (!this.baseUrl) {\r\n return EMPTY;\r\n }\r\n\r\n const url = this.baseUrl + '/pois';\r\n return this.http.get<Poi[]>(url);\r\n }\r\n\r\n delete(id: string): Observable<void> {\r\n const url = this.baseUrl + '/pois/' + id;\r\n return this.http.delete<void>(url);\r\n }\r\n\r\n create(context: Poi): Observable<Poi> {\r\n const url = this.baseUrl + '/pois';\r\n return this.http.post<Poi>(url, context);\r\n }\r\n}\r\n","<mat-select\r\n [placeholder]=\"'igo.context.poiButton.placeholder' | translate\"\r\n floatPlaceholder=\"never\"\r\n>\r\n <mat-option (click)=\"createPoi()\" class=\"poi-option\">\r\n <div class=\"titlePoi\">\r\n {{ 'igo.context.poiButton.create' | translate }}\r\n </div>\r\n <button\r\n igoStopPropagation\r\n mat-icon-button\r\n color=\"primary\"\r\n (click)=\"createPoi()\"\r\n >\r\n <mat-icon svgIcon=\"plus-circle\"></mat-icon>\r\n </button>\r\n </mat-option>\r\n <mat-divider></mat-divider>\r\n <mat-option\r\n *ngFor=\"let poi of pois\"\r\n class=\"poi-option\"\r\n [value]=\"poi.id\"\r\n (click)=\"zoomOnPoi(poi.id)\"\r\n >\r\n <div class=\"titlePoi\">{{ poi.title }}</div>\r\n <button\r\n mat-icon-button\r\n igoStopPropagation\r\n color=\"warn\"\r\n (click)=\"deletePoi(poi)\"\r\n >\r\n <mat-icon svgIcon=\"delete\"></mat-icon>\r\n </button>\r\n </mat-option>\r\n</mat-select>\r\n","import { Component, Input, OnDestroy, OnInit } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\n\r\nimport { AuthService } from '@igo2/auth';\r\nimport { ConfirmDialogService } from '@igo2/common';\r\nimport { LanguageService, MessageService } from '@igo2/core';\r\nimport type { IgoMap } from '@igo2/geo';\r\n\r\nimport * as oleasing from 'ol/easing';\r\nimport olPoint from 'ol/geom/Point';\r\nimport * as olproj from 'ol/proj';\r\n\r\nimport { Subscription } from 'rxjs';\r\nimport { take } from 'rxjs/operators';\r\n\r\nimport { PoiDialogComponent } from './poi-dialog.component';\r\nimport { Poi } from './shared/poi.interface';\r\nimport { PoiService } from './shared/poi.service';\r\n\r\n@Component({\r\n selector: 'igo-poi-button',\r\n templateUrl: './poi-button.component.html',\r\n styleUrls: ['./poi-button.component.scss']\r\n})\r\nexport class PoiButtonComponent implements OnInit, OnDestroy {\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 color(): string {\r\n return this._color;\r\n }\r\n set color(value: string) {\r\n this._color = value;\r\n }\r\n private _color: string;\r\n\r\n public pois: Poi[];\r\n private authenticate$$: Subscription;\r\n\r\n constructor(\r\n private dialog: MatDialog,\r\n private authService: AuthService,\r\n private poiService: PoiService,\r\n private messageService: MessageService,\r\n private languageService: LanguageService,\r\n private confirmDialogService: ConfirmDialogService\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.authenticate$$ = this.authService.authenticate$.subscribe((auth) => {\r\n if (auth) {\r\n this.getPois();\r\n }\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n this.authenticate$$.unsubscribe();\r\n }\r\n\r\n deletePoi(poi: Poi) {\r\n if (poi && poi.id) {\r\n this.confirmDialogService\r\n .open(\r\n this.languageService.translate.instant(\r\n 'igo.context.poiButton.dialog.confirmDelete'\r\n )\r\n )\r\n .subscribe((confirm) => {\r\n if (confirm) {\r\n this.poiService.delete(poi.id).subscribe(\r\n () => {\r\n this.messageService.info(\r\n 'igo.context.poiButton.dialog.deleteMsg',\r\n 'igo.context.poiButton.dialog.deleteTitle',\r\n undefined,\r\n { value: poi.title }\r\n );\r\n this.pois = this.pois.filter((p) => p.id !== poi.id);\r\n },\r\n (err) => {\r\n err.error.title = 'DELETE Pois';\r\n this.messageService.showError(err);\r\n }\r\n );\r\n }\r\n });\r\n }\r\n }\r\n\r\n private getPois() {\r\n this.poiService\r\n .get()\r\n .pipe(take(1))\r\n .subscribe(\r\n (rep) => {\r\n this.pois = rep;\r\n },\r\n (err) => {\r\n err.error.title = 'GET Pois';\r\n this.messageService.showError(err);\r\n }\r\n );\r\n }\r\n\r\n createPoi() {\r\n const view = this.map.ol.getView();\r\n const proj = view.getProjection().getCode();\r\n const center: any = new olPoint(view.getCenter()).transform(\r\n proj,\r\n 'EPSG:4326'\r\n );\r\n\r\n const poi: Poi = {\r\n title: '',\r\n x: center.getCoordinates()[0],\r\n y: center.getCoordinates()[1],\r\n zoom: view.getZoom()\r\n };\r\n\r\n this.dialog\r\n .open(PoiDialogComponent, { disableClose: false })\r\n .afterClosed()\r\n .subscribe((title) => {\r\n if (title) {\r\n poi.title = title;\r\n this.poiService.create(poi).subscribe(\r\n (newPoi) => {\r\n this.messageService.success(\r\n 'igo.context.poiButton.dialog.createMsg',\r\n 'igo.context.poiButton.dialog.createTitle',\r\n undefined,\r\n { value: poi.title }\r\n );\r\n poi.id = newPoi.id;\r\n this.pois.push(poi);\r\n },\r\n (err) => {\r\n err.error.title = 'POST Pois';\r\n this.messageService.showError(err);\r\n }\r\n );\r\n }\r\n });\r\n }\r\n\r\n zoomOnPoi(id) {\r\n const poi = this.pois.find((p) => p.id === id);\r\n\r\n const center = olproj.fromLonLat(\r\n [Number(poi.x), Number(poi.y)],\r\n this.map.projection\r\n );\r\n\r\n this.map.ol.getView().animate({\r\n center,\r\n zoom: poi.zoom,\r\n duration: 500,\r\n easing: oleasing.easeOut\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 userButtonSlideInOut(): AnimationTriggerMetadata {\r\n return trigger('userButtonState', [\r\n state(\r\n 'collapse',\r\n style({\r\n width: '0',\r\n overflow: 'hidden',\r\n display: 'none'\r\n })\r\n ),\r\n state(\r\n 'expand',\r\n style({\r\n overflow: 'hidden',\r\n display: 'display'\r\n })\r\n ),\r\n transition('collapse => expand', animate('200ms')),\r\n transition('expand => collapse', animate('200ms'))\r\n ]);\r\n}\r\n","import { Component } from '@angular/core';\r\nimport { MatDialogRef } from '@angular/material/dialog';\r\n\r\nimport { AuthService } from '@igo2/auth';\r\nimport { StorageService } from '@igo2/core';\r\n\r\n@Component({\r\n selector: 'igo-user-dialog',\r\n templateUrl: './user-dialog.component.html'\r\n})\r\nexport class UserDialogComponent {\r\n public user;\r\n public exp;\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef<UserDialogComponent>,\r\n private auth: AuthService,\r\n private storageService: StorageService\r\n ) {\r\n const decodeToken = this.auth.decodeToken();\r\n this.user = decodeToken.user;\r\n this.exp = new Date(decodeToken.exp * 1000).toLocaleString();\r\n }\r\n\r\n clearPreferences() {\r\n this.storageService.clear();\r\n }\r\n}\r\n","<h1 mat-dialog-title class=\"mat-typography\">\r\n {{ 'igo.context.userButton.infoTitle' | translate }}\r\n</h1>\r\n<div mat-dialog-content class=\"mat-typography\">\r\n <p>\r\n {{ 'igo.context.userButton.dialog.user' | translate }}: {{ user.sourceId }}\r\n </p>\r\n <p>\r\n {{ 'igo.context.userButton.dialog.email' | translate }}: {{ user.email }}\r\n </p>\r\n <p>{{ 'igo.context.userButton.dialog.expiration' | translate }}: {{ exp }}</p>\r\n <button mat-stroked-button color=\"primary\" (click)=\"clearPreferences()\">\r\n {{ 'igo.context.userButton.dialog.clearPreferences' | translate }}\r\n </button>\r\n <br />\r\n</div>\r\n<div mat-dialog-actions style=\"justify-content: center\">\r\n <button mat-raised-button color=\"primary\" (click)=\"dialogRef.close(false)\">\r\n OK\r\n </button>\r\n</div>\r\n","<div *ngIf=\"visible\" class=\"igo-user-button-container\">\r\n <div\r\n class=\"igo-user-button-more-container\"\r\n [@userButtonState]=\"expand ? 'expand' : 'collapse'\"\r\n >\r\n <igo-poi-button *ngIf=\"hasApi\" [color]=\"color\" [map]=\"map\"></igo-poi-button>\r\n\r\n <button\r\n mat-icon-button\r\n [matTooltip]=\"'igo.context.userButton.infoTitle' | translate\"\r\n matTooltipPosition=\"above\"\r\n [color]=\"color\"\r\n (click)=\"infoUser()\"\r\n >\r\n <mat-icon svgIcon=\"information-outline\"></mat-icon>\r\n </button>\r\n\r\n <button\r\n mat-icon-button\r\n [matTooltip]=\"'igo.context.userButton.logout' | translate\"\r\n matTooltipPosition=\"above\"\r\n [color]=\"color\"\r\n (click)=\"logout()\"\r\n >\r\n <mat-icon svgIcon=\"power\"></mat-icon>\r\n </button>\r\n </div>\r\n\r\n <button\r\n mat-icon-button\r\n [color]=\"auth.authenticated ? color : 'warn'\"\r\n (click)=\"accountClick()\"\r\n >\r\n <mat-icon svgIcon=\"account-box\"></mat-icon>\r\n </button>\r\n</div>\r\n","import { Component, Input } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\n\r\nimport { AuthService } from '@igo2/auth';\r\nimport { ConfigService } from '@igo2/core';\r\nimport type { IgoMap } from '@igo2/geo';\r\n\r\nimport { userButtonSlideInOut } from './user-button.animation';\r\nimport { UserDialogComponent } from './user-dialog.component';\r\n\r\n@Component({\r\n selector: 'igo-user-button',\r\n templateUrl: './user-button.component.html',\r\n styleUrls: ['./user-button.component.scss'],\r\n animations: [userButtonSlideInOut()]\r\n})\r\nexport class UserButtonComponent {\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 color(): string {\r\n return this._color;\r\n }\r\n set color(value: string) {\r\n this._color = value;\r\n }\r\n private _color: string;\r\n\r\n public expand = false;\r\n public visible = false;\r\n public hasApi = false;\r\n\r\n constructor(\r\n private dialog: MatDialog,\r\n private config: ConfigService,\r\n public auth: AuthService\r\n ) {\r\n this.visible = this.config.getConfig('auth') ? true : false;\r\n this.hasApi = this.config.getConfig('context.url') !== undefined;\r\n }\r\n\r\n accountClick() {\r\n if (this.auth.authenticated) {\r\n this.expand = !this.expand;\r\n } else {\r\n this.auth.logout();\r\n }\r\n }\r\n\r\n logout() {\r\n this.expand = false;\r\n this.auth.logout();\r\n }\r\n\r\n infoUser() {\r\n this.dialog.open(UserDialogComponent, { disableClose: false });\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatOptionModule } from '@angular/material/core';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { MatDividerModule } from '@angular/material/divider';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\n\r\nimport { IgoAuthModule } from '@igo2/auth';\r\nimport { IgoConfirmDialogModule, IgoStopPropagationModule } from '@igo2/common';\r\nimport { IgoLanguageModule } from '@igo2/core';\r\n\r\nimport { BookmarkButtonComponent } from './bookmark-button/bookmark-button.component';\r\nimport { BookmarkDialogComponent } from './bookmark-button/bookmark-dialog.component';\r\nimport { PoiButtonComponent } from './poi-button/poi-button.component';\r\nimport { PoiDialogComponent } from './poi-button/poi-dialog.component';\r\nimport { PoiService } from './poi-button/shared/poi.service';\r\nimport { UserButtonComponent } from './user-button/user-button.component';\r\nimport { UserDialogComponent } from './user-button/user-dialog.component';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n IgoAuthModule,\r\n IgoConfirmDialogModule,\r\n IgoLanguageModule,\r\n IgoStopPropagationModule,\r\n MatButtonModule,\r\n MatDialogModule,\r\n MatDividerModule,\r\n MatFormFieldModule,\r\n MatIconModule,\r\n MatInputModule,\r\n MatOptionModule,\r\n MatSelectModule,\r\n MatTooltipModule\r\n ],\r\n exports: [\r\n BookmarkButtonComponent,\r\n PoiButtonComponent,\r\n UserButtonComponent,\r\n BookmarkDialogComponent\r\n ],\r\n declarations: [\r\n BookmarkButtonComponent,\r\n BookmarkDialogComponent,\r\n PoiButtonComponent,\r\n PoiDialogComponent,\r\n UserButtonComponent,\r\n UserDialogComponent\r\n ],\r\n providers: [PoiService]\r\n})\r\nexport class IgoContextMapButtonModule {\r\n static forRoot(): ModuleWithProviders<IgoContextMapButtonModule> {\r\n return {\r\n ngModule: IgoContextMapButtonModule\r\n };\r\n }\r\n}\r\n","<form\r\n class=\"igo-form\"\r\n [formGroup]=\"form\"\r\n (ngSubmit)=\"handleFormSubmit(form.value)\"\r\n>\r\n <mat-form-field class=\"full-width\">\r\n <input\r\n matInput\r\n required\r\n maxlength=\"128\"\r\n [placeholder]=\"'igo.context.contextManager.form.title' | translate\"\r\n formControlName=\"title\"\r\n />\r\n <mat-error>\r\n {{ 'igo.context.contextManager.form.titleRequired' | translate }}\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n <mat-form-field id=\"uriInput\" class=\"full-width\">\r\n <span *ngIf=\"prefix\" class=\"prefix\">{{ prefix }}-</span>\r\n <span class=\"fieldWrapper\">\r\n <input\r\n matInput\r\n maxlength=\"64\"\r\n floatLabel=\"always\"\r\n [placeholder]=\"'igo.context.contextManager.form.uri' | translate\"\r\n formControlName=\"uri\"\r\n />\r\n </span>\r\n </mat-form-field>\r\n\r\n <button\r\n id=\"copyButton\"\r\n type=\"button\"\r\n mat-icon-button\r\n tooltip-position=\"below\"\r\n matTooltipShowDelay=\"500\"\r\n [matTooltip]=\"'igo.context.contextManager.form.copy' | translate\"\r\n color=\"primary\"\r\n (click)=\"copyTextToClipboard()\"\r\n >\r\n <mat-icon svgIcon=\"content-copy\"></mat-icon>\r\n </button>\r\n\r\n <div class=\"igo-form-button-group\">\r\n <button\r\n mat-raised-button\r\n type=\"submit\"\r\n [disabled]=\"!form.valid || disabled\"\r\n >\r\n {{ 'igo.context.contextManager.form.edit' | translate }}\r\n </button>\r\n </div>\r\n</form>\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms';\r\n\r\nimport { MessageService } from '@igo2/core';\r\nimport { Clipboard, ObjectUtils } from '@igo2/utils';\r\n\r\nimport { Context } from '../shared/context.interface';\r\n\r\n@Component({\r\n selector: 'igo-context-form',\r\n templateUrl: './context-form.component.html',\r\n styleUrls: ['./context-form.component.scss']\r\n})\r\nexport class ContextFormComponent implements OnInit {\r\n public form: UntypedFormGroup;\r\n public prefix: string;\r\n\r\n @Input()\r\n get btnSubmitText(): string {\r\n return this._btnSubmitText;\r\n }\r\n set btnSubmitText(value: string) {\r\n this._btnSubmitText = value;\r\n }\r\n private _btnSubmitText: string;\r\n\r\n @Input()\r\n get context(): Context {\r\n return this._context;\r\n }\r\n set context(value: Context) {\r\n this._context = value;\r\n this.buildForm();\r\n }\r\n private _context: Context;\r\n\r\n @Input()\r\n get disabled(): boolean {\r\n return this._disabled;\r\n }\r\n set disabled(value: boolean) {\r\n this._disabled = value;\r\n }\r\n private _disabled = false;\r\n\r\n // TODO: replace any by ContextOptions or Context\r\n @Output() submitForm: EventEmitter<any> = new EventEmitter();\r\n @Output() clone: EventEmitter<any> = new EventEmitter();\r\n @Output() delete: EventEmitter<any> = new EventEmitter();\r\n\r\n constructor(\r\n private formBuilder: UntypedFormBuilder,\r\n private messageService: MessageService\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.buildForm();\r\n }\r\n\r\n public handleFormSubmit(value) {\r\n let inputs = Object.assign({}, value);\r\n inputs = ObjectUtils.removeNull(inputs);\r\n inputs.uri = inputs.uri.replace(' ', '');\r\n if (inputs.uri) {\r\n inputs.uri = this.prefix + '-' + inputs.uri;\r\n } else {\r\n inputs.uri = this.prefix;\r\n }\r\n this.submitForm.emit(inputs);\r\n }\r\n\r\n public copyTextToClipboard() {\r\n const text = this.prefix + '-' + this.form.value.uri.replace(' ', '');\r\n const successful = Clipboard.copy(text);\r\n if (successful) {\r\n this.messageService.success(\r\n 'igo.context.contextManager.dialog.copyMsg',\r\n 'igo.context.contextManager.dialog.copyTitle'\r\n );\r\n }\r\n }\r\n\r\n private buildForm(): void {\r\n const context: any = this.context || {};\r\n\r\n const uriSplit = context.uri.split('-');\r\n this.prefix = uriSplit.shift();\r\n const uri = uriSplit.join('-');\r\n\r\n this.form = this.formBuilder.group({\r\n title: [context.title],\r\n uri: [uri || ' ']\r\n });\r\n }\r\n}\r\n","<igo-context-form\r\n *ngIf=\"context\"\r\n [btnSubmitText]=\"'igo.context.contextManager.save' | translate\"\r\n [context]=\"context\"\r\n (submitForm)=\"submitForm.emit($event)\"\r\n>\r\n</igo-context-form>\r\n","import {\r\n ChangeDetectorRef,\r\n Component,\r\n EventEmitter,\r\n Input,\r\n Output\r\n} from '@angular/core';\r\n\r\nimport { Context } from '../shared/context.interface';\r\n\r\n@Component({\r\n selector: 'igo-context-edit',\r\n templateUrl: './context-edit.component.html'\r\n})\r\nexport class ContextEditComponent {\r\n @Input()\r\n get context(): Context {\r\n return this._context;\r\n }\r\n set context(value: Context) {\r\n this._context = value;\r\n this.refresh();\r\n }\r\n private _context: Context;\r\n\r\n @Output() submitForm: EventEmitter<Context> = new EventEmitter();\r\n\r\n constructor(private cd: ChangeDetectorRef) {}\r\n\r\n refresh() {\r\n this.cd.detectChanges();\r\n }\r\n}\r\n","import {\r\n Directive,\r\n EventEmitter,\r\n HostListener,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n Self\r\n} from '@angular/core';\r\n\r\nimport { MessageService } from '@igo2/core';\r\n\r\nimport { Subscription } from 'rxjs';\r\n\r\nimport { Context, DetailedContext } from '../shared/context.interface';\r\nimport { ContextService } from '../shared/context.service';\r\nimport { ContextEditComponent } from './context-edit.component';\r\n\r\n@Directive({\r\n selector: '[igoContextEditBinding]'\r\n})\r\nexport class ContextEditBindingDirective implements OnInit, OnDestroy {\r\n private component: ContextEditComponent;\r\n private editedContext$$: Subscription;\r\n\r\n @Output() submitSuccessed: EventEmitter<Context> = new EventEmitter();\r\n\r\n @HostListener('submitForm', ['$event'])\r\n onEdit(context: Context) {\r\n const id = this.component.context.id;\r\n this.contextService.update(id, context).subscribe(() => {\r\n this.messageService.success(\r\n 'igo.context.contextManager.dialog.saveMsg',\r\n 'igo.context.contextManager.dialog.saveTitle',\r\n undefined,\r\n {\r\n value: context.title || this.component.context.title\r\n }\r\n );\r\n this.contextService.setEditedContext(undefined);\r\n this.submitSuccessed.emit(context);\r\n });\r\n }\r\n\r\n constructor(\r\n @Self() component: ContextEditComponent,\r\n private contextService: ContextService,\r\n private messageService: MessageService\r\n ) {\r\n this.component = component;\r\n }\r\n\r\n ngOnInit() {\r\n this.editedContext$$ = this.contextService.editedContext$.subscribe(\r\n (context) => this.handleEditedContextChange(context)\r\n );\r\n }\r\n\r\n ngOnDestroy() {\r\n this.editedContext$$.unsubscribe();\r\n }\r\n\r\n private handleEditedContextChange(context: DetailedContext) {\r\n this.component.context = context;\r\n }\r\n}\r\n","<mat-list-item\r\n class=\"mat-list-item\"\r\n [ngClass]=\"{ 'mat-list-item-light': hidden }\"\r\n>\r\n <button\r\n *ngIf=\"auth.authenticated\"\r\n matListItemAvatar\r\n mat-icon-button\r\n igoStopPropagation\r\n [matTooltip]=\"\r\n auth.authenticated\r\n ? ('igo.context.contextManager.favorite' | translate)\r\n : ''\r\n \"\r\n matTooltipShowDelay=\"500\"\r\n [color]=\"default ? 'primary' : 'default'\"\r\n (click)=\"favoriteClick(context)\"\r\n >\r\n <mat-icon\r\n *ngIf=\"!context.iconImage\"\r\n svgIcon=\"{{\r\n context.icon\r\n ? context.icon\r\n : context.scope === 'public'\r\n ? 'earth'\r\n : 'star'\r\n }}\"\r\n ></mat-icon>\r\n <img *ngIf=\"context.iconImage\" [src]=\"context.iconImage\" />\r\n </button>\r\n <button\r\n matListItemAvatar\r\n *ngIf=\"!auth.authenticated && showFavorite\"\r\n mat-icon-button\r\n igoStopPropagation\r\n [matTooltip]=\"'igo.context.contextManager.favorite' | translate\"\r\n matTooltipShowDelay=\"500\"\r\n [color]=\"default ? 'primary' : 'default'\"\r\n (click)=\"favoriteClick(context)\"\r\n >\r\n <mat-icon svgIcon=\"star\"></mat-icon>\r\n </button>\r\n <span matListItemTitle>{{ context.title }}</span>\r\n\r\n <div\r\n *ngIf=\"auth.authenticated\"\r\n matListItemMeta\r\n igoStopPropagation\r\n class=\"igo-actions-container\"\r\n >\r\n <button\r\n *ngIf=\"\r\n collapsed &&\r\n selected &&\r\n (context.permission === typePermission[typePermission.write] ||\r\n context.imported)\r\n \"\r\n class=\"save-button\"\r\n mat-icon-button\r\n [matTooltip]=\"'igo.context.contextManager.save' | translate\"\r\n matTooltipShowDelay=\"500\"\r\n [color]=\"color\"\r\n (click)=\"save.emit(context)\"\r\n >\r\n <mat-icon svgIcon=\"content-save\"></mat-icon>\r\n </button>\r\n\r\n <div #actions class=\"igo-actions-expand-container\">\r\n <button\r\n *ngIf=\"canShare && !context.imported\"\r\n mat-icon-button\r\n [matTooltip]=\"\r\n 'igo.context.contextManager.managePermissions' | translate\r\n \"\r\n matTooltipShowDelay=\"500\"\r\n [color]=\"color\"\r\n (click)=\"managePermissions.emit(context)\"\r\n >\r\n <mat-icon svgIcon=\"account-arrow-right\"></mat-icon>\r\n </button>\r\n\r\n <!--button\r\n mat-icon-button\r\n [matTooltip]=\"'igo.context.contextManager.manageTools' | translate\"\r\n [color]=\"color\"\r\n (click)=\"manageTools.emit(context)\">\r\n <mat-icon svgIcon=\"widgets\"></mat-icon>\r\n </button-->\r\n\r\n <button\r\n *ngIf=\"!context.imported\"\r\n class=\"clone-button\"\r\n mat-icon-button\r\n [matTooltip]=\"'igo.context.contextManager.clone' | translate\"\r\n matTooltipShowDelay=\"500\"\r\n [color]=\"color\"\r\n (click)=\"clone.emit(context)\"\r\n >\r\n <mat-icon svgIcon=\"content-copy\"></mat-icon>\r\n </button>\r\n\r\n <button\r\n *ngIf=\"\r\n context.permission === typePermission[typePermission.write] &&\r\n !context.imported\r\n \"\r\n class=\"edit-button\"\r\n mat-icon-button\r\n [color]=\"color\"\r\n [matTooltip]=\"'igo.context.contextManager.edit' | translate\"\r\n matTooltipShowDelay=\"500\"\r\n (click)=\"edit.emit(context)\"\r\n >\r\n <mat-icon svgIcon=\"pencil\"></mat-icon>\r\n </button>\r\n\r\n <button\r\n *ngIf=\"!context.hidden && !context.imported\"\r\n class=\"hide-button\"\r\n mat-icon-button\r\n [color]=\"color\"\r\n [matTooltip]=\"'igo.context.contextManager.hide' | translate\"\r\n matTooltipShowDelay=\"500\"\r\n (click)=\"hide.emit(context)\"\r\n >\r\n <mat-icon svgIcon=\"eye\"></mat-icon>\r\n </button>\r\n\r\n <button\r\n *ngIf=\"context.hidden && !context.imported\"\r\n class=\"hide-button\"\r\n mat-icon-button\r\n [color]=\"color\"\r\n [matTooltip]=\"'igo.context.contextManager.show' | translate\"\r\n matTooltipShowDelay=\"500\"\r\n (click)=\"show.emit(context)\"\r\n >\r\n <mat-icon svgIcon=\"eye-off\"></mat-icon>\r\n </button>\r\n\r\n <button\r\n *ngIf=\"\r\n context.permission === typePermission[typePermission.write] ||\r\n context.imported\r\n \"\r\n class=\"delete-button\"\r\n mat-icon-button\r\n color=\"warn\"\r\n [matTooltip]=\"'igo.context.contextManager.delete' | translate\"\r\n matTooltipShowDelay=\"500\"\r\n (click)=\"delete.emit(context)\"\r\n >\r\n <mat-icon svgIcon=\"delete\"></mat-icon>\r\n </button>\r\n </div>\r\n\r\n <button\r\n class=\"actions-button\"\r\n mat-icon-button\r\n igoCollapse\r\n [color]=\"color\"\r\n [target]=\"actions\"\r\n [collapsed]=\"collapsed\"\r\n (click)=\"collapsed = !collapsed\"\r\n >\r\n <mat-icon svgIcon=\"dots-horizontal\"></mat-icon>\r\n </button>\r\n </div>\r\n</mat-list-item>\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n EventEmitter,\r\n Input,\r\n Output\r\n} from '@angular/core';\r\n\r\nimport { AuthService } from '@igo2/auth';\r\nimport { StorageService } from '@igo2/core';\r\n\r\nimport { TypePermission } from '../shared/context.enum';\r\nimport { DetailedContext } from '../shared/context.interface';\r\n\r\n@Component({\r\n selector: 'igo-context-item',\r\n templateUrl: './context-item.component.html',\r\n styleUrls: ['./context-item.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class ContextItemComponent {\r\n public typePermission = TypePermission;\r\n public color = 'primary';\r\n public collapsed = true;\r\n\r\n @Input() showFavorite: boolean = true;\r\n @Input() context: DetailedContext;\r\n @Input() default: boolean;\r\n @Input() selected: boolean;\r\n\r\n @Output() edit = new EventEmitter<DetailedContext>();\r\n @Output() delete = new EventEmitter<DetailedContext>();\r\n @Output() save = new EventEmitter<DetailedContext>();\r\n @Output() clone = new EventEmitter<DetailedContext>();\r\n @Output() hide = new EventEmitter<DetailedContext>();\r\n @Output() show = new EventEmitter<DetailedContext>();\r\n @Output() favorite = new EventEmitter<DetailedContext>();\r\n @Output() managePermissions = new EventEmitter<DetailedContext>();\r\n @Output() manageTools = new EventEmitter<DetailedContext>();\r\n\r\n get hidden(): boolean {\r\n return this.context.hidden;\r\n }\r\n\r\n get canShare(): boolean {\r\n return this.storageService.get('canShare') === true;\r\n }\r\n\r\n constructor(\r\n public auth: AuthService,\r\n private storageService: StorageService\r\n ) {}\r\n\r\n favoriteClick(context: DetailedContext) {\r\n this.favorite.emit(context);\r\n }\r\n}\r\n","export enum ContextListControlsEnum {\n always = 'always',\n never = 'never',\n default = 'default'\n}\n","<igo-list [navigation]=\"true\">\r\n <div class=\"context-filter-container\">\r\n <mat-form-field *ngIf=\"showFilter()\" floatLabel=\"always\">\r\n <mat-label>{{\r\n 'igo.context.contextManager.filterPlaceHolder' | translate\r\n }}</mat-label>\r\n <input\r\n matInput\r\n type=\"text\"\r\n [placeholder]=\"\r\n 'igo.context.contextManager.filterPlaceHolder' | translate\r\n \"\r\n [(ngModel)]=\"term\"\r\n />\r\n <button\r\n mat-icon-button\r\n matSuffix\r\n class=\"clear-button\"\r\n *ngIf=\"term.length\"\r\n aria-label=\"Clear\"\r\n color=\"warn\"\r\n (click)=\"clearFilter()\"\r\n >\r\n <mat-icon svgIcon=\"close\"></mat-icon>\r\n </button>\r\n </mat-form-field>\r\n\r\n <div class=\"actions-container\">\r\n <button\r\n *ngIf=\"!sortedAlpha\"\r\n class=\"sort-alpha\"\r\n mat-icon-button\r\n [matTooltip]=\"\r\n 'igo.context.contextManager.sortAlphabetically' | translate\r\n \"\r\n matTooltipShowDelay=\"500\"\r\n (click)=\"toggleSort(true)\"\r\n >\r\n <mat-icon\r\n color=\"primary\"\r\n svgIcon=\"sort-alphabetical-variant\"\r\n ></mat-icon>\r\n </button>\r\n <button\r\n *ngIf=\"sortedAlpha\"\r\n class=\"sort-alpha\"\r\n mat-icon-button\r\n [matTooltip]=\"'igo.context.contextManager.sortContextOrder' | translate\"\r\n matTooltipShowDelay=\"500\"\r\n (click)=\"toggleSort(false)\"\r\n >\r\n <mat-icon color=\"warn\" svgIcon=\"sort-variant-remove\"></mat-icon>\r\n </button>\r\n\r\n <igo-actionbar\r\n *ngIf=\"auth.authenticated && contextConfigs\"\r\n class=\"add-context-button\"\r\n [iconColor]=\"color\"\r\n [store]=\"actionStore\"\r\n [withIcon]=\"true\"\r\n icon=\"plus\"\r\n [withTitle]=\"actionbarMode === 'overlay'\"\r\n [horizontal]=\"false\"\r\n [mode]=\"actionbarMode\"\r\n >\r\n </igo-actionbar>\r\n\r\n <button\r\n *ngIf=\"auth.authenticated && contextConfigs\"\r\n class=\"users-filter\"\r\n mat-icon-button\r\n [matTooltip]=\"'igo.context.contextManager.filterUser' | translate\"\r\n matTooltipShowDelay=\"500\"\r\n [matMenuTriggerFor]=\"accountMenu\"\r\n >\r\n <mat-icon color=\"primary\" svgIcon=\"filter-menu\"></mat-icon>\r\n </button>\r\n <mat-menu #accountMenu=\"matMenu\">\r\n <ng-container *ngFor=\"let user of users\">\r\n <button\r\n *ngIf=\"!user.childs; else withSubMenu\"\r\n mat-menu-item\r\n class=\"profil-menu\"\r\n >\r\n <mat-checkbox\r\n [checked]=\"getPermission(user).checked\"\r\n [indeterminate]=\"getPermission(user).indeterminate\"\r\n (click)=\"$event.stopPropagation()\"\r\n (change)=\"handleToggleCategory(user)\"\r\n >\r\n </mat-checkbox>\r\n <span>{{ user.title }}</span>\r\n </button>\r\n <ng-template #withSubMenu>\r\n <button\r\n mat-menu-item\r\n [matMenuTriggerFor]=\"subAccountMenu\"\r\n class=\"profil-menu\"\r\n >\r\n <mat-checkbox\r\n [checked]=\"getPermission(user).checked\"\r\n [indeterminate]=\"getPermission(user).indeterminate\"\r\n (click)=\"$event.stopPropagation()\"\r\n (change)=\"handleToggleCategory(user)\"\r\n >\r\n </mat-checkbox>\r\n <span>{{ user.title }}</span>\r\n </button>\r\n\r\n <mat-menu #subAccountMenu=\"matMenu\">\r\n <button\r\n mat-menu-item\r\n *ngFor=\"let child of user.childs\"\r\n class=\"profil-menu\"\r\n >\r\n <mat-checkbox\r\n [checked]=\"getPermission(child).checked\"\r\n (click)=\"$event.stopPropagation()\"\r\n (change)=\"handleToggleCategory(child, user)\"\r\n >\r\n {{ child.title }}\r\n </mat-checkbox>\r\n </button>\r\n </mat-menu>\r\n </ng-template>\r\n </ng-container>\r\n\r\n <button mat-menu-item class=\"profil-menu\">\r\n <mat-checkbox\r\n [checked]=\"showHidden\"\r\n (click)=\"$event.stopPropagation()\"\r\n (change)=\"showHiddenContexts.emit()\"\r\n >\r\n </mat-checkbox>\r\n <span>\r\n {{ 'igo.context.contextManager.showHidden' | translate }}\r\n </span>\r\n </button>\r\n </mat-menu>\r\n </div>\r\n </div>\r\n\r\n <ng-template ngFor let-groupContexts [ngForOf]=\"contexts$ | async | keyvalue\">\r\n <igo-collapsible\r\n *ngIf=\"groupContexts.value.length && auth.authenticated\"\r\n [title]=\"titleMapping[groupContexts.key] | translate\"\r\n [collapsed]=\"collapsed[titleMapping[groupContexts.key]]\"\r\n (toggle)=\"collapsed[titleMapping[groupContexts.key]] = $event\"\r\n >\r\n <ng-template ngFor let-context [ngForOf]=\"groupContexts.value\">\r\n <igo-context-item\r\n igoListItem\r\n color=\"accent\"\r\n [selected]=\"selectedContext && selectedContext.uri === context.uri\"\r\n [context]=\"context\"\r\n [default]=\"\r\n context.id &&\r\n this.defaultContextId &&\r\n this.defaultContextId === context.id\r\n \"\r\n (edit)=\"edit.emit(context)\"\r\n (delete)=\"delete.emit(context)\"\r\n (clone)=\"clone.emit(context)\"\r\n (save)=\"save.emit(context)\"\r\n (hide)=\"hideContext(context)\"\r\n (show)=\"showContext(context)\"\r\n (favorite)=\"favorite.emit(context)\"\r\n (manageTools)=\"manageTools.emit(context)\"\r\n (managePermissions)=\"managePermissions.emit(context)\"\r\n (select)=\"select.emit(context)\"\r\n (unselect)=\"unselect.emit(context)\"\r\n >\r\n </igo-context-item>\r\n </ng-template>\r\n </igo-collapsible>\r\n\r\n <ng-template\r\n *ngIf=\"groupContexts.value.length && !auth.authenticated\"\r\n ngFor\r\n let-context\r\n [ngForOf]=\"groupContexts.value\"\r\n >\r\n <igo-context-item\r\n igoListItem\r\n color=\"accent\"\r\n [showFavorite]=\"\r\n configService.getConfig('favoriteContext4NonAuthenticated')\r\n \"\r\n [selected]=\"selectedContext && selectedContext.uri === context.uri\"\r\n [context]=\"context\"\r\n [default]=\"\r\n contextConfigs\r\n ? defaultContextId === context.id\r\n : defaultContextId === context.uri\r\n \"\r\n (favorite)=\"favorite.emit(context)\"\r\n (select)=\"select.emit(context)\"\r\n (unselect)=\"unselect.emit(context)\"\r\n >\r\n </igo-context-item>\r\n </ng-template>\r\n </ng-template>\r\n\r\n <div *ngIf=\"isEmpty\" class=\"no-result\">\r\n {{ 'igo.context.contextManager.noResult' | translate }}\r\n </div>\r\n</igo-list>\r\n","import {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n Output\r\n} from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\n\r\nimport { AuthService } from '@igo2/auth';\r\nimport { ActionStore, ActionbarMode } from '@igo2/common';\r\nimport { ConfigService, LanguageService, StorageService } from '@igo2/core';\r\nimport type { IgoMap } from '@igo2/geo';\r\n\r\nimport { BehaviorSubject, ReplaySubject, Subscription, timer } from 'rxjs';\r\nimport { take } from 'rxjs/operators';\r\nimport { debounce } from 'rxjs/operators';\r\n\r\nimport { BookmarkDialogComponent } from '../../context-map-button/bookmark-button/bookmark-dialog.component';\r\nimport {\r\n ContextProfils,\r\n ContextServiceOptions,\r\n ContextUserPermission,\r\n ContextsList,\r\n DetailedContext\r\n} from '../shared/context.interface';\r\nimport { ContextListControlsEnum } from './context-list.enum';\r\n\r\n@Component({\r\n selector: 'igo-context-list',\r\n templateUrl: './context-list.component.html',\r\n styleUrls: ['./context-list.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class ContextListComponent implements OnInit, OnDestroy {\r\n public contextConfigs: ContextServiceOptions;\r\n private contextsInitial: ContextsList = { ours: [] };\r\n contexts$: BehaviorSubject<ContextsList> = new BehaviorSubject(\r\n this.contextsInitial\r\n );\r\n\r\n change$ = new ReplaySubject<void>(1);\r\n\r\n private change$$: Subscription;\r\n\r\n @Input()\r\n get contexts(): ContextsList {\r\n return this._contexts;\r\n }\r\n set contexts(value: ContextsList) {\r\n this._contexts = value;\r\n this.next();\r\n }\r\n private _contexts: ContextsList = { ours: [] };\r\n\r\n @Input()\r\n get selectedContext(): DetailedContext {\r\n return this._selectedContext;\r\n }\r\n set selectedContext(value: DetailedContext) {\r\n this._selectedContext = value;\r\n this.cdRef.detectChanges();\r\n }\r\n private _selectedContext: DetailedContext;\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 defaultContextId(): string {\r\n return this.contextConfigs\r\n ? this._defaultContextId\r\n : (this.storageService.get('favorite.context.uri') as string) ||\r\n this._defaultContextId;\r\n }\r\n set defaultContextId(value: string) {\r\n this._defaultContextId = value;\r\n }\r\n private _defaultContextId: string;\r\n\r\n public collapsed: { contextScope }[] = [];\r\n\r\n @Output() select = new EventEmitter<DetailedContext>();\r\n @Output() unselect = new EventEmitter<DetailedContext>();\r\n @Output() edit = new EventEmitter<DetailedContext>();\r\n @Output() delete = new EventEmitter<DetailedContext>();\r\n @Output() save = new EventEmitter<DetailedContext>();\r\n @Output() clone = new EventEmitter<DetailedContext>();\r\n @Output() create = new EventEmitter<{ title: string; empty: boolean }>();\r\n @Output() hide = new EventEmitter<DetailedContext>();\r\n @Output() show = new EventEmitter<DetailedContext>();\r\n @Output() showHiddenContexts = new EventEmitter<boolean>();\r\n @Output() favorite = new EventEmitter<DetailedContext>();\r\n @Output() managePermissions = new EventEmitter<DetailedContext>();\r\n @Output() manageTools = new EventEmitter<DetailedContext>();\r\n @Output() filterPermissionsChanged = new EventEmitter<\r\n ContextUserPermission[]\r\n >();\r\n\r\n public titleMapping = {\r\n ours: 'igo.context.contextManager.ourContexts',\r\n shared: 'igo.context.contextManager.sharedContexts',\r\n public: 'igo.context.contextManager.publicContexts'\r\n };\r\n\r\n public users: ContextProfils[];\r\n public permissions: ContextUserPermission[] = [];\r\n\r\n public actionStore = new ActionStore([]);\r\n public actionbarMode = ActionbarMode.Overlay;\r\n\r\n public color = 'primary';\r\n\r\n public showHidden = false;\r\n\r\n /**\r\n * Context filter term\r\n */\r\n @Input()\r\n set term(value: string) {\r\n this._term = value;\r\n this.next();\r\n }\r\n get term(): string {\r\n return this._term;\r\n }\r\n public _term: string = '';\r\n\r\n get sortedAlpha(): boolean {\r\n return this._sortedAlpha;\r\n }\r\n set sortedAlpha(value: boolean) {\r\n this._sortedAlpha = value;\r\n this.next();\r\n }\r\n private _sortedAlpha: boolean = undefined;\r\n\r\n public showContextFilter = ContextListControlsEnum.always;\r\n\r\n public thresholdToFilter = 5;\r\n\r\n get isEmpty(): boolean {\r\n return (\r\n !this.contexts.ours.length &&\r\n !this.contexts.public?.length &&\r\n !this.contexts.shared?.length\r\n );\r\n }\r\n\r\n constructor(\r\n private cdRef: ChangeDetectorRef,\r\n public configService: ConfigService,\r\n public auth: AuthService,\r\n private dialog: MatDialog,\r\n private languageService: LanguageService,\r\n private storageService: StorageService\r\n ) {\r\n this.contextConfigs = this.configService.getConfig('context');\r\n }\r\n\r\n ngOnInit() {\r\n this.change$$ = this.change$\r\n .pipe(debounce(() => timer(50)))\r\n .subscribe(() => {\r\n this.contexts$.next(this.filterContextsList(this.contexts));\r\n });\r\n\r\n this.actionStore.load([\r\n {\r\n id: 'emptyContext',\r\n title: this.languageService.translate.instant(\r\n 'igo.context.contextManager.emptyContext'\r\n ),\r\n icon: 'map-outline',\r\n tooltip: this.languageService.translate.instant(\r\n 'igo.context.contextManager.emptyContextTooltip'\r\n ),\r\n handler: () => {\r\n this.createContext(true);\r\n }\r\n },\r\n {\r\n id: 'contextFromMap',\r\n title: this.languageService.translate.instant(\r\n 'igo.context.contextManager.contextMap'\r\n ),\r\n icon: 'map-check',\r\n tooltip: this.languageService.translate.instant(\r\n 'igo.context.contextManager.contextMapTooltip'\r\n ),\r\n handler: () => {\r\n this.createContext(false);\r\n }\r\n }\r\n ]);\r\n }\r\n\r\n private next() {\r\n this.change$.next();\r\n }\r\n\r\n private filterContextsList(contexts: ContextsList): ContextsList {\r\n if (this.term === '') {\r\n if (this.sortedAlpha) {\r\n contexts = this.sortContextsList(contexts);\r\n }\r\n return contexts;\r\n } else {\r\n const ours = contexts.ours.filter((context) => {\r\n const filterNormalized = this.term\r\n .toLowerCase()\r\n .normalize('NFD')\r\n .replace(/[\\u0300-\\u036f]/g, '');\r\n const contextTitleNormalized = context.title\r\n .toLowerCase()\r\n .normalize('NFD')\r\n .replace(/[\\u0300-\\u036f]/g, '');\r\n return contextTitleNormalized.includes(filterNormalized);\r\n });\r\n\r\n let updateContexts: ContextsList = {\r\n ours\r\n };\r\n\r\n if (this.contexts.public) {\r\n const publics = contexts.public.filter((context) => {\r\n const filterNormalized = this.term\r\n .toLowerCase()\r\n .normalize('NFD')\r\n .replace(/[\\u0300-\\u036f]/g, '');\r\n const contextTitleNormalized = context.title\r\n .toLowerCase()\r\n .normalize('NFD')\r\n .replace(/[\\u0300-\\u036f]/g, '');\r\n return contextTitleNormalized.includes(filterNormalized);\r\n });\r\n updateContexts.public = publics;\r\n }\r\n\r\n if (this.contexts.shared) {\r\n const shared = contexts.shared.filter((context) => {\r\n const filterNormalized = this.term\r\n .toLowerCase()\r\n .normalize('NFD')\r\n .replace(/[\\u0300-\\u036f]/g, '');\r\n const contextTitleNormalized = context.title\r\n .toLowerCase()\r\n .normalize('NFD')\r\n .replace(/[\\u0300-\\u036f]/g, '');\r\n return contextTitleNormalized.includes(filterNormalized);\r\n });\r\n updateContexts.shared = shared;\r\n }\r\n\r\n if (this.sortedAlpha) {\r\n updateContexts = this.sortContextsList(updateContexts);\r\n }\r\n return updateContexts;\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n this.change$$.unsubscribe();\r\n }\r\n\r\n public showFilter() {\r\n switch (this.showContextFilter) {\r\n case ContextListControlsEnum.always:\r\n return true;\r\n case ContextListControlsEnum.never:\r\n return false;\r\n default:\r\n let totalLength = this.contexts.ours.length;\r\n this.contexts.public\r\n ? (totalLength += this.contexts.public.length)\r\n : (totalLength += 0);\r\n this.contexts.shared\r\n ? (totalLength += this.contexts.shared.length)\r\n : (totalLength += 0);\r\n if (totalLength >= this.thresholdToFilter) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n }\r\n\r\n sortContextsList(contexts: ContextsList) {\r\n if (contexts) {\r\n const contextsList = JSON.parse(JSON.stringify(contexts));\r\n contextsList.ours.sort((a, b) => {\r\n if (this.normalize(a.title) < this.normalize(b.title)) {\r\n return -1;\r\n }\r\n if (this.normalize(a.title) > this.normalize(b.title)) {\r\n return 1;\r\n }\r\n return 0;\r\n });\r\n\r\n if (contextsList.shared) {\r\n contextsList.shared.sort((a, b) => {\r\n if (this.normalize(a.title) < this.normalize(b.title)) {\r\n return -1;\r\n }\r\n if (this.normalize(a.title) > this.normalize(b.title)) {\r\n return 1;\r\n }\r\n return 0;\r\n });\r\n } else if (contextsList.public) {\r\n contextsList.public.sort((a, b) => {\r\n if (this.normalize(a.title) < this.normalize(b.title)) {\r\n return -1;\r\n }\r\n if (this.normalize(a.title) > this.normalize(b.title)) {\r\n return 1;\r\n }\r\n return 0;\r\n });\r\n }\r\n return contextsList;\r\n }\r\n }\r\n\r\n normalize(str: string) {\r\n return str\r\n .normalize('NFD')\r\n .replace(/[\\u0300-\\u036f]/g, '')\r\n .toLowerCase();\r\n }\r\n\r\n toggleSort(sortAlpha: boolean) {\r\n this.sortedAlpha = sortAlpha;\r\n }\r\n\r\n clearFilter() {\r\n this.term = '';\r\n }\r\n\r\n createContext(empty?: boolean) {\r\n this.dialog\r\n .open(BookmarkDialogComponent, { disableClose: false })\r\n .afterClosed()\r\n .pipe(take(1))\r\n .subscribe((title: string) => {\r\n if (title) {\r\n this.create.emit({ title, empty });\r\n }\r\n });\r\n }\r\n\r\n getPermission(user?): ContextUserPermission {\r\n if (user) {\r\n const permission = this.permissions.find((p) => p.name === user.name);\r\n return permission;\r\n }\r\n }\r\n\r\n handleToggleCategory(user, parent?) {\r\n const permission = this.getPermission(user);\r\n if (permission) {\r\n permission.checked = !permission.checked;\r\n this.storageService.set(\r\n 'contexts.permissions.' + permission.name,\r\n permission.checked\r\n );\r\n permission.indeterminate = false;\r\n }\r\n\r\n if (parent) {\r\n let indeterminate = false;\r\n\r\n for (const c of parent.childs) {\r\n const cPermission = this.getPermission(c);\r\n if (cPermission.checked !== permission.checked) {\r\n indeterminate = true;\r\n break;\r\n }\r\n }\r\n const parentPermission = this.getPermission(parent);\r\n if (parentPermission) {\r\n parentPermission.checked = permission.checked;\r\n this.storageService.set(\r\n 'contexts.permissions.' + parentPermission.name,\r\n permission.checked\r\n );\r\n parentPermission.indeterminate = indeterminate;\r\n }\r\n }\r\n\r\n if (user.childs) {\r\n for (const c of user.childs) {\r\n const childrenPermission = this.getPermission(c);\r\n if (\r\n childrenPermission &&\r\n childrenPermission.checked !== permission.checked\r\n ) {\r\n childrenPermission.checked = permission.checked;\r\n this.storageService.set(\r\n 'contexts.permissions.' + childrenPermission.name,\r\n permission.checked\r\n );\r\n }\r\n }\r\n }\r\n\r\n this.filterPermissionsChanged.emit(this.permissions);\r\n }\r\n\r\n hideContext(context: DetailedContext) {\r\n context.hidden = true;\r\n if (!this.showHidden) {\r\n const contexts: ContextsList = { ours: [], shared: [], public: [] };\r\n contexts.ours = this.contexts.ours.filter((c) => c.id !== context.id);\r\n contexts.shared = this.contexts.shared.filter((c) => c.id !== context.id);\r\n contexts.public = this.contexts.public.filter((c) => c.id !== context.id);\r\n this.contexts = contexts;\r\n }\r\n this.hide.emit(context);\r\n }\r\n\r\n showContext(context: DetailedContext) {\r\n context.hidden = false;\r\n this.show.emit(context);\r\n }\r\n}\r\n","import {\r\n ChangeDetectorRef,\r\n Directive,\r\n HostListener,\r\n OnDestroy,\r\n OnInit,\r\n Self\r\n} from '@angular/core';\r\n\r\nimport { AuthService } from '@igo2/auth';\r\nimport { ConfirmDialogService } from '@igo2/common';\r\nimport { LanguageService, MessageService, StorageService } from '@igo2/core';\r\nimport { MapService } from '@igo2/geo';\r\n\r\nimport { Subscription } from 'rxjs';\r\nimport { debounceTime } from 'rxjs/operators';\r\n\r\nimport {\r\n Context,\r\n ContextUserPermission,\r\n ContextsList,\r\n DetailedContext\r\n} from '../shared/context.interface';\r\nimport { ContextService } from '../shared/context.service';\r\nimport { ContextListComponent } from './context-list.component';\r\n\r\n@Directive({\r\n selector: '[igoContextListBinding]'\r\n})\r\nexport class ContextListBindingDirective implements OnInit, OnDestroy {\r\n private component: ContextListComponent;\r\n private contexts$$: Subscription;\r\n private selectedContext$$: Subscription;\r\n private defaultContextId$$: Subscription;\r\n private previousMessageId;\r\n\r\n @HostListener('select', ['$event'])\r\n onSelect(context: Context) {\r\n this.contextService.loadContext(context.uri);\r\n }\r\n\r\n @HostListener('edit', ['$event'])\r\n onEdit(context: Context) {\r\n this.contextService.loadEditedContext(context.uri);\r\n }\r\n\r\n @HostListener('save', ['$event'])\r\n onSave(context: Context) {\r\n const map = this.mapService.getMap();\r\n const contextFromMap = this.contextService.getContextFromMap(map);\r\n\r\n const msgSuccess = () => {\r\n this.messageService.success(\r\n 'igo.context.contextManager.dialog.saveMsg',\r\n 'igo.context.contextManager.dialog.saveTitle',\r\n undefined,\r\n {\r\n value: context.title\r\n }\r\n );\r\n };\r\n\r\n if (context.imported) {\r\n contextFromMap.title = context.title;\r\n this.contextService.delete(context.id, true);\r\n this.contextService.create(contextFromMap).subscribe((contextCreated) => {\r\n this.contextService.loadContext(contextCreated.uri);\r\n msgSuccess();\r\n });\r\n return;\r\n }\r\n\r\n const changes: any = {\r\n layers: contextFromMap.layers,\r\n map: {\r\n view: contextFromMap.map.view\r\n }\r\n };\r\n\r\n this.contextService.update(context.id, changes).subscribe(() => {\r\n msgSuccess();\r\n });\r\n }\r\n\r\n @HostListener('favorite', ['$event'])\r\n onFavorite(context: Context) {\r\n if (!context.id) {\r\n context.id = context.uri;\r\n }\r\n this.contextService.setDefault(context.id).subscribe(() => {\r\n if (this.previousMessageId) {\r\n this.messageService.remove(this.previousMessageId);\r\n }\r\n this.contextService.defaultContextId$.next(context.id);\r\n const messageObj = this.messageService.success(\r\n 'igo.context.contextManager.dialog.favoriteMsg',\r\n 'igo.context.contextManager.dialog.favoriteTitle',\r\n undefined,\r\n {\r\n value: context.title\r\n }\r\n );\r\n this.previousMessageId = messageObj.toastId;\r\n this.cdRef.detectChanges();\r\n });\r\n }\r\n\r\n @HostListener('manageTools', ['$event'])\r\n onManageTools(context: Context) {\r\n this.contextService.loadEditedContext(context.uri);\r\n }\r\n\r\n @HostListener('managePermissions', ['$event'])\r\n onManagePermissions(context: Context) {\r\n this.contextService.loadEditedContext(context.uri);\r\n }\r\n\r\n @HostListener('delete', ['$event'])\r\n onDelete(context: Context) {\r\n const translate = this.languageService.translate;\r\n this.confirmDialogService\r\n .open(\r\n translate.instant('igo.context.contextManager.dialog.confirmDelete')\r\n )\r\n .subscribe((confirm) => {\r\n if (confirm) {\r\n this.contextService\r\n .delete(context.id, context.imported)\r\n .subscribe(() => {\r\n this.messageService.info(\r\n 'igo.context.contextManager.dialog.deleteMsg',\r\n 'igo.context.contextManager.dialog.deleteTitle',\r\n undefined,\r\n { value: context.title }\r\n );\r\n });\r\n }\r\n });\r\n }\r\n\r\n @HostListener('clone', ['$event'])\r\n onClone(context: DetailedContext) {\r\n const properties = {\r\n title: context.title + '-copy',\r\n uri: context.uri + '-copy'\r\n };\r\n this.contextService.clone(context.id, properties).subscribe(() => {\r\n this.messageService.success(\r\n 'igo.context.contextManager.dialog.cloneMsg',\r\n 'igo.context.contextManager.dialog.cloneTitle',\r\n undefined,\r\n { value: context.title }\r\n );\r\n });\r\n }\r\n\r\n @HostListener('create', ['$event'])\r\n onCreate(opts: { title: string; empty: boolean }) {\r\n const { title, empty } = opts;\r\n const context = this.contextService.getContextFromMap(\r\n this.component.map,\r\n empty\r\n );\r\n context.title = title;\r\n this.contextService.create(context).subscribe(() => {\r\n this.messageService.success(\r\n 'igo.context.bookmarkButton.dialog.createMsg',\r\n 'igo.context.bookmarkButton.dialog.createTitle',\r\n undefined,\r\n { value: context.title }\r\n );\r\n this.contextService.loadContext(context.uri);\r\n });\r\n }\r\n\r\n @HostListener('filterPermissionsChanged')\r\n loadContexts() {\r\n const permissions = ['none'];\r\n for (const p of this.component.permissions) {\r\n if (p.checked === true || p.indeterminate === true) {\r\n permissions.push(p.name);\r\n }\r\n }\r\n this.component.showHidden\r\n ? this.contextService.loadContexts(permissions, true)\r\n : this.contextService.loadContexts(permissions, false);\r\n }\r\n\r\n @HostListener('showHiddenContexts')\r\n showHiddenContexts() {\r\n this.component.showHidden = !this.component.showHidden;\r\n this.storageService.set('contexts.showHidden', this.component.showHidden);\r\n this.loadContexts();\r\n }\r\n\r\n @HostListener('show', ['$event'])\r\n onShowContext(context: DetailedContext) {\r\n this.contextService.showContext(context.id).subscribe();\r\n }\r\n\r\n @HostListener('hide', ['$event'])\r\n onHideContext(context: DetailedContext) {\r\n this.contextService.hideContext(context.id).subscribe();\r\n }\r\n\r\n constructor(\r\n @Self() component: ContextListComponent,\r\n private contextService: ContextService,\r\n private mapService: MapService,\r\n private languageService: LanguageService,\r\n private confirmDialogService: ConfirmDialogService,\r\n private messageService: MessageService,\r\n private auth: AuthService,\r\n private storageService: StorageService,\r\n private cdRef: ChangeDetectorRef\r\n ) {\r\n this.component = component;\r\n }\r\n\r\n ngOnInit() {\r\n // Override input contexts\r\n this.component.contexts = { ours: [] };\r\n this.component.showHidden = this.storageService.get(\r\n 'contexts.showHidden'\r\n ) as boolean;\r\n\r\n this.contexts$$ = this.contextService.contexts$.subscribe((contexts) =>\r\n this.handleContextsChange(contexts)\r\n );\r\n\r\n this.defaultContextId$$ = this.contextService.defaultContextId$.subscribe(\r\n (id) => {\r\n this.component.defaultContextId = id;\r\n }\r\n );\r\n const storedContextUri = this.storageService.get(\r\n 'favorite.context.uri'\r\n ) as string;\r\n if (storedContextUri && !this.auth.authenticated) {\r\n this.contextService.defaultContextId$.next(storedContextUri);\r\n }\r\n\r\n // See feature-list.component for an explanation about the debounce time\r\n this.selectedContext$$ = this.contextService.context$\r\n .pipe(debounceTime(100))\r\n .subscribe((context) => (this.component.selectedContext = context));\r\n\r\n this.auth.authenticate$.subscribe((authenticate) => {\r\n if (authenticate) {\r\n this.contextService.getProfilByUser().subscribe((profils) => {\r\n this.component.users = profils;\r\n this.component.permissions = [];\r\n const profilsAcc = this.component.users.reduce((acc, cur) => {\r\n acc = acc.concat(cur);\r\n acc = cur.childs ? acc.concat(cur.childs) : acc;\r\n return acc;\r\n }, []);\r\n\r\n for (const user of profilsAcc) {\r\n const permission: ContextUserPermission = {\r\n name: user.name,\r\n checked: this.storageService.get(\r\n 'contexts.permissions.' + user.name\r\n ) as boolean\r\n };\r\n if (permission.checked === null) {\r\n permission.checked = true;\r\n }\r\n this.component.permissions.push(permission);\r\n }\r\n\r\n const permissions = ['none'];\r\n for (const p of this.component.permissions) {\r\n if (p.checked === true || p.indeterminate === true) {\r\n permissions.push(p.name);\r\n }\r\n }\r\n\r\n this.component.showHidden\r\n ? this.contextService.loadContexts(permissions, true)\r\n : this.contextService.loadContexts(permissions, false);\r\n });\r\n }\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n this.contexts$$.unsubscribe();\r\n this.selectedContext$$.unsubscribe();\r\n this.defaultContextId$$.unsubscribe();\r\n }\r\n\r\n private handleContextsChange(contexts: ContextsList) {\r\n this.component.contexts = contexts;\r\n }\r\n}\r\n","<div *ngIf=\"context\">\r\n <div *ngIf=\"!canWrite\" class=\"scopeForm\">\r\n <h4>{{ 'igo.context.permission.readOnlyTitle' | translate }}</h4>\r\n <p>{{ 'igo.context.permission.readOnlyMsg' | translate }}</p>\r\n </div>\r\n\r\n <div *ngIf=\"canWrite\" class=\"scopeForm\">\r\n <mat-radio-group\r\n [(ngModel)]=\"context.scope\"\r\n (change)=\"scopeChanged.emit(context)\"\r\n >\r\n <mat-radio-button value=\"private\">\r\n {{ 'igo.context.permission.scope.private' | translate }}\r\n </mat-radio-button>\r\n <mat-radio-button value=\"protected\">\r\n {{ 'igo.context.permission.scope.shared' | translate }}\r\n </mat-radio-button>\r\n <mat-radio-button *ngIf=\"authService.isAdmin\" value=\"public\">\r\n {{ 'igo.context.permission.scope.public' | translate }}\r\n </mat-radio-button>\r\n </mat-radio-group>\r\n </div>\r\n\r\n <form\r\n *ngIf=\"context.scope !== 'private' && canWrite\"\r\n [formGroup]=\"form\"\r\n (ngSubmit)=\"handleFormSubmit(form.value)\"\r\n >\r\n <mat-form-field class=\"full-width\">\r\n <input\r\n matInput\r\n required\r\n [placeholder]=\"'igo.context.permission.user' | translate\"\r\n [formControl]=\"formControl\"\r\n [matAutocomplete]=\"auto\"\r\n />\r\n <mat-autocomplete\r\n #auto=\"matAutocomplete\"\r\n (optionSelected)=\"onProfilSelected($event.option.value)\"\r\n [displayWith]=\"displayFn\"\r\n >\r\n <mat-option *ngFor=\"let profil of this.profils\" [value]=\"profil\">\r\n {{ profil.title }}<br />\r\n <small class=\"mat-typography\">{{ profil.name }}</small>\r\n </mat-option>\r\n </mat-autocomplete>\r\n <mat-error>\r\n {{ 'igo.context.permission.profilRequired' | translate }}\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n <mat-radio-group formControlName=\"typePermission\">\r\n <mat-radio-button value=\"read\">\r\n {{ 'igo.context.permission.read' | translate }}\r\n </mat-radio-button>\r\n <mat-radio-button value=\"write\">\r\n {{ 'igo.context.permission.write' | translate }}\r\n </mat-radio-button>\r\n </mat-radio-group>\r\n\r\n <div class=\"igo-form-button-group\">\r\n <button mat-raised-button type=\"submit\" [disabled]=\"!form.valid\">\r\n {{ 'igo.context.permission.addBtn' | translate }}\r\n </button>\r\n </div>\r\n </form>\r\n\r\n <igo-list *ngIf=\"permissions && context.scope !== 'private'\">\r\n <ng-template ngFor let-groupPermissions [ngForOf]=\"permissions | keyvalue\">\r\n <igo-collapsible\r\n *ngIf=\"groupPermissions.value.length\"\r\n [title]=\"'igo.context.permission.' + groupPermissions.key | translate\"\r\n >\r\n <ng-template ngFor let-permission [ngForOf]=\"groupPermissions.value\">\r\n <mat-list-item>\r\n <mat-icon matListItemIcon svgIcon=\"account-outline\"></mat-icon>\r\n <h4 matListItemTitle>\r\n {{ permission.profilTitle }}\r\n <small class=\"mat-typography\">{{ permission.profil }}</small>\r\n </h4>\r\n\r\n <div\r\n matListItemMeta\r\n igoStopPropagation\r\n class=\"igo-actions-container\"\r\n >\r\n <button\r\n *ngIf=\"\r\n canWrite ||\r\n permission.profil === authService.decodeToken().user.sourceId\r\n \"\r\n mat-icon-button\r\n [matTooltip]=\"'igo.context.permission.delete' | translate\"\r\n matTooltipShowDelay=\"500\"\r\n color=\"warn\"\r\n (click)=\"removePermission.emit(permission)\"\r\n >\r\n <mat-icon svgIcon=\"delete\"></mat-icon>\r\n </button>\r\n </div>\r\n </mat-list-item>\r\n </ng-template>\r\n </igo-collapsible>\r\n </ng-template>\r\n </igo-list>\r\n</div>\r\n","import { HttpClient } from '@angular/common/http';\r\nimport {\r\n ChangeDetectorRef,\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnInit,\r\n Output\r\n} from '@angular/core';\r\nimport {\r\n UntypedFormBuilder,\r\n UntypedFormControl,\r\n UntypedFormGroup\r\n} from '@angular/forms';\r\n\r\nimport { AuthService } from '@igo2/auth';\r\nimport { ConfigService } from '@igo2/core';\r\n\r\nimport { Subscription } from 'rxjs';\r\n\r\nimport { TypePermission } from '../shared/context.enum';\r\nimport {\r\n Context,\r\n ContextPermission,\r\n ContextPermissionsList,\r\n ContextProfils\r\n} from '../shared/context.interface';\r\n\r\n@Component({\r\n selector: 'igo-context-permissions',\r\n templateUrl: './context-permissions.component.html',\r\n styleUrls: ['./context-permissions.component.scss']\r\n})\r\nexport class ContextPermissionsComponent implements OnInit {\r\n public form: UntypedFormGroup;\r\n\r\n @Input()\r\n get context(): Context {\r\n return this._context;\r\n }\r\n set context(value: Context) {\r\n this._context = value;\r\n this.cd.detectChanges();\r\n }\r\n private _context: Context;\r\n\r\n @Input()\r\n get permissions(): ContextPermissionsList {\r\n return this._permissions;\r\n }\r\n set permissions(value: ContextPermissionsList) {\r\n this._permissions = value;\r\n this.cd.detectChanges();\r\n }\r\n private _permissions: ContextPermissionsList;\r\n\r\n get profils(): ContextProfils[] {\r\n return this._profils;\r\n }\r\n set profils(value: ContextProfils[]) {\r\n this._profils = value;\r\n this.cd.detectChanges();\r\n }\r\n private _profils: ContextProfils[] = [];\r\n\r\n get canWrite(): boolean {\r\n return this.context.permission === TypePermission[TypePermission.write];\r\n }\r\n\r\n private baseUrlProfils;\r\n\r\n public formControl = new UntypedFormControl();\r\n formValueChanges$$: Subscription;\r\n\r\n @Output() addPermission: EventEmitter<ContextPermission> = new EventEmitter();\r\n @Output() removePermission: EventEmitter<ContextPermission> =\r\n new EventEmitter();\r\n @Output() scopeChanged: EventEmitter<Context> = new EventEmitter();\r\n\r\n constructor(\r\n private formBuilder: UntypedFormBuilder,\r\n private cd: ChangeDetectorRef,\r\n private http: HttpClient,\r\n public authService: AuthService,\r\n private config: ConfigService\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.buildForm();\r\n\r\n this.baseUrlProfils =\r\n this.config.getConfig('context.url') + '/profils-users?';\r\n\r\n this.formValueChanges$$ = this.formControl.valueChanges.subscribe(\r\n (value) => {\r\n if (value.length) {\r\n this.http\r\n .get(this.baseUrlProfils + 'q=' + value)\r\n .subscribe((profils) => {\r\n this.profils = profils as ContextProfils[];\r\n });\r\n this.profils.filter((profil) => {\r\n const filterNormalized = value\r\n .toLowerCase()\r\n .normalize('NFD')\r\n .replace(/[\\u0300-\\u036f]/g, '');\r\n const profilTitleNormalized = profil.title\r\n .toLowerCase()\r\n .normalize('NFD')\r\n .replace(/[\\u0300-\\u036f]/g, '');\r\n const profilNameNormalized = profil.name\r\n .toLowerCase()\r\n .normalize('NFD')\r\n .replace(/[\\u0300-\\u036f]/g, '');\r\n const profilNormalized =\r\n profilNameNormalized + profilTitleNormalized;\r\n return profilNormalized.includes(filterNormalized);\r\n });\r\n } else {\r\n this.profils = [];\r\n }\r\n }\r\n );\r\n }\r\n\r\n displayFn(profil?: ContextProfils): string | undefined {\r\n return profil ? profil.title : undefined;\r\n }\r\n\r\n public handleFormSubmit(value) {\r\n this.addPermission.emit(value);\r\n }\r\n\r\n private buildForm(): void {\r\n this.form = this.formBuilder.group({\r\n profil: [],\r\n typePermission: ['read']\r\n });\r\n }\r\n\r\n onProfilSelected(value) {\r\n this.form.setValue({\r\n profil: value.name,\r\n typePermission: this.form.value.typePermission\r\n });\r\n }\r\n}\r\n","import {\r\n ChangeDetectorRef,\r\n Directive,\r\n HostListener,\r\n OnDestroy,\r\n OnInit,\r\n Self\r\n} from '@angular/core';\r\n\r\nimport { LanguageService, MessageService } from '@igo2/core';\r\n\r\nimport { Subscription } from 'rxjs';\r\n\r\nimport {\r\n Context,\r\n ContextPermission,\r\n DetailedContext\r\n} from '../shared/context.interface';\r\nimport { ContextService } from '../shared/context.service';\r\nimport { ContextPermissionsComponent } from './context-permissions.component';\r\n\r\n@Directive({\r\n selector: '[igoContextPermissionsBinding]'\r\n})\r\nexport class ContextPermissionsBindingDirective implements OnInit, OnDestroy {\r\n private component: ContextPermissionsComponent;\r\n private editedContext$$: Subscription;\r\n\r\n @HostListener('addPermission', ['$event'])\r\n onAddPermission(permission: ContextPermission) {\r\n if (!permission.profil) {\r\n this.messageService.error(\r\n 'igo.context.contextManager.errors.addPermissionEmpty',\r\n 'igo.context.contextManager.errors.addPermissionTitle'\r\n );\r\n return;\r\n }\r\n const contextId = this.component.context.id;\r\n this.contextService\r\n .addPermissionAssociation(\r\n contextId,\r\n permission.profil,\r\n permission.typePermission\r\n )\r\n .subscribe((profils) => {\r\n for (const p of profils) {\r\n this.component.permissions[permission.typePermission].push(p);\r\n }\r\n const profil = permission.profil;\r\n this.messageService.success(\r\n 'igo.context.permission.dialog.addMsg',\r\n 'igo.context.permission.dialog.addTitle',\r\n undefined,\r\n { value: profil }\r\n );\r\n this.cd.detectChanges();\r\n });\r\n }\r\n\r\n @HostListener('removePermission', ['$event'])\r\n onRemovePermission(permission: ContextPermission) {\r\n const contextId = this.component.context.id;\r\n this.contextService\r\n .deletePermissionAssociation(contextId, permission.id)\r\n .subscribe(() => {\r\n const index = this.component.permissions[\r\n permission.typePermission\r\n ].findIndex((p) => {\r\n return p.id === permission.id;\r\n });\r\n this.component.permissions[permission.typePermission].splice(index, 1);\r\n\r\n const profil = permission.profil;\r\n this.messageService.success(\r\n 'igo.context.permission.dialog.deleteMsg',\r\n 'igo.context.permission.dialog.deleteTitle',\r\n undefined,\r\n { value: profil }\r\n );\r\n this.cd.detectChanges();\r\n });\r\n }\r\n\r\n @HostListener('scopeChanged', ['$event'])\r\n onScopeChanged(context: Context) {\r\n const scope = context.scope;\r\n this.contextService.update(context.id, { scope }).subscribe(() => {\r\n this.messageService.success(\r\n 'igo.context.permission.dialog.scopeChangedMsg',\r\n 'igo.context.permission.dialog.scopeChangedTitle',\r\n undefined,\r\n { value: 'igo.context.permission.scope.' + scope }\r\n );\r\n });\r\n }\r\n\r\n constructor(\r\n @Self() component: ContextPermissionsComponent,\r\n private contextService: ContextService,\r\n private languageService: LanguageService,\r\n private messageService: MessageService,\r\n private cd: ChangeDetectorRef\r\n ) {\r\n this.component = component;\r\n }\r\n\r\n ngOnInit() {\r\n this.editedContext$$ = this.contextService.editedContext$.subscribe(\r\n (context) => this.handleEditedContextChange(context)\r\n );\r\n }\r\n\r\n ngOnDestroy() {\r\n this.editedContext$$.unsubscribe();\r\n this.contextService.editedContext$.next(undefined);\r\n }\r\n\r\n private handleEditedContextChange(context: DetailedContext) {\r\n this.component.context = context;\r\n\r\n if (context) {\r\n this.contextService\r\n .getPermissions(context.id)\r\n .subscribe((permissionsArray) => {\r\n permissionsArray = permissionsArray || [];\r\n const permissions = {\r\n read: permissionsArray.filter((p) => {\r\n return p.typePermission.toString() === 'read';\r\n }),\r\n write: permissionsArray.filter((p) => {\r\n return p.typePermission.toString() === 'write';\r\n })\r\n };\r\n return (this.component.permissions = permissions);\r\n });\r\n }\r\n }\r\n}\r\n","import { Directive, Input, OnDestroy, OnInit, Optional } from '@angular/core';\r\n\r\nimport { ConfigService, RouteService } from '@igo2/core';\r\nimport {\r\n Layer,\r\n LayerOptions,\r\n LayerService,\r\n MapBrowserComponent,\r\n StyleListService,\r\n StyleService\r\n} from '@igo2/geo';\r\nimport type { IgoMap } from '@igo2/geo';\r\nimport { ObjectUtils } from '@igo2/utils';\r\n\r\nimport { Subscription, merge } from 'rxjs';\r\nimport { buffer, debounceTime, filter, first } from 'rxjs/operators';\r\n\r\nimport {\r\n addImportedFeaturesStyledToMap,\r\n addImportedFeaturesToMap\r\n} from '../../context-import-export/shared/context-import.utils';\r\nimport { DetailedContext } from './context.interface';\r\nimport { ContextService } from './context.service';\r\n\r\n@Directive({\r\n selector: '[igoLayerContext]'\r\n})\r\nexport class LayerContextDirective implements OnInit, OnDestroy {\r\n private context$$: Subscription;\r\n private queryParams: any;\r\n\r\n private contextLayers: Layer[] = [];\r\n\r\n @Input() removeLayersOnContextChange: boolean = true;\r\n\r\n get map(): IgoMap {\r\n return this.component.map;\r\n }\r\n\r\n constructor(\r\n private component: MapBrowserComponent,\r\n private contextService: ContextService,\r\n private layerService: LayerService,\r\n private configService: ConfigService,\r\n private styleListService: StyleListService,\r\n private styleService: StyleService,\r\n @Optional() private route: RouteService\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.context$$ = this.contextService.context$\r\n .pipe(filter((context) => context !== undefined))\r\n .subscribe((context) => this.handleContextChange(context));\r\n\r\n if (\r\n this.route &&\r\n this.route.options.visibleOnLayersKey &&\r\n this.route.options.visibleOffLayersKey &&\r\n this.route.options.contextKey\r\n ) {\r\n this.route.queryParams\r\n .pipe(first((params) => !ObjectUtils.isEmpty(params)))\r\n .subscribe((params) => {\r\n this.queryParams = params;\r\n });\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n this.context$$.unsubscribe();\r\n }\r\n\r\n private handleContextChange(context: DetailedContext) {\r\n if (context.layers === undefined) {\r\n return;\r\n }\r\n if (this.removeLayersOnContextChange === true) {\r\n this.map.removeAllLayers();\r\n } else {\r\n this.map.removeLayers(this.contextLayers);\r\n }\r\n this.contextLayers = [];\r\n\r\n const layersAndIndex$ = merge(\r\n ...context.layers.map((layerOptions: LayerOptions, index: number) => {\r\n return this.layerService.createAsyncLayer(layerOptions, context.uri);\r\n })\r\n );\r\n\r\n layersAndIndex$\r\n .pipe(buffer(layersAndIndex$.pipe(debounceTime(500))))\r\n .subscribe((layers: Layer[]) => {\r\n this.handleAddLayers(layers);\r\n\r\n if (context.extraFeatures) {\r\n context.extraFeatures.forEach((featureCollection) => {\r\n const importExportOptions =\r\n this.configService.getConfig('importExport');\r\n if (!importExportOptions?.importWithStyle) {\r\n addImportedFeaturesToMap(featureCollection, this.map);\r\n } else {\r\n addImportedFeaturesStyledToMap(\r\n featureCollection,\r\n this.map,\r\n this.styleListService,\r\n this.styleService\r\n );\r\n }\r\n });\r\n }\r\n });\r\n\r\n this.layerService\r\n .createAsyncIdbLayers(context.uri)\r\n .pipe(debounceTime(500))\r\n .subscribe((layers: Layer[]) => this.handleAddLayers(layers));\r\n }\r\n\r\n private handleAddLayers(layers: Layer[]) {\r\n layers = layers\r\n .filter((layer: Layer) => layer !== undefined)\r\n .map((layer) => {\r\n layer.visible = this.computeLayerVisibilityFromUrl(layer);\r\n layer.zIndex = layer.zIndex;\r\n\r\n return layer;\r\n });\r\n this.contextLayers.concat(layers);\r\n this.map.addLayers(layers);\r\n }\r\n\r\n private computeLayerVisibilityFromUrl(layer: Layer): boolean {\r\n const params = this.queryParams;\r\n const currentContext = this.contextService.context$.value.uri;\r\n const currentLayerid: string = layer.id;\r\n\r\n let visible = layer.visible;\r\n if (!params || !currentLayerid) {\r\n return visible;\r\n }\r\n\r\n const contextParams = params[this.route.options.contextKey as string];\r\n if (contextParams === currentContext || !contextParams) {\r\n let visibleOnLayersParams = '';\r\n let visibleOffLayersParams = '';\r\n let visiblelayers: string[] = [];\r\n let invisiblelayers: string[] = [];\r\n\r\n if (\r\n this.route.options.visibleOnLayersKey &&\r\n params[this.route.options.visibleOnLayersKey as string]\r\n ) {\r\n visibleOnLayersParams =\r\n params[this.route.options.visibleOnLayersKey as string];\r\n }\r\n if (\r\n this.route.options.visibleOffLayersKey &&\r\n params[this.route.options.visibleOffLayersKey as string]\r\n ) {\r\n visibleOffLayersParams =\r\n params[this.route.options.visibleOffLayersKey as string];\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 }\r\n\r\n return visible;\r\n }\r\n}\r\n","import { Directive, OnDestroy, OnInit } from '@angular/core';\r\n\r\nimport { MediaService } from '@igo2/core';\r\nimport {\r\n MapBrowserComponent,\r\n MapControlsOptions,\r\n MapScaleLineOptions,\r\n MapViewOptions\r\n} from '@igo2/geo';\r\nimport type { IgoMap } from '@igo2/geo';\r\n\r\nimport { Subscription } from 'rxjs';\r\nimport { filter } from 'rxjs/operators';\r\n\r\nimport { ContextMapView, DetailedContext } from './context.interface';\r\nimport { ContextService } from './context.service';\r\n\r\n@Directive({\r\n selector: '[igoMapContext]'\r\n})\r\nexport class MapContextDirective implements OnInit, OnDestroy {\r\n private component: MapBrowserComponent;\r\n private context$$: Subscription;\r\n\r\n get map(): IgoMap {\r\n return this.component.map;\r\n }\r\n\r\n constructor(\r\n component: MapBrowserComponent,\r\n private contextService: ContextService,\r\n private mediaService: MediaService\r\n ) {\r\n this.component = component;\r\n }\r\n\r\n ngOnInit() {\r\n this.context$$ = this.contextService.context$\r\n .pipe(filter((context) => context !== undefined))\r\n .subscribe((context) => this.handleContextChange(context));\r\n }\r\n\r\n ngOnDestroy() {\r\n this.context$$.unsubscribe();\r\n }\r\n\r\n private handleContextChange(context: DetailedContext) {\r\n if (context.map === undefined) {\r\n return;\r\n }\r\n\r\n // This creates a new ol.Map when the context changes. Doing that\r\n // allows the print tool to work properly even when the map's canvas\r\n // has been tainted (CORS) with the layers of another context. This could\r\n // have some side effects such as unbinding all listeners on the first map.\r\n // A better solution would be to create a new map (preview) before\r\n // printing and avoid the tainted canvas issue. This will come later so\r\n // this snippet of code is kept here in case it takes too long becomes\r\n // an issue\r\n\r\n // const target = this.component.map.ol.getTarget();\r\n // this.component.map.ol.setTarget(undefined);\r\n // this.component.map.init();\r\n // this.component.map.ol.setTarget(target);\r\n\r\n const viewContext: ContextMapView = context.map.view;\r\n if (\r\n !this.component.view ||\r\n viewContext.keepCurrentView !== true ||\r\n context.map.view.projection !== this.map.projection\r\n ) {\r\n this.component.view = viewContext as MapViewOptions;\r\n }\r\n if (this.component.map.geolocationController) {\r\n this.component.map.geolocationController.updateGeolocationOptions(\r\n viewContext\r\n );\r\n }\r\n\r\n const controlsContext: MapControlsOptions = context.map.controls;\r\n if (!this.component.controls && controlsContext) {\r\n if (this.mediaService.isMobile()) {\r\n if (typeof controlsContext.scaleLine !== 'boolean') {\r\n const scaleLineOption =\r\n controlsContext.scaleLine as MapScaleLineOptions;\r\n if (!scaleLineOption.minWidth) {\r\n scaleLineOption.minWidth = Math.min(64, scaleLineOption.minWidth);\r\n controlsContext.scaleLine = scaleLineOption;\r\n }\r\n }\r\n }\r\n this.component.controls = controlsContext;\r\n }\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatOptionModule } from '@angular/material/core';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatListModule } from '@angular/material/list';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { MatRadioModule } from '@angular/material/radio';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\n\r\nimport { IgoAuthModule } from '@igo2/auth';\r\nimport {\r\n IgoActionbarModule,\r\n IgoCollapsibleModule,\r\n IgoKeyValueModule,\r\n IgoListModule,\r\n IgoStopPropagationModule\r\n} from '@igo2/common';\r\nimport { IgoLanguageModule } from '@igo2/core';\r\n\r\nimport { IgoContextImportExportModule } from '../context-import-export/context-import-export.module';\r\nimport { IgoContextMapButtonModule } from '../context-map-button/context-map-button.module';\r\nimport { ContextEditBindingDirective } from './context-edit/context-edit-binding.directive';\r\nimport { ContextEditComponent } from './context-edit/context-edit.component';\r\nimport { ContextFormComponent } from './context-form/context-form.component';\r\nimport { ContextItemComponent } from './context-item/context-item.component';\r\nimport { ContextListBindingDirective } from './context-list/context-list-binding.directive';\r\nimport { ContextListComponent } from './context-list/context-list.component';\r\nimport { ContextPermissionsBindingDirective } from './context-permissions/context-permissions-binding.directive';\r\nimport { ContextPermissionsComponent } from './context-permissions/context-permissions.component';\r\nimport { LayerContextDirective } from './shared/layer-context.directive';\r\nimport { MapContextDirective } from './shared/map-context.directive';\r\n\r\nconst CONTEXT_DIRECTIVES = [MapContextDirective, LayerContextDirective];\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n MatFormFieldModule,\r\n MatInputModule,\r\n MatIconModule,\r\n MatButtonModule,\r\n MatTooltipModule,\r\n MatListModule,\r\n MatCheckboxModule,\r\n MatRadioModule,\r\n MatDialogModule,\r\n MatMenuModule,\r\n MatOptionModule,\r\n MatAutocompleteModule,\r\n IgoAuthModule,\r\n IgoListModule,\r\n IgoKeyValueModule,\r\n IgoCollapsibleModule,\r\n IgoStopPropagationModule,\r\n IgoLanguageModule,\r\n IgoContextImportExportModule,\r\n IgoContextMapButtonModule,\r\n IgoActionbarModule\r\n ],\r\n exports: [\r\n ContextListComponent,\r\n ContextListBindingDirective,\r\n ContextItemComponent,\r\n ContextFormComponent,\r\n ContextEditComponent,\r\n ContextEditBindingDirective,\r\n ContextPermissionsComponent,\r\n ContextPermissionsBindingDirective,\r\n\r\n ...CONTEXT_DIRECTIVES\r\n ],\r\n declarations: [\r\n ContextListComponent,\r\n ContextListBindingDirective,\r\n ContextItemComponent,\r\n ContextFormComponent,\r\n ContextEditComponent,\r\n ContextEditBindingDirective,\r\n ContextPermissionsComponent,\r\n ContextPermissionsBindingDirective,\r\n\r\n ...CONTEXT_DIRECTIVES\r\n ]\r\n})\r\nexport class IgoContextManagerModule {\r\n static forRoot(): ModuleWithProviders<IgoContextManagerModule> {\r\n return {\r\n ngModule: IgoContextManagerModule\r\n };\r\n }\r\n}\r\n","import { Injectable, Optional } from '@angular/core';\r\n\r\nimport { RouteService } from '@igo2/core';\r\nimport { Layer, WMSDataSourceOptions } from '@igo2/geo';\r\nimport type { IgoMap } from '@igo2/geo';\r\n\r\nimport { DetailedContext } from '../../context-manager/shared/context.interface';\r\nimport { ContextService } from '../../context-manager/shared/context.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ShareMapService {\r\n private language = '';\r\n\r\n constructor(\r\n private contextService: ContextService,\r\n @Optional() private route: RouteService\r\n ) {\r\n this.route.queryParams.subscribe((params) => {\r\n if (params['lang']) {\r\n this.language = params['lang'];\r\n }\r\n });\r\n }\r\n\r\n getUrlWithApi(formValues) {\r\n return this.language\r\n ? `${location.origin + location.pathname}?context=${\r\n formValues.uri\r\n }&lang=${this.language}`\r\n : `${location.origin + location.pathname}?context=${formValues.uri}`;\r\n }\r\n\r\n createContextShared(map: IgoMap, formValues) {\r\n const context = this.contextService.getContextFromMap(map);\r\n context.scope = 'public';\r\n context.title = formValues.title;\r\n context.uri = formValues.uri;\r\n return this.contextService.create(context);\r\n }\r\n\r\n updateContextShared(map: IgoMap, formValues, id: string) {\r\n const context = this.contextService.getContextFromMap(map);\r\n return this.contextService.update(id, {\r\n title: formValues.title,\r\n map: context.map\r\n } as DetailedContext);\r\n }\r\n\r\n getUrlWithoutApi(map: IgoMap, publicShareOption) {\r\n if (\r\n !this.route ||\r\n !this.route.options.visibleOnLayersKey ||\r\n !this.route.options.visibleOffLayersKey ||\r\n !map.viewController.getZoom()\r\n ) {\r\n return;\r\n }\r\n const llc = publicShareOption.layerlistControls.querystring;\r\n\r\n let visibleKey = this.route.options.visibleOnLayersKey;\r\n let invisibleKey = this.route.options.visibleOffLayersKey;\r\n const layers = map.layers;\r\n\r\n const visibleLayers = layers.filter(\r\n (lay) => lay.visible && !lay.isIgoInternalLayer\r\n );\r\n const invisibleLayers = layers.filter(\r\n (lay) => !lay.visible && !lay.isIgoInternalLayer\r\n );\r\n\r\n if (visibleLayers.length === 0) {\r\n visibleKey = '';\r\n }\r\n if (invisibleLayers.length === 0) {\r\n invisibleKey = '';\r\n }\r\n\r\n let layersUrl = '';\r\n let layersToLoop = [];\r\n if (visibleLayers.length > invisibleLayers.length) {\r\n layersUrl = `${visibleKey}=*&${invisibleKey}=`;\r\n layersToLoop = invisibleLayers;\r\n } else {\r\n layersUrl = `${invisibleKey}=*&${visibleKey}=`;\r\n layersToLoop = visibleLayers;\r\n }\r\n\r\n for (const layer of layersToLoop) {\r\n if (layer.id) {\r\n layersUrl += layer.id + ',';\r\n }\r\n }\r\n const contextLayersID = [];\r\n const contextLayers = this.contextService.context$.value.layers;\r\n for (const contextLayer of contextLayers) {\r\n if (\r\n typeof contextLayer.id !== 'undefined' ||\r\n typeof contextLayer.source !== 'undefined'\r\n ) {\r\n contextLayersID.push(contextLayer.id || contextLayer.source.id);\r\n }\r\n }\r\n\r\n const addedLayersQueryParamsWms = this.makeLayersByService(\r\n layers,\r\n contextLayersID,\r\n 'wms'\r\n );\r\n const addedLayersQueryParamsWmts = this.makeLayersByService(\r\n layers,\r\n contextLayersID,\r\n 'wmts'\r\n );\r\n const addedLayersQueryParamsArcgisRest = this.makeLayersByService(\r\n layers,\r\n contextLayersID,\r\n 'arcgisrest'\r\n );\r\n const addedLayersQueryParamsImageArcgisRest = this.makeLayersByService(\r\n layers,\r\n contextLayersID,\r\n 'imagearcgisrest'\r\n );\r\n const addedLayersQueryParamsTileArcgisRest = this.makeLayersByService(\r\n layers,\r\n contextLayersID,\r\n 'tilearcgisrest'\r\n );\r\n\r\n layersUrl = layersUrl.substr(0, layersUrl.length - 1);\r\n\r\n const zoomKey = this.route.options.zoomKey;\r\n const centerKey = this.route.options.centerKey;\r\n const contextKey = this.route.options.contextKey;\r\n\r\n const zoom = `${zoomKey}=${map.viewController.getZoom()}`;\r\n const arrayCenter = map.viewController.getCenter('EPSG:4326') || [];\r\n const long = arrayCenter[0].toFixed(5).replace(/\\.([^0]+)0+$/, '.$1');\r\n const lat = arrayCenter[1].toFixed(5).replace(/\\.([^0]+)0+$/, '.$1');\r\n const center = `${centerKey}=${long},${lat}`.replace(/.00000/g, '');\r\n let context = '';\r\n if (this.contextService.context$.value) {\r\n context = `${contextKey}=${this.contextService.context$.value.uri}`;\r\n }\r\n\r\n let url = this.language\r\n ? `${location.origin}${location.pathname}?${context}&${zoom}&${center}&${layersUrl}&${llc}&${addedLayersQueryParamsWms}&${llc}&${addedLayersQueryParamsWmts}&${addedLayersQueryParamsArcgisRest}&${addedLayersQueryParamsImageArcgisRest}&${addedLayersQueryParamsTileArcgisRest}&lang=${this.language}`\r\n : `${location.origin}${location.pathname}?${context}&${zoom}&${center}&${layersUrl}&${llc}&${addedLayersQueryParamsWms}&${llc}&${addedLayersQueryParamsWmts}&${addedLayersQueryParamsArcgisRest}&${addedLayersQueryParamsImageArcgisRest}&${addedLayersQueryParamsTileArcgisRest}`;\r\n for (let i = 0; i < 5; i++) {\r\n url = url.replace(/&&/g, '&');\r\n url = url.endsWith('&') ? url.slice(0, -1) : url;\r\n }\r\n url = url.endsWith('&') ? url.slice(0, -1) : url;\r\n url = url.replace('?&wm', '&wm');\r\n url = url.replace('?&', '?');\r\n\r\n return url;\r\n }\r\n\r\n private makeLayersByService(\r\n layers: Layer[],\r\n contextLayersID: any[],\r\n typeService: string\r\n ): string {\r\n const addedLayersByService = [];\r\n for (const layer of layers.filter(\r\n (l) => l.dataSource.options?.type === typeService\r\n )) {\r\n if (contextLayersID.indexOf(layer.id) === -1) {\r\n let linkUrl = encodeURIComponent((layer.dataSource.options as any).url);\r\n let addedLayer = '';\r\n let layerVersion: string;\r\n switch (layer.dataSource.options.type.toLowerCase()) {\r\n case 'wms':\r\n const datasourceOptions = layer.dataSource\r\n .options as WMSDataSourceOptions;\r\n addedLayer = encodeURIComponent(datasourceOptions.params.LAYERS);\r\n layerVersion =\r\n datasourceOptions.params.VERSION === '1.3.0'\r\n ? layerVersion\r\n : datasourceOptions.params.VERSION;\r\n break;\r\n case 'wmts':\r\n case 'arcgisrest':\r\n case 'imagearcgisrest':\r\n case 'tilearcgisrest':\r\n addedLayer = encodeURIComponent(\r\n (layer.dataSource.options as any).layer\r\n );\r\n break;\r\n }\r\n const addedLayerPosition = `${addedLayer}:igoz${layer.zIndex}`;\r\n\r\n let version = '';\r\n if (layerVersion) {\r\n const operator =\r\n (layer.dataSource.options as any).url.indexOf('?') === -1\r\n ? '?'\r\n : '&';\r\n version = encodeURIComponent(`${operator}VERSION=${layerVersion}`);\r\n }\r\n linkUrl = `${linkUrl}${version}`;\r\n\r\n if (\r\n !addedLayersByService.find((definedUrl) => definedUrl.url === linkUrl)\r\n ) {\r\n addedLayersByService.push({\r\n url: linkUrl,\r\n layers: [addedLayerPosition]\r\n });\r\n } else {\r\n addedLayersByService.forEach((service) => {\r\n if (service.url === linkUrl) {\r\n service.layers.push(addedLayerPosition);\r\n }\r\n });\r\n }\r\n }\r\n }\r\n\r\n let addedLayersQueryParams = '';\r\n if (addedLayersByService.length >= 1) {\r\n let linkUrlKey;\r\n let layersKey;\r\n /*\r\n const linkUrlKey = (typeService === 'wms') ? this.route.options.wmsUrlKey :\r\n (typeService === 'wmts') ? this.route.options.wmtsUrlKey : '' ;\r\n const layersKey = (typeService === 'wms') ? this.route.options.wmsLayersKey :\r\n (typeService === 'wmts') ? this.route.options.wmtsLayersKey : '' ;\r\n*/\r\n switch (typeService.toLowerCase()) {\r\n case 'wms':\r\n linkUrlKey = this.route.options.wmsUrlKey;\r\n layersKey = this.route.options.wmsLayersKey;\r\n break;\r\n case 'wmts':\r\n linkUrlKey = this.route.options.wmtsUrlKey;\r\n layersKey = this.route.options.wmtsLayersKey;\r\n break;\r\n case 'arcgisrest':\r\n linkUrlKey = this.route.options.arcgisUrlKey;\r\n layersKey = this.route.options.arcgisLayersKey;\r\n break;\r\n case 'imagearcgisrest':\r\n linkUrlKey = this.route.options.iarcgisUrlKey;\r\n layersKey = this.route.options.iarcgisLayersKey;\r\n break;\r\n case 'tilearcgisrest':\r\n linkUrlKey = this.route.options.tarcgisUrlKey;\r\n layersKey = this.route.options.tarcgisLayersKey;\r\n break;\r\n default:\r\n linkUrlKey = '';\r\n layersKey = '';\r\n }\r\n\r\n let linkUrlQueryParams = '';\r\n let layersQueryParams = '';\r\n addedLayersByService.forEach((service) => {\r\n linkUrlQueryParams += `${service.url},`;\r\n layersQueryParams += `(${service.layers.join(',')}),`;\r\n });\r\n linkUrlQueryParams = linkUrlQueryParams.endsWith(',')\r\n ? linkUrlQueryParams.slice(0, -1)\r\n : linkUrlQueryParams;\r\n layersQueryParams = layersQueryParams.endsWith(',')\r\n ? layersQueryParams.slice(0, -1)\r\n : layersQueryParams;\r\n addedLayersQueryParams = `${linkUrlKey}=${linkUrlQueryParams}&${layersKey}=${layersQueryParams}`;\r\n }\r\n\r\n return addedLayersQueryParams;\r\n }\r\n}\r\n","<form class=\"igo-form\" [formGroup]=\"form\" (ngSubmit)=\"createUrl(form.value)\">\r\n <div class=\"igo-input-container\">\r\n <mat-form-field>\r\n <input\r\n matInput\r\n required\r\n [placeholder]=\"'igo.context.contextManager.form.title' | translate\"\r\n formControlName=\"title\"\r\n />\r\n <mat-error>\r\n {{ 'igo.context.contextManager.form.titleRequired' | translate }}\r\n </mat-error>\r\n </mat-form-field>\r\n </div>\r\n\r\n <div id=\"uriInput\" class=\"igo-input-container\">\r\n <mat-form-field>\r\n <span *ngIf=\"userId\" class=\"prefix\">{{ userId }}-</span>\r\n <span class=\"fieldWrapper\">\r\n <input\r\n matInput\r\n required\r\n [readonly]=\"!userId\"\r\n [placeholder]=\"'igo.context.contextManager.form.uri' | translate\"\r\n formControlName=\"uri\"\r\n />\r\n </span>\r\n <mat-error>\r\n {{ 'igo.context.contextManager.form.uriRequired' | translate }}\r\n </mat-error>\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"igo-form-button-group\">\r\n <button\r\n *ngIf=\"!url\"\r\n mat-raised-button\r\n type=\"submit\"\r\n [disabled]=\"!form.valid\"\r\n >\r\n {{ 'igo.context.shareMap.button' | translate }}\r\n </button>\r\n <button\r\n *ngIf=\"url\"\r\n mat-raised-button\r\n type=\"button\"\r\n (click)=\"updateContextShared(form.value)\"\r\n >\r\n {{ 'igo.context.shareMap.refreshBtn' | translate }}\r\n </button>\r\n </div>\r\n</form>\r\n\r\n<div *ngIf=\"url\" class=\"igo-input-container linkToShare\">\r\n <mat-form-field>\r\n <textarea\r\n #textArea\r\n matInput\r\n readonly\r\n rows=\"3\"\r\n class=\"textAreaWithButton\"\r\n [placeholder]=\"'igo.context.shareMap.placeholderLink' | translate\"\r\n [value]=\"url\"\r\n ></textarea>\r\n <button\r\n mat-icon-button\r\n tooltip-position=\"below\"\r\n matTooltipShowDelay=\"500\"\r\n [matTooltip]=\"'igo.context.shareMap.copy' | translate\"\r\n color=\"primary\"\r\n (click)=\"copyTextToClipboard(textArea)\"\r\n >\r\n <mat-icon svgIcon=\"content-copy\"></mat-icon>\r\n </button>\r\n </mat-form-field>\r\n <div></div>\r\n</div>\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms';\r\n\r\nimport { AuthService } from '@igo2/auth';\r\nimport { LanguageService, MessageService } from '@igo2/core';\r\nimport type { IgoMap } from '@igo2/geo';\r\nimport { Clipboard, uuid } from '@igo2/utils';\r\n\r\nimport { ShareMapService } from '../shared/share-map.service';\r\n\r\n@Component({\r\n selector: 'igo-share-map-api',\r\n templateUrl: './share-map-api.component.html',\r\n styleUrls: ['./share-map-api.component.scss']\r\n})\r\nexport class ShareMapApiComponent implements OnInit {\r\n public form: UntypedFormGroup;\r\n\r\n @Input() map: IgoMap;\r\n\r\n public url: string;\r\n public userId: string;\r\n public idContextShared: string;\r\n\r\n constructor(\r\n private languageService: LanguageService,\r\n private messageService: MessageService,\r\n private auth: AuthService,\r\n private shareMapService: ShareMapService,\r\n private formBuilder: UntypedFormBuilder\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.auth.authenticate$.subscribe((auth) => {\r\n const decodeToken = this.auth.decodeToken();\r\n this.userId = decodeToken.user ? decodeToken.user.id : undefined;\r\n this.buildForm();\r\n });\r\n }\r\n\r\n createUrl(values: any = {}) {\r\n const inputs = Object.assign({}, values);\r\n inputs.uri = this.userId ? `${this.userId}-${values.uri}` : values.uri;\r\n this.url = this.shareMapService.getUrlWithApi(inputs);\r\n this.shareMapService.createContextShared(this.map, inputs).subscribe(\r\n (rep) => {\r\n this.idContextShared = rep.id;\r\n this.messageService.success(\r\n 'igo.context.contextManager.dialog.saveMsg',\r\n 'igo.context.contextManager.dialog.saveTitle',\r\n undefined,\r\n { value: inputs.title }\r\n );\r\n },\r\n (err) => {\r\n err.error.title = this.languageService.translate.instant(\r\n 'igo.context.shareMap.errorTitle'\r\n );\r\n this.messageService.showError(err);\r\n }\r\n );\r\n }\r\n\r\n updateContextShared(values: any = {}) {\r\n const inputs = Object.assign({}, values);\r\n inputs.uri = this.userId ? `${this.userId}-${values.uri}` : values.uri;\r\n this.shareMapService\r\n .updateContextShared(this.map, inputs, this.idContextShared)\r\n .subscribe(\r\n (rep) => {\r\n this.messageService.success(\r\n 'igo.context.contextManager.dialog.saveMsg',\r\n 'igo.context.contextManager.dialog.saveTitle',\r\n undefined,\r\n { value: inputs.title }\r\n );\r\n },\r\n (err) => {\r\n err.error.title = this.languageService.translate.instant(\r\n 'igo.context.shareMap.errorTitle'\r\n );\r\n this.messageService.showError(err);\r\n }\r\n );\r\n }\r\n\r\n copyTextToClipboard(textArea) {\r\n const successful = Clipboard.copy(textArea);\r\n if (successful) {\r\n this.messageService.success(\r\n 'igo.context.shareMap.dialog.copyMsg',\r\n 'igo.context.shareMap.dialog.copyTitle'\r\n );\r\n }\r\n }\r\n\r\n buildForm(): void {\r\n this.url = undefined;\r\n const id = uuid();\r\n let title = 'Partage ';\r\n title += this.userId ? `(${this.userId}-${id})` : `(${id})`;\r\n this.form = this.formBuilder.group({\r\n title: [title],\r\n uri: [id]\r\n });\r\n }\r\n}\r\n","<div class=\"igo-input-container linkToShare\">\r\n <mat-form-field>\r\n <textarea\r\n #textArea\r\n matInput\r\n readonly\r\n rows=\"3\"\r\n [placeholder]=\"'igo.context.shareMap.placeholderLink' | translate\"\r\n [value]=\"url\"\r\n ></textarea>\r\n </mat-form-field>\r\n\r\n <div class=\"igo-form-button-group\">\r\n <button mat-raised-button (click)=\"copyTextToClipboard(textArea)\">\r\n <mat-icon svgIcon=\"content-copy\"></mat-icon>\r\n {{ 'igo.context.shareMap.copy' | translate }}\r\n </button>\r\n </div>\r\n <div>\r\n <br />\r\n <section class=\"mat-typography\">\r\n <div\r\n *ngIf=\"('igo.context.shareMap.htmlClarifications' | translate) === ''\"\r\n >\r\n <h4 *ngIf=\"('igo.context.shareMap.included' | translate) !== ''\">\r\n {{ 'igo.context.shareMap.included' | translate }}\r\n </h4>\r\n <ul>\r\n <li *ngIf=\"('igo.context.shareMap.context' | translate) !== ''\">\r\n {{ 'igo.context.shareMap.context' | translate }}\r\n </li>\r\n <li *ngIf=\"('igo.context.shareMap.center' | translate) !== ''\">\r\n {{ 'igo.context.shareMap.center' | translate }}\r\n </li>\r\n <li *ngIf=\"('igo.context.shareMap.zoom' | translate) !== ''\">\r\n {{ 'igo.context.shareMap.zoom' | translate }}\r\n </li>\r\n <li *ngIf=\"('igo.context.shareMap.addedLayers' | translate) !== ''\">\r\n {{ 'igo.context.shareMap.addedLayers' | translate }}\r\n </li>\r\n <li\r\n *ngIf=\"('igo.context.shareMap.visibleInvisible' | translate) !== ''\"\r\n >\r\n {{ 'igo.context.shareMap.visibleInvisible' | translate }}\r\n </li>\r\n </ul>\r\n\r\n <h4 *ngIf=\"('igo.context.shareMap.excluded' | translate) !== ''\">\r\n {{ 'igo.context.shareMap.excluded' | translate }}\r\n </h4>\r\n <ul>\r\n <li *ngIf=\"('igo.context.shareMap.order' | translate) !== ''\">\r\n {{ 'igo.context.shareMap.order' | translate }}\r\n </li>\r\n <li *ngIf=\"('igo.context.shareMap.opacity' | translate) !== ''\">\r\n {{ 'igo.context.shareMap.opacity' | translate }}\r\n </li>\r\n <li *ngIf=\"('igo.context.shareMap.filterOgc' | translate) !== ''\">\r\n {{ 'igo.context.shareMap.filterOgc' | translate }}\r\n </li>\r\n <li *ngIf=\"('igo.context.shareMap.filterTime' | translate) !== ''\">\r\n {{ 'igo.context.shareMap.filterTime' | translate }}\r\n </li>\r\n </ul>\r\n </div>\r\n <igo-custom-html\r\n class=\"shareCustomPadding\"\r\n *ngIf=\"('igo.context.shareMap.htmlClarifications' | translate) !== ''\"\r\n class=\"mat-typography\"\r\n [html]=\"'igo.context.shareMap.htmlClarifications' | translate\"\r\n >\r\n </igo-custom-html>\r\n </section>\r\n </div>\r\n</div>\r\n","import {\r\n AfterViewInit,\r\n ChangeDetectorRef,\r\n Component,\r\n Input,\r\n OnDestroy,\r\n OnInit\r\n} from '@angular/core';\r\n\r\nimport { MessageService } from '@igo2/core';\r\nimport type { IgoMap } from '@igo2/geo';\r\nimport { Clipboard } from '@igo2/utils';\r\n\r\nimport { Subscription, combineLatest } from 'rxjs';\r\n\r\nimport { ShareMapService } from '../shared/share-map.service';\r\n\r\n@Component({\r\n selector: 'igo-share-map-url',\r\n templateUrl: './share-map-url.component.html',\r\n styleUrls: ['./share-map-url.component.scss']\r\n})\r\nexport class ShareMapUrlComponent implements AfterViewInit, OnInit, OnDestroy {\r\n private mapState$$: Subscription;\r\n\r\n @Input() map: IgoMap;\r\n\r\n public url: string;\r\n public publicShareOption = {\r\n layerlistControls: { querystring: '' }\r\n };\r\n\r\n constructor(\r\n private messageService: MessageService,\r\n private shareMapService: ShareMapService,\r\n private cdRef: ChangeDetectorRef\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.resetUrl();\r\n this.mapState$$ = combineLatest([\r\n this.map.viewController.state$,\r\n this.map.status$\r\n ]).subscribe((c) => {\r\n this.resetUrl();\r\n this.cdRef.detectChanges();\r\n });\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.resetUrl();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.mapState$$.unsubscribe();\r\n }\r\n\r\n resetUrl(values: any = {}) {\r\n this.url = this.shareMapService.getUrlWithoutApi(\r\n this.map,\r\n this.publicShareOption\r\n );\r\n }\r\n\r\n copyTextToClipboard(textArea) {\r\n const successful = Clipboard.copy(textArea);\r\n if (successful) {\r\n this.messageService.success(\r\n 'igo.context.shareMap.dialog.copyMsg',\r\n 'igo.context.shareMap.dialog.copyTitle'\r\n );\r\n }\r\n }\r\n}\r\n","<mat-tab-group *ngIf=\"hasApi\">\r\n <mat-tab [label]=\"'igo.context.shareMap.shareWithApi' | translate\">\r\n <igo-share-map-api [map]=\"map\"></igo-share-map-api>\r\n </mat-tab>\r\n <mat-tab [label]=\"'igo.context.shareMap.shareWithUrl' | translate\">\r\n <igo-share-map-url [map]=\"map\"></igo-share-map-url>\r\n </mat-tab>\r\n</mat-tab-group>\r\n\r\n<igo-share-map-url *ngIf=\"!hasApi\" [map]=\"map\"></igo-share-map-url>\r\n","import { Component, Input } from '@angular/core';\r\n\r\nimport { ConfigService } from '@igo2/core';\r\nimport type { IgoMap } from '@igo2/geo';\r\n\r\n@Component({\r\n selector: 'igo-share-map',\r\n templateUrl: './share-map.component.html',\r\n styleUrls: ['./share-map.component.scss']\r\n})\r\nexport class ShareMapComponent {\r\n @Input() map: IgoMap;\r\n\r\n public hasApi = false;\r\n\r\n constructor(private config: ConfigService) {\r\n this.hasApi = this.config.getConfig('context.url') ? true : false;\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatTabsModule } from '@angular/material/tabs';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\n\r\nimport { IgoCustomHtmlModule } from '@igo2/common';\r\nimport { IgoLanguageModule } from '@igo2/core';\r\n\r\nimport { ShareMapApiComponent } from './share-map/share-map-api.component';\r\nimport { ShareMapUrlComponent } from './share-map/share-map-url.component';\r\nimport { ShareMapComponent } from './share-map/share-map.component';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n MatIconModule,\r\n MatTooltipModule,\r\n MatTabsModule,\r\n MatFormFieldModule,\r\n MatInputModule,\r\n MatButtonModule,\r\n IgoLanguageModule,\r\n IgoCustomHtmlModule\r\n ],\r\n exports: [ShareMapComponent, ShareMapUrlComponent, ShareMapApiComponent],\r\n declarations: [ShareMapComponent, ShareMapUrlComponent, ShareMapApiComponent]\r\n})\r\nexport class IgoShareMapModule {\r\n static forRoot(): ModuleWithProviders<IgoShareMapModule> {\r\n return {\r\n ngModule: IgoShareMapModule\r\n };\r\n }\r\n}\r\n","<mat-sidenav #sidenav igoSidenavShim mode=\"side\" [opened]=\"opened\">\r\n <div class=\"igo-sidenav-content\">\r\n <igo-flexible\r\n #topPanel\r\n initial=\"50%\"\r\n initialMobile=\"100%\"\r\n expanded=\"calc(100% - 58px)\"\r\n [state]=\"topPanelState\"\r\n >\r\n <div class=\"igo-content\">\r\n <igo-panel [title]=\"tool ? (tool.title | translate) : title\">\r\n <button\r\n mat-icon-button\r\n panelLeftButton\r\n tooltip-position=\"below\"\r\n matTooltipShowDelay=\"500\"\r\n [matTooltip]=\"'igo.context.sidenav.goBack' | translate\"\r\n *ngIf=\"tool\"\r\n >\r\n <mat-icon svgIcon=\"arrow-back\"></mat-icon>\r\n </button>\r\n\r\n <button\r\n mat-icon-button\r\n panelRightButton\r\n tooltip-position=\"below\"\r\n matTooltipShowDelay=\"500\"\r\n [matTooltip]=\"'igo.context.sidenav.mainMenu' | translate\"\r\n *ngIf=\"tool\"\r\n >\r\n <mat-icon svgIcon=\"menu\"></mat-icon>\r\n </button>\r\n </igo-panel>\r\n </div>\r\n\r\n <div igoFlexibleFill class=\"igo-content\">\r\n <igo-panel [title]=\"featureTitle\" *ngIf=\"feature && media !== 'mobile'\">\r\n <button\r\n mat-icon-button\r\n panelLeftButton\r\n class=\"igo-icon-button\"\r\n (click)=\"toggleTopPanel()\"\r\n >\r\n <mat-icon\r\n [svgIcon]=\"\r\n ['collapsed', 'initial'].indexOf(topPanel.state) >= 0\r\n ? 'arrow_downward'\r\n : 'arrow_upward'\r\n \"\r\n ></mat-icon>\r\n </button>\r\n\r\n <button\r\n mat-icon-button\r\n panelRightButton\r\n class=\"igo-icon-button\"\r\n (click)=\"zoomToFeatureExtent()\"\r\n *ngIf=\"feature.geometry\"\r\n >\r\n <mat-icon svgIcon=\"zoom-in\"></mat-icon>\r\n </button>\r\n\r\n <igo-feature-details\r\n [feature]=\"feature\"\r\n *ngIf=\"['collapsed', 'initial'].indexOf(topPanel.state) >= 0\"\r\n >\r\n </igo-feature-details>\r\n </igo-panel>\r\n </div>\r\n </igo-flexible>\r\n </div>\r\n</mat-sidenav>\r\n","import { Component, Input } from '@angular/core';\r\nimport { Title } from '@angular/platform-browser';\r\n\r\nimport { FlexibleState, Tool, getEntityTitle } from '@igo2/common';\r\nimport type { Media } from '@igo2/core';\r\nimport { Feature, FeatureMotion, moveToOlFeatures } from '@igo2/geo';\r\nimport type { IgoMap } from '@igo2/geo';\r\n\r\nimport olFormatGeoJSON from 'ol/format/GeoJSON';\r\n\r\n@Component({\r\n selector: 'igo-sidenav',\r\n templateUrl: './sidenav.component.html',\r\n styleUrls: ['./sidenav.component.scss']\r\n})\r\nexport class SidenavComponent {\r\n private format = new olFormatGeoJSON();\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 @Input()\r\n get opened(): boolean {\r\n return this._opened;\r\n }\r\n set opened(value: boolean) {\r\n this._opened = value;\r\n }\r\n private _opened: boolean;\r\n\r\n @Input()\r\n get feature(): Feature {\r\n return this._feature;\r\n }\r\n set feature(value: Feature) {\r\n this._feature = value;\r\n }\r\n private _feature: Feature;\r\n\r\n @Input()\r\n get tool(): Tool {\r\n return this._tool;\r\n }\r\n set tool(value: Tool) {\r\n this._tool = value;\r\n }\r\n private _tool: Tool;\r\n\r\n @Input()\r\n get media(): Media {\r\n return this._media;\r\n }\r\n set media(value: Media) {\r\n this._media = value;\r\n }\r\n private _media: Media;\r\n\r\n @Input()\r\n get title(): string {\r\n return this._title;\r\n }\r\n set title(value: string) {\r\n if (value) {\r\n this._title = value;\r\n }\r\n }\r\n private _title: string;\r\n\r\n public topPanelState: FlexibleState = 'initial';\r\n\r\n get featureTitle(): string {\r\n return this.feature ? getEntityTitle(this.feature) : undefined;\r\n }\r\n\r\n constructor(public titleService: Title) {\r\n this._title = this.titleService.getTitle();\r\n }\r\n\r\n zoomToFeatureExtent() {\r\n if (this.feature.geometry) {\r\n const olFeature = this.format.readFeature(this.feature, {\r\n dataProjection: this.feature.projection,\r\n featureProjection: this.map.viewProjection\r\n });\r\n moveToOlFeatures(\r\n this.map.viewController,\r\n [olFeature],\r\n FeatureMotion.Zoom\r\n );\r\n }\r\n }\r\n\r\n toggleTopPanel() {\r\n if (this.topPanelState === 'initial') {\r\n this.topPanelState = 'expanded';\r\n } else {\r\n this.topPanelState = 'initial';\r\n }\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { ModuleWithProviders, 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 { IgoFlexibleModule, IgoPanelModule } from '@igo2/common';\r\nimport { IgoLanguageModule } from '@igo2/core';\r\nimport { IgoFeatureModule } from '@igo2/geo';\r\n\r\nimport { IgoContextManagerModule } from '../context-manager/context-manager.module';\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 IgoFeatureModule,\r\n IgoContextManagerModule\r\n ],\r\n exports: [SidenavComponent],\r\n declarations: [SidenavComponent]\r\n})\r\nexport class IgoSidenavModule {\r\n static forRoot(): ModuleWithProviders<IgoSidenavModule> {\r\n return {\r\n ngModule: IgoSidenavModule\r\n };\r\n }\r\n}\r\n","import { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\n\r\nimport { IgoContextImportExportModule } from './context-import-export/context-import-export.module';\r\nimport { IgoContextManagerModule } from './context-manager/context-manager.module';\r\nimport { IgoContextMapButtonModule } from './context-map-button/context-map-button.module';\r\nimport { IgoShareMapModule } from './share-map/share-map.module';\r\nimport { IgoSidenavModule } from './sidenav/sidenav.module';\r\n\r\n@NgModule({\r\n imports: [MatInputModule, MatFormFieldModule, MatMenuModule],\r\n declarations: [],\r\n exports: [\r\n IgoContextImportExportModule,\r\n IgoContextManagerModule,\r\n IgoContextMapButtonModule,\r\n IgoShareMapModule,\r\n IgoSidenavModule\r\n ]\r\n})\r\nexport class IgoContextModule {\r\n static forRoot(): ModuleWithProviders<IgoContextModule> {\r\n return {\r\n ngModule: IgoContextModule,\r\n providers: []\r\n };\r\n }\r\n}\r\n","/*\r\n * Public API Surface of context\r\n */\r\n\r\nexport * from './lib/context.module';\r\nexport * from './lib/context-import-export/context-import-export.module';\r\nexport * from './lib/context-manager/context-manager.module';\r\nexport * from './lib/context-map-button/context-map-button.module';\r\nexport * from './lib/share-map/share-map.module';\r\nexport * from './lib/sidenav/sidenav.module';\r\n\r\nexport * from './lib/context-import-export';\r\nexport * from './lib/context-manager';\r\nexport * from './lib/context-map-button';\r\nexport * from './lib/environment';\r\nexport * from './lib/share-map';\r\nexport * from './lib/sidenav';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i4","i1","_c0","i1.ContextImportService","i2.ContextExportService","i5.ContextService","i2.ContextService","i2","i3.PoiService","i5","i3","i1.ContextEditComponent","i1.ContextListComponent","i6","i1.ContextPermissionsComponent","i1.ContextService","i3.ShareMapService","i2.ShareMapService","olFormatGeoJSON"],"mappings":"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"}
1
+ {"version":3,"file":"igo2-context.mjs","sources":["../../../packages/context/src/lib/context-manager/shared/context.enum.ts","../../../packages/context/src/lib/context-manager/shared/context.service.ts","../../../packages/context/src/lib/context-import-export/shared/context-export.errors.ts","../../../packages/context/src/lib/context-import-export/shared/context-export.service.ts","../../../packages/context/src/lib/context-import-export/shared/context-export.utils.ts","../../../packages/context/src/lib/context-import-export/shared/context-import.errors.ts","../../../packages/context/src/lib/context-import-export/shared/context-import.utils.ts","../../../packages/context/src/lib/context-import-export/shared/context-import.service.ts","../../../packages/context/src/lib/context-import-export/context-import-export/context-import-export.component.ts","../../../packages/context/src/lib/context-import-export/context-import-export/context-import-export.component.html","../../../packages/context/src/lib/context-import-export/context-import-export.module.ts","../../../packages/context/src/lib/context-map-button/bookmark-button/bookmark-dialog.component.ts","../../../packages/context/src/lib/context-map-button/bookmark-button/bookmark-dialog.component.html","../../../packages/context/src/lib/context-map-button/bookmark-button/bookmark-button.component.ts","../../../packages/context/src/lib/context-map-button/bookmark-button/bookmark-button.component.html","../../../packages/context/src/lib/context-map-button/poi-button/poi-dialog.component.ts","../../../packages/context/src/lib/context-map-button/poi-button/poi-dialog.component.html","../../../packages/context/src/lib/context-map-button/poi-button/shared/poi.service.ts","../../../packages/context/src/lib/context-map-button/poi-button/poi-button.component.ts","../../../packages/context/src/lib/context-map-button/poi-button/poi-button.component.html","../../../packages/context/src/lib/context-map-button/user-button/user-button.animation.ts","../../../packages/context/src/lib/context-map-button/user-button/user-dialog.component.ts","../../../packages/context/src/lib/context-map-button/user-button/user-dialog.component.html","../../../packages/context/src/lib/context-map-button/user-button/user-button.component.ts","../../../packages/context/src/lib/context-map-button/user-button/user-button.component.html","../../../packages/context/src/lib/context-map-button/context-map-button.module.ts","../../../packages/context/src/lib/context-manager/context-form/context-form.component.ts","../../../packages/context/src/lib/context-manager/context-form/context-form.component.html","../../../packages/context/src/lib/context-manager/context-edit/context-edit.component.ts","../../../packages/context/src/lib/context-manager/context-edit/context-edit.component.html","../../../packages/context/src/lib/context-manager/context-edit/context-edit-binding.directive.ts","../../../packages/context/src/lib/context-manager/context-item/context-item.component.ts","../../../packages/context/src/lib/context-manager/context-item/context-item.component.html","../../../packages/context/src/lib/context-manager/context-list/context-list.enum.ts","../../../packages/context/src/lib/context-manager/context-list/context-list.component.ts","../../../packages/context/src/lib/context-manager/context-list/context-list.component.html","../../../packages/context/src/lib/context-manager/context-list/context-list-binding.directive.ts","../../../packages/context/src/lib/context-manager/context-permissions/context-permissions.component.ts","../../../packages/context/src/lib/context-manager/context-permissions/context-permissions.component.html","../../../packages/context/src/lib/context-manager/context-permissions/context-permissions-binding.directive.ts","../../../packages/context/src/lib/context-manager/shared/layer-context.directive.ts","../../../packages/context/src/lib/context-manager/shared/map-context.directive.ts","../../../packages/context/src/lib/context-manager/context-manager.module.ts","../../../packages/context/src/lib/share-map/shared/share-map.service.ts","../../../packages/context/src/lib/share-map/share-map/share-map-api.component.ts","../../../packages/context/src/lib/share-map/share-map/share-map-api.component.html","../../../packages/context/src/lib/share-map/share-map/share-map-url.component.ts","../../../packages/context/src/lib/share-map/share-map/share-map-url.component.html","../../../packages/context/src/lib/share-map/share-map/share-map.component.ts","../../../packages/context/src/lib/share-map/share-map/share-map.component.html","../../../packages/context/src/lib/share-map/share-map.module.ts","../../../packages/context/src/lib/sidenav/sidenav.component.ts","../../../packages/context/src/lib/sidenav/sidenav.component.html","../../../packages/context/src/lib/sidenav/sidenav.module.ts","../../../packages/context/src/lib/context.module.ts","../../../packages/context/src/public_api.ts","../../../packages/context/src/igo2-context.ts"],"sourcesContent":["export enum TypePermission {\n null,\n read,\n write\n}\n\nexport enum Scope {\n public,\n protected,\n private\n}\n","import { HttpClient, HttpErrorResponse } from '@angular/common/http';\r\nimport { Injectable, Optional } from '@angular/core';\r\n\r\nimport { AuthService } from '@igo2/auth';\r\nimport { Tool } from '@igo2/common';\r\nimport {\r\n ConfigService,\r\n LanguageService,\r\n Message,\r\n MessageService,\r\n RouteService,\r\n StorageService\r\n} from '@igo2/core';\r\nimport type {\r\n AnyLayerOptions,\r\n IgoMap,\r\n Layer,\r\n VectorLayerOptions,\r\n VectorTileLayerOptions\r\n} from '@igo2/geo';\r\nimport { ExportService } from '@igo2/geo';\r\nimport { ObjectUtils, uuid } from '@igo2/utils';\r\n\r\nimport GeoJSON from 'ol/format/GeoJSON';\r\nimport { Geometry } from 'ol/geom';\r\nimport olPoint from 'ol/geom/Point';\r\nimport Cluster from 'ol/source/Cluster';\r\nimport olVectorSource from 'ol/source/Vector';\r\n\r\nimport { Feature } from 'ol';\r\nimport { BehaviorSubject, Observable, Subject, of } from 'rxjs';\r\nimport {\r\n catchError,\r\n debounceTime,\r\n first,\r\n map,\r\n mergeMap,\r\n skip,\r\n tap\r\n} from 'rxjs/operators';\r\n\r\nimport { TypePermission } from './context.enum';\r\nimport {\r\n Context,\r\n ContextMapView,\r\n ContextPermission,\r\n ContextProfils,\r\n ContextServiceOptions,\r\n ContextsList,\r\n DetailedContext,\r\n ExtraFeatures\r\n} from './context.interface';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ContextService {\r\n public context$ = new BehaviorSubject<DetailedContext>(undefined);\r\n public contexts$ = new BehaviorSubject<ContextsList>({ ours: [] });\r\n public defaultContextId$ = new BehaviorSubject<string>(undefined);\r\n public editedContext$ = new BehaviorSubject<DetailedContext>(undefined);\r\n public importedContext: Array<DetailedContext> = [];\r\n public toolsChanged$ = new Subject<DetailedContext>();\r\n private mapViewFromRoute: ContextMapView = {};\r\n private options: ContextServiceOptions;\r\n private baseUrl: string;\r\n\r\n // Until the ContextService is completely refactored, this is needed\r\n // to track the current tools\r\n private tools: Tool[];\r\n private toolbar: string[];\r\n\r\n get defaultContextUri(): string {\r\n return (\r\n (this.storageService.get('favorite.context.uri') as string) ||\r\n this._defaultContextUri ||\r\n this.options.defaultContextUri\r\n );\r\n }\r\n set defaultContextUri(uri: string) {\r\n this._defaultContextUri = uri;\r\n }\r\n private _defaultContextUri: string;\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private authService: AuthService,\r\n private languageService: LanguageService,\r\n private config: ConfigService,\r\n private messageService: MessageService,\r\n private storageService: StorageService,\r\n private exportService: ExportService,\r\n @Optional() private route: RouteService\r\n ) {\r\n this.options = Object.assign(\r\n {\r\n basePath: 'contexts',\r\n contextListFile: '_contexts.json',\r\n defaultContextUri: '_default'\r\n },\r\n this.config.getConfig('context')\r\n );\r\n\r\n this.baseUrl = this.options.url ?? '';\r\n\r\n this.readParamsFromRoute();\r\n\r\n if (this.authService.hasAuthService) {\r\n this.authService.logged$.subscribe((logged) => {\r\n if (logged) {\r\n this.contexts$.pipe(skip(1), first()).subscribe((c) => {\r\n this.handleContextsChange();\r\n });\r\n this.loadContexts();\r\n }\r\n });\r\n } else {\r\n this.loadContexts();\r\n this.handleContextsChange(false);\r\n }\r\n }\r\n\r\n get(permissions?: string[], hidden?: boolean): Observable<ContextsList> {\r\n let url = this.baseUrl + '/contexts';\r\n if (permissions && this.authService.authenticated) {\r\n url += '?permission=' + permissions.join();\r\n if (hidden) {\r\n url += '&hidden=true';\r\n }\r\n }\r\n return this.http.get<ContextsList>(url);\r\n }\r\n\r\n getById(id: string): Observable<Context> {\r\n const url = this.baseUrl + '/contexts/' + id;\r\n return this.http.get<Context>(url);\r\n }\r\n\r\n getDetails(id: string): Observable<DetailedContext> {\r\n const url = `${this.baseUrl}/contexts/${id}/details`;\r\n return this.http.get<DetailedContext>(url).pipe(\r\n catchError((res) => {\r\n this.handleError(res, id);\r\n throw res;\r\n })\r\n );\r\n }\r\n\r\n getDefault(): Observable<DetailedContext> {\r\n if (this.authService.authenticated) {\r\n const url = this.baseUrl + '/contexts/default';\r\n return this.http.get<DetailedContext>(url).pipe(\r\n tap((context) => {\r\n this.defaultContextId$.next(context.id);\r\n })\r\n );\r\n } else {\r\n const uri = this.storageService.get('favorite.context.uri') as string;\r\n this.defaultContextId$.next(uri);\r\n return this.getContextByUri(uri);\r\n }\r\n }\r\n\r\n getProfilByUser(): Observable<ContextProfils[]> {\r\n if (this.baseUrl) {\r\n const url = this.baseUrl + '/profils?';\r\n return this.http.get<ContextProfils[]>(url);\r\n }\r\n return of([]);\r\n }\r\n\r\n setDefault(id: string): Observable<any> {\r\n if (this.authService.authenticated) {\r\n const url = this.baseUrl + '/contexts/default';\r\n return this.http.post(url, { defaultContextId: id });\r\n } else {\r\n this.storageService.set('favorite.context.uri', id);\r\n return of(undefined);\r\n }\r\n }\r\n\r\n hideContext(id: string) {\r\n const url = this.baseUrl + '/contexts/' + id + '/hide';\r\n return this.http.post(url, {});\r\n }\r\n\r\n showContext(id: string) {\r\n const url = this.baseUrl + '/contexts/' + id + '/show';\r\n return this.http.post(url, {});\r\n }\r\n\r\n delete(id: string, imported = false): Observable<void> {\r\n const contexts: ContextsList = { ours: [] };\r\n Object.keys(this.contexts$.value).forEach(\r\n (key) =>\r\n (contexts[key] = this.contexts$.value[key].filter((c) => c.id !== id))\r\n );\r\n\r\n if (imported) {\r\n this.importedContext = this.importedContext.filter((c) => c.id !== id);\r\n return of(this.contexts$.next(contexts));\r\n }\r\n\r\n const url = this.baseUrl + '/contexts/' + id;\r\n return this.http.delete<void>(url).pipe(\r\n tap((res) => {\r\n this.contexts$.next(contexts);\r\n })\r\n );\r\n }\r\n\r\n create(context: DetailedContext): Observable<Context> {\r\n const url = this.baseUrl + '/contexts';\r\n return this.http.post<Context>(url, context).pipe(\r\n map((contextCreated) => {\r\n if (this.authService.authenticated) {\r\n contextCreated.permission = TypePermission[TypePermission.write];\r\n } else {\r\n contextCreated.permission = TypePermission[TypePermission.read];\r\n }\r\n this.contexts$.value.ours.unshift(contextCreated);\r\n this.contexts$.next(this.contexts$.value);\r\n return contextCreated;\r\n })\r\n );\r\n }\r\n\r\n clone(id: string, properties = {}): Observable<Context> {\r\n const url = this.baseUrl + '/contexts/' + id + '/clone';\r\n return this.http.post<Context>(url, properties).pipe(\r\n map((contextCloned) => {\r\n contextCloned.permission = TypePermission[TypePermission.write];\r\n this.contexts$.value.ours.unshift(contextCloned);\r\n this.contexts$.next(this.contexts$.value);\r\n return contextCloned;\r\n })\r\n );\r\n }\r\n\r\n update(id: string, context: Context): Observable<Context> {\r\n const url = this.baseUrl + '/contexts/' + id;\r\n return this.http.patch<Context>(url, context);\r\n }\r\n\r\n // =================================================================\r\n\r\n addToolAssociation(contextId: string, toolId: string): Observable<void> {\r\n const url = `${this.baseUrl}/contexts/${contextId}/tools`;\r\n const association = {\r\n toolId\r\n };\r\n return this.http.post<void>(url, association);\r\n }\r\n\r\n deleteToolAssociation(contextId: string, toolId: string): Observable<any> {\r\n const url = `${this.baseUrl}/contexts/${contextId}/tools/${toolId}`;\r\n return this.http.delete(url);\r\n }\r\n\r\n getPermissions(id: string): Observable<ContextPermission[]> {\r\n const url = this.baseUrl + '/contexts/' + id + '/permissions';\r\n return this.http.get<ContextPermission[]>(url);\r\n }\r\n\r\n addPermissionAssociation(\r\n contextId: string,\r\n profil: string,\r\n type: TypePermission\r\n ): Observable<ContextPermission[]> {\r\n const url = `${this.baseUrl}/contexts/${contextId}/permissions`;\r\n const association = {\r\n profil,\r\n typePermission: type\r\n };\r\n\r\n return this.http.post<ContextPermission[]>(url, association).pipe(\r\n catchError((res) => {\r\n this.handleError(res, undefined, true);\r\n throw [res]; // TODO Not sure about this.\r\n })\r\n );\r\n }\r\n\r\n deletePermissionAssociation(\r\n contextId: string,\r\n permissionId: string\r\n ): Observable<void> {\r\n const url = `${this.baseUrl}/contexts/${contextId}/permissions/${permissionId}`;\r\n return this.http.delete<void>(url);\r\n }\r\n\r\n // ======================================================================\r\n\r\n getLocalContexts(): Observable<ContextsList> {\r\n const url = this.getPath(this.options.contextListFile);\r\n return this.http.get<ContextsList>(url).pipe(\r\n map((res: any) => {\r\n return { ours: res };\r\n })\r\n );\r\n }\r\n\r\n getLocalContext(uri: string): Observable<DetailedContext> {\r\n const url = this.getPath(`${uri}.json`);\r\n return this.http.get<DetailedContext>(url).pipe(\r\n mergeMap((res) => {\r\n if (!res.base) {\r\n return of(res);\r\n }\r\n const urlBase = this.getPath(`${res.base}.json`);\r\n return this.http.get<DetailedContext>(urlBase).pipe(\r\n map((resBase: DetailedContext) => {\r\n const resMerge = res;\r\n resMerge.map = ObjectUtils.mergeDeep(resBase.map, res.map);\r\n resMerge.layers = (resBase.layers || [])\r\n .concat(res.layers || [])\r\n .reverse()\r\n .filter(\r\n (l, index, self) =>\r\n !l.id || self.findIndex((l2) => l2.id === l.id) === index\r\n )\r\n .reverse();\r\n resMerge.toolbar = res.toolbar || resBase.toolbar;\r\n resMerge.message = res.message || resBase.message;\r\n resMerge.messages = res.messages || resBase.messages;\r\n resMerge.tools = (res.tools || [])\r\n .concat(resBase.tools || [])\r\n .filter(\r\n (t, index, self) =>\r\n self.findIndex((t2) => t2.name === t.name) === index\r\n );\r\n return resMerge;\r\n }),\r\n catchError((err) => {\r\n this.handleError(err, uri);\r\n throw err;\r\n })\r\n );\r\n }),\r\n catchError((err2) => {\r\n this.handleError(err2, uri);\r\n throw err2;\r\n })\r\n );\r\n }\r\n\r\n loadContexts(permissions?: string[], hidden?: boolean) {\r\n let request;\r\n if (this.baseUrl) {\r\n request = this.get(permissions, hidden);\r\n } else {\r\n request = this.getLocalContexts();\r\n }\r\n request.subscribe((contexts) => {\r\n contexts.ours = this.importedContext.concat(contexts.ours);\r\n this.contexts$.next(contexts);\r\n });\r\n }\r\n\r\n loadDefaultContext() {\r\n const loadFct = (direct = false) => {\r\n if (!direct && this.baseUrl && this.authService.authenticated) {\r\n this.getDefault().subscribe(\r\n (_context: DetailedContext) => {\r\n this.defaultContextUri = _context.uri;\r\n this.addContextToList(_context);\r\n this.setContext(_context);\r\n },\r\n () => {\r\n this.defaultContextId$.next(undefined);\r\n this.loadContext(this.defaultContextUri);\r\n }\r\n );\r\n } else {\r\n this.loadContext(this.defaultContextUri);\r\n }\r\n };\r\n\r\n if (this.route && this.route.options.contextKey) {\r\n this.route.queryParams.pipe(debounceTime(100)).subscribe((params) => {\r\n const contextParam = params[this.route.options.contextKey as string];\r\n let direct = false;\r\n if (contextParam) {\r\n this.defaultContextUri = contextParam;\r\n direct = true;\r\n }\r\n loadFct(direct);\r\n });\r\n } else {\r\n loadFct();\r\n }\r\n }\r\n\r\n loadContext(uri: string) {\r\n const context = this.context$.value;\r\n\r\n if (context && context.uri === uri) {\r\n return;\r\n }\r\n\r\n this.getContextByUri(uri)\r\n .pipe(first())\r\n .subscribe(\r\n (_context: DetailedContext) => {\r\n this.addContextToList(_context);\r\n this.setContext(_context);\r\n },\r\n (err) => {\r\n if (uri !== this.options.defaultContextUri) {\r\n this.loadContext(this.options.defaultContextUri);\r\n }\r\n }\r\n );\r\n }\r\n\r\n setContext(context: DetailedContext) {\r\n this.handleContextMessage(context);\r\n const currentContext = this.context$.value;\r\n if (currentContext && context && context.id === currentContext.id) {\r\n if (context.map.view.keepCurrentView === undefined) {\r\n context.map.view.keepCurrentView = true;\r\n }\r\n this.context$.next(context);\r\n return;\r\n }\r\n\r\n if (!context.map) {\r\n context.map = { view: {} };\r\n }\r\n\r\n Object.assign(context.map.view, this.mapViewFromRoute);\r\n\r\n this.context$.next(context);\r\n }\r\n\r\n loadEditedContext(uri: string) {\r\n this.getContextByUri(uri).subscribe((_context: DetailedContext) => {\r\n this.setEditedContext(_context);\r\n });\r\n }\r\n\r\n setEditedContext(context: DetailedContext) {\r\n this.editedContext$.next(context);\r\n }\r\n\r\n getContextFromMap(igoMap: IgoMap, empty?: boolean): DetailedContext {\r\n const view = igoMap.ol.getView();\r\n const proj = view.getProjection().getCode();\r\n const center: any = new olPoint(view.getCenter()).transform(\r\n proj,\r\n 'EPSG:4326'\r\n );\r\n\r\n const context: DetailedContext = {\r\n uri: uuid(),\r\n title: '',\r\n scope: 'private',\r\n map: {\r\n view: {\r\n center: center.getCoordinates(),\r\n zoom: view.getZoom(),\r\n projection: proj,\r\n maxZoomOnExtent: igoMap.viewController.maxZoomOnExtent\r\n }\r\n },\r\n layers: [],\r\n tools: []\r\n };\r\n\r\n let layers = [];\r\n if (empty === true) {\r\n layers = igoMap.layers$\r\n .getValue()\r\n .filter(\r\n (lay) =>\r\n lay.baseLayer === true ||\r\n lay.options.id === 'searchPointerSummaryId'\r\n )\r\n .sort((a, b) => a.zIndex - b.zIndex);\r\n } else {\r\n layers = igoMap.layers$\r\n .getValue()\r\n .filter((lay) => !lay.id.includes('WfsWorkspaceTableDest'))\r\n .sort((a, b) => a.zIndex - b.zIndex);\r\n }\r\n\r\n let i = 0;\r\n for (const layer of layers) {\r\n const layerOptions: AnyLayerOptions = {\r\n title: layer.options.title,\r\n zIndex: ++i,\r\n visible: layer.visible,\r\n security: layer.options.security,\r\n opacity: layer.opacity\r\n };\r\n const opts = {\r\n id: layer.options.id ? String(layer.options.id) : undefined,\r\n layerOptions,\r\n sourceOptions: {\r\n type: layer.dataSource.options.type,\r\n params: layer.dataSource.options.params,\r\n url: layer.dataSource.options.url,\r\n queryable: layer.queryable\r\n }\r\n };\r\n if (opts.sourceOptions.type) {\r\n context.layers.push(opts);\r\n }\r\n }\r\n\r\n context.tools = this.tools.map((tool) => {\r\n return {\r\n id: String(tool.id),\r\n global: tool.global\r\n } as Tool;\r\n });\r\n\r\n return context;\r\n }\r\n\r\n getContextFromLayers(\r\n igoMap: IgoMap,\r\n layers: Layer[],\r\n name: string,\r\n keepCurrentView?: boolean\r\n ): DetailedContext {\r\n const currentContext = this.context$.getValue();\r\n const view = igoMap.ol.getView();\r\n const proj = view.getProjection().getCode();\r\n const center: any = new olPoint(view.getCenter()).transform(\r\n proj,\r\n 'EPSG:4326'\r\n );\r\n\r\n const context: DetailedContext = {\r\n uri: name,\r\n title: name,\r\n map: {\r\n view: {\r\n center: center.getCoordinates(),\r\n zoom: view.getZoom(),\r\n projection: proj,\r\n keepCurrentView\r\n }\r\n },\r\n layers: [],\r\n toolbar: [],\r\n tools: [],\r\n extraFeatures: []\r\n };\r\n\r\n const currentLayers = igoMap.layers$.getValue();\r\n context.layers = currentLayers\r\n .filter((l) => l.baseLayer)\r\n .map((l) => {\r\n return {\r\n baseLayer: true,\r\n sourceOptions: l.options.sourceOptions,\r\n title: l.options.title,\r\n visible: l.visible\r\n };\r\n });\r\n\r\n layers.forEach((layer) => {\r\n // Do not seem to work properly. layerFound is always undefined.\r\n const layerFound = currentContext.layers.find((contextLayer) => {\r\n const source = contextLayer.source;\r\n return source && layer.id === source.id && !contextLayer.baseLayer;\r\n });\r\n if (layerFound) {\r\n let layerFoundAs = layerFound as\r\n | VectorLayerOptions\r\n | VectorTileLayerOptions;\r\n let layerStyle = layerFoundAs.style;\r\n if (layerFoundAs.igoStyle?.styleByAttribute) {\r\n layerStyle = undefined;\r\n } else if (layerFoundAs.igoStyle?.clusterBaseStyle) {\r\n layerStyle = undefined;\r\n delete layerFound.sourceOptions[`source`];\r\n delete layerFound.sourceOptions[`format`];\r\n }\r\n const opts = {\r\n baseLayer: layerFound.baseLayer,\r\n title: layer.options.title,\r\n zIndex: layer.zIndex,\r\n igoStyle: {\r\n styleByAttribute: layerFoundAs.igoStyle?.styleByAttribute,\r\n clusterBaseStyle: layerFoundAs.igoStyle?.clusterBaseStyle\r\n },\r\n style: layerStyle,\r\n clusterParam: layerFound[`clusterParam`],\r\n visible: layer.visible,\r\n opacity: layer.opacity,\r\n sourceOptions: layerFound.sourceOptions\r\n };\r\n context.layers.push(opts);\r\n } else {\r\n if (!(layer.ol.getSource() instanceof olVectorSource)) {\r\n const catalogLayer = layer.options;\r\n catalogLayer.zIndex = layer.zIndex;\r\n (catalogLayer.visible = layer.visible),\r\n (catalogLayer.opacity = layer.opacity);\r\n delete catalogLayer.source;\r\n context.layers.push(catalogLayer);\r\n } else {\r\n const extraFeatures = this.getExtraFeatures(layer);\r\n extraFeatures.name = layer.options.title;\r\n extraFeatures.opacity = layer.opacity;\r\n extraFeatures.visible = layer.visible;\r\n context.extraFeatures.push(extraFeatures);\r\n }\r\n }\r\n });\r\n\r\n context.toolbar = this.toolbar;\r\n context.tools = this.tools;\r\n\r\n return context;\r\n }\r\n\r\n private getExtraFeatures(layer: Layer): ExtraFeatures {\r\n const writer = new GeoJSON();\r\n let olFeatures: Feature<Geometry>[];\r\n if (layer.ol.getSource() instanceof Cluster) {\r\n const clusterSource = layer.ol.getSource() as Cluster;\r\n olFeatures = clusterSource.getFeatures();\r\n olFeatures = (olFeatures as any).flatMap((cluster: any) =>\r\n cluster.get('features')\r\n );\r\n } else {\r\n const source = layer.ol.getSource() as olVectorSource;\r\n olFeatures = source.getFeatures();\r\n }\r\n const cleanedOlFeatures = this.exportService.generateFeature(\r\n olFeatures,\r\n 'GeoJSON',\r\n '_featureStore'\r\n );\r\n const features = writer.writeFeatures(cleanedOlFeatures, {\r\n dataProjection: 'EPSG:4326',\r\n featureProjection: 'EPSG:3857'\r\n });\r\n return JSON.parse(features);\r\n }\r\n\r\n setTools(tools: Tool[]) {\r\n this.tools = tools;\r\n }\r\n\r\n setToolbar(toolbar: string[]) {\r\n this.toolbar = toolbar;\r\n }\r\n\r\n private handleContextMessage(context: DetailedContext) {\r\n if (\r\n this.context$.value &&\r\n context.uri &&\r\n this.context$.value.uri !== context.uri\r\n ) {\r\n this.messageService.removeAllAreNotError();\r\n }\r\n\r\n context.messages = context.messages ? context.messages : [];\r\n context.messages.push(context.message);\r\n context.messages.map((message) => {\r\n if (message) {\r\n this.messageService.message(message as Message);\r\n }\r\n });\r\n }\r\n\r\n private getContextByUri(uri: string): Observable<DetailedContext> {\r\n if (this.baseUrl) {\r\n let contextToLoad;\r\n for (const key of Object.keys(this.contexts$.value)) {\r\n contextToLoad = this.contexts$.value[key].find((c) => {\r\n return c.uri === uri;\r\n });\r\n if (contextToLoad) {\r\n break;\r\n }\r\n }\r\n\r\n if (contextToLoad && contextToLoad.imported) {\r\n return of(contextToLoad);\r\n }\r\n\r\n // TODO : use always id or uri\r\n const id = contextToLoad ? contextToLoad.id : uri;\r\n return this.getDetails(id);\r\n }\r\n\r\n const importedContext = this.contexts$.value.ours.find((currentContext) => {\r\n return currentContext.uri === uri && currentContext.imported === true;\r\n });\r\n\r\n if (importedContext) {\r\n return of(importedContext);\r\n } else {\r\n return this.getLocalContext(uri);\r\n }\r\n }\r\n\r\n getContextLayers(igoMap: IgoMap) {\r\n const layers: Layer[] = [];\r\n const mapLayers = igoMap.layers$.getValue();\r\n mapLayers.forEach((layer) => {\r\n if (!layer.baseLayer && layer.options.id !== 'searchPointerSummaryId') {\r\n layers.push(layer);\r\n }\r\n });\r\n return layers;\r\n }\r\n\r\n private readParamsFromRoute() {\r\n if (!this.route) {\r\n return;\r\n }\r\n\r\n this.route.queryParams.subscribe((params) => {\r\n const centerKey = this.route.options.centerKey;\r\n if (centerKey && params[centerKey as string]) {\r\n const centerParams = params[centerKey as string];\r\n this.mapViewFromRoute.center = centerParams.split(',').map(Number);\r\n }\r\n\r\n const projectionKey = this.route.options.projectionKey;\r\n if (projectionKey && params[projectionKey as string]) {\r\n const projectionParam = params[projectionKey as string];\r\n this.mapViewFromRoute.projection = projectionParam;\r\n }\r\n\r\n const zoomKey = this.route.options.zoomKey;\r\n if (zoomKey && params[zoomKey as string]) {\r\n const zoomParam = params[zoomKey as string];\r\n this.mapViewFromRoute.zoom = Number(zoomParam);\r\n }\r\n });\r\n }\r\n\r\n private getPath(file: string) {\r\n const basePath = this.options.basePath.replace(/\\/$/, '');\r\n\r\n return `${basePath}/${file}`;\r\n }\r\n\r\n private handleError(\r\n error: HttpErrorResponse,\r\n uri: string,\r\n permissionError?: boolean\r\n ) {\r\n const context = this.contexts$.value.ours.find((obj) => obj.uri === uri);\r\n const titleContext = context ? context.title : uri;\r\n error.error.title = this.languageService.translate.instant(\r\n 'igo.context.contextManager.invalid.title'\r\n );\r\n\r\n error.error.message = this.languageService.translate.instant(\r\n 'igo.context.contextManager.invalid.text',\r\n { value: titleContext }\r\n );\r\n\r\n error.error.toDisplay = true;\r\n\r\n if (permissionError) {\r\n error.error.title = this.languageService.translate.instant(\r\n 'igo.context.contextManager.errors.addPermissionTitle'\r\n );\r\n error.error.message = this.languageService.translate.instant(\r\n 'igo.context.contextManager.errors.addPermission'\r\n );\r\n }\r\n this.messageService.error(\r\n 'igo.context.contextManager.errors.addPermission',\r\n 'igo.context.contextManager.errors.addPermissionTitle'\r\n );\r\n }\r\n\r\n private handleContextsChange(keepCurrentContext = true) {\r\n const context = this.context$.value;\r\n const editedContext = this.editedContext$.value;\r\n if (!context || context.uri === this.options.defaultContextUri) {\r\n keepCurrentContext = false;\r\n }\r\n if (!keepCurrentContext || !this.findContext(context)) {\r\n this.defaultContextUri = undefined;\r\n this.loadDefaultContext();\r\n } else {\r\n this.getContextByUri(context.uri)\r\n .pipe(first())\r\n .subscribe((newContext: DetailedContext) => {\r\n this.toolsChanged$.next(newContext);\r\n });\r\n\r\n if (this.baseUrl && this.authService.authenticated) {\r\n this.getDefault().subscribe();\r\n }\r\n }\r\n const editedFound = this.findContext(editedContext);\r\n if (!editedFound || editedFound.permission !== 'write') {\r\n this.setEditedContext(undefined);\r\n }\r\n }\r\n\r\n private addContextToList(context: Context) {\r\n const contextFound = this.findContext(context);\r\n if (!contextFound) {\r\n const contextSimplifie = {\r\n id: context.id,\r\n uri: context.uri,\r\n title: context.title,\r\n scope: context.scope,\r\n permission: TypePermission[TypePermission.read]\r\n };\r\n\r\n if (this.contexts$.value && this.contexts$.value.public) {\r\n this.contexts$.value.public.push(contextSimplifie);\r\n this.contexts$.next(this.contexts$.value);\r\n }\r\n }\r\n }\r\n\r\n private findContext(context: Context) {\r\n if (!context) {\r\n return false;\r\n }\r\n\r\n const contexts = this.contexts$.value;\r\n let found;\r\n for (const key of Object.keys(contexts)) {\r\n const value = contexts[key];\r\n found = value.find(\r\n (c) =>\r\n (context.id && c.id === context.id) ||\r\n (context.uri && c.uri === context.uri)\r\n );\r\n if (found) {\r\n break;\r\n }\r\n }\r\n\r\n return found;\r\n }\r\n}\r\n","export class ExportError extends Error {}\n\nexport class ExportInvalidFileError extends ExportError {\n constructor() {\n super('Invalid context');\n Object.setPrototypeOf(this, ExportInvalidFileError.prototype);\n }\n}\n\nexport class ExportNothingToExportError extends ExportError {\n constructor() {\n super('Nothing to export');\n Object.setPrototypeOf(this, ExportNothingToExportError.prototype);\n }\n}\n","import { Injectable } from '@angular/core';\r\n\r\nimport { downloadContent } from '@igo2/utils';\r\n\r\nimport { Observable, Observer } from 'rxjs';\r\n\r\nimport { DetailedContext } from '../../context-manager/shared/context.interface';\r\nimport { ExportNothingToExportError } from './context-export.errors';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ContextExportService {\r\n export(res: DetailedContext): Observable<void> {\r\n return this.exportAsync(res);\r\n }\r\n\r\n protected exportAsync(res: DetailedContext): Observable<void> {\r\n const doExport = (observer: Observer<void>) => {\r\n const nothingToExport = this.nothingToExport(res);\r\n if (nothingToExport === true) {\r\n observer.error(new ExportNothingToExportError());\r\n return;\r\n }\r\n const contextJSON = JSON.stringify(res);\r\n downloadContent(\r\n contextJSON,\r\n 'text/json;charset=utf-8',\r\n `${res.uri}.json`\r\n );\r\n observer.complete();\r\n };\r\n return new Observable(doExport);\r\n }\r\n\r\n protected nothingToExport(res: DetailedContext): boolean {\r\n if (res.map === undefined) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n}\r\n","import { MessageService } from '@igo2/core';\r\n\r\nimport { ExportNothingToExportError } from './context-export.errors';\r\n\r\nexport function handleFileExportError(\r\n error: Error,\r\n messageService: MessageService\r\n) {\r\n if (error instanceof ExportNothingToExportError) {\r\n this.handleNothingToExportError(messageService);\r\n return;\r\n }\r\n messageService.error(\r\n 'igo.context.contextImportExport.export.failed.text',\r\n 'igo.context.contextImportExport.export.failed.title'\r\n );\r\n}\r\n\r\nexport function handleFileExportSuccess(messageService: MessageService) {\r\n messageService.success(\r\n 'igo.context.contextImportExport.export.success.text',\r\n 'igo.context.contextImportExport.export.success.title'\r\n );\r\n}\r\n\r\nexport function handleNothingToExportError(messageService: MessageService) {\r\n messageService.error(\r\n 'igo.context.contextImportExport.export.nothing.text',\r\n 'igo.context.contextImportExport.export.nothing.title'\r\n );\r\n}\r\n","export class ImportError extends Error {}\r\n\r\nexport class ImportInvalidFileError extends ImportError {\r\n constructor() {\r\n super('Invalid file');\r\n Object.setPrototypeOf(this, ImportInvalidFileError.prototype);\r\n }\r\n}\r\n\r\nexport class ImportUnreadableFileError extends ImportError {\r\n constructor() {\r\n super('Failed to read file');\r\n Object.setPrototypeOf(this, ImportUnreadableFileError.prototype);\r\n }\r\n}\r\n\r\nexport class ImportNothingToImportError extends ImportError {\r\n constructor() {\r\n super('Nothing to import');\r\n Object.setPrototypeOf(this, ImportNothingToImportError.prototype);\r\n }\r\n}\r\n\r\nexport class ImportSizeError extends ImportError {\r\n constructor() {\r\n super('File is too large');\r\n Object.setPrototypeOf(this, ImportNothingToImportError.prototype);\r\n }\r\n}\r\n\r\nexport class ImportSRSError extends ImportError {\r\n constructor() {\r\n super('Invalid SRS definition');\r\n Object.setPrototypeOf(this, ImportNothingToImportError.prototype);\r\n }\r\n}\r\n","import { MessageService } from '@igo2/core';\r\nimport {\r\n ClusterDataSource,\r\n ClusterDataSourceOptions,\r\n ClusterParam,\r\n FeatureDataSource,\r\n FeatureDataSourceOptions,\r\n IgoMap,\r\n QueryableDataSourceOptions,\r\n StyleByAttribute,\r\n StyleListService,\r\n StyleService,\r\n VectorLayer,\r\n featureRandomStyle,\r\n featureRandomStyleFunction\r\n} from '@igo2/geo';\r\n\r\nimport OlFeature from 'ol/Feature';\r\nimport GeoJSON from 'ol/format/GeoJSON';\r\nimport type { default as OlGeometry } from 'ol/geom/Geometry';\r\n\r\nimport {\r\n DetailedContext,\r\n ExtraFeatures\r\n} from '../../context-manager/shared/context.interface';\r\nimport { ContextService } from '../../context-manager/shared/context.service';\r\n\r\nexport function handleFileImportSuccess(\r\n file: File,\r\n context: DetailedContext,\r\n messageService: MessageService,\r\n contextService: ContextService\r\n) {\r\n if (Object.keys(context).length <= 0) {\r\n handleNothingToImportError(file, messageService);\r\n return;\r\n }\r\n\r\n const contextTitle = computeLayerTitleFromFile(file);\r\n\r\n addContextToContextList(context, contextTitle, contextService);\r\n\r\n messageService.success(\r\n 'igo.context.contextImportExport.import.success.text',\r\n 'igo.context.contextImportExport.import.success.title',\r\n undefined,\r\n {\r\n value: contextTitle\r\n }\r\n );\r\n}\r\n\r\nexport function handleFileImportError(\r\n file: File,\r\n error: Error,\r\n messageService: MessageService,\r\n sizeMb?: number\r\n) {\r\n sizeMb = sizeMb ? sizeMb : 30;\r\n const errMapping = {\r\n 'Invalid file': handleInvalidFileImportError,\r\n 'File is too large': handleSizeFileImportError,\r\n 'Failed to read file': handleUnreadbleFileImportError\r\n };\r\n errMapping[error.message](file, error, messageService, sizeMb);\r\n}\r\n\r\nexport function handleInvalidFileImportError(\r\n file: File,\r\n error: Error,\r\n messageService: MessageService\r\n) {\r\n messageService.error(\r\n 'igo.context.contextImportExport.import.invalid.text',\r\n 'igo.context.contextImportExport.import.invalid.title',\r\n undefined,\r\n {\r\n value: file.name,\r\n mimeType: file.type\r\n }\r\n );\r\n}\r\n\r\nexport function handleSizeFileImportError(\r\n file: File,\r\n error: Error,\r\n messageService: MessageService,\r\n sizeMb: number\r\n) {\r\n messageService.error(\r\n 'igo.context.contextImportExport.import.tooLarge.text',\r\n 'igo.context.contextImportExport.import.tooLarge.title',\r\n undefined,\r\n {\r\n value: file.name,\r\n size: sizeMb\r\n }\r\n );\r\n}\r\n\r\nexport function handleUnreadbleFileImportError(\r\n file: File,\r\n error: Error,\r\n messageService: MessageService\r\n) {\r\n messageService.error(\r\n 'igo.context.contextImportExport.import.unreadable.text',\r\n 'igo.context.contextImportExport.import.unreadable.title',\r\n undefined,\r\n {\r\n value: file.name\r\n }\r\n );\r\n}\r\n\r\nexport function handleNothingToImportError(\r\n file: File,\r\n messageService: MessageService\r\n) {\r\n messageService.error(\r\n 'igo.context.contextImportExport.import.empty.text',\r\n 'igo.context.contextImportExport.import.empty.title',\r\n undefined,\r\n { value: file.name }\r\n );\r\n}\r\n\r\nexport function addContextToContextList(\r\n context: DetailedContext,\r\n contextTitle: string,\r\n contextService: ContextService\r\n) {\r\n context.title = contextTitle;\r\n context.imported = true;\r\n contextService.contexts$.value.ours.unshift(context);\r\n contextService.contexts$.next(contextService.contexts$.value);\r\n contextService.importedContext.unshift(context);\r\n contextService.loadContext(context.uri);\r\n}\r\n\r\nexport function getFileExtension(file: File): string {\r\n return file.name.split('.').pop().toLowerCase();\r\n}\r\n\r\nexport function computeLayerTitleFromFile(file: File): string {\r\n return file.name.substr(0, file.name.lastIndexOf('.'));\r\n}\r\n\r\nexport function addImportedFeaturesToMap(\r\n extraFeatures: ExtraFeatures,\r\n map: IgoMap\r\n): VectorLayer {\r\n const sourceOptions: FeatureDataSourceOptions & QueryableDataSourceOptions = {\r\n type: 'vector',\r\n queryable: true\r\n };\r\n\r\n const olFeatures = collectFeaturesFromExtraFeatures(extraFeatures);\r\n const source = new FeatureDataSource(sourceOptions);\r\n source.ol.addFeatures(olFeatures);\r\n\r\n let randomStyle;\r\n let editable: boolean = false;\r\n const featureKeys = olFeatures[0]?.getKeys() ?? [];\r\n if (featureKeys.includes('_style') || featureKeys.includes('_mapTitle')) {\r\n randomStyle = featureRandomStyleFunction();\r\n } else {\r\n randomStyle = featureRandomStyle();\r\n editable = true;\r\n }\r\n const layer = new VectorLayer({\r\n title: extraFeatures.name,\r\n isIgoInternalLayer: true,\r\n source,\r\n igoStyle: { editable },\r\n style: randomStyle,\r\n visible: extraFeatures.visible,\r\n opacity: extraFeatures.opacity\r\n });\r\n map.addLayer(layer);\r\n\r\n return layer;\r\n}\r\n\r\nexport function addImportedFeaturesStyledToMap(\r\n extraFeatures: ExtraFeatures,\r\n map: IgoMap,\r\n styleListService: StyleListService,\r\n styleService: StyleService\r\n): VectorLayer {\r\n let style;\r\n let distance: number;\r\n\r\n if (styleListService.getStyleList(extraFeatures.name + '.styleByAttribute')) {\r\n const styleByAttribute: StyleByAttribute = styleListService.getStyleList(\r\n extraFeatures.name + '.styleByAttribute'\r\n );\r\n\r\n style = (feature, resolution) => {\r\n return styleService.createStyleByAttribute(\r\n feature,\r\n styleByAttribute,\r\n resolution\r\n );\r\n };\r\n } else if (\r\n styleListService.getStyleList(extraFeatures.name + '.clusterStyle')\r\n ) {\r\n const clusterParam: ClusterParam = styleListService.getStyleList(\r\n extraFeatures.name + '.clusterParam'\r\n );\r\n distance = styleListService.getStyleList(extraFeatures.name + '.distance');\r\n\r\n style = (feature, resolution) => {\r\n const baseStyle = styleService.createStyle(\r\n styleListService.getStyleList(extraFeatures.name + '.clusterStyle'),\r\n feature,\r\n resolution\r\n );\r\n return styleService.createClusterStyle(\r\n feature,\r\n resolution,\r\n clusterParam,\r\n baseStyle\r\n );\r\n };\r\n } else if (styleListService.getStyleList(extraFeatures.name + '.style')) {\r\n style = (feature, resolution) =>\r\n styleService.createStyle(\r\n styleListService.getStyleList(extraFeatures.name + '.style'),\r\n feature,\r\n resolution\r\n );\r\n } else {\r\n style = (feature, resolution) =>\r\n styleService.createStyle(\r\n styleListService.getStyleList('default.style'),\r\n feature,\r\n resolution\r\n );\r\n }\r\n let source;\r\n const olFeatures = collectFeaturesFromExtraFeatures(extraFeatures);\r\n if (styleListService.getStyleList(extraFeatures.name + '.clusterStyle')) {\r\n const sourceOptions: ClusterDataSourceOptions & QueryableDataSourceOptions =\r\n {\r\n distance,\r\n type: 'cluster',\r\n queryable: true\r\n };\r\n source = new ClusterDataSource(sourceOptions);\r\n source.ol.source.addFeatures(olFeatures);\r\n } else {\r\n const sourceOptions: FeatureDataSourceOptions & QueryableDataSourceOptions =\r\n {\r\n type: 'vector',\r\n queryable: true\r\n };\r\n source = new FeatureDataSource(sourceOptions);\r\n source.ol.addFeatures(olFeatures);\r\n }\r\n\r\n const layer = new VectorLayer({\r\n title: extraFeatures.name,\r\n isIgoInternalLayer: true,\r\n source,\r\n style,\r\n opacity: extraFeatures.opacity,\r\n visible: extraFeatures.visible\r\n });\r\n map.addLayer(layer);\r\n\r\n return layer;\r\n}\r\n\r\nfunction collectFeaturesFromExtraFeatures(\r\n featureCollection: ExtraFeatures\r\n): OlFeature<OlGeometry>[] {\r\n const format = new GeoJSON();\r\n const features = format.readFeatures(featureCollection, {\r\n dataProjection: 'EPSG:4326',\r\n featureProjection: 'EPSG:3857'\r\n });\r\n return features;\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\nimport { ConfigService } from '@igo2/core';\r\n\r\nimport { Observable, Observer } from 'rxjs';\r\n\r\nimport { DetailedContext } from '../../context-manager/shared/context.interface';\r\nimport {\r\n ImportInvalidFileError,\r\n ImportSizeError,\r\n ImportUnreadableFileError\r\n} from './context-import.errors';\r\nimport { getFileExtension } from './context-import.utils';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ContextImportService {\r\n static allowedMimeTypes = ['application/json'];\r\n\r\n static allowedExtensions = 'json';\r\n\r\n private clientSideFileSizeMax: number;\r\n\r\n constructor(private config: ConfigService) {\r\n const configFileSizeMb = this.config.getConfig(\r\n 'importExport.clientSideFileSizeMaxMb'\r\n );\r\n this.clientSideFileSizeMax =\r\n (configFileSizeMb ? configFileSizeMb : 30) * Math.pow(1024, 2);\r\n }\r\n\r\n import(file: File): Observable<DetailedContext> {\r\n return this.importAsync(file);\r\n }\r\n\r\n private getFileImporter(\r\n file: File\r\n ): (\r\n file: File,\r\n observer: Observer<DetailedContext>,\r\n projectionIn: string,\r\n projectionOut: string\r\n ) => void {\r\n const extension = getFileExtension(file);\r\n const mimeType = file.type;\r\n const allowedMimeTypes = [...ContextImportService.allowedMimeTypes];\r\n const allowedExtensions = ContextImportService.allowedExtensions;\r\n\r\n if (\r\n allowedMimeTypes.indexOf(mimeType) < 0 &&\r\n allowedExtensions.indexOf(extension) < 0\r\n ) {\r\n return undefined;\r\n } else if (\r\n mimeType === 'application/json' ||\r\n extension === ContextImportService.allowedExtensions\r\n ) {\r\n return this.importFile;\r\n }\r\n return undefined;\r\n }\r\n\r\n private importAsync(file: File): Observable<DetailedContext> {\r\n const doImport = (observer: Observer<DetailedContext>) => {\r\n if (file.size >= this.clientSideFileSizeMax) {\r\n observer.error(new ImportSizeError());\r\n return;\r\n }\r\n const importer = this.getFileImporter(file);\r\n if (importer === undefined) {\r\n observer.error(new ImportInvalidFileError());\r\n return;\r\n }\r\n\r\n importer.call(this, file, observer);\r\n };\r\n\r\n return new Observable(doImport);\r\n }\r\n\r\n private importFile(file: File, observer: Observer<DetailedContext>) {\r\n const reader = new FileReader();\r\n\r\n reader.onload = (event: any) => {\r\n try {\r\n const context = this.parseContextFromFile(file, event.target.result);\r\n observer.next(context);\r\n } catch (e) {\r\n observer.error(new ImportUnreadableFileError());\r\n }\r\n\r\n observer.complete();\r\n };\r\n\r\n reader.onerror = (evt) => {\r\n observer.error(new ImportUnreadableFileError());\r\n };\r\n\r\n reader.readAsText(file, 'UTF-8');\r\n }\r\n\r\n private parseContextFromFile(file: File, data: string): DetailedContext {\r\n const context: DetailedContext = JSON.parse(data);\r\n return context;\r\n }\r\n}\r\n","import { Component, Input, OnDestroy, OnInit } from '@angular/core';\r\nimport {\r\n UntypedFormBuilder,\r\n UntypedFormGroup,\r\n Validators\r\n} from '@angular/forms';\r\n\r\nimport { ConfigService, MessageService } from '@igo2/core';\r\nimport { Layer, VectorLayer } from '@igo2/geo';\r\nimport type { IgoMap } from '@igo2/geo';\r\n\r\nimport { BehaviorSubject, Subscription } from 'rxjs';\r\nimport { take } from 'rxjs/operators';\r\n\r\nimport { DetailedContext } from '../../context-manager/shared/context.interface';\r\nimport { ContextService } from '../../context-manager/shared/context.service';\r\nimport { ContextExportService } from '../shared/context-export.service';\r\nimport { handleFileExportError } from '../shared/context-export.utils';\r\nimport { handleFileExportSuccess } from '../shared/context-export.utils';\r\nimport { ContextImportService } from '../shared/context-import.service';\r\nimport {\r\n handleFileImportError,\r\n handleFileImportSuccess\r\n} from '../shared/context-import.utils';\r\n\r\n@Component({\r\n selector: 'igo-context-import-export',\r\n templateUrl: './context-import-export.component.html',\r\n styleUrls: ['./context-import-export.component.scss']\r\n})\r\nexport class ContextImportExportComponent implements OnInit, OnDestroy {\r\n public form: UntypedFormGroup;\r\n public layers: VectorLayer[];\r\n public inputProj: string = 'EPSG:4326';\r\n public loading$ = new BehaviorSubject(false);\r\n public forceNaming = false;\r\n public layerList: Layer[];\r\n public userControlledLayerList: Layer[];\r\n public res: DetailedContext;\r\n private clientSideFileSizeMax: number;\r\n public fileSizeMb: number;\r\n public activeImportExport: string = 'import';\r\n\r\n private layers$$: Subscription;\r\n\r\n @Input() map: IgoMap;\r\n\r\n constructor(\r\n private contextImportService: ContextImportService,\r\n private contextExportService: ContextExportService,\r\n private messageService: MessageService,\r\n private formBuilder: UntypedFormBuilder,\r\n private config: ConfigService,\r\n private contextService: ContextService\r\n ) {\r\n this.buildForm();\r\n }\r\n\r\n ngOnInit() {\r\n const configFileSizeMb = this.config.getConfig(\r\n 'importExport.clientSideFileSizeMaxMb'\r\n );\r\n this.clientSideFileSizeMax =\r\n (configFileSizeMb ? configFileSizeMb : 30) * Math.pow(1024, 2);\r\n this.fileSizeMb = this.clientSideFileSizeMax / Math.pow(1024, 2);\r\n this.layers$$ = this.map.layers$.subscribe(() => {\r\n this.layerList = this.contextService.getContextLayers(this.map);\r\n this.userControlledLayerList = this.layerList.filter(\r\n (layer) => layer.showInLayerList\r\n );\r\n });\r\n }\r\n\r\n importFiles(files: File[]) {\r\n this.loading$.next(true);\r\n for (const file of files) {\r\n this.contextImportService\r\n .import(file)\r\n .pipe(take(1))\r\n .subscribe(\r\n (context: DetailedContext) => this.onFileImportSuccess(file, context),\r\n (error: Error) => this.onFileImportError(file, error),\r\n () => {\r\n this.loading$.next(false);\r\n }\r\n );\r\n }\r\n }\r\n\r\n handleExportFormSubmit(contextOptions) {\r\n this.loading$.next(true);\r\n this.res = this.contextService.getContextFromLayers(\r\n this.map,\r\n contextOptions.layers,\r\n contextOptions.name,\r\n false\r\n );\r\n this.res.imported = true;\r\n this.contextExportService\r\n .export(this.res)\r\n .pipe(take(1))\r\n .subscribe(\r\n () => {},\r\n (error: Error) => this.onFileExportError(error),\r\n () => {\r\n this.onFileExportSuccess();\r\n this.loading$.next(false);\r\n }\r\n );\r\n }\r\n\r\n private buildForm() {\r\n this.form = this.formBuilder.group({\r\n layers: ['', [Validators.required]],\r\n name: ['', [Validators.required]]\r\n });\r\n }\r\n\r\n private onFileImportSuccess(file: File, context: DetailedContext) {\r\n handleFileImportSuccess(\r\n file,\r\n context,\r\n this.messageService,\r\n this.contextService\r\n );\r\n }\r\n\r\n private onFileImportError(file: File, error: Error) {\r\n this.loading$.next(false);\r\n handleFileImportError(file, error, this.messageService, this.fileSizeMb);\r\n }\r\n\r\n private onFileExportError(error: Error) {\r\n this.loading$.next(false);\r\n handleFileExportError(error, this.messageService);\r\n }\r\n\r\n private onFileExportSuccess() {\r\n handleFileExportSuccess(this.messageService);\r\n }\r\n\r\n selectAll(e) {\r\n if (e._selected) {\r\n this.form.controls.layers.setValue(this.userControlledLayerList);\r\n e._selected = true;\r\n }\r\n if (e._selected === false) {\r\n this.form.controls.layers.setValue([]);\r\n }\r\n }\r\n\r\n onImportExportChange(event) {\r\n this.activeImportExport = event.value;\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.layers$$.unsubscribe();\r\n }\r\n}\r\n","<div class=\"import-export-toggle mat-typography\">\r\n <mat-button-toggle-group\r\n [value]=\"activeImportExport\"\r\n (change)=\"onImportExportChange($event)\"\r\n >\r\n <mat-button-toggle [value]=\"'import'\">\r\n {{ 'igo.geo.importExportForm.importTabTitle' | translate }}\r\n </mat-button-toggle>\r\n <mat-button-toggle [value]=\"'export'\">\r\n {{ 'igo.geo.importExportForm.exportTabTitle' | translate }}\r\n </mat-button-toggle>\r\n </mat-button-toggle-group>\r\n</div>\r\n\r\n<div *ngIf=\"activeImportExport === 'import'\">\r\n <form class=\"igo-form\">\r\n <div class=\"igo-form-button-group\">\r\n <button\r\n mat-raised-button\r\n type=\"button\"\r\n (click)=\"fileInput.click()\"\r\n [disabled]=\"loading$ | async\"\r\n >\r\n {{ 'igo.geo.importExportForm.importButton' | translate }}\r\n </button>\r\n <igo-spinner [shown]=\"loading$ | async\"></igo-spinner>\r\n <input\r\n #fileInput\r\n type=\"file\"\r\n [style.display]=\"'none'\"\r\n (click)=\"fileInput.value = null\"\r\n (change)=\"importFiles($event.target.files)\"\r\n />\r\n </div>\r\n </form>\r\n <section class=\"mat-typography\">\r\n <h4>{{ 'igo.geo.importExportForm.importClarifications' | translate }}</h4>\r\n <ul>\r\n <li>\r\n {{\r\n 'igo.geo.importExportForm.importSizeMax'\r\n | translate: { size: fileSizeMb }\r\n }}\r\n </li>\r\n </ul>\r\n </section>\r\n</div>\r\n\r\n<form\r\n class=\"igo-form\"\r\n *ngIf=\"activeImportExport === 'export'\"\r\n [formGroup]=\"form\"\r\n>\r\n <div class=\"igo-input-container\">\r\n <mat-form-field class=\"example-full-width\">\r\n <mat-label>{{\r\n 'igo.context.contextImportExport.export.exportContextName' | translate\r\n }}</mat-label>\r\n <input formControlName=\"name\" matInput [value]=\"\" />\r\n </mat-form-field>\r\n </div>\r\n <div class=\"igo-input-container\">\r\n <mat-form-field>\r\n <mat-label>{{\r\n 'igo.context.contextImportExport.export.exportPlaceHolder' | translate\r\n }}</mat-label>\r\n <mat-select formControlName=\"layers\" multiple>\r\n <mat-option [value]=\"1\" (click)=\"selectAll(e)\" #e>\r\n {{\r\n 'igo.context.contextImportExport.export.exportSelectAll' | translate\r\n }}\r\n </mat-option>\r\n <mat-divider></mat-divider>\r\n <mat-option\r\n *ngFor=\"let layer of userControlledLayerList\"\r\n [value]=\"layer\"\r\n >{{ layer.title }}</mat-option\r\n >\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"igo-form-button-group\">\r\n <button\r\n mat-raised-button\r\n type=\"button\"\r\n [disabled]=\"!form.valid || (loading$ | async)\"\r\n (click)=\"handleExportFormSubmit(form.value)\"\r\n >\r\n {{ 'igo.geo.importExportForm.exportButton' | translate }}\r\n </button>\r\n <igo-spinner [shown]=\"loading$ | async\"></igo-spinner>\r\n </div>\r\n</form>\r\n","import { CommonModule } from '@angular/common';\r\nimport { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatOptionModule } from '@angular/material/core';\r\nimport { MatDividerModule } from '@angular/material/divider';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatTabsModule } from '@angular/material/tabs';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\n\r\nimport { IgoSpinnerModule } from '@igo2/common';\r\nimport { IgoLanguageModule } from '@igo2/core';\r\n\r\nimport { ContextImportExportComponent } from './context-import-export/context-import-export.component';\r\n\r\n@NgModule({\r\n imports: [\r\n FormsModule,\r\n ReactiveFormsModule,\r\n CommonModule,\r\n MatButtonModule,\r\n MatButtonToggleModule,\r\n MatDividerModule,\r\n MatTabsModule,\r\n MatSelectModule,\r\n MatOptionModule,\r\n MatFormFieldModule,\r\n MatInputModule,\r\n MatCheckboxModule,\r\n IgoLanguageModule,\r\n IgoSpinnerModule,\r\n MatTooltipModule\r\n ],\r\n exports: [ContextImportExportComponent],\r\n declarations: [ContextImportExportComponent]\r\n})\r\nexport class IgoContextImportExportModule {\r\n static forRoot(): ModuleWithProviders<IgoContextImportExportModule> {\r\n return {\r\n ngModule: IgoContextImportExportModule\r\n };\r\n }\r\n}\r\n","import { Component } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\n\n@Component({\n selector: 'igo-bookmark-dialog',\n templateUrl: './bookmark-dialog.component.html'\n})\nexport class BookmarkDialogComponent {\n public title: string;\n\n constructor(public dialogRef: MatDialogRef<BookmarkDialogComponent>) {}\n}\n","<h1 mat-dialog-title class=\"mat-typography\">\r\n {{ 'igo.context.bookmarkButton.dialog.title' | translate }}\r\n</h1>\r\n<div mat-dialog-content class=\"mat-typography\">\r\n <mat-form-field>\r\n <input\r\n matInput\r\n required\r\n autocomplete=\"off\"\r\n maxlength=\"128\"\r\n [placeholder]=\"\r\n 'igo.context.bookmarkButton.dialog.placeholder' | translate\r\n \"\r\n [(ngModel)]=\"title\"\r\n />\r\n </mat-form-field>\r\n</div>\r\n<div mat-dialog-actions>\r\n <button\r\n mat-button\r\n color=\"primary\"\r\n [disabled]=\"!title\"\r\n (click)=\"dialogRef.close(title)\"\r\n >\r\n {{ 'igo.common.confirmDialog.confirmBtn' | translate }}\r\n </button>\r\n <button mat-button (click)=\"dialogRef.close(false)\">\r\n {{ 'igo.common.confirmDialog.cancelBtn' | translate }}\r\n </button>\r\n</div>\r\n","import { Component, Input } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\n\r\nimport { MessageService } from '@igo2/core';\r\nimport type { IgoMap } from '@igo2/geo';\r\n\r\nimport { take } from 'rxjs/operators';\r\n\r\nimport { ContextService } from '../../context-manager/shared/context.service';\r\nimport { BookmarkDialogComponent } from './bookmark-dialog.component';\r\n\r\n@Component({\r\n selector: 'igo-bookmark-button',\r\n templateUrl: './bookmark-button.component.html',\r\n styleUrls: ['./bookmark-button.component.scss']\r\n})\r\nexport class BookmarkButtonComponent {\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 color(): string {\r\n return this._color;\r\n }\r\n set color(value: string) {\r\n this._color = value;\r\n }\r\n private _color: string;\r\n\r\n constructor(\r\n private dialog: MatDialog,\r\n private contextService: ContextService,\r\n private messageService: MessageService\r\n ) {}\r\n\r\n createContext() {\r\n this.dialog\r\n .open(BookmarkDialogComponent, { disableClose: false })\r\n .afterClosed()\r\n .pipe(take(1))\r\n .subscribe((title) => {\r\n if (title) {\r\n const context = this.contextService.getContextFromMap(this.map);\r\n context.title = title;\r\n this.contextService.create(context).subscribe(() => {\r\n this.messageService.success(\r\n 'igo.context.bookmarkButton.dialog.createMsg',\r\n 'igo.context.bookmarkButton.dialog.createTitle',\r\n undefined,\r\n { value: context.title }\r\n );\r\n this.contextService.loadContext(context.uri);\r\n });\r\n }\r\n });\r\n }\r\n}\r\n","<div class=\"igo-bookmark-button-container\">\r\n <button\r\n mat-icon-button\r\n [matTooltip]=\"'igo.context.bookmarkButton.create' | translate\"\r\n matTooltipPosition=\"above\"\r\n [color]=\"color\"\r\n (click)=\"createContext()\"\r\n >\r\n <mat-icon svgIcon=\"star\"></mat-icon>\r\n </button>\r\n</div>\r\n","import { Component } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\n\n@Component({\n selector: 'igo-poi-dialog',\n templateUrl: './poi-dialog.component.html'\n})\nexport class PoiDialogComponent {\n public title: string;\n\n constructor(public dialogRef: MatDialogRef<PoiDialogComponent>) {}\n}\n","<h1 mat-dialog-title class=\"mat-typography\">\r\n {{ 'igo.context.poiButton.dialog.title' | translate }}\r\n</h1>\r\n<div mat-dialog-content>\r\n <mat-form-field>\r\n <input\r\n matInput\r\n required\r\n autocomplete=\"off\"\r\n [placeholder]=\"'igo.context.poiButton.dialog.placeholder' | translate\"\r\n [(ngModel)]=\"title\"\r\n />\r\n </mat-form-field>\r\n</div>\r\n<div mat-dialog-actions>\r\n <button\r\n mat-button\r\n color=\"primary\"\r\n [disabled]=\"!title\"\r\n (click)=\"dialogRef.close(title)\"\r\n >\r\n {{ 'igo.common.confirmDialog.confirmBtn' | translate }}\r\n </button>\r\n <button mat-button (click)=\"dialogRef.close(false)\">\r\n {{ 'igo.common.confirmDialog.cancelBtn' | translate }}\r\n </button>\r\n</div>\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\n\r\nimport { ConfigService } from '@igo2/core';\r\n\r\nimport { EMPTY, Observable } from 'rxjs';\r\n\r\nimport { Poi } from './poi.interface';\r\n\r\n@Injectable()\r\nexport class PoiService {\r\n private baseUrl: string;\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private config: ConfigService\r\n ) {\r\n this.baseUrl = this.config.getConfig('context.url');\r\n }\r\n\r\n get(): Observable<Poi[]> {\r\n if (!this.baseUrl) {\r\n return EMPTY;\r\n }\r\n\r\n const url = this.baseUrl + '/pois';\r\n return this.http.get<Poi[]>(url);\r\n }\r\n\r\n delete(id: string): Observable<void> {\r\n const url = this.baseUrl + '/pois/' + id;\r\n return this.http.delete<void>(url);\r\n }\r\n\r\n create(context: Poi): Observable<Poi> {\r\n const url = this.baseUrl + '/pois';\r\n return this.http.post<Poi>(url, context);\r\n }\r\n}\r\n","import { Component, Input, OnDestroy, OnInit } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\n\r\nimport { AuthService } from '@igo2/auth';\r\nimport { ConfirmDialogService } from '@igo2/common';\r\nimport { LanguageService, MessageService } from '@igo2/core';\r\nimport type { IgoMap } from '@igo2/geo';\r\n\r\nimport * as oleasing from 'ol/easing';\r\nimport olPoint from 'ol/geom/Point';\r\nimport * as olproj from 'ol/proj';\r\n\r\nimport { Subscription } from 'rxjs';\r\nimport { take } from 'rxjs/operators';\r\n\r\nimport { PoiDialogComponent } from './poi-dialog.component';\r\nimport { Poi } from './shared/poi.interface';\r\nimport { PoiService } from './shared/poi.service';\r\n\r\n@Component({\r\n selector: 'igo-poi-button',\r\n templateUrl: './poi-button.component.html',\r\n styleUrls: ['./poi-button.component.scss']\r\n})\r\nexport class PoiButtonComponent implements OnInit, OnDestroy {\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 color(): string {\r\n return this._color;\r\n }\r\n set color(value: string) {\r\n this._color = value;\r\n }\r\n private _color: string;\r\n\r\n public pois: Poi[];\r\n private authenticate$$: Subscription;\r\n\r\n constructor(\r\n private dialog: MatDialog,\r\n private authService: AuthService,\r\n private poiService: PoiService,\r\n private messageService: MessageService,\r\n private languageService: LanguageService,\r\n private confirmDialogService: ConfirmDialogService\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.authenticate$$ = this.authService.authenticate$.subscribe((auth) => {\r\n if (auth) {\r\n this.getPois();\r\n }\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n this.authenticate$$.unsubscribe();\r\n }\r\n\r\n deletePoi(poi: Poi) {\r\n if (poi && poi.id) {\r\n this.confirmDialogService\r\n .open(\r\n this.languageService.translate.instant(\r\n 'igo.context.poiButton.dialog.confirmDelete'\r\n )\r\n )\r\n .subscribe((confirm) => {\r\n if (confirm) {\r\n this.poiService.delete(poi.id).subscribe(\r\n () => {\r\n this.messageService.info(\r\n 'igo.context.poiButton.dialog.deleteMsg',\r\n 'igo.context.poiButton.dialog.deleteTitle',\r\n undefined,\r\n { value: poi.title }\r\n );\r\n this.pois = this.pois.filter((p) => p.id !== poi.id);\r\n },\r\n (err) => {\r\n err.error.title = 'DELETE Pois';\r\n this.messageService.showError(err);\r\n }\r\n );\r\n }\r\n });\r\n }\r\n }\r\n\r\n private getPois() {\r\n this.poiService\r\n .get()\r\n .pipe(take(1))\r\n .subscribe(\r\n (rep) => {\r\n this.pois = rep;\r\n },\r\n (err) => {\r\n err.error.title = 'GET Pois';\r\n this.messageService.showError(err);\r\n }\r\n );\r\n }\r\n\r\n createPoi() {\r\n const view = this.map.ol.getView();\r\n const proj = view.getProjection().getCode();\r\n const center: any = new olPoint(view.getCenter()).transform(\r\n proj,\r\n 'EPSG:4326'\r\n );\r\n\r\n const poi: Poi = {\r\n title: '',\r\n x: center.getCoordinates()[0],\r\n y: center.getCoordinates()[1],\r\n zoom: view.getZoom()\r\n };\r\n\r\n this.dialog\r\n .open(PoiDialogComponent, { disableClose: false })\r\n .afterClosed()\r\n .subscribe((title) => {\r\n if (title) {\r\n poi.title = title;\r\n this.poiService.create(poi).subscribe(\r\n (newPoi) => {\r\n this.messageService.success(\r\n 'igo.context.poiButton.dialog.createMsg',\r\n 'igo.context.poiButton.dialog.createTitle',\r\n undefined,\r\n { value: poi.title }\r\n );\r\n poi.id = newPoi.id;\r\n this.pois.push(poi);\r\n },\r\n (err) => {\r\n err.error.title = 'POST Pois';\r\n this.messageService.showError(err);\r\n }\r\n );\r\n }\r\n });\r\n }\r\n\r\n zoomOnPoi(id) {\r\n const poi = this.pois.find((p) => p.id === id);\r\n\r\n const center = olproj.fromLonLat(\r\n [Number(poi.x), Number(poi.y)],\r\n this.map.projection\r\n );\r\n\r\n this.map.ol.getView().animate({\r\n center,\r\n zoom: poi.zoom,\r\n duration: 500,\r\n easing: oleasing.easeOut\r\n });\r\n }\r\n}\r\n","<mat-select\r\n [placeholder]=\"'igo.context.poiButton.placeholder' | translate\"\r\n floatPlaceholder=\"never\"\r\n>\r\n <mat-option (click)=\"createPoi()\" class=\"poi-option\">\r\n <div class=\"titlePoi\">\r\n {{ 'igo.context.poiButton.create' | translate }}\r\n </div>\r\n <button\r\n igoStopPropagation\r\n mat-icon-button\r\n color=\"primary\"\r\n (click)=\"createPoi()\"\r\n >\r\n <mat-icon svgIcon=\"plus-circle\"></mat-icon>\r\n </button>\r\n </mat-option>\r\n <mat-divider></mat-divider>\r\n <mat-option\r\n *ngFor=\"let poi of pois\"\r\n class=\"poi-option\"\r\n [value]=\"poi.id\"\r\n (click)=\"zoomOnPoi(poi.id)\"\r\n >\r\n <div class=\"titlePoi\">{{ poi.title }}</div>\r\n <button\r\n mat-icon-button\r\n igoStopPropagation\r\n color=\"warn\"\r\n (click)=\"deletePoi(poi)\"\r\n >\r\n <mat-icon svgIcon=\"delete\"></mat-icon>\r\n </button>\r\n </mat-option>\r\n</mat-select>\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 userButtonSlideInOut(): AnimationTriggerMetadata {\r\n return trigger('userButtonState', [\r\n state(\r\n 'collapse',\r\n style({\r\n width: '0',\r\n overflow: 'hidden',\r\n display: 'none'\r\n })\r\n ),\r\n state(\r\n 'expand',\r\n style({\r\n overflow: 'hidden',\r\n display: 'display'\r\n })\r\n ),\r\n transition('collapse => expand', animate('200ms')),\r\n transition('expand => collapse', animate('200ms'))\r\n ]);\r\n}\r\n","import { Component } from '@angular/core';\r\nimport { MatDialogRef } from '@angular/material/dialog';\r\n\r\nimport { AuthService } from '@igo2/auth';\r\nimport { StorageService } from '@igo2/core';\r\n\r\n@Component({\r\n selector: 'igo-user-dialog',\r\n templateUrl: './user-dialog.component.html'\r\n})\r\nexport class UserDialogComponent {\r\n public user;\r\n public exp;\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef<UserDialogComponent>,\r\n private auth: AuthService,\r\n private storageService: StorageService\r\n ) {\r\n const decodeToken = this.auth.decodeToken();\r\n this.user = decodeToken?.user;\r\n this.exp = new Date(decodeToken.exp * 1000).toLocaleString();\r\n }\r\n\r\n clearPreferences() {\r\n this.storageService.clear();\r\n }\r\n}\r\n","<h1 mat-dialog-title class=\"mat-typography\">\r\n {{ 'igo.context.userButton.infoTitle' | translate }}\r\n</h1>\r\n<div mat-dialog-content class=\"mat-typography\">\r\n <p>\r\n {{ 'igo.context.userButton.dialog.user' | translate }}: {{ user.sourceId }}\r\n </p>\r\n <p>\r\n {{ 'igo.context.userButton.dialog.email' | translate }}: {{ user.email }}\r\n </p>\r\n <p>{{ 'igo.context.userButton.dialog.expiration' | translate }}: {{ exp }}</p>\r\n <button mat-stroked-button color=\"primary\" (click)=\"clearPreferences()\">\r\n {{ 'igo.context.userButton.dialog.clearPreferences' | translate }}\r\n </button>\r\n <br />\r\n</div>\r\n<div mat-dialog-actions style=\"justify-content: center\">\r\n <button mat-raised-button color=\"primary\" (click)=\"dialogRef.close(false)\">\r\n OK\r\n </button>\r\n</div>\r\n","import { Component, Input } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\n\r\nimport { AuthService } from '@igo2/auth';\r\nimport { ConfigService } from '@igo2/core';\r\nimport type { IgoMap } from '@igo2/geo';\r\n\r\nimport { userButtonSlideInOut } from './user-button.animation';\r\nimport { UserDialogComponent } from './user-dialog.component';\r\n\r\n@Component({\r\n selector: 'igo-user-button',\r\n templateUrl: './user-button.component.html',\r\n styleUrls: ['./user-button.component.scss'],\r\n animations: [userButtonSlideInOut()]\r\n})\r\nexport class UserButtonComponent {\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 color(): string {\r\n return this._color;\r\n }\r\n set color(value: string) {\r\n this._color = value;\r\n }\r\n private _color: string;\r\n\r\n public expand = false;\r\n public visible = false;\r\n public hasApi = false;\r\n\r\n constructor(\r\n private dialog: MatDialog,\r\n private config: ConfigService,\r\n public auth: AuthService\r\n ) {\r\n this.visible = this.config.getConfig('auth') ? true : false;\r\n this.hasApi = this.config.getConfig('context.url') !== undefined;\r\n }\r\n\r\n accountClick() {\r\n if (this.auth.authenticated) {\r\n this.expand = !this.expand;\r\n } else {\r\n this.auth.logout();\r\n }\r\n }\r\n\r\n logout() {\r\n this.expand = false;\r\n this.auth.logout();\r\n }\r\n\r\n infoUser() {\r\n this.dialog.open(UserDialogComponent, { disableClose: false });\r\n }\r\n}\r\n","<div *ngIf=\"visible\" class=\"igo-user-button-container\">\r\n <div\r\n class=\"igo-user-button-more-container\"\r\n [@userButtonState]=\"expand ? 'expand' : 'collapse'\"\r\n >\r\n <igo-poi-button *ngIf=\"hasApi\" [color]=\"color\" [map]=\"map\"></igo-poi-button>\r\n\r\n <button\r\n mat-icon-button\r\n [matTooltip]=\"'igo.context.userButton.infoTitle' | translate\"\r\n matTooltipPosition=\"above\"\r\n [color]=\"color\"\r\n (click)=\"infoUser()\"\r\n >\r\n <mat-icon svgIcon=\"information-outline\"></mat-icon>\r\n </button>\r\n\r\n <button\r\n mat-icon-button\r\n [matTooltip]=\"'igo.context.userButton.logout' | translate\"\r\n matTooltipPosition=\"above\"\r\n [color]=\"color\"\r\n (click)=\"logout()\"\r\n >\r\n <mat-icon svgIcon=\"power\"></mat-icon>\r\n </button>\r\n </div>\r\n\r\n <button\r\n mat-icon-button\r\n [color]=\"auth.authenticated ? color : 'warn'\"\r\n (click)=\"accountClick()\"\r\n >\r\n <mat-icon svgIcon=\"account-box\"></mat-icon>\r\n </button>\r\n</div>\r\n","import { CommonModule } from '@angular/common';\r\nimport { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatOptionModule } from '@angular/material/core';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { MatDividerModule } from '@angular/material/divider';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\n\r\nimport { IgoAuthModule } from '@igo2/auth';\r\nimport { IgoConfirmDialogModule, IgoStopPropagationModule } from '@igo2/common';\r\nimport { IgoLanguageModule } from '@igo2/core';\r\n\r\nimport { BookmarkButtonComponent } from './bookmark-button/bookmark-button.component';\r\nimport { BookmarkDialogComponent } from './bookmark-button/bookmark-dialog.component';\r\nimport { PoiButtonComponent } from './poi-button/poi-button.component';\r\nimport { PoiDialogComponent } from './poi-button/poi-dialog.component';\r\nimport { PoiService } from './poi-button/shared/poi.service';\r\nimport { UserButtonComponent } from './user-button/user-button.component';\r\nimport { UserDialogComponent } from './user-button/user-dialog.component';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n IgoAuthModule,\r\n IgoConfirmDialogModule,\r\n IgoLanguageModule,\r\n IgoStopPropagationModule,\r\n MatButtonModule,\r\n MatDialogModule,\r\n MatDividerModule,\r\n MatFormFieldModule,\r\n MatIconModule,\r\n MatInputModule,\r\n MatOptionModule,\r\n MatSelectModule,\r\n MatTooltipModule\r\n ],\r\n exports: [\r\n BookmarkButtonComponent,\r\n PoiButtonComponent,\r\n UserButtonComponent,\r\n BookmarkDialogComponent\r\n ],\r\n declarations: [\r\n BookmarkButtonComponent,\r\n BookmarkDialogComponent,\r\n PoiButtonComponent,\r\n PoiDialogComponent,\r\n UserButtonComponent,\r\n UserDialogComponent\r\n ],\r\n providers: [PoiService]\r\n})\r\nexport class IgoContextMapButtonModule {\r\n static forRoot(): ModuleWithProviders<IgoContextMapButtonModule> {\r\n return {\r\n ngModule: IgoContextMapButtonModule\r\n };\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms';\r\n\r\nimport { MessageService } from '@igo2/core';\r\nimport { Clipboard, ObjectUtils } from '@igo2/utils';\r\n\r\nimport { Context } from '../shared/context.interface';\r\n\r\n@Component({\r\n selector: 'igo-context-form',\r\n templateUrl: './context-form.component.html',\r\n styleUrls: ['./context-form.component.scss']\r\n})\r\nexport class ContextFormComponent implements OnInit {\r\n public form: UntypedFormGroup;\r\n public prefix: string;\r\n\r\n @Input()\r\n get btnSubmitText(): string {\r\n return this._btnSubmitText;\r\n }\r\n set btnSubmitText(value: string) {\r\n this._btnSubmitText = value;\r\n }\r\n private _btnSubmitText: string;\r\n\r\n @Input()\r\n get context(): Context {\r\n return this._context;\r\n }\r\n set context(value: Context) {\r\n this._context = value;\r\n this.buildForm();\r\n }\r\n private _context: Context;\r\n\r\n @Input()\r\n get disabled(): boolean {\r\n return this._disabled;\r\n }\r\n set disabled(value: boolean) {\r\n this._disabled = value;\r\n }\r\n private _disabled = false;\r\n\r\n // TODO: replace any by ContextOptions or Context\r\n @Output() submitForm: EventEmitter<any> = new EventEmitter();\r\n @Output() clone: EventEmitter<any> = new EventEmitter();\r\n @Output() delete: EventEmitter<any> = new EventEmitter();\r\n\r\n constructor(\r\n private formBuilder: UntypedFormBuilder,\r\n private messageService: MessageService\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.buildForm();\r\n }\r\n\r\n public handleFormSubmit(value) {\r\n let inputs = Object.assign({}, value);\r\n inputs = ObjectUtils.removeNull(inputs);\r\n inputs.uri = inputs.uri.replace(' ', '');\r\n if (inputs.uri) {\r\n inputs.uri = this.prefix + '-' + inputs.uri;\r\n } else {\r\n inputs.uri = this.prefix;\r\n }\r\n this.submitForm.emit(inputs);\r\n }\r\n\r\n public copyTextToClipboard() {\r\n const text = this.prefix + '-' + this.form.value.uri.replace(' ', '');\r\n const successful = Clipboard.copy(text);\r\n if (successful) {\r\n this.messageService.success(\r\n 'igo.context.contextManager.dialog.copyMsg',\r\n 'igo.context.contextManager.dialog.copyTitle'\r\n );\r\n }\r\n }\r\n\r\n private buildForm(): void {\r\n const context: any = this.context || {};\r\n\r\n const uriSplit = context.uri.split('-');\r\n this.prefix = uriSplit.shift();\r\n const uri = uriSplit.join('-');\r\n\r\n this.form = this.formBuilder.group({\r\n title: [context.title],\r\n uri: [uri || ' ']\r\n });\r\n }\r\n}\r\n","<form\r\n class=\"igo-form\"\r\n [formGroup]=\"form\"\r\n (ngSubmit)=\"handleFormSubmit(form.value)\"\r\n>\r\n <mat-form-field class=\"full-width\">\r\n <input\r\n matInput\r\n required\r\n maxlength=\"128\"\r\n [placeholder]=\"'igo.context.contextManager.form.title' | translate\"\r\n formControlName=\"title\"\r\n />\r\n <mat-error>\r\n {{ 'igo.context.contextManager.form.titleRequired' | translate }}\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n <mat-form-field id=\"uriInput\" class=\"full-width\">\r\n <span *ngIf=\"prefix\" class=\"prefix\">{{ prefix }}-</span>\r\n <span class=\"fieldWrapper\">\r\n <input\r\n matInput\r\n maxlength=\"64\"\r\n floatLabel=\"always\"\r\n [placeholder]=\"'igo.context.contextManager.form.uri' | translate\"\r\n formControlName=\"uri\"\r\n />\r\n </span>\r\n </mat-form-field>\r\n\r\n <button\r\n id=\"copyButton\"\r\n type=\"button\"\r\n mat-icon-button\r\n tooltip-position=\"below\"\r\n matTooltipShowDelay=\"500\"\r\n [matTooltip]=\"'igo.context.contextManager.form.copy' | translate\"\r\n color=\"primary\"\r\n (click)=\"copyTextToClipboard()\"\r\n >\r\n <mat-icon svgIcon=\"content-copy\"></mat-icon>\r\n </button>\r\n\r\n <div class=\"igo-form-button-group\">\r\n <button\r\n mat-raised-button\r\n type=\"submit\"\r\n [disabled]=\"!form.valid || disabled\"\r\n >\r\n {{ 'igo.context.contextManager.form.edit' | translate }}\r\n </button>\r\n </div>\r\n</form>\r\n","import {\r\n ChangeDetectorRef,\r\n Component,\r\n EventEmitter,\r\n Input,\r\n Output\r\n} from '@angular/core';\r\n\r\nimport { Context } from '../shared/context.interface';\r\n\r\n@Component({\r\n selector: 'igo-context-edit',\r\n templateUrl: './context-edit.component.html'\r\n})\r\nexport class ContextEditComponent {\r\n @Input()\r\n get context(): Context {\r\n return this._context;\r\n }\r\n set context(value: Context) {\r\n this._context = value;\r\n this.refresh();\r\n }\r\n private _context: Context;\r\n\r\n @Output() submitForm: EventEmitter<Context> = new EventEmitter();\r\n\r\n constructor(private cd: ChangeDetectorRef) {}\r\n\r\n refresh() {\r\n this.cd.detectChanges();\r\n }\r\n}\r\n","<igo-context-form\r\n *ngIf=\"context\"\r\n [btnSubmitText]=\"'igo.context.contextManager.save' | translate\"\r\n [context]=\"context\"\r\n (submitForm)=\"submitForm.emit($event)\"\r\n>\r\n</igo-context-form>\r\n","import {\r\n Directive,\r\n EventEmitter,\r\n HostListener,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n Self\r\n} from '@angular/core';\r\n\r\nimport { MessageService } from '@igo2/core';\r\n\r\nimport { Subscription } from 'rxjs';\r\n\r\nimport { Context, DetailedContext } from '../shared/context.interface';\r\nimport { ContextService } from '../shared/context.service';\r\nimport { ContextEditComponent } from './context-edit.component';\r\n\r\n@Directive({\r\n selector: '[igoContextEditBinding]'\r\n})\r\nexport class ContextEditBindingDirective implements OnInit, OnDestroy {\r\n private component: ContextEditComponent;\r\n private editedContext$$: Subscription;\r\n\r\n @Output() submitSuccessed: EventEmitter<Context> = new EventEmitter();\r\n\r\n @HostListener('submitForm', ['$event'])\r\n onEdit(context: Context) {\r\n const id = this.component.context.id;\r\n this.contextService.update(id, context).subscribe(() => {\r\n this.messageService.success(\r\n 'igo.context.contextManager.dialog.saveMsg',\r\n 'igo.context.contextManager.dialog.saveTitle',\r\n undefined,\r\n {\r\n value: context.title || this.component.context.title\r\n }\r\n );\r\n this.contextService.setEditedContext(undefined);\r\n this.submitSuccessed.emit(context);\r\n });\r\n }\r\n\r\n constructor(\r\n @Self() component: ContextEditComponent,\r\n private contextService: ContextService,\r\n private messageService: MessageService\r\n ) {\r\n this.component = component;\r\n }\r\n\r\n ngOnInit() {\r\n this.editedContext$$ = this.contextService.editedContext$.subscribe(\r\n (context) => this.handleEditedContextChange(context)\r\n );\r\n }\r\n\r\n ngOnDestroy() {\r\n this.editedContext$$.unsubscribe();\r\n }\r\n\r\n private handleEditedContextChange(context: DetailedContext) {\r\n this.component.context = context;\r\n }\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n EventEmitter,\r\n Input,\r\n Output\r\n} from '@angular/core';\r\n\r\nimport { AuthService } from '@igo2/auth';\r\nimport { StorageService } from '@igo2/core';\r\n\r\nimport { TypePermission } from '../shared/context.enum';\r\nimport { DetailedContext } from '../shared/context.interface';\r\n\r\n@Component({\r\n selector: 'igo-context-item',\r\n templateUrl: './context-item.component.html',\r\n styleUrls: ['./context-item.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class ContextItemComponent {\r\n public typePermission = TypePermission;\r\n public color = 'primary';\r\n public collapsed = true;\r\n\r\n @Input() showFavorite: boolean = true;\r\n @Input() context: DetailedContext;\r\n @Input() default: boolean;\r\n @Input() selected: boolean;\r\n\r\n @Output() edit = new EventEmitter<DetailedContext>();\r\n @Output() delete = new EventEmitter<DetailedContext>();\r\n @Output() save = new EventEmitter<DetailedContext>();\r\n @Output() clone = new EventEmitter<DetailedContext>();\r\n @Output() hide = new EventEmitter<DetailedContext>();\r\n @Output() show = new EventEmitter<DetailedContext>();\r\n @Output() favorite = new EventEmitter<DetailedContext>();\r\n @Output() managePermissions = new EventEmitter<DetailedContext>();\r\n @Output() manageTools = new EventEmitter<DetailedContext>();\r\n\r\n get hidden(): boolean {\r\n return this.context.hidden;\r\n }\r\n\r\n get canShare(): boolean {\r\n return this.storageService.get('canShare') === true;\r\n }\r\n\r\n constructor(\r\n public auth: AuthService,\r\n private storageService: StorageService\r\n ) {}\r\n\r\n favoriteClick(context: DetailedContext) {\r\n this.favorite.emit(context);\r\n }\r\n}\r\n","<mat-list-item\r\n class=\"mat-list-item\"\r\n [ngClass]=\"{ 'mat-list-item-light': hidden }\"\r\n>\r\n <button\r\n *ngIf=\"auth.authenticated\"\r\n matListItemAvatar\r\n mat-icon-button\r\n igoStopPropagation\r\n [matTooltip]=\"\r\n auth.authenticated\r\n ? ('igo.context.contextManager.favorite' | translate)\r\n : ''\r\n \"\r\n matTooltipShowDelay=\"500\"\r\n [color]=\"default ? 'primary' : 'default'\"\r\n (click)=\"favoriteClick(context)\"\r\n >\r\n <mat-icon\r\n *ngIf=\"!context.iconImage\"\r\n svgIcon=\"{{\r\n context.icon\r\n ? context.icon\r\n : context.scope === 'public'\r\n ? 'earth'\r\n : 'star'\r\n }}\"\r\n ></mat-icon>\r\n <img *ngIf=\"context.iconImage\" [src]=\"context.iconImage\" />\r\n </button>\r\n <button\r\n matListItemAvatar\r\n *ngIf=\"!auth.authenticated && showFavorite\"\r\n mat-icon-button\r\n igoStopPropagation\r\n [matTooltip]=\"'igo.context.contextManager.favorite' | translate\"\r\n matTooltipShowDelay=\"500\"\r\n [color]=\"default ? 'primary' : 'default'\"\r\n (click)=\"favoriteClick(context)\"\r\n >\r\n <mat-icon svgIcon=\"star\"></mat-icon>\r\n </button>\r\n <span matListItemTitle>{{ context.title }}</span>\r\n\r\n <div\r\n *ngIf=\"auth.authenticated\"\r\n matListItemMeta\r\n igoStopPropagation\r\n class=\"igo-actions-container\"\r\n >\r\n <button\r\n *ngIf=\"\r\n collapsed &&\r\n selected &&\r\n (context.permission === typePermission[typePermission.write] ||\r\n context.imported)\r\n \"\r\n class=\"save-button\"\r\n mat-icon-button\r\n [matTooltip]=\"'igo.context.contextManager.save' | translate\"\r\n matTooltipShowDelay=\"500\"\r\n [color]=\"color\"\r\n (click)=\"save.emit(context)\"\r\n >\r\n <mat-icon svgIcon=\"content-save\"></mat-icon>\r\n </button>\r\n\r\n <div #actions class=\"igo-actions-expand-container\">\r\n <button\r\n *ngIf=\"canShare && !context.imported\"\r\n mat-icon-button\r\n [matTooltip]=\"\r\n 'igo.context.contextManager.managePermissions' | translate\r\n \"\r\n matTooltipShowDelay=\"500\"\r\n [color]=\"color\"\r\n (click)=\"managePermissions.emit(context)\"\r\n >\r\n <mat-icon svgIcon=\"account-arrow-right\"></mat-icon>\r\n </button>\r\n\r\n <!--button\r\n mat-icon-button\r\n [matTooltip]=\"'igo.context.contextManager.manageTools' | translate\"\r\n [color]=\"color\"\r\n (click)=\"manageTools.emit(context)\">\r\n <mat-icon svgIcon=\"widgets\"></mat-icon>\r\n </button-->\r\n\r\n <button\r\n *ngIf=\"!context.imported\"\r\n class=\"clone-button\"\r\n mat-icon-button\r\n [matTooltip]=\"'igo.context.contextManager.clone' | translate\"\r\n matTooltipShowDelay=\"500\"\r\n [color]=\"color\"\r\n (click)=\"clone.emit(context)\"\r\n >\r\n <mat-icon svgIcon=\"content-copy\"></mat-icon>\r\n </button>\r\n\r\n <button\r\n *ngIf=\"\r\n context.permission === typePermission[typePermission.write] &&\r\n !context.imported\r\n \"\r\n class=\"edit-button\"\r\n mat-icon-button\r\n [color]=\"color\"\r\n [matTooltip]=\"'igo.context.contextManager.edit' | translate\"\r\n matTooltipShowDelay=\"500\"\r\n (click)=\"edit.emit(context)\"\r\n >\r\n <mat-icon svgIcon=\"pencil\"></mat-icon>\r\n </button>\r\n\r\n <button\r\n *ngIf=\"!context.hidden && !context.imported\"\r\n class=\"hide-button\"\r\n mat-icon-button\r\n [color]=\"color\"\r\n [matTooltip]=\"'igo.context.contextManager.hide' | translate\"\r\n matTooltipShowDelay=\"500\"\r\n (click)=\"hide.emit(context)\"\r\n >\r\n <mat-icon svgIcon=\"eye\"></mat-icon>\r\n </button>\r\n\r\n <button\r\n *ngIf=\"context.hidden && !context.imported\"\r\n class=\"hide-button\"\r\n mat-icon-button\r\n [color]=\"color\"\r\n [matTooltip]=\"'igo.context.contextManager.show' | translate\"\r\n matTooltipShowDelay=\"500\"\r\n (click)=\"show.emit(context)\"\r\n >\r\n <mat-icon svgIcon=\"eye-off\"></mat-icon>\r\n </button>\r\n\r\n <button\r\n *ngIf=\"\r\n context.permission === typePermission[typePermission.write] ||\r\n context.imported\r\n \"\r\n class=\"delete-button\"\r\n mat-icon-button\r\n color=\"warn\"\r\n [matTooltip]=\"'igo.context.contextManager.delete' | translate\"\r\n matTooltipShowDelay=\"500\"\r\n (click)=\"delete.emit(context)\"\r\n >\r\n <mat-icon svgIcon=\"delete\"></mat-icon>\r\n </button>\r\n </div>\r\n\r\n <button\r\n class=\"actions-button\"\r\n mat-icon-button\r\n igoCollapse\r\n [color]=\"color\"\r\n [target]=\"actions\"\r\n [collapsed]=\"collapsed\"\r\n (click)=\"collapsed = !collapsed\"\r\n >\r\n <mat-icon svgIcon=\"dots-horizontal\"></mat-icon>\r\n </button>\r\n </div>\r\n</mat-list-item>\r\n","export enum ContextListControlsEnum {\n always = 'always',\n never = 'never',\n default = 'default'\n}\n","import {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n Output\r\n} from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\n\r\nimport { AuthService } from '@igo2/auth';\r\nimport { ActionStore, ActionbarMode } from '@igo2/common';\r\nimport { ConfigService, LanguageService, StorageService } from '@igo2/core';\r\nimport type { IgoMap } from '@igo2/geo';\r\n\r\nimport { BehaviorSubject, ReplaySubject, Subscription, timer } from 'rxjs';\r\nimport { take } from 'rxjs/operators';\r\nimport { debounce } from 'rxjs/operators';\r\n\r\nimport { BookmarkDialogComponent } from '../../context-map-button/bookmark-button/bookmark-dialog.component';\r\nimport {\r\n ContextProfils,\r\n ContextServiceOptions,\r\n ContextUserPermission,\r\n ContextsList,\r\n DetailedContext\r\n} from '../shared/context.interface';\r\nimport { ContextListControlsEnum } from './context-list.enum';\r\n\r\n@Component({\r\n selector: 'igo-context-list',\r\n templateUrl: './context-list.component.html',\r\n styleUrls: ['./context-list.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class ContextListComponent implements OnInit, OnDestroy {\r\n public contextConfigs: ContextServiceOptions;\r\n private contextsInitial: ContextsList = { ours: [] };\r\n contexts$: BehaviorSubject<ContextsList> = new BehaviorSubject(\r\n this.contextsInitial\r\n );\r\n\r\n change$ = new ReplaySubject<void>(1);\r\n\r\n private change$$: Subscription;\r\n\r\n @Input()\r\n get contexts(): ContextsList {\r\n return this._contexts;\r\n }\r\n set contexts(value: ContextsList) {\r\n this._contexts = value;\r\n this.next();\r\n }\r\n private _contexts: ContextsList = { ours: [] };\r\n\r\n @Input()\r\n get selectedContext(): DetailedContext {\r\n return this._selectedContext;\r\n }\r\n set selectedContext(value: DetailedContext) {\r\n this._selectedContext = value;\r\n this.cdRef.detectChanges();\r\n }\r\n private _selectedContext: DetailedContext;\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 defaultContextId(): string {\r\n return this.contextConfigs\r\n ? this._defaultContextId\r\n : (this.storageService.get('favorite.context.uri') as string) ||\r\n this._defaultContextId;\r\n }\r\n set defaultContextId(value: string) {\r\n this._defaultContextId = value;\r\n }\r\n private _defaultContextId: string;\r\n\r\n public collapsed: { contextScope }[] = [];\r\n\r\n @Output() select = new EventEmitter<DetailedContext>();\r\n @Output() unselect = new EventEmitter<DetailedContext>();\r\n @Output() edit = new EventEmitter<DetailedContext>();\r\n @Output() delete = new EventEmitter<DetailedContext>();\r\n @Output() save = new EventEmitter<DetailedContext>();\r\n @Output() clone = new EventEmitter<DetailedContext>();\r\n @Output() create = new EventEmitter<{ title: string; empty: boolean }>();\r\n @Output() hide = new EventEmitter<DetailedContext>();\r\n @Output() show = new EventEmitter<DetailedContext>();\r\n @Output() showHiddenContexts = new EventEmitter<boolean>();\r\n @Output() favorite = new EventEmitter<DetailedContext>();\r\n @Output() managePermissions = new EventEmitter<DetailedContext>();\r\n @Output() manageTools = new EventEmitter<DetailedContext>();\r\n @Output() filterPermissionsChanged = new EventEmitter<\r\n ContextUserPermission[]\r\n >();\r\n\r\n public titleMapping = {\r\n ours: 'igo.context.contextManager.ourContexts',\r\n shared: 'igo.context.contextManager.sharedContexts',\r\n public: 'igo.context.contextManager.publicContexts'\r\n };\r\n\r\n public users: ContextProfils[];\r\n public permissions: ContextUserPermission[] = [];\r\n\r\n public actionStore = new ActionStore([]);\r\n public actionbarMode = ActionbarMode.Overlay;\r\n\r\n public color = 'primary';\r\n\r\n public showHidden = false;\r\n\r\n /**\r\n * Context filter term\r\n */\r\n @Input()\r\n set term(value: string) {\r\n this._term = value;\r\n this.next();\r\n }\r\n get term(): string {\r\n return this._term;\r\n }\r\n public _term: string = '';\r\n\r\n get sortedAlpha(): boolean {\r\n return this._sortedAlpha;\r\n }\r\n set sortedAlpha(value: boolean) {\r\n this._sortedAlpha = value;\r\n this.next();\r\n }\r\n private _sortedAlpha: boolean = undefined;\r\n\r\n public showContextFilter = ContextListControlsEnum.always;\r\n\r\n public thresholdToFilter = 5;\r\n\r\n get isEmpty(): boolean {\r\n return (\r\n !this.contexts.ours.length &&\r\n !this.contexts.public?.length &&\r\n !this.contexts.shared?.length\r\n );\r\n }\r\n\r\n constructor(\r\n private cdRef: ChangeDetectorRef,\r\n public configService: ConfigService,\r\n public auth: AuthService,\r\n private dialog: MatDialog,\r\n private languageService: LanguageService,\r\n private storageService: StorageService\r\n ) {\r\n this.contextConfigs = this.configService.getConfig('context');\r\n }\r\n\r\n ngOnInit() {\r\n this.change$$ = this.change$\r\n .pipe(debounce(() => timer(50)))\r\n .subscribe(() => {\r\n this.contexts$.next(this.filterContextsList(this.contexts));\r\n });\r\n\r\n this.actionStore.load([\r\n {\r\n id: 'emptyContext',\r\n title: this.languageService.translate.instant(\r\n 'igo.context.contextManager.emptyContext'\r\n ),\r\n icon: 'map-outline',\r\n tooltip: this.languageService.translate.instant(\r\n 'igo.context.contextManager.emptyContextTooltip'\r\n ),\r\n handler: () => {\r\n this.createContext(true);\r\n }\r\n },\r\n {\r\n id: 'contextFromMap',\r\n title: this.languageService.translate.instant(\r\n 'igo.context.contextManager.contextMap'\r\n ),\r\n icon: 'map-check',\r\n tooltip: this.languageService.translate.instant(\r\n 'igo.context.contextManager.contextMapTooltip'\r\n ),\r\n handler: () => {\r\n this.createContext(false);\r\n }\r\n }\r\n ]);\r\n }\r\n\r\n private next() {\r\n this.change$.next();\r\n }\r\n\r\n private filterContextsList(contexts: ContextsList): ContextsList {\r\n if (this.term === '') {\r\n if (this.sortedAlpha) {\r\n contexts = this.sortContextsList(contexts);\r\n }\r\n return contexts;\r\n } else {\r\n const ours = contexts.ours.filter((context) => {\r\n const filterNormalized = this.term\r\n .toLowerCase()\r\n .normalize('NFD')\r\n .replace(/[\\u0300-\\u036f]/g, '');\r\n const contextTitleNormalized = context.title\r\n .toLowerCase()\r\n .normalize('NFD')\r\n .replace(/[\\u0300-\\u036f]/g, '');\r\n return contextTitleNormalized.includes(filterNormalized);\r\n });\r\n\r\n let updateContexts: ContextsList = {\r\n ours\r\n };\r\n\r\n if (this.contexts.public) {\r\n const publics = contexts.public.filter((context) => {\r\n const filterNormalized = this.term\r\n .toLowerCase()\r\n .normalize('NFD')\r\n .replace(/[\\u0300-\\u036f]/g, '');\r\n const contextTitleNormalized = context.title\r\n .toLowerCase()\r\n .normalize('NFD')\r\n .replace(/[\\u0300-\\u036f]/g, '');\r\n return contextTitleNormalized.includes(filterNormalized);\r\n });\r\n updateContexts.public = publics;\r\n }\r\n\r\n if (this.contexts.shared) {\r\n const shared = contexts.shared.filter((context) => {\r\n const filterNormalized = this.term\r\n .toLowerCase()\r\n .normalize('NFD')\r\n .replace(/[\\u0300-\\u036f]/g, '');\r\n const contextTitleNormalized = context.title\r\n .toLowerCase()\r\n .normalize('NFD')\r\n .replace(/[\\u0300-\\u036f]/g, '');\r\n return contextTitleNormalized.includes(filterNormalized);\r\n });\r\n updateContexts.shared = shared;\r\n }\r\n\r\n if (this.sortedAlpha) {\r\n updateContexts = this.sortContextsList(updateContexts);\r\n }\r\n return updateContexts;\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n this.change$$.unsubscribe();\r\n }\r\n\r\n public showFilter() {\r\n switch (this.showContextFilter) {\r\n case ContextListControlsEnum.always:\r\n return true;\r\n case ContextListControlsEnum.never:\r\n return false;\r\n default:\r\n let totalLength = this.contexts.ours.length;\r\n this.contexts.public\r\n ? (totalLength += this.contexts.public.length)\r\n : (totalLength += 0);\r\n this.contexts.shared\r\n ? (totalLength += this.contexts.shared.length)\r\n : (totalLength += 0);\r\n if (totalLength >= this.thresholdToFilter) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n }\r\n\r\n sortContextsList(contexts: ContextsList) {\r\n if (contexts) {\r\n const contextsList = JSON.parse(JSON.stringify(contexts));\r\n contextsList.ours.sort((a, b) => {\r\n if (this.normalize(a.title) < this.normalize(b.title)) {\r\n return -1;\r\n }\r\n if (this.normalize(a.title) > this.normalize(b.title)) {\r\n return 1;\r\n }\r\n return 0;\r\n });\r\n\r\n if (contextsList.shared) {\r\n contextsList.shared.sort((a, b) => {\r\n if (this.normalize(a.title) < this.normalize(b.title)) {\r\n return -1;\r\n }\r\n if (this.normalize(a.title) > this.normalize(b.title)) {\r\n return 1;\r\n }\r\n return 0;\r\n });\r\n } else if (contextsList.public) {\r\n contextsList.public.sort((a, b) => {\r\n if (this.normalize(a.title) < this.normalize(b.title)) {\r\n return -1;\r\n }\r\n if (this.normalize(a.title) > this.normalize(b.title)) {\r\n return 1;\r\n }\r\n return 0;\r\n });\r\n }\r\n return contextsList;\r\n }\r\n }\r\n\r\n normalize(str: string) {\r\n return str\r\n .normalize('NFD')\r\n .replace(/[\\u0300-\\u036f]/g, '')\r\n .toLowerCase();\r\n }\r\n\r\n toggleSort(sortAlpha: boolean) {\r\n this.sortedAlpha = sortAlpha;\r\n }\r\n\r\n clearFilter() {\r\n this.term = '';\r\n }\r\n\r\n createContext(empty?: boolean) {\r\n this.dialog\r\n .open(BookmarkDialogComponent, { disableClose: false })\r\n .afterClosed()\r\n .pipe(take(1))\r\n .subscribe((title: string) => {\r\n if (title) {\r\n this.create.emit({ title, empty });\r\n }\r\n });\r\n }\r\n\r\n getPermission(user?): ContextUserPermission {\r\n if (user) {\r\n const permission = this.permissions.find((p) => p.name === user.name);\r\n return permission;\r\n }\r\n }\r\n\r\n handleToggleCategory(user, parent?) {\r\n const permission = this.getPermission(user);\r\n if (permission) {\r\n permission.checked = !permission.checked;\r\n this.storageService.set(\r\n 'contexts.permissions.' + permission.name,\r\n permission.checked\r\n );\r\n permission.indeterminate = false;\r\n }\r\n\r\n if (parent) {\r\n let indeterminate = false;\r\n\r\n for (const c of parent.childs) {\r\n const cPermission = this.getPermission(c);\r\n if (cPermission.checked !== permission.checked) {\r\n indeterminate = true;\r\n break;\r\n }\r\n }\r\n const parentPermission = this.getPermission(parent);\r\n if (parentPermission) {\r\n parentPermission.checked = permission.checked;\r\n this.storageService.set(\r\n 'contexts.permissions.' + parentPermission.name,\r\n permission.checked\r\n );\r\n parentPermission.indeterminate = indeterminate;\r\n }\r\n }\r\n\r\n if (user.childs) {\r\n for (const c of user.childs) {\r\n const childrenPermission = this.getPermission(c);\r\n if (\r\n childrenPermission &&\r\n childrenPermission.checked !== permission.checked\r\n ) {\r\n childrenPermission.checked = permission.checked;\r\n this.storageService.set(\r\n 'contexts.permissions.' + childrenPermission.name,\r\n permission.checked\r\n );\r\n }\r\n }\r\n }\r\n\r\n this.filterPermissionsChanged.emit(this.permissions);\r\n }\r\n\r\n hideContext(context: DetailedContext) {\r\n context.hidden = true;\r\n if (!this.showHidden) {\r\n const contexts: ContextsList = { ours: [], shared: [], public: [] };\r\n contexts.ours = this.contexts.ours.filter((c) => c.id !== context.id);\r\n contexts.shared = this.contexts.shared.filter((c) => c.id !== context.id);\r\n contexts.public = this.contexts.public.filter((c) => c.id !== context.id);\r\n this.contexts = contexts;\r\n }\r\n this.hide.emit(context);\r\n }\r\n\r\n showContext(context: DetailedContext) {\r\n context.hidden = false;\r\n this.show.emit(context);\r\n }\r\n}\r\n","<igo-list [navigation]=\"true\">\r\n <div class=\"context-filter-container\">\r\n <mat-form-field *ngIf=\"showFilter()\" floatLabel=\"always\">\r\n <mat-label>{{\r\n 'igo.context.contextManager.filterPlaceHolder' | translate\r\n }}</mat-label>\r\n <input\r\n matInput\r\n type=\"text\"\r\n [placeholder]=\"\r\n 'igo.context.contextManager.filterPlaceHolder' | translate\r\n \"\r\n [(ngModel)]=\"term\"\r\n />\r\n <button\r\n mat-icon-button\r\n matSuffix\r\n class=\"clear-button\"\r\n *ngIf=\"term.length\"\r\n aria-label=\"Clear\"\r\n color=\"warn\"\r\n (click)=\"clearFilter()\"\r\n >\r\n <mat-icon svgIcon=\"close\"></mat-icon>\r\n </button>\r\n </mat-form-field>\r\n\r\n <div class=\"actions-container\">\r\n <button\r\n *ngIf=\"!sortedAlpha\"\r\n class=\"sort-alpha\"\r\n mat-icon-button\r\n [matTooltip]=\"\r\n 'igo.context.contextManager.sortAlphabetically' | translate\r\n \"\r\n matTooltipShowDelay=\"500\"\r\n (click)=\"toggleSort(true)\"\r\n >\r\n <mat-icon\r\n color=\"primary\"\r\n svgIcon=\"sort-alphabetical-variant\"\r\n ></mat-icon>\r\n </button>\r\n <button\r\n *ngIf=\"sortedAlpha\"\r\n class=\"sort-alpha\"\r\n mat-icon-button\r\n [matTooltip]=\"'igo.context.contextManager.sortContextOrder' | translate\"\r\n matTooltipShowDelay=\"500\"\r\n (click)=\"toggleSort(false)\"\r\n >\r\n <mat-icon color=\"warn\" svgIcon=\"sort-variant-remove\"></mat-icon>\r\n </button>\r\n\r\n <igo-actionbar\r\n *ngIf=\"auth.authenticated && contextConfigs\"\r\n class=\"add-context-button\"\r\n [iconColor]=\"color\"\r\n [store]=\"actionStore\"\r\n [withIcon]=\"true\"\r\n icon=\"plus\"\r\n [withTitle]=\"actionbarMode === 'overlay'\"\r\n [horizontal]=\"false\"\r\n [mode]=\"actionbarMode\"\r\n >\r\n </igo-actionbar>\r\n\r\n <button\r\n *ngIf=\"auth.authenticated && contextConfigs\"\r\n class=\"users-filter\"\r\n mat-icon-button\r\n [matTooltip]=\"'igo.context.contextManager.filterUser' | translate\"\r\n matTooltipShowDelay=\"500\"\r\n [matMenuTriggerFor]=\"accountMenu\"\r\n >\r\n <mat-icon color=\"primary\" svgIcon=\"filter-menu\"></mat-icon>\r\n </button>\r\n <mat-menu #accountMenu=\"matMenu\">\r\n <ng-container *ngFor=\"let user of users\">\r\n <button\r\n *ngIf=\"!user.childs; else withSubMenu\"\r\n mat-menu-item\r\n class=\"profil-menu\"\r\n >\r\n <mat-checkbox\r\n [checked]=\"getPermission(user).checked\"\r\n [indeterminate]=\"getPermission(user).indeterminate\"\r\n (click)=\"$event.stopPropagation()\"\r\n (change)=\"handleToggleCategory(user)\"\r\n >\r\n </mat-checkbox>\r\n <span>{{ user.title }}</span>\r\n </button>\r\n <ng-template #withSubMenu>\r\n <button\r\n mat-menu-item\r\n [matMenuTriggerFor]=\"subAccountMenu\"\r\n class=\"profil-menu\"\r\n >\r\n <mat-checkbox\r\n [checked]=\"getPermission(user).checked\"\r\n [indeterminate]=\"getPermission(user).indeterminate\"\r\n (click)=\"$event.stopPropagation()\"\r\n (change)=\"handleToggleCategory(user)\"\r\n >\r\n </mat-checkbox>\r\n <span>{{ user.title }}</span>\r\n </button>\r\n\r\n <mat-menu #subAccountMenu=\"matMenu\">\r\n <button\r\n mat-menu-item\r\n *ngFor=\"let child of user.childs\"\r\n class=\"profil-menu\"\r\n >\r\n <mat-checkbox\r\n [checked]=\"getPermission(child).checked\"\r\n (click)=\"$event.stopPropagation()\"\r\n (change)=\"handleToggleCategory(child, user)\"\r\n >\r\n {{ child.title }}\r\n </mat-checkbox>\r\n </button>\r\n </mat-menu>\r\n </ng-template>\r\n </ng-container>\r\n\r\n <button mat-menu-item class=\"profil-menu\">\r\n <mat-checkbox\r\n [checked]=\"showHidden\"\r\n (click)=\"$event.stopPropagation()\"\r\n (change)=\"showHiddenContexts.emit()\"\r\n >\r\n </mat-checkbox>\r\n <span>\r\n {{ 'igo.context.contextManager.showHidden' | translate }}\r\n </span>\r\n </button>\r\n </mat-menu>\r\n </div>\r\n </div>\r\n\r\n <ng-template ngFor let-groupContexts [ngForOf]=\"contexts$ | async | keyvalue\">\r\n <igo-collapsible\r\n *ngIf=\"groupContexts.value.length && auth.authenticated\"\r\n [title]=\"titleMapping[groupContexts.key] | translate\"\r\n [collapsed]=\"collapsed[titleMapping[groupContexts.key]]\"\r\n (toggle)=\"collapsed[titleMapping[groupContexts.key]] = $event\"\r\n >\r\n <ng-template ngFor let-context [ngForOf]=\"groupContexts.value\">\r\n <igo-context-item\r\n igoListItem\r\n color=\"accent\"\r\n [selected]=\"selectedContext && selectedContext.uri === context.uri\"\r\n [context]=\"context\"\r\n [default]=\"\r\n context.id &&\r\n this.defaultContextId &&\r\n this.defaultContextId === context.id\r\n \"\r\n (edit)=\"edit.emit(context)\"\r\n (delete)=\"delete.emit(context)\"\r\n (clone)=\"clone.emit(context)\"\r\n (save)=\"save.emit(context)\"\r\n (hide)=\"hideContext(context)\"\r\n (show)=\"showContext(context)\"\r\n (favorite)=\"favorite.emit(context)\"\r\n (manageTools)=\"manageTools.emit(context)\"\r\n (managePermissions)=\"managePermissions.emit(context)\"\r\n (select)=\"select.emit(context)\"\r\n (unselect)=\"unselect.emit(context)\"\r\n >\r\n </igo-context-item>\r\n </ng-template>\r\n </igo-collapsible>\r\n\r\n <ng-template\r\n *ngIf=\"groupContexts.value.length && !auth.authenticated\"\r\n ngFor\r\n let-context\r\n [ngForOf]=\"groupContexts.value\"\r\n >\r\n <igo-context-item\r\n igoListItem\r\n color=\"accent\"\r\n [showFavorite]=\"\r\n configService.getConfig('favoriteContext4NonAuthenticated')\r\n \"\r\n [selected]=\"selectedContext && selectedContext.uri === context.uri\"\r\n [context]=\"context\"\r\n [default]=\"\r\n contextConfigs\r\n ? defaultContextId === context.id\r\n : defaultContextId === context.uri\r\n \"\r\n (favorite)=\"favorite.emit(context)\"\r\n (select)=\"select.emit(context)\"\r\n (unselect)=\"unselect.emit(context)\"\r\n >\r\n </igo-context-item>\r\n </ng-template>\r\n </ng-template>\r\n\r\n <div *ngIf=\"isEmpty\" class=\"no-result\">\r\n {{ 'igo.context.contextManager.noResult' | translate }}\r\n </div>\r\n</igo-list>\r\n","import {\r\n ChangeDetectorRef,\r\n Directive,\r\n HostListener,\r\n OnDestroy,\r\n OnInit,\r\n Self\r\n} from '@angular/core';\r\n\r\nimport { AuthService } from '@igo2/auth';\r\nimport { ConfirmDialogService } from '@igo2/common';\r\nimport { LanguageService, MessageService, StorageService } from '@igo2/core';\r\nimport { MapService } from '@igo2/geo';\r\n\r\nimport { Subscription } from 'rxjs';\r\nimport { debounceTime } from 'rxjs/operators';\r\n\r\nimport {\r\n Context,\r\n ContextUserPermission,\r\n ContextsList,\r\n DetailedContext\r\n} from '../shared/context.interface';\r\nimport { ContextService } from '../shared/context.service';\r\nimport { ContextListComponent } from './context-list.component';\r\n\r\n@Directive({\r\n selector: '[igoContextListBinding]'\r\n})\r\nexport class ContextListBindingDirective implements OnInit, OnDestroy {\r\n private component: ContextListComponent;\r\n private contexts$$: Subscription;\r\n private selectedContext$$: Subscription;\r\n private defaultContextId$$: Subscription;\r\n private previousMessageId;\r\n\r\n @HostListener('select', ['$event'])\r\n onSelect(context: Context) {\r\n this.contextService.loadContext(context.uri);\r\n }\r\n\r\n @HostListener('edit', ['$event'])\r\n onEdit(context: Context) {\r\n this.contextService.loadEditedContext(context.uri);\r\n }\r\n\r\n @HostListener('save', ['$event'])\r\n onSave(context: Context) {\r\n const map = this.mapService.getMap();\r\n const contextFromMap = this.contextService.getContextFromMap(map);\r\n\r\n const msgSuccess = () => {\r\n this.messageService.success(\r\n 'igo.context.contextManager.dialog.saveMsg',\r\n 'igo.context.contextManager.dialog.saveTitle',\r\n undefined,\r\n {\r\n value: context.title\r\n }\r\n );\r\n };\r\n\r\n if (context.imported) {\r\n contextFromMap.title = context.title;\r\n this.contextService.delete(context.id, true);\r\n this.contextService.create(contextFromMap).subscribe((contextCreated) => {\r\n this.contextService.loadContext(contextCreated.uri);\r\n msgSuccess();\r\n });\r\n return;\r\n }\r\n\r\n const changes: any = {\r\n layers: contextFromMap.layers,\r\n map: {\r\n view: contextFromMap.map.view\r\n }\r\n };\r\n\r\n this.contextService.update(context.id, changes).subscribe(() => {\r\n msgSuccess();\r\n });\r\n }\r\n\r\n @HostListener('favorite', ['$event'])\r\n onFavorite(context: Context) {\r\n if (!context.id) {\r\n context.id = context.uri;\r\n }\r\n this.contextService.setDefault(context.id).subscribe(() => {\r\n if (this.previousMessageId) {\r\n this.messageService.remove(this.previousMessageId);\r\n }\r\n this.contextService.defaultContextId$.next(context.id);\r\n const messageObj = this.messageService.success(\r\n 'igo.context.contextManager.dialog.favoriteMsg',\r\n 'igo.context.contextManager.dialog.favoriteTitle',\r\n undefined,\r\n {\r\n value: context.title\r\n }\r\n );\r\n this.previousMessageId = messageObj.toastId;\r\n this.cdRef.detectChanges();\r\n });\r\n }\r\n\r\n @HostListener('manageTools', ['$event'])\r\n onManageTools(context: Context) {\r\n this.contextService.loadEditedContext(context.uri);\r\n }\r\n\r\n @HostListener('managePermissions', ['$event'])\r\n onManagePermissions(context: Context) {\r\n this.contextService.loadEditedContext(context.uri);\r\n }\r\n\r\n @HostListener('delete', ['$event'])\r\n onDelete(context: Context) {\r\n const translate = this.languageService.translate;\r\n this.confirmDialogService\r\n .open(\r\n translate.instant('igo.context.contextManager.dialog.confirmDelete')\r\n )\r\n .subscribe((confirm) => {\r\n if (confirm) {\r\n this.contextService\r\n .delete(context.id, context.imported)\r\n .subscribe(() => {\r\n this.messageService.info(\r\n 'igo.context.contextManager.dialog.deleteMsg',\r\n 'igo.context.contextManager.dialog.deleteTitle',\r\n undefined,\r\n { value: context.title }\r\n );\r\n });\r\n }\r\n });\r\n }\r\n\r\n @HostListener('clone', ['$event'])\r\n onClone(context: DetailedContext) {\r\n const properties = {\r\n title: context.title + '-copy',\r\n uri: context.uri + '-copy'\r\n };\r\n this.contextService.clone(context.id, properties).subscribe(() => {\r\n this.messageService.success(\r\n 'igo.context.contextManager.dialog.cloneMsg',\r\n 'igo.context.contextManager.dialog.cloneTitle',\r\n undefined,\r\n { value: context.title }\r\n );\r\n });\r\n }\r\n\r\n @HostListener('create', ['$event'])\r\n onCreate(opts: { title: string; empty: boolean }) {\r\n const { title, empty } = opts;\r\n const context = this.contextService.getContextFromMap(\r\n this.component.map,\r\n empty\r\n );\r\n context.title = title;\r\n this.contextService.create(context).subscribe(() => {\r\n this.messageService.success(\r\n 'igo.context.bookmarkButton.dialog.createMsg',\r\n 'igo.context.bookmarkButton.dialog.createTitle',\r\n undefined,\r\n { value: context.title }\r\n );\r\n this.contextService.loadContext(context.uri);\r\n });\r\n }\r\n\r\n @HostListener('filterPermissionsChanged')\r\n loadContexts() {\r\n const permissions = ['none'];\r\n for (const p of this.component.permissions) {\r\n if (p.checked === true || p.indeterminate === true) {\r\n permissions.push(p.name);\r\n }\r\n }\r\n this.component.showHidden\r\n ? this.contextService.loadContexts(permissions, true)\r\n : this.contextService.loadContexts(permissions, false);\r\n }\r\n\r\n @HostListener('showHiddenContexts')\r\n showHiddenContexts() {\r\n this.component.showHidden = !this.component.showHidden;\r\n this.storageService.set('contexts.showHidden', this.component.showHidden);\r\n this.loadContexts();\r\n }\r\n\r\n @HostListener('show', ['$event'])\r\n onShowContext(context: DetailedContext) {\r\n this.contextService.showContext(context.id).subscribe();\r\n }\r\n\r\n @HostListener('hide', ['$event'])\r\n onHideContext(context: DetailedContext) {\r\n this.contextService.hideContext(context.id).subscribe();\r\n }\r\n\r\n constructor(\r\n @Self() component: ContextListComponent,\r\n private contextService: ContextService,\r\n private mapService: MapService,\r\n private languageService: LanguageService,\r\n private confirmDialogService: ConfirmDialogService,\r\n private messageService: MessageService,\r\n private auth: AuthService,\r\n private storageService: StorageService,\r\n private cdRef: ChangeDetectorRef\r\n ) {\r\n this.component = component;\r\n }\r\n\r\n ngOnInit() {\r\n // Override input contexts\r\n this.component.contexts = { ours: [] };\r\n this.component.showHidden = this.storageService.get(\r\n 'contexts.showHidden'\r\n ) as boolean;\r\n\r\n this.contexts$$ = this.contextService.contexts$.subscribe((contexts) =>\r\n this.handleContextsChange(contexts)\r\n );\r\n\r\n this.defaultContextId$$ = this.contextService.defaultContextId$.subscribe(\r\n (id) => {\r\n this.component.defaultContextId = id;\r\n }\r\n );\r\n const storedContextUri = this.storageService.get(\r\n 'favorite.context.uri'\r\n ) as string;\r\n if (storedContextUri && !this.auth.authenticated) {\r\n this.contextService.defaultContextId$.next(storedContextUri);\r\n }\r\n\r\n // See feature-list.component for an explanation about the debounce time\r\n this.selectedContext$$ = this.contextService.context$\r\n .pipe(debounceTime(100))\r\n .subscribe((context) => (this.component.selectedContext = context));\r\n\r\n this.auth.authenticate$.subscribe((authenticate) => {\r\n if (authenticate) {\r\n this.contextService.getProfilByUser().subscribe((profils) => {\r\n this.component.users = profils;\r\n this.component.permissions = [];\r\n const profilsAcc = this.component.users.reduce((acc, cur) => {\r\n acc = acc.concat(cur);\r\n acc = cur.childs ? acc.concat(cur.childs) : acc;\r\n return acc;\r\n }, []);\r\n\r\n for (const user of profilsAcc) {\r\n const permission: ContextUserPermission = {\r\n name: user.name,\r\n checked: this.storageService.get(\r\n 'contexts.permissions.' + user.name\r\n ) as boolean\r\n };\r\n if (permission.checked === null) {\r\n permission.checked = true;\r\n }\r\n this.component.permissions.push(permission);\r\n }\r\n\r\n const permissions = ['none'];\r\n for (const p of this.component.permissions) {\r\n if (p.checked === true || p.indeterminate === true) {\r\n permissions.push(p.name);\r\n }\r\n }\r\n\r\n this.component.showHidden\r\n ? this.contextService.loadContexts(permissions, true)\r\n : this.contextService.loadContexts(permissions, false);\r\n });\r\n }\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n this.contexts$$.unsubscribe();\r\n this.selectedContext$$.unsubscribe();\r\n this.defaultContextId$$.unsubscribe();\r\n }\r\n\r\n private handleContextsChange(contexts: ContextsList) {\r\n this.component.contexts = contexts;\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport {\r\n ChangeDetectorRef,\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnInit,\r\n Output\r\n} from '@angular/core';\r\nimport {\r\n UntypedFormBuilder,\r\n UntypedFormControl,\r\n UntypedFormGroup\r\n} from '@angular/forms';\r\n\r\nimport { AuthService } from '@igo2/auth';\r\nimport { ConfigService } from '@igo2/core';\r\n\r\nimport { Subscription } from 'rxjs';\r\n\r\nimport { TypePermission } from '../shared/context.enum';\r\nimport {\r\n Context,\r\n ContextPermission,\r\n ContextPermissionsList,\r\n ContextProfils\r\n} from '../shared/context.interface';\r\n\r\n@Component({\r\n selector: 'igo-context-permissions',\r\n templateUrl: './context-permissions.component.html',\r\n styleUrls: ['./context-permissions.component.scss']\r\n})\r\nexport class ContextPermissionsComponent implements OnInit {\r\n public form: UntypedFormGroup;\r\n\r\n @Input()\r\n get context(): Context {\r\n return this._context;\r\n }\r\n set context(value: Context) {\r\n this._context = value;\r\n this.cd.detectChanges();\r\n }\r\n private _context: Context;\r\n\r\n @Input()\r\n get permissions(): ContextPermissionsList {\r\n return this._permissions;\r\n }\r\n set permissions(value: ContextPermissionsList) {\r\n this._permissions = value;\r\n this.cd.detectChanges();\r\n }\r\n private _permissions: ContextPermissionsList;\r\n\r\n get profils(): ContextProfils[] {\r\n return this._profils;\r\n }\r\n set profils(value: ContextProfils[]) {\r\n this._profils = value;\r\n this.cd.detectChanges();\r\n }\r\n private _profils: ContextProfils[] = [];\r\n\r\n get canWrite(): boolean {\r\n return this.context.permission === TypePermission[TypePermission.write];\r\n }\r\n\r\n private baseUrlProfils;\r\n\r\n public formControl = new UntypedFormControl();\r\n formValueChanges$$: Subscription;\r\n\r\n @Output() addPermission: EventEmitter<ContextPermission> = new EventEmitter();\r\n @Output() removePermission: EventEmitter<ContextPermission> =\r\n new EventEmitter();\r\n @Output() scopeChanged: EventEmitter<Context> = new EventEmitter();\r\n\r\n constructor(\r\n private formBuilder: UntypedFormBuilder,\r\n private cd: ChangeDetectorRef,\r\n private http: HttpClient,\r\n public authService: AuthService,\r\n private config: ConfigService\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.buildForm();\r\n\r\n this.baseUrlProfils =\r\n this.config.getConfig('context.url') + '/profils-users?';\r\n\r\n this.formValueChanges$$ = this.formControl.valueChanges.subscribe(\r\n (value) => {\r\n if (value.length) {\r\n this.http\r\n .get(this.baseUrlProfils + 'q=' + value)\r\n .subscribe((profils) => {\r\n this.profils = profils as ContextProfils[];\r\n });\r\n this.profils.filter((profil) => {\r\n const filterNormalized = value\r\n .toLowerCase()\r\n .normalize('NFD')\r\n .replace(/[\\u0300-\\u036f]/g, '');\r\n const profilTitleNormalized = profil.title\r\n .toLowerCase()\r\n .normalize('NFD')\r\n .replace(/[\\u0300-\\u036f]/g, '');\r\n const profilNameNormalized = profil.name\r\n .toLowerCase()\r\n .normalize('NFD')\r\n .replace(/[\\u0300-\\u036f]/g, '');\r\n const profilNormalized =\r\n profilNameNormalized + profilTitleNormalized;\r\n return profilNormalized.includes(filterNormalized);\r\n });\r\n } else {\r\n this.profils = [];\r\n }\r\n }\r\n );\r\n }\r\n\r\n displayFn(profil?: ContextProfils): string | undefined {\r\n return profil ? profil.title : undefined;\r\n }\r\n\r\n public handleFormSubmit(value) {\r\n this.addPermission.emit(value);\r\n }\r\n\r\n private buildForm(): void {\r\n this.form = this.formBuilder.group({\r\n profil: [],\r\n typePermission: ['read']\r\n });\r\n }\r\n\r\n onProfilSelected(value) {\r\n this.form.setValue({\r\n profil: value.name,\r\n typePermission: this.form.value.typePermission\r\n });\r\n }\r\n}\r\n","<div *ngIf=\"context\">\r\n <div *ngIf=\"!canWrite\" class=\"scopeForm\">\r\n <h4>{{ 'igo.context.permission.readOnlyTitle' | translate }}</h4>\r\n <p>{{ 'igo.context.permission.readOnlyMsg' | translate }}</p>\r\n </div>\r\n\r\n <div *ngIf=\"canWrite\" class=\"scopeForm\">\r\n <mat-radio-group\r\n [(ngModel)]=\"context.scope\"\r\n (change)=\"scopeChanged.emit(context)\"\r\n >\r\n <mat-radio-button value=\"private\">\r\n {{ 'igo.context.permission.scope.private' | translate }}\r\n </mat-radio-button>\r\n <mat-radio-button value=\"protected\">\r\n {{ 'igo.context.permission.scope.shared' | translate }}\r\n </mat-radio-button>\r\n <mat-radio-button *ngIf=\"authService.isAdmin\" value=\"public\">\r\n {{ 'igo.context.permission.scope.public' | translate }}\r\n </mat-radio-button>\r\n </mat-radio-group>\r\n </div>\r\n\r\n <form\r\n *ngIf=\"context.scope !== 'private' && canWrite\"\r\n [formGroup]=\"form\"\r\n (ngSubmit)=\"handleFormSubmit(form.value)\"\r\n >\r\n <mat-form-field class=\"full-width\">\r\n <input\r\n matInput\r\n required\r\n [placeholder]=\"'igo.context.permission.user' | translate\"\r\n [formControl]=\"formControl\"\r\n [matAutocomplete]=\"auto\"\r\n />\r\n <mat-autocomplete\r\n #auto=\"matAutocomplete\"\r\n (optionSelected)=\"onProfilSelected($event.option.value)\"\r\n [displayWith]=\"displayFn\"\r\n >\r\n <mat-option *ngFor=\"let profil of this.profils\" [value]=\"profil\">\r\n {{ profil.title }}<br />\r\n <small class=\"mat-typography\">{{ profil.name }}</small>\r\n </mat-option>\r\n </mat-autocomplete>\r\n <mat-error>\r\n {{ 'igo.context.permission.profilRequired' | translate }}\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n <mat-radio-group formControlName=\"typePermission\">\r\n <mat-radio-button value=\"read\">\r\n {{ 'igo.context.permission.read' | translate }}\r\n </mat-radio-button>\r\n <mat-radio-button value=\"write\">\r\n {{ 'igo.context.permission.write' | translate }}\r\n </mat-radio-button>\r\n </mat-radio-group>\r\n\r\n <div class=\"igo-form-button-group\">\r\n <button mat-raised-button type=\"submit\" [disabled]=\"!form.valid\">\r\n {{ 'igo.context.permission.addBtn' | translate }}\r\n </button>\r\n </div>\r\n </form>\r\n\r\n <igo-list *ngIf=\"permissions && context.scope !== 'private'\">\r\n <ng-template ngFor let-groupPermissions [ngForOf]=\"permissions | keyvalue\">\r\n <igo-collapsible\r\n *ngIf=\"groupPermissions.value.length\"\r\n [title]=\"'igo.context.permission.' + groupPermissions.key | translate\"\r\n >\r\n <ng-template ngFor let-permission [ngForOf]=\"groupPermissions.value\">\r\n <mat-list-item>\r\n <mat-icon matListItemIcon svgIcon=\"account-outline\"></mat-icon>\r\n <h4 matListItemTitle>\r\n {{ permission.profilTitle }}\r\n <small class=\"mat-typography\">{{ permission.profil }}</small>\r\n </h4>\r\n\r\n <div\r\n matListItemMeta\r\n igoStopPropagation\r\n class=\"igo-actions-container\"\r\n >\r\n <button\r\n *ngIf=\"\r\n canWrite ||\r\n permission.profil === authService.decodeToken().user.sourceId\r\n \"\r\n mat-icon-button\r\n [matTooltip]=\"'igo.context.permission.delete' | translate\"\r\n matTooltipShowDelay=\"500\"\r\n color=\"warn\"\r\n (click)=\"removePermission.emit(permission)\"\r\n >\r\n <mat-icon svgIcon=\"delete\"></mat-icon>\r\n </button>\r\n </div>\r\n </mat-list-item>\r\n </ng-template>\r\n </igo-collapsible>\r\n </ng-template>\r\n </igo-list>\r\n</div>\r\n","import {\r\n ChangeDetectorRef,\r\n Directive,\r\n HostListener,\r\n OnDestroy,\r\n OnInit,\r\n Self\r\n} from '@angular/core';\r\n\r\nimport { LanguageService, MessageService } from '@igo2/core';\r\n\r\nimport { Subscription } from 'rxjs';\r\n\r\nimport {\r\n Context,\r\n ContextPermission,\r\n DetailedContext\r\n} from '../shared/context.interface';\r\nimport { ContextService } from '../shared/context.service';\r\nimport { ContextPermissionsComponent } from './context-permissions.component';\r\n\r\n@Directive({\r\n selector: '[igoContextPermissionsBinding]'\r\n})\r\nexport class ContextPermissionsBindingDirective implements OnInit, OnDestroy {\r\n private component: ContextPermissionsComponent;\r\n private editedContext$$: Subscription;\r\n\r\n @HostListener('addPermission', ['$event'])\r\n onAddPermission(permission: ContextPermission) {\r\n if (!permission.profil) {\r\n this.messageService.error(\r\n 'igo.context.contextManager.errors.addPermissionEmpty',\r\n 'igo.context.contextManager.errors.addPermissionTitle'\r\n );\r\n return;\r\n }\r\n const contextId = this.component.context.id;\r\n this.contextService\r\n .addPermissionAssociation(\r\n contextId,\r\n permission.profil,\r\n permission.typePermission\r\n )\r\n .subscribe((profils) => {\r\n for (const p of profils) {\r\n this.component.permissions[permission.typePermission].push(p);\r\n }\r\n const profil = permission.profil;\r\n this.messageService.success(\r\n 'igo.context.permission.dialog.addMsg',\r\n 'igo.context.permission.dialog.addTitle',\r\n undefined,\r\n { value: profil }\r\n );\r\n this.cd.detectChanges();\r\n });\r\n }\r\n\r\n @HostListener('removePermission', ['$event'])\r\n onRemovePermission(permission: ContextPermission) {\r\n const contextId = this.component.context.id;\r\n this.contextService\r\n .deletePermissionAssociation(contextId, permission.id)\r\n .subscribe(() => {\r\n const index = this.component.permissions[\r\n permission.typePermission\r\n ].findIndex((p) => {\r\n return p.id === permission.id;\r\n });\r\n this.component.permissions[permission.typePermission].splice(index, 1);\r\n\r\n const profil = permission.profil;\r\n this.messageService.success(\r\n 'igo.context.permission.dialog.deleteMsg',\r\n 'igo.context.permission.dialog.deleteTitle',\r\n undefined,\r\n { value: profil }\r\n );\r\n this.cd.detectChanges();\r\n });\r\n }\r\n\r\n @HostListener('scopeChanged', ['$event'])\r\n onScopeChanged(context: Context) {\r\n const scope = context.scope;\r\n this.contextService.update(context.id, { scope }).subscribe(() => {\r\n this.messageService.success(\r\n 'igo.context.permission.dialog.scopeChangedMsg',\r\n 'igo.context.permission.dialog.scopeChangedTitle',\r\n undefined,\r\n { value: 'igo.context.permission.scope.' + scope }\r\n );\r\n });\r\n }\r\n\r\n constructor(\r\n @Self() component: ContextPermissionsComponent,\r\n private contextService: ContextService,\r\n private languageService: LanguageService,\r\n private messageService: MessageService,\r\n private cd: ChangeDetectorRef\r\n ) {\r\n this.component = component;\r\n }\r\n\r\n ngOnInit() {\r\n this.editedContext$$ = this.contextService.editedContext$.subscribe(\r\n (context) => this.handleEditedContextChange(context)\r\n );\r\n }\r\n\r\n ngOnDestroy() {\r\n this.editedContext$$.unsubscribe();\r\n this.contextService.editedContext$.next(undefined);\r\n }\r\n\r\n private handleEditedContextChange(context: DetailedContext) {\r\n this.component.context = context;\r\n\r\n if (context) {\r\n this.contextService\r\n .getPermissions(context.id)\r\n .subscribe((permissionsArray) => {\r\n permissionsArray = permissionsArray || [];\r\n const permissions = {\r\n read: permissionsArray.filter((p) => {\r\n return p.typePermission.toString() === 'read';\r\n }),\r\n write: permissionsArray.filter((p) => {\r\n return p.typePermission.toString() === 'write';\r\n })\r\n };\r\n return (this.component.permissions = permissions);\r\n });\r\n }\r\n }\r\n}\r\n","import { Directive, Input, OnDestroy, OnInit, Optional } from '@angular/core';\r\n\r\nimport { ConfigService, RouteService } from '@igo2/core';\r\nimport {\r\n Layer,\r\n LayerOptions,\r\n LayerService,\r\n MapBrowserComponent,\r\n StyleListService,\r\n StyleService\r\n} from '@igo2/geo';\r\nimport type { IgoMap } from '@igo2/geo';\r\nimport { ObjectUtils } from '@igo2/utils';\r\n\r\nimport { Subscription, merge } from 'rxjs';\r\nimport { buffer, debounceTime, filter, first } from 'rxjs/operators';\r\n\r\nimport {\r\n addImportedFeaturesStyledToMap,\r\n addImportedFeaturesToMap\r\n} from '../../context-import-export/shared/context-import.utils';\r\nimport { DetailedContext } from './context.interface';\r\nimport { ContextService } from './context.service';\r\n\r\n@Directive({\r\n selector: '[igoLayerContext]'\r\n})\r\nexport class LayerContextDirective implements OnInit, OnDestroy {\r\n private context$$: Subscription;\r\n private queryParams: any;\r\n\r\n private contextLayers: Layer[] = [];\r\n\r\n @Input() removeLayersOnContextChange: boolean = true;\r\n\r\n get map(): IgoMap {\r\n return this.component.map;\r\n }\r\n\r\n constructor(\r\n private component: MapBrowserComponent,\r\n private contextService: ContextService,\r\n private layerService: LayerService,\r\n private configService: ConfigService,\r\n private styleListService: StyleListService,\r\n private styleService: StyleService,\r\n @Optional() private route: RouteService\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.context$$ = this.contextService.context$\r\n .pipe(filter((context) => context !== undefined))\r\n .subscribe((context) => this.handleContextChange(context));\r\n\r\n if (\r\n this.route &&\r\n this.route.options.visibleOnLayersKey &&\r\n this.route.options.visibleOffLayersKey &&\r\n this.route.options.contextKey\r\n ) {\r\n this.route.queryParams\r\n .pipe(first((params) => !ObjectUtils.isEmpty(params)))\r\n .subscribe((params) => {\r\n this.queryParams = params;\r\n });\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n this.context$$.unsubscribe();\r\n }\r\n\r\n private handleContextChange(context: DetailedContext) {\r\n if (context.layers === undefined) {\r\n return;\r\n }\r\n if (this.removeLayersOnContextChange === true) {\r\n this.map.removeAllLayers();\r\n } else {\r\n this.map.removeLayers(this.contextLayers);\r\n }\r\n this.contextLayers = [];\r\n\r\n const layersAndIndex$ = merge(\r\n ...context.layers.map((layerOptions: LayerOptions, index: number) => {\r\n return this.layerService.createAsyncLayer(layerOptions, context.uri);\r\n })\r\n );\r\n\r\n layersAndIndex$\r\n .pipe(buffer(layersAndIndex$.pipe(debounceTime(500))))\r\n .subscribe((layers: Layer[]) => {\r\n this.handleAddLayers(layers);\r\n\r\n if (context.extraFeatures) {\r\n context.extraFeatures.forEach((featureCollection) => {\r\n const importExportOptions =\r\n this.configService.getConfig('importExport');\r\n if (!importExportOptions?.importWithStyle) {\r\n addImportedFeaturesToMap(featureCollection, this.map);\r\n } else {\r\n addImportedFeaturesStyledToMap(\r\n featureCollection,\r\n this.map,\r\n this.styleListService,\r\n this.styleService\r\n );\r\n }\r\n });\r\n }\r\n });\r\n\r\n this.layerService\r\n .createAsyncIdbLayers(context.uri)\r\n .pipe(debounceTime(500))\r\n .subscribe((layers: Layer[]) => this.handleAddLayers(layers));\r\n }\r\n\r\n private handleAddLayers(layers: Layer[]) {\r\n layers = layers\r\n .filter((layer: Layer) => layer !== undefined)\r\n .map((layer) => {\r\n layer.visible = this.computeLayerVisibilityFromUrl(layer);\r\n layer.zIndex = layer.zIndex;\r\n\r\n return layer;\r\n });\r\n this.contextLayers.concat(layers);\r\n this.map.addLayers(layers);\r\n }\r\n\r\n private computeLayerVisibilityFromUrl(layer: Layer): boolean {\r\n const params = this.queryParams;\r\n const currentContext = this.contextService.context$.value.uri;\r\n const currentLayerid: string = layer.id;\r\n\r\n let visible = layer.visible;\r\n if (!params || !currentLayerid) {\r\n return visible;\r\n }\r\n\r\n const contextParams = params[this.route.options.contextKey as string];\r\n if (contextParams === currentContext || !contextParams) {\r\n let visibleOnLayersParams = '';\r\n let visibleOffLayersParams = '';\r\n let visiblelayers: string[] = [];\r\n let invisiblelayers: string[] = [];\r\n\r\n if (\r\n this.route.options.visibleOnLayersKey &&\r\n params[this.route.options.visibleOnLayersKey as string]\r\n ) {\r\n visibleOnLayersParams =\r\n params[this.route.options.visibleOnLayersKey as string];\r\n }\r\n if (\r\n this.route.options.visibleOffLayersKey &&\r\n params[this.route.options.visibleOffLayersKey as string]\r\n ) {\r\n visibleOffLayersParams =\r\n params[this.route.options.visibleOffLayersKey as string];\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 }\r\n\r\n return visible;\r\n }\r\n}\r\n","import { Directive, OnDestroy, OnInit } from '@angular/core';\r\n\r\nimport { MediaService } from '@igo2/core';\r\nimport {\r\n MapBrowserComponent,\r\n MapControlsOptions,\r\n MapScaleLineOptions,\r\n MapViewOptions\r\n} from '@igo2/geo';\r\nimport type { IgoMap } from '@igo2/geo';\r\n\r\nimport { Subscription } from 'rxjs';\r\nimport { filter } from 'rxjs/operators';\r\n\r\nimport { ContextMapView, DetailedContext } from './context.interface';\r\nimport { ContextService } from './context.service';\r\n\r\n@Directive({\r\n selector: '[igoMapContext]'\r\n})\r\nexport class MapContextDirective implements OnInit, OnDestroy {\r\n private component: MapBrowserComponent;\r\n private context$$: Subscription;\r\n\r\n get map(): IgoMap {\r\n return this.component.map;\r\n }\r\n\r\n constructor(\r\n component: MapBrowserComponent,\r\n private contextService: ContextService,\r\n private mediaService: MediaService\r\n ) {\r\n this.component = component;\r\n }\r\n\r\n ngOnInit() {\r\n this.context$$ = this.contextService.context$\r\n .pipe(filter((context) => context !== undefined))\r\n .subscribe((context) => this.handleContextChange(context));\r\n }\r\n\r\n ngOnDestroy() {\r\n this.context$$.unsubscribe();\r\n }\r\n\r\n private handleContextChange(context: DetailedContext) {\r\n if (context.map === undefined) {\r\n return;\r\n }\r\n\r\n // This creates a new ol.Map when the context changes. Doing that\r\n // allows the print tool to work properly even when the map's canvas\r\n // has been tainted (CORS) with the layers of another context. This could\r\n // have some side effects such as unbinding all listeners on the first map.\r\n // A better solution would be to create a new map (preview) before\r\n // printing and avoid the tainted canvas issue. This will come later so\r\n // this snippet of code is kept here in case it takes too long becomes\r\n // an issue\r\n\r\n // const target = this.component.map.ol.getTarget();\r\n // this.component.map.ol.setTarget(undefined);\r\n // this.component.map.init();\r\n // this.component.map.ol.setTarget(target);\r\n\r\n const viewContext: ContextMapView = context.map.view;\r\n if (\r\n !this.component.view ||\r\n viewContext.keepCurrentView !== true ||\r\n context.map.view.projection !== this.map.projection\r\n ) {\r\n this.component.view = viewContext as MapViewOptions;\r\n }\r\n if (this.component.map.geolocationController) {\r\n this.component.map.geolocationController.updateGeolocationOptions(\r\n viewContext\r\n );\r\n }\r\n\r\n const controlsContext: MapControlsOptions = context.map.controls;\r\n if (!this.component.controls && controlsContext) {\r\n if (this.mediaService.isMobile()) {\r\n if (typeof controlsContext.scaleLine !== 'boolean') {\r\n const scaleLineOption =\r\n controlsContext.scaleLine as MapScaleLineOptions;\r\n if (!scaleLineOption.minWidth) {\r\n scaleLineOption.minWidth = Math.min(64, scaleLineOption.minWidth);\r\n controlsContext.scaleLine = scaleLineOption;\r\n }\r\n }\r\n }\r\n this.component.controls = controlsContext;\r\n }\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatOptionModule } from '@angular/material/core';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatListModule } from '@angular/material/list';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { MatRadioModule } from '@angular/material/radio';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\n\r\nimport { IgoAuthModule } from '@igo2/auth';\r\nimport {\r\n IgoActionbarModule,\r\n IgoCollapsibleModule,\r\n IgoKeyValueModule,\r\n IgoListModule,\r\n IgoStopPropagationModule\r\n} from '@igo2/common';\r\nimport { IgoLanguageModule } from '@igo2/core';\r\n\r\nimport { IgoContextImportExportModule } from '../context-import-export/context-import-export.module';\r\nimport { IgoContextMapButtonModule } from '../context-map-button/context-map-button.module';\r\nimport { ContextEditBindingDirective } from './context-edit/context-edit-binding.directive';\r\nimport { ContextEditComponent } from './context-edit/context-edit.component';\r\nimport { ContextFormComponent } from './context-form/context-form.component';\r\nimport { ContextItemComponent } from './context-item/context-item.component';\r\nimport { ContextListBindingDirective } from './context-list/context-list-binding.directive';\r\nimport { ContextListComponent } from './context-list/context-list.component';\r\nimport { ContextPermissionsBindingDirective } from './context-permissions/context-permissions-binding.directive';\r\nimport { ContextPermissionsComponent } from './context-permissions/context-permissions.component';\r\nimport { LayerContextDirective } from './shared/layer-context.directive';\r\nimport { MapContextDirective } from './shared/map-context.directive';\r\n\r\nconst CONTEXT_DIRECTIVES = [MapContextDirective, LayerContextDirective];\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n MatFormFieldModule,\r\n MatInputModule,\r\n MatIconModule,\r\n MatButtonModule,\r\n MatTooltipModule,\r\n MatListModule,\r\n MatCheckboxModule,\r\n MatRadioModule,\r\n MatDialogModule,\r\n MatMenuModule,\r\n MatOptionModule,\r\n MatAutocompleteModule,\r\n IgoAuthModule,\r\n IgoListModule,\r\n IgoKeyValueModule,\r\n IgoCollapsibleModule,\r\n IgoStopPropagationModule,\r\n IgoLanguageModule,\r\n IgoContextImportExportModule,\r\n IgoContextMapButtonModule,\r\n IgoActionbarModule\r\n ],\r\n exports: [\r\n ContextListComponent,\r\n ContextListBindingDirective,\r\n ContextItemComponent,\r\n ContextFormComponent,\r\n ContextEditComponent,\r\n ContextEditBindingDirective,\r\n ContextPermissionsComponent,\r\n ContextPermissionsBindingDirective,\r\n\r\n ...CONTEXT_DIRECTIVES\r\n ],\r\n declarations: [\r\n ContextListComponent,\r\n ContextListBindingDirective,\r\n ContextItemComponent,\r\n ContextFormComponent,\r\n ContextEditComponent,\r\n ContextEditBindingDirective,\r\n ContextPermissionsComponent,\r\n ContextPermissionsBindingDirective,\r\n\r\n ...CONTEXT_DIRECTIVES\r\n ]\r\n})\r\nexport class IgoContextManagerModule {\r\n static forRoot(): ModuleWithProviders<IgoContextManagerModule> {\r\n return {\r\n ngModule: IgoContextManagerModule\r\n };\r\n }\r\n}\r\n","import { Injectable, Optional } from '@angular/core';\r\n\r\nimport { RouteService } from '@igo2/core';\r\nimport { Layer, WMSDataSourceOptions } from '@igo2/geo';\r\nimport type { IgoMap } from '@igo2/geo';\r\n\r\nimport { DetailedContext } from '../../context-manager/shared/context.interface';\r\nimport { ContextService } from '../../context-manager/shared/context.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ShareMapService {\r\n private language = '';\r\n\r\n constructor(\r\n private contextService: ContextService,\r\n @Optional() private route: RouteService\r\n ) {\r\n this.route.queryParams.subscribe((params) => {\r\n if (params['lang']) {\r\n this.language = params['lang'];\r\n }\r\n });\r\n }\r\n\r\n getUrlWithApi(formValues) {\r\n return this.language\r\n ? `${location.origin + location.pathname}?context=${\r\n formValues.uri\r\n }&lang=${this.language}`\r\n : `${location.origin + location.pathname}?context=${formValues.uri}`;\r\n }\r\n\r\n createContextShared(map: IgoMap, formValues) {\r\n const context = this.contextService.getContextFromMap(map);\r\n context.scope = 'public';\r\n context.title = formValues.title;\r\n context.uri = formValues.uri;\r\n return this.contextService.create(context);\r\n }\r\n\r\n updateContextShared(map: IgoMap, formValues, id: string) {\r\n const context = this.contextService.getContextFromMap(map);\r\n return this.contextService.update(id, {\r\n title: formValues.title,\r\n map: context.map\r\n } as DetailedContext);\r\n }\r\n\r\n getUrlWithoutApi(map: IgoMap, publicShareOption) {\r\n if (\r\n !this.route ||\r\n !this.route.options.visibleOnLayersKey ||\r\n !this.route.options.visibleOffLayersKey ||\r\n !map.viewController.getZoom()\r\n ) {\r\n return;\r\n }\r\n const llc = publicShareOption.layerlistControls.querystring;\r\n\r\n let visibleKey = this.route.options.visibleOnLayersKey;\r\n let invisibleKey = this.route.options.visibleOffLayersKey;\r\n const layers = map.layers;\r\n\r\n const visibleLayers = layers.filter(\r\n (lay) => lay.visible && !lay.isIgoInternalLayer\r\n );\r\n const invisibleLayers = layers.filter(\r\n (lay) => !lay.visible && !lay.isIgoInternalLayer\r\n );\r\n\r\n if (visibleLayers.length === 0) {\r\n visibleKey = '';\r\n }\r\n if (invisibleLayers.length === 0) {\r\n invisibleKey = '';\r\n }\r\n\r\n let layersUrl = '';\r\n let layersToLoop = [];\r\n if (visibleLayers.length > invisibleLayers.length) {\r\n layersUrl = `${visibleKey}=*&${invisibleKey}=`;\r\n layersToLoop = invisibleLayers;\r\n } else {\r\n layersUrl = `${invisibleKey}=*&${visibleKey}=`;\r\n layersToLoop = visibleLayers;\r\n }\r\n\r\n for (const layer of layersToLoop) {\r\n if (layer.id) {\r\n layersUrl += layer.id + ',';\r\n }\r\n }\r\n const contextLayersID = [];\r\n const contextLayers = this.contextService.context$.value.layers;\r\n for (const contextLayer of contextLayers) {\r\n if (\r\n typeof contextLayer.id !== 'undefined' ||\r\n typeof contextLayer.source !== 'undefined'\r\n ) {\r\n contextLayersID.push(contextLayer.id || contextLayer.source.id);\r\n }\r\n }\r\n\r\n const addedLayersQueryParamsWms = this.makeLayersByService(\r\n layers,\r\n contextLayersID,\r\n 'wms'\r\n );\r\n const addedLayersQueryParamsWmts = this.makeLayersByService(\r\n layers,\r\n contextLayersID,\r\n 'wmts'\r\n );\r\n const addedLayersQueryParamsArcgisRest = this.makeLayersByService(\r\n layers,\r\n contextLayersID,\r\n 'arcgisrest'\r\n );\r\n const addedLayersQueryParamsImageArcgisRest = this.makeLayersByService(\r\n layers,\r\n contextLayersID,\r\n 'imagearcgisrest'\r\n );\r\n const addedLayersQueryParamsTileArcgisRest = this.makeLayersByService(\r\n layers,\r\n contextLayersID,\r\n 'tilearcgisrest'\r\n );\r\n\r\n layersUrl = layersUrl.substr(0, layersUrl.length - 1);\r\n\r\n const zoomKey = this.route.options.zoomKey;\r\n const centerKey = this.route.options.centerKey;\r\n const contextKey = this.route.options.contextKey;\r\n\r\n const zoom = `${zoomKey}=${map.viewController.getZoom()}`;\r\n const arrayCenter = map.viewController.getCenter('EPSG:4326') || [];\r\n const long = arrayCenter[0].toFixed(5).replace(/\\.([^0]+)0+$/, '.$1');\r\n const lat = arrayCenter[1].toFixed(5).replace(/\\.([^0]+)0+$/, '.$1');\r\n const center = `${centerKey}=${long},${lat}`.replace(/.00000/g, '');\r\n let context = '';\r\n if (this.contextService.context$.value) {\r\n context = `${contextKey}=${this.contextService.context$.value.uri}`;\r\n }\r\n\r\n let url = this.language\r\n ? `${location.origin}${location.pathname}?${context}&${zoom}&${center}&${layersUrl}&${llc}&${addedLayersQueryParamsWms}&${llc}&${addedLayersQueryParamsWmts}&${addedLayersQueryParamsArcgisRest}&${addedLayersQueryParamsImageArcgisRest}&${addedLayersQueryParamsTileArcgisRest}&lang=${this.language}`\r\n : `${location.origin}${location.pathname}?${context}&${zoom}&${center}&${layersUrl}&${llc}&${addedLayersQueryParamsWms}&${llc}&${addedLayersQueryParamsWmts}&${addedLayersQueryParamsArcgisRest}&${addedLayersQueryParamsImageArcgisRest}&${addedLayersQueryParamsTileArcgisRest}`;\r\n for (let i = 0; i < 5; i++) {\r\n url = url.replace(/&&/g, '&');\r\n url = url.endsWith('&') ? url.slice(0, -1) : url;\r\n }\r\n url = url.endsWith('&') ? url.slice(0, -1) : url;\r\n url = url.replace('?&wm', '&wm');\r\n url = url.replace('?&', '?');\r\n\r\n return url;\r\n }\r\n\r\n private makeLayersByService(\r\n layers: Layer[],\r\n contextLayersID: any[],\r\n typeService: string\r\n ): string {\r\n const addedLayersByService = [];\r\n for (const layer of layers.filter(\r\n (l) => l.dataSource.options?.type === typeService\r\n )) {\r\n if (contextLayersID.indexOf(layer.id) === -1) {\r\n let linkUrl = encodeURIComponent((layer.dataSource.options as any).url);\r\n let addedLayer = '';\r\n let layerVersion: string;\r\n switch (layer.dataSource.options.type.toLowerCase()) {\r\n case 'wms':\r\n const datasourceOptions = layer.dataSource\r\n .options as WMSDataSourceOptions;\r\n addedLayer = encodeURIComponent(datasourceOptions.params.LAYERS);\r\n layerVersion =\r\n datasourceOptions.params.VERSION === '1.3.0'\r\n ? layerVersion\r\n : datasourceOptions.params.VERSION;\r\n break;\r\n case 'wmts':\r\n case 'arcgisrest':\r\n case 'imagearcgisrest':\r\n case 'tilearcgisrest':\r\n addedLayer = encodeURIComponent(\r\n (layer.dataSource.options as any).layer\r\n );\r\n break;\r\n }\r\n const addedLayerPosition = `${addedLayer}:igoz${layer.zIndex}`;\r\n\r\n let version = '';\r\n if (layerVersion) {\r\n const operator =\r\n (layer.dataSource.options as any).url.indexOf('?') === -1\r\n ? '?'\r\n : '&';\r\n version = encodeURIComponent(`${operator}VERSION=${layerVersion}`);\r\n }\r\n linkUrl = `${linkUrl}${version}`;\r\n\r\n if (\r\n !addedLayersByService.find((definedUrl) => definedUrl.url === linkUrl)\r\n ) {\r\n addedLayersByService.push({\r\n url: linkUrl,\r\n layers: [addedLayerPosition]\r\n });\r\n } else {\r\n addedLayersByService.forEach((service) => {\r\n if (service.url === linkUrl) {\r\n service.layers.push(addedLayerPosition);\r\n }\r\n });\r\n }\r\n }\r\n }\r\n\r\n let addedLayersQueryParams = '';\r\n if (addedLayersByService.length >= 1) {\r\n let linkUrlKey;\r\n let layersKey;\r\n /*\r\n const linkUrlKey = (typeService === 'wms') ? this.route.options.wmsUrlKey :\r\n (typeService === 'wmts') ? this.route.options.wmtsUrlKey : '' ;\r\n const layersKey = (typeService === 'wms') ? this.route.options.wmsLayersKey :\r\n (typeService === 'wmts') ? this.route.options.wmtsLayersKey : '' ;\r\n*/\r\n switch (typeService.toLowerCase()) {\r\n case 'wms':\r\n linkUrlKey = this.route.options.wmsUrlKey;\r\n layersKey = this.route.options.wmsLayersKey;\r\n break;\r\n case 'wmts':\r\n linkUrlKey = this.route.options.wmtsUrlKey;\r\n layersKey = this.route.options.wmtsLayersKey;\r\n break;\r\n case 'arcgisrest':\r\n linkUrlKey = this.route.options.arcgisUrlKey;\r\n layersKey = this.route.options.arcgisLayersKey;\r\n break;\r\n case 'imagearcgisrest':\r\n linkUrlKey = this.route.options.iarcgisUrlKey;\r\n layersKey = this.route.options.iarcgisLayersKey;\r\n break;\r\n case 'tilearcgisrest':\r\n linkUrlKey = this.route.options.tarcgisUrlKey;\r\n layersKey = this.route.options.tarcgisLayersKey;\r\n break;\r\n default:\r\n linkUrlKey = '';\r\n layersKey = '';\r\n }\r\n\r\n let linkUrlQueryParams = '';\r\n let layersQueryParams = '';\r\n addedLayersByService.forEach((service) => {\r\n linkUrlQueryParams += `${service.url},`;\r\n layersQueryParams += `(${service.layers.join(',')}),`;\r\n });\r\n linkUrlQueryParams = linkUrlQueryParams.endsWith(',')\r\n ? linkUrlQueryParams.slice(0, -1)\r\n : linkUrlQueryParams;\r\n layersQueryParams = layersQueryParams.endsWith(',')\r\n ? layersQueryParams.slice(0, -1)\r\n : layersQueryParams;\r\n addedLayersQueryParams = `${linkUrlKey}=${linkUrlQueryParams}&${layersKey}=${layersQueryParams}`;\r\n }\r\n\r\n return addedLayersQueryParams;\r\n }\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms';\r\n\r\nimport { AuthService } from '@igo2/auth';\r\nimport { LanguageService, MessageService } from '@igo2/core';\r\nimport type { IgoMap } from '@igo2/geo';\r\nimport { Clipboard, uuid } from '@igo2/utils';\r\n\r\nimport { ShareMapService } from '../shared/share-map.service';\r\n\r\n@Component({\r\n selector: 'igo-share-map-api',\r\n templateUrl: './share-map-api.component.html',\r\n styleUrls: ['./share-map-api.component.scss']\r\n})\r\nexport class ShareMapApiComponent implements OnInit {\r\n public form: UntypedFormGroup;\r\n\r\n @Input() map: IgoMap;\r\n\r\n public url: string;\r\n public userId: string;\r\n public idContextShared: string;\r\n\r\n constructor(\r\n private languageService: LanguageService,\r\n private messageService: MessageService,\r\n private auth: AuthService,\r\n private shareMapService: ShareMapService,\r\n private formBuilder: UntypedFormBuilder\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.auth.authenticate$.subscribe((auth) => {\r\n const decodeToken = this.auth.decodeToken();\r\n this.userId = decodeToken?.user?.id.toString();\r\n this.buildForm();\r\n });\r\n }\r\n\r\n createUrl(values: any = {}) {\r\n const inputs = Object.assign({}, values);\r\n inputs.uri = this.userId ? `${this.userId}-${values.uri}` : values.uri;\r\n this.url = this.shareMapService.getUrlWithApi(inputs);\r\n this.shareMapService.createContextShared(this.map, inputs).subscribe(\r\n (rep) => {\r\n this.idContextShared = rep.id;\r\n this.messageService.success(\r\n 'igo.context.contextManager.dialog.saveMsg',\r\n 'igo.context.contextManager.dialog.saveTitle',\r\n undefined,\r\n { value: inputs.title }\r\n );\r\n },\r\n (err) => {\r\n err.error.title = this.languageService.translate.instant(\r\n 'igo.context.shareMap.errorTitle'\r\n );\r\n this.messageService.showError(err);\r\n }\r\n );\r\n }\r\n\r\n updateContextShared(values: any = {}) {\r\n const inputs = Object.assign({}, values);\r\n inputs.uri = this.userId ? `${this.userId}-${values.uri}` : values.uri;\r\n this.shareMapService\r\n .updateContextShared(this.map, inputs, this.idContextShared)\r\n .subscribe(\r\n (rep) => {\r\n this.messageService.success(\r\n 'igo.context.contextManager.dialog.saveMsg',\r\n 'igo.context.contextManager.dialog.saveTitle',\r\n undefined,\r\n { value: inputs.title }\r\n );\r\n },\r\n (err) => {\r\n err.error.title = this.languageService.translate.instant(\r\n 'igo.context.shareMap.errorTitle'\r\n );\r\n this.messageService.showError(err);\r\n }\r\n );\r\n }\r\n\r\n copyTextToClipboard(textArea) {\r\n const successful = Clipboard.copy(textArea);\r\n if (successful) {\r\n this.messageService.success(\r\n 'igo.context.shareMap.dialog.copyMsg',\r\n 'igo.context.shareMap.dialog.copyTitle'\r\n );\r\n }\r\n }\r\n\r\n buildForm(): void {\r\n this.url = undefined;\r\n const id = uuid();\r\n let title = 'Partage ';\r\n title += this.userId ? `(${this.userId}-${id})` : `(${id})`;\r\n this.form = this.formBuilder.group({\r\n title: [title],\r\n uri: [id]\r\n });\r\n }\r\n}\r\n","<form class=\"igo-form\" [formGroup]=\"form\" (ngSubmit)=\"createUrl(form.value)\">\r\n <div class=\"igo-input-container\">\r\n <mat-form-field>\r\n <input\r\n matInput\r\n required\r\n [placeholder]=\"'igo.context.contextManager.form.title' | translate\"\r\n formControlName=\"title\"\r\n />\r\n <mat-error>\r\n {{ 'igo.context.contextManager.form.titleRequired' | translate }}\r\n </mat-error>\r\n </mat-form-field>\r\n </div>\r\n\r\n <div id=\"uriInput\" class=\"igo-input-container\">\r\n <mat-form-field>\r\n <span *ngIf=\"userId\" class=\"prefix\">{{ userId }}-</span>\r\n <span class=\"fieldWrapper\">\r\n <input\r\n matInput\r\n required\r\n [readonly]=\"!userId\"\r\n [placeholder]=\"'igo.context.contextManager.form.uri' | translate\"\r\n formControlName=\"uri\"\r\n />\r\n </span>\r\n <mat-error>\r\n {{ 'igo.context.contextManager.form.uriRequired' | translate }}\r\n </mat-error>\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"igo-form-button-group\">\r\n <button\r\n *ngIf=\"!url\"\r\n mat-raised-button\r\n type=\"submit\"\r\n [disabled]=\"!form.valid\"\r\n >\r\n {{ 'igo.context.shareMap.button' | translate }}\r\n </button>\r\n <button\r\n *ngIf=\"url\"\r\n mat-raised-button\r\n type=\"button\"\r\n (click)=\"updateContextShared(form.value)\"\r\n >\r\n {{ 'igo.context.shareMap.refreshBtn' | translate }}\r\n </button>\r\n </div>\r\n</form>\r\n\r\n<div *ngIf=\"url\" class=\"igo-input-container linkToShare\">\r\n <mat-form-field>\r\n <textarea\r\n #textArea\r\n matInput\r\n readonly\r\n rows=\"3\"\r\n class=\"textAreaWithButton\"\r\n [placeholder]=\"'igo.context.shareMap.placeholderLink' | translate\"\r\n [value]=\"url\"\r\n ></textarea>\r\n <button\r\n mat-icon-button\r\n tooltip-position=\"below\"\r\n matTooltipShowDelay=\"500\"\r\n [matTooltip]=\"'igo.context.shareMap.copy' | translate\"\r\n color=\"primary\"\r\n (click)=\"copyTextToClipboard(textArea)\"\r\n >\r\n <mat-icon svgIcon=\"content-copy\"></mat-icon>\r\n </button>\r\n </mat-form-field>\r\n <div></div>\r\n</div>\r\n","import {\r\n AfterViewInit,\r\n ChangeDetectorRef,\r\n Component,\r\n Input,\r\n OnDestroy,\r\n OnInit\r\n} from '@angular/core';\r\n\r\nimport { MessageService } from '@igo2/core';\r\nimport type { IgoMap } from '@igo2/geo';\r\nimport { Clipboard } from '@igo2/utils';\r\n\r\nimport { Subscription, combineLatest } from 'rxjs';\r\n\r\nimport { ShareMapService } from '../shared/share-map.service';\r\n\r\n@Component({\r\n selector: 'igo-share-map-url',\r\n templateUrl: './share-map-url.component.html',\r\n styleUrls: ['./share-map-url.component.scss']\r\n})\r\nexport class ShareMapUrlComponent implements AfterViewInit, OnInit, OnDestroy {\r\n private mapState$$: Subscription;\r\n\r\n @Input() map: IgoMap;\r\n\r\n public url: string;\r\n public publicShareOption = {\r\n layerlistControls: { querystring: '' }\r\n };\r\n\r\n constructor(\r\n private messageService: MessageService,\r\n private shareMapService: ShareMapService,\r\n private cdRef: ChangeDetectorRef\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.resetUrl();\r\n this.mapState$$ = combineLatest([\r\n this.map.viewController.state$,\r\n this.map.status$\r\n ]).subscribe((c) => {\r\n this.resetUrl();\r\n this.cdRef.detectChanges();\r\n });\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.resetUrl();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.mapState$$.unsubscribe();\r\n }\r\n\r\n resetUrl(values: any = {}) {\r\n this.url = this.shareMapService.getUrlWithoutApi(\r\n this.map,\r\n this.publicShareOption\r\n );\r\n }\r\n\r\n copyTextToClipboard(textArea) {\r\n const successful = Clipboard.copy(textArea);\r\n if (successful) {\r\n this.messageService.success(\r\n 'igo.context.shareMap.dialog.copyMsg',\r\n 'igo.context.shareMap.dialog.copyTitle'\r\n );\r\n }\r\n }\r\n}\r\n","<div class=\"igo-input-container linkToShare\">\r\n <mat-form-field>\r\n <textarea\r\n #textArea\r\n matInput\r\n readonly\r\n rows=\"3\"\r\n [placeholder]=\"'igo.context.shareMap.placeholderLink' | translate\"\r\n [value]=\"url\"\r\n ></textarea>\r\n </mat-form-field>\r\n\r\n <div class=\"igo-form-button-group\">\r\n <button mat-raised-button (click)=\"copyTextToClipboard(textArea)\">\r\n <mat-icon svgIcon=\"content-copy\"></mat-icon>\r\n {{ 'igo.context.shareMap.copy' | translate }}\r\n </button>\r\n </div>\r\n <div>\r\n <br />\r\n <section class=\"mat-typography\">\r\n <div\r\n *ngIf=\"('igo.context.shareMap.htmlClarifications' | translate) === ''\"\r\n >\r\n <h4 *ngIf=\"('igo.context.shareMap.included' | translate) !== ''\">\r\n {{ 'igo.context.shareMap.included' | translate }}\r\n </h4>\r\n <ul>\r\n <li *ngIf=\"('igo.context.shareMap.context' | translate) !== ''\">\r\n {{ 'igo.context.shareMap.context' | translate }}\r\n </li>\r\n <li *ngIf=\"('igo.context.shareMap.center' | translate) !== ''\">\r\n {{ 'igo.context.shareMap.center' | translate }}\r\n </li>\r\n <li *ngIf=\"('igo.context.shareMap.zoom' | translate) !== ''\">\r\n {{ 'igo.context.shareMap.zoom' | translate }}\r\n </li>\r\n <li *ngIf=\"('igo.context.shareMap.addedLayers' | translate) !== ''\">\r\n {{ 'igo.context.shareMap.addedLayers' | translate }}\r\n </li>\r\n <li\r\n *ngIf=\"('igo.context.shareMap.visibleInvisible' | translate) !== ''\"\r\n >\r\n {{ 'igo.context.shareMap.visibleInvisible' | translate }}\r\n </li>\r\n </ul>\r\n\r\n <h4 *ngIf=\"('igo.context.shareMap.excluded' | translate) !== ''\">\r\n {{ 'igo.context.shareMap.excluded' | translate }}\r\n </h4>\r\n <ul>\r\n <li *ngIf=\"('igo.context.shareMap.order' | translate) !== ''\">\r\n {{ 'igo.context.shareMap.order' | translate }}\r\n </li>\r\n <li *ngIf=\"('igo.context.shareMap.opacity' | translate) !== ''\">\r\n {{ 'igo.context.shareMap.opacity' | translate }}\r\n </li>\r\n <li *ngIf=\"('igo.context.shareMap.filterOgc' | translate) !== ''\">\r\n {{ 'igo.context.shareMap.filterOgc' | translate }}\r\n </li>\r\n <li *ngIf=\"('igo.context.shareMap.filterTime' | translate) !== ''\">\r\n {{ 'igo.context.shareMap.filterTime' | translate }}\r\n </li>\r\n </ul>\r\n </div>\r\n <igo-custom-html\r\n class=\"shareCustomPadding\"\r\n *ngIf=\"('igo.context.shareMap.htmlClarifications' | translate) !== ''\"\r\n class=\"mat-typography\"\r\n [html]=\"'igo.context.shareMap.htmlClarifications' | translate\"\r\n >\r\n </igo-custom-html>\r\n </section>\r\n </div>\r\n</div>\r\n","import { Component, Input } from '@angular/core';\r\n\r\nimport { ConfigService } from '@igo2/core';\r\nimport type { IgoMap } from '@igo2/geo';\r\n\r\n@Component({\r\n selector: 'igo-share-map',\r\n templateUrl: './share-map.component.html',\r\n styleUrls: ['./share-map.component.scss']\r\n})\r\nexport class ShareMapComponent {\r\n @Input() map: IgoMap;\r\n\r\n public hasApi = false;\r\n\r\n constructor(private config: ConfigService) {\r\n this.hasApi = this.config.getConfig('context.url') ? true : false;\r\n }\r\n}\r\n","<mat-tab-group *ngIf=\"hasApi\">\r\n <mat-tab [label]=\"'igo.context.shareMap.shareWithApi' | translate\">\r\n <igo-share-map-api [map]=\"map\"></igo-share-map-api>\r\n </mat-tab>\r\n <mat-tab [label]=\"'igo.context.shareMap.shareWithUrl' | translate\">\r\n <igo-share-map-url [map]=\"map\"></igo-share-map-url>\r\n </mat-tab>\r\n</mat-tab-group>\r\n\r\n<igo-share-map-url *ngIf=\"!hasApi\" [map]=\"map\"></igo-share-map-url>\r\n","import { CommonModule } from '@angular/common';\r\nimport { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatTabsModule } from '@angular/material/tabs';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\n\r\nimport { IgoCustomHtmlModule } from '@igo2/common';\r\nimport { IgoLanguageModule } from '@igo2/core';\r\n\r\nimport { ShareMapApiComponent } from './share-map/share-map-api.component';\r\nimport { ShareMapUrlComponent } from './share-map/share-map-url.component';\r\nimport { ShareMapComponent } from './share-map/share-map.component';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n MatIconModule,\r\n MatTooltipModule,\r\n MatTabsModule,\r\n MatFormFieldModule,\r\n MatInputModule,\r\n MatButtonModule,\r\n IgoLanguageModule,\r\n IgoCustomHtmlModule\r\n ],\r\n exports: [ShareMapComponent, ShareMapUrlComponent, ShareMapApiComponent],\r\n declarations: [ShareMapComponent, ShareMapUrlComponent, ShareMapApiComponent]\r\n})\r\nexport class IgoShareMapModule {\r\n static forRoot(): ModuleWithProviders<IgoShareMapModule> {\r\n return {\r\n ngModule: IgoShareMapModule\r\n };\r\n }\r\n}\r\n","import { Component, Input } from '@angular/core';\r\nimport { Title } from '@angular/platform-browser';\r\n\r\nimport { FlexibleState, Tool, getEntityTitle } from '@igo2/common';\r\nimport type { Media } from '@igo2/core';\r\nimport { Feature, FeatureMotion, moveToOlFeatures } from '@igo2/geo';\r\nimport type { IgoMap } from '@igo2/geo';\r\n\r\nimport olFormatGeoJSON from 'ol/format/GeoJSON';\r\n\r\n@Component({\r\n selector: 'igo-sidenav',\r\n templateUrl: './sidenav.component.html',\r\n styleUrls: ['./sidenav.component.scss']\r\n})\r\nexport class SidenavComponent {\r\n private format = new olFormatGeoJSON();\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 @Input()\r\n get opened(): boolean {\r\n return this._opened;\r\n }\r\n set opened(value: boolean) {\r\n this._opened = value;\r\n }\r\n private _opened: boolean;\r\n\r\n @Input()\r\n get feature(): Feature {\r\n return this._feature;\r\n }\r\n set feature(value: Feature) {\r\n this._feature = value;\r\n }\r\n private _feature: Feature;\r\n\r\n @Input()\r\n get tool(): Tool {\r\n return this._tool;\r\n }\r\n set tool(value: Tool) {\r\n this._tool = value;\r\n }\r\n private _tool: Tool;\r\n\r\n @Input()\r\n get media(): Media {\r\n return this._media;\r\n }\r\n set media(value: Media) {\r\n this._media = value;\r\n }\r\n private _media: Media;\r\n\r\n @Input()\r\n get title(): string {\r\n return this._title;\r\n }\r\n set title(value: string) {\r\n if (value) {\r\n this._title = value;\r\n }\r\n }\r\n private _title: string;\r\n\r\n public topPanelState: FlexibleState = 'initial';\r\n\r\n get featureTitle(): string {\r\n return this.feature ? getEntityTitle(this.feature) : undefined;\r\n }\r\n\r\n constructor(public titleService: Title) {\r\n this._title = this.titleService.getTitle();\r\n }\r\n\r\n zoomToFeatureExtent() {\r\n if (this.feature.geometry) {\r\n const olFeature = this.format.readFeature(this.feature, {\r\n dataProjection: this.feature.projection,\r\n featureProjection: this.map.viewProjection\r\n });\r\n moveToOlFeatures(\r\n this.map.viewController,\r\n [olFeature],\r\n FeatureMotion.Zoom\r\n );\r\n }\r\n }\r\n\r\n toggleTopPanel() {\r\n if (this.topPanelState === 'initial') {\r\n this.topPanelState = 'expanded';\r\n } else {\r\n this.topPanelState = 'initial';\r\n }\r\n }\r\n}\r\n","<mat-sidenav #sidenav igoSidenavShim mode=\"side\" [opened]=\"opened\">\r\n <div class=\"igo-sidenav-content\">\r\n <igo-flexible\r\n #topPanel\r\n initial=\"50%\"\r\n initialMobile=\"100%\"\r\n expanded=\"calc(100% - 58px)\"\r\n [state]=\"topPanelState\"\r\n >\r\n <div class=\"igo-content\">\r\n <igo-panel [title]=\"tool ? (tool.title | translate) : title\">\r\n <button\r\n mat-icon-button\r\n panelLeftButton\r\n tooltip-position=\"below\"\r\n matTooltipShowDelay=\"500\"\r\n [matTooltip]=\"'igo.context.sidenav.goBack' | translate\"\r\n *ngIf=\"tool\"\r\n >\r\n <mat-icon svgIcon=\"arrow-back\"></mat-icon>\r\n </button>\r\n\r\n <button\r\n mat-icon-button\r\n panelRightButton\r\n tooltip-position=\"below\"\r\n matTooltipShowDelay=\"500\"\r\n [matTooltip]=\"'igo.context.sidenav.mainMenu' | translate\"\r\n *ngIf=\"tool\"\r\n >\r\n <mat-icon svgIcon=\"menu\"></mat-icon>\r\n </button>\r\n </igo-panel>\r\n </div>\r\n\r\n <div igoFlexibleFill class=\"igo-content\">\r\n <igo-panel [title]=\"featureTitle\" *ngIf=\"feature && media !== 'mobile'\">\r\n <button\r\n mat-icon-button\r\n panelLeftButton\r\n class=\"igo-icon-button\"\r\n (click)=\"toggleTopPanel()\"\r\n >\r\n <mat-icon\r\n [svgIcon]=\"\r\n ['collapsed', 'initial'].indexOf(topPanel.state) >= 0\r\n ? 'arrow_downward'\r\n : 'arrow_upward'\r\n \"\r\n ></mat-icon>\r\n </button>\r\n\r\n <button\r\n mat-icon-button\r\n panelRightButton\r\n class=\"igo-icon-button\"\r\n (click)=\"zoomToFeatureExtent()\"\r\n *ngIf=\"feature.geometry\"\r\n >\r\n <mat-icon svgIcon=\"zoom-in\"></mat-icon>\r\n </button>\r\n\r\n <igo-feature-details\r\n [feature]=\"feature\"\r\n *ngIf=\"['collapsed', 'initial'].indexOf(topPanel.state) >= 0\"\r\n >\r\n </igo-feature-details>\r\n </igo-panel>\r\n </div>\r\n </igo-flexible>\r\n </div>\r\n</mat-sidenav>\r\n","import { CommonModule } from '@angular/common';\r\nimport { ModuleWithProviders, 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 { IgoFlexibleModule, IgoPanelModule } from '@igo2/common';\r\nimport { IgoLanguageModule } from '@igo2/core';\r\nimport { IgoFeatureModule } from '@igo2/geo';\r\n\r\nimport { IgoContextManagerModule } from '../context-manager/context-manager.module';\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 IgoFeatureModule,\r\n IgoContextManagerModule\r\n ],\r\n exports: [SidenavComponent],\r\n declarations: [SidenavComponent]\r\n})\r\nexport class IgoSidenavModule {\r\n static forRoot(): ModuleWithProviders<IgoSidenavModule> {\r\n return {\r\n ngModule: IgoSidenavModule\r\n };\r\n }\r\n}\r\n","import { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\n\r\nimport { IgoContextImportExportModule } from './context-import-export/context-import-export.module';\r\nimport { IgoContextManagerModule } from './context-manager/context-manager.module';\r\nimport { IgoContextMapButtonModule } from './context-map-button/context-map-button.module';\r\nimport { IgoShareMapModule } from './share-map/share-map.module';\r\nimport { IgoSidenavModule } from './sidenav/sidenav.module';\r\n\r\n@NgModule({\r\n imports: [MatInputModule, MatFormFieldModule, MatMenuModule],\r\n declarations: [],\r\n exports: [\r\n IgoContextImportExportModule,\r\n IgoContextManagerModule,\r\n IgoContextMapButtonModule,\r\n IgoShareMapModule,\r\n IgoSidenavModule\r\n ]\r\n})\r\nexport class IgoContextModule {\r\n static forRoot(): ModuleWithProviders<IgoContextModule> {\r\n return {\r\n ngModule: IgoContextModule,\r\n providers: []\r\n };\r\n }\r\n}\r\n","/*\r\n * Public API Surface of context\r\n */\r\n\r\nexport * from './lib/context.module';\r\nexport * from './lib/context-import-export/context-import-export.module';\r\nexport * from './lib/context-manager/context-manager.module';\r\nexport * from './lib/context-map-button/context-map-button.module';\r\nexport * from './lib/share-map/share-map.module';\r\nexport * from './lib/sidenav/sidenav.module';\r\n\r\nexport * from './lib/context-import-export';\r\nexport * from './lib/context-manager';\r\nexport * from './lib/context-map-button';\r\nexport * from './lib/environment';\r\nexport * from './lib/share-map';\r\nexport * from './lib/sidenav';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i4","i1","i1.ContextImportService","i2.ContextExportService","i5.ContextService","i10","i13","i14","i15","i2","i3","i6","i2.ContextService","i5","i7","i3.PoiService","i8","i9","i12","i8.PoiButtonComponent","i2.ContextFormComponent","i1.ContextEditComponent","i11","i14.ContextItemComponent","i1.ContextListComponent","i16","i1.ContextPermissionsComponent","i1.ContextService","i3.ShareMapService","i2.ShareMapService","i4.ShareMapUrlComponent","i5.ShareMapApiComponent","olFormatGeoJSON"],"mappings":"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"}