@eeacms/volto-arcgis-block 0.1.371 → 0.1.373
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,16 @@ 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.373](https://github.com/eea/volto-arcgis-block/compare/0.1.372...0.1.373) - 8 July 2025
|
|
8
|
+
|
|
9
|
+
#### :hammer_and_wrench: Others
|
|
10
|
+
|
|
11
|
+
- Add Sonarqube tag using clms-frontend addons list [EEA Jenkins - [`fa8e13d`](https://github.com/eea/volto-arcgis-block/commit/fa8e13da184b9a9146cb65aca7a89c05fb0261ba)]
|
|
12
|
+
### [0.1.372](https://github.com/eea/volto-arcgis-block/compare/0.1.371...0.1.372) - 26 June 2025
|
|
13
|
+
|
|
14
|
+
#### :hammer_and_wrench: Others
|
|
15
|
+
|
|
16
|
+
- (bug): Fixed crash that occurs when a search is made and the map used after it. [Unai Bolivar - [`83bc494`](https://github.com/eea/volto-arcgis-block/commit/83bc494dfa65e33cf499ca58daf0e1a22bdcdc64)]
|
|
7
17
|
### [0.1.371](https://github.com/eea/volto-arcgis-block/compare/0.1.370...0.1.371) - 25 June 2025
|
|
8
18
|
|
|
9
19
|
#### :hammer_and_wrench: Others
|
package/Jenkinsfile
CHANGED
|
@@ -9,7 +9,7 @@ pipeline {
|
|
|
9
9
|
environment {
|
|
10
10
|
GIT_NAME = "volto-arcgis-block"
|
|
11
11
|
NAMESPACE = "@eeacms"
|
|
12
|
-
SONARQUBE_TAGS = "volto.eea.europa.eu,
|
|
12
|
+
SONARQUBE_TAGS = "volto.eea.europa.eu,water.europa.eu-freshwater,clmsdemo.devel6cph.eea.europa.eu,land.copernicus.eu,ask.copernicus.eu"
|
|
13
13
|
DEPENDENCIES = ""
|
|
14
14
|
BACKEND_PROFILES = "eea.kitkat:testing"
|
|
15
15
|
BACKEND_ADDONS = "clms.addon,clms.types,clms.downloadtool,clms.statstool"
|
package/package.json
CHANGED
|
@@ -230,6 +230,11 @@ class AreaWidget extends React.Component {
|
|
|
230
230
|
});
|
|
231
231
|
this.props.uploadFileHandler(true);
|
|
232
232
|
}
|
|
233
|
+
if (id === 'coordinates') {
|
|
234
|
+
document.querySelector('.coordinateWindow').style.display = 'block';
|
|
235
|
+
} else {
|
|
236
|
+
document.querySelector('.coordinateWindow').style.display = 'none';
|
|
237
|
+
}
|
|
233
238
|
}
|
|
234
239
|
nuts0handler(e) {
|
|
235
240
|
this.loadNutsService(e.target.value, [0]);
|
|
@@ -986,6 +991,91 @@ class AreaWidget extends React.Component {
|
|
|
986
991
|
});
|
|
987
992
|
this.nutsRadioButton(event.target.value);
|
|
988
993
|
}
|
|
994
|
+
addCoordinates() {
|
|
995
|
+
this.clearWidget();
|
|
996
|
+
let pointNorth = !isNaN(document.getElementById('menu-north').value)
|
|
997
|
+
? Number(document.getElementById('menu-north').value)
|
|
998
|
+
: 0;
|
|
999
|
+
let pointSouth = !isNaN(document.getElementById('menu-south').value)
|
|
1000
|
+
? Number(document.getElementById('menu-south').value)
|
|
1001
|
+
: 0;
|
|
1002
|
+
let pointEast = !isNaN(document.getElementById('menu-east').value)
|
|
1003
|
+
? Number(document.getElementById('menu-east').value)
|
|
1004
|
+
: 0;
|
|
1005
|
+
let pointWest = !isNaN(document.getElementById('menu-west').value)
|
|
1006
|
+
? Number(document.getElementById('menu-west').value)
|
|
1007
|
+
: 0;
|
|
1008
|
+
let pointNE = [pointNorth, pointEast];
|
|
1009
|
+
let pointSW = [pointSouth, pointWest];
|
|
1010
|
+
var fillSymbol = {
|
|
1011
|
+
type: 'simple-fill',
|
|
1012
|
+
color: [255, 255, 255, 0.5],
|
|
1013
|
+
outline: {
|
|
1014
|
+
color: [0, 0, 0],
|
|
1015
|
+
width: 1,
|
|
1016
|
+
},
|
|
1017
|
+
};
|
|
1018
|
+
let extentGraphic = new Graphic({
|
|
1019
|
+
geometry: new Extent({
|
|
1020
|
+
xmin: Math.min(pointNE[1], pointSW[1]),
|
|
1021
|
+
xmax: Math.max(pointNE[1], pointSW[1]),
|
|
1022
|
+
ymin: Math.min(pointNE[0], pointSW[0]),
|
|
1023
|
+
ymax: Math.max(pointNE[0], pointSW[0]),
|
|
1024
|
+
spatialReference: { wkid: 4326 },
|
|
1025
|
+
}),
|
|
1026
|
+
symbol: fillSymbol,
|
|
1027
|
+
});
|
|
1028
|
+
let outSpatialReference = new SpatialReference({
|
|
1029
|
+
wkid: 102100,
|
|
1030
|
+
});
|
|
1031
|
+
let graphicProjection = projection.project(
|
|
1032
|
+
extentGraphic.geometry,
|
|
1033
|
+
outSpatialReference,
|
|
1034
|
+
);
|
|
1035
|
+
|
|
1036
|
+
if (extentGraphic && this.checkExtent(graphicProjection)) {
|
|
1037
|
+
this.setState({
|
|
1038
|
+
showInfoPopup: true,
|
|
1039
|
+
infoPopupType: 'fullDataset',
|
|
1040
|
+
});
|
|
1041
|
+
this.props.uploadFileHandler(true);
|
|
1042
|
+
} else {
|
|
1043
|
+
this.setState({
|
|
1044
|
+
showInfoPopup: true,
|
|
1045
|
+
infoPopupType: 'download',
|
|
1046
|
+
});
|
|
1047
|
+
this.props.uploadFileHandler(true);
|
|
1048
|
+
}
|
|
1049
|
+
this.props.updateArea({
|
|
1050
|
+
origin: {
|
|
1051
|
+
x: extentGraphic.geometry.xmin,
|
|
1052
|
+
y: extentGraphic.geometry.ymin,
|
|
1053
|
+
},
|
|
1054
|
+
end: { x: extentGraphic.geometry.xmax, y: extentGraphic.geometry.ymax },
|
|
1055
|
+
});
|
|
1056
|
+
this.props.view.graphics.add(extentGraphic);
|
|
1057
|
+
}
|
|
1058
|
+
openCoordinates(event) {
|
|
1059
|
+
this.clearWidget();
|
|
1060
|
+
this.nutsRadioButton(event.target.value);
|
|
1061
|
+
}
|
|
1062
|
+
closeCoordinates() {
|
|
1063
|
+
if (
|
|
1064
|
+
document.querySelector('.coordinateContainer').style.display === 'none'
|
|
1065
|
+
) {
|
|
1066
|
+
document.querySelector('.coordinateContainer').style.display = 'block';
|
|
1067
|
+
document.querySelector('.coordinateWindow').style.height = '13rem';
|
|
1068
|
+
document
|
|
1069
|
+
.querySelector('.closeCoordinates')
|
|
1070
|
+
.classList.replace('esri-icon-up-arrow', 'esri-icon-close');
|
|
1071
|
+
} else {
|
|
1072
|
+
document.querySelector('.coordinateContainer').style.display = 'none';
|
|
1073
|
+
document.querySelector('.coordinateWindow').style.height = '2rem';
|
|
1074
|
+
document
|
|
1075
|
+
.querySelector('.closeCoordinates')
|
|
1076
|
+
.classList.replace('esri-icon-close', 'esri-icon-up-arrow');
|
|
1077
|
+
}
|
|
1078
|
+
}
|
|
989
1079
|
clearWidget() {
|
|
990
1080
|
window.document.querySelector('.pan-container').style.display = 'none';
|
|
991
1081
|
this.props.mapViewer.view.popup.close();
|
|
@@ -1272,7 +1362,7 @@ class AreaWidget extends React.Component {
|
|
|
1272
1362
|
</fieldset>
|
|
1273
1363
|
</div>
|
|
1274
1364
|
<div className="area-header">
|
|
1275
|
-
Area selection
|
|
1365
|
+
Area selection for custom download:
|
|
1276
1366
|
</div>
|
|
1277
1367
|
<div className="area-header2">
|
|
1278
1368
|
<div className="area-dot">·</div>
|
|
@@ -1436,6 +1526,27 @@ class AreaWidget extends React.Component {
|
|
|
1436
1526
|
</label>
|
|
1437
1527
|
</div>
|
|
1438
1528
|
</div>
|
|
1529
|
+
<div className="ccl-form-group">
|
|
1530
|
+
<div className="rectangle-block">
|
|
1531
|
+
<div className="area-dot">·</div>
|
|
1532
|
+
<input
|
|
1533
|
+
type="radio"
|
|
1534
|
+
id="download_area_select_coordinates"
|
|
1535
|
+
name="downloadAreaSelect"
|
|
1536
|
+
value="coordinates"
|
|
1537
|
+
className="ccl-radio ccl-required ccl-form-check-input area-radio"
|
|
1538
|
+
onClick={this.openCoordinates.bind(this)}
|
|
1539
|
+
></input>
|
|
1540
|
+
<label
|
|
1541
|
+
className="ccl-form-radio-label"
|
|
1542
|
+
htmlFor="download_area_select_coordinates"
|
|
1543
|
+
>
|
|
1544
|
+
<span className="coordinates-header">
|
|
1545
|
+
Add coordinates
|
|
1546
|
+
</span>
|
|
1547
|
+
</label>
|
|
1548
|
+
</div>
|
|
1549
|
+
</div>
|
|
1439
1550
|
</fieldset>
|
|
1440
1551
|
</div>
|
|
1441
1552
|
<div className="area-header2">
|
|
@@ -1461,9 +1572,7 @@ class AreaWidget extends React.Component {
|
|
|
1461
1572
|
>
|
|
1462
1573
|
<div className="field">
|
|
1463
1574
|
<label className="file-upload">
|
|
1464
|
-
<span>
|
|
1465
|
-
File formats supported: shp(zip), geojson, CSV
|
|
1466
|
-
</span>
|
|
1575
|
+
<span>Valid formats: shp, geojson, CSV</span>
|
|
1467
1576
|
<input
|
|
1468
1577
|
type="file"
|
|
1469
1578
|
name="file"
|
|
@@ -1629,6 +1738,85 @@ class AreaWidget extends React.Component {
|
|
|
1629
1738
|
</div>
|
|
1630
1739
|
)}
|
|
1631
1740
|
</div>
|
|
1741
|
+
<div className="coordinateWindow">
|
|
1742
|
+
<div className="coordinateHeader">
|
|
1743
|
+
Add new coordinates
|
|
1744
|
+
<div
|
|
1745
|
+
className="esri-icon-close esri-interactive closeCoordinates"
|
|
1746
|
+
onClick={this.closeCoordinates.bind(this)}
|
|
1747
|
+
onKeyDown={this.closeCoordinates.bind(this)}
|
|
1748
|
+
tabIndex="0"
|
|
1749
|
+
role="button"
|
|
1750
|
+
></div>
|
|
1751
|
+
</div>
|
|
1752
|
+
<div className="coordinateContainer">
|
|
1753
|
+
<div className="coordinateSubContainer">
|
|
1754
|
+
<div className="coordinateSubContainerTitle">NE</div>
|
|
1755
|
+
<div>
|
|
1756
|
+
Lat:
|
|
1757
|
+
<input
|
|
1758
|
+
type="text"
|
|
1759
|
+
id="menu-north"
|
|
1760
|
+
maxLength="9"
|
|
1761
|
+
placeholder="00.000000"
|
|
1762
|
+
className="coordinateInput"
|
|
1763
|
+
/>
|
|
1764
|
+
</div>
|
|
1765
|
+
<div>
|
|
1766
|
+
Lon:
|
|
1767
|
+
<input
|
|
1768
|
+
type="text"
|
|
1769
|
+
id="menu-east"
|
|
1770
|
+
maxLength="9"
|
|
1771
|
+
placeholder="00.000000"
|
|
1772
|
+
className="coordinateInput"
|
|
1773
|
+
/>
|
|
1774
|
+
</div>
|
|
1775
|
+
</div>
|
|
1776
|
+
<div className="coordinateSubContainer">
|
|
1777
|
+
<div className="coordinateSubContainerTitle">SW</div>
|
|
1778
|
+
<div>
|
|
1779
|
+
Lat:
|
|
1780
|
+
<input
|
|
1781
|
+
type="text"
|
|
1782
|
+
id="menu-south"
|
|
1783
|
+
maxLength="9"
|
|
1784
|
+
placeholder="00.000000"
|
|
1785
|
+
className="coordinateInput"
|
|
1786
|
+
/>
|
|
1787
|
+
</div>
|
|
1788
|
+
<div>
|
|
1789
|
+
Lon:
|
|
1790
|
+
<input
|
|
1791
|
+
type="text"
|
|
1792
|
+
id="menu-west"
|
|
1793
|
+
maxLength="9"
|
|
1794
|
+
placeholder="00.000000"
|
|
1795
|
+
className="coordinateInput"
|
|
1796
|
+
/>
|
|
1797
|
+
</div>
|
|
1798
|
+
</div>
|
|
1799
|
+
<button
|
|
1800
|
+
aria-label="Search"
|
|
1801
|
+
className="button menu-search-button-coordinatess"
|
|
1802
|
+
onClick={() => this.addCoordinates()}
|
|
1803
|
+
onKeyDown={(e) => {
|
|
1804
|
+
if (
|
|
1805
|
+
!e.altKey &&
|
|
1806
|
+
e.code !== 'Tab' &&
|
|
1807
|
+
!e.ctrlKey &&
|
|
1808
|
+
e.code !== 'Delete' &&
|
|
1809
|
+
!e.shiftKey &&
|
|
1810
|
+
!e.code.startsWith('F')
|
|
1811
|
+
) {
|
|
1812
|
+
this.addCoordinates();
|
|
1813
|
+
}
|
|
1814
|
+
}}
|
|
1815
|
+
>
|
|
1816
|
+
Add this area to the map
|
|
1817
|
+
</button>
|
|
1818
|
+
</div>
|
|
1819
|
+
</div>
|
|
1632
1820
|
</>
|
|
1633
1821
|
);
|
|
1634
1822
|
}
|
|
@@ -49,7 +49,7 @@ export const AddCartItem = ({
|
|
|
49
49
|
let check = document.querySelector('.area-panel input:checked')?.value;
|
|
50
50
|
let fileUpload = sessionStorage.getItem('fileUploadLayer') ? true : false;
|
|
51
51
|
let area = {};
|
|
52
|
-
if (check === 'area' || fileUpload) {
|
|
52
|
+
if (check === 'area' || fileUpload || check === 'coordinates') {
|
|
53
53
|
let graphics = mapViewer.view.graphics;
|
|
54
54
|
if (graphics.length === 0) {
|
|
55
55
|
area = '';
|
|
@@ -100,7 +100,7 @@ export const AddCartItem = ({
|
|
|
100
100
|
let isMapServer = dataset?.ViewService?.toLowerCase().endsWith('/mapserver')
|
|
101
101
|
? true
|
|
102
102
|
: false;
|
|
103
|
-
if (check === 'area' || fileUpload) {
|
|
103
|
+
if (check === 'area' || fileUpload || check === 'coordinates') {
|
|
104
104
|
areaExtent = new Extent({
|
|
105
105
|
xmin: Math.min(areaData?.end?.x, areaData?.origin?.x),
|
|
106
106
|
xmax: Math.max(areaData?.end?.x, areaData?.origin?.x),
|
|
@@ -1290,9 +1290,14 @@ class MenuWidget extends React.Component {
|
|
|
1290
1290
|
this.DatasetFamilies[dataset.FamilyTitle].push(dataset);
|
|
1291
1291
|
} else {
|
|
1292
1292
|
if (this.filtersApplied) {
|
|
1293
|
-
|
|
1293
|
+
const defcheckValue = document
|
|
1294
1294
|
.querySelector('#' + checkProduct)
|
|
1295
1295
|
?.getAttribute('defcheck');
|
|
1296
|
+
if (defcheckValue) {
|
|
1297
|
+
dataset_def = defcheckValue
|
|
1298
|
+
.split(',')
|
|
1299
|
+
.filter((id) => id.trim() !== '');
|
|
1300
|
+
}
|
|
1296
1301
|
} else if (
|
|
1297
1302
|
dataset &&
|
|
1298
1303
|
dataset.Default_active === true &&
|
|
@@ -468,6 +468,75 @@ label.ccl-form-radio-label span.nuts-menu-icon {
|
|
|
468
468
|
color: red;
|
|
469
469
|
font-size: 15px;
|
|
470
470
|
}
|
|
471
|
+
|
|
472
|
+
.coordinateWindow {
|
|
473
|
+
position: absolute;
|
|
474
|
+
right: 23rem;
|
|
475
|
+
bottom: 2rem;
|
|
476
|
+
display: none;
|
|
477
|
+
width: 23rem;
|
|
478
|
+
height: 13rem;
|
|
479
|
+
background-color: white;
|
|
480
|
+
}
|
|
481
|
+
|
|
482
|
+
.coordinateHeader {
|
|
483
|
+
display: flex;
|
|
484
|
+
justify-content: space-between;
|
|
485
|
+
padding: 0.5rem;
|
|
486
|
+
background-color: #a0b128;
|
|
487
|
+
color: white;
|
|
488
|
+
}
|
|
489
|
+
|
|
490
|
+
.closeCoordinates {
|
|
491
|
+
width: 1.4rem;
|
|
492
|
+
height: 1.4rem;
|
|
493
|
+
padding: 0.2rem;
|
|
494
|
+
margin-right: 0.2rem;
|
|
495
|
+
}
|
|
496
|
+
|
|
497
|
+
.closeCoordinates:hover {
|
|
498
|
+
background-color: #7c8921;
|
|
499
|
+
}
|
|
500
|
+
|
|
501
|
+
.coordinateContainer {
|
|
502
|
+
display: block;
|
|
503
|
+
padding-right: 1rem;
|
|
504
|
+
padding-left: 1rem;
|
|
505
|
+
margin-top: 1rem;
|
|
506
|
+
}
|
|
507
|
+
|
|
508
|
+
.coordinateSubContainer {
|
|
509
|
+
display: flex;
|
|
510
|
+
flex-direction: row;
|
|
511
|
+
justify-content: space-between;
|
|
512
|
+
margin-top: 2rem;
|
|
513
|
+
margin-right: 0.5rem;
|
|
514
|
+
margin-left: 0.3rem;
|
|
515
|
+
}
|
|
516
|
+
|
|
517
|
+
.coordinateSubContainerTitle {
|
|
518
|
+
width: 1rem;
|
|
519
|
+
}
|
|
520
|
+
|
|
521
|
+
.menu-search-button-coordinatess {
|
|
522
|
+
padding: 0.2rem;
|
|
523
|
+
padding-right: 0.7rem;
|
|
524
|
+
padding-left: 0.7rem;
|
|
525
|
+
border: none;
|
|
526
|
+
margin-top: 1.5rem;
|
|
527
|
+
margin-left: 8.5rem;
|
|
528
|
+
background-color: #a0b128;
|
|
529
|
+
color: white;
|
|
530
|
+
}
|
|
531
|
+
|
|
532
|
+
.coordinateInput {
|
|
533
|
+
width: 6rem;
|
|
534
|
+
border-width: 1px;
|
|
535
|
+
border-style: solid;
|
|
536
|
+
border-color: #a0b128 !important;
|
|
537
|
+
margin-left: 0.5rem;
|
|
538
|
+
}
|
|
539
|
+
|
|
471
540
|
/* WMS Upload */
|
|
472
541
|
div.upload-container.esri-component
|
|
473
542
|
> div.right-panel
|