Releases: hslayers/hslayers-ng
16.2.0
16.2.0 (2025-12-07)
Fix build-related issue with hslayers-app.
Bug Fixes
- add-data: Correct style property and file type (890e779)
- add-data: Missing layman access rights import (70d6200)
- add-data: Read value of layerIsAvailable signal (ffa6550)
- addlayers: WFS style loading (7c170cb)
- compositions: Fallback for max and min resolutions (023b9a7)
- compositions: Use parsed layer name for layman vectors from compositions (eb6d2ca)
- draw: Do not fill layers on map load (271a847)
- layermanager: Time editor visibility (2109a04)
- layman: Retry describeLayer on success status (fb7309e)
- styler: Indicate style change after upload, read signal value (ad0aa0b)
Features
- config: isLaymanUrlException (5d58b7c)
Full Changelog: 16.1.0...16.2.0
16.1.0
16.1.0 (2025-11-18)
This minor release fixes a bunch of bugs and adds a basic level of backwards compatibility between HSLayers-NG and Layman 1.x (69945ca). With HSLayers-NG 16.1 it should be safe to read Layman data (open layer, open composition), but writing Layman data (change permissions, upload dataset, save composition) is not guaranteed to work. Please file any issues regarding read access to Layman data. Beside that, HSLayers-NG also keeps on track with Layman 2.2 and we are adding support for EPSG:32718 & EPSG:9377 spatial reference systems in this release.
Bug Fixes
- add-data: honor open_lm_after_comp_loaded setting (f6cd89d)
- add-data: Use layman wms pipeline only for endpoints of version 2.0 and above (69945ca)
- compositions: Parse folder name for ArcGIS layers (fbcffe0)
- compositions: Unresolved compo properties (1ad609e)
- getcapabilities: Deduplicate concurrent get capabilities requests (c015113)
- language: Return last part of the key (SIDENAV.PANEL.Info -> Info) or the key itself if single part key for missing translations (2e2880c)
- layermanager: Refresh physical layer list on updates (c58c8e0), closes #5907
- layermanager: Removing scale value should set 0/Infinity (9de2c6d)
- layman: handle version check gracefully (ff09b81)
- layman: Update test case (efcff21)
- savemap: Show validation errors on touched (6c61f1d)
- wms: Honor tiled setting from composition (0b98c79)
Features
- compositions: Show name in info-dialog (8e53eda)
- config: Configurable tile and image load concurrency (6a2e4c7)
- layman: register EPSG:32718 & EPSG:9377 (6fb9acb)
Full Changelog: 16.0.0...16.1.0
16.0.0
16.0.0 (2025-09-01)
BREAKING CHANGES
- updated Angular to version 20
- !refactor(i18n): Upgrade ngx-translate to v17 (4223b25)
TranslateCustomPiperemoved in favour of externalTranslatePipe, thus all occurrences oftranslateHsmust be changed totranslatewith proper import.TranslateCustomServiceremovedWebpackTranslateLoaderrenamed toHsTranslateLoaderand must be provided inprovidersarray as:
provideTranslateService({
loader: {
provide: TranslateLoader,
useClass: HsTranslateLoader,
deps: [HsConfig, HsLogService, HttpClient],
},
missingTranslationHandler: provideMissingTranslationHandler(
HsMissingTranslationHandler,
),
}),
- Minimum Node versions increased to 20.19 and 22.12
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)
- 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)
- 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)
- layout: Add type for mainpanel$ & fix wrong panel as object expectation in save map (5d9f29d)
- test: avoid relying on ng-reflect-* attribute (2cb197a)
- test: Provide TranslateService in spec files (a675b94)
- build: Specify correct deps versions (e7d4d73)
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)
- add-data: Allow XYZ layer to be added via URL (3768a43)
- add-data: Feature ser...
16.0.0-next.4
16.0.0-next.4 (2025-08-11)
Bug Fixes
- build: Specify correct deps versions (e7d4d73)
Full Changelog: 16.0.0-next.3...16.0.0-next.4
16.0.0-next.3
16.0.0-next.3 (2025-08-06)
Bug Fixes
-
layout: Add type for mainpanel$ & fix wrong panel as object expectation in save map (5d9f29d)
-
test: avoid relying on ng-reflect-* attribute (2cb197a)
-
test: Provide TranslateService in spec files (a675b94)
-
!refactor(i18n): Upgrade ngx-translate to v17 (4223b25)
-
!build(server): Update dotenv, yargs and more (370360e)
Features
- i18n: Provide HsMissingTranslationHandler (d3af681)
- server: Expose version via GET request (8a69838)
BREAKING CHANGES
TranslateCustomPiperemoved in favour of externalTranslatePipe, thus all occurrences oftranslateHsmust be changed totranslatewith proper import.TranslateCustomServiceremovedWebpackTranslateLoaderrenamed toHsTranslateLoaderand must be provided inprovidersarray as:
provideTranslateService({
loader: {
provide: TranslateLoader,
useClass: HsTranslateLoader,
deps: [HsConfig, HsLogService, HttpClient],
},
missingTranslationHandler: provideMissingTranslationHandler(
HsMissingTranslationHandler,
),
}),
- Minimum Node versions increased to 20.19 and 22.12
Full Changelog: 16.0.0-next.2...16.0.0-next.3
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:/...