@eeacms/volto-arcgis-block 0.1.464 → 0.1.466

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -4,6 +4,13 @@ All notable changes to this project will be documented in this file. Dates are d
4
4
 
5
5
  Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).
6
6
 
7
+ ### [0.1.466](https://github.com/eea/volto-arcgis-block/compare/0.1.465...0.1.466) - 7 August 2026
8
+
9
+ #### :hammer_and_wrench: Others
10
+
11
+ - (bug): ensure time calendar updates with every selection in active layers menu tab [Unai Bolivar - [`be7b3ff`](https://github.com/eea/volto-arcgis-block/commit/be7b3ff60444005abdfbcbdfa7e06d6a387af80e)]
12
+ ### [0.1.465](https://github.com/eea/volto-arcgis-block/compare/0.1.464...0.1.465) - 6 August 2026
13
+
7
14
  ### [0.1.464](https://github.com/eea/volto-arcgis-block/compare/0.1.463...0.1.464) - 3 August 2026
8
15
 
9
16
  #### :house: Internal changes
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eeacms/volto-arcgis-block",
3
- "version": "0.1.464",
3
+ "version": "0.1.466",
4
4
  "description": "volto-arcgis-block: Volto add-on",
5
5
  "main": "src/index.js",
6
6
  "author": "European Environment Agency: CodeSyntax",
@@ -1510,10 +1510,12 @@ class MapViewer extends React.Component {
1510
1510
  this.location.search.includes('dataset=')))
1511
1511
  ) {
1512
1512
  let toc_panel_scrolls = sessionStorage.getItem('toc_panel_scrolls');
1513
+ let checkedLayers = sessionStorage.getItem('checkedLayers');
1513
1514
  if (!sessionStorage.getItem('TMSLayerObj')) {
1514
1515
  sessionStorage.clear();
1515
1516
  }
1516
1517
  sessionStorage.setItem('toc_panel_scrolls', toc_panel_scrolls);
1518
+ sessionStorage.setItem('checkedLayers', checkedLayers);
1517
1519
  }
1518
1520
 
1519
1521
  // Handle user state changes from context
@@ -988,7 +988,7 @@ class MenuWidget extends React.Component {
988
988
  }
989
989
  this.openMenu();
990
990
  this.loadComponentFilters();
991
- this.expandDropdowns();
991
+ //this.expandDropdowns();
992
992
  // Add "My Services" component to the UI
993
993
  const myServicesComponent = this.createMyServicesComponent();
994
994
  const myServicesContainer = document.createElement('div');
@@ -1117,27 +1117,27 @@ class MenuWidget extends React.Component {
1117
1117
  let dataset = url.searchParams.get('dataset');
1118
1118
  if (product || dataset) {
1119
1119
  // CLMS-1261 - clear any previously checked layers when navigating using 'view in the map viewer'
1120
- let expandedDropdowns = sessionStorage.getItem('expandedDropdowns');
1121
- let checkedLayers = sessionStorage.getItem('checkedLayers');
1122
- if (expandedDropdowns) {
1123
- sessionStorage.setItem('expandedDropdowns', JSON.stringify([]));
1124
- const userKey = this.userID ? 'user_' + this.userID : 'user_anonymous';
1125
- const existing = localStorage.getItem(userKey);
1126
- let storeObj = {};
1127
- if (existing) {
1128
- try {
1129
- storeObj = JSON.parse(existing) || {};
1130
- } catch (e) {
1131
- storeObj = {};
1132
- }
1133
- }
1134
- storeObj.expandedDropdowns = [];
1135
- localStorage.setItem(userKey, JSON.stringify(storeObj));
1136
- }
1137
- if (checkedLayers) {
1138
- sessionStorage.setItem('checkedLayers', JSON.stringify([]));
1139
- window.dispatchEvent(new Event('storage'));
1140
- }
1120
+ //let expandedDropdowns = sessionStorage.getItem('expandedDropdowns');
1121
+ //let checkedLayers = sessionStorage.getItem('checkedLayers');
1122
+ // if (expandedDropdowns) {
1123
+ // sessionStorage.setItem('expandedDropdowns', JSON.stringify([]));
1124
+ // const userKey = this.userID ? 'user_' + this.userID : 'user_anonymous';
1125
+ // const existing = localStorage.getItem(userKey);
1126
+ // let storeObj = {};
1127
+ // if (existing) {
1128
+ // try {
1129
+ // storeObj = JSON.parse(existing) || {};
1130
+ // } catch (e) {
1131
+ // storeObj = {};
1132
+ // }
1133
+ // }
1134
+ // storeObj.expandedDropdowns = [];
1135
+ // localStorage.setItem(userKey, JSON.stringify(storeObj));
1136
+ // }
1137
+ // if (checkedLayers) {
1138
+ // sessionStorage.setItem('checkedLayers', JSON.stringify([]));
1139
+ // window.dispatchEvent(new Event('storage'));
1140
+ // }
1141
1141
  let event = new MouseEvent('click', {
1142
1142
  view: window,
1143
1143
  bubbles: true,
@@ -7760,7 +7760,31 @@ class MenuWidget extends React.Component {
7760
7760
  */
7761
7761
  loadLayers() {
7762
7762
  let layers = JSON.parse(sessionStorage.getItem('checkedLayers'));
7763
- if (layers && !this.props.download) {
7763
+ let expandedDropdowns = null;
7764
+ const userKey = this.userID ? 'user_' + this.userID : 'user_anonymous';
7765
+ const existing = localStorage.getItem(userKey);
7766
+ if (existing) {
7767
+ try {
7768
+ const storeObj = JSON.parse(existing) || {};
7769
+ const stored = storeObj ? storeObj.expandedDropdowns : null;
7770
+ if (Array.isArray(stored)) {
7771
+ expandedDropdowns = stored;
7772
+ } else if (typeof stored === 'string') {
7773
+ const parsed = JSON.parse(stored);
7774
+ if (Array.isArray(parsed)) expandedDropdowns = parsed;
7775
+ }
7776
+ } catch (e) {}
7777
+ }
7778
+ if (!Array.isArray(expandedDropdowns)) {
7779
+ try {
7780
+ const fromSession = sessionStorage.getItem('expandedDropdowns');
7781
+ if (fromSession) {
7782
+ const parsed = JSON.parse(fromSession);
7783
+ if (Array.isArray(parsed)) expandedDropdowns = parsed;
7784
+ }
7785
+ } catch (e) {}
7786
+ }
7787
+ if (layers && !this.props.download && Array.isArray(expandedDropdowns)) {
7764
7788
  for (var i = layers.length - 1; i >= 0; i--) {
7765
7789
  let layer = layers[i];
7766
7790
  let node = document.getElementById(layer);
@@ -7782,10 +7806,37 @@ class MenuWidget extends React.Component {
7782
7806
  delete node.dataset.preserveCheckedLayerState;
7783
7807
  }
7784
7808
  }
7785
-
7786
- // set scroll position
7787
7809
  let dropdown = node.closest('.map-menu-dropdown');
7810
+ if (dropdown) {
7811
+ let button = dropdown.querySelector('.ccl-expandable__button');
7812
+ if (button && expandedDropdowns.includes(button.id)) {
7813
+ button.setAttribute('aria-expanded', 'true');
7814
+ }
7815
+ }
7788
7816
  let productDropdown = node.closest('.map-menu-product-dropdown');
7817
+ if (productDropdown) {
7818
+ let familyDropdown = node.closest('.map-menu-family-dropdown');
7819
+ if (familyDropdown) {
7820
+ let button = familyDropdown.querySelector(
7821
+ '.ccl-expandable__button',
7822
+ );
7823
+ if (button && expandedDropdowns.includes(button.id)) {
7824
+ button.setAttribute('aria-expanded', 'true');
7825
+ }
7826
+ }
7827
+ let datasetDropdown = node.closest('.map-menu-product-dropdown');
7828
+ if (datasetDropdown) {
7829
+ let button = datasetDropdown.querySelector(
7830
+ '.ccl-expandable__button',
7831
+ );
7832
+ if (button && expandedDropdowns.includes(button.id)) {
7833
+ button.setAttribute('aria-expanded', 'true');
7834
+ }
7835
+ }
7836
+ }
7837
+ // set scroll position
7838
+ dropdown = node.closest('.map-menu-dropdown');
7839
+ productDropdown = node.closest('.map-menu-product-dropdown');
7789
7840
  let scrollPosition = productDropdown
7790
7841
  ? productDropdown.offsetTop
7791
7842
  : dropdown.offsetTop;
@@ -7970,6 +8021,7 @@ class MenuWidget extends React.Component {
7970
8021
  } catch (e) {}
7971
8022
  ReactDOM.render(
7972
8023
  <TimesliderWidget
8024
+ key={elem.id}
7973
8025
  view={this.props.view}
7974
8026
  map={this.map}
7975
8027
  mapViewer={this.props.mapViewer}