@igo2/context 1.15.0 → 1.15.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (25) hide show
  1. package/esm2020/lib/context-import-export/index.mjs +1 -1
  2. package/esm2020/lib/context-import-export/shared/context-export.errors.mjs +1 -1
  3. package/esm2020/lib/context-import-export/shared/index.mjs +1 -1
  4. package/esm2020/lib/context-manager/context-edit/index.mjs +1 -1
  5. package/esm2020/lib/context-manager/context-form/index.mjs +1 -1
  6. package/esm2020/lib/context-manager/context-item/index.mjs +1 -1
  7. package/esm2020/lib/context-manager/context-list/context-list.enum.mjs +1 -1
  8. package/esm2020/lib/context-manager/context-list/index.mjs +1 -1
  9. package/esm2020/lib/context-manager/context-permissions/index.mjs +1 -1
  10. package/esm2020/lib/context-manager/index.mjs +1 -1
  11. package/esm2020/lib/context-manager/shared/context.enum.mjs +1 -1
  12. package/esm2020/lib/context-manager/shared/index.mjs +1 -1
  13. package/esm2020/lib/context-map-button/bookmark-button/index.mjs +1 -1
  14. package/esm2020/lib/context-map-button/index.mjs +1 -1
  15. package/esm2020/lib/context-map-button/poi-button/index.mjs +1 -1
  16. package/esm2020/lib/context-map-button/poi-button/shared/index.mjs +1 -1
  17. package/esm2020/lib/context-map-button/poi-button/shared/poi.interface.mjs +1 -1
  18. package/esm2020/lib/context-map-button/user-button/index.mjs +1 -1
  19. package/esm2020/lib/share-map/index.mjs +1 -1
  20. package/esm2020/lib/share-map/shared/index.mjs +1 -1
  21. package/esm2020/lib/sidenav/index.mjs +1 -1
  22. package/esm2020/public_api.mjs +1 -1
  23. package/fesm2015/igo2-context.mjs.map +1 -1
  24. package/fesm2020/igo2-context.mjs.map +1 -1
  25. package/package.json +6 -6
@@ -1 +1 @@
1
- {"version":3,"file":"igo2-context.mjs","sources":["../../../packages/context/src/lib/context-import-export/shared/context-export.errors.ts","../../../packages/context/src/lib/context-import-export/shared/context-export.utils.ts","../../../packages/context/src/lib/context-import-export/shared/context-import.utils.ts","../../../packages/context/src/lib/context-import-export/shared/context-import.errors.ts","../../../packages/context/src/lib/context-import-export/shared/context-import.service.ts","../../../packages/context/src/lib/context-import-export/shared/context-export.service.ts","../../../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/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-manager/shared/map-context.directive.ts","../../../packages/context/src/lib/context-manager/shared/layer-context.directive.ts","../../../packages/context/src/lib/context-manager/context-list/context-list.enum.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-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.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-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-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-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-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.animation.ts","../../../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-manager.module.ts","../../../packages/context/src/lib/share-map/shared/share-map.service.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-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.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 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 { MessageService } from '@igo2/core';\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\nexport function handleFileExportSuccess(\r\n messageService: MessageService\r\n ) {\r\n messageService.success('igo.context.contextImportExport.export.success.text', 'igo.context.contextImportExport.export.success.title');\r\n}\r\n\r\nexport function handleNothingToExportError(\r\n messageService: MessageService,\r\n ) {\r\n messageService.error('igo.context.contextImportExport.export.nothing.text', 'igo.context.contextImportExport.export.nothing.title');\r\n}\r\n","import type { default as OlGeometry } from 'ol/geom/Geometry';\r\n\r\nimport {\r\n FeatureDataSource,\r\n FeatureDataSourceOptions,\r\n IgoMap,\r\n VectorLayer,\r\n QueryableDataSourceOptions,\r\n StyleService,\r\n StyleListService,\r\n StyleByAttribute,\r\n ClusterParam,\r\n ClusterDataSourceOptions,\r\n ClusterDataSource,\r\n featureRandomStyle,\r\n featureRandomStyleFunction\r\n} from '@igo2/geo';\r\nimport { MessageService } from '@igo2/core';\r\nimport { DetailedContext } from '../../context-manager/shared/context.interface';\r\nimport { ContextService } from '../../context-manager/shared/context.service';\r\nimport OlFeature from 'ol/Feature';\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', undefined, {\r\n value: contextTitle\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](\r\n file,\r\n error,\r\n messageService,\r\n sizeMb\r\n );\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\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\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\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 olFeatures: OlFeature<OlGeometry>[],\r\n map: IgoMap,\r\n layerTitle: string\r\n): VectorLayer {\r\n const sourceOptions: FeatureDataSourceOptions & QueryableDataSourceOptions = {\r\n type: 'vector',\r\n queryable: true\r\n };\r\n const source = new FeatureDataSource(sourceOptions);\r\n source.ol.addFeatures(olFeatures);\r\n let randomStyle;\r\n let editable: boolean = false;\r\n if (\r\n olFeatures[0].getKeys().includes('_style') ||\r\n olFeatures[0].getKeys().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: layerTitle,\r\n isIgoInternalLayer: true,\r\n source,\r\n igoStyle: { editable },\r\n style: randomStyle\r\n });\r\n map.addLayer(layer);\r\n\r\n return layer;\r\n}\r\n\r\nexport function addImportedFeaturesStyledToMap(\r\n olFeatures: OlFeature<OlGeometry>[],\r\n map: IgoMap,\r\n layerTitle: string,\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 (\r\n styleListService.getStyleList(layerTitle.toString() + '.styleByAttribute')\r\n ) {\r\n const styleByAttribute: StyleByAttribute = styleListService.getStyleList(\r\n layerTitle.toString() + '.styleByAttribute'\r\n );\r\n\r\n style = (feature, resolution) => {\r\n return styleService.createStyleByAttribute(feature, styleByAttribute, resolution);\r\n };\r\n } else if (\r\n styleListService.getStyleList(layerTitle.toString() + '.clusterStyle')\r\n ) {\r\n const clusterParam: ClusterParam = styleListService.getStyleList(\r\n layerTitle.toString() + '.clusterParam'\r\n );\r\n distance = styleListService.getStyleList(\r\n layerTitle.toString() + '.distance'\r\n );\r\n\r\n style = (feature, resolution) => {\r\n const baseStyle = styleService.createStyle(\r\n styleListService.getStyleList(layerTitle.toString() + '.clusterStyle'), feature, resolution\r\n );\r\n return styleService.createClusterStyle(feature, resolution, clusterParam, baseStyle);\r\n };\r\n } else if (styleListService.getStyleList(layerTitle.toString() + '.style')) {\r\n style = (feature, resolution) => styleService.createStyle(\r\n styleListService.getStyleList(layerTitle.toString() + '.style'), feature, resolution\r\n );\r\n } else {\r\n style = (feature, resolution) => styleService.createStyle(\r\n styleListService.getStyleList('default.style'), feature, resolution\r\n );\r\n }\r\n let source;\r\n\r\n if (styleListService.getStyleList(layerTitle.toString() + '.clusterStyle')) {\r\n const sourceOptions: ClusterDataSourceOptions &\r\n QueryableDataSourceOptions = {\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 &\r\n QueryableDataSourceOptions = {\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: layerTitle,\r\n isIgoInternalLayer: true,\r\n source,\r\n style\r\n });\r\n map.addLayer(layer);\r\n\r\n return layer;\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 { Injectable } from '@angular/core';\r\nimport { Observable, Observer } from 'rxjs';\r\nimport { ConfigService } from '@igo2/core';\r\n\r\nimport {\r\n ImportInvalidFileError,\r\n ImportUnreadableFileError,\r\n ImportSizeError\r\n} from './context-import.errors';\r\nimport { getFileExtension } from './context-import.utils';\r\nimport { DetailedContext } from '../../context-manager/shared/context.interface';\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 { Injectable } from '@angular/core';\r\n\r\nimport { downloadContent } from '@igo2/utils';\r\n\r\nimport { DetailedContext } from '../../context-manager/shared/context.interface';\r\nimport { ExportNothingToExportError } from './context-export.errors';\r\nimport { Observer, Observable } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ContextExportService {\r\n\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(contextJSON, 'text/json;charset=utf-8', `${res.uri}.json`);\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","export enum TypePermission {\n null,\n read,\n write\n}\n\nexport enum Scope {\n public,\n protected,\n private\n}\n","import { Injectable, Optional } from '@angular/core';\r\nimport { HttpClient, HttpErrorResponse } from '@angular/common/http';\r\n\r\nimport { BehaviorSubject, Observable, of, Subject } from 'rxjs';\r\nimport {\r\n map,\r\n tap,\r\n catchError,\r\n debounceTime,\r\n mergeMap,\r\n first,\r\n skip\r\n} from 'rxjs/operators';\r\n\r\nimport olPoint from 'ol/geom/Point';\r\nimport GeoJSON from 'ol/format/GeoJSON';\r\nimport Cluster from 'ol/source/Cluster';\r\nimport olVectorSource from 'ol/source/Vector';\r\n\r\nimport { Tool } from '@igo2/common';\r\nimport { uuid, ObjectUtils } from '@igo2/utils';\r\nimport {\r\n ConfigService,\r\n RouteService,\r\n Message,\r\n MessageService,\r\n LanguageService,\r\n StorageService\r\n} from '@igo2/core';\r\n\r\nimport { AuthService } from '@igo2/auth';\r\nimport type { IgoMap, Layer, LayerOptions } from '@igo2/geo';\r\nimport { ExportService } from '@igo2/geo';\r\n\r\nimport { TypePermission } from './context.enum';\r\nimport {\r\n ContextsList,\r\n ContextServiceOptions,\r\n Context,\r\n DetailedContext,\r\n ContextMapView,\r\n ContextPermission,\r\n ContextProfils\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 this.storageService.get('favorite.context.uri') as string || this._defaultContextUri || this.options.defaultContextUri;\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\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 = {\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$.getValue().filter(lay => !lay.id.includes('WfsWorkspaceTableDest')).sort((a, b) => a.zIndex - b.zIndex);\r\n }\r\n\r\n let i = 0;\r\n for (const l of layers) {\r\n const layer: any = l;\r\n const opts = {\r\n id: layer.options.id ? String(layer.options.id) : undefined,\r\n layerOptions: {\r\n title: layer.options.title,\r\n zIndex: ++i,\r\n visible: layer.visible,\r\n security: layer.security\r\n } as 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 { id: String(tool.id), global: tool.global };\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 ): 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 = {\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 }\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(\r\n (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 layerStyle = layerFound[`style`];\r\n if (layerFound[`igoStyle`][`styleByAttribute`]) {\r\n layerStyle = undefined;\r\n } else if (layerFound[`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: layerFound[`igoStyle`][`styleByAttribute`],\r\n clusterBaseStyle: layerFound[`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 delete catalogLayer.source;\r\n context.layers.push(catalogLayer);\r\n } else {\r\n let features;\r\n const writer = new GeoJSON();\r\n if (layer.ol.getSource() instanceof Cluster) {\r\n const clusterSource = layer.ol.getSource() as Cluster;\r\n let olFeatures = clusterSource.getFeatures();\r\n olFeatures = (olFeatures as any).flatMap((cluster: any) => cluster.get('features'));\r\n const cleanedOlFeatures = this.exportService.generateFeature(olFeatures, 'GeoJSON', '_featureStore');\r\n features = writer.writeFeatures(\r\n cleanedOlFeatures,\r\n {\r\n dataProjection: 'EPSG:4326',\r\n featureProjection: 'EPSG:3857'\r\n }\r\n );\r\n } else {\r\n const source = layer.ol.getSource() as olVectorSource;\r\n const olFeatures = source.getFeatures();\r\n const cleanedOlFeatures = this.exportService.generateFeature(olFeatures, 'GeoJSON', '_featureStore');\r\n features = writer.writeFeatures(\r\n cleanedOlFeatures,\r\n {\r\n dataProjection: 'EPSG:4326',\r\n featureProjection: 'EPSG:3857'\r\n }\r\n );\r\n }\r\n features = JSON.parse(features);\r\n features.name = layer.options.title;\r\n context.extraFeatures.push(features);\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 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 (this.context$.value && context.uri && this.context$.value.uri !== context.uri) {\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 private handleContextsChange(\r\n keepCurrentContext = true\r\n ) {\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(\r\n (newContext: DetailedContext) => {\r\n this.toolsChanged$.next(newContext);\r\n }\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","<div class=\"import-export-toggle mat-typography\">\r\n <mat-button-toggle-group\r\n [value]=\"activeImportExport\"\r\n (change)=\"onImportExportChange($event)\">\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 mat-raised-button type=\"button\" (click)=\"fileInput.click()\" [disabled]=\"loading$ | async\">\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 </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>{{'igo.geo.importExportForm.importSizeMax' | translate: {size: fileSizeMb} }}</li>\r\n </ul>\r\n </section>\r\n</div>\r\n\r\n\r\n<form class=\"igo-form\" *ngIf=\"activeImportExport === 'export'\" [formGroup]=\"form\">\r\n <div class=\"igo-input-container\">\r\n <mat-form-field class=\"example-full-width\">\r\n <mat-label>{{'igo.context.contextImportExport.export.exportContextName' | translate}}</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>{{'igo.context.contextImportExport.export.exportPlaceHolder' | translate}}</mat-label>\r\n <mat-select formControlName=\"layers\" multiple>\r\n <mat-option [value]=\"1\" (click)=\"selectAll(e)\" #e>\r\n {{'igo.context.contextImportExport.export.exportSelectAll' | translate}}\r\n </mat-option>\r\n <mat-divider></mat-divider>\r\n <mat-option *ngFor=\"let layer of userControlledLayerList\" [value]=\"layer\">{{layer.title}}</mat-option>\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 {{'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, OnInit } from '@angular/core';\r\nimport { UntypedFormGroup, UntypedFormBuilder, Validators } from '@angular/forms';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { take } from 'rxjs/operators';\r\n\r\nimport { MessageService, ConfigService } from '@igo2/core';\r\nimport { Layer, VectorLayer } from '@igo2/geo';\r\nimport type { IgoMap } from '@igo2/geo';\r\n\r\nimport { handleFileExportError } from '../shared/context-export.utils';\r\nimport {\r\n handleFileImportSuccess,\r\n handleFileImportError\r\n} from '../shared/context-import.utils';\r\nimport { handleFileExportSuccess } from '../shared/context-export.utils';\r\nimport { ContextService } from '../../context-manager/shared/context.service';\r\nimport { ContextImportService } from '../shared/context-import.service';\r\nimport { ContextExportService } from '../shared/context-export.service';\r\nimport { DetailedContext } from '../../context-manager/shared/context.interface';\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 {\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 @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.layerList = this.contextService.getContextLayers(this.map);\r\n this.userControlledLayerList = this.layerList.filter(layer => layer.showInLayerList);\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.import(file).pipe(take(1)).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 );\r\n this.res.imported = true;\r\n this.contextExportService.export(this.res).pipe(take(1)).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(\r\n file,\r\n error,\r\n this.messageService,\r\n this.fileSizeMb\r\n );\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","import { NgModule, ModuleWithProviders } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\r\nimport { MatOptionModule } from '@angular/material/core';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatDividerModule } from '@angular/material/divider';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatTabsModule } from '@angular/material/tabs';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\n\r\nimport { IgoLanguageModule } from '@igo2/core';\r\nimport { ContextImportExportComponent } from './context-import-export/context-import-export.component';\r\nimport { IgoSpinnerModule } from '@igo2/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\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: [\r\n ContextImportExportComponent\r\n ],\r\n declarations: [\r\n ContextImportExportComponent\r\n ]\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 { Directive, OnInit, OnDestroy } from '@angular/core';\r\n\r\nimport { Subscription } from 'rxjs';\r\nimport { filter } from 'rxjs/operators';\r\n\r\nimport { MapViewOptions, MapBrowserComponent, MapControlsOptions, MapScaleLineOptions } from '@igo2/geo';\r\nimport type { IgoMap } from '@igo2/geo';\r\n\r\nimport { ContextService } from './context.service';\r\nimport { DetailedContext, ContextMapView } from './context.interface';\r\nimport { MediaService } from '@igo2/core';\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 (!this.component.view || viewContext.keepCurrentView !== true || context.map.view.projection !== this.map.projection) {\r\n this.component.view = viewContext as MapViewOptions;\r\n }\r\n if (this.component.map.geolocationController) {\r\n this.component.map.geolocationController.updateGeolocationOptions(viewContext);\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 = 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 { Directive, OnInit, OnDestroy, Optional, Input } from '@angular/core';\r\n\r\nimport { Subscription, merge } from 'rxjs';\r\nimport { buffer, debounceTime, filter } from 'rxjs/operators';\r\n\r\nimport { RouteService, ConfigService } from '@igo2/core';\r\nimport {\r\n MapBrowserComponent,\r\n Layer,\r\n LayerService,\r\n LayerOptions,\r\n StyleListService,\r\n StyleService\r\n} from '@igo2/geo';\r\nimport type { IgoMap } from '@igo2/geo';\r\n\r\nimport { ContextService } from './context.service';\r\nimport { DetailedContext } from './context.interface';\r\nimport {\r\n addImportedFeaturesToMap,\r\n addImportedFeaturesStyledToMap\r\n} from '../../context-import-export/shared/context-import.utils';\r\nimport GeoJSON from 'ol/format/GeoJSON';\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 const queryParams$$ = this.route.queryParams.subscribe((params) => {\r\n if (Object.keys(params).length > 0) {\r\n this.queryParams = params;\r\n queryParams$$.unsubscribe();\r\n }\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 format = new GeoJSON();\r\n const title = featureCollection.name;\r\n featureCollection = JSON.stringify(featureCollection);\r\n featureCollection = format.readFeatures(featureCollection, {\r\n dataProjection: 'EPSG:4326',\r\n featureProjection: 'EPSG:3857'\r\n });\r\n const importExportOptions = this.configService.getConfig('importExport');\r\n const importWithStyle =importExportOptions?.importWithStyle || this.configService.getConfig('importWithStyle');\r\n if (this.configService.getConfig('importWithStyle')) {\r\n console.warn(`\r\n The location of this config importWithStyle is deprecated.\r\n Please move this property within importExport configuration.\r\n Ex: importWithStyle: true/false must be transfered to importExport: { importWithStyle: true/false }\r\n Refer to environnement.ts OR config/config.json\r\n This legacy conversion will be deleted in 2024.\r\n `);\r\n }\r\n if (!importWithStyle) {\r\n addImportedFeaturesToMap(featureCollection, this.map, title);\r\n } else {\r\n addImportedFeaturesStyledToMap(\r\n featureCollection,\r\n this.map,\r\n title,\r\n this.styleListService,\r\n this.styleService\r\n );\r\n }\r\n });\r\n }\r\n });\r\n\r\n this.layerService.createAsyncIdbLayers(context.uri).pipe(debounceTime(500))\r\n .subscribe((layers: Layer[]) => this.handleAddLayers(layers));\r\n\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 (visiblelayers.indexOf(currentLayerid) > -1 || visiblelayers.indexOf(currentLayerid.toString()) > -1) {\r\n visible = true;\r\n }\r\n if (invisiblelayers.indexOf(currentLayerid) > -1 || invisiblelayers.indexOf(currentLayerid.toString()) > -1) {\r\n visible = false;\r\n }\r\n }\r\n\r\n return visible;\r\n }\r\n}\r\n","export enum ContextListControlsEnum {\n always = 'always',\n never = 'never',\n default = 'default'\n}\n","import { Component } from '@angular/core';\r\nimport { MatDialogRef } from '@angular/material/dialog';\r\n\r\n@Component({\r\n selector: 'igo-bookmark-dialog',\r\n templateUrl: './bookmark-dialog.component.html'\r\n})\r\nexport class BookmarkDialogComponent {\r\n public title: string;\r\n\r\n constructor(public dialogRef: MatDialogRef<BookmarkDialogComponent>) {}\r\n}\r\n","<h1 mat-dialog-title class=\"mat-typography\">{{ 'igo.context.bookmarkButton.dialog.title' | translate }}</h1>\r\n<div mat-dialog-content class=\"mat-typography\">\r\n <mat-form-field>\r\n <input matInput required autocomplete=\"off\"\r\n maxlength=\"128\"\r\n [placeholder]=\"'igo.context.bookmarkButton.dialog.placeholder' | translate\"\r\n [(ngModel)]=\"title\">\r\n </mat-form-field>\r\n</div>\r\n<div mat-dialog-actions>\r\n <button mat-button color=\"primary\"\r\n [disabled]=\"!title\"\r\n (click)=\"dialogRef.close(title)\">\r\n {{'igo.common.confirmDialog.confirmBtn' | translate}}\r\n </button>\r\n <button mat-button\r\n (click)=\"dialogRef.close(false)\">\r\n {{'igo.common.confirmDialog.cancelBtn' | translate}}\r\n </button>\r\n</div>\r\n","<mat-list-item\r\n class=\"mat-list-item\"\r\n [ngClass]=\"{'mat-list-item-light': hidden}\">\r\n <button mat-list-avatar\r\n *ngIf=\"auth.authenticated\"\r\n mat-icon-button\r\n igoStopPropagation\r\n [matTooltip]=\"auth.authenticated ? ('igo.context.contextManager.favorite' | translate) : ''\"\r\n matTooltipShowDelay=\"500\"\r\n [color]=\"default ? 'primary' : 'default'\"\r\n (click)=\"favoriteClick(context)\">\r\n <mat-icon *ngIf=\"!context.iconImage\" svgIcon=\"{{context.icon ? context.icon : context.scope === 'public' ? 'earth' : 'star'}}\"></mat-icon>\r\n <img *ngIf=\"context.iconImage\" [src]=\"context.iconImage\">\r\n </button>\r\n <button mat-list-avatar\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 <mat-icon svgIcon=\"star\"></mat-icon>\r\n </button>\r\n <h4 matLine>{{context.title}}</h4>\r\n\r\n <div *ngIf=\"auth.authenticated\"\r\n igoStopPropagation\r\n class=\"igo-actions-container\">\r\n\r\n <button *ngIf=\"collapsed && selected && (context.permission === typePermission[typePermission.write] || context.imported)\"\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 <mat-icon svgIcon=\"content-save\"></mat-icon>\r\n </button>\r\n\r\n <div #actions class=\"igo-actions-expand-container\">\r\n\r\n <button *ngIf=\"canShare && !context.imported\"\r\n mat-icon-button\r\n [matTooltip]=\"'igo.context.contextManager.managePermissions' | translate\"\r\n matTooltipShowDelay=\"500\"\r\n [color]=\"color\"\r\n (click)=\"managePermissions.emit(context)\">\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 *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 <mat-icon svgIcon=\"content-copy\"></mat-icon>\r\n </button>\r\n\r\n <button *ngIf=\"context.permission === typePermission[typePermission.write] && !context.imported\"\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 <mat-icon svgIcon=\"pencil\"></mat-icon>\r\n </button>\r\n\r\n <button *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 <mat-icon svgIcon=\"eye\"></mat-icon>\r\n </button>\r\n\r\n <button *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 <mat-icon svgIcon=\"eye-off\"></mat-icon>\r\n </button>\r\n\r\n <button *ngIf=\"context.permission === typePermission[typePermission.write] || context.imported\"\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 <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 <mat-icon svgIcon=\"dots-horizontal\"></mat-icon>\r\n </button>\r\n\r\n </div>\r\n\r\n</mat-list-item>\r\n","import {\r\n Component,\r\n Input,\r\n Output,\r\n EventEmitter,\r\n ChangeDetectionStrategy\r\n} from '@angular/core';\r\n\r\nimport { StorageService } from '@igo2/core';\r\nimport { AuthService } from '@igo2/auth';\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","<igo-list [navigation]=\"true\">\r\n <mat-form-field *ngIf=\"showFilter()\" [ngClass]=\"auth.authenticated && configService.getConfig('context') ? 'context-filter-min-width' : 'context-filter-max-width'\">\r\n <input\r\n matInput\r\n type=\"text\"\r\n [placeholder]=\"'igo.context.contextManager.filterPlaceHolder' | translate\"\r\n [(ngModel)]=\"term\">\r\n <button\r\n mat-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 <mat-icon svgIcon=\"close\"></mat-icon>\r\n </button>\r\n </mat-form-field>\r\n\r\n <button\r\n *ngIf=\"!sortedAlpha\"\r\n class=\"sort-alpha\"\r\n mat-icon-button\r\n [matTooltip]=\"'igo.context.contextManager.sortAlphabetically' | translate\"\r\n matTooltipShowDelay=\"500\"\r\n (click)=\"toggleSort(true)\">\r\n <mat-icon color=\"primary\" svgIcon=\"sort-alphabetical-variant\"></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 <mat-icon color=\"warn\" svgIcon=\"sort-variant-remove\"></mat-icon>\r\n </button>\r\n\r\n <igo-actionbar *ngIf=\"auth.authenticated && configService.getConfig('context')\"\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 </igo-actionbar>\r\n\r\n <button *ngIf=\"auth.authenticated && configService.getConfig('context')\"\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 <mat-icon color=\"primary\" svgIcon=\"filter-menu\"></mat-icon>\r\n </button>\r\n\r\n <mat-menu #accountMenu=\"matMenu\">\r\n <ng-container *ngFor=\"let user of users\">\r\n <span class=\"profilsMenu\">\r\n <mat-checkbox\r\n class=\"mat-menu-item\"\r\n [checked]=\"getPermission(user).checked\"\r\n [indeterminate]=\"getPermission(user).indeterminate\"\r\n (click)=\"$event.stopPropagation()\"\r\n (change)=\"userSelection(user)\">\r\n </mat-checkbox>\r\n <button *ngIf=\"user.childs\"\r\n [matMenuTriggerFor]=\"subAccountMenu\"\r\n mat-menu-item>\r\n {{user.title}}\r\n </button>\r\n <button\r\n mat-menu-item\r\n *ngIf=\"!user.childs\">\r\n {{user.title}}\r\n </button>\r\n </span>\r\n\r\n <mat-menu #subAccountMenu=\"matMenu\">\r\n <mat-checkbox *ngFor=\"let child of user.childs\"\r\n class=\"mat-menu-item\"\r\n [checked]=\"getPermission(child).checked\"\r\n (click)=\"$event.stopPropagation()\"\r\n (change)=\"userSelection(child, user)\">\r\n {{child.title}}\r\n </mat-checkbox>\r\n </mat-menu>\r\n </ng-container>\r\n\r\n <span class=\"profilsMenu\">\r\n <mat-checkbox\r\n class=\"mat-menu-item\"\r\n [checked]=\"showHidden\"\r\n (click)=\"$event.stopPropagation()\"\r\n (change)=\"showHiddenContexts.emit()\">\r\n </mat-checkbox>\r\n <button mat-menu-item>\r\n {{ 'igo.context.contextManager.showHidden' | translate }}\r\n </button>\r\n </span>\r\n </mat-menu>\r\n\r\n <ng-template ngFor let-groupContexts [ngForOf]=\"contexts$ | async | keyvalue\">\r\n\r\n <igo-collapsible *ngIf=\"groupContexts.value.length && auth.authenticated\" [title]=\"titleMapping[groupContexts.key] | translate\"\r\n [collapsed]=\"collapsed[titleMapping[groupContexts.key]]\" (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]=\"context.id && this.defaultContextId && this.defaultContextId === context.id\"\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 </igo-context-item>\r\n </ng-template>\r\n\r\n </igo-collapsible>\r\n\r\n <ng-template *ngIf=\"groupContexts.value.length && !auth.authenticated\" ngFor let-context [ngForOf]=\"groupContexts.value\">\r\n <igo-context-item\r\n igoListItem\r\n color=\"accent\"\r\n [showFavorite]=\"configService.getConfig('favoriteContext4NonAuthenticated')\"\r\n [selected]=\"selectedContext && selectedContext.uri === context.uri\"\r\n [context]=\"context\"\r\n [default]=\"configService.getConfig('context') ? defaultContextId === context.id : defaultContextId === context.uri\"\r\n (favorite)=\"favorite.emit(context)\"\r\n (select)=\"select.emit(context)\"\r\n (unselect)=\"unselect.emit(context)\">\r\n </igo-context-item>\r\n </ng-template>\r\n\r\n </ng-template>\r\n</igo-list>\r\n","import {\r\n Component,\r\n Input,\r\n Output,\r\n EventEmitter,\r\n ChangeDetectorRef,\r\n OnInit,\r\n ChangeDetectionStrategy,\r\n OnDestroy\r\n} from '@angular/core';\r\n\r\nimport { AuthService } from '@igo2/auth';\r\nimport { ConfigService, LanguageService, StorageService } from '@igo2/core';\r\nimport type { IgoMap } from '@igo2/geo';\r\n\r\nimport {\r\n DetailedContext,\r\n ContextsList,\r\n ContextUserPermission,\r\n ContextProfils\r\n} from '../shared/context.interface';\r\nimport { ContextListControlsEnum } from './context-list.enum';\r\nimport {\r\n Subscription,\r\n BehaviorSubject,\r\n ReplaySubject,\r\n EMPTY,\r\n timer\r\n} from 'rxjs';\r\nimport { take } from 'rxjs/operators';\r\n\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { BookmarkDialogComponent } from '../../context-map-button/bookmark-button/bookmark-dialog.component';\r\nimport { debounce } from 'rxjs/operators';\r\nimport { ActionStore, ActionbarMode } from '@igo2/common';\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 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.cdRef.detectChanges();\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.configService.getConfig('context') ? this._defaultContextId :\r\n this.storageService.get('favorite.context.uri') as string || 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 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\r\n ngOnInit() {\r\n this.change$$ = this.change$\r\n .pipe(\r\n debounce(() => {\r\n return this.contexts.ours.length === 0 &&\r\n this.contexts.public?.length === 0 &&\r\n this.contexts.shared?.length === 0 ? EMPTY : timer(50);\r\n })\r\n )\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) {\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 userSelection(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 Directive,\r\n Self,\r\n OnInit,\r\n OnDestroy,\r\n HostListener,\r\n ChangeDetectorRef\r\n} from '@angular/core';\r\nimport { Subscription } from 'rxjs';\r\nimport { debounceTime } from 'rxjs/operators';\r\n\r\nimport { MessageService, LanguageService, StorageService } from '@igo2/core';\r\nimport { AuthService } from '@igo2/auth';\r\nimport { ConfirmDialogService } from '@igo2/common';\r\nimport { MapService } from '@igo2/geo';\r\n\r\nimport {\r\n Context,\r\n DetailedContext,\r\n ContextsList,\r\n ContextUserPermission\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 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 @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 @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 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('favorite.context.uri') 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","<form class=\"igo-form\" [formGroup]=\"form\"\r\n (ngSubmit)=\"handleFormSubmit(form.value)\">\r\n\r\n <mat-form-field class=\"full-width\">\r\n <input matInput required\r\n maxlength=\"128\"\r\n [placeholder]=\"'igo.context.contextManager.form.title' | translate\"\r\n formControlName=\"title\">\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 matInput\r\n maxlength=\"64\"\r\n floatLabel = \"always\"\r\n [placeholder]=\"'igo.context.contextManager.form.uri' | translate\"\r\n formControlName=\"uri\">\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 <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 {{ 'igo.context.contextManager.form.edit' | translate }}\r\n </button>\r\n </div>\r\n\r\n</form>\r\n","import { Component, Input, Output, EventEmitter, OnInit } from '@angular/core';\r\nimport { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms';\r\n\r\nimport { ObjectUtils, Clipboard } from '@igo2/utils';\r\nimport { MessageService } from '@igo2/core';\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('igo.context.contextManager.dialog.copyMsg', 'igo.context.contextManager.dialog.copyTitle');\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 *ngIf=\"context\"\r\n [btnSubmitText]=\"'igo.context.contextManager.save' | translate\"\r\n [context]=\"context\"\r\n (submitForm)=\"submitForm.emit($event)\">\r\n</igo-context-form>\r\n","import { Component, Input, Output, EventEmitter, ChangeDetectorRef } 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 Output,\r\n EventEmitter,\r\n Directive,\r\n Self,\r\n OnInit,\r\n OnDestroy,\r\n HostListener\r\n} from '@angular/core';\r\nimport { Subscription } from 'rxjs';\r\n\r\nimport { MessageService } from '@igo2/core';\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 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","<div *ngIf=\"context\">\r\n\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 [(ngModel)]=\"context.scope\"\r\n (change)=\"scopeChanged.emit(context)\">\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 *ngIf=\"context.scope !== 'private' && canWrite\" [formGroup]=\"form\"\r\n (ngSubmit)=\"handleFormSubmit(form.value)\">\r\n\r\n <mat-form-field class=\"full-width\">\r\n <input matInput required\r\n [placeholder]=\"'igo.context.permission.user' | translate\"\r\n [formControl]=\"formControl\"\r\n [matAutocomplete]=\"auto\">\r\n <mat-autocomplete #auto=\"matAutocomplete\" (optionSelected)=\"onProfilSelected($event.option.value)\"\r\n [displayWith]=\"displayFn\">\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\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\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\">\r\n {{ 'igo.context.permission.addBtn' | translate }}\r\n </button>\r\n </div>\r\n\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 mat-list-avatar svgIcon=\"account-outline\"></mat-icon>\r\n <h4 mat-line>{{permission.profilTitle}} <small class=\"mat-typography\">{{permission.profil}}</small></h4>\r\n\r\n <div igoStopPropagation\r\n class=\"igo-actions-container\">\r\n\r\n <button *ngIf=\"canWrite || permission.profil === authService.decodeToken().user.sourceId\"\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 <mat-icon svgIcon=\"delete\"></mat-icon>\r\n </button>\r\n </div>\r\n\r\n </mat-list-item>\r\n </ng-template>\r\n </igo-collapsible>\r\n </ng-template>\r\n </igo-list>\r\n\r\n</div>\r\n","import { Component, Input, Output, EventEmitter, OnInit, ChangeDetectorRef } from '@angular/core';\r\nimport { UntypedFormBuilder, UntypedFormGroup, UntypedFormControl } from '@angular/forms';\r\n\r\nimport {\r\n Context,\r\n ContextPermission,\r\n ContextPermissionsList,\r\n ContextProfils\r\n} from '../shared/context.interface';\r\nimport { TypePermission } from '../shared/context.enum';\r\n\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Subscription } from 'rxjs';\r\n\r\nimport { AuthService } from '@igo2/auth';\r\nimport { ConfigService } from '@igo2/core';\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> = new EventEmitter();\r\n @Output() scopeChanged: EventEmitter<Context> = new EventEmitter();\r\n\r\n constructor(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 ngOnInit(): void {\r\n this.buildForm();\r\n\r\n this.baseUrlProfils = this.config.getConfig('context.url') + '/profils-users?';\r\n\r\n this.formValueChanges$$ = this.formControl.valueChanges.subscribe((value) => {\r\n if (value.length) {\r\n this.http.get(this.baseUrlProfils + 'q=' + value).subscribe(profils => {\r\n this.profils = profils as ContextProfils[];\r\n });\r\n this.profils.filter((profil) => {\r\n const filterNormalized = value.toLowerCase().normalize('NFD').replace(/[\\u0300-\\u036f]/g, '');\r\n const profilTitleNormalized = profil.title.toLowerCase().normalize('NFD').replace(/[\\u0300-\\u036f]/g, '');\r\n const profilNameNormalized = profil.name.toLowerCase().normalize('NFD').replace(/[\\u0300-\\u036f]/g, '');\r\n const profilNormalized = 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 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 Directive,\r\n Self,\r\n OnInit,\r\n OnDestroy,\r\n HostListener,\r\n ChangeDetectorRef\r\n} from '@angular/core';\r\nimport { Subscription } from 'rxjs';\r\n\r\nimport { MessageService, LanguageService } from '@igo2/core';\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\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 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 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 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 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 { Component, Input } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { take } from 'rxjs/operators';\r\n\r\nimport { MessageService } from '@igo2/core';\r\nimport type { IgoMap } from '@igo2/geo';\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 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 <mat-icon svgIcon=\"star\"></mat-icon>\r\n </button>\r\n</div>\r\n","import { Component } from '@angular/core';\r\nimport { MatDialogRef } from '@angular/material/dialog';\r\n\r\n@Component({\r\n selector: 'igo-poi-dialog',\r\n templateUrl: './poi-dialog.component.html'\r\n})\r\nexport class PoiDialogComponent {\r\n public title: string;\r\n\r\n constructor(public dialogRef: MatDialogRef<PoiDialogComponent>) {}\r\n}\r\n","<h1 mat-dialog-title class=\"mat-typography\">{{ 'igo.context.poiButton.dialog.title' | translate }}</h1>\r\n<div mat-dialog-content>\r\n <mat-form-field>\r\n <input matInput required autocomplete=\"off\"\r\n [placeholder]=\"'igo.context.poiButton.dialog.placeholder' | translate\"\r\n [(ngModel)]=\"title\">\r\n </mat-form-field>\r\n</div>\r\n<div mat-dialog-actions>\r\n <button mat-button color=\"primary\"\r\n [disabled]=\"!title\"\r\n (click)=\"dialogRef.close(title)\">\r\n {{'igo.common.confirmDialog.confirmBtn' | translate}}\r\n </button>\r\n <button mat-button\r\n (click)=\"dialogRef.close(false)\">\r\n {{'igo.common.confirmDialog.cancelBtn' | translate}}\r\n </button>\r\n</div>\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable, EMPTY } from 'rxjs';\r\n\r\nimport { ConfigService } from '@igo2/core';\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(private http: HttpClient, private config: ConfigService) {\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 [placeholder]=\"'igo.context.poiButton.placeholder' | translate\"\r\n floatPlaceholder=\"never\">\r\n\r\n <mat-option (click)=\"createPoi()\">\r\n <div class=\"titlePoi\">{{ 'igo.context.poiButton.create' | translate }}</div>\r\n <button igoStopPropagation class=\"addPoi buttonPoi\"\r\n mat-icon-button\r\n color=\"primary\"\r\n (click)=\"createPoi()\">\r\n <mat-icon svgIcon=\"plus-circle\"></mat-icon>\r\n </button>\r\n </mat-option>\r\n <mat-option *ngFor=\"let poi of pois\" [value]=\"poi.id\" (click)=\"zoomOnPoi(poi.id)\">\r\n <div class=\"titlePoi\">{{ poi.title }}</div>\r\n <button igoStopPropagation class=\"deletePoi buttonPoi\"\r\n mat-icon-button\r\n color=\"warn\"\r\n (click)=\"deletePoi(poi)\">\r\n <mat-icon svgIcon=\"delete\"></mat-icon>\r\n </button>\r\n </mat-option>\r\n</mat-select>\r\n","import { Component, Input, OnInit, OnDestroy } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { Subscription } from 'rxjs';\r\nimport { take } from 'rxjs/operators';\r\n\r\nimport * as olproj from 'ol/proj';\r\nimport * as oleasing from 'ol/easing';\r\nimport olPoint from 'ol/geom/Point';\r\n\r\nimport { MessageService, LanguageService } from '@igo2/core';\r\nimport { ConfirmDialogService } from '@igo2/common';\r\nimport { AuthService } from '@igo2/auth';\r\nimport type { IgoMap } from '@igo2/geo';\r\n\r\nimport { PoiService } from './shared/poi.service';\r\nimport { Poi } from './shared/poi.interface';\r\nimport { PoiDialogComponent } from './poi-dialog.component';\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(this.languageService.translate.instant('igo.context.poiButton.dialog.confirmDelete'))\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 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.get().pipe(take(1)).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 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 { Component } from '@angular/core';\r\nimport { MatDialogRef } from '@angular/material/dialog';\r\n\r\nimport { StorageService } from '@igo2/core';\r\nimport { AuthService } from '@igo2/auth';\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\">{{'igo.context.userButton.infoTitle' | translate}}</h1>\r\n<div mat-dialog-content class=\"mat-typography\">\r\n <p>{{'igo.context.userButton.dialog.user' | translate}}: {{user.sourceId}}</p>\r\n <p>{{'igo.context.userButton.dialog.email' | translate}}: {{user.email}}</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\"\r\n (click)=\"dialogRef.close(false)\">\r\n OK\r\n </button>\r\n</div>\r\n","import {\r\n trigger,\r\n state,\r\n style,\r\n transition,\r\n animate,\r\n AnimationTriggerMetadata\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","<div *ngIf=\"visible\" class=\"igo-user-button-container\">\r\n <div class=\"igo-user-button-more-container\" [@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 <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 <mat-icon svgIcon=\"power\"></mat-icon>\r\n </button>\r\n\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 <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 { ConfigService } from '@igo2/core';\r\nimport { AuthService } from '@igo2/auth';\r\nimport type { IgoMap } from '@igo2/geo';\r\n\r\nimport { UserDialogComponent } from './user-dialog.component';\r\nimport { userButtonSlideInOut } from './user-button.animation';\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 { NgModule, ModuleWithProviders } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\nimport { MatButtonModule } from '@angular/material/button';\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 { MatSelectModule } from '@angular/material/select';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\n\r\nimport { IgoLanguageModule } from '@igo2/core';\r\nimport { IgoConfirmDialogModule, IgoStopPropagationModule } from '@igo2/common';\r\nimport { IgoAuthModule } from '@igo2/auth';\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 { UserDialogComponent } from './user-button/user-dialog.component';\r\nimport { UserButtonComponent } from './user-button/user-button.component';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n IgoLanguageModule,\r\n IgoConfirmDialogModule,\r\n IgoStopPropagationModule,\r\n IgoAuthModule,\r\n FormsModule,\r\n MatIconModule,\r\n MatButtonModule,\r\n MatSelectModule,\r\n MatOptionModule,\r\n MatTooltipModule,\r\n MatFormFieldModule,\r\n MatDialogModule,\r\n MatInputModule\r\n ],\r\n exports: [BookmarkButtonComponent, PoiButtonComponent, UserButtonComponent, BookmarkDialogComponent],\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 { NgModule, ModuleWithProviders } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\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 { IgoLanguageModule } from '@igo2/core';\r\nimport {\r\n IgoListModule,\r\n IgoKeyValueModule,\r\n IgoCollapsibleModule,\r\n IgoStopPropagationModule,\r\n IgoActionbarModule\r\n} from '@igo2/common';\r\n\r\nimport { MapContextDirective } from './shared/map-context.directive';\r\nimport { LayerContextDirective } from './shared/layer-context.directive';\r\nimport { ContextListComponent } from './context-list/context-list.component';\r\nimport { ContextListBindingDirective } from './context-list/context-list-binding.directive';\r\nimport { ContextItemComponent } from './context-item/context-item.component';\r\nimport { ContextFormComponent } from './context-form/context-form.component';\r\nimport { ContextEditComponent } from './context-edit/context-edit.component';\r\nimport { ContextEditBindingDirective } from './context-edit/context-edit-binding.directive';\r\nimport { ContextPermissionsComponent } from './context-permissions/context-permissions.component';\r\nimport { ContextPermissionsBindingDirective } from './context-permissions/context-permissions-binding.directive';\r\nimport { IgoContextMapButtonModule } from '../context-map-button/context-map-button.module';\r\nimport { IgoContextImportExportModule } from '../context-import-export/context-import-export.module';\r\n\r\nconst CONTEXT_DIRECTIVES = [\r\n MapContextDirective,\r\n LayerContextDirective\r\n];\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\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=${formValues.uri}&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(lay => lay.visible && !lay.isIgoInternalLayer);\r\n const invisibleLayers = layers.filter(lay => !lay.visible && !lay.isIgoInternalLayer);\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 ( typeof contextLayer.id !== 'undefined' || typeof contextLayer.source !== 'undefined' ) {\r\n contextLayersID.push(contextLayer.id || contextLayer.source.id);\r\n }\r\n }\r\n\r\n const addedLayersQueryParamsWms = this.makeLayersByService(layers, contextLayersID, 'wms');\r\n const addedLayersQueryParamsWmts = this.makeLayersByService(layers, contextLayersID, 'wmts');\r\n const addedLayersQueryParamsArcgisRest = this.makeLayersByService(layers, contextLayersID, 'arcgisrest');\r\n const addedLayersQueryParamsImageArcgisRest = this.makeLayersByService(layers, contextLayersID, 'imagearcgisrest');\r\n const addedLayersQueryParamsTileArcgisRest = this.makeLayersByService(layers, contextLayersID, 'tilearcgisrest');\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(layers: Layer[], contextLayersID: any[], typeService: string): string {\r\n\r\n const addedLayersByService = [];\r\n for (const layer of layers.filter(l => l.dataSource.options?.type === typeService)) {\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.options as WMSDataSourceOptions;\r\n addedLayer = encodeURIComponent(datasourceOptions.params.LAYERS);\r\n layerVersion = datasourceOptions.params.VERSION === '1.3.0' ? layerVersion : 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((layer.dataSource.options as any).layer);\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 = (layer.dataSource.options as any).url.indexOf('?') === -1 ? '?' : '&';\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","<div class=\"igo-input-container linkToShare\">\r\n <mat-form-field>\r\n <textarea #textArea matInput readonly rows=\"3\"\r\n [placeholder]=\"'igo.context.shareMap.placeholderLink' | translate\"\r\n [value]=\"url\"></textarea>\r\n </mat-form-field>\r\n\r\n <div class=\"igo-form-button-group\">\r\n <button\r\n mat-raised-button\r\n (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 *ngIf=\"('igo.context.shareMap.htmlClarifications' | translate)===''\">\r\n <h4 *ngIf=\"('igo.context.shareMap.included' | translate)!==''\">{{'igo.context.shareMap.included' | translate}}</h4>\r\n <ul>\r\n <li *ngIf=\"('igo.context.shareMap.context' | translate)!==''\">{{'igo.context.shareMap.context' | translate}}</li>\r\n <li *ngIf=\"('igo.context.shareMap.center' | translate)!==''\">{{'igo.context.shareMap.center' | translate}}</li>\r\n <li *ngIf=\"('igo.context.shareMap.zoom' | translate)!==''\">{{'igo.context.shareMap.zoom' | translate}}</li>\r\n <li *ngIf=\"('igo.context.shareMap.addedLayers' | translate)!==''\">{{'igo.context.shareMap.addedLayers' | translate}}</li>\r\n <li *ngIf=\"('igo.context.shareMap.visibleInvisible' | translate)!==''\">{{'igo.context.shareMap.visibleInvisible' | translate}}</li>\r\n </ul>\r\n\r\n <h4 *ngIf=\"('igo.context.shareMap.excluded' | translate)!==''\">{{'igo.context.shareMap.excluded' | translate}}</h4>\r\n <ul>\r\n <li *ngIf=\"('igo.context.shareMap.order' | translate)!==''\">{{'igo.context.shareMap.order' | translate}}</li>\r\n <li *ngIf=\"('igo.context.shareMap.opacity' | translate)!==''\">{{'igo.context.shareMap.opacity' | translate}}</li>\r\n <li *ngIf=\"('igo.context.shareMap.filterOgc' | translate)!==''\">{{'igo.context.shareMap.filterOgc' | translate}}</li>\r\n <li *ngIf=\"('igo.context.shareMap.filterTime' | translate)!==''\">{{'igo.context.shareMap.filterTime' | translate}}</li>\r\n </ul>\r\n </div>\r\n <igo-custom-html class=\"shareCustomPadding\" *ngIf=\"('igo.context.shareMap.htmlClarifications' | translate)!==''\" class=\"mat-typography\"\r\n [html]=\"('igo.context.shareMap.htmlClarifications' | translate)\">\r\n </igo-custom-html>\r\n </section>\r\n </div>\r\n</div>\r\n","import { AfterViewInit, Component, Input, OnInit, ChangeDetectorRef, OnDestroy } from '@angular/core';\r\n\r\nimport { Clipboard } from '@igo2/utils';\r\nimport { MessageService } from '@igo2/core';\r\nimport type { IgoMap } from '@igo2/geo';\r\n\r\nimport { ShareMapService } from '../shared/share-map.service';\r\nimport { combineLatest, Subscription } from 'rxjs';\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$]).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(this.map, this.publicShareOption);\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","<form class=\"igo-form\" [formGroup]=\"form\"\r\n (ngSubmit)=\"createUrl(form.value)\">\r\n\r\n <div class=\"igo-input-container\">\r\n <mat-form-field>\r\n <input matInput required\r\n [placeholder]=\"'igo.context.contextManager.form.title' | translate\"\r\n formControlName=\"title\">\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 matInput required\r\n [readonly]=\"!userId\"\r\n [placeholder]=\"'igo.context.contextManager.form.uri' | translate\"\r\n formControlName=\"uri\">\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 *ngIf=\"!url\"\r\n mat-raised-button\r\n type=\"submit\"\r\n [disabled]=\"!form.valid\">\r\n {{ 'igo.context.shareMap.button' | translate }}\r\n </button>\r\n <button *ngIf=\"url\"\r\n mat-raised-button\r\n type=\"button\"\r\n (click)=\"updateContextShared(form.value)\">\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 #textArea matInput readonly rows=\"3\"\r\n class=\"textAreaWithButton\"\r\n [placeholder]=\"'igo.context.shareMap.placeholderLink' | translate\"\r\n [value]=\"url\"></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 <mat-icon svgIcon=\"content-copy\"></mat-icon>\r\n </button>\r\n </mat-form-field>\r\n<div>\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms';\r\n\r\nimport { uuid, Clipboard } from '@igo2/utils';\r\nimport { MessageService, LanguageService } from '@igo2/core';\r\nimport { AuthService } from '@igo2/auth';\r\nimport type { IgoMap } from '@igo2/geo';\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 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.updateContextShared(this.map, inputs, this.idContextShared).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 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 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","<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\r\n @Input() map: IgoMap;\r\n\r\n public hasApi = false;\r\n\r\n constructor(\r\n private config: ConfigService\r\n ) {\r\n this.hasApi = this.config.getConfig('context.url') ? true : false;\r\n }\r\n}\r\n","import { NgModule, ModuleWithProviders } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\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 { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { MatTabsModule } from '@angular/material/tabs';\r\n\r\nimport { IgoLanguageModule } from '@igo2/core';\r\n\r\nimport { ShareMapComponent } from './share-map/share-map.component';\r\nimport { ShareMapUrlComponent } from './share-map/share-map-url.component';\r\nimport { ShareMapApiComponent } from './share-map/share-map-api.component';\r\nimport { IgoCustomHtmlModule } from '@igo2/common';\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\r\n #sidenav\r\n igoSidenavShim\r\n mode=\"side\"\r\n [opened]=\"opened\">\r\n\r\n <div class=\"igo-sidenav-content\">\r\n\r\n <igo-flexible\r\n #topPanel\r\n initial=\"50%\" 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 <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 <mat-icon svgIcon=\"menu\"></mat-icon>\r\n </button>\r\n\r\n </igo-panel>\r\n </div>\r\n\r\n <div igoFlexibleFill class=\"igo-content\">\r\n <igo-panel\r\n [title]=\"featureTitle\"\r\n *ngIf=\"feature && media !== 'mobile'\">\r\n\r\n <button\r\n mat-icon-button\r\n panelLeftButton\r\n class=\"igo-icon-button\"\r\n (click)=\"toggleTopPanel()\">\r\n <mat-icon [svgIcon]=\"['collapsed', 'initial'].indexOf(topPanel.state) >= 0 ? 'arrow_downward' : 'arrow_upward'\"></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 <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 </igo-feature-details>\r\n </igo-panel>\r\n </div>\r\n\r\n </igo-flexible>\r\n\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 type { Media } from '@igo2/core';\r\nimport { FlexibleState, Tool, getEntityTitle } from '@igo2/common';\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 = this.titleService.getTitle();\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\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.projection\r\n });\r\n moveToOlFeatures(this.map, [olFeature], FeatureMotion.Zoom);\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}\r\n","import { NgModule, ModuleWithProviders } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\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 { IgoLanguageModule } from '@igo2/core';\r\nimport { IgoPanelModule, IgoFlexibleModule } from '@igo2/common';\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 { NgModule, ModuleWithProviders } 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","/*\n * Public API Surface of context\n */\n\nexport * from './lib/context.module';\nexport * from './lib/context-import-export/context-import-export.module';\nexport * from './lib/context-manager/context-manager.module';\nexport * from './lib/context-map-button/context-map-button.module';\nexport * from './lib/share-map/share-map.module';\nexport * from './lib/sidenav/sidenav.module';\n\nexport * from './lib/context-import-export';\nexport * from './lib/context-manager';\nexport * from './lib/context-map-button';\nexport * from './lib/share-map';\nexport * from './lib/sidenav';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1","i4","_c0","i1.ContextImportService","i2.ContextExportService","i5.ContextService","i2.ContextService","i2","i3","i1.ContextListComponent","i5","i6","i1.ContextEditComponent","i1.ContextPermissionsComponent","i3.PoiService","i1.ContextService","i2.ShareMapService","i3.ShareMapService","olFormatGeoJSON"],"mappings":"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"}
1
+ {"version":3,"file":"igo2-context.mjs","sources":["../../../packages/context/src/lib/context-import-export/shared/context-export.errors.ts","../../../packages/context/src/lib/context-import-export/shared/context-export.utils.ts","../../../packages/context/src/lib/context-import-export/shared/context-import.utils.ts","../../../packages/context/src/lib/context-import-export/shared/context-import.errors.ts","../../../packages/context/src/lib/context-import-export/shared/context-import.service.ts","../../../packages/context/src/lib/context-import-export/shared/context-export.service.ts","../../../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/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-manager/shared/map-context.directive.ts","../../../packages/context/src/lib/context-manager/shared/layer-context.directive.ts","../../../packages/context/src/lib/context-manager/context-list/context-list.enum.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-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.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-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-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-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-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.animation.ts","../../../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-manager.module.ts","../../../packages/context/src/lib/share-map/shared/share-map.service.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-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.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 class ExportError extends Error {}\r\n\r\nexport class ExportInvalidFileError extends ExportError {\r\n constructor() {\r\n super('Invalid context');\r\n Object.setPrototypeOf(this, ExportInvalidFileError.prototype);\r\n }\r\n}\r\n\r\nexport class ExportNothingToExportError extends ExportError {\r\n constructor() {\r\n super('Nothing to export');\r\n Object.setPrototypeOf(this, ExportNothingToExportError.prototype);\r\n }\r\n}\r\n","import { MessageService } from '@igo2/core';\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\nexport function handleFileExportSuccess(\r\n messageService: MessageService\r\n ) {\r\n messageService.success('igo.context.contextImportExport.export.success.text', 'igo.context.contextImportExport.export.success.title');\r\n}\r\n\r\nexport function handleNothingToExportError(\r\n messageService: MessageService,\r\n ) {\r\n messageService.error('igo.context.contextImportExport.export.nothing.text', 'igo.context.contextImportExport.export.nothing.title');\r\n}\r\n","import type { default as OlGeometry } from 'ol/geom/Geometry';\r\n\r\nimport {\r\n FeatureDataSource,\r\n FeatureDataSourceOptions,\r\n IgoMap,\r\n VectorLayer,\r\n QueryableDataSourceOptions,\r\n StyleService,\r\n StyleListService,\r\n StyleByAttribute,\r\n ClusterParam,\r\n ClusterDataSourceOptions,\r\n ClusterDataSource,\r\n featureRandomStyle,\r\n featureRandomStyleFunction\r\n} from '@igo2/geo';\r\nimport { MessageService } from '@igo2/core';\r\nimport { DetailedContext } from '../../context-manager/shared/context.interface';\r\nimport { ContextService } from '../../context-manager/shared/context.service';\r\nimport OlFeature from 'ol/Feature';\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', undefined, {\r\n value: contextTitle\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](\r\n file,\r\n error,\r\n messageService,\r\n sizeMb\r\n );\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\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\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\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 olFeatures: OlFeature<OlGeometry>[],\r\n map: IgoMap,\r\n layerTitle: string\r\n): VectorLayer {\r\n const sourceOptions: FeatureDataSourceOptions & QueryableDataSourceOptions = {\r\n type: 'vector',\r\n queryable: true\r\n };\r\n const source = new FeatureDataSource(sourceOptions);\r\n source.ol.addFeatures(olFeatures);\r\n let randomStyle;\r\n let editable: boolean = false;\r\n if (\r\n olFeatures[0].getKeys().includes('_style') ||\r\n olFeatures[0].getKeys().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: layerTitle,\r\n isIgoInternalLayer: true,\r\n source,\r\n igoStyle: { editable },\r\n style: randomStyle\r\n });\r\n map.addLayer(layer);\r\n\r\n return layer;\r\n}\r\n\r\nexport function addImportedFeaturesStyledToMap(\r\n olFeatures: OlFeature<OlGeometry>[],\r\n map: IgoMap,\r\n layerTitle: string,\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 (\r\n styleListService.getStyleList(layerTitle.toString() + '.styleByAttribute')\r\n ) {\r\n const styleByAttribute: StyleByAttribute = styleListService.getStyleList(\r\n layerTitle.toString() + '.styleByAttribute'\r\n );\r\n\r\n style = (feature, resolution) => {\r\n return styleService.createStyleByAttribute(feature, styleByAttribute, resolution);\r\n };\r\n } else if (\r\n styleListService.getStyleList(layerTitle.toString() + '.clusterStyle')\r\n ) {\r\n const clusterParam: ClusterParam = styleListService.getStyleList(\r\n layerTitle.toString() + '.clusterParam'\r\n );\r\n distance = styleListService.getStyleList(\r\n layerTitle.toString() + '.distance'\r\n );\r\n\r\n style = (feature, resolution) => {\r\n const baseStyle = styleService.createStyle(\r\n styleListService.getStyleList(layerTitle.toString() + '.clusterStyle'), feature, resolution\r\n );\r\n return styleService.createClusterStyle(feature, resolution, clusterParam, baseStyle);\r\n };\r\n } else if (styleListService.getStyleList(layerTitle.toString() + '.style')) {\r\n style = (feature, resolution) => styleService.createStyle(\r\n styleListService.getStyleList(layerTitle.toString() + '.style'), feature, resolution\r\n );\r\n } else {\r\n style = (feature, resolution) => styleService.createStyle(\r\n styleListService.getStyleList('default.style'), feature, resolution\r\n );\r\n }\r\n let source;\r\n\r\n if (styleListService.getStyleList(layerTitle.toString() + '.clusterStyle')) {\r\n const sourceOptions: ClusterDataSourceOptions &\r\n QueryableDataSourceOptions = {\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 &\r\n QueryableDataSourceOptions = {\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: layerTitle,\r\n isIgoInternalLayer: true,\r\n source,\r\n style\r\n });\r\n map.addLayer(layer);\r\n\r\n return layer;\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 { Injectable } from '@angular/core';\r\nimport { Observable, Observer } from 'rxjs';\r\nimport { ConfigService } from '@igo2/core';\r\n\r\nimport {\r\n ImportInvalidFileError,\r\n ImportUnreadableFileError,\r\n ImportSizeError\r\n} from './context-import.errors';\r\nimport { getFileExtension } from './context-import.utils';\r\nimport { DetailedContext } from '../../context-manager/shared/context.interface';\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 { Injectable } from '@angular/core';\r\n\r\nimport { downloadContent } from '@igo2/utils';\r\n\r\nimport { DetailedContext } from '../../context-manager/shared/context.interface';\r\nimport { ExportNothingToExportError } from './context-export.errors';\r\nimport { Observer, Observable } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ContextExportService {\r\n\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(contextJSON, 'text/json;charset=utf-8', `${res.uri}.json`);\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","export enum TypePermission {\r\n null,\r\n read,\r\n write\r\n}\r\n\r\nexport enum Scope {\r\n public,\r\n protected,\r\n private\r\n}\r\n","import { Injectable, Optional } from '@angular/core';\r\nimport { HttpClient, HttpErrorResponse } from '@angular/common/http';\r\n\r\nimport { BehaviorSubject, Observable, of, Subject } from 'rxjs';\r\nimport {\r\n map,\r\n tap,\r\n catchError,\r\n debounceTime,\r\n mergeMap,\r\n first,\r\n skip\r\n} from 'rxjs/operators';\r\n\r\nimport olPoint from 'ol/geom/Point';\r\nimport GeoJSON from 'ol/format/GeoJSON';\r\nimport Cluster from 'ol/source/Cluster';\r\nimport olVectorSource from 'ol/source/Vector';\r\n\r\nimport { Tool } from '@igo2/common';\r\nimport { uuid, ObjectUtils } from '@igo2/utils';\r\nimport {\r\n ConfigService,\r\n RouteService,\r\n Message,\r\n MessageService,\r\n LanguageService,\r\n StorageService\r\n} from '@igo2/core';\r\n\r\nimport { AuthService } from '@igo2/auth';\r\nimport type { IgoMap, Layer, LayerOptions } from '@igo2/geo';\r\nimport { ExportService } from '@igo2/geo';\r\n\r\nimport { TypePermission } from './context.enum';\r\nimport {\r\n ContextsList,\r\n ContextServiceOptions,\r\n Context,\r\n DetailedContext,\r\n ContextMapView,\r\n ContextPermission,\r\n ContextProfils\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 this.storageService.get('favorite.context.uri') as string || this._defaultContextUri || this.options.defaultContextUri;\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\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 = {\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$.getValue().filter(lay => !lay.id.includes('WfsWorkspaceTableDest')).sort((a, b) => a.zIndex - b.zIndex);\r\n }\r\n\r\n let i = 0;\r\n for (const l of layers) {\r\n const layer: any = l;\r\n const opts = {\r\n id: layer.options.id ? String(layer.options.id) : undefined,\r\n layerOptions: {\r\n title: layer.options.title,\r\n zIndex: ++i,\r\n visible: layer.visible,\r\n security: layer.security\r\n } as 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 { id: String(tool.id), global: tool.global };\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 ): 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 = {\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 }\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(\r\n (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 layerStyle = layerFound[`style`];\r\n if (layerFound[`igoStyle`][`styleByAttribute`]) {\r\n layerStyle = undefined;\r\n } else if (layerFound[`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: layerFound[`igoStyle`][`styleByAttribute`],\r\n clusterBaseStyle: layerFound[`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 delete catalogLayer.source;\r\n context.layers.push(catalogLayer);\r\n } else {\r\n let features;\r\n const writer = new GeoJSON();\r\n if (layer.ol.getSource() instanceof Cluster) {\r\n const clusterSource = layer.ol.getSource() as Cluster;\r\n let olFeatures = clusterSource.getFeatures();\r\n olFeatures = (olFeatures as any).flatMap((cluster: any) => cluster.get('features'));\r\n const cleanedOlFeatures = this.exportService.generateFeature(olFeatures, 'GeoJSON', '_featureStore');\r\n features = writer.writeFeatures(\r\n cleanedOlFeatures,\r\n {\r\n dataProjection: 'EPSG:4326',\r\n featureProjection: 'EPSG:3857'\r\n }\r\n );\r\n } else {\r\n const source = layer.ol.getSource() as olVectorSource;\r\n const olFeatures = source.getFeatures();\r\n const cleanedOlFeatures = this.exportService.generateFeature(olFeatures, 'GeoJSON', '_featureStore');\r\n features = writer.writeFeatures(\r\n cleanedOlFeatures,\r\n {\r\n dataProjection: 'EPSG:4326',\r\n featureProjection: 'EPSG:3857'\r\n }\r\n );\r\n }\r\n features = JSON.parse(features);\r\n features.name = layer.options.title;\r\n context.extraFeatures.push(features);\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 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 (this.context$.value && context.uri && this.context$.value.uri !== context.uri) {\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 private handleContextsChange(\r\n keepCurrentContext = true\r\n ) {\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(\r\n (newContext: DetailedContext) => {\r\n this.toolsChanged$.next(newContext);\r\n }\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","<div class=\"import-export-toggle mat-typography\">\r\n <mat-button-toggle-group\r\n [value]=\"activeImportExport\"\r\n (change)=\"onImportExportChange($event)\">\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 mat-raised-button type=\"button\" (click)=\"fileInput.click()\" [disabled]=\"loading$ | async\">\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 </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>{{'igo.geo.importExportForm.importSizeMax' | translate: {size: fileSizeMb} }}</li>\r\n </ul>\r\n </section>\r\n</div>\r\n\r\n\r\n<form class=\"igo-form\" *ngIf=\"activeImportExport === 'export'\" [formGroup]=\"form\">\r\n <div class=\"igo-input-container\">\r\n <mat-form-field class=\"example-full-width\">\r\n <mat-label>{{'igo.context.contextImportExport.export.exportContextName' | translate}}</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>{{'igo.context.contextImportExport.export.exportPlaceHolder' | translate}}</mat-label>\r\n <mat-select formControlName=\"layers\" multiple>\r\n <mat-option [value]=\"1\" (click)=\"selectAll(e)\" #e>\r\n {{'igo.context.contextImportExport.export.exportSelectAll' | translate}}\r\n </mat-option>\r\n <mat-divider></mat-divider>\r\n <mat-option *ngFor=\"let layer of userControlledLayerList\" [value]=\"layer\">{{layer.title}}</mat-option>\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 {{'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, OnInit } from '@angular/core';\r\nimport { UntypedFormGroup, UntypedFormBuilder, Validators } from '@angular/forms';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { take } from 'rxjs/operators';\r\n\r\nimport { MessageService, ConfigService } from '@igo2/core';\r\nimport { Layer, VectorLayer } from '@igo2/geo';\r\nimport type { IgoMap } from '@igo2/geo';\r\n\r\nimport { handleFileExportError } from '../shared/context-export.utils';\r\nimport {\r\n handleFileImportSuccess,\r\n handleFileImportError\r\n} from '../shared/context-import.utils';\r\nimport { handleFileExportSuccess } from '../shared/context-export.utils';\r\nimport { ContextService } from '../../context-manager/shared/context.service';\r\nimport { ContextImportService } from '../shared/context-import.service';\r\nimport { ContextExportService } from '../shared/context-export.service';\r\nimport { DetailedContext } from '../../context-manager/shared/context.interface';\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 {\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 @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.layerList = this.contextService.getContextLayers(this.map);\r\n this.userControlledLayerList = this.layerList.filter(layer => layer.showInLayerList);\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.import(file).pipe(take(1)).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 );\r\n this.res.imported = true;\r\n this.contextExportService.export(this.res).pipe(take(1)).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(\r\n file,\r\n error,\r\n this.messageService,\r\n this.fileSizeMb\r\n );\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","import { NgModule, ModuleWithProviders } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\r\nimport { MatOptionModule } from '@angular/material/core';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatDividerModule } from '@angular/material/divider';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatTabsModule } from '@angular/material/tabs';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\n\r\nimport { IgoLanguageModule } from '@igo2/core';\r\nimport { ContextImportExportComponent } from './context-import-export/context-import-export.component';\r\nimport { IgoSpinnerModule } from '@igo2/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\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: [\r\n ContextImportExportComponent\r\n ],\r\n declarations: [\r\n ContextImportExportComponent\r\n ]\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 { Directive, OnInit, OnDestroy } from '@angular/core';\r\n\r\nimport { Subscription } from 'rxjs';\r\nimport { filter } from 'rxjs/operators';\r\n\r\nimport { MapViewOptions, MapBrowserComponent, MapControlsOptions, MapScaleLineOptions } from '@igo2/geo';\r\nimport type { IgoMap } from '@igo2/geo';\r\n\r\nimport { ContextService } from './context.service';\r\nimport { DetailedContext, ContextMapView } from './context.interface';\r\nimport { MediaService } from '@igo2/core';\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 (!this.component.view || viewContext.keepCurrentView !== true || context.map.view.projection !== this.map.projection) {\r\n this.component.view = viewContext as MapViewOptions;\r\n }\r\n if (this.component.map.geolocationController) {\r\n this.component.map.geolocationController.updateGeolocationOptions(viewContext);\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 = 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 { Directive, OnInit, OnDestroy, Optional, Input } from '@angular/core';\r\n\r\nimport { Subscription, merge } from 'rxjs';\r\nimport { buffer, debounceTime, filter } from 'rxjs/operators';\r\n\r\nimport { RouteService, ConfigService } from '@igo2/core';\r\nimport {\r\n MapBrowserComponent,\r\n Layer,\r\n LayerService,\r\n LayerOptions,\r\n StyleListService,\r\n StyleService\r\n} from '@igo2/geo';\r\nimport type { IgoMap } from '@igo2/geo';\r\n\r\nimport { ContextService } from './context.service';\r\nimport { DetailedContext } from './context.interface';\r\nimport {\r\n addImportedFeaturesToMap,\r\n addImportedFeaturesStyledToMap\r\n} from '../../context-import-export/shared/context-import.utils';\r\nimport GeoJSON from 'ol/format/GeoJSON';\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 const queryParams$$ = this.route.queryParams.subscribe((params) => {\r\n if (Object.keys(params).length > 0) {\r\n this.queryParams = params;\r\n queryParams$$.unsubscribe();\r\n }\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 format = new GeoJSON();\r\n const title = featureCollection.name;\r\n featureCollection = JSON.stringify(featureCollection);\r\n featureCollection = format.readFeatures(featureCollection, {\r\n dataProjection: 'EPSG:4326',\r\n featureProjection: 'EPSG:3857'\r\n });\r\n const importExportOptions = this.configService.getConfig('importExport');\r\n const importWithStyle =importExportOptions?.importWithStyle || this.configService.getConfig('importWithStyle');\r\n if (this.configService.getConfig('importWithStyle')) {\r\n console.warn(`\r\n The location of this config importWithStyle is deprecated.\r\n Please move this property within importExport configuration.\r\n Ex: importWithStyle: true/false must be transfered to importExport: { importWithStyle: true/false }\r\n Refer to environnement.ts OR config/config.json\r\n This legacy conversion will be deleted in 2024.\r\n `);\r\n }\r\n if (!importWithStyle) {\r\n addImportedFeaturesToMap(featureCollection, this.map, title);\r\n } else {\r\n addImportedFeaturesStyledToMap(\r\n featureCollection,\r\n this.map,\r\n title,\r\n this.styleListService,\r\n this.styleService\r\n );\r\n }\r\n });\r\n }\r\n });\r\n\r\n this.layerService.createAsyncIdbLayers(context.uri).pipe(debounceTime(500))\r\n .subscribe((layers: Layer[]) => this.handleAddLayers(layers));\r\n\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 (visiblelayers.indexOf(currentLayerid) > -1 || visiblelayers.indexOf(currentLayerid.toString()) > -1) {\r\n visible = true;\r\n }\r\n if (invisiblelayers.indexOf(currentLayerid) > -1 || invisiblelayers.indexOf(currentLayerid.toString()) > -1) {\r\n visible = false;\r\n }\r\n }\r\n\r\n return visible;\r\n }\r\n}\r\n","export enum ContextListControlsEnum {\r\n always = 'always',\r\n never = 'never',\r\n default = 'default'\r\n}\r\n","import { Component } from '@angular/core';\r\nimport { MatDialogRef } from '@angular/material/dialog';\r\n\r\n@Component({\r\n selector: 'igo-bookmark-dialog',\r\n templateUrl: './bookmark-dialog.component.html'\r\n})\r\nexport class BookmarkDialogComponent {\r\n public title: string;\r\n\r\n constructor(public dialogRef: MatDialogRef<BookmarkDialogComponent>) {}\r\n}\r\n","<h1 mat-dialog-title class=\"mat-typography\">{{ 'igo.context.bookmarkButton.dialog.title' | translate }}</h1>\r\n<div mat-dialog-content class=\"mat-typography\">\r\n <mat-form-field>\r\n <input matInput required autocomplete=\"off\"\r\n maxlength=\"128\"\r\n [placeholder]=\"'igo.context.bookmarkButton.dialog.placeholder' | translate\"\r\n [(ngModel)]=\"title\">\r\n </mat-form-field>\r\n</div>\r\n<div mat-dialog-actions>\r\n <button mat-button color=\"primary\"\r\n [disabled]=\"!title\"\r\n (click)=\"dialogRef.close(title)\">\r\n {{'igo.common.confirmDialog.confirmBtn' | translate}}\r\n </button>\r\n <button mat-button\r\n (click)=\"dialogRef.close(false)\">\r\n {{'igo.common.confirmDialog.cancelBtn' | translate}}\r\n </button>\r\n</div>\r\n","<mat-list-item\r\n class=\"mat-list-item\"\r\n [ngClass]=\"{'mat-list-item-light': hidden}\">\r\n <button mat-list-avatar\r\n *ngIf=\"auth.authenticated\"\r\n mat-icon-button\r\n igoStopPropagation\r\n [matTooltip]=\"auth.authenticated ? ('igo.context.contextManager.favorite' | translate) : ''\"\r\n matTooltipShowDelay=\"500\"\r\n [color]=\"default ? 'primary' : 'default'\"\r\n (click)=\"favoriteClick(context)\">\r\n <mat-icon *ngIf=\"!context.iconImage\" svgIcon=\"{{context.icon ? context.icon : context.scope === 'public' ? 'earth' : 'star'}}\"></mat-icon>\r\n <img *ngIf=\"context.iconImage\" [src]=\"context.iconImage\">\r\n </button>\r\n <button mat-list-avatar\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 <mat-icon svgIcon=\"star\"></mat-icon>\r\n </button>\r\n <h4 matLine>{{context.title}}</h4>\r\n\r\n <div *ngIf=\"auth.authenticated\"\r\n igoStopPropagation\r\n class=\"igo-actions-container\">\r\n\r\n <button *ngIf=\"collapsed && selected && (context.permission === typePermission[typePermission.write] || context.imported)\"\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 <mat-icon svgIcon=\"content-save\"></mat-icon>\r\n </button>\r\n\r\n <div #actions class=\"igo-actions-expand-container\">\r\n\r\n <button *ngIf=\"canShare && !context.imported\"\r\n mat-icon-button\r\n [matTooltip]=\"'igo.context.contextManager.managePermissions' | translate\"\r\n matTooltipShowDelay=\"500\"\r\n [color]=\"color\"\r\n (click)=\"managePermissions.emit(context)\">\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 *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 <mat-icon svgIcon=\"content-copy\"></mat-icon>\r\n </button>\r\n\r\n <button *ngIf=\"context.permission === typePermission[typePermission.write] && !context.imported\"\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 <mat-icon svgIcon=\"pencil\"></mat-icon>\r\n </button>\r\n\r\n <button *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 <mat-icon svgIcon=\"eye\"></mat-icon>\r\n </button>\r\n\r\n <button *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 <mat-icon svgIcon=\"eye-off\"></mat-icon>\r\n </button>\r\n\r\n <button *ngIf=\"context.permission === typePermission[typePermission.write] || context.imported\"\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 <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 <mat-icon svgIcon=\"dots-horizontal\"></mat-icon>\r\n </button>\r\n\r\n </div>\r\n\r\n</mat-list-item>\r\n","import {\r\n Component,\r\n Input,\r\n Output,\r\n EventEmitter,\r\n ChangeDetectionStrategy\r\n} from '@angular/core';\r\n\r\nimport { StorageService } from '@igo2/core';\r\nimport { AuthService } from '@igo2/auth';\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","<igo-list [navigation]=\"true\">\r\n <mat-form-field *ngIf=\"showFilter()\" [ngClass]=\"auth.authenticated && configService.getConfig('context') ? 'context-filter-min-width' : 'context-filter-max-width'\">\r\n <input\r\n matInput\r\n type=\"text\"\r\n [placeholder]=\"'igo.context.contextManager.filterPlaceHolder' | translate\"\r\n [(ngModel)]=\"term\">\r\n <button\r\n mat-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 <mat-icon svgIcon=\"close\"></mat-icon>\r\n </button>\r\n </mat-form-field>\r\n\r\n <button\r\n *ngIf=\"!sortedAlpha\"\r\n class=\"sort-alpha\"\r\n mat-icon-button\r\n [matTooltip]=\"'igo.context.contextManager.sortAlphabetically' | translate\"\r\n matTooltipShowDelay=\"500\"\r\n (click)=\"toggleSort(true)\">\r\n <mat-icon color=\"primary\" svgIcon=\"sort-alphabetical-variant\"></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 <mat-icon color=\"warn\" svgIcon=\"sort-variant-remove\"></mat-icon>\r\n </button>\r\n\r\n <igo-actionbar *ngIf=\"auth.authenticated && configService.getConfig('context')\"\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 </igo-actionbar>\r\n\r\n <button *ngIf=\"auth.authenticated && configService.getConfig('context')\"\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 <mat-icon color=\"primary\" svgIcon=\"filter-menu\"></mat-icon>\r\n </button>\r\n\r\n <mat-menu #accountMenu=\"matMenu\">\r\n <ng-container *ngFor=\"let user of users\">\r\n <span class=\"profilsMenu\">\r\n <mat-checkbox\r\n class=\"mat-menu-item\"\r\n [checked]=\"getPermission(user).checked\"\r\n [indeterminate]=\"getPermission(user).indeterminate\"\r\n (click)=\"$event.stopPropagation()\"\r\n (change)=\"userSelection(user)\">\r\n </mat-checkbox>\r\n <button *ngIf=\"user.childs\"\r\n [matMenuTriggerFor]=\"subAccountMenu\"\r\n mat-menu-item>\r\n {{user.title}}\r\n </button>\r\n <button\r\n mat-menu-item\r\n *ngIf=\"!user.childs\">\r\n {{user.title}}\r\n </button>\r\n </span>\r\n\r\n <mat-menu #subAccountMenu=\"matMenu\">\r\n <mat-checkbox *ngFor=\"let child of user.childs\"\r\n class=\"mat-menu-item\"\r\n [checked]=\"getPermission(child).checked\"\r\n (click)=\"$event.stopPropagation()\"\r\n (change)=\"userSelection(child, user)\">\r\n {{child.title}}\r\n </mat-checkbox>\r\n </mat-menu>\r\n </ng-container>\r\n\r\n <span class=\"profilsMenu\">\r\n <mat-checkbox\r\n class=\"mat-menu-item\"\r\n [checked]=\"showHidden\"\r\n (click)=\"$event.stopPropagation()\"\r\n (change)=\"showHiddenContexts.emit()\">\r\n </mat-checkbox>\r\n <button mat-menu-item>\r\n {{ 'igo.context.contextManager.showHidden' | translate }}\r\n </button>\r\n </span>\r\n </mat-menu>\r\n\r\n <ng-template ngFor let-groupContexts [ngForOf]=\"contexts$ | async | keyvalue\">\r\n\r\n <igo-collapsible *ngIf=\"groupContexts.value.length && auth.authenticated\" [title]=\"titleMapping[groupContexts.key] | translate\"\r\n [collapsed]=\"collapsed[titleMapping[groupContexts.key]]\" (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]=\"context.id && this.defaultContextId && this.defaultContextId === context.id\"\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 </igo-context-item>\r\n </ng-template>\r\n\r\n </igo-collapsible>\r\n\r\n <ng-template *ngIf=\"groupContexts.value.length && !auth.authenticated\" ngFor let-context [ngForOf]=\"groupContexts.value\">\r\n <igo-context-item\r\n igoListItem\r\n color=\"accent\"\r\n [showFavorite]=\"configService.getConfig('favoriteContext4NonAuthenticated')\"\r\n [selected]=\"selectedContext && selectedContext.uri === context.uri\"\r\n [context]=\"context\"\r\n [default]=\"configService.getConfig('context') ? defaultContextId === context.id : defaultContextId === context.uri\"\r\n (favorite)=\"favorite.emit(context)\"\r\n (select)=\"select.emit(context)\"\r\n (unselect)=\"unselect.emit(context)\">\r\n </igo-context-item>\r\n </ng-template>\r\n\r\n </ng-template>\r\n</igo-list>\r\n","import {\r\n Component,\r\n Input,\r\n Output,\r\n EventEmitter,\r\n ChangeDetectorRef,\r\n OnInit,\r\n ChangeDetectionStrategy,\r\n OnDestroy\r\n} from '@angular/core';\r\n\r\nimport { AuthService } from '@igo2/auth';\r\nimport { ConfigService, LanguageService, StorageService } from '@igo2/core';\r\nimport type { IgoMap } from '@igo2/geo';\r\n\r\nimport {\r\n DetailedContext,\r\n ContextsList,\r\n ContextUserPermission,\r\n ContextProfils\r\n} from '../shared/context.interface';\r\nimport { ContextListControlsEnum } from './context-list.enum';\r\nimport {\r\n Subscription,\r\n BehaviorSubject,\r\n ReplaySubject,\r\n EMPTY,\r\n timer\r\n} from 'rxjs';\r\nimport { take } from 'rxjs/operators';\r\n\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { BookmarkDialogComponent } from '../../context-map-button/bookmark-button/bookmark-dialog.component';\r\nimport { debounce } from 'rxjs/operators';\r\nimport { ActionStore, ActionbarMode } from '@igo2/common';\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 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.cdRef.detectChanges();\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.configService.getConfig('context') ? this._defaultContextId :\r\n this.storageService.get('favorite.context.uri') as string || 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 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\r\n ngOnInit() {\r\n this.change$$ = this.change$\r\n .pipe(\r\n debounce(() => {\r\n return this.contexts.ours.length === 0 &&\r\n this.contexts.public?.length === 0 &&\r\n this.contexts.shared?.length === 0 ? EMPTY : timer(50);\r\n })\r\n )\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) {\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 userSelection(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 Directive,\r\n Self,\r\n OnInit,\r\n OnDestroy,\r\n HostListener,\r\n ChangeDetectorRef\r\n} from '@angular/core';\r\nimport { Subscription } from 'rxjs';\r\nimport { debounceTime } from 'rxjs/operators';\r\n\r\nimport { MessageService, LanguageService, StorageService } from '@igo2/core';\r\nimport { AuthService } from '@igo2/auth';\r\nimport { ConfirmDialogService } from '@igo2/common';\r\nimport { MapService } from '@igo2/geo';\r\n\r\nimport {\r\n Context,\r\n DetailedContext,\r\n ContextsList,\r\n ContextUserPermission\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 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 @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 @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 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('favorite.context.uri') 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","<form class=\"igo-form\" [formGroup]=\"form\"\r\n (ngSubmit)=\"handleFormSubmit(form.value)\">\r\n\r\n <mat-form-field class=\"full-width\">\r\n <input matInput required\r\n maxlength=\"128\"\r\n [placeholder]=\"'igo.context.contextManager.form.title' | translate\"\r\n formControlName=\"title\">\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 matInput\r\n maxlength=\"64\"\r\n floatLabel = \"always\"\r\n [placeholder]=\"'igo.context.contextManager.form.uri' | translate\"\r\n formControlName=\"uri\">\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 <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 {{ 'igo.context.contextManager.form.edit' | translate }}\r\n </button>\r\n </div>\r\n\r\n</form>\r\n","import { Component, Input, Output, EventEmitter, OnInit } from '@angular/core';\r\nimport { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms';\r\n\r\nimport { ObjectUtils, Clipboard } from '@igo2/utils';\r\nimport { MessageService } from '@igo2/core';\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('igo.context.contextManager.dialog.copyMsg', 'igo.context.contextManager.dialog.copyTitle');\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 *ngIf=\"context\"\r\n [btnSubmitText]=\"'igo.context.contextManager.save' | translate\"\r\n [context]=\"context\"\r\n (submitForm)=\"submitForm.emit($event)\">\r\n</igo-context-form>\r\n","import { Component, Input, Output, EventEmitter, ChangeDetectorRef } 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 Output,\r\n EventEmitter,\r\n Directive,\r\n Self,\r\n OnInit,\r\n OnDestroy,\r\n HostListener\r\n} from '@angular/core';\r\nimport { Subscription } from 'rxjs';\r\n\r\nimport { MessageService } from '@igo2/core';\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 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","<div *ngIf=\"context\">\r\n\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 [(ngModel)]=\"context.scope\"\r\n (change)=\"scopeChanged.emit(context)\">\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 *ngIf=\"context.scope !== 'private' && canWrite\" [formGroup]=\"form\"\r\n (ngSubmit)=\"handleFormSubmit(form.value)\">\r\n\r\n <mat-form-field class=\"full-width\">\r\n <input matInput required\r\n [placeholder]=\"'igo.context.permission.user' | translate\"\r\n [formControl]=\"formControl\"\r\n [matAutocomplete]=\"auto\">\r\n <mat-autocomplete #auto=\"matAutocomplete\" (optionSelected)=\"onProfilSelected($event.option.value)\"\r\n [displayWith]=\"displayFn\">\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\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\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\">\r\n {{ 'igo.context.permission.addBtn' | translate }}\r\n </button>\r\n </div>\r\n\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 mat-list-avatar svgIcon=\"account-outline\"></mat-icon>\r\n <h4 mat-line>{{permission.profilTitle}} <small class=\"mat-typography\">{{permission.profil}}</small></h4>\r\n\r\n <div igoStopPropagation\r\n class=\"igo-actions-container\">\r\n\r\n <button *ngIf=\"canWrite || permission.profil === authService.decodeToken().user.sourceId\"\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 <mat-icon svgIcon=\"delete\"></mat-icon>\r\n </button>\r\n </div>\r\n\r\n </mat-list-item>\r\n </ng-template>\r\n </igo-collapsible>\r\n </ng-template>\r\n </igo-list>\r\n\r\n</div>\r\n","import { Component, Input, Output, EventEmitter, OnInit, ChangeDetectorRef } from '@angular/core';\r\nimport { UntypedFormBuilder, UntypedFormGroup, UntypedFormControl } from '@angular/forms';\r\n\r\nimport {\r\n Context,\r\n ContextPermission,\r\n ContextPermissionsList,\r\n ContextProfils\r\n} from '../shared/context.interface';\r\nimport { TypePermission } from '../shared/context.enum';\r\n\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Subscription } from 'rxjs';\r\n\r\nimport { AuthService } from '@igo2/auth';\r\nimport { ConfigService } from '@igo2/core';\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> = new EventEmitter();\r\n @Output() scopeChanged: EventEmitter<Context> = new EventEmitter();\r\n\r\n constructor(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 ngOnInit(): void {\r\n this.buildForm();\r\n\r\n this.baseUrlProfils = this.config.getConfig('context.url') + '/profils-users?';\r\n\r\n this.formValueChanges$$ = this.formControl.valueChanges.subscribe((value) => {\r\n if (value.length) {\r\n this.http.get(this.baseUrlProfils + 'q=' + value).subscribe(profils => {\r\n this.profils = profils as ContextProfils[];\r\n });\r\n this.profils.filter((profil) => {\r\n const filterNormalized = value.toLowerCase().normalize('NFD').replace(/[\\u0300-\\u036f]/g, '');\r\n const profilTitleNormalized = profil.title.toLowerCase().normalize('NFD').replace(/[\\u0300-\\u036f]/g, '');\r\n const profilNameNormalized = profil.name.toLowerCase().normalize('NFD').replace(/[\\u0300-\\u036f]/g, '');\r\n const profilNormalized = 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 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 Directive,\r\n Self,\r\n OnInit,\r\n OnDestroy,\r\n HostListener,\r\n ChangeDetectorRef\r\n} from '@angular/core';\r\nimport { Subscription } from 'rxjs';\r\n\r\nimport { MessageService, LanguageService } from '@igo2/core';\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\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 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 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 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 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 { Component, Input } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { take } from 'rxjs/operators';\r\n\r\nimport { MessageService } from '@igo2/core';\r\nimport type { IgoMap } from '@igo2/geo';\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 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 <mat-icon svgIcon=\"star\"></mat-icon>\r\n </button>\r\n</div>\r\n","import { Component } from '@angular/core';\r\nimport { MatDialogRef } from '@angular/material/dialog';\r\n\r\n@Component({\r\n selector: 'igo-poi-dialog',\r\n templateUrl: './poi-dialog.component.html'\r\n})\r\nexport class PoiDialogComponent {\r\n public title: string;\r\n\r\n constructor(public dialogRef: MatDialogRef<PoiDialogComponent>) {}\r\n}\r\n","<h1 mat-dialog-title class=\"mat-typography\">{{ 'igo.context.poiButton.dialog.title' | translate }}</h1>\r\n<div mat-dialog-content>\r\n <mat-form-field>\r\n <input matInput required autocomplete=\"off\"\r\n [placeholder]=\"'igo.context.poiButton.dialog.placeholder' | translate\"\r\n [(ngModel)]=\"title\">\r\n </mat-form-field>\r\n</div>\r\n<div mat-dialog-actions>\r\n <button mat-button color=\"primary\"\r\n [disabled]=\"!title\"\r\n (click)=\"dialogRef.close(title)\">\r\n {{'igo.common.confirmDialog.confirmBtn' | translate}}\r\n </button>\r\n <button mat-button\r\n (click)=\"dialogRef.close(false)\">\r\n {{'igo.common.confirmDialog.cancelBtn' | translate}}\r\n </button>\r\n</div>\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable, EMPTY } from 'rxjs';\r\n\r\nimport { ConfigService } from '@igo2/core';\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(private http: HttpClient, private config: ConfigService) {\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 [placeholder]=\"'igo.context.poiButton.placeholder' | translate\"\r\n floatPlaceholder=\"never\">\r\n\r\n <mat-option (click)=\"createPoi()\">\r\n <div class=\"titlePoi\">{{ 'igo.context.poiButton.create' | translate }}</div>\r\n <button igoStopPropagation class=\"addPoi buttonPoi\"\r\n mat-icon-button\r\n color=\"primary\"\r\n (click)=\"createPoi()\">\r\n <mat-icon svgIcon=\"plus-circle\"></mat-icon>\r\n </button>\r\n </mat-option>\r\n <mat-option *ngFor=\"let poi of pois\" [value]=\"poi.id\" (click)=\"zoomOnPoi(poi.id)\">\r\n <div class=\"titlePoi\">{{ poi.title }}</div>\r\n <button igoStopPropagation class=\"deletePoi buttonPoi\"\r\n mat-icon-button\r\n color=\"warn\"\r\n (click)=\"deletePoi(poi)\">\r\n <mat-icon svgIcon=\"delete\"></mat-icon>\r\n </button>\r\n </mat-option>\r\n</mat-select>\r\n","import { Component, Input, OnInit, OnDestroy } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { Subscription } from 'rxjs';\r\nimport { take } from 'rxjs/operators';\r\n\r\nimport * as olproj from 'ol/proj';\r\nimport * as oleasing from 'ol/easing';\r\nimport olPoint from 'ol/geom/Point';\r\n\r\nimport { MessageService, LanguageService } from '@igo2/core';\r\nimport { ConfirmDialogService } from '@igo2/common';\r\nimport { AuthService } from '@igo2/auth';\r\nimport type { IgoMap } from '@igo2/geo';\r\n\r\nimport { PoiService } from './shared/poi.service';\r\nimport { Poi } from './shared/poi.interface';\r\nimport { PoiDialogComponent } from './poi-dialog.component';\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(this.languageService.translate.instant('igo.context.poiButton.dialog.confirmDelete'))\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 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.get().pipe(take(1)).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 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 { Component } from '@angular/core';\r\nimport { MatDialogRef } from '@angular/material/dialog';\r\n\r\nimport { StorageService } from '@igo2/core';\r\nimport { AuthService } from '@igo2/auth';\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\">{{'igo.context.userButton.infoTitle' | translate}}</h1>\r\n<div mat-dialog-content class=\"mat-typography\">\r\n <p>{{'igo.context.userButton.dialog.user' | translate}}: {{user.sourceId}}</p>\r\n <p>{{'igo.context.userButton.dialog.email' | translate}}: {{user.email}}</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\"\r\n (click)=\"dialogRef.close(false)\">\r\n OK\r\n </button>\r\n</div>\r\n","import {\r\n trigger,\r\n state,\r\n style,\r\n transition,\r\n animate,\r\n AnimationTriggerMetadata\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","<div *ngIf=\"visible\" class=\"igo-user-button-container\">\r\n <div class=\"igo-user-button-more-container\" [@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 <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 <mat-icon svgIcon=\"power\"></mat-icon>\r\n </button>\r\n\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 <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 { ConfigService } from '@igo2/core';\r\nimport { AuthService } from '@igo2/auth';\r\nimport type { IgoMap } from '@igo2/geo';\r\n\r\nimport { UserDialogComponent } from './user-dialog.component';\r\nimport { userButtonSlideInOut } from './user-button.animation';\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 { NgModule, ModuleWithProviders } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\nimport { MatButtonModule } from '@angular/material/button';\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 { MatSelectModule } from '@angular/material/select';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\n\r\nimport { IgoLanguageModule } from '@igo2/core';\r\nimport { IgoConfirmDialogModule, IgoStopPropagationModule } from '@igo2/common';\r\nimport { IgoAuthModule } from '@igo2/auth';\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 { UserDialogComponent } from './user-button/user-dialog.component';\r\nimport { UserButtonComponent } from './user-button/user-button.component';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n IgoLanguageModule,\r\n IgoConfirmDialogModule,\r\n IgoStopPropagationModule,\r\n IgoAuthModule,\r\n FormsModule,\r\n MatIconModule,\r\n MatButtonModule,\r\n MatSelectModule,\r\n MatOptionModule,\r\n MatTooltipModule,\r\n MatFormFieldModule,\r\n MatDialogModule,\r\n MatInputModule\r\n ],\r\n exports: [BookmarkButtonComponent, PoiButtonComponent, UserButtonComponent, BookmarkDialogComponent],\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 { NgModule, ModuleWithProviders } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\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 { IgoLanguageModule } from '@igo2/core';\r\nimport {\r\n IgoListModule,\r\n IgoKeyValueModule,\r\n IgoCollapsibleModule,\r\n IgoStopPropagationModule,\r\n IgoActionbarModule\r\n} from '@igo2/common';\r\n\r\nimport { MapContextDirective } from './shared/map-context.directive';\r\nimport { LayerContextDirective } from './shared/layer-context.directive';\r\nimport { ContextListComponent } from './context-list/context-list.component';\r\nimport { ContextListBindingDirective } from './context-list/context-list-binding.directive';\r\nimport { ContextItemComponent } from './context-item/context-item.component';\r\nimport { ContextFormComponent } from './context-form/context-form.component';\r\nimport { ContextEditComponent } from './context-edit/context-edit.component';\r\nimport { ContextEditBindingDirective } from './context-edit/context-edit-binding.directive';\r\nimport { ContextPermissionsComponent } from './context-permissions/context-permissions.component';\r\nimport { ContextPermissionsBindingDirective } from './context-permissions/context-permissions-binding.directive';\r\nimport { IgoContextMapButtonModule } from '../context-map-button/context-map-button.module';\r\nimport { IgoContextImportExportModule } from '../context-import-export/context-import-export.module';\r\n\r\nconst CONTEXT_DIRECTIVES = [\r\n MapContextDirective,\r\n LayerContextDirective\r\n];\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\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=${formValues.uri}&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(lay => lay.visible && !lay.isIgoInternalLayer);\r\n const invisibleLayers = layers.filter(lay => !lay.visible && !lay.isIgoInternalLayer);\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 ( typeof contextLayer.id !== 'undefined' || typeof contextLayer.source !== 'undefined' ) {\r\n contextLayersID.push(contextLayer.id || contextLayer.source.id);\r\n }\r\n }\r\n\r\n const addedLayersQueryParamsWms = this.makeLayersByService(layers, contextLayersID, 'wms');\r\n const addedLayersQueryParamsWmts = this.makeLayersByService(layers, contextLayersID, 'wmts');\r\n const addedLayersQueryParamsArcgisRest = this.makeLayersByService(layers, contextLayersID, 'arcgisrest');\r\n const addedLayersQueryParamsImageArcgisRest = this.makeLayersByService(layers, contextLayersID, 'imagearcgisrest');\r\n const addedLayersQueryParamsTileArcgisRest = this.makeLayersByService(layers, contextLayersID, 'tilearcgisrest');\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(layers: Layer[], contextLayersID: any[], typeService: string): string {\r\n\r\n const addedLayersByService = [];\r\n for (const layer of layers.filter(l => l.dataSource.options?.type === typeService)) {\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.options as WMSDataSourceOptions;\r\n addedLayer = encodeURIComponent(datasourceOptions.params.LAYERS);\r\n layerVersion = datasourceOptions.params.VERSION === '1.3.0' ? layerVersion : 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((layer.dataSource.options as any).layer);\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 = (layer.dataSource.options as any).url.indexOf('?') === -1 ? '?' : '&';\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","<div class=\"igo-input-container linkToShare\">\r\n <mat-form-field>\r\n <textarea #textArea matInput readonly rows=\"3\"\r\n [placeholder]=\"'igo.context.shareMap.placeholderLink' | translate\"\r\n [value]=\"url\"></textarea>\r\n </mat-form-field>\r\n\r\n <div class=\"igo-form-button-group\">\r\n <button\r\n mat-raised-button\r\n (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 *ngIf=\"('igo.context.shareMap.htmlClarifications' | translate)===''\">\r\n <h4 *ngIf=\"('igo.context.shareMap.included' | translate)!==''\">{{'igo.context.shareMap.included' | translate}}</h4>\r\n <ul>\r\n <li *ngIf=\"('igo.context.shareMap.context' | translate)!==''\">{{'igo.context.shareMap.context' | translate}}</li>\r\n <li *ngIf=\"('igo.context.shareMap.center' | translate)!==''\">{{'igo.context.shareMap.center' | translate}}</li>\r\n <li *ngIf=\"('igo.context.shareMap.zoom' | translate)!==''\">{{'igo.context.shareMap.zoom' | translate}}</li>\r\n <li *ngIf=\"('igo.context.shareMap.addedLayers' | translate)!==''\">{{'igo.context.shareMap.addedLayers' | translate}}</li>\r\n <li *ngIf=\"('igo.context.shareMap.visibleInvisible' | translate)!==''\">{{'igo.context.shareMap.visibleInvisible' | translate}}</li>\r\n </ul>\r\n\r\n <h4 *ngIf=\"('igo.context.shareMap.excluded' | translate)!==''\">{{'igo.context.shareMap.excluded' | translate}}</h4>\r\n <ul>\r\n <li *ngIf=\"('igo.context.shareMap.order' | translate)!==''\">{{'igo.context.shareMap.order' | translate}}</li>\r\n <li *ngIf=\"('igo.context.shareMap.opacity' | translate)!==''\">{{'igo.context.shareMap.opacity' | translate}}</li>\r\n <li *ngIf=\"('igo.context.shareMap.filterOgc' | translate)!==''\">{{'igo.context.shareMap.filterOgc' | translate}}</li>\r\n <li *ngIf=\"('igo.context.shareMap.filterTime' | translate)!==''\">{{'igo.context.shareMap.filterTime' | translate}}</li>\r\n </ul>\r\n </div>\r\n <igo-custom-html class=\"shareCustomPadding\" *ngIf=\"('igo.context.shareMap.htmlClarifications' | translate)!==''\" class=\"mat-typography\"\r\n [html]=\"('igo.context.shareMap.htmlClarifications' | translate)\">\r\n </igo-custom-html>\r\n </section>\r\n </div>\r\n</div>\r\n","import { AfterViewInit, Component, Input, OnInit, ChangeDetectorRef, OnDestroy } from '@angular/core';\r\n\r\nimport { Clipboard } from '@igo2/utils';\r\nimport { MessageService } from '@igo2/core';\r\nimport type { IgoMap } from '@igo2/geo';\r\n\r\nimport { ShareMapService } from '../shared/share-map.service';\r\nimport { combineLatest, Subscription } from 'rxjs';\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$]).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(this.map, this.publicShareOption);\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","<form class=\"igo-form\" [formGroup]=\"form\"\r\n (ngSubmit)=\"createUrl(form.value)\">\r\n\r\n <div class=\"igo-input-container\">\r\n <mat-form-field>\r\n <input matInput required\r\n [placeholder]=\"'igo.context.contextManager.form.title' | translate\"\r\n formControlName=\"title\">\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 matInput required\r\n [readonly]=\"!userId\"\r\n [placeholder]=\"'igo.context.contextManager.form.uri' | translate\"\r\n formControlName=\"uri\">\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 *ngIf=\"!url\"\r\n mat-raised-button\r\n type=\"submit\"\r\n [disabled]=\"!form.valid\">\r\n {{ 'igo.context.shareMap.button' | translate }}\r\n </button>\r\n <button *ngIf=\"url\"\r\n mat-raised-button\r\n type=\"button\"\r\n (click)=\"updateContextShared(form.value)\">\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 #textArea matInput readonly rows=\"3\"\r\n class=\"textAreaWithButton\"\r\n [placeholder]=\"'igo.context.shareMap.placeholderLink' | translate\"\r\n [value]=\"url\"></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 <mat-icon svgIcon=\"content-copy\"></mat-icon>\r\n </button>\r\n </mat-form-field>\r\n<div>\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms';\r\n\r\nimport { uuid, Clipboard } from '@igo2/utils';\r\nimport { MessageService, LanguageService } from '@igo2/core';\r\nimport { AuthService } from '@igo2/auth';\r\nimport type { IgoMap } from '@igo2/geo';\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 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.updateContextShared(this.map, inputs, this.idContextShared).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 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 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","<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\r\n @Input() map: IgoMap;\r\n\r\n public hasApi = false;\r\n\r\n constructor(\r\n private config: ConfigService\r\n ) {\r\n this.hasApi = this.config.getConfig('context.url') ? true : false;\r\n }\r\n}\r\n","import { NgModule, ModuleWithProviders } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\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 { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { MatTabsModule } from '@angular/material/tabs';\r\n\r\nimport { IgoLanguageModule } from '@igo2/core';\r\n\r\nimport { ShareMapComponent } from './share-map/share-map.component';\r\nimport { ShareMapUrlComponent } from './share-map/share-map-url.component';\r\nimport { ShareMapApiComponent } from './share-map/share-map-api.component';\r\nimport { IgoCustomHtmlModule } from '@igo2/common';\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\r\n #sidenav\r\n igoSidenavShim\r\n mode=\"side\"\r\n [opened]=\"opened\">\r\n\r\n <div class=\"igo-sidenav-content\">\r\n\r\n <igo-flexible\r\n #topPanel\r\n initial=\"50%\" 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 <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 <mat-icon svgIcon=\"menu\"></mat-icon>\r\n </button>\r\n\r\n </igo-panel>\r\n </div>\r\n\r\n <div igoFlexibleFill class=\"igo-content\">\r\n <igo-panel\r\n [title]=\"featureTitle\"\r\n *ngIf=\"feature && media !== 'mobile'\">\r\n\r\n <button\r\n mat-icon-button\r\n panelLeftButton\r\n class=\"igo-icon-button\"\r\n (click)=\"toggleTopPanel()\">\r\n <mat-icon [svgIcon]=\"['collapsed', 'initial'].indexOf(topPanel.state) >= 0 ? 'arrow_downward' : 'arrow_upward'\"></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 <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 </igo-feature-details>\r\n </igo-panel>\r\n </div>\r\n\r\n </igo-flexible>\r\n\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 type { Media } from '@igo2/core';\r\nimport { FlexibleState, Tool, getEntityTitle } from '@igo2/common';\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 = this.titleService.getTitle();\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\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.projection\r\n });\r\n moveToOlFeatures(this.map, [olFeature], FeatureMotion.Zoom);\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}\r\n","import { NgModule, ModuleWithProviders } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\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 { IgoLanguageModule } from '@igo2/core';\r\nimport { IgoPanelModule, IgoFlexibleModule } from '@igo2/common';\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 { NgModule, ModuleWithProviders } 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/share-map';\r\nexport * from './lib/sidenav';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1","i4","_c0","i1.ContextImportService","i2.ContextExportService","i5.ContextService","i2.ContextService","i2","i3","i1.ContextListComponent","i5","i6","i1.ContextEditComponent","i1.ContextPermissionsComponent","i3.PoiService","i1.ContextService","i2.ShareMapService","i3.ShareMapService","olFormatGeoJSON"],"mappings":"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"}