Releases: hslayers/hslayers-ng
16.0.0-next.2
16.0.0-next.2 (2025-07-07)
Bug Fixes
- access-rights: Use EVERYONE if all users has access (7dd7e64)
- add-data: Do not lowercase arcgis service url (e3769d2)
- add-data: Services in ARCGisREST domain name should not be modified (846f308)
- compositions: Do not fail whole composition loading if some layers are corrupted (5f51e92)
- config: Fix variable name corrupted by replace function (d0ebd45)
- Imports of new services (626fef4)
- save-map: Process compo save with correct response obj (960e45a)
Features
- add-data: Allow XYZ layer to be added via URL (3768a43)
- add-data: Feature server ArcGis service support (e8046ee)
- compositions: Allow saving of ArcGis Feature layers to compositions (4191483)
- compositions: Use max/minResolution to store max/minZoom in composition for XYZ layer (cdb2632)
- config: Config verification (80677af)
Full Changelog: 16.0.0-next.1...16.0.0-next.2
16.0.0-next.1
16.0.0-next.1 (2025-06-04)
Bug Fixes
- access-rights: Refresh view on allUsers fetch (51038c9)
- compositions: Leaner compositions parser and safer way to parse composition layer name (5241a96)
- permissions: Start in idle state not error (cd43aaf)
- save-map: Composition can not include internal layer referenced by workspace and name (daa6516)
- styler: Use component variable directly not via template let (0cdca2b)
- utils: Check whether extent is valid (facc5f0)
Full Changelog: 16.0.0-next.0...16.0.0-next.1
16.0.0-next.0
16.0.0-next.0 (2025-05-22)
Bug Fixes
- add-data: Allow selection of all parts of grouped layer (226f5d4)
- add-data: Catalogue filter menu label (aa7cf79)
- add-data: Display proper error message (0019534)
- add-data: Do not cancel new layer addition because of missing layman ep (f5517ea)
- add-data: Do not query data catalogues on mapExtentChanges outside catalogue (f72b8db)
- add-data: Extent calculation for WMS layer group (fbfb12b)
- add-data: Finalize layer retrieval for Layman layers (729fd6c)
- add-data: Get endpoint when necessary (7b7d147)
- add-data: Layman URL WFS adjustments (538a7ae)
- add-data: Provide workspace parameter for layers loaded from file (9814233)
- add-data: Track services by name not id which might not be available (3df0aac)
- auth: Handle current-user error gracefully (57adee4)
- compositions: Always use credentials to query layman maps (1116c84)
- compositions: Do not filter out micka endpoint when 'only mine' is activated (1055995)
- compositions: Filter menu button labels (c16c759)
- compositions: Set workspace for Layman WMS layers from composition (dd6da00)
- copy: Not indicating success state - value copied (bcac46a)
- Incorrectly generated auto paths (0c8c866)
- layer-manager: Fill metadata only if not disabled (2944180)
- layermanager: Reactively evaluation time existence change on WMS layers (86b8d1f)
- layermanager: Set layer desc to capabilities cache for Layman WMS (4d4f31f)
- layman: atLeastVersion util (b5f0995)
- More specific event type for draw condition (cc57f62)
- normalizeSldComparisonOperators imports (dedbf8c)
- permissions: On error - no loader, return to idle after 3.5s (f429d09)
- print: Reflect rxjs change in next() method (792d7b8)
- save-map: Layman WFS layers should only store url reference of style to composition (51f7e7d)
- save-map: Use SLD param with file when updating/posting layers with style to Layman (972a937)
- styler: Layman layer SLD syncing indicator (2935b84)
- styler: Remove filter from layman's default SLD (482e118)
- types: Export auth state types (2d326ca)
- types: Layman descriptor time property should be available on WMS layers (066acc7)
- wfs: Only proxify URLs when necessary (684bd35)
Features
- add-data: Separate handler for Layman's WMS layers - without capabilities (18486c1)
- core: Use auth interceptor which will log out the user on unauthorized req (f11169f)
- layman: Layman layer state service (8790a90)
- utils: Separate service for proxify related methods (ae799ce)
Performance Improvements
- query: Less feature to layer searches (d936d98)
Full Changelog: 15.0.1...16.0.0-next.0
15.0.1
15.0.1 (2025-02-26)
This patch release addresses the way hslayers-ng-app and hslayers-cesium-app are being build and published.
Since 15.0, hslayers-ng-app bundle in npm does not include Bootstrap. This is to mitigate conflicting rules from different Bootstrap instances when integrating hslayers-ng under CMS like Wagtail.
With this patch, neither Bootstrap and neither Fontawesome icons are included in the bundle, and the behaviour is also reflected for hslayers-cesium-app.
Full Changelog: 15.0.0...15.0.1
15.0.0
15.0.0 (2025-02-24)
MAJOR CHANGES
- updated Angular to version 19 and OpenLayers to version 10.
- replaced icon set from WHHG font to fontawesome.
- hslayers-ng-app bundle in npm does not include Bootstrap anymore
Bug Fixes
- build: Re-create package-lock (fa8d84f)
- cesium: Use valid projection for transform (fa4e3c6)
- compositions: Composition metadata fetch should not fail on missing layman endpoint (b8e4f4d)
- config: Prevent crash when config update fails (031ec9e)
- deps: Revert sld-parser change (45840e3)
- icons: Correct path for icon font css file (dacc5ce)
- icons: Include icon css in build and fix paths (324682b)
- icons: Revert change of icon-primary to fa-primary (bd13937)
- layermanager: Animated layer group chevrons (d857dd9)
- query: Better track by property (9322a49)
- save-map: Sanitize empty string legends (42b6952)
- build: Re-create package-lock (fa8d84f)
- cesium: Use valid projection for transform (fa4e3c6)
- config: Prevent crash when config update fails (031ec9e)
- deps: Revert sld-parser change (45840e3)
- save-map: Sanitize empty string legends (42b6952)
- config: Query config - hitTolerance should not be compulsory (0dd21d6)
- filters: Pass global comparison into removeFilter instead of local (9848afa)
- styler: Emit change from hs-filter (05fb303)
- cesium: Call signal before loop (97b49f7)
- add-data: After upload, load WMS as a single not as a a group (038fdbd)
- add-data: When no layer are defined for ArcGIS service use whole extent (f66b198)
- add-data: WMS sublayer extent parsing (b732d41)
- arcgis: Preserved layer status in case of concurrent layer loads from the same url (b5d1a11)
- compositions: Composition filter should always return array (a054f8c)
- compositions: Do not switch to LM automatically when loading WMTS or ArcGIS from composition (13ad665)
- compositions: Honour layer visibility defined in composition for ArcGIS. WMTS and WFS sources (13afc39)
- compositions: Parse layer opacity from composition (43c7461)
- config: Prioritize sidebarClosed over defaultPanel setting (23404fe)
- css: No bootstrap css generation (a34af31)
- draw: tmpDrawing layer not created properly (afcb316)
- filters: Comparison filter has got to update on filter change (4bcfaa4)
- filters: Few logic bugs (c0a699f)
- filters: If no filter is active, add-filter-button should not have any tab active (214062c)
- filters: Parse previously created filters (1754c51)
- IDW: Prevent infinite loop of text size adjustments (a6aa993)
- language: Delete dangling comma from JSON (74af8d8)
- layer-editor: WFS Filter shortcut should not be available in case wfs-filter panel is disabled (92e74bd)
- layerEditor: layerDimensionDefinitionChanges race conditions at init (129409f)
- layermanager: Gallery dialog import, template typo (0e47994)
- layermanager: It should not be possible to set folder for base layers (27e9e20)
- layermanager: Layer order (6c0db8e)
- layermanager: Open layerEditor via url param only in case mainpanel is Layermanager (4ca4988)
- layermanager: Reset layer editor state on layer type change (501e772)
- layermanager: Show sublayers if there are 2 or more options (83c7741)
- layermanager: takeUntilDestroyed as last operator (b13880b)
- layermanager: Update gallery editor layer title on change (05363fb)
- legend: For vector layers use legend title in SVG (4d2a41f)
- map-swipe: Swipe properties of layers not updating with layerManagerUpdates when mapSwipe panel is active (c3ed643), closes #5332
- map: EPSG:4087 definition (35c4290)
- overlay: Use correct injector (bdc65f9)
- query: Properly remove features from query (91beb2b)
- Replace logical OR with nullish coalescing when setting opacity (41b4030)
- save-map: Store sublayers in sublayers prop (eb8af73)
- sensors: Dialog positioning and width (920c570)
- share: Do not duplicate locationPath in url when deployed on non root path (8b994da)
- styler: Do not recreate rule obj on filter remove (d0a040e)
- styler: Pass currentLayer into filters component (dd5464e)
- test-app: Reintroduce custom pop-up widget (76479fc)
- wfs-filter: Add wildcard symbols to LIKE filter to match any value that contains a specific substring ([c82aefc](https:/...
15.0.0-next.1
15.0.0-next.1 (2024-12-16)
Bug Fixes
- config: Query config - hitTolerance should not be compulsory (0dd21d6)
- filters: Pass global comparison into removeFilter instead of local (9848afa)
- styler: Emit change from hs-filter (05fb303)
Features
- query: Dimensions of ol-popup configurable via SCSS variables (03380b8)
- query: Indicate loading of feature info inside query panel (0904a2d)
Full Changelog: 15.0.0-next.0...15.0.0-next.1
15.0.0-next.0
15.0.0-next.0 (2024-12-05)
Bug Fixes
- add-data: After upload, load WMS as a single not as a a group (038fdbd)
- add-data: When no layer are defined for ArcGIS service use whole extent (f66b198)
- add-data: WMS sublayer extent parsing (b732d41)
- arcgis: Preserved layer status in case of concurrent layer loads from the same url (b5d1a11)
- compositions: Composition filter should always return array (a054f8c)
- compositions: Do not switch to LM automatically when loading WMTS or ArcGIS from composition (13ad665)
- compositions: Honour layer visibility defined in composition for ArcGIS. WMTS and WFS sources (13afc39)
- compositions: Parse layer opacity from composition (43c7461)
- config: Prioritize sidebarClosed over defaultPanel setting (23404fe)
- css: No bootstrap css generation (a34af31)
- draw: tmpDrawing layer not created properly (afcb316)
- filters: Comparison filter has got to update on filter change (4bcfaa4)
- filters: Few logic bugs (c0a699f)
- filters: If no filter is active, add-filter-button should not have any tab active (214062c)
- filters: Parse previously created filters (1754c51)
- IDW: Prevent infinite loop of text size adjustments (a6aa993)
- language: Delete dangling comma from JSON (74af8d8)
- layer-editor: WFS Filter shortcut should not be available in case wfs-filter panel is disabled (92e74bd)
- layerEditor: layerDimensionDefinitionChanges race conditions at init (129409f)
- layermanager: Gallery dialog import, template typo (0e47994)
- layermanager: It should not be possible to set folder for base layers (27e9e20)
- layermanager: Layer order (6c0db8e)
- layermanager: Open layerEditor via url param only in case mainpanel is Layermanager (4ca4988)
- layermanager: Reset layer editor state on layer type change (501e772)
- layermanager: Show sublayers if there are 2 or more options (83c7741)
- layermanager: takeUntilDestroyed as last operator (b13880b)
- layermanager: Update gallery editor layer title on change (05363fb)
- legend: For vector layers use legend title in SVG (4d2a41f)
- map-swipe: Swipe properties of layers not updating with layerManagerUpdates when mapSwipe panel is active (c3ed643), closes #5332
- map: EPSG:4087 definition (35c4290)
- overlay: Use correct injector (bdc65f9)
- query: Properly remove features from query (91beb2b)
- Replace logical OR with nullish coalescing when setting opacity (41b4030)
- save-map: Store sublayers in sublayers prop (eb8af73)
- sensors: Dialog positioning and width (920c570)
- share: Do not duplicate locationPath in url when deployed on non root path (8b994da)
- styler: Do not recreate rule obj on filter remove (d0a040e)
- styler: Pass currentLayer into filters component (dd5464e)
- test-app: Reintroduce custom pop-up widget (76479fc)
- wfs-filter: Add wildcard symbols to LIKE filter to match any value that contains a specific substring (c82aefc)
- wfs-filter: Correct initial value (0baf02d)
- wfs-filter: Don't query DescribeFeatureType multiple time for the same layer (a072db7)
- wfs-filter: Layer filter condition (eb09ee5)
- wfs-filter: Update layer when last filter is deleted (09b97e7)
- wfs-source: Provide injector to the non angular decorated wfs class (25c53ab)
- wms-t: Display proper date in YYYYMMDD format (212dd21)
Features
- Add workflow for focused tests (cdef91f)
- common: Clipboard text component (e29bc8f)
- config: Allow configuration of query hitTolerance (e7e7768)
- config: defaultPanel conf param (596fe38)
- Create a wfs-filter component (b5aa8b4)
- filters: Allow filtering by presence or non presence of attribute value (c65be60)
- filters: Attribute selector component (4c26d62)
- filters: Minimal condition bounds for filter (149638d)
- gallery-editor: Create dialog component to render editor in there (8f01e8d)
- layer-editor: Open wfs filter from layer-editor with current layer selected (c02f20a)
- layout: Make sidebar height in mobile view configurable (ce6a647)
- layput: Register swipe gesture closing bottom panels on non hover devices (c5004d6)
- query: Dynamic info panel (5b5ec2d)
- styler: Configurable number of color map categories ([9b39785](9b39785f70af274a7ce484a1ca398...
14.1.0
14.1.0 (2024-07-29)
First minor release in the v14 series comes with several improvements and important bug fixes.
Bug Fixes
- add-data: WMS layer extent parsing (ba201a1)
- compositions: Composition current base map visibility (e2f0696)
- layermanager: Layer editor not visible with mainpanel other than LM (1a25042)
- layermanager: Close gallery mini menu on base visibility toggle (44499a8)
- layermanager: Do not update folders on removal of all layers. (045fbbe)
- layermanager: Safer clean folders catch block (dcf45c8)
- perf: Base64 encoded SVG icons (0ae4537)
- styler: File style load (e98b28b)
- styler: Load style from QML file for layman layer (084ce66)
- styler: Parse QML styles loaded via URL (2e07f3c)
Features
- compositions: Store and parse ignoreExtent control in/from composition - for WMS layers (6b030ac)
- config: Add new Senslog config param - timeFormatConfigPath (e46e04d)
- layermanager: Add copy button to URL (6a58830)
- layermanager: Layer type switcher widget (fbaffe1)
- utils: Extent buffer (0f44b5c)
Full Changelog: 14.0.1...14.1.0
14.0.1
14.0.0
14.0.0 (2024-06-18)
After an unprecedented number of pre-releases there is finally an official version 14 of hslayers-ng. It comes once again with a big structural change as we move from single entrypoint to multiple secondary entrypoints. See below.
BREAKING CHANGES
- Introducing secondary entry points, for better dead-code elimination. Individual logical components and services are now exported individually instead of one uniform export. This change shall significantly reduce the amount of data necessary to transfer at first load of any hslayers application, thus improving startup time and overall performance. However it requires a developer to change all imports from hslayers-ng library. E.g. what was before
import {HsEventBusService} from 'hslayers-ng';
becomes
import {HsEventBusService} from 'hslayers-ng/services/event-bus';
or analogously
import {HsConfig} from 'hslayers-ng';
becomes
import {HsConfig} from 'hslayers-ng/config';
- panelsEnabled options renamed
- query component (info panel) renamed to "query", info component (compositionLoadingProgress) renamed to "info" and configuration moved from panels to components
- cesium: Changed config parametres in hslayersCesiumConfig (see an updated wiki page for current values).
- Removed: terrain_provider, createWorldTerrainOptions, newTerrainProviderOptions,
- Renamed: terrain_providers to terrainLayers with extended structure,
- Added: cesiumGeocoder, cesiumFullscreenButton, cesiumBaseLayerPicker.
- The core service has been renamed to hslayers service.
- hslayers module is no longer exported via main entry point hslayers-ng, use hslayers-ng/core instead
- src folder has been renamed to core, update your imports accordingly
- Changed CSS and ASSETS location, update your import paths
Bug Fixes
- build: Dedupe package-lock (b1f1d1a)
- Modification and removal of features in uneditable layer (1ba816a)
- sensors: aggregations- minimum (020b180)
- styler: Set max dimensions for custom icon in select dialog (feb7753)
- test-app: Unify file names (f7ecdd0)
- trip-planner: Define structure of mapClicked event (76541fa)
- trip-planner: Fix panel header (917d3bc)
- access-rights: Do not make unnecessary get users requests (eaed003)
- access-rights: Do not override roles (1ed1461)
- cesium-test-app: 2.5D geojson url source path (05e8a01)
- cesium: Align style of cesium buttons (5c199a5)
- cesium: Set active property of visible terrain layer at init (2cff0c7)
- query: Add the highest priority to the function arg instead of the config value when creating new selector (a91862d)
- query: Set new selector (325fcbe)
- query: Trigger selector after subscription is ready (f83e37b)
- test-app: Assign panelWidth via ngOnInit() (308369f)
- test: Change location of access-rights test files based on new lib structure (7c9ba08)
- apps: Set publicPath automatically (17c3474)
- cesium-app: add missing imports (48415c9)
- cesium-app: globFunctions lookup (eef3c46)
- sidebar: Show sidebar labels if no mainpanel is selected (bdff168)
- Add missing standalone directive import (52458bf)
- add-data: Add-to-map should be hidden when trying to load raster without login (9604451)
- add-data: Both TiledWMS and ImageWMS should be available for WMS layers (09ca83e)
- add-data: Clustering of catalogue WFS layers (29d161b)
- add-data: Don't allow loading of features into internal layers (b9e9aa6)
- add-data: Doubled 'Uploading layer' label when loading shp (780ec18)
- cesium: Add missing Injectable, add GUI essentials (abb710f)
- cesium: Do not duplicate listeners on cesium toggle (6e76387)
- cesium: Make OSM layer visible from zoom=1 (483e3cb), closes #4750
- cesium: Reflect terrainLayers rename (f853201)
- cesium: Set layer visibility on Cesium init (d48ea9f), closes #4048
- cesium: Sync also layers with KML source (4ee9c2b)
- Close tag in add-data - merge mistake (73d5201)
- Construct basemap name from array (45827d5)
- Correctly identify hs-layout element during ngOnInit (2f35873)
- Dialog container component (9454232)
- Disable 'Save current map' button when Save map panel is not enabled (20de4a7)
- Do not reset layerLoadingProgress.pending to 0 (bcb73f6)
- Don't react to current layer deselection (e807321)
- Import layer table into modules (0f5b7ea)
- layer-editor: Wrong position of layer-editor after styler is closed (7110b1e)
- layermanager: Basemap in panel loading progress (6a14b36)
- layerManager: Layer list item alignment (0194d65)
- map-swipe: Resolve layerManagerUpdates in batch once map-swipe is enabled (9163f91), closes #4768
- Minisidebar visibility (7eca3dd)
- Panel header tab change not reflected when done programmatically (b3969e2)
- Panel-header viewChild value race condition (252b306)
- prebuild (2ee1249)
- Preserve composition layer order - in terms of z-index ([f402e90](https://github.com/hs...