Releases: hslayers/hslayers-ng
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:/...
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...