{"version":3,"file":"mainMap.bundle.min.js","mappings":"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UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;UACA;;UAEA;UACA;;;;;WCzBA;WACA;WACA;WACA;WACA,+BAA+B,wCAAwC;WACvE;WACA;WACA;WACA;WACA,iBAAiB,qBAAqB;WACtC;WACA;WACA,kBAAkB,qBAAqB;WACvC;WACA;WACA,KAAK;WACL;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;;;;;WC3BA;WACA;WACA;WACA;WACA;WACA,iCAAiC,WAAW;WAC5C;WACA;;;;;WCPA;WACA;WACA;WACA;WACA,yCAAyC,wCAAwC;WACjF;WACA;WACA;;;;;WCPA;WACA;WACA;WACA;WACA,GAAG;WACH;WACA;WACA,CAAC;;;;;WCPD;;;;;WCAA;WACA;WACA;WACA,uDAAuD,iBAAiB;WACxE;WACA,gDAAgD,aAAa;WAC7D;;;;;WCNA;;WAEA;WACA;WACA;WACA;WACA;WACA;;WAEA;;WAEA;;WAEA;;WAEA;;WAEA;;WAEA;;WAEA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA,MAAM,qBAAqB;WAC3B;WACA;WACA;WACA;WACA;WACA;WACA;WACA;;WAEA;WACA;WACA;;;;;UEhDA;UACA;UACA;UACA;UACA","sources":["webpack://app/./wwwroot/css/bootstrap-slider.min.css","webpack://app/./wwwroot/css/ol.css","webpack://app/./wwwroot/css/ol3-contextmenu.css","webpack://app/./Scripts/Layers/ClientBaseLayerFactory.ts","webpack://app/./Scripts/Layers/Client/Buckinghamshire_BaseLayers.ts","webpack://app/./Scripts/Layers/Client/Cheshire_BaseLayers.ts","webpack://app/./Scripts/Layers/Client/Merseyside_BaseLayers.ts","webpack://app/./Scripts/Layers/Client/SouthYorkshire_BaseLayers.ts","webpack://app/./Scripts/Layers/LhlpBaseLayerFactory.ts","webpack://app/./Scripts/Layers/TenantSettingsBaseLayerResolver.ts","webpack://app/./Scripts/MainMap.ts","webpack://app/./Scripts/MapBase.ts","webpack://app/./Scripts/TextPackLoader.ts","webpack://app/./Scripts/config/DefaultLayerConfigurationFactory.ts","webpack://app/./Scripts/config/DefaultMapOptions.ts","webpack://app/./Scripts/contextmenu/LhlpMapContextMenu.ts","webpack://app/./Scripts/defs/LhlpMapConfig.ts","webpack://app/./Scripts/defs/LhlpRecordType.ts","webpack://app/./Scripts/defs/LhlpTenantSettings.ts","webpack://app/./Scripts/defs/LhlpUser.ts","webpack://app/./Scripts/defs/MapSettings.ts","webpack://app/./Scripts/gazetteer/LhlpGazetteer.ts","webpack://app/./Scripts/gazetteer/LhlpGazetteerBase.ts","webpack://app/./Scripts/loaders/FilteredGeoJsonFeatureLoader.ts","webpack://app/./Scripts/resources/LhlpMapListRecordItem.ts","webpack://app/./Scripts/resources/LhlpRecordTypeResource.ts","webpack://app/./Scripts/resources/LhlpResourceFactory.ts","webpack://app/./Scripts/style/LhlpStyleFactory.ts","webpack://app/webpack/bootstrap","webpack://app/webpack/runtime/chunk loaded","webpack://app/webpack/runtime/compat get default export","webpack://app/webpack/runtime/define property getters","webpack://app/webpack/runtime/global","webpack://app/webpack/runtime/hasOwnProperty shorthand","webpack://app/webpack/runtime/make namespace object","webpack://app/webpack/runtime/jsonp chunk loading","webpack://app/webpack/before-startup","webpack://app/webpack/startup","webpack://app/webpack/after-startup"],"sourcesContent":["// extracted by mini-css-extract-plugin\nexport {};","// extracted by mini-css-extract-plugin\nexport {};","// extracted by mini-css-extract-plugin\nexport {};","import { \r\n BaseLayerFactory_3857,\r\n BaseLayerType\r\n} from \"esdm-map\";\r\nimport { IBaseLayer } from \"esdm-map/dist/baselayers/interfaces/IBaseLayer\";\r\nimport { Buckinghamshire_BaseLayers } from \"./Client/Buckinghamshire_BaseLayers\";\r\nimport { Cheshire_BaseLayers } from \"./Client/Cheshire_BaseLayers\";\r\nimport { Merseyside_BaseLayers } from \"./Client/Merseyside_BaseLayers\";\r\nimport { SouthYorkshire_BaseLayers } from \"./Client/SouthYorkshire_BaseLayers\";\r\nimport { LhlpBaseLayers } from \"./LhlpBaseLayerFactory\";\r\n\r\n//Not needed for showing 27700 on 3857?\r\n//proj4.defs(\"EPSG:27700\", \"+proj=tmerc +lat_0=49 +lon_0=-2 +k=0.9996012717 +x_0=400000 +y_0=-100000 +ellps=airy +datum=OSGB36 +units=m +no_defs\");\r\n//register(proj4);\r\n//const proj27700 = getProjection('EPSG:27700');\r\n//proj27700.setExtent([0, 0, 700000, 1300000]);\r\n\r\nexport class ClientBaseLayerFactory extends BaseLayerFactory_3857 {\r\n\r\n private bucksBaseLayers = new Buckinghamshire_BaseLayers();\r\n private southYorkshireBaseLayers = new SouthYorkshire_BaseLayers();\r\n private cheshireBaseLayers = new Cheshire_BaseLayers();\r\n private merseysideBaseLayers = new Merseyside_BaseLayers();\r\n\r\n public GetBaseLayerByType(baseLayerType: BaseLayerType, bingApiKey: string = \"\", esdmApiKey: string = \"\"): IBaseLayer {\r\n\r\n switch (baseLayerType) {\r\n case LhlpBaseLayers.Buckinghamshire_OS:\r\n return this.bucksBaseLayers.GetBuckinghamshireOS();\r\n\r\n case LhlpBaseLayers.SouthYorkshire_OS:\r\n return this.southYorkshireBaseLayers.GetSouthYorkshireOS();\r\n\r\n case LhlpBaseLayers.Cheshire_OS:\r\n return this.cheshireBaseLayers.GetCheshireOS();\r\n\r\n case LhlpBaseLayers.Merseyside_OS:\r\n return this.merseysideBaseLayers.GetMerseysideOS();\r\n }\r\n\r\n\r\n return super.GetBaseLayerByType(baseLayerType, bingApiKey, esdmApiKey);\r\n } \r\n}","import {\r\n BaseLayer\r\n} from \"esdm-map\";\r\nimport { IBaseLayer } from \"esdm-map/dist/baselayers/interfaces/IBaseLayer\";\r\n\r\nimport TileLayer from 'ol/layer/Tile';\r\nimport WMTS from 'ol/source/WMTS';\r\nimport WMTSTileGrid from 'ol/tilegrid/WMTS';\r\n\r\n\r\nexport class Buckinghamshire_BaseLayers{\r\n\r\n public GetBuckinghamshireOS(): IBaseLayer {\r\n\r\n let lyr = new TileLayer({\r\n visible: true,\r\n source: new WMTS({ \r\n url: \"/api/ogcservice/BuckinghamshireOS\",\r\n layer: 'Bucks_Basemapping',\r\n matrixSet: 'default028mm',\r\n format: 'image/png',\r\n projection: 'EPSG:27700',\r\n tileGrid: new WMTSTileGrid({\r\n origin: [-5220400, 4470200],\r\n resolutions: [264.58386250102507, 132.29193125051253, 66.14596562525627, 33.07298281262813, 16.933367200065604, 8.466683600032802, 4.233341800016401, 2.1166709000082005, 1.0583354500041002, 0.5291677250020501, 0.26458386250102506],\r\n matrixIds: [\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"10\"]\r\n }),\r\n style: 'default',\r\n wrapX: false,\r\n attributions: `OS mapping: © Crown copyright OS 0100062456. You are granted a non-exclusive, royalty free, revocable licence solely to view the Licensed Data for non-commercial purposes for the period during which Buckinghamshire Council makes it available. You are not permitted to copy, sub-license, distribute, sell or otherwise make available the Licensed Data to third parties in any form. Third party rights to enforce the terms of this licence shall be reserved to OS.`\r\n })\r\n });\r\n return new BaseLayer(\"BucksCustom\", \"Ordnance Survey\", lyr);\r\n }\r\n\r\n}","import {\r\n BaseLayer\r\n} from \"esdm-map\";\r\nimport { IBaseLayer } from \"esdm-map/dist/baselayers/interfaces/IBaseLayer\";\r\nimport TileLayer from 'ol/layer/Tile';\r\nimport WMTS from 'ol/source/WMTS';\r\nimport WMTSTileGrid from 'ol/tilegrid/WMTS';\r\n\r\nexport class Cheshire_BaseLayers{\r\n \r\n public GetCheshireOS(): IBaseLayer {\r\n let lyr = new TileLayer({\r\n visible: true,\r\n source: new WMTS({ \r\n //url: 'https://maps-cache.cheshiresharedservices.gov.uk/maps/?wmts/OS_AllBasemaps_COLOUR/{TileMatrixSet}/{TileMatrix}/{TileCol}/{TileRow}.jpeg&KEY=3b3f5c60eca1404ea114e6941c9d3845',\r\n url: '/api/ogcservice/CheshireOS/?wmts/OS_AllBasemaps_COLOUR/{TileMatrixSet}/{TileMatrix}/{TileCol}/{TileRow}.jpeg&KEY=3b3f5c60eca1404ea114e6941c9d3845',\r\n layer: 'OS_AllBasemaps_COLOUR',\r\n matrixSet: 'osc_grid',\r\n format: 'image/jpeg',\r\n projection: 'EPSG:27700',\r\n requestEncoding: 'REST',\r\n tileGrid: new WMTSTileGrid({ \r\n //extent: [-3276800, -3276800, 3276800, 3276800],\r\n origin: [-3276800.0, 3276800.0],\r\n resolutions: [1792.003584007169, 896.0017920035843, 448.0008960017922, 224.0004480008961, 112.000224000448, 56.000112000224014, 28.000056000111993, 14.000028000056004, 7.000014000028002, 2.8000056000112004, 1.4000028000056002, 0.7000014000028001, 0.35000070000140004, 0.14000028000056003],\r\n matrixIds: ['00', '01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12', '13']\r\n }), \r\n style: 'default',\r\n wrapX: false,\r\n attributions: `© Crown copyright and database rights 2021. Ordnance Survey 100049046. Terms & Conditions.`\r\n })\r\n });\r\n \r\n return new BaseLayer(\"CheshireCustom\", \"Ordnance Survey\", lyr);\r\n }\r\n}","import {\r\n BaseLayer\r\n} from \"esdm-map\";\r\nimport { IBaseLayer } from \"esdm-map/dist/baselayers/interfaces/IBaseLayer\";\r\nimport TileLayer from \"ol/layer/Tile\";\r\nimport WMTS from \"ol/source/WMTS\";\r\nimport WMTSTileGrid from \"ol/tilegrid/WMTS\";\r\n\r\nexport class Merseyside_BaseLayers{\r\n \r\n public GetMerseysideOS(): IBaseLayer {\r\n let lyr = new TileLayer({\r\n visible: true,\r\n source: new WMTS({ \r\n url: \"/api/ogcservice/MerseysideOS\",\r\n layer: \"Road 27700\",\r\n matrixSet: \"EPSG:27700\",\r\n format: \"image/png\",\r\n projection: \"EPSG:27700\",\r\n tileGrid: new WMTSTileGrid({\r\n origin: [-238375.0, 1376256.0],\r\n resolutions: [896, 448, 224, 112, 56, 28, 14, 7, 3.5, 1.75, 0.875, 0.4375, 0.21875, 0.109375],\r\n matrixIds: [\"EPSG:27700:0\", \"EPSG:27700:1\", \"EPSG:27700:2\", \"EPSG:27700:3\", \"EPSG:27700:4\", \"EPSG:27700:5\", \"EPSG:27700:6\", \"EPSG:27700:7\", \"EPSG:27700:8\", \"EPSG:27700:9\", \"EPSG:27700:10\", \"EPSG:27700:11\", \"EPSG:27700:12\", \"EPSG:27700:13\"]\r\n }),\r\n style: \"default\",\r\n wrapX: false,\r\n attributions: \"© Crown copyright and database rights 2021 OS 100018816. You are granted a non-exclusive, royalty free, revocable licence solely to view the licensed data for non-commercial purposes for the period during which Sheffield City Council makes it available. You are not permitted to copy, sub-license, distribute, sell or otherwise make available the licensed data to third parties in any form. Third party rights to enforce the terms of this licence shall be reserved to OS.\"\r\n })\r\n });\r\n \r\n return new BaseLayer(\"MerseysideCustom\", \"Ordnance Survey\", lyr);\r\n }\r\n}","import {\r\n BaseLayer\r\n} from \"esdm-map\";\r\nimport { IBaseLayer } from \"esdm-map/dist/baselayers/interfaces/IBaseLayer\";\r\n\r\nimport TileLayer from 'ol/layer/Tile';\r\nimport WMTS from 'ol/source/WMTS';\r\nimport WMTSTileGrid from 'ol/tilegrid/WMTS';\r\n\r\n\r\nexport class SouthYorkshire_BaseLayers{\r\n\r\n public GetSouthYorkshireOS(): IBaseLayer {\r\n\r\n let lyr = new TileLayer({\r\n visible: true,\r\n source: new WMTS({ \r\n url: \"/api/ogcservice/SouthYorkshireOS\",\r\n layer: 'Road 27700',\r\n matrixSet: 'EPSG:27700',\r\n format: 'image/png',\r\n projection: 'EPSG:27700',\r\n tileGrid: new WMTSTileGrid({\r\n origin: [-238375.0, 1376256.0],\r\n resolutions: [896, 448, 224, 112, 56, 28, 14, 7, 3.5, 1.75, 0.875, 0.4375, 0.21875, 0.109375],\r\n matrixIds: [\"EPSG:27700:0\", \"EPSG:27700:1\", \"EPSG:27700:2\", \"EPSG:27700:3\", \"EPSG:27700:4\", \"EPSG:27700:5\", \"EPSG:27700:6\", \"EPSG:27700:7\", \"EPSG:27700:8\", \"EPSG:27700:9\", \"EPSG:27700:10\", \"EPSG:27700:11\", \"EPSG:27700:12\", \"EPSG:27700:13\"]\r\n }),\r\n style: 'default',\r\n wrapX: false,\r\n attributions: '© Crown copyright and database rights 2021 OS 100018816. You are granted a non-exclusive, royalty free, revocable licence solely to view the licensed data for non-commercial purposes for the period during which Sheffield City Council makes it available. You are not permitted to copy, sub-license, distribute, sell or otherwise make available the licensed data to third parties in any form. Third party rights to enforce the terms of this licence shall be reserved to OS.'\r\n })\r\n });\r\n return new BaseLayer(\"SYorksCustom\", \"Ordnance Survey\", lyr);\r\n }\r\n\r\n}","import {\r\n BaseLayer,\r\n BaseLayerFactory_3857,\r\n BaseLayerType\r\n} from \"esdm-map\";\r\nimport { IBaseLayer } from \"esdm-map/dist/baselayers/interfaces/IBaseLayer\";\r\nimport TileLayer from 'ol/layer/Tile';\r\nimport * as olProj from 'ol/proj';\r\nimport OSM from 'ol/source/OSM';\r\nimport XYZ from 'ol/source/XYZ';\r\nimport { ClientBaseLayerFactory } from \"./ClientBaseLayerFactory\";;\r\n\r\nexport const LhlpBaseLayers = {\r\n ...BaseLayerType,\r\n OrdnanceSurvey_1937to1961 : 999,\r\n OrdnanceSurvey_1900: 1000,\r\n Buckinghamshire_OS: 1001,\r\n SouthYorkshire_OS: 1002,\r\n Cheshire_OS: 1003,\r\n Merseyside_OS: 1004\r\n};\r\n\r\nexport class LhlpBaseLayerFactory extends ClientBaseLayerFactory {\r\n \r\n public GetBaseLayerByType(baseLayerType: BaseLayerType, bingApiKey: string = \"\", esdmApiKey: string = \"\"): IBaseLayer {\r\n\r\n switch (baseLayerType) {\r\n case LhlpBaseLayers.OrdnanceSurvey_1937to1961:\r\n return this.GetOrdnanceSurvey_1937to1961();\r\n \r\n case LhlpBaseLayers.OrdnanceSurvey_1900:\r\n return this.GetOrdnanceSurvey_1900();\r\n \r\n case LhlpBaseLayers.OSM_ESDM_contours: //override definition in esdm_map to set maxZoom\r\n\r\n let lyr = new TileLayer({\r\n source: new OSM({\r\n url: `//{a-f}.osm.esdm.co.uk/900913/c/{z}/{x}/{y}.png?APIKEY=${esdmApiKey}`,\r\n maxZoom: 18\r\n })\r\n });\r\n return new BaseLayer('OSM_ESDM_contours', 'OpenStreetMap', lyr); \r\n\r\n //case LhlpBaseLayers.BingOS:\r\n // let lyr = new TileLayer({\r\n // source: new BingMaps({\r\n // key: bingApiKey,\r\n // imagerySet: \"OrdnanceSurvey\",\r\n // culture: 'en-gb',\r\n // maxZoom: 15\r\n // })\r\n // });\r\n // lyr.getSource().setAttributions('© Crown Copyright and database right ' + new Date().getFullYear() + '. All rights reserved.Ordnance Survey Licence number 100023706');\r\n \r\n // return new BaseLayer(\"OrdnanceSurvey\", \"Bing Ordnance Survey\", lyr); \r\n }\r\n\r\n return super.GetBaseLayerByType(baseLayerType, bingApiKey, esdmApiKey);\r\n } \r\n\r\n private GetOrdnanceSurvey_1937to1961(): IBaseLayer {\r\n const lyr = new TileLayer({\r\n extent: olProj.transformExtent([-7.68, 49.8, 1.77, 60.4], 'EPSG:4326', 'EPSG:3857'),\r\n preload: Infinity,\r\n //title: \"Great Britain - OS 1:25,000, 1937-61\",\r\n source: new XYZ({\r\n urls: [\r\n 'https://api.maptiler.com/tiles/uk-osgb25k1937/{z}/{x}/{y}.jpg?key=IkTLgYxZjV68oqpwdBjp'\r\n ],\r\n minZoom: 1,\r\n maxZoom: 18,\r\n attributions: 'Mapping from National Library of Scotland',\r\n }),\r\n //type: 'overlay',\r\n visible: false,\r\n //keytext: 'View the individual sheets of this OS 1:25,000 mapping by selecting \"Find by place\" above',\r\n //key: 'geo.nls.uk/mapdata2/os/25000/key/openlayers.html'\r\n });\r\n\r\n return new BaseLayer(\"OS25k1937\", \"OS 1:25,000 1937-1961\", lyr);\r\n }\r\n\r\n \r\n\r\n private GetOrdnanceSurvey_1900(): IBaseLayer {\r\n const lyr = new TileLayer({\r\n extent: olProj.transformExtent([-14.169172, 49.205882, 4.393046, 61.483786], 'EPSG:4326', 'EPSG:3857'),\r\n preload: Infinity,\r\n //title: \"Great Britain - OS One-Inch, 1885-1903 - Hills\",\r\n source: new XYZ({\r\n attributions: 'Mapping from National Library of Scotland
We are very grateful to David Rumsey for supporting the scanning and georeferencing of this overlay',\r\n urls: [\r\n 'https://api.maptiler.com/tiles/uk-osgb63k1885/{z}/{x}/{y}.png?key=IkTLgYxZjV68oqpwdBjp'\r\n ],\r\n minZoom: 1,\r\n maxZoom: 18\r\n }),\r\n //type: 'overlay',\r\n visible: false\r\n });\r\n return new BaseLayer(\"OSAll1900\", \"OS All Scales 1900s\", lyr);\r\n }\r\n\r\n}","import { BaseLayerType } from \"esdm-map\";\r\nimport { BaseMap, MapSettings } from \"../defs/MapSettings\";\r\nimport { LhlpBaseLayers } from \"./LhlpBaseLayerFactory\";\r\n\r\n/**\r\n * Converts the Tenant base layers into the correct enum for each base layer\r\n * */\r\nexport class TenantSettingsBaseLayerResolver {\r\n\r\n\r\n public constructor(\r\n private _mapSettings: MapSettings\r\n ){}\r\n\r\n public getBaseLayerTypes = (): BaseLayerType[] => {\r\n let types = new Array();\r\n\r\n let sortedBaselayers = this._mapSettings.BaseMaps.sort((a, b) => (a.Order > b.Order ? 1 : -1));\r\n sortedBaselayers.forEach(function (map: BaseMap) {\r\n //NB\r\n //Add any new enumerations to the help in LHL.Core.Configuration.TenantSettingsDefault & the XSD\r\n switch (map.BaseMapType) {\r\n case \"BingAerial\":\r\n types.push(LhlpBaseLayers.BingAerial);\r\n break;\r\n\r\n case \"BingOS\":\r\n types.push(LhlpBaseLayers.BingOS);\r\n break;\r\n\r\n case \"OSM_ESDM_contours\":\r\n types.push(LhlpBaseLayers.OSM_ESDM_contours);\r\n break;\r\n\r\n case \"OrdnanceSurvey_1937to1961\":\r\n types.push(LhlpBaseLayers.OrdnanceSurvey_1937to1961);\r\n break;\r\n\r\n case \"OrdnanceSurvey_1900\":\r\n types.push(LhlpBaseLayers.OrdnanceSurvey_1900);\r\n break;\r\n\r\n case \"Buckinghamshire_OS\":\r\n types.push(LhlpBaseLayers.Buckinghamshire_OS);\r\n break;\r\n\r\n case \"SouthYorkshire_OS\":\r\n types.push(LhlpBaseLayers.SouthYorkshire_OS);\r\n break;\r\n\r\n case \"Cheshire_OS\":\r\n types.push(LhlpBaseLayers.Cheshire_OS);\r\n break;\r\n\r\n case \"Merseyside_OS\":\r\n types.push(LhlpBaseLayers.Merseyside_OS);\r\n break;\r\n }\r\n\r\n });\r\n\r\n return types;\r\n }\r\n\r\n}","import { PrintMap } from \"esdm-map/dist/map/tools/PrintMap\";\r\nimport { IPrintOptions } from \"esdm-map/dist/map/tools/IPrintOptions\";\r\nimport { DownloadMapPng } from \"esdm-map/dist/map/tools/DownloadMapPng\";\r\nimport { IMapViewStore } from \"esdm-map/dist/map/store/IMapViewStore\";\r\nimport { IVectorLayerGroupFactory } from \"esdm-map/dist/layers/groups/vector/interfaces/IVectorLayerGroupFactory\";\r\nimport { IMapContextMenu } from \"esdm-map/dist/map/tools/IMapContextMenu\";\r\nimport { IFeatureLoader } from \"esdm-map/dist/layers/vector/sources/loaders/interfaces/IFeatureLoader\";\r\nimport { OgcMapFilter } from \"esdm-map/dist/map/filters/OgcMapFilter\";\r\nimport { VectorLayerGroupFactory } from \"esdm-map/dist/layers/groups/vector/VectorLayerGroupFactory\";\r\nimport { MapViewStore } from \"esdm-map/dist/map/store/MapViewStore\";\r\nimport { MapContextMenu } from \"esdm-map/dist/map/tools/MapContextMenu\";\r\nimport { ToolTipProvider } from \"esdm-map/dist/map/tooltip/ToolTipProvider\";\r\nimport { IVectorLayerGroupConfig } from \"esdm-map/dist/layers/groups/vector/interfaces/IVectorLayerGroupConfig\";\r\nimport { GeoJsonFeatureLoader } from \"esdm-map/dist/layers/vector/sources/loaders/GeoJsonFeatureLoader\";\r\nimport { ILoaderExtentsBehaviour } from \"esdm-map/dist/layers/vector/sources/loaders/behaviours/ILoaderExtentsBehaviour\";\r\nimport { BoundsLoaderExtentsBehaviour } from \"esdm-map/dist/layers/vector/sources/loaders/behaviours/BoundsLoaderBehaviour\";\r\nimport { IFeatureAdd } from \"esdm-map/dist/layers/vector/sources/loaders/interfaces/IFeatureAdd\";\r\nimport { FeatureAdd } from \"esdm-map/dist/layers/vector/sources/loaders/FeatureAdd\";\r\nimport { MapListRecordsInViewport } from \"esdm-map/dist/map/MapListRecordsInViewport\";\r\nimport { ExtentsNavigation } from \"esdm-map/dist/map/controls/ExtentsNavigation\";\r\nimport { LayerGroupFactory } from \"esdm-map/dist/layers/groups/LayerGroupFactory\";\r\nimport { LayerGroupCollection } from \"esdm-map/dist/layers/groups/LayerGroupCollection\";\r\nimport { MapFilters } from \"esdm-map/dist/map/filters/MapFilters\";\r\nimport { GridRef } from \"esdm-map/dist/map/controls/GridRef\";\r\nimport { GeoLocation } from \"esdm-map/dist/map/geolocation/geolocation\";\r\nimport { IMappingTextPack } from \"esdm-map/dist/resources/MappingTextPack\";\r\nimport { MousePosition } from \"esdm-map/dist/map/controls/MousePosition\";\r\nimport { MapViewSettingsUrlProvider } from \"esdm-map/dist/map/store/MapViewSettingsUrlProvider\";\r\nimport { IMapViewPermaLink } from \"esdm-map/dist/map/tools/IMapViewPermaLink\";\r\nimport { MapViewPermaLink } from \"esdm-map/dist/map/tools/MapViewPermaLink\";\r\nimport { FeatureAddSmallGeomsAsPoint } from \"esdm-map/dist/layers/vector/sources/loaders\";\r\nimport { IStyleFactory } from \"esdm-map/dist/layers/vector/styles/IStyleFactory\";\r\nimport { IVectorLayerSourceFactory } from \"esdm-map/dist/layers/vector/sources/interfaces\";\r\nimport { VectorLayerSourceFactory } from \"esdm-map/dist/layers/vector/sources\";\r\nimport { IMapViewSettingProvider } from \"esdm-map/dist/map/store/IMapViewSettingsProvider\";\r\nimport { IBaseLayerFactory } from \"esdm-map/dist/baselayers/interfaces/IBaseLayerFactory\";\r\n\r\nimport {\r\n MapOptions,\r\n IMap,\r\n MapLayerSwitcher,\r\n IMapAreaMask,\r\n ILogger,\r\n IResourceFactory,\r\n IMapListRecordItem,\r\n IMapFactory,\r\n BaseLayerFactory_3857,\r\n MapFactory,\r\n Logger,\r\n MapFeatureInfo\r\n} from \"esdm-map\";\r\n\r\nimport \"../wwwroot/css/ol.css\";\r\nimport \"../wwwroot/css/ol3-contextmenu.css\";\r\nimport \"../wwwroot/css/bootstrap-slider.min.css\"\r\nimport { TextPackLoader, TextPacks } from \"./TextPackLoader\";\r\n\r\nimport { MapBase } from \"./MapBase\";\r\nimport { MapToolTip, ToolTipOptions } from \"esdm-map/dist/map/tooltip\";\r\nimport { IDragPan } from \"esdm-map/dist/map/controls/interfaces/IDragPan\";\r\nimport { DragPan } from \"esdm-map/dist/map/controls/DragPan\";\r\nimport { IlayerGroupCollectionConfig } from \"esdm-map/dist/layers/groups/IlayerGroupCollectionConfig\";\r\nimport { LayerGroupCollections } from \"esdm-map/dist/layers/groups/LayerGroupCollections\";\r\nimport { LhlpIdentity, LhlpUser } from \"./defs/LhlpUser\";\r\nimport { DefaultLayerConfigurationFactory } from \"./config/DefaultLayerConfigurationFactory\";\r\nimport { LhlpStyleFactory } from \"./style/LhlpStyleFactory\";\r\nimport { LhlpResourcefactory } from \"./resources/LhlpResourceFactory\";\r\nimport { DefaultMapOptions } from \"./config/DefaultMapOptions\";\r\nimport { LhlpRecordSubType, LhlpRecordType } from \"./defs/LhlpRecordType\";\r\nimport { LhlpMapListRecordItem } from \"./resources/LhlpMapListRecordItem\";\r\nimport { IWmsLayerGroupConfig } from \"esdm-map/dist/layers/groups/wms/interfaces/IWmsLayerGroupConfig\";\r\nimport { IWmsLayerGroupFactory } from \"esdm-map/dist/layers/groups/wms/interfaces/IWmsLayerGroupFactory\";\r\nimport { WmsLayerGroupFactory } from \"esdm-map/dist/layers/groups/wms\";\r\nimport { LhlpBaseLayerFactory } from \"./Layers/LhlpBaseLayerFactory\";\r\nimport { LhlpGazetteer } from \"./gazetteer/LhlpGazetteer\";\r\nimport { LhlpMapConfig, LhlpStatusLookup, LhlpTypeLookup } from \"./defs/LhlpMapConfig\";\r\nimport { FilteredGeoJsonFeatureLoader } from \"./loaders/FilteredGeoJsonFeatureLoader\";\r\n\r\n$(document).ready(function () { \r\n\r\n $('[data-bs-toggle=\"tooltip\"]').tooltip(); \r\n let printOptions: PrintMap = new PrintMap();\r\n\r\n if (!printOptions.isPrintMap) { \r\n resizeMap();\r\n $(window).bind('resize', function () { resizeMap(); });\r\n } \r\n\r\n function resizeMap() {\r\n //use max footer height, especially on mobile\r\n var fHeight = $(\"footer\").height();\r\n fHeight = Math.min(fHeight, 200);\r\n\r\n var height = $(window).height() - $(\"#mapContainer\").offset().top;\r\n if (height <= 400) {\r\n height = 400;\r\n }\r\n $('#mapContainer').height(height);\r\n $(\"#slide-content\").height(height - 55);\r\n };\r\n\r\n let ele = $(\"#theMap\");\r\n if (ele.length === 1) { \r\n LhlpIdentity.fetch().then(function (e) {\r\n //let user = e;\r\n //if (e) {\r\n // console.log(e.userId);\r\n //} else {\r\n // console.log(\"401 - UnAuthorised\");\r\n //}\r\n loadMap(e);\r\n });\r\n } \r\n\r\n function loadMap(user: LhlpUser) {\r\n\r\n let maxFeatureCount: number = ele.data(\"max-feature-count\");\r\n let siteId: string = ele.data(\"site-id\");\r\n let siteFolder: string = ele.data(\"site-folder\");\r\n let mapConfigB64: string = ele.data(\"map-config\");\r\n\r\n let mapConfig: LhlpMapConfig = new LhlpMapConfig();\r\n if(mapConfigB64) {\r\n var json: string = atob(mapConfigB64);\r\n if(json) mapConfig = JSON.parse(json);\r\n console.log(mapConfig);\r\n }\r\n\r\n let init = function (textpacks: TextPacks) {\r\n let map = new MainMap(\r\n \"theMap\",\r\n maxFeatureCount,\r\n printOptions,\r\n textpacks.mapping,\r\n user,\r\n siteId,\r\n siteFolder,\r\n mapConfig\r\n );\r\n\r\n }\r\n TextPackLoader.load().then(init);\r\n }\r\n\r\n});\r\n\r\nimport * as olProj from 'ol/proj';\r\nimport Feature from \"ol/Feature\";\r\nimport Point from 'ol/geom/Point';\r\nimport VectorSource from 'ol/source/Vector';\r\nimport { Vector as VectorLayer} from 'ol/layer';\r\nimport {Icon, Text, Style, Fill, Stroke, Circle} from 'ol/style';\r\nimport IconAnchorUnits from \"ol/style/IconAnchorUnits\";\r\nimport { IFeaturesSelectedEventArgs } from \"esdm-map/dist/map/events/IFeaturesSelectedEventArgs\";\r\nimport CircleStyle from \"ol/style/Circle\";\r\nimport { touchOnly } from \"ol/events/condition\";\r\nimport { LhlpMapContextMenu } from \"./contextmenu/LhlpMapContextMenu\";\r\nimport { IVectorLayer } from \"esdm-map/dist/layers/vector/interfaces/IVectorLayer\";\r\nimport { IAppStorage } from \"esdm-map/dist/storage/IAppStorage\";\r\nimport { AppStorage } from \"esdm-map/dist/storage/AppStorage\";\r\nimport { IVectorLayerGroupLoadedEventArgs } from \"esdm-map/dist/layers/groups/vector/interfaces/IVectorLayerGroupEvents\";\r\n\r\nexport class MainMap extends MapBase {\r\n \r\n private mfOptions: MapOptions;\r\n public map: IMap;\r\n private mapStore: IMapViewStore;\r\n private ls: MapLayerSwitcher;\r\n private infoPopup: MapFeatureInfo;\r\n private initialised: boolean = false;\r\n private layerGroups: LayerGroupCollections;\r\n private styleFactory: IStyleFactory;\r\n private herMask: IMapAreaMask; \r\n private gridRefFinder: GridRef;\r\n private logger: ILogger; \r\n private vectorLayerSourceFactory: IVectorLayerSourceFactory;\r\n private baseLayerFactory: IBaseLayerFactory;\r\n private mapFactory: IMapFactory;\r\n private vectorLayerGroupFactory: IVectorLayerGroupFactory;\r\n private wmsLayerGroupFactory: IWmsLayerGroupFactory;\r\n private layerGroupFactory: LayerGroupFactory;\r\n private boundsLoaderBehaviour: ILoaderExtentsBehaviour;\r\n private mapContextMenu: IMapContextMenu;\r\n private resourcefactory: IResourceFactory; \r\n private downloadPng: DownloadMapPng;\r\n private featureLoader: IFeatureLoader;\r\n private featureAdd: IFeatureAdd;\r\n private mapFilter: MapFilters;\r\n private recordList: MapListRecordsInViewport;\r\n private geoLocation: GeoLocation;\r\n private extentsNavigation: ExtentsNavigation;\r\n private layerConfigFactory: DefaultLayerConfigurationFactory;\r\n private mapViewSettingProvider: MapViewSettingsUrlProvider;\r\n private mapListRecordItem: IMapListRecordItem;\r\n private mapViewPermaLink: IMapViewPermaLink;\r\n private mousePosition: MousePosition;\r\n private mapToolTip: MapToolTip; \r\n private openNames: LhlpGazetteer;\r\n private storage: IAppStorage;\r\n\r\n public constructor(\r\n public mapElementId: string, \r\n public maxFeatureCount: number,\r\n public printOptions: IPrintOptions,\r\n mappingTextPack: IMappingTextPack,\r\n user: LhlpUser,\r\n public siteId: string,\r\n public siteFolder: string,\r\n public mapConfig: LhlpMapConfig)\r\n {\r\n super(mappingTextPack, user);\r\n this.storage = new AppStorage();\r\n this.init();\r\n }\r\n\r\n // has a supplied specific asset_id been identified and scrolled-to?\r\n private singleAssetSelected: boolean = false;\r\n private selectedSingleAsset: Feature;\r\n\r\n private init = (): void => {\r\n let _self = this;\r\n\r\n if (!this.initialised) {\r\n //strip-loader should take this out for production\r\n console.log(\"Initialising main map\"); \r\n\r\n this.layerConfigFactory = new DefaultLayerConfigurationFactory(this.siteId, this.siteFolder, this.mapConfig);\r\n this.vectorLayerGroupFactory = new VectorLayerGroupFactory(); \r\n this.wmsLayerGroupFactory = new WmsLayerGroupFactory();\r\n this.layerGroupFactory = new LayerGroupFactory(this.vectorLayerGroupFactory, this.wmsLayerGroupFactory);\r\n this.baseLayerFactory = new LhlpBaseLayerFactory();\r\n this.featureLoader = new FilteredGeoJsonFeatureLoader();\r\n \r\n this.featureAdd = new FeatureAdd();\r\n\r\n this.mapFilter = new MapFilters();\r\n this.mapFilter.OgcFilter = new OgcMapFilter();\r\n this.mapFactory = new MapFactory();\r\n this.logger = new Logger(); \r\n this.styleFactory = new LhlpStyleFactory(this.mapConfig);\r\n this.resourcefactory = new LhlpResourcefactory(this.mappingTextPack);\r\n\r\n this.mfOptions = DefaultMapOptions.GetDefaultOptions(this.mapElementId, `${this.siteFolder}_MainMap`, this.tenantSettings?.MapSettings); \r\n this.layerGroups = this.layerGroupFactory.getLayerGroups(this.getLayerGroupConfig(), this.styleFactory);\r\n this.mfOptions.layerGroupCollection = this.layerGroups;\r\n \r\n this.mapViewSettingProvider = new MapViewSettingsUrlProvider();\r\n this.mapStore = new MapViewStore(this.mfOptions.mapStoreKey, this.mapViewSettingProvider);\r\n\r\n this.boundsLoaderBehaviour = new BoundsLoaderExtentsBehaviour(this.logger);\r\n //this.herMask = new YorkHerBoundary();\r\n this.mapContextMenu = new LhlpMapContextMenu(this.mappingTextPack);\r\n \r\n this.vectorLayerSourceFactory = new VectorLayerSourceFactory(this.logger, this.boundsLoaderBehaviour, this.featureLoader, this.featureAdd);\r\n\r\n // passing in an asset id on query string - make sure its layers get loaded\r\n // by setting them true in the mapstore\r\n this.activateLayersForSpecifiedAssetType();\r\n\r\n this.map = this.mapFactory.instance(this.mfOptions, this.mapStore, this.logger, this.vectorLayerSourceFactory, this.baseLayerFactory, this.boundsLoaderBehaviour, this.mapContextMenu, this.printOptions, this.mapFilter, this.mappingTextPack); \r\n\r\n this.infoPopup = new MapFeatureInfo(this.map, this.resourcefactory.getRecordTypeResource(), this.mappingTextPack);\r\n\r\n this.ls = new MapLayerSwitcher(this.map, this.mapStore, this.styleFactory, this.map.baseLayers, this.layerGroups, this.mappingTextPack,\r\n {\r\n showOpenPanelByDefault: false,\r\n showList: false,\r\n rememberActivePanel: true\r\n });\r\n this.gridRefFinder = new GridRef(this.map, this.mappingTextPack, this.logger);\r\n this.openNames = new LhlpGazetteer(this.map, this.tenantSettings?.MapSettings.GazetteerApiKey,this.mappingTextPack);\r\n\r\n if (this.printOptions.isPrintMap) { \r\n this.printOptions.setMap(this.map);\r\n } \r\n\r\n // this.downloadPng = new DownloadMapPng(this.map, this.mappingTextPack);\r\n this.mapListRecordItem = new LhlpMapListRecordItem(this.mappingTextPack);\r\n this.recordList = new MapListRecordsInViewport(this.map, this.mapStore, this.styleFactory, this.layerGroups.vectorLayerGroups, this.mappingTextPack, 13, this.mapListRecordItem);\r\n this.geoLocation = new GeoLocation(this.map, this.logger, this.mappingTextPack);\r\n // this.extentsNavigation = new ExtentsNavigation(this.map, this.logger, this.mappingTextPack);\r\n this.mousePosition = new MousePosition(this.map, this.mappingTextPack, \"EPSG:27700\");\r\n // this.mapViewPermaLink = new MapViewPermaLink(this.map, this.mapViewSettingProvider, this.mappingTextPack, { activePanel: \"overlays\" });\r\n\r\n if(!window.matchMedia(\"(pointer: coarse)\").matches) {\r\n //add tooltip if not a touch screen\r\n this.mapToolTip = new MapToolTip(this.map, new ToolTipProvider(), new ToolTipOptions(10));\r\n } \r\n \r\n this.initCreateAsset();\r\n this.infoPopup.onFeaturesSelected.subscribe(this.setSelectedFeaturesDynamicStyle);\r\n\r\n\r\n // ----------------------------\r\n // ----- status filters #773 ------\r\n \r\n // we may have an extra panel of status filters...\r\n // so append them immediately above the other layer filters\r\n // to prevent UI scrollbar nastiness\r\n if ($(\"#extraPanelOverlays\").length > 0)\r\n $(\"#extraPanelOverlays\").prependTo(\"#panelOverlays\");\r\n\r\n // changing a status filter needs to reload the layers\r\n // and also update its (de-)selected value to local storage\r\n $(\".StatusFilter\").on(\"change\", function (event) {\r\n _self.applyStatusFilters();\r\n _self.storeStatusFilters();\r\n });\r\n\r\n /// read local storage to set selected checkboxes on first UI render\r\n this.initialiseStatusFilters();\r\n\r\n\r\n // ----------------------------\r\n // ----- panning to a pre-specified asset #637 ------\r\n\r\n // Needing to wait until we know all layer groups are loaded, \r\n // before then trying to pan to a specific asset...\r\n\r\n let layerGroupsLoading = false;\r\n let counter = 0;\r\n\r\n this.layerGroups.vectorLayerGroups.forEach((lg) => {\r\n lg.onLayerGroupLoading.subscribe(() => {\r\n layerGroupsLoading = true;\r\n counter++;\r\n });\r\n });\r\n\r\n this.layerGroups.vectorLayerGroups.forEach((lg) => {\r\n lg.onLayerGroupLoaded.subscribe(() => {\r\n counter--;\r\n if (counter == 0 && layerGroupsLoading) {\r\n this.afterLoadingFinalLayerGroup();\r\n layerGroupsLoading = false;\r\n }\r\n });\r\n });\r\n\r\n // ----------------------------\r\n // jk - take away the selected asset's style if we click on another one\r\n\r\n this.infoPopup.onFeaturesSelected.subscribe((args) => {\r\n if (this.selectedSingleAsset != null) {\r\n\r\n let selectedId: string = this.selectedSingleAsset.getId().toString();\r\n\r\n if (args.features.find(f => f.getId() == selectedId) == undefined)\r\n this.revertStyle(this.selectedSingleAsset);\r\n }\r\n });\r\n\r\n // ----------------------------\r\n\r\n this.initialised = true;\r\n }\r\n }\r\n\r\n\r\n ////////////////////////////////////////////////////////////////////////////\r\n // jk - when passing in a specified asset id (and then selecting it on map load)\r\n // we want to make sure that the vector layer for that asset has already been loaded.\r\n // So toggle the boolean display properties for the layers in the mapstore storage\r\n // before it gets used to decide what to load.\r\n private activateLayersForSpecifiedAssetType = (): void => {\r\n \r\n let scrolltoAssetTypeId: number = + $('#scrollToAssetType').val();\r\n\r\n if (!isNaN(scrolltoAssetTypeId) && scrolltoAssetTypeId > 0) {\r\n switch (scrolltoAssetTypeId.toString()) {\r\n case LhlpRecordSubType.AssetTypeBuilding: {\r\n this.mapStore.onLayerVisibiltyChanged(\"AssetTypeBuilding\", true);\r\n this.mapStore.onLayerVisibiltyChanged(\"AssetTypeBuildingPublic\", true);\r\n break;\r\n }\r\n case LhlpRecordSubType.AssetTypeParkOrGarden: {\r\n this.mapStore.onLayerVisibiltyChanged(\"AssetTypeParkOrGarden\", true);\r\n this.mapStore.onLayerVisibiltyChanged(\"AssetTypeParkOrGardenPublic\", true);\r\n break;\r\n }\r\n case LhlpRecordSubType.AssetTypeLandmarkOrArtwork: {\r\n this.mapStore.onLayerVisibiltyChanged(\"AssetTypeLandmarkOrArtwork\", true);\r\n this.mapStore.onLayerVisibiltyChanged(\"AssetTypeLandmarkOrArtworkPublic\", true);\r\n break;\r\n }\r\n case LhlpRecordSubType.AssetTypeOtherSiteStructure: {\r\n this.mapStore.onLayerVisibiltyChanged(\"AssetTypeOtherSiteStructure\", true);\r\n this.mapStore.onLayerVisibiltyChanged(\"AssetTypeOtherSiteStructurePublic\", true);\r\n break;\r\n }\r\n default: {\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n\r\n private initialiseStatusFilters = (): void => {\r\n\r\n // if we have hidden the filter panel (which happens because only one valid status is present in the data)\r\n // then never let that hidden layer be de-selected because there's no way to switch it on again\r\n if ($('#extraPanelOverlays').css('display') != 'none') {\r\n\r\n // otherwise load selected statuses from mapstore memory\r\n let selectedStatuses = this.storage.getArray(this.mfOptions.mapStoreKey.concat(\"_StatusFilters\")) as Array\r\n\r\n // but - specially - also look for a Status that has been passed in\r\n // because we need to scroll to a specified asset and in this case enable its status regardless\r\n // and save that enablement\r\n let assetStatusId: number = + $('#scrollToAssetStatus').val();\r\n if (!isNaN(assetStatusId) && assetStatusId > 0) {\r\n if (selectedStatuses != undefined && selectedStatuses.length > 0) {\r\n if (selectedStatuses.indexOf(assetStatusId) == -1)\r\n selectedStatuses.push(assetStatusId);\r\n }\r\n else { selectedStatuses = [assetStatusId]; }\r\n }\r\n\r\n // now set the checkboxes according to what we now think should be the selected statuses.\r\n // The loader picks these up later when deciding which assets to load\r\n if (selectedStatuses != undefined && selectedStatuses.length > 0) {\r\n document.querySelectorAll('.StatusFilter').forEach((elem) => {\r\n let cb_statusItem = elem as HTMLInputElement;\r\n let statusId: number = + cb_statusItem.getAttribute('data-status-id');\r\n if (selectedStatuses.includes(statusId))\r\n cb_statusItem.checked = true;\r\n else\r\n cb_statusItem.checked = false;\r\n });\r\n }\r\n\r\n // we may now need to save them back again, since we might have modified them\r\n this.storeStatusFilters();\r\n }\r\n }\r\n\r\n private applyStatusFilters = (): void => {\r\n let vlgs = this.layerGroups.vectorLayerGroups;\r\n\r\n vlgs.forEach((lg) =>\r\n lg.reLoadLayers() // same as calling .source.source.refresh on each of the layers individually\r\n );\r\n }\r\n\r\n private storeStatusFilters = (): void => {\r\n let statusFilters: Array = [];\r\n document.querySelectorAll('.StatusFilter').forEach((elem) => {\r\n if ((elem as HTMLInputElement).checked) {\r\n statusFilters.push(+ (elem as HTMLInputElement).getAttribute('data-status-id'));\r\n }\r\n });\r\n\r\n // console.log('storing ' + statusFilters.length);\r\n this.storage.setValue(this.mfOptions.mapStoreKey.concat(\"_StatusFilters\"), JSON.stringify(statusFilters));\r\n }\r\n\r\n\r\n private initCreateAsset = (): void => {\r\n let self = this; \r\n\r\n //setup the buttons on the Create Asset div\r\n $('#mapCreateAssetBtn').on(\"click\", function() {\r\n $('#mapCreateAssetBtn').hide();\r\n $('#mapCrossHairEnabled').show();\r\n $('#mapCreateAsset').css({'background-color': 'white'});\r\n $('#mapCentreCrosshairs').show();\r\n });\r\n\r\n $('#mapCancelAssetBtn').on(\"click\", function() {\r\n $('#mapCreateAssetBtn').show();\r\n $('#mapCrossHairEnabled').hide();\r\n $('#mapCreateAsset').css({'background-color': 'transparent'});\r\n $('#mapCentreCrosshairs').hide();\r\n });\r\n \r\n $('#mapOkAssetBtn').on(\"click\", function() {\r\n let mapState = self.mapStore.getMapInfo();\r\n let coordinate = olProj.transform(mapState.centre, 'EPSG:3857','EPSG:27700');\r\n let redirectUrl = self.mapConfig.CreateAssetUrl \r\n + Math.floor(coordinate[0]) + '/'\r\n + Math.floor(coordinate[1]) + '/'\r\n + mapState.zoom;\r\n document.location.href = redirectUrl;\r\n return false;\r\n });\r\n }\r\n\r\n private setSelectedFeaturesDynamicStyle = (args: IFeaturesSelectedEventArgs): void => {\r\n let self = this;\r\n let features = args.features;\r\n for(let i=0;i = stylesConfig.StatusStyles;\r\n if(statusStyles !== null) {\r\n for(let statusStyle of statusStyles) {\r\n if(statusStyle.StatusId === featureStatus) {\r\n iconColour = statusStyle.StatusColour;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n let typeStyles: Array = stylesConfig.TypeStyles;\r\n if(typeStyles !== null) {\r\n for(let typeStyle of typeStyles) {\r\n if(typeStyle.TypeId == featureSubType) {\r\n let c: string = typeStyle.TypeCharacter;\r\n iconChr = String.fromCharCode(parseInt(c));\r\n break;\r\n }\r\n }\r\n }\r\n\r\n if(featureGeometryType === 'Point' || featureGeometryType === 'MultiPoint') {\r\n let text = new Text({\r\n text: iconChr,\r\n font: '900 23px \"Font Awesome 6 Pro\"',\r\n textBaseline: 'bottom',\r\n offsetY: 11,\r\n fill: new Fill({\r\n color: iconColour,\r\n }),\r\n stroke: new Stroke({\r\n color: 'rgba(255,255,255,1)',\r\n width: 5,\r\n })\r\n });\r\n\r\n let style = new Style({\r\n image: new Circle({\r\n // stroke: new Stroke({\r\n // color: 'rgba(0,0,0,0.2)', //iconColour,\r\n // width: 3\r\n // }),\r\n radius: 20,\r\n fill: new Fill({\r\n color: 'rgba(0,0,0,0.2)'\r\n })\r\n }),\r\n text: text \r\n });\r\n return style;\r\n }\r\n //polygon or multipolygon selected style\r\n return new Style({\r\n stroke: new Stroke({\r\n color: iconColour,\r\n width: 3,\r\n }),\r\n fill: new Fill({\r\n color: 'rgb(0,0,0,0.2)',\r\n }),\r\n image: new CircleStyle({\r\n radius: 5,\r\n fill: new Fill({\r\n color: 'black',\r\n }),\r\n }),\r\n });\r\n\r\n }\r\n \r\n private getLayerGroupConfig = (): Array => { \r\n\r\n let isPublic = !this.isAuthenticated();\r\n let layerGroups = [];\r\n\r\n let AssetLayerGroupConfig: Array = [\r\n this.layerConfigFactory.layerConfig(LhlpRecordType.ASSET, LhlpRecordSubType.AssetTypeBuilding, {}, isPublic),\r\n this.layerConfigFactory.layerConfig(LhlpRecordType.ASSET, LhlpRecordSubType.AssetTypeParkOrGarden, {}, isPublic),\r\n this.layerConfigFactory.layerConfig(LhlpRecordType.ASSET, LhlpRecordSubType.AssetTypeLandmarkOrArtwork, {}, isPublic),\r\n this.layerConfigFactory.layerConfig(LhlpRecordType.ASSET, LhlpRecordSubType.AssetTypeOtherSiteStructure, {}, isPublic),\r\n ];\r\n layerGroups.push({\r\n ref: \"LHLP_Layers\",\r\n name: \"Local Heritage List - Type\",\r\n useAccordion: true,\r\n expandedOnFirstLoad: true,\r\n layerGroupConfigs: this.filterMapLayers(AssetLayerGroupConfig)\r\n });\r\n\r\n let AreaLayerGroupConfig: Array = [\r\n this.layerConfigFactory.layerConfig(LhlpRecordType.LocalListArea, null),\r\n this.layerConfigFactory.layerConfig(LhlpRecordType.LocalListSubAreas, null)\r\n ];\r\n layerGroups.push( {\r\n ref: \"Area_layers\",\r\n name: \"Project Areas\",\r\n useAccordion: true,\r\n expandedOnFirstLoad: false,\r\n layerGroupConfigs: this.filterMapLayers(AreaLayerGroupConfig)\r\n });\r\n\r\n // if(!isPublic) { //issue #603 has reverted this again!\r\n let NHLEGroupConfig: Array = [ \r\n this.layerConfigFactory.layerConfig(LhlpRecordType.NHLE, LhlpRecordSubType.ScheduledMonument),\r\n this.layerConfigFactory.layerConfig(LhlpRecordType.NHLE, LhlpRecordSubType.ListedBuilding), \r\n this.layerConfigFactory.layerConfig(LhlpRecordType.NHLE, LhlpRecordSubType.RegisteredParkAndGarden),\r\n this.layerConfigFactory.layerConfig(LhlpRecordType.NHLE, LhlpRecordSubType.Battlefield), \r\n this.layerConfigFactory.layerConfig(LhlpRecordType.NHLE, LhlpRecordSubType.ProtectedWreck),\r\n this.layerConfigFactory.layerConfig(LhlpRecordType.NHLE, LhlpRecordSubType.WorldHeritageSite) \r\n ];\r\n layerGroups.push({\r\n ref: \"NHLE_layers\",\r\n name: \"NHLE\",\r\n useAccordion: true,\r\n expandedOnFirstLoad: true,\r\n layerGroupConfigs: this.filterMapLayers(NHLEGroupConfig)\r\n });\r\n // }\r\n\r\n if (this.tenantSettings.MapSettings.OtherMapWMSLayers.length > 0) {\r\n\r\n let otherLayers = new Array();\r\n\r\n for (let i = 0; i < this.tenantSettings.MapSettings.OtherMapWMSLayers.length; i++) {\r\n let wms = this.tenantSettings.MapSettings.OtherMapWMSLayers[i];\r\n\r\n let displayName: string = wms.LayerName\r\n\r\n if (wms.HelpLinkURL) {\r\n displayName = this.MakeOtherWMSLayerTitleWithHelp(\r\n wms.LayerName,\r\n wms.HelpLinkURL\r\n )\r\n } \r\n\r\n let layer: IWmsLayerGroupConfig = {\r\n displayName: displayName, \r\n ref: \"otherLayers\" + wms.WMSServerLayerNamesCSV,\r\n type: wms.LayerName,\r\n subType: wms.LayerName,\r\n url: wms.WMSURL,\r\n visibleOnFirstLoad: false,\r\n info_format: \"text/html\",\r\n layers: [\r\n {\r\n layerName: wms.WMSServerLayerNamesCSV,\r\n minZoom: 1,\r\n maxZoom: 19\r\n }\r\n ]\r\n };\r\n\r\n otherLayers.push(layer);\r\n }\r\n\r\n layerGroups.push({\r\n ref: \"OtherWMSLayers\",\r\n name: \"Other layers\",\r\n useAccordion: true,\r\n expandedOnFirstLoad: true,\r\n layerGroupConfigs: otherLayers\r\n });\r\n }\r\n\r\n return layerGroups;\r\n }\r\n\r\n\r\n //---------------------------------------\r\n // ---- Scroll to specified single asset \r\n\r\n public afterLoadingFinalLayerGroup = (): void => {\r\n\r\n let assetId: number = + $('#scrollToAsset').val(); \r\n if (!isNaN(assetId) && assetId > 0) {\r\n this.moveMapToFeature(assetId);\r\n //$('#scrollToAsset').val(0); -- no need\r\n }\r\n }\r\n\r\n public moveMapToFeature = (id: number): void => {\r\n\r\n let feature: Feature = null;\r\n\r\n let find = (): Feature => {\r\n for (let lg of this.layerGroups.vectorLayerGroups) {\r\n for (let l of lg.layers) {\r\n let f = l.olVectorLayer.getSource().getFeatureById(id);\r\n if (f !== null) {\r\n return f;\r\n }\r\n }\r\n }\r\n return null;\r\n };\r\n\r\n feature = find();\r\n\r\n if (feature !== null) {\r\n\r\n this.selectedSingleAsset = feature;\r\n\r\n let status: number = + feature.getProperties()[\"asset_status_id\"];\r\n // jk - we could perhaps try to enable this status if it's currently off...\r\n // todo later.\r\n\r\n if (!this.singleAssetSelected) {\r\n let style = this.getAssetSelectedDynamicStyle(feature);\r\n let cloneStyle = style.clone(); // not sure if cloning required here, feels safer -jk\r\n let im = new Circle({\r\n stroke: new Stroke({\r\n color: 'rgba(0,0,0,0.9)',\r\n width: 2\r\n }),\r\n radius: 24,\r\n fill: new Fill({\r\n color: 'rgba(250,0,0,0.7)'\r\n })\r\n });\r\n cloneStyle.setImage(im);\r\n feature.setStyle(cloneStyle);\r\n\r\n let extent = feature.getGeometry().getExtent();\r\n\r\n //var centre = olExtent.getCenter(extent);\r\n //this.map.olMap.getView().animate({ center: centre });\r\n this.map.olMap.getView().fit(extent, { duration: 1000, maxZoom: 19 });\r\n\r\n // jk - I can't really see how to make this feature 'selected' in the sense that we\r\n // open sidepanel with the infoclick data in it for just this one.\r\n // maybe something like reimplementing MapFeatureInfo.createFeatureListHtml\r\n // \r\n //$('#featureInfo').children().remove();\r\n //$('#featureInfo').append(\"
  • thing
\");\r\n //if (!$(\"#slide-panel-info\").is(':visible')) {\r\n // $(\"#slide-panel-btn-info\").click(); }\r\n\r\n this.singleAssetSelected = true;\r\n }\r\n else {\r\n // make the selected style less persistent\r\n this.revertStyle(feature);\r\n }\r\n }\r\n else {\r\n if (!this.singleAssetSelected)\r\n $('#FailedToFindSingleAsset').modal('show');\r\n }\r\n }\r\n\r\n // probably clumsy way of getting rid of selected scrolled-to special feature style\r\n private revertStyle = (feature: Feature): void => {\r\n let style = this.getAssetSelectedDynamicStyle(feature);\r\n let cloneStyle = style.clone(); // not sure if cloning required here, feels safer -jk\r\n let im = new Circle({\r\n stroke: new Stroke({\r\n color: 'rgba(0,0,0,0)',\r\n width: 2\r\n }),\r\n radius: 24,\r\n fill: new Fill({\r\n color: 'rgba(0,0,0,0)'\r\n })\r\n });\r\n cloneStyle.setImage(im);\r\n feature.setStyle(cloneStyle);\r\n }\r\n\r\n\r\n //******************************************************************************************************************************** */\r\n //OTHER WMS Layers\r\n private MakeOtherWMSLayerTitleWithHelp = (layerName: string, layerHelpUrl: string): string => {\r\n let displayName: string = layerName;\r\n let helpIcon: string = ``;\r\n displayName += helpIcon;\r\n return `${displayName}`;\r\n }\r\n}\r\n\r\n\r\n","import { IMappingTextPack, IMap } from \"esdm-map\";\r\nimport { IVectorLayerGroupConfig } from \"esdm-map/dist/layers/groups/vector/interfaces/IVectorLayerGroupConfig\";\r\nimport { LhlpRecordType } from \"./defs/LhlpRecordType\";\r\nimport { ILhlpTenantSettingsFactory, LhlpTenantSettings, LhlpTenantSettingsFactory } from \"./defs/LhlpTenantSettings\";\r\nimport { LhlpUser } from \"./defs/LhlpUser\";\r\n\r\n\r\nexport class MapBase {\r\n\r\n protected tenantSettings: LhlpTenantSettings;\r\n\r\n constructor( \r\n protected mappingTextPack: IMappingTextPack,\r\n protected user: LhlpUser)\r\n { \r\n const tenantSettingsFactory: ILhlpTenantSettingsFactory = new LhlpTenantSettingsFactory();\r\n this.tenantSettings = tenantSettingsFactory.GetSettings();\r\n this.setToolbarStyleForTouch();\r\n }\r\n\r\n protected setToolbarStyleForTouch(): void { \r\n //touch test (copied from ol code that adds ol-touch to viewport)\r\n if ('ontouchstart' in window) {\r\n let e = $(\"#mapToolbar\");\r\n if (e[0]) {\r\n e.addClass(\"ol-touch\");\r\n }\r\n }\r\n }\r\n\r\n protected isAuthenticated = (): boolean => {\r\n return this.user !== null;\r\n }\r\n\r\n protected filterMapLayers = (layerGroupConfig: Array ): Array => {\r\n // if (!this.isAuthenticated()) {\r\n // //remove layers that require authentication\r\n // return layerGroupConfig.filter(function (value, index, arr) {\r\n // let authlayers = (value.type === LhlpRecordType.ASSET_PRIVATE);\r\n // return !authlayers;\r\n // });\r\n // } else {\r\n // //remove layers that don't require authentication\r\n // return layerGroupConfig.filter(function (value, index, arr) {\r\n // let authlayers = (value.type === LhlpRecordType.ASSET_PUBLIC);\r\n // return !authlayers;\r\n // });\r\n // }\r\n return layerGroupConfig;\r\n } \r\n}","import {\r\n IMappingTextPack,\r\n MappingTextPack\r\n} from \"esdm-map\";\r\n\r\nexport class TextPacks {\r\n public constructor( \r\n public mapping: IMappingTextPack\r\n ) { }\r\n}\r\n\r\nexport class TextPackLoader {\r\n\r\n public static load(): Promise { \r\n let mapping = MappingTextPack.load();\r\n\r\n return Promise.all([mapping]).then(\r\n function (results) {\r\n return new TextPacks(results[0]);\r\n }\r\n )\r\n }\r\n}","import { IVectorLayerGroupConfig } from \"esdm-map/dist/layers/groups/vector/interfaces/IVectorLayerGroupConfig\";\r\nimport { IWmsLayerGroupConfig } from \"esdm-map/dist/layers/groups/wms/interfaces/IWmsLayerGroupConfig\";\r\nimport { WfsParamSourceMapServer, IWfsParamSource, WfsBboxAsWktRequestParams } from \"esdm-map/dist/layers/vector/sources/wfs\";\r\nimport { VectorLayerStrategy } from \"esdm-map/dist/layers/vector/VectorLayerStrategy\";\r\nimport { LhlpRecordSubType, LhlpRecordType } from \"../defs/LhlpRecordType\";\r\nimport { LhlpMapConfig } from \"../defs/LhlpMapConfig\";\r\nimport { type } from \"jquery\";\r\nimport { ZoomToDataBounds } from \"esdm-map/dist/layers/vector/ZoomToDataBounds\";\r\n\r\nexport class DefaultLayerConfigurationFactory {\r\n\r\n private mapServerProxyUrl: string = \"/api/MapServer/lhlp\";\r\n private ogcProxyUrl: string = \"/api/OgcService/NHLE\";\r\n private siteId: string;\r\n private siteFolder: string;\r\n private mapConfig: LhlpMapConfig;\r\n \r\n private paramSource3857(): IWfsParamSource {\r\n return new WfsParamSourceMapServer(new WfsBboxAsWktRequestParams(), {\r\n srsName: \"EPSG:3857\"\r\n }); \r\n }\r\n\r\n constructor(siteid: string, sitefolder: string, mapconfig: LhlpMapConfig) {\r\n this.siteId = siteid;\r\n this.siteFolder = sitefolder;\r\n if(this.siteFolder!='') { // the URLs to the proxies must be on the tenant site for the claims to work properly\r\n this.mapServerProxyUrl = '/' + this.siteFolder + this.mapServerProxyUrl;\r\n this.ogcProxyUrl = '/' + this.siteFolder + this.ogcProxyUrl;\r\n }\r\n this.mapConfig = mapconfig;\r\n }\r\n\r\n public layerConfig = (\r\n recordType: LhlpRecordType,\r\n recordSubType: LhlpRecordSubType = null,\r\n opts: IVectorLayerGroupConfig = {},\r\n isPublic: boolean = false,\r\n assetId: number = 0\r\n ): IVectorLayerGroupConfig | IWmsLayerGroupConfig =>\r\n {\r\n let layerConfig: IVectorLayerGroupConfig = null;\r\n\r\n if (recordSubType !== null) {\r\n\r\n switch (recordSubType) {\r\n\r\n case LhlpRecordSubType.AssetTypeBuilding:\r\n layerConfig = this.AssetTypeBuilding(opts, isPublic);\r\n break;\r\n \r\n case LhlpRecordSubType.AssetTypeParkOrGarden:\r\n layerConfig = this.AssetTypeParkOrGarden(opts, isPublic);\r\n break;\r\n \r\n case LhlpRecordSubType.AssetTypeLandmarkOrArtwork:\r\n layerConfig = this.AssetTypeLandmarkOrArtwork(opts, isPublic);\r\n break;\r\n \r\n case LhlpRecordSubType.AssetTypeOtherSiteStructure:\r\n layerConfig = this.AssetTypeOtherSiteStructure(opts, isPublic);\r\n break; \r\n\r\n case LhlpRecordSubType.ListedBuilding:\r\n layerConfig = this.ListedBuilding(opts);\r\n break;\r\n\r\n case LhlpRecordSubType.ScheduledMonument:\r\n layerConfig = this.ScheduledMonument(opts);\r\n break; \r\n \r\n case LhlpRecordSubType.RegisteredParkAndGarden:\r\n layerConfig = this.RegisteredParkAndGarden(opts);\r\n break; \r\n\r\n case LhlpRecordSubType.Battlefield:\r\n layerConfig = this.Battlefield(opts);\r\n break; \r\n\r\n case LhlpRecordSubType.ProtectedWreck:\r\n layerConfig = this.ProtectedWreck(opts);\r\n break; \r\n\r\n case LhlpRecordSubType.WorldHeritageSite:\r\n layerConfig = this.WorldHeritageSite(opts);\r\n break;\r\n }\r\n }\r\n\r\n if(layerConfig === null) {\r\n \r\n switch (recordType) { \r\n case LhlpRecordType.LocalListArea:\r\n layerConfig = this.LocalListArea(opts);\r\n break;\r\n\r\n case LhlpRecordType.LocalListSubAreas:\r\n layerConfig = this.LocalListSubAreas(opts);\r\n break;\r\n\r\n case LhlpRecordType.ASSET:\r\n layerConfig = this.Asset(opts, recordSubType, assetId);\r\n }\r\n }\r\n\r\n return layerConfig;\r\n }\r\n\r\n public rootSiteLayerConfig = (\r\n recordType: LhlpRecordType,\r\n recordSubType: LhlpRecordSubType = null,\r\n opts: IVectorLayerGroupConfig = {}\r\n ): IVectorLayerGroupConfig | IWmsLayerGroupConfig =>\r\n {\r\n let layerConfig: IVectorLayerGroupConfig = null;\r\n\r\n if (recordSubType !== null) {\r\n\r\n switch (recordSubType) {\r\n\r\n case LhlpRecordSubType.AssetTypeBuilding:\r\n layerConfig = this.AssetTypeBuildingAll(opts);\r\n break;\r\n \r\n case LhlpRecordSubType.AssetTypeParkOrGarden:\r\n layerConfig = this.AssetTypeParkOrGardenAll(opts);\r\n break;\r\n \r\n case LhlpRecordSubType.AssetTypeLandmarkOrArtwork:\r\n layerConfig = this.AssetTypeLandmarkOrArtworkAll(opts);\r\n break;\r\n \r\n case LhlpRecordSubType.AssetTypeOtherSiteStructure:\r\n layerConfig = this.AssetTypeOtherSiteStructureAll(opts);\r\n break;\r\n }\r\n }\r\n\r\n if(layerConfig === null) {\r\n \r\n switch (recordType) { \r\n case LhlpRecordType.LocalListArea:\r\n layerConfig = this.LocalListAreaAll(opts);\r\n break;\r\n\r\n case LhlpRecordType.LocalListSubAreas:\r\n layerConfig = this.LocalListSubAreasAll(opts);\r\n break;\r\n }\r\n }\r\n\r\n return layerConfig;\r\n }\r\n\r\n private Asset = (opts: IVectorLayerGroupConfig, subType: LhlpRecordSubType, assetId: number): IVectorLayerGroupConfig => {\r\n\r\n return {\r\n ...{\r\n displayName: \"Selected Asset\",\r\n ref: \"SelectAssetRecord\",\r\n type: LhlpRecordType.ASSET,\r\n subType: subType,\r\n strategy: VectorLayerStrategy.All,\r\n zoomToDataBounds: ZoomToDataBounds.Always, \r\n url: this.mapServerProxyUrl,\r\n legend: { polygon: true, line: false },\r\n visibleOnLoad: true,\r\n queryable:false,\r\n wfsParams: this.paramSource3857(),\r\n useWfsBboxRequestParameter: false,\r\n restrictMapExtentToDataBounds: false,\r\n urlParams: {\r\n assetId: assetId\r\n }, \r\n layers: [\r\n {\r\n layerName: \"AssetPointsById\",\r\n minZoom: 1,\r\n maxZoom: 19\r\n },\r\n {\r\n layerName: \"AssetPolygonsById\",\r\n minZoom: 1,\r\n maxZoom: 19\r\n }\r\n\r\n ]\r\n }, ...opts\r\n };\r\n }\r\n\r\n //this one currently won't work as map server is configured to want an asset type\r\n private Assets = (opts: IVectorLayerGroupConfig, isPublic: boolean = false): IVectorLayerGroupConfig => {\r\n let ispublic: string = isPublic?\"Public\":\"\";\r\n return {\r\n ...{\r\n displayName: \"Assets\",\r\n ref: \"Assets\" + ispublic,\r\n type: LhlpRecordType.ASSET,\r\n strategy: VectorLayerStrategy.Bbox,\r\n url: this.mapServerProxyUrl,\r\n urlParams: { \r\n assetTypeId: LhlpRecordSubType.NotSet,\r\n isPublic: isPublic?1:0,\r\n siteId: this.siteId,\r\n siteFolder: this.siteFolder\r\n },\r\n legend: { polygon: false, line: false },\r\n visibleOnFirstLoad: false,\r\n wfsParams: this.paramSource3857(),\r\n useWfsBboxRequestParameter: false,\r\n layers: [\r\n {\r\n layerName: \"AssetPoints\",\r\n minZoom: 1,\r\n maxZoom: 19\r\n },\r\n {\r\n layerName: \"AssetPolygons\",\r\n minZoom: 1,\r\n maxZoom: 19\r\n } \r\n ]\r\n }, ...opts\r\n };\r\n }\r\n\r\n private MakeAssetLayerTitleWithHelp = (subType: LhlpRecordSubType): string => { \r\n let displayName: string = \"Undefined in database?\";\r\n for(let typeStyle of this.mapConfig.TypeStyles) {\r\n if(typeStyle.TypeId == subType) {\r\n let layerName: string = typeStyle.LayerName;\r\n if(layerName) displayName = layerName; //override displayName if provided\r\n let layerHelpText: string = typeStyle.LayerHelpText;\r\n let layerHelpUrl: string = typeStyle.LayerHelpUrl;\r\n if(layerHelpText) {\r\n let helpIcon: string = ' ';\r\n displayName += helpIcon;\r\n }\r\n break;\r\n }\r\n } \r\n return \"\" + displayName + \"\";\r\n }\r\n\r\n private AssetTypeBuilding = (opts: IVectorLayerGroupConfig, isPublic: boolean = false): IVectorLayerGroupConfig => {\r\n let ispublic: string = isPublic?\"Public\":\"\"; \r\n let displayName: string = this.MakeAssetLayerTitleWithHelp(LhlpRecordSubType.AssetTypeBuilding);\r\n return {\r\n ...{\r\n displayName: displayName,\r\n ref: \"AssetTypeBuilding\" + ispublic,\r\n type: LhlpRecordType.ASSET,\r\n subType: LhlpRecordSubType.AssetTypeBuilding,\r\n strategy: VectorLayerStrategy.All, //Bbox strategy stopped working for some reason...\r\n url: this.mapServerProxyUrl,\r\n urlParams: { \r\n assetTypeId: LhlpRecordSubType.AssetTypeBuilding,\r\n isPublic: isPublic?1:0,\r\n siteId: this.siteId,\r\n siteFolder: this.siteFolder\r\n },\r\n legend: { polygon: true, line: false },\r\n visibleOnFirstLoad: true,\r\n wfsParams: this.paramSource3857(),\r\n useWfsBboxRequestParameter: false,\r\n layers: [\r\n {\r\n layerName: \"AssetPolygons\",\r\n minZoom: 1,\r\n maxZoom: 19\r\n },\r\n {\r\n layerName: \"AssetPoints\",\r\n minZoom: 1,\r\n maxZoom: 19\r\n },\r\n \r\n ]\r\n }, ...opts\r\n };\r\n }\r\n\r\n private AssetTypeParkOrGarden = (opts: IVectorLayerGroupConfig, isPublic: boolean = false): IVectorLayerGroupConfig => {\r\n let ispublic: string = isPublic?\"Public\":\"\";\r\n let displayName: string = this.MakeAssetLayerTitleWithHelp(LhlpRecordSubType.AssetTypeParkOrGarden);\r\n return {\r\n ...{\r\n displayName: displayName,\r\n ref: \"AssetTypeParkOrGarden\" + ispublic,\r\n type: LhlpRecordType.ASSET,\r\n subType: LhlpRecordSubType.AssetTypeParkOrGarden,\r\n strategy: VectorLayerStrategy.All,\r\n url: this.mapServerProxyUrl,\r\n urlParams: { \r\n assetTypeId: LhlpRecordSubType.AssetTypeParkOrGarden,\r\n isPublic: isPublic?1:0,\r\n siteId: this.siteId,\r\n siteFolder: this.siteFolder\r\n },\r\n legend: { polygon: true, line: false },\r\n visibleOnFirstLoad: true,\r\n wfsParams: this.paramSource3857(),\r\n useWfsBboxRequestParameter: false,\r\n layers: [\r\n {\r\n layerName: \"AssetPolygons\",\r\n minZoom: 1,\r\n maxZoom: 19\r\n },\r\n {\r\n layerName: \"AssetPoints\",\r\n minZoom: 1,\r\n maxZoom: 19\r\n }, \r\n ]\r\n }, ...opts\r\n };\r\n }\r\n\r\n private AssetTypeLandmarkOrArtwork = (opts: IVectorLayerGroupConfig, isPublic: boolean = false): IVectorLayerGroupConfig => {\r\n let ispublic: string = isPublic?\"Public\":\"\";\r\n let displayName: string = this.MakeAssetLayerTitleWithHelp(LhlpRecordSubType.AssetTypeLandmarkOrArtwork);\r\n return {\r\n ...{\r\n displayName: displayName,\r\n ref: \"AssetTypeLandmarkOrArtwork\" + ispublic,\r\n type: LhlpRecordType.ASSET,\r\n subType: LhlpRecordSubType.AssetTypeLandmarkOrArtwork,\r\n strategy: VectorLayerStrategy.All,\r\n url: this.mapServerProxyUrl,\r\n urlParams: { \r\n assetTypeId: LhlpRecordSubType.AssetTypeLandmarkOrArtwork,\r\n isPublic: isPublic?1:0,\r\n siteId: this.siteId,\r\n siteFolder: this.siteFolder\r\n },\r\n legend: { polygon: true, line: false },\r\n visibleOnFirstLoad: true,\r\n wfsParams: this.paramSource3857(),\r\n useWfsBboxRequestParameter: false,\r\n layers: [\r\n {\r\n layerName: \"AssetPolygons\",\r\n minZoom: 1,\r\n maxZoom: 19\r\n },\r\n {\r\n layerName: \"AssetPoints\",\r\n minZoom: 1,\r\n maxZoom: 19\r\n }, \r\n ]\r\n }, ...opts\r\n };\r\n }\r\n\r\n private AssetTypeOtherSiteStructure = (opts: IVectorLayerGroupConfig, isPublic: boolean = false): IVectorLayerGroupConfig => {\r\n let ispublic: string = isPublic?\"Public\":\"\";\r\n let displayName: string = this.MakeAssetLayerTitleWithHelp(LhlpRecordSubType.AssetTypeOtherSiteStructure);\r\n return {\r\n ...{\r\n displayName: displayName,\r\n ref: \"AssetTypeOtherSiteStructure\" + ispublic,\r\n type: LhlpRecordType.ASSET,\r\n subType: LhlpRecordSubType.AssetTypeOtherSiteStructure,\r\n strategy: VectorLayerStrategy.All,\r\n url: this.mapServerProxyUrl,\r\n urlParams: { \r\n assetTypeId: LhlpRecordSubType.AssetTypeOtherSiteStructure,\r\n isPublic: isPublic?1:0,\r\n siteId: this.siteId,\r\n siteFolder: this.siteFolder\r\n },\r\n legend: { polygon: true, line: false },\r\n visibleOnFirstLoad: true,\r\n wfsParams: this.paramSource3857(),\r\n useWfsBboxRequestParameter: false,\r\n layers: [\r\n {\r\n layerName: \"AssetPolygons\",\r\n minZoom: 1,\r\n maxZoom: 19\r\n },\r\n {\r\n layerName: \"AssetPoints\",\r\n minZoom: 1,\r\n maxZoom: 19\r\n }, \r\n ]\r\n }, ...opts\r\n };\r\n }\r\n\r\n private LocalListSubAreas = (opts: IWmsLayerGroupConfig): IWmsLayerGroupConfig => {\r\n return {\r\n ...{\r\n displayName: this.mapConfig.SubAreaLayerTitle,\r\n ref: \"LocalListSubAreas\",\r\n type: LhlpRecordType.LocalListSubAreas,\r\n url: this.mapServerProxyUrl,\r\n urlParams: { \r\n siteId: this.siteId,\r\n siteFolder: this.siteFolder\r\n },\r\n visibleOnFirstLoad: false,\r\n info_format: \"text/html\",\r\n layers: [\r\n {\r\n layerName: \"ProjectSubAreaPolygons\",\r\n minZoom: 1,\r\n maxZoom: 19\r\n }\r\n ]\r\n }, ...opts\r\n };\r\n }\r\n\r\n private LocalListArea = (opts: IWmsLayerGroupConfig): IWmsLayerGroupConfig => {\r\n return {\r\n ...{\r\n displayName: \"Local List Area\",\r\n ref: \"LocalListArea\",\r\n type: LhlpRecordType.LocalListArea,\r\n url: this.mapServerProxyUrl,\r\n urlParams: { \r\n siteId: this.siteId,\r\n siteFolder: this.siteFolder\r\n },\r\n visibleOnFirstLoad: true,\r\n info_format: \"text/html\",\r\n layers: [\r\n {\r\n layerName: \"ProjectAreaPolygons\",\r\n minZoom: 1,\r\n maxZoom: 19\r\n }\r\n ]\r\n }, ...opts\r\n };\r\n }\r\n\r\n\r\n //******************************************************************************************************************************** */\r\n //ROOT SITE MAP LAYERS - providing an overview of all project areas and assets\r\n\r\n private AssetTypeBuildingAll = (opts: IVectorLayerGroupConfig): IVectorLayerGroupConfig => { \r\n let displayName: string = this.MakeAssetLayerTitleWithHelp(LhlpRecordSubType.AssetTypeBuilding);\r\n return {\r\n ...{\r\n displayName: displayName,\r\n ref: \"AssetTypeBuildingAll\",\r\n type: LhlpRecordType.ASSET,\r\n subType: LhlpRecordSubType.AssetTypeBuilding,\r\n strategy: VectorLayerStrategy.All, //Bbox strategy stopped working for some reason...\r\n url: this.mapServerProxyUrl,\r\n urlParams: { \r\n assetTypeId: LhlpRecordSubType.AssetTypeBuilding\r\n },\r\n legend: { polygon: true, line: false },\r\n visibleOnFirstLoad: true,\r\n wfsParams: this.paramSource3857(),\r\n useWfsBboxRequestParameter: false,\r\n layers: [\r\n {\r\n layerName: \"AllListedAssetPolygons\",\r\n minZoom: 11,\r\n maxZoom: 19\r\n },\r\n {\r\n layerName: \"AllListedAssetPoints\",\r\n minZoom: 1,\r\n maxZoom: 19\r\n }, \r\n ]\r\n }, ...opts\r\n };\r\n }\r\n\r\n private AssetTypeParkOrGardenAll = (opts: IVectorLayerGroupConfig): IVectorLayerGroupConfig => {\r\n let displayName: string = this.MakeAssetLayerTitleWithHelp(LhlpRecordSubType.AssetTypeParkOrGarden);\r\n return {\r\n ...{\r\n displayName: displayName,\r\n ref: \"AssetTypeParkOrGardenAll\",\r\n type: LhlpRecordType.ASSET,\r\n subType: LhlpRecordSubType.AssetTypeParkOrGarden,\r\n strategy: VectorLayerStrategy.All,\r\n url: this.mapServerProxyUrl,\r\n urlParams: { \r\n assetTypeId: LhlpRecordSubType.AssetTypeParkOrGarden\r\n },\r\n legend: { polygon: true, line: false },\r\n visibleOnFirstLoad: true,\r\n wfsParams: this.paramSource3857(),\r\n useWfsBboxRequestParameter: false,\r\n layers: [\r\n {\r\n layerName: \"AllListedAssetPolygons\",\r\n minZoom: 11,\r\n maxZoom: 19\r\n },\r\n {\r\n layerName: \"AllListedAssetPoints\",\r\n minZoom: 1,\r\n maxZoom: 19\r\n }, \r\n ]\r\n }, ...opts\r\n };\r\n }\r\n\r\n private AssetTypeLandmarkOrArtworkAll = (opts: IVectorLayerGroupConfig): IVectorLayerGroupConfig => {\r\n let displayName: string = this.MakeAssetLayerTitleWithHelp(LhlpRecordSubType.AssetTypeLandmarkOrArtwork);\r\n return {\r\n ...{\r\n displayName: displayName,\r\n ref: \"AssetTypeLandmarkOrArtworkAll\",\r\n type: LhlpRecordType.ASSET,\r\n subType: LhlpRecordSubType.AssetTypeLandmarkOrArtwork,\r\n strategy: VectorLayerStrategy.All,\r\n url: this.mapServerProxyUrl,\r\n urlParams: { \r\n assetTypeId: LhlpRecordSubType.AssetTypeLandmarkOrArtwork\r\n },\r\n legend: { polygon: true, line: false },\r\n visibleOnFirstLoad: true,\r\n wfsParams: this.paramSource3857(),\r\n useWfsBboxRequestParameter: false,\r\n layers: [\r\n {\r\n layerName: \"AllListedAssetPolygons\",\r\n minZoom: 11,\r\n maxZoom: 19\r\n },\r\n {\r\n layerName: \"AllListedAssetPoints\",\r\n minZoom: 1,\r\n maxZoom: 19\r\n }, \r\n ]\r\n }, ...opts\r\n };\r\n }\r\n\r\n private AssetTypeOtherSiteStructureAll = (opts: IVectorLayerGroupConfig): IVectorLayerGroupConfig => {\r\n let displayName: string = this.MakeAssetLayerTitleWithHelp(LhlpRecordSubType.AssetTypeOtherSiteStructure);\r\n return {\r\n ...{\r\n displayName: displayName,\r\n ref: \"AssetTypeOtherSiteStructureAll\",\r\n type: LhlpRecordType.ASSET,\r\n subType: LhlpRecordSubType.AssetTypeOtherSiteStructure,\r\n strategy: VectorLayerStrategy.All,\r\n url: this.mapServerProxyUrl,\r\n urlParams: { \r\n assetTypeId: LhlpRecordSubType.AssetTypeOtherSiteStructure,\r\n },\r\n legend: { polygon: true, line: false },\r\n visibleOnFirstLoad: true,\r\n wfsParams: this.paramSource3857(),\r\n useWfsBboxRequestParameter: false,\r\n layers: [\r\n {\r\n layerName: \"AllListedAssetPolygons\",\r\n minZoom: 11,\r\n maxZoom: 19\r\n },\r\n {\r\n layerName: \"AllListedAssetPoints\",\r\n minZoom: 1,\r\n maxZoom: 19\r\n }, \r\n ]\r\n }, ...opts\r\n };\r\n }\r\n\r\n private LocalListSubAreasAll = (opts: IWmsLayerGroupConfig): IWmsLayerGroupConfig => {\r\n return {\r\n ...{\r\n displayName: this.mapConfig.SubAreaLayerTitle,\r\n ref: \"LocalListSubAreasAll\",\r\n type: LhlpRecordType.LocalListSubAreas,\r\n url: this.mapServerProxyUrl,\r\n urlParams: { \r\n siteId: this.siteId,\r\n siteFolder: this.siteFolder\r\n },\r\n visibleOnFirstLoad: false,\r\n info_format: \"text/html\",\r\n layers: [\r\n {\r\n layerName: \"SubAreaPolygons\",\r\n minZoom: 1,\r\n maxZoom: 19\r\n }\r\n ]\r\n }, ...opts\r\n };\r\n }\r\n\r\n private LocalListAreaAll = (opts: IWmsLayerGroupConfig): IWmsLayerGroupConfig => {\r\n return {\r\n ...{\r\n displayName: \"Local List Area\",\r\n ref: \"LocalListAreaAll\",\r\n type: LhlpRecordType.LocalListArea,\r\n url: this.mapServerProxyUrl,\r\n urlParams: { \r\n siteId: this.siteId,\r\n siteFolder: this.siteFolder\r\n },\r\n visibleOnFirstLoad: true,\r\n info_format: \"text/html\",\r\n layers: [\r\n {\r\n layerName: \"AreaPolygons\",\r\n minZoom: 1,\r\n maxZoom: 19\r\n }\r\n ]\r\n }, ...opts\r\n };\r\n }\r\n\r\n\r\n\r\n //******************************************************************************************************************************** */\r\n //NHLE Layers\r\n private MakeNHLELayerTitleWithHelp = (layerName: string, layerHelpUrl: string): string => { \r\n let displayName: string = layerName;\r\n let layerHelpText: string = layerName + \" are legally protected through their inclusion on the National Heritage List for England (NHLE)\";\r\n let helpIcon: string = ' ';\r\n displayName += helpIcon;\r\n return \"\" + displayName + \"\";\r\n }\r\n\r\n private ListedBuilding = (opts: IWmsLayerGroupConfig): IWmsLayerGroupConfig => {\r\n return {\r\n ...{\r\n displayName: this.MakeNHLELayerTitleWithHelp(\r\n \"Listed Buildings\", \r\n \"https://historicengland.org.uk/listing/what-is-designation/listed-buildings/\"\r\n ),\r\n ref: \"ListedBuildings\",\r\n type: LhlpRecordType.NHLE,\r\n subType: LhlpRecordSubType.ListedBuilding,\r\n url: this.ogcProxyUrl,\r\n visibleOnFirstLoad: false,\r\n info_format: \"text/html\",\r\n layers: [\r\n {\r\n layerName: \"ListedBuildings\",\r\n minZoom: 1,\r\n maxZoom: 19\r\n }\r\n ]\r\n }, ...opts\r\n };\r\n }\r\n\r\n private ScheduledMonument = (opts: IWmsLayerGroupConfig): IWmsLayerGroupConfig => {\r\n return {\r\n ...{\r\n displayName: this.MakeNHLELayerTitleWithHelp(\r\n \"Scheduled Monuments\", \r\n \"https://historicengland.org.uk/listing/what-is-designation/scheduled-monuments/\"\r\n ),\r\n ref: \"ScheduledMonuments\",\r\n type: LhlpRecordType.NHLE,\r\n subType: LhlpRecordSubType.ScheduledMonument,\r\n url: this.ogcProxyUrl,\r\n visibleOnFirstLoad: false,\r\n info_format: \"text/html\",\r\n layers: [\r\n {\r\n layerName: \"ScheduledMonuments\",\r\n minZoom: 1,\r\n maxZoom: 19\r\n }\r\n ]\r\n }, ...opts\r\n };\r\n }\r\n \r\n private RegisteredParkAndGarden = (opts: IWmsLayerGroupConfig): IWmsLayerGroupConfig => {\r\n return {\r\n ...{\r\n displayName: this.MakeNHLELayerTitleWithHelp(\r\n \"Parks and Gardens\", \r\n \"https://historicengland.org.uk/listing/what-is-designation/registered-parks-and-gardens/\"\r\n ),\r\n ref: \"ParksandGardens\",\r\n type: LhlpRecordType.NHLE,\r\n subType: LhlpRecordSubType.RegisteredParkAndGarden,\r\n url: this.ogcProxyUrl,\r\n visibleOnFirstLoad: false,\r\n info_format: \"text/html\",\r\n layers: [\r\n {\r\n layerName: \"ParksandGardens\",\r\n minZoom: 1,\r\n maxZoom: 19\r\n }\r\n ]\r\n }, ...opts\r\n };\r\n }\r\n\r\n private Battlefield = (opts: IWmsLayerGroupConfig): IWmsLayerGroupConfig => {\r\n return {\r\n ...{\r\n displayName: this.MakeNHLELayerTitleWithHelp(\r\n \"Battlefields\",\r\n \"https://historicengland.org.uk/listing/what-is-designation/registered-battlefields/\"\r\n ),\r\n ref: \"Battlefields\",\r\n type: LhlpRecordType.NHLE,\r\n subType: LhlpRecordSubType.Battlefield,\r\n url: this.ogcProxyUrl,\r\n visibleOnFirstLoad: false,\r\n info_format: \"text/html\",\r\n layers: [\r\n {\r\n layerName: \"Battlefields\",\r\n minZoom: 1,\r\n maxZoom: 19\r\n }\r\n ]\r\n }, ...opts\r\n };\r\n }\r\n\r\n private ProtectedWreck = (opts: IWmsLayerGroupConfig): IWmsLayerGroupConfig => {\r\n return {\r\n ...{\r\n displayName: this.MakeNHLELayerTitleWithHelp(\r\n \"Protected Wrecks\",\r\n \"https://historicengland.org.uk/listing/what-is-designation/protected-wreck-sites/\"\r\n ),\r\n ref: \"ProtectedWrecks\",\r\n type: LhlpRecordType.NHLE,\r\n subType: LhlpRecordSubType.ProtectedWreck,\r\n url: this.ogcProxyUrl,\r\n visibleOnFirstLoad: false,\r\n info_format: \"text/html\",\r\n layers: [\r\n {\r\n layerName: \"ProtectedWrecks\",\r\n minZoom: 1,\r\n maxZoom: 19\r\n }\r\n ]\r\n }, ...opts\r\n };\r\n }\r\n\r\n private MakeWorldHeritageLayerTitleWithHelp = (layerName: string, layerHelpUrl: string): string => { \r\n let displayName: string = layerName;\r\n let layerHelpText: string = \"World Heritage Sites are legally protected through their inclusion on the World Heritage List.\";\r\n let helpIcon: string = ' ';\r\n displayName += helpIcon;\r\n return \"\" + displayName + \"\";\r\n }\r\n\r\n private WorldHeritageSite = (opts: IWmsLayerGroupConfig): IWmsLayerGroupConfig => {\r\n return {\r\n ...{\r\n displayName: this.MakeWorldHeritageLayerTitleWithHelp(\r\n \"World Heritage Sites\",\r\n \"https://whc.unesco.org/\"\r\n ),\r\n ref: \"WorldHeritageSites\",\r\n type: LhlpRecordType.NHLE,\r\n subType: LhlpRecordSubType.WorldHeritageSite,\r\n url: this.ogcProxyUrl,\r\n visibleOnFirstLoad: false,\r\n info_format: \"text/html\",\r\n layers: [\r\n {\r\n layerName: \"WorldHeritageSites\",\r\n minZoom: 1,\r\n maxZoom: 19\r\n }\r\n ]\r\n }, ...opts\r\n };\r\n }\r\n}\r\n\r\n","import {\r\n BaseLayer,\r\n MapOptions\r\n} from \"esdm-map/dist\";\r\nimport { BaseLayerType } from \"esdm-map/dist/baselayers/BaseLayerType\";\r\nimport { MapSettings } from \"../defs/MapSettings\";\r\nimport { LhlpBaseLayers } from \"../Layers/LhlpBaseLayerFactory\";\r\n\r\nimport { boundingExtent } from 'ol/extent';\r\nimport { TenantSettingsBaseLayerResolver } from \"../Layers/TenantSettingsBaseLayerResolver\";\r\n\r\nexport class DefaultMapOptions {\r\n\r\n //needed for base layer reprojection\r\n //static OS_extent = boundingExtent([-841259.18, 6405988.48, 404314.68, 8733289.16]);\r\n\r\n public static GetDefaultOptions(\r\n mapElementId: string,\r\n mapStoreKey: string,\r\n mapSettings: MapSettings\r\n ): MapOptions { \r\n\r\n if (mapSettings != null) {\r\n let resolver = new TenantSettingsBaseLayerResolver(mapSettings);\r\n let baseLayers: BaseLayerType[] = resolver.getBaseLayerTypes();\r\n\r\n let opt = new MapOptions();\r\n opt.baseMaps = baseLayers;\r\n opt.defaultBaseMap = baseLayers[0];\r\n opt.enableBoundsTracking = true;\r\n opt.mapElementId = mapElementId;\r\n opt.mapStoreKey = mapStoreKey;\r\n\r\n opt.bingApiKey = mapSettings.BingApiKey;\r\n opt.esdmOsmApiKey = mapSettings.EsdmOsmApiKey;\r\n opt.mapCentre = mapSettings.GetCentre();\r\n opt.mapZoom = mapSettings.MapZoom;\r\n opt.minZoom = mapSettings.MinZoom;\r\n opt.maxZoom = mapSettings.MaxZoom;\r\n opt.extent = mapSettings.GetExtents(); \r\n\r\n opt.displayProjection = \"EPSG:3857\";\r\n opt.dataProjection = \"EPSG:3857\";\r\n opt.dragRotateAndZoom = false;\r\n opt.maxZoomToBounds = 15;\r\n opt.zoomToNearestBounds = false;\r\n return opt;\r\n }\r\n\r\n return null; \r\n }\r\n\r\n}","import { MapContextMenu } from \"esdm-map/dist/map/tools/MapContextMenu\";\r\nimport { Feature } from \"ol\";\r\nimport Point from \"ol/geom/Point\";\r\nimport {Icon, Text, Style, Fill, Stroke} from 'ol/style';\r\nimport * as olProj from 'ol/proj';\r\nimport * as esdmGridReference from \"esdm-gridreference\";\r\n\r\n\r\nexport class LhlpMapContextMenu extends MapContextMenu {\r\n\r\n public addMarker = (coordinate: [number, number]): void => {\r\n\r\n var coords = olProj.transform(coordinate, this._map.options.dataProjection, 'EPSG:27700');\r\n var ngr = new esdmGridReference.OSGB();\r\n ngr.SetGridCoordinates(coords[0], coords[1]);\r\n let iconText: string = ngr.GetGridRef(5).split(' ').join(''); //remove all spaces \r\n\r\n let iconStyle = new Style({\r\n text: new Text({\r\n text: '\\uf3c5',\r\n font: '900 35px \"Font Awesome 6 Pro\"',\r\n textBaseline: 'bottom',\r\n offsetY: 2,\r\n offsetX: -1,\r\n fill: new Fill({\r\n color: 'black',\r\n })\r\n }) \r\n });\r\n\r\n let textStyle = new Style({\r\n text: new Text({\r\n offsetY: 25,\r\n textBaseline: 'bottom',\r\n text: iconText,\r\n font: '15px Open Sans,sans-serif',\r\n fill: new Fill({ color: '#111' }),\r\n stroke: new Stroke({ color: '#eee', width: 2 })\r\n })\r\n });\r\n \r\n let iconFeature = new Feature({\r\n type: 'removable',\r\n geometry: new Point(coordinate)\r\n });\r\n\r\n let textFeature = new Feature({\r\n type: 'removable',\r\n geometry: new Point(coordinate)\r\n });\r\n\r\n iconFeature.setStyle(iconStyle);\r\n textFeature.setStyle(textStyle);\r\n this._vectorLayer.getSource().addFeature(iconFeature);\r\n this._vectorLayer.getSource().addFeature(textFeature);\r\n }​​​\r\n\r\n}","export class LhlpMapConfig {\r\n public StatusStyles: Array; \r\n public TypeStyles: Array;\r\n\r\n public SubAreaLayerTitle: string;\r\n\r\n public CreateAssetUrl: string;\r\n public EditAssetPointUrl: string;\r\n public EditAssetPolygonUrl: string;\r\n\r\n public constructor() {\r\n this.StatusStyles = [ new LhlpStatusLookup() ];\r\n this.TypeStyles = [ new LhlpTypeLookup() ];\r\n }\r\n}\r\n\r\nexport class LhlpStatusLookup {\r\n public StatusId: string;\r\n public StatusColour: string;\r\n}\r\n\r\nexport class LhlpTypeLookup {\r\n public TypeId: string;\r\n public TypeCharacter: string;\r\n public LayerName: string;\r\n public LayerHelpText: string;\r\n public LayerHelpUrl: string;\r\n}","\r\nexport enum LhlpRecordType {\r\n //NHLE\r\n NHLE = \"nhle\",\r\n //LHLP\r\n ASSET = \"asset\",\r\n LocalListArea = \"LocalListArea\",\r\n LocalListSubAreas = \"LocalListSubAreas\",\r\n} \r\n\r\nexport enum LhlpRecordSubType {\r\n NotSet = \"\",\r\n //NHLE\r\n Battlefield = \"Battlefields\",\r\n ListedBuilding = \"ListedBuildings\",\r\n RegisteredParkAndGarden = \"ParksandGardens\",\r\n ProtectedWreck = \"ProtectedWrecks\",\r\n ScheduledMonument = \"ScheduledMonuments\",\r\n WorldHeritageSite = \"WorldHeritageSites\",\r\n //LHLP\r\n AssetTypeBuilding = \"1\",\r\n AssetTypeParkOrGarden = \"2\",\r\n AssetTypeLandmarkOrArtwork = \"3\",\r\n AssetTypeOtherSiteStructure = \"4\",\r\n} \r\n","import { MapSettings } from \"./MapSettings\";\r\n\r\nexport interface ILhlpTenantSettingsFactory {\r\n GetSettings(): LhlpTenantSettings;\r\n}\r\n\r\nexport class LhlpTenantSettingsFactory implements ILhlpTenantSettingsFactory {\r\n\r\n public GetSettings(): LhlpTenantSettings {\r\n var s = $(\"#tenantSettings\").data(\"tenantSettings\");\r\n\r\n if (s) { \r\n return new LhlpTenantSettings(s);\r\n }\r\n\r\n console.error(\"Tenant settings not found\");\r\n return null;\r\n }\r\n}\r\n\r\nexport class LhlpTenantSettings {\r\n public MapSettings: MapSettings;\r\n\r\n public constructor(obj) { \r\n this.MapSettings = Object.assign(new MapSettings(), obj[\"MapSettings\"]);\r\n }\r\n}\r\n","export class LhlpIdentity {\r\n\r\n public static fetch(): Promise {\r\n return new Promise(\r\n function (resolve, reject) {\r\n\r\n let target: string = \"api/identity/get\";\r\n\r\n // jk - finding endpoint by above relative URL was failing for tenants under some circumstances\r\n let ele = $(\"#theMap\");\r\n if (ele.length === 1) {\r\n let siteFolder: string = ele.data(\"site-folder\");\r\n if (siteFolder.length > 0) {\r\n target = `/${siteFolder}/${target}`;\r\n }\r\n }\r\n\r\n $.getJSON(target, function (response) {\r\n resolve(response);\r\n }).fail(function () {\r\n resolve(null);\r\n });\r\n }\r\n );\r\n }\r\n}\r\n\r\nexport class LhlpUser {\r\n public userId: string;\r\n public roles: Array;\r\n}","export class MapSettings {\r\n public MapCentreEasting: number;\r\n public MapCentreNorthing: number;\r\n public MinZoom: number;\r\n public MaxZoom: number;\r\n public MapZoom: number;\r\n public ExtentMinX: number;\r\n public ExtentMinY: number;\r\n public ExtentMaxX: number;\r\n public ExtentMaxY: number;\r\n public BingApiKey: string;\r\n public EsdmOsmApiKey: string;\r\n public GazetteerApiKey: string;\r\n public BaseMaps: BaseMap[];\r\n public OtherMapWMSLayers: Layer[];\r\n\r\n public GetExtents(): [number, number, number, number] {\r\n return [this.ExtentMinX, this.ExtentMinY, this.ExtentMaxX, this.ExtentMaxY];\r\n }\r\n\r\n public GetCentre(): [number, number] {\r\n return [this.MapCentreEasting, this.MapCentreNorthing];\r\n }\r\n}\r\n\r\nexport class BaseMap {\r\n public Order: number;\r\n public BaseMapType: string;\r\n}\r\n\r\nexport class Layer { \r\n public WMSURL: string;\r\n public LayerName: string;\r\n public WMSServerLayerNamesCSV: string;\r\n public HelpLinkURL: string;\r\n}","\r\n\r\nimport * as olProj from 'ol/proj';\r\nimport * as olExtent from 'ol/extent';\r\nimport Style from \"ol/style/Style\";\r\nimport TextStyle from \"ol/style/Text\";\r\nimport Fill from \"ol/style/Fill\";\r\n\r\nimport { \r\n GazetteerSearchType,\r\n IMap,\r\n IMappingTextPack\r\n} from 'esdm-map';\r\n\r\nimport {\r\n IGazetteerEntry,\r\n IOSGazetteerResult,\r\n IOsOpenNamesSearchParams\r\n} from \"esdm-map/dist/gazetteer/os\";\r\nimport { LhlpGazetteerBase } from './LhlpGazetteerBase';\r\n\r\ninterface IOsOpenSpaceResults {\r\n searchType: GazetteerSearchType;\r\n results: []\r\n}\r\n\r\nexport class LhlpGazetteer extends LhlpGazetteerBase {\r\n\r\n private _osInitialised: boolean = false;\r\n private _currentSearchTerm: string = \"\";\r\n private _helpElement: JQuery;\r\n private _osNamesUrl: string = \"https://api.os.uk/search/names/v1/find\";\r\n\r\n constructor(\r\n _map: IMap,\r\n _apikey: string,\r\n _textPack: IMappingTextPack,\r\n _elementId: string = \"gazetteer\"\r\n ) {\r\n super(_map, _textPack, _apikey, _elementId);\r\n this.init();\r\n }\r\n\r\n private init = (): void => {\r\n if (!this._osInitialised) {\r\n\r\n //add extra div with help message\r\n //Street name searching takes account of the current map view. If you can't find what you're looking for in this list, try zooming out or moving the map to cover the area where the street is located.\r\n this._helpElement = $(\"\")\r\n .insertAfter(this.resultsSelect);\r\n\r\n let self = this;\r\n $(\".clearer\").click(function () {\r\n self._helpElement.hide();\r\n });\r\n\r\n this.locationPinStyle = new Style({\r\n text: new TextStyle({\r\n text: '\\uf3c5',\r\n font: 'normal 52px \"Font Awesome 6 Pro\"',\r\n textBaseline: 'bottom',\r\n fill: new Fill({\r\n color: '#ff0000'\r\n })\r\n })\r\n });\r\n\r\n this._osInitialised = true;\r\n }\r\n }\r\n\r\n protected find = (searchTerm: string): void => {\r\n let searchType: GazetteerSearchType = this.getSearchType(searchTerm);\r\n\r\n if (searchTerm.trim() === \"\") {\r\n return;\r\n }\r\n\r\n this._currentSearchTerm = searchTerm;\r\n\r\n //remove all existing entries \r\n this.resultsSelect.empty();\r\n this.resultsSelect.hide();\r\n this._helpElement.hide();\r\n this.noResults.hide();\r\n this.pointLayer.getSource().clear();\r\n\r\n switch (searchType) {\r\n case GazetteerSearchType.Postcode:\r\n this.findPostcode(searchTerm);\r\n break;\r\n\r\n case GazetteerSearchType.Location:\r\n this.findAddressAndLocation(searchTerm);\r\n break;\r\n }\r\n }\r\n\r\n private findPostcode = (searchTerm: string): void => {\r\n let self = this;\r\n let error = function (error) {\r\n self.loadingIndicator.hide();\r\n console.error(error);\r\n }\r\n let success = function (result: any) {\r\n let osResult: IOsOpenSpaceResults = {\r\n searchType: GazetteerSearchType.Postcode,\r\n results: result.results\r\n };\r\n self.onSearchGazetteerResult(osResult);\r\n }\r\n\r\n let search = this.searchGazetteer({\r\n url: this._osNamesUrl,\r\n //key: \"1D5aW6pbptU2bufc2DBAux8JYvtrbeon\",\r\n key: self._apikey,\r\n query: searchTerm,\r\n maxResults: 20,\r\n fq: \"LOCAL_TYPE:Postcode\"\r\n });\r\n $.when(search)\r\n .then(success, error)\r\n .always(function () { self.loadingIndicator.hide(); });\r\n }\r\n\r\n private findAddressAndLocation = (searchTerm: string): void => {\r\n let self = this;\r\n\r\n let success = function (result1: any, result2: any) {\r\n let combinedResult: IOsOpenSpaceResults = {\r\n searchType: GazetteerSearchType.LocationAndAddressLine,\r\n results: []\r\n };\r\n\r\n let data = result1[0] || result1;\r\n let res = [];\r\n if (data.results && data.results.length > 0) {\r\n res = res.concat(data.results);\r\n }\r\n data = result2[0] || result2;\r\n if (data.results && data.results.length > 0) {\r\n res = res.concat(data.results);\r\n }\r\n\r\n combinedResult.results = res;\r\n self.onSearchGazetteerResult(combinedResult);\r\n }\r\n\r\n let error = function (error) {\r\n self.loadingIndicator.hide();\r\n console.error(error);\r\n }\r\n \r\n var searchStreet = $(\"#gazetteerSearchStreets\").prop(\"checked\");\r\n if (searchStreet == true) {\r\n $.when(this.findLocation(searchTerm), this.findAddress(searchTerm))\r\n .then(success, error)\r\n .always(function () { self.loadingIndicator.hide(); });\r\n } else {\r\n $.when(this.findLocation(searchTerm))\r\n .then(success, error)\r\n .always(function () { self.loadingIndicator.hide(); });\r\n }\r\n \r\n }\r\n\r\n private findLocation = (searchTerm: string): JQuery.jqXHR => {\r\n return this.searchGazetteer({\r\n url: this._osNamesUrl,\r\n //key: \"1D5aW6pbptU2bufc2DBAux8JYvtrbeon\",\r\n key: this._apikey,\r\n query: searchTerm,\r\n maxResults: 10,\r\n fq: \"LOCAL_TYPE:City LOCAL_TYPE:Town LOCAL_TYPE:Hamlet LOCAL_TYPE:Other_Settlement LOCAL_TYPE:Village LOCAL_TYPE:Suburban_Area\"\r\n });\r\n }\r\n\r\n private findAddress = (searchTerm: string): JQuery.jqXHR => {\r\n let extent = this._map.getReprojectedMapExtent(\"EPSG:27700\");\r\n let bounds: [string, string, string, string] = [extent.minx.toFixed(2), extent.miny.toFixed(2), extent.maxx.toFixed(2), extent.maxy.toFixed(2)];\r\n\r\n return this.searchGazetteer({\r\n url: this._osNamesUrl,\r\n //key: \"1D5aW6pbptU2bufc2DBAux8JYvtrbeon\",\r\n key: this._apikey,\r\n query: searchTerm,\r\n maxResults: 10,\r\n fq: \"LOCAL_TYPE:Named_Road\",\r\n bounds: bounds.join(\",\")\r\n });\r\n }\r\n\r\n private searchGazetteer = (params: IOsOpenNamesSearchParams): JQuery.jqXHR => {\r\n let self = this;\r\n let url = params.url;\r\n delete params.url;\r\n\r\n self.loadingIndicator.show();\r\n\r\n return $.ajax({\r\n url: url,\r\n data: params,\r\n dataType: \"json\"\r\n });\r\n }\r\n\r\n private onSearchGazetteerResult = (e: IOsOpenSpaceResults): void => {\r\n if (e.results && e.results.length > 0) {\r\n //one or more matches\r\n this.processSearchResult(e, 17);\r\n\r\n } else {\r\n this.resultsSelect.empty();\r\n this.resultsSelect.append(``);\r\n this.noResults.show();\r\n }\r\n }\r\n\r\n private processSearchResult = (\r\n osResults: IOsOpenSpaceResults,\r\n zoomToLevel: number\r\n ): void => {\r\n let self = this;\r\n let locations = new Array(),\r\n location: IOSGazetteerResult;\r\n\r\n //remove all existing entries \r\n self.resultsSelect.empty();\r\n self.resultsSelect.hide();\r\n self.noResults.hide();\r\n\r\n let mapExtent = self._map.options.extent;\r\n\r\n let getDescOrValue = function (g: IGazetteerEntry) {\r\n return (g.LOCAL_TYPE === \"Postcode\") ? g.NAME1 : `${g.NAME1}, ${(g.POPULATED_PLACE || g.DISTRICT_BOROUGH || g.COUNTY_UNITARY)}`;\r\n };\r\n let getResultType = function (g: IGazetteerEntry): GazetteerSearchType {\r\n return (g.LOCAL_TYPE === \"Postcode\") ? GazetteerSearchType.Postcode : (g.LOCAL_TYPE === \"Named Road\") ? GazetteerSearchType.AddressLine : GazetteerSearchType.Location;\r\n }\r\n let getDistance = function (g: IGazetteerEntry) {\r\n let coord = olProj.toLonLat([g.GEOMETRY_X, g.GEOMETRY_Y], \"EPSG:27700\");\r\n return self.getDistanceFromMapCenter([coord[0], coord[1]]);\r\n }\r\n\r\n //create the final results array\r\n for (let i = 0; i < osResults.results.length; i++) {\r\n let gazEntry = osResults.results[i][\"GAZETTEER_ENTRY\"];\r\n\r\n let coord = olProj.transform([gazEntry.GEOMETRY_X, gazEntry.GEOMETRY_Y], \"EPSG:27700\", self.displayProjection);\r\n if (olExtent.containsCoordinate(mapExtent, coord) === true) {\r\n location = {\r\n Easting: coord[0],\r\n Northing: coord[1],\r\n Name: getDescOrValue(gazEntry),\r\n Value: getDescOrValue(gazEntry),\r\n ZoomLevel: zoomToLevel,\r\n ResultType: getResultType(gazEntry),\r\n DistanceInMetres: getDistance(gazEntry)\r\n };\r\n locations.push(location);\r\n }\r\n }\r\n\r\n //sort by distance\r\n locations = locations.sort(function (a: IOSGazetteerResult, b: IOSGazetteerResult) {\r\n return (a.DistanceInMetres < b.DistanceInMetres) ? -1 : (a.DistanceInMetres > b.DistanceInMetres) ? 1 : 0;\r\n });\r\n\r\n //now add the distance to the name\r\n locations.forEach((location) => {\r\n if (location.DistanceInMetres > 1000) {\r\n location.Name += ` (${(Math.round(location.DistanceInMetres / 1000 * 100) / 100).toFixed(0)} km)`;\r\n } else if (location.DistanceInMetres > 200) {\r\n location.Name += ` (${(Math.round(location.DistanceInMetres * 100) / 100).toFixed(0)}m)`;\r\n }\r\n });\r\n\r\n self.searchResults = new Array();\r\n\r\n if (locations.length === 0) {\r\n self.resultsSelect.append(``);\r\n self.noResults.show();\r\n\r\n } else if (locations.length > 1) {\r\n\r\n self.resultsSelect.append(``);\r\n\r\n if (osResults.searchType === GazetteerSearchType.LocationAndAddressLine) {\r\n //define 2 opts groups\r\n let optStreet = $(\"${locations[i].Name}`);\r\n } else {\r\n optLocation.append(``);\r\n }\r\n\r\n if (optLocation.children(\"option\").length > 0) {\r\n self.resultsSelect.append(optLocation);\r\n }\r\n if (optStreet.children(\"option\").length > 0) {\r\n self.resultsSelect.append(optStreet);\r\n }\r\n self.searchResults.push(locations[i]);\r\n }\r\n\r\n } else {\r\n //postcode \r\n for (let i of locations) {\r\n\r\n if (i.Value.replace(/ /g, '').toLowerCase() === this._currentSearchTerm.replace(/ /g, '').toLowerCase()) {\r\n //if the postcode matches exactly then go straight to it \r\n self.addPinAndCenterMap([i.Easting, i.Northing], zoomToLevel);\r\n return;\r\n }\r\n\r\n self.resultsSelect.append(``);\r\n self.searchResults.push(i);\r\n }\r\n }\r\n \r\n self.resultsSelect.show();\r\n self._helpElement.show();\r\n }\r\n else if (locations.length === 1) {\r\n self.addPinAndCenterMap([locations[0].Easting, locations[0].Northing], zoomToLevel);\r\n }\r\n }\r\n\r\n private getSearchType = (searchTerm: string): GazetteerSearchType => {\r\n //If the search term has numeric characters then assume it's postcode\r\n return (/\\d/.test(searchTerm)) ? GazetteerSearchType.Postcode : GazetteerSearchType.Location;\r\n }\r\n}","\r\nimport * as olProj from 'ol/proj';\r\nimport Style from \"ol/style/Style\";\r\nimport TextStyle from \"ol/style/Text\";\r\nimport Fill from \"ol/style/Fill\";\r\nimport Projection from \"ol/proj/Projection\";\r\nimport VectorLayer from \"ol/layer/Vector\";\r\nimport VectorSource from 'ol/source/Vector';\r\nimport { Feature } from \"ol\";\r\nimport Point from \"ol/geom/Point\";\r\nimport * as olSphere from 'ol/sphere';\r\n\r\nimport {\r\n AppStorage,\r\n GazetteerSearchType,\r\n IGazetteerResult,\r\n IMap,\r\n IMappingTextPack\r\n} from 'esdm-map';\r\n\r\n\r\nexport abstract class LhlpGazetteerBase {\r\n\r\n private _initialised: boolean = false;\r\n private _displayProjection: Projection;\r\n private _input: JQuery;\r\n private _resultsSelect: JQuery;\r\n private _noResults: JQuery;\r\n private _loadingIndicator: JQuery;\r\n private _element: JQuery;\r\n private _searchResults: Array;\r\n private _pointLayer: VectorLayer;\r\n private _storage: AppStorage;\r\n\r\n public locationPinStyle: Style;\r\n\r\n get displayProjection(): Projection {\r\n return this._displayProjection;\r\n }\r\n\r\n get input(): JQuery {\r\n return this._input;\r\n }\r\n\r\n get resultsSelect(): JQuery {\r\n return this._resultsSelect;\r\n }\r\n\r\n get noResults(): JQuery {\r\n return this._noResults;\r\n }\r\n\r\n get loadingIndicator(): JQuery {\r\n return this._loadingIndicator;\r\n }\r\n\r\n get element(): JQuery {\r\n return this._element;\r\n }\r\n\r\n get searchResults(): Array {\r\n return this._searchResults;\r\n }\r\n set searchResults(results: Array) {\r\n this._searchResults = results;\r\n }\r\n get pointLayer(): VectorLayer {\r\n return this._pointLayer;\r\n }\r\n\r\n constructor(\r\n protected _map: IMap,\r\n protected _textPack: IMappingTextPack,\r\n protected _apikey: string = \"\",\r\n protected _elementId: string = \"gazetteer\"\r\n ) {\r\n this.initBase();\r\n }\r\n\r\n private initBase = (): void => {\r\n if (!this._initialised) {\r\n //strip-loader should take this out for production\r\n console.log(\"Initialising geonames\");\r\n\r\n this._storage = new AppStorage();\r\n\r\n this._displayProjection = this._map.olMap.getView().getProjection();\r\n this._element = $(`#${this._elementId}`);\r\n this.initHtml();\r\n\r\n //get an handle on all the html elements\r\n this._resultsSelect = >$(\"#gazetteerSelect\");\r\n this._input = >$(\"#gazetteerInput\");\r\n this._noResults = $(\"#noResults\");\r\n this._loadingIndicator = $(\"#gazLoading\");\r\n this.initPointLayer();\r\n this.addHandlers();\r\n this._initialised = true;\r\n }\r\n }\r\n\r\n protected initPointLayer = (): void => {\r\n this._pointLayer = new VectorLayer({\r\n source: new VectorSource()\r\n });\r\n\r\n this.locationPinStyle = new Style({\r\n text: new TextStyle({\r\n text: '\\uf3c5',\r\n font: 'normal 52px \"Font Awesome 6 Pro\"',\r\n textBaseline: 'bottom',\r\n fill: new Fill({\r\n color: '#ff0000'\r\n })\r\n })\r\n });\r\n\r\n this._map.olMap.addLayer(this._pointLayer);\r\n }\r\n\r\n protected initHtml = (): void => {\r\n let gazetterHtml = `\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n ${this._textPack.noResultsFound}\r\n
\r\n `;\r\n this._element.append(gazetterHtml);\r\n }\r\n\r\n protected addHandlers = (): void => {\r\n let self = this;\r\n\r\n var searchStreets = self._storage.getValue(\"gazetteerSearchStreets\") == \"true\";\r\n if (searchStreets) {\r\n $(\"#gazetteerSearchStreets\").prop(\"checked\", true);\r\n }\r\n\r\n $(\"#gazetteerSearchStreets\").on(\"change\", function () {\r\n var val = $(this).prop(\"checked\");\r\n self._storage.setValue(\"gazetteerSearchStreets\", val);\r\n });\r\n\r\n //setup the clearer on the input textbox\r\n $(\".hasclear\").keyup(function () {\r\n let t = $(this);\r\n t.next('span').toggle(Boolean(t.val()));\r\n });\r\n $(\".clearer\").hide(function () {\r\n $(this).prev('input').val();\r\n });\r\n $(\".clearer\").click(function () {\r\n $(this).prev('input').val('').focus();\r\n $(this).hide();\r\n self._resultsSelect.empty();\r\n self._resultsSelect.hide();\r\n self._noResults.hide();\r\n self._pointLayer.getSource().clear();\r\n });\r\n\r\n //set the input click and enter key press handlers\r\n self._input.keypress(function (e) {\r\n if (e.which === 13) {\r\n self.find(self._input.val());\r\n }\r\n });\r\n self._input.nextAll(\".input-group-append\").click(function () {\r\n self.find(self._input.val());\r\n });\r\n self._resultsSelect.change(function (event) {\r\n self.showOnMap();\r\n });\r\n }\r\n\r\n protected abstract find(searchTerm: string): void;\r\n\r\n protected showOnMap = (): void => {\r\n let i = parseInt(this._resultsSelect[0][this._resultsSelect.prop(\"selectedIndex\")].dataset.resultIndex);\r\n\r\n if (this._searchResults.length > 0 && this._searchResults.length >= i) {\r\n let coord: [number, number] = [this._searchResults[i].Easting, this._searchResults[i].Northing];\r\n this.addLocationPin(coord);\r\n this.addPinAndCenterMap(coord, this._searchResults[i].ZoomLevel);\r\n }\r\n }\r\n\r\n protected addPinAndCenterMap = (coord: [number, number], zoomToLevel: number): void => {\r\n this.addLocationPin(coord);\r\n this._map.olMap.getView().setCenter(coord);\r\n this._map.olMap.getView().setZoom(zoomToLevel);\r\n }\r\n\r\n protected addLocationPin = (displayCoordinates: [number, number]): void => {\r\n let locationFeature = new Feature({\r\n geometry: new Point(displayCoordinates),\r\n });\r\n\r\n locationFeature.setStyle(this.locationPinStyle);\r\n this._pointLayer.getSource().clear();\r\n this._pointLayer.getSource().addFeature(locationFeature);\r\n }\r\n\r\n protected getDistanceFromMapCenter = (lonlat: [number, number]): number => {\r\n let mapCenterLonLat = olProj.toLonLat(this._map.olMap.getView().getCenter(), this._map.options.displayProjection)\r\n return olSphere.getDistance(mapCenterLonLat, lonlat);\r\n }\r\n\r\n}","import { IFeatureLoader } from \"esdm-map/dist/layers/vector/sources/loaders/interfaces/IFeatureLoader\";\r\nimport { ILogger } from \"esdm-map/dist/logging/ILogger\";\r\nimport { IFeatureAdd } from \"esdm-map/dist/layers/vector/sources/loaders/interfaces/IFeatureAdd\";\r\nimport { IVectorLayerSource } from \"esdm-map/dist/layers/vector/sources/interfaces/IVectorLayerSource\";\r\nimport GeoJSON from 'ol/format/GeoJSON';\r\nimport * as olExtent from 'ol/extent'\r\nimport Filter from \"ol/format/filter/Filter\";\r\n\r\nexport class FilteredGeoJsonFeatureLoader implements IFeatureLoader {\r\n\r\n private statusFilters: Array; \r\n public constructor() {\r\n this.statusFilters = [];\r\n }\r\n\r\n public load = (\r\n layerSource: IVectorLayerSource,\r\n featureAdd: IFeatureAdd,\r\n data: any,\r\n dataProjection: string,\r\n displayProjection: string, \r\n resolution: number,\r\n logger: ILogger,\r\n wktProperty: string = null\r\n ): [number, number, number, number] =>\r\n {\r\n //remove existing features\r\n let features = layerSource.source.getFeatures();\r\n features.forEach((feature) => {\r\n layerSource.source.removeFeature(feature);\r\n });\r\n\r\n let format: GeoJSON = new GeoJSON();\r\n let dataBounds = olExtent.createEmpty();\r\n\r\n features = format.readFeatures(data, {\r\n dataProjection: dataProjection,\r\n featureProjection: displayProjection\r\n });\r\n\r\n this.statusFilters = [];\r\n\r\n // Get status filter values from check boxes\r\n document.querySelectorAll('.StatusFilter').forEach((elem) => {\r\n if ((elem as HTMLInputElement).checked)\r\n {\r\n this.statusFilters.push(+ (elem as HTMLInputElement).getAttribute('data-status-id'));\r\n }\r\n });\r\n\r\n features.forEach((feature) => {\r\n let status: number = + feature.getProperties()[\"asset_status_id\"];\r\n if (this.statusFilters.includes(status)) {\r\n featureAdd.addFeature(layerSource, feature, resolution);\r\n }\r\n }); \r\n\r\n layerSource.source.forEachFeature((feature) => {\r\n dataBounds = olExtent.extend(dataBounds, feature.getGeometry().getExtent());\r\n });\r\n\r\n return dataBounds;\r\n }\r\n}","import {\r\n IRecordTypeFeatureInfoClick,\r\n MapListRecordItem\r\n} from \"esdm-map\";\r\n\r\n\r\nexport class LhlpMapListRecordItem extends MapListRecordItem {\r\n protected recordLinkHtml(feature: IRecordTypeFeatureInfoClick): string {\r\n return `\r\n \r\n \r\n \r\n${feature.name}\r\n \r\n  \r\n `;\r\n }\r\n\r\n public controller = (feature: IRecordTypeFeatureInfoClick): string => {\r\n let val: string = \"\";\r\n\r\n switch (feature.recordType.toLowerCase()) {\r\n case \"nhle\":\r\n val = \"NHLE\";\r\n break; \r\n }\r\n\r\n return val;\r\n }\r\n\r\n}","import {\r\n IRecordTypeFeatureInfoClick,\r\n RecordTypeResource,\r\n IRecordTypeHeading, \r\n IMappingTextPack\r\n} from \"esdm-map\";\r\nimport { ILayerGroup } from \"esdm-map/dist/layers/groups/ILayerGroup\";\r\nimport { LhlpRecordType } from \"../defs/LhlpRecordType\";\r\n\r\n\r\nlet headingConfiguration = (): Array => {\r\n let items = new Array();\r\n\r\n items.push({\r\n recordTypeCode: LhlpRecordType.NHLE,\r\n recordSubTypeCode: null,\r\n heading: \"Monuments\"\r\n }); \r\n \r\n\r\n return items;\r\n}\r\n\r\nexport class LhlpRecordTypeResource extends RecordTypeResource {\r\n\r\n public constructor(\r\n private _mappingTextPack: IMappingTextPack,\r\n ) {\r\n super(headingConfiguration());\r\n }\r\n\r\n public groupByRecordSubTypeCode(recordTypeCode: string): boolean {\r\n return false\r\n } \r\n\r\n\r\n public mapToIRecordTypeInfoClick(featureProperties: any, layerGroup: ILayerGroup): IRecordTypeFeatureInfoClick \r\n { \r\n return {\r\n id: \"\",\r\n uid: featureProperties.uid,\r\n ref: featureProperties.ref,\r\n name: featureProperties.name,\r\n recordType: featureProperties.rectype,\r\n recordSubType: featureProperties.recsubtype,\r\n recordSubTypeCode: featureProperties.recsubtypecode,\r\n data: featureProperties,\r\n heading: this.getHeading(featureProperties.rectype, featureProperties.recsubtypecode),\r\n layerGroup: layerGroup\r\n }\r\n }\r\n\r\n public getInfoClickHtmlTemplate(recordTypeInfoClick: IRecordTypeFeatureInfoClick): string \r\n { \r\n let html: string = \"\";\r\n let featurePropertyNameForId = \"uid\";\r\n let layerType: string = recordTypeInfoClick.layerGroup.layerType;\r\n\r\n //add controller (or any arbitrary data) to the data object\r\n switch (recordTypeInfoClick.recordType.toLowerCase()) {\r\n case \"asset\": \r\n recordTypeInfoClick.data.controller = \"asset\"; \r\n break; \r\n } \r\n html = `\r\n
  • \r\n \r\n  \r\n \r\n [name] \r\n \r\n \r\n \r\n \r\n
  • `;\r\n\r\n return html;\r\n }\r\n\r\n \r\n}","import { IResourceFactory, IRecordTypeResource, IMappingTextPack } from \"esdm-map\";\r\nimport { LhlpRecordTypeResource } from \"./LhlpRecordTypeResource\";\r\n\r\n\r\n\r\nexport class LhlpResourcefactory implements IResourceFactory {\r\n\r\n public constructor(\r\n private _mappingTextPack: IMappingTextPack\r\n ) {\r\n }\r\n\r\n public getRecordTypeResource(): IRecordTypeResource {\r\n return new LhlpRecordTypeResource(this._mappingTextPack);\r\n }\r\n\r\n}\r\n\r\n","import { IStyleFactory } from \"esdm-map/dist/layers/vector/styles/IStyleFactory\";\r\nimport Feature from \"ol/Feature\";\r\nimport Style, { StyleFunction } from \"ol/style/Style\";\r\nimport Fill from 'ol/style/Fill';\r\nimport Circle from 'ol/style/Circle';\r\nimport Stroke from 'ol/style/Stroke';\r\nimport RegularShape from 'ol/style/RegularShape';\r\nimport Text from 'ol/style/Text';\r\nimport * as olHas from 'ol/has';\r\nimport { LhlpRecordSubType, LhlpRecordType } from \"../defs/LhlpRecordType\";\r\nimport { LhlpMapConfig, LhlpStatusLookup, LhlpTypeLookup } from \"../defs/LhlpMapConfig\";\r\n\r\nexport class LhlpStyleFactory implements IStyleFactory {\r\n\r\n private mapConfig: LhlpMapConfig;\r\n\r\n constructor(mapconfig: LhlpMapConfig) {\r\n this.mapConfig = mapconfig;\r\n }\r\n\r\n public getStyle(recordType: LhlpRecordType, recordSubType: LhlpRecordSubType = null): (Style | Style[] | StyleFunction) {\r\n\r\n let style: (Style | Style[] | StyleFunction) = null;\r\n\r\n if(recordType === LhlpRecordType.ASSET) {\r\n return this.setAssetDynamicStyle(recordSubType); //returns a style function\r\n }\r\n\r\n //try and resolve sub type\r\n switch (recordSubType) {\r\n case LhlpRecordSubType.Battlefield:\r\n style = this.ConservationArea();\r\n break;\r\n\r\n case LhlpRecordSubType.ListedBuilding:\r\n style = this.ListedBuilding();\r\n break;\r\n\r\n case LhlpRecordSubType.ScheduledMonument:\r\n style = this.ScheduledMonument();\r\n break;\r\n\r\n case LhlpRecordSubType.RegisteredParkAndGarden:\r\n style = this.RegisteredParksAndGardens();\r\n break;\r\n\r\n case LhlpRecordSubType.ProtectedWreck:\r\n style = this.AreasArchaeologicalImportance();\r\n break;\r\n\r\n case LhlpRecordSubType.WorldHeritageSite:\r\n style = this.AreasArchaeologicalImportance();\r\n break;\r\n\r\n }\r\n\r\n return style;\r\n }\r\n\r\n public getSelectedStyle(\r\n recordType: LhlpRecordType = LhlpRecordType.NHLE,\r\n recordSubType: LhlpRecordSubType = null\r\n ): (Style | Style[] | StyleFunction)\r\n { \r\n return this.SelectedRecord();\r\n }\r\n\r\n private setAssetDynamicStyle(featureSubType: LhlpRecordSubType): StyleFunction {\r\n \r\n let stylesConfig: LhlpMapConfig = this.mapConfig;\r\n\r\n return function(feature: Feature) {\r\n\r\n let featureStatus: string = feature.get('asset_status_id');\r\n if(typeof(featureStatus) == 'undefined') featureStatus = \"0\"; //get the default colour of listed features \r\n let iconChr: string = '\\uf60e';\r\n let iconColour: string = '#F00000';\r\n let siteListedColour: string = '#000000';\r\n\r\n let featureGeometryType: string = feature.getGeometry().getType();\r\n\r\n let statusStyles: Array = stylesConfig.StatusStyles;\r\n let matchedStatus: boolean = false;\r\n if(statusStyles !== null) {\r\n for(let statusStyle of statusStyles) {\r\n if(statusStyle.StatusId == '0') {\r\n siteListedColour = statusStyle.StatusColour;\r\n }\r\n if(statusStyle.StatusId === featureStatus) {\r\n iconColour = statusStyle.StatusColour;\r\n matchedStatus = true;\r\n break;\r\n }\r\n }\r\n if(!matchedStatus) iconColour = siteListedColour;\r\n }\r\n\r\n let typeStyles: Array = stylesConfig.TypeStyles;\r\n if(typeStyles !== null) {\r\n for(let typeStyle of typeStyles) {\r\n if(typeStyle.TypeId == featureSubType) {\r\n let c: string = typeStyle.TypeCharacter;\r\n iconChr = String.fromCharCode(parseInt(c));\r\n break;\r\n }\r\n }\r\n }\r\n\r\n let text = new Text({\r\n text: iconChr,\r\n font: '900 23px \"Font Awesome 6 Pro\"',\r\n textBaseline: 'bottom',\r\n offsetY: 11,\r\n fill: new Fill({\r\n color: iconColour,\r\n }),\r\n stroke: new Stroke({\r\n color: 'rgba(255,255,255,0.8)',\r\n width: 5,\r\n }),\r\n });\r\n\r\n if(featureGeometryType === 'Point' || featureGeometryType === 'MultiPoint') {\r\n return new Style({ text: text }) ;\r\n }\r\n //polygons\r\n return [\r\n new Style({\r\n stroke: new Stroke({\r\n color: iconColour,\r\n width: 3,\r\n }),\r\n fill: new Fill({\r\n color: iconColour + '20',\r\n }),\r\n }),\r\n ];\r\n }\r\n }\r\n \r\n private CommonStyle(fillColour: string): Style[] {\r\n var fill = new Fill({\r\n color: fillColour\r\n });\r\n var stroke = new Stroke({\r\n color: 'rgba(255,255,255,1)',\r\n width: 3\r\n });\r\n\r\n return [\r\n new Style({\r\n image: new Circle({\r\n fill: fill,\r\n stroke: stroke,\r\n radius: 12\r\n }),\r\n fill: fill,\r\n stroke: stroke\r\n })\r\n ];\r\n }\r\n\r\n private Asset(): Style[] {\r\n //default\r\n var fill = new Fill({\r\n color: 'rgba(16, 16, 16, 0.6)'\r\n });\r\n var pointfill = new Fill({\r\n color: 'rgba(0, 0, 0, 0.9)'\r\n });\r\n var stroke = new Stroke({\r\n color: '#000000',\r\n width: 2\r\n });\r\n\r\n return [\r\n new Style({\r\n image: new RegularShape({\r\n fill: pointfill,\r\n stroke: stroke,\r\n points: 4,\r\n radius: 8,\r\n angle: Math.PI / 4,\r\n }),\r\n fill: fill,\r\n stroke: stroke\r\n })\r\n ];\r\n }\r\n\r\n private Event(): Style[] {\r\n var fill = new Fill({\r\n color: 'rgba(0, 0, 205, 0.5)'\r\n });\r\n var pointfill = new Fill({\r\n color: 'rgba(0, 0, 128, 0.9)'\r\n });\r\n var stroke = new Stroke({\r\n color: 'rgba(0, 0, 128, 1)',\r\n width: 2\r\n });\r\n\r\n return [\r\n new Style({\r\n image: new RegularShape({\r\n fill: pointfill,\r\n stroke: stroke,\r\n points: 4,\r\n radius: 4,\r\n angle: Math.PI / 4,\r\n }),\r\n fill: fill,\r\n stroke: stroke\r\n })\r\n ];\r\n }\r\n\r\n private AreasArchaeologicalImportance(): Style[] {\r\n //return this.CommonStyle('rgba(239, 26, 28,0.5)'); \r\n // Generate a canvasPattern\r\n var canvas = document.createElement('canvas');\r\n var context = canvas.getContext('2d');\r\n var p = document.createElement('canvas');\r\n // Gradient and pattern are in canvas pixel space, so we adjust for the\r\n // renderer's pixel ratio\r\n var pixelRatio = olHas.DEVICE_PIXEL_RATIO;\r\n var pattern = (function () {\r\n canvas.width = 32 * pixelRatio;\r\n canvas.height = 16 * pixelRatio;\r\n // background\r\n context.fillStyle = \"rgba(239, 26, 28, 0.1)\";\r\n context.fillRect(0, 0, canvas.width, canvas.height);\r\n\r\n var x0 = 36;\r\n var x1 = -4;\r\n var y0 = -2;\r\n var y1 = 18;\r\n var offset = 32;\r\n\r\n context.strokeStyle = \"rgba(255, 0, 0, 1)\";\r\n context.lineWidth = 1;\r\n context.beginPath();\r\n context.moveTo(x0, y0);\r\n context.lineTo(x1, y1);\r\n context.moveTo(x0 - offset, y0);\r\n context.lineTo(x1 - offset, y1);\r\n context.moveTo(x0 + offset, y0);\r\n context.lineTo(x1 + offset, y1);\r\n context.stroke();\r\n\r\n context.fillStyle = context.createPattern(canvas, 'repeat');\r\n context.fillRect(0, 0, canvas.width, canvas.height);\r\n\r\n return context.createPattern(canvas, 'repeat');\r\n }());\r\n\r\n var fill = new Fill({\r\n color: 'rgba(239, 26, 28, 0.4)'\r\n });\r\n fill.setColor(pattern);\r\n\r\n var stroke = new Stroke({\r\n color: 'rgba(239, 26, 28, 1)',\r\n width: 2\r\n });\r\n\r\n return [new Style({\r\n image: new RegularShape({\r\n fill: new Fill({ color: 'rgba(239, 26, 28, 0.4)' }),\r\n stroke: stroke,\r\n points: 3,\r\n radius: 8,\r\n radius2: 4,\r\n angle: 0\r\n }),\r\n fill: fill,\r\n stroke: stroke\r\n })];\r\n }\r\n\r\n private ScheduledMonument(): Style[] {\r\n return [\r\n new Style({\r\n fill: new Fill({\r\n color: 'rgba(255, 0, 255, 0.6)'\r\n }),\r\n stroke: new Stroke({\r\n color: 'rgba(186, 85, 211, 1)',\r\n width: 2\r\n })\r\n })\r\n ];\r\n }\r\n\r\n private ListedBuilding(): Style[] {\r\n var fill = new Fill({\r\n color: 'rgba(255, 234, 0, 0.6)'\r\n });\r\n var stroke = new Stroke({\r\n color: 'rgba(0, 0, 0, 1.0)',\r\n width: 2\r\n });\r\n var pointfill = new Fill({\r\n color: 'rgba(255, 234, 0, 0.6)'\r\n });\r\n return [new Style({\r\n image: new Circle({\r\n fill: pointfill,\r\n stroke: stroke,\r\n radius: 4\r\n }),\r\n fill: fill,\r\n stroke: stroke\r\n })];\r\n }\r\n\r\n\r\n private RegisteredParksAndGardens(): Style[] {\r\n return [\r\n new Style({\r\n fill: new Fill({\r\n color: 'rgba(0, 255, 0, 0.6)'\r\n }),\r\n stroke: new Stroke({\r\n color: 'rgba(50, 205, 50, 1)',\r\n width: 2\r\n })\r\n })\r\n ];\r\n }\r\n\r\n\r\n private ConservationArea(): Style[] {\r\n var fill = new Fill({\r\n color: 'rgba(135, 206, 235, 0.5)'\r\n });\r\n var pointfill = new Fill({\r\n color: 'rgba(135, 206, 235, 0.9)'\r\n });\r\n var stroke = new Stroke({\r\n color: 'rgba(0, 191, 255, 1)',\r\n width: 2\r\n });\r\n\r\n return [\r\n new Style({\r\n image: new Circle({\r\n fill: pointfill,\r\n stroke: stroke,\r\n radius: 4\r\n }),\r\n fill: fill,\r\n stroke: stroke\r\n })\r\n ];\r\n }\r\n\r\n\r\n\r\n private SelectedRecord(): Style[] {\r\n var fill = new Fill({\r\n color: 'rgba(255, 255, 0, 0.5)'\r\n });\r\n\r\n return [\r\n new Style({\r\n image: new Circle({\r\n fill: fill,\r\n stroke: new Stroke({\r\n color: 'rgba(255, 173, 10, 1)',\r\n width: 3\r\n }),\r\n radius: 10\r\n }),\r\n fill: fill,\r\n stroke: new Stroke({\r\n color: 'rgba(255, 173, 10, 1)',\r\n width: 3\r\n })\r\n })\r\n ];\r\n }\r\n\r\n}\r\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar [chunkIds, fn, priority] = deferred[i];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t854: 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkIds[i]] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkapp\"] = self[\"webpackChunkapp\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [216], () => (__webpack_require__(8792)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n",""],"names":[],"sourceRoot":""}