{"version":3,"file":"hslayers-ng-types.mjs","sources":["../../../projects/hslayers/types/endpoint.interface.ts","../../../projects/hslayers/types/layman/status-state.type.ts","../../../projects/hslayers/types/layman/get-layers.interface.ts","../../../projects/hslayers/types/add-data/models/layer-descriptor.model.ts","../../../projects/hslayers/types/add-data/url.type.ts","../../../projects/hslayers/types/add-data/services-supported.const.ts","../../../projects/hslayers/types/add-data/overwrite-response.ts","../../../projects/hslayers/types/add-data/vector/vector-layer-descriptor.ts","../../../projects/hslayers/types/add-data/vector/vector-source-from-url.ts","../../../projects/hslayers/types/add-data/vector/vector-source-descriptor.ts","../../../projects/hslayers/types/add-data/file/file.type.ts","../../../projects/hslayers/types/compositions/map-composition.type.ts","../../../projects/hslayers/types/query/widgets.type.ts","../../../projects/hslayers/types/hslayers-ng-types.ts"],"sourcesContent":["import {HsAddDataLayerDescriptor} from './add-data/models/layer-descriptor.model';\nimport {HsMapCompositionDescriptor} from './compositions/composition-descriptor.model';\n\nexport enum EndpointErrorHandling {\n  ignore = 'ignore',\n  toast = 'toast',\n}\n\nexport interface EndpointErrorHandler {\n  // eslint-disable-next-line no-use-before-define\n  handle(endpoint: HsEndpoint, error: any);\n}\n\nexport interface HsEndpoint {\n  httpCall?: any;\n  type: string;\n  title: string;\n  url: string;\n  download?: boolean;\n  language?;\n  listLoading?;\n  loading?: boolean;\n  layers?: HsAddDataLayerDescriptor[];\n  code_list_url?: string;\n  code_lists?;\n  version?: string;\n  datasourcePaging?: {\n    start?: number;\n    limit: number;\n    loaded?: boolean;\n    matched?;\n    next?;\n  };\n  compositions?: HsMapCompositionDescriptor[];\n  compositionsPaging?: {\n    start?: number;\n    limit: number;\n    next?;\n    matched?;\n    loaded?: boolean;\n  };\n  paging?: {\n    itemsPerPage: number;\n  };\n  /**\n   * Examples:\n   *  onError: \\{compositionLoad: \\{handle: (e)=\\>\\{alert(e.message)\\}\\}\\},\n   *  onError: onError: \\{compositionLoad: EndpointErrorHandling.ignore\\},\n   *  onError: onError: \\{compositionLoad: EndpointErrorHandling.toast\\}, //Default\n   */\n  onError?: {\n    compositionLoad?: EndpointErrorHandling | EndpointErrorHandler;\n    addDataCatalogueLoad?: EndpointErrorHandling | EndpointErrorHandler;\n  };\n}\n\nfunction isErrorHandlerFunction(object: any): object is EndpointErrorHandler {\n  if (typeof object == 'string' || object === undefined) {\n    return false;\n  }\n  return 'handle' in object;\n}\n\nexport {isErrorHandlerFunction};\n","export const STATE_VALUES = [\n  'PENDING',\n  'STARTED',\n  'FAILURE',\n  'NOT_AVAILABLE',\n] as const;\n\n/**\n * Status information about GeoServer import and availability of WMS layer. No status object means the source is available.\n */\nexport type StatusStateType = (typeof STATE_VALUES)[number];\n","import {HsLaymanLayerBase} from './layman-layer-base.interface';\n\nexport enum HsLaymanGetLayerWfsWmsStatus {\n  AVAILABLE = 'AVAILABLE',\n  PREPARING = 'PREPARING',\n  NOT_AVAILABLE = 'NOT_AVAILABLE',\n}\n\n/**\n * Layer type for GET /layers response object\n * Extends base properties using HsLaymanLayerBase\n */\nexport interface HsLaymanGetLayer extends HsLaymanLayerBase {\n  workspace?: string;\n  publication_type?: string;\n  wfs_wms_status?: HsLaymanGetLayerWfsWmsStatus;\n}\n","import {HsLaymanLayerDescriptor} from '../../layman/layman-layer-descriptor.interface';\nimport {HsEndpoint} from '../../endpoint.interface';\nimport {\n  HsLaymanGetLayer,\n  HsLaymanGetLayerWfsWmsStatus,\n} from '../../layman/get-layers.interface';\n\nexport interface HsAddLayerDescriptorCommon {\n  highlighted?: boolean;\n  toRemove?: boolean;\n  editable?: boolean;\n  endpoint?: HsEndpoint;\n  availableTypes?: string[];\n  bbox?: number[];\n  wfsWmsStatus?: HsLaymanGetLayerWfsWmsStatus;\n  featureId?: string;\n  id?: string;\n  type?: string[];\n}\n\n/**\n * HSLayers Add Data layer descriptor\n * Consists of uninon of various stages of Layman layer desriptions\n * - when loaded into add-data catalogue list\n */\nexport type HsAddDataLaymanLayerDescriptor = HsLaymanLayerDescriptor &\n  HsLaymanGetLayer &\n  HsAddLayerDescriptorCommon;\n\nexport interface HsAddDataMickaLayerDescriptor\n  extends HsAddLayerDescriptorCommon {\n  abstract: string;\n  contacts: any[];\n  dateStamp: string;\n  dates: {date: string; dateType: string}[];\n  degree: any;\n  imgURL: string;\n  keywords: string[];\n  links: any; //TODO: property types - string[];\n  scales: string[];\n  title: string;\n\n  name: string;\n  trida: string;\n\n  serviceType: string;\n  formats: string[];\n  thumbnail: {\n    path: string;\n    url: string;\n  };\n  mayedit: string;\n  public: string;\n}\n\nexport type HsAddDataLayerDescriptor =\n  | HsAddDataLaymanLayerDescriptor\n  | HsAddDataMickaLayerDescriptor;\n\n/**\nWHAT ABOUT THESE??\nuseTiles: boolean;\nfeatureId?: string;\n */\n","import {SERVICES_SUPPORTED_BY_URL} from './services-supported.const';\n\nexport type AddDataUrlType = (typeof SERVICES_SUPPORTED_BY_URL)[number];\n//https://stackoverflow.com/questions/40863488/how-can-i-iterate-over-a-custom-literal-type-in-typescript\n","export const SERVICES_SUPPORTED_BY_URL = [\n  'wms',\n  'wfs',\n  'wmts',\n  'kml',\n  'gpx',\n  'geojson',\n  'arcgis',\n  'geosparql',\n  'xyz',\n] as const;\n","export enum OverwriteResponse {\n  cancel = 'cancel',\n  add = 'add',\n  overwrite = 'overwrite',\n}\n","import {Vector as VectorSource} from 'ol/source';\n\nimport {AccessRightsModel} from '../../access-rights.model';\nimport {HsVectorLayerOptions} from './vector-layer-options.type';\n\nexport class VectorLayerDescriptor {\n  mapProjection;\n  layerParams: {\n    abstract: any;\n    definition: any;\n    name: any;\n    title: any;\n    opacity: any;\n    fromComposition: boolean;\n    style: any;\n    source?: VectorSource;\n    removable?: boolean;\n    path: string;\n    visible: boolean;\n    workspace: string;\n    access_rights: AccessRightsModel;\n    queryCapabilities: boolean;\n    sld: string;\n    qml: string;\n    minResolution?: number;\n    maxResolution?: number;\n  };\n\n  constructor(\n    type: string,\n    name,\n    title,\n    abstract,\n    url: string,\n    options: HsVectorLayerOptions,\n    mapProjection,\n  ) {\n    /**\n     * Artificial object which is used when layer is saved to composition.\n     * It describes format (ol.format.KML)\n     */\n    const definition: {format?: string; url?: string} = {};\n\n    this.mapProjection = mapProjection;\n\n    this.layerParams = {\n      abstract,\n      definition,\n      name,\n      title,\n      opacity: options.opacity ?? 1,\n      fromComposition: options.fromComposition || false,\n      removable: true,\n      path: options.path,\n      visible: options.visible,\n      workspace: options.workspace,\n      access_rights: options.access_rights,\n      queryCapabilities: options.queryCapabilities,\n      sld: options.sld,\n      qml: options.qml,\n      style: options.style,\n    };\n\n    if (options.minResolution) {\n      this.layerParams.minResolution = options.minResolution;\n    }\n    if (options.maxResolution) {\n      this.layerParams.maxResolution = options.maxResolution;\n    }\n\n    switch (type ? type.toLowerCase() : '') {\n      case 'kml':\n        definition.format = 'KML';\n        definition.url = url;\n        break;\n      case 'geojson':\n        definition.format = 'GeoJSON';\n        definition.url = url;\n        break;\n      case 'gpx':\n        definition.format = 'GPX';\n        definition.url = url;\n        break;\n      case 'sparql':\n        definition.format = 'Sparql';\n        break;\n      case 'wfs':\n        Object.assign(this.layerParams, {\n          editor: {\n            editable: true,\n            defaultAttributes: {\n              name: title,\n            },\n          },\n        });\n        break;\n      default:\n    }\n  }\n}\n","import * as loadingStrategy from 'ol/loadingstrategy';\nimport {Feature} from 'ol';\nimport {Geometry} from 'ol/geom';\nimport {Vector as VectorSource} from 'ol/source';\nimport {get as getProj} from 'ol/proj';\n\nexport class VectorSourceFromUrl extends VectorSource {\n  featureProjection: any;\n  mapProjection: any;\n  error: boolean;\n  errorMessage: any;\n  constructor(descriptor: any) {\n    super({\n      format: descriptor.sourceParams.format,\n      url: descriptor.sourceParams.url,\n      strategy: loadingStrategy.all,\n    });\n    this.featureProjection = getProj(descriptor.sourceParams.srs);\n    this.mapProjection = descriptor.mapProjection;\n    super.set('extractStyles', descriptor.sourceParams.extractStyles);\n    super.setLoader(this.loaderFunction);\n  }\n\n  async loaderFunction(extent, resolution, projection): Promise<void> {\n    try {\n      super.set('loaded', false);\n      const response = await fetch(super.getUrl() as any);\n\n      let data: any = await response.text();\n      if (data.type == 'GeometryCollection') {\n        const temp = {\n          type: 'Feature',\n          geometry: data,\n        };\n        data = temp;\n      }\n      super.addFeatures(\n        super.getFormat().readFeatures(data, {\n          dataProjection: this.featureProjection,\n          featureProjection: this.mapProjection,\n        }) as Feature<Geometry>[],\n      );\n\n      super.set('loaded', true);\n    } catch (err) {\n      this.error = true;\n      this.errorMessage = err.status;\n      super.set('loaded', true);\n    }\n  }\n}\n","import {Feature} from 'ol';\nimport {Geometry} from 'ol/geom';\nimport {Vector as VectorSource} from 'ol/source';\n\nimport {HsVectorLayerOptions} from './vector-layer-options.type';\nimport {SparqlJson} from 'hslayers-ng/common/layers';\nimport {VectorSourceFromUrl} from './vector-source-from-url';\n\nexport class VectorSourceDescriptor {\n  mapProjection;\n  sourceParams: {\n    extractStyles?: any;\n    fromComposition?: boolean;\n    srs?: any;\n    url?: string;\n    endpointUrl?: string;\n    query?: string;\n    optimization?: string;\n    format?: any;\n    geomAttribute?: string;\n    idAttribute?: string;\n    options?: HsVectorLayerOptions;\n    category_field?: string;\n    projection?: any;\n    minResolution?: number;\n    maxResolution?: number;\n    features?: Feature<Geometry>[];\n  };\n  sourceClass:\n    | typeof VectorSourceFromUrl\n    | typeof SparqlJson\n    | typeof VectorSource;\n\n  constructor() {}\n\n  /**\n   * Construction method which replaces constructor method in order to allow async.\n   * Should be called after common class initiation new VectorSourceDescriptor()\n   */\n  async init(\n    type: string,\n    url: string,\n    srs,\n    options: HsVectorLayerOptions,\n    mapProjection,\n  ) {\n    this.mapProjection = mapProjection;\n\n    this.sourceParams = {\n      fromComposition: options.fromComposition || false,\n      srs,\n    };\n\n    const handlers = {\n      'kml': async () => {\n        const {default: KML} = await import('ol/format/KML');\n        this.sourceParams.url = url;\n        this.sourceParams.format = new KML({\n          extractStyles: options.extractStyles,\n        });\n        this.sourceClass = VectorSourceFromUrl;\n      },\n      'geojson': async () => {\n        const {default: GeoJSON} = await import('ol/format/GeoJSON');\n        this.sourceParams.url = url;\n        this.sourceParams.format = new GeoJSON();\n        this.sourceClass = VectorSourceFromUrl;\n      },\n      'gpx': async () => {\n        const {default: GPX} = await import('ol/format/GPX');\n        this.sourceParams.url = url;\n        this.sourceParams.format = new GPX();\n        this.sourceClass = VectorSourceFromUrl;\n      },\n      'sparql': async () => {\n        this.sourceParams = {\n          geomAttribute: options.geomAttribute ?? '?geom',\n          idAttribute: options.idAttribute,\n          url: url.includes('=') ? url : null,\n          endpointUrl: url,\n          query: options.query,\n          category_field:\n            url.includes('foodie-cloud') || url.includes('plan4all')\n              ? 'http://www.openvoc.eu/poi#categoryWaze'\n              : null,\n          optimization: url.includes('wikidata') ? 'wikibase' : undefined,\n          projection: 'EPSG:3857',\n          minResolution: 1,\n          maxResolution: 38,\n        };\n        this.sourceClass = SparqlJson;\n      },\n      'wfs': async () => {\n        this.sourceClass = VectorSource;\n      },\n      'default': async () => {\n        const {default: GeoJSON} = await import('ol/format/GeoJSON');\n        this.sourceClass = VectorSource;\n        const format = new GeoJSON();\n        let features = options.features || [];\n        if (typeof features === 'string') {\n          features = format.readFeatures(options.features, {\n            dataProjection: srs,\n            featureProjection: this.mapProjection,\n          });\n        }\n        this.sourceParams = {\n          srs,\n          options,\n          features,\n        };\n      },\n    };\n\n    const handler = handlers[type?.toLowerCase()] || handlers['default'];\n    await handler.call(this);\n  }\n}\n","export const FILES_SUPPORTED = [\n  'kml',\n  'gpx',\n  'geojson',\n  'shp',\n  'raster',\n  'raster-ts',\n] as const;\nexport type AddDataFileType = (typeof FILES_SUPPORTED)[number];\n//https://stackoverflow.com/questions/40863488/how-can-i-iterate-over-a-custom-literal-type-in-typescript\n","import {HslayersLayerJSON} from './layer-json.type';\n\nexport const COMPOSITION_VERSION = '3.0.0' as const;\n\nexport interface TheUserSchema {\n  email?: string;\n  name?: string;\n}\n/**\n * Metadata contact of the organisation responsible for the creation and maintenance of the metadata\n */\nexport interface PointOfContact {\n  person?: string;\n  organization: string;\n  address?: string;\n  city?: string;\n  postalCode?: string;\n  country?: string;\n  phone?: string;\n  email?: string;\n  www?: string;\n}\n\n/**\n * The organisation responsible for the creation and maintenance of the metadata\n */\nexport interface ResponsibleOrganization {\n  name: string;\n  person?: string;\n  address?: string;\n  city?: string;\n  postalCode?: string;\n  country?: string;\n  phone?: string;\n  email?: string;\n  www?: string;\n}\n\nexport type CurrentBaseLayer = {\n  title: string;\n};\n\nexport type MapComposition = {\n  describedBy?: string;\n  schema_version?: string;\n  abstract?: string;\n  name?: string;\n  title?: string;\n  extent?: number[];\n  nativeExtent?: number[];\n  user?: TheUserSchema;\n  contact?: PointOfContact;\n  organization: ResponsibleOrganization;\n  scale?: number;\n  projection?: string;\n  center?: number[];\n  units?: string;\n  layers?: HslayersLayerJSON[];\n  current_base_layer?: CurrentBaseLayer;\n\n  /**\n   * HSL ONLY\n   */\n  keywords?: string;\n};\n","export const QUERY_POPUP_WIDGETS = [\n  'layer-name',\n  'feature-info',\n  'clear-layer',\n] as const;\nexport type QueryPopupWidgetsType = (typeof QUERY_POPUP_WIDGETS)[number];\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["VectorSource","getProj"],"mappings":"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"}