@eeacms/volto-arcgis-block 0.1.323 → 0.1.325
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,15 @@ 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.325](https://github.com/eea/volto-arcgis-block/compare/0.1.324...0.1.325) - 20 December 2024
|
|
8
|
+
|
|
9
|
+
#### :hammer_and_wrench: Others
|
|
10
|
+
|
|
11
|
+
- CLMS-280068 (Feat): Removed taxonomy [Urkorue - [`21170b2`](https://github.com/eea/volto-arcgis-block/commit/21170b2390eb7f30b32f8668a0c23578e68a1869)]
|
|
12
|
+
- CLMS-280068 (Feat): Added missing lines [Urkorue - [`311b2d2`](https://github.com/eea/volto-arcgis-block/commit/311b2d29fd21ebbaf66475710d36d995af6bb644)]
|
|
13
|
+
- CLMS-280068 (Bug): Redesigned TOC menu [Urkorue - [`e045954`](https://github.com/eea/volto-arcgis-block/commit/e04595466dff5198a3b0dbdf4b615d1705077090)]
|
|
14
|
+
### [0.1.324](https://github.com/eea/volto-arcgis-block/compare/0.1.323...0.1.324) - 11 December 2024
|
|
15
|
+
|
|
7
16
|
### [0.1.323](https://github.com/eea/volto-arcgis-block/compare/0.1.322...0.1.323) - 10 December 2024
|
|
8
17
|
|
|
9
18
|
#### :hammer_and_wrench: Others
|
package/package.json
CHANGED
|
@@ -1,17 +1,16 @@
|
|
|
1
1
|
import React, { createRef } from 'react';
|
|
2
2
|
import { loadModules } from 'esri-loader';
|
|
3
3
|
import { Loader } from 'semantic-ui-react';
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
import { FontAwesomeIcon } from '@eeacms/volto-clms-utils/components';
|
|
7
|
-
|
|
8
|
-
import Highcharts from 'highcharts';
|
|
9
|
-
// import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
|
|
4
|
+
import loadable from '@loadable/component';
|
|
5
|
+
import { injectLazyLibs } from '@plone/volto/helpers/Loadable';
|
|
6
|
+
// import { FontAwesomeIcon } from '@eeacms/volto-clms-utils/components';
|
|
7
|
+
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
|
|
10
8
|
|
|
11
9
|
var GeometryEngine, Graphic, esriRequest;
|
|
12
10
|
|
|
13
|
-
//
|
|
11
|
+
// import Highcharts from 'highcharts';
|
|
14
12
|
|
|
13
|
+
const HighchartsReact = loadable(() => import('highcharts-react-official'));
|
|
15
14
|
class InfoWidget extends React.Component {
|
|
16
15
|
/**
|
|
17
16
|
* Creator of the InfoWidget widget class
|
|
@@ -1156,11 +1155,12 @@ class InfoWidget extends React.Component {
|
|
|
1156
1155
|
{this.state.pixelInfo && !noData && (
|
|
1157
1156
|
<>
|
|
1158
1157
|
{this.loadVariableSelector(this.state.layerIndex)}
|
|
1159
|
-
{
|
|
1160
|
-
|
|
1161
|
-
|
|
1162
|
-
|
|
1163
|
-
|
|
1158
|
+
{this.Highcharts && (
|
|
1159
|
+
<HighchartsReact
|
|
1160
|
+
highcharts={this.Highcharts}
|
|
1161
|
+
options={this.loadInfoChart(this.state.layerIndex)}
|
|
1162
|
+
/>
|
|
1163
|
+
)}
|
|
1164
1164
|
{this.loadStatisticsSelector(this.state.layerIndex)}
|
|
1165
1165
|
{this.loadTimeInfoTable(this.state.layerIndex)}
|
|
1166
1166
|
</>
|
|
@@ -1197,5 +1197,4 @@ class InfoWidget extends React.Component {
|
|
|
1197
1197
|
}
|
|
1198
1198
|
}
|
|
1199
1199
|
|
|
1200
|
-
|
|
1201
|
-
export default InfoWidget;
|
|
1200
|
+
export default injectLazyLibs('highcharts')(InfoWidget);
|
|
@@ -21,6 +21,8 @@ import HotspotWidget from './HotspotWidget';
|
|
|
21
21
|
import PanWidget from './PanWidget';
|
|
22
22
|
import BookmarkWidget from './BookmarkWidget';
|
|
23
23
|
import LoadingSpinner from './LoadingSpinner';
|
|
24
|
+
import { injectLazyLibs } from '@plone/volto/helpers/Loadable';
|
|
25
|
+
//import { getTaxonomy } from '@eeacms/volto-taxonomy/actions';
|
|
24
26
|
|
|
25
27
|
//import "isomorphic-fetch"; <-- Necessary to use fetch?
|
|
26
28
|
var Map, MapView, Zoom, intl, Basemap, WebTileLayer, Extent;
|
|
@@ -69,6 +71,7 @@ class MapViewer extends React.Component {
|
|
|
69
71
|
this.bookmarkHandler = this.bookmarkHandler.bind(this);
|
|
70
72
|
this.prepackageHandler = this.prepackageHandler.bind(this);
|
|
71
73
|
this.uploadFileHandler = this.uploadFileHandler.bind(this);
|
|
74
|
+
//this.getTaxonomy = this.props.getTaxonomy.bind(this);
|
|
72
75
|
}
|
|
73
76
|
|
|
74
77
|
mapLayersHandler(newLayers) {
|
|
@@ -163,19 +166,9 @@ class MapViewer extends React.Component {
|
|
|
163
166
|
// return obj;
|
|
164
167
|
// }
|
|
165
168
|
|
|
166
|
-
// waitForContainer(mapdiv) {
|
|
167
|
-
// while (mapdiv === null) {
|
|
168
|
-
// new Promise((resolve) => setTimeout(resolve, 100)); // wait for 100ms
|
|
169
|
-
// }
|
|
170
|
-
// return mapdiv;
|
|
171
|
-
// }
|
|
172
|
-
|
|
173
169
|
async componentDidMount() {
|
|
174
170
|
loadCss();
|
|
175
171
|
await this.loader();
|
|
176
|
-
// this.state.url = window.location.href;
|
|
177
|
-
// await this.waitForDataFill(this.compCfg);
|
|
178
|
-
|
|
179
172
|
this.positronCompositeBasemap = new Basemap({
|
|
180
173
|
title: 'Positron composite',
|
|
181
174
|
thumbnailUrl: this.cfgUrls.positronCompositeThumbnail,
|
|
@@ -185,12 +178,8 @@ class MapViewer extends React.Component {
|
|
|
185
178
|
copyright: '© OpenStreetMap (and) contributors, CC-BY-SA',
|
|
186
179
|
}),
|
|
187
180
|
],
|
|
188
|
-
// referenceLayers: [
|
|
189
|
-
// new _WebTileLayer(...)
|
|
190
|
-
// ],
|
|
191
181
|
});
|
|
192
182
|
this.map = new Map({
|
|
193
|
-
// basemap: 'topo',
|
|
194
183
|
basemap: this.positronCompositeBasemap,
|
|
195
184
|
logo: false,
|
|
196
185
|
});
|
|
@@ -290,7 +279,6 @@ class MapViewer extends React.Component {
|
|
|
290
279
|
componentWillUnmount() {
|
|
291
280
|
// clean up
|
|
292
281
|
if (this.view) {
|
|
293
|
-
//clearInterval(this.intervalId);
|
|
294
282
|
this.view.container = null;
|
|
295
283
|
this.view.destroy();
|
|
296
284
|
delete this.view;
|
|
@@ -443,6 +431,7 @@ class MapViewer extends React.Component {
|
|
|
443
431
|
prepackageHandler={this.prepackageHandler}
|
|
444
432
|
uploadedFile={this.state.uploadedFile}
|
|
445
433
|
uploadFileHandler={this.uploadFileHandler}
|
|
434
|
+
//getTaxonomy={this.getTaxonomy}
|
|
446
435
|
/>
|
|
447
436
|
); //call conf
|
|
448
437
|
}
|
|
@@ -541,6 +530,11 @@ export const CheckUserID = ({ reference }) => {
|
|
|
541
530
|
</>
|
|
542
531
|
);
|
|
543
532
|
};
|
|
533
|
+
// const mapDispatchToProps = (dispatch) => {
|
|
534
|
+
// return {
|
|
535
|
+
// getTaxonomy: (name) => dispatch(getTaxonomy(name)),
|
|
536
|
+
// };
|
|
537
|
+
// };
|
|
544
538
|
|
|
545
539
|
export default compose(
|
|
546
540
|
connect(
|
|
@@ -549,4 +543,6 @@ export default compose(
|
|
|
549
543
|
}),
|
|
550
544
|
{ MapViewerConfig },
|
|
551
545
|
),
|
|
552
|
-
|
|
546
|
+
//connect(null, mapDispatchToProps),
|
|
547
|
+
injectLazyLibs('highcharts'),
|
|
548
|
+
)(MapViewer, MenuWidget);
|
|
@@ -401,6 +401,7 @@ class MenuWidget extends React.Component {
|
|
|
401
401
|
TMSLayerObj: null,
|
|
402
402
|
draggedElements: [],
|
|
403
403
|
popup: false,
|
|
404
|
+
filterArrow: 'chevron-down',
|
|
404
405
|
};
|
|
405
406
|
this.menuClass =
|
|
406
407
|
'esri-icon-drag-horizontal esri-widget--button esri-widget esri-interactive';
|
|
@@ -480,6 +481,7 @@ class MenuWidget extends React.Component {
|
|
|
480
481
|
});
|
|
481
482
|
|
|
482
483
|
this.activeLayersHandler = this.props.activeLayersHandler;
|
|
484
|
+
//this.getTaxonomy = this.props.getTaxonomy;
|
|
483
485
|
}
|
|
484
486
|
|
|
485
487
|
loader() {
|
|
@@ -878,6 +880,7 @@ class MenuWidget extends React.Component {
|
|
|
878
880
|
//to watch the component
|
|
879
881
|
//this.setState({});
|
|
880
882
|
this.openMenu();
|
|
883
|
+
this.loadComponentFilters();
|
|
881
884
|
this.expandDropdowns();
|
|
882
885
|
this.loadLayers();
|
|
883
886
|
this.loadOpacity();
|
|
@@ -4100,6 +4103,228 @@ class MenuWidget extends React.Component {
|
|
|
4100
4103
|
clearTimeout(this.timeout);
|
|
4101
4104
|
};
|
|
4102
4105
|
|
|
4106
|
+
loadComponentFilters() {
|
|
4107
|
+
var selectedComponent = document.getElementById('select-component');
|
|
4108
|
+
selectedComponent.options.add(
|
|
4109
|
+
new Option('Select a component', 'default', false, false),
|
|
4110
|
+
);
|
|
4111
|
+
selectedComponent.options[0].disabled = true;
|
|
4112
|
+
var selectedProduct = document.getElementById('select-product');
|
|
4113
|
+
selectedProduct.options.add(
|
|
4114
|
+
new Option('Select a product', 'default', false, false),
|
|
4115
|
+
);
|
|
4116
|
+
selectedProduct.options[0].disabled = true;
|
|
4117
|
+
document
|
|
4118
|
+
.querySelector('.menu-family-filter')
|
|
4119
|
+
.setAttribute('style', 'display: none;');
|
|
4120
|
+
this.compCfg.forEach((element) => {
|
|
4121
|
+
selectedComponent.options.add(
|
|
4122
|
+
new Option(
|
|
4123
|
+
element.ComponentTitle,
|
|
4124
|
+
element.ComponentPosition,
|
|
4125
|
+
element.ComponentPosition,
|
|
4126
|
+
),
|
|
4127
|
+
);
|
|
4128
|
+
});
|
|
4129
|
+
}
|
|
4130
|
+
loadProductFilters() {
|
|
4131
|
+
var selectedComponent = document.getElementById('select-component');
|
|
4132
|
+
var selectedProduct = document.getElementById('select-product');
|
|
4133
|
+
if (
|
|
4134
|
+
document.querySelector('.clear-filters') &&
|
|
4135
|
+
selectedComponent.value !== 'default'
|
|
4136
|
+
) {
|
|
4137
|
+
document
|
|
4138
|
+
.querySelector('.clear-filters')
|
|
4139
|
+
.setAttribute('style', 'display: block;');
|
|
4140
|
+
}
|
|
4141
|
+
this.removeOptions(selectedProduct);
|
|
4142
|
+
selectedProduct.options.add(
|
|
4143
|
+
new Option('Select a product', 'default', false, false),
|
|
4144
|
+
);
|
|
4145
|
+
selectedProduct.options[0].disabled = true;
|
|
4146
|
+
this.compCfg.forEach((component) => {
|
|
4147
|
+
if (component.ComponentPosition.toString() === selectedComponent.value) {
|
|
4148
|
+
component.Products.forEach((product) => {
|
|
4149
|
+
selectedProduct.options.add(
|
|
4150
|
+
new Option(
|
|
4151
|
+
product.ProductTitle,
|
|
4152
|
+
product.ProductId,
|
|
4153
|
+
product.ProductId,
|
|
4154
|
+
),
|
|
4155
|
+
);
|
|
4156
|
+
});
|
|
4157
|
+
}
|
|
4158
|
+
});
|
|
4159
|
+
let familyFilter = document.querySelector('.menu-family-filter');
|
|
4160
|
+
if (familyFilter) {
|
|
4161
|
+
familyFilter.setAttribute('style', 'display: none;');
|
|
4162
|
+
}
|
|
4163
|
+
}
|
|
4164
|
+
async loadFamilyFilters() {
|
|
4165
|
+
// var selectedFamily = document.getElementById('select-family');
|
|
4166
|
+
// var selectedProduct = document.getElementById('select-product');
|
|
4167
|
+
// this.removeOptions(selectedFamily);
|
|
4168
|
+
//let tax = await this.getTaxonomy('collective.taxonomy.family');
|
|
4169
|
+
//let hasFamily = false;
|
|
4170
|
+
// selectedFamily.options.add(
|
|
4171
|
+
// new Option('Select a family', 'default', false, false),
|
|
4172
|
+
// );
|
|
4173
|
+
//let text = selectedProduct.selectedOptions[0].text
|
|
4174
|
+
// tax.tree.forEach((element) => {
|
|
4175
|
+
// if (element.title === selectedProduct.selectedOptions[0].text) {
|
|
4176
|
+
// //hasFamily = true;
|
|
4177
|
+
// element.children.forEach((child) => {
|
|
4178
|
+
// selectedFamily.options.add(
|
|
4179
|
+
// new Option(child.title, child.key, child.key),
|
|
4180
|
+
// );
|
|
4181
|
+
// });
|
|
4182
|
+
// }
|
|
4183
|
+
// });
|
|
4184
|
+
// let familyFilter = document.querySelector('.menu-family-filter');
|
|
4185
|
+
// if (familyFilter) {
|
|
4186
|
+
// if (!hasFamily) {
|
|
4187
|
+
// familyFilter.setAttribute('style','display: none;');
|
|
4188
|
+
// }else{
|
|
4189
|
+
// familyFilter.setAttribute('style','display: flex;');
|
|
4190
|
+
// }
|
|
4191
|
+
// }
|
|
4192
|
+
}
|
|
4193
|
+
async menuSearch() {
|
|
4194
|
+
let searchText;
|
|
4195
|
+
let componentFilter;
|
|
4196
|
+
let productFilter;
|
|
4197
|
+
//let familyFilter;
|
|
4198
|
+
if (document.querySelector('#menu-searchtext')) {
|
|
4199
|
+
searchText = document
|
|
4200
|
+
.querySelector('#menu-searchtext')
|
|
4201
|
+
.value?.toUpperCase();
|
|
4202
|
+
}
|
|
4203
|
+
if (document.getElementById('select-component')) {
|
|
4204
|
+
componentFilter = document.getElementById('select-component').value;
|
|
4205
|
+
}
|
|
4206
|
+
if (document.getElementById('select-product')) {
|
|
4207
|
+
productFilter = document.getElementById('select-product').value;
|
|
4208
|
+
}
|
|
4209
|
+
// if (document.getElementById('select-family')) {
|
|
4210
|
+
// familyFilter = document.getElementById('select-family').text;
|
|
4211
|
+
// }
|
|
4212
|
+
for (let index = 0; index < this.compCfg.length; index++) {
|
|
4213
|
+
let componentFound = false;
|
|
4214
|
+
if (
|
|
4215
|
+
index.toString() === componentFilter ||
|
|
4216
|
+
componentFilter === 'default'
|
|
4217
|
+
) {
|
|
4218
|
+
this.compCfg[index].Products.forEach((product) => {
|
|
4219
|
+
let productFound = false;
|
|
4220
|
+
if (
|
|
4221
|
+
product.ProductId === productFilter ||
|
|
4222
|
+
productFilter === 'default'
|
|
4223
|
+
) {
|
|
4224
|
+
product.Datasets.forEach((dataset) => {
|
|
4225
|
+
if (dataset?.DatasetTitle?.toUpperCase().includes(searchText)) {
|
|
4226
|
+
componentFound = true;
|
|
4227
|
+
productFound = true;
|
|
4228
|
+
let componentElem = document.querySelector(
|
|
4229
|
+
'#component_' + index,
|
|
4230
|
+
);
|
|
4231
|
+
componentElem
|
|
4232
|
+
.querySelector('.ccl-expandable__button')
|
|
4233
|
+
.setAttribute('aria-expanded', 'true');
|
|
4234
|
+
|
|
4235
|
+
let productElem = document.querySelector(
|
|
4236
|
+
'[productid="' + product.ProductId + '"]',
|
|
4237
|
+
);
|
|
4238
|
+
productElem
|
|
4239
|
+
.querySelector('.ccl-expandable__button')
|
|
4240
|
+
.setAttribute('aria-expanded', 'true');
|
|
4241
|
+
let datasetElem = document.querySelector(
|
|
4242
|
+
'[datasetid="' + dataset.DatasetId + '"]',
|
|
4243
|
+
);
|
|
4244
|
+
datasetElem.removeAttribute('style');
|
|
4245
|
+
productElem.removeAttribute('style');
|
|
4246
|
+
componentElem.removeAttribute('style');
|
|
4247
|
+
} else {
|
|
4248
|
+
let datasetElem = document.querySelector(
|
|
4249
|
+
'[datasetid="' + dataset.DatasetId + '"]',
|
|
4250
|
+
);
|
|
4251
|
+
datasetElem.setAttribute('style', 'display: none;');
|
|
4252
|
+
}
|
|
4253
|
+
});
|
|
4254
|
+
}
|
|
4255
|
+
if (!productFound) {
|
|
4256
|
+
let productElem = document.querySelector(
|
|
4257
|
+
'[productid="' + product.ProductId + '"]',
|
|
4258
|
+
);
|
|
4259
|
+
productElem.setAttribute('style', 'display: none;');
|
|
4260
|
+
}
|
|
4261
|
+
});
|
|
4262
|
+
}
|
|
4263
|
+
if (!componentFound) {
|
|
4264
|
+
let componentElem = document.querySelector('#component_' + index);
|
|
4265
|
+
componentElem.setAttribute('style', 'display: none;');
|
|
4266
|
+
}
|
|
4267
|
+
}
|
|
4268
|
+
}
|
|
4269
|
+
clearMenuText() {
|
|
4270
|
+
if (document.querySelector('#menu-searchtext')) {
|
|
4271
|
+
document.querySelector('#menu-searchtext').value = null;
|
|
4272
|
+
}
|
|
4273
|
+
}
|
|
4274
|
+
openClearButton() {
|
|
4275
|
+
if (document.querySelector('#menu-searchtext').value.length > 0) {
|
|
4276
|
+
document.querySelector('.clearsearch').style.display = 'block';
|
|
4277
|
+
} else {
|
|
4278
|
+
document.querySelector('.clearsearch').style.display = 'none';
|
|
4279
|
+
}
|
|
4280
|
+
}
|
|
4281
|
+
clearFilters() {
|
|
4282
|
+
if (document.getElementById('select-component')) {
|
|
4283
|
+
document.getElementById('select-component').value = 'default';
|
|
4284
|
+
}
|
|
4285
|
+
let selectedProduct = document.getElementById('select-product');
|
|
4286
|
+
if (selectedProduct) {
|
|
4287
|
+
this.removeOptions(selectedProduct);
|
|
4288
|
+
selectedProduct.options.add(
|
|
4289
|
+
new Option('Select a product', 'default', false, false),
|
|
4290
|
+
);
|
|
4291
|
+
}
|
|
4292
|
+
if (document.getElementById('select-family')) {
|
|
4293
|
+
document.getElementById('select-family').value = 'default';
|
|
4294
|
+
}
|
|
4295
|
+
let familyFilter = document.querySelector('.menu-family-filter');
|
|
4296
|
+
if (familyFilter) {
|
|
4297
|
+
familyFilter.setAttribute('style', 'display: none;');
|
|
4298
|
+
}
|
|
4299
|
+
if (document.querySelector('.clear-filters')) {
|
|
4300
|
+
document
|
|
4301
|
+
.querySelector('.clear-filters')
|
|
4302
|
+
.setAttribute('style', 'display: none;');
|
|
4303
|
+
}
|
|
4304
|
+
}
|
|
4305
|
+
closeFilters() {
|
|
4306
|
+
if (document.querySelector('.filters-panel').style.display === 'block') {
|
|
4307
|
+
document
|
|
4308
|
+
.querySelector('.filters-panel')
|
|
4309
|
+
.setAttribute('style', 'display: none;');
|
|
4310
|
+
this.setState({ filterArrow: 'chevron-down' });
|
|
4311
|
+
} else {
|
|
4312
|
+
document
|
|
4313
|
+
.querySelector('.filters-panel')
|
|
4314
|
+
.setAttribute('style', 'display: block;');
|
|
4315
|
+
this.setState({ filterArrow: 'chevron-up' });
|
|
4316
|
+
}
|
|
4317
|
+
}
|
|
4318
|
+
|
|
4319
|
+
removeOptions(selectElement) {
|
|
4320
|
+
if (selectElement.options.length > 0) {
|
|
4321
|
+
var i,
|
|
4322
|
+
L = selectElement.options.length - 1;
|
|
4323
|
+
for (i = L; i >= 0; i--) {
|
|
4324
|
+
selectElement.remove(i);
|
|
4325
|
+
}
|
|
4326
|
+
}
|
|
4327
|
+
}
|
|
4103
4328
|
/**
|
|
4104
4329
|
* This method renders the component
|
|
4105
4330
|
* @returns jsx
|
|
@@ -4161,6 +4386,154 @@ class MenuWidget extends React.Component {
|
|
|
4161
4386
|
</span>
|
|
4162
4387
|
)}
|
|
4163
4388
|
</div>
|
|
4389
|
+
<div className="search-panel">
|
|
4390
|
+
<div className="menu-searchpanel">
|
|
4391
|
+
<div class="search-input menu-search-input">
|
|
4392
|
+
<input
|
|
4393
|
+
type="text"
|
|
4394
|
+
id="menu-searchtext"
|
|
4395
|
+
maxlength="200"
|
|
4396
|
+
placeholder="Search products and datasets"
|
|
4397
|
+
onChange={() => this.openClearButton()}
|
|
4398
|
+
/>
|
|
4399
|
+
<div class="search-input-actions">
|
|
4400
|
+
<button
|
|
4401
|
+
class="ui basic icon button search-input-clear-icon-button clearsearch"
|
|
4402
|
+
onClick={() => this.clearMenuText()}
|
|
4403
|
+
onKeyDown={(e) => {
|
|
4404
|
+
if (
|
|
4405
|
+
!e.altKey &&
|
|
4406
|
+
e.code !== 'Tab' &&
|
|
4407
|
+
!e.ctrlKey &&
|
|
4408
|
+
e.code !== 'Delete' &&
|
|
4409
|
+
!e.shiftKey &&
|
|
4410
|
+
!e.code.startsWith('F')
|
|
4411
|
+
) {
|
|
4412
|
+
this.clearMenuText();
|
|
4413
|
+
}
|
|
4414
|
+
}}
|
|
4415
|
+
>
|
|
4416
|
+
<svg
|
|
4417
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
4418
|
+
viewBox="0 0 26 26"
|
|
4419
|
+
class="icon"
|
|
4420
|
+
>
|
|
4421
|
+
<path
|
|
4422
|
+
fill-rule="evenodd"
|
|
4423
|
+
d="M27.899 9.515L26.485 8.101 18 16.586 9.514 8.101 8.1 9.515 16.586 18 8.1 26.486 9.514 27.9 18 19.414 26.485 27.9 27.899 26.486 19.414 18z"
|
|
4424
|
+
></path>
|
|
4425
|
+
</svg>
|
|
4426
|
+
</button>
|
|
4427
|
+
</div>
|
|
4428
|
+
<button
|
|
4429
|
+
aria-label="Search"
|
|
4430
|
+
class="button menu-search-button"
|
|
4431
|
+
onClick={() => this.menuSearch()}
|
|
4432
|
+
onKeyDown={(e) => {
|
|
4433
|
+
if (
|
|
4434
|
+
!e.altKey &&
|
|
4435
|
+
e.code !== 'Tab' &&
|
|
4436
|
+
!e.ctrlKey &&
|
|
4437
|
+
e.code !== 'Delete' &&
|
|
4438
|
+
!e.shiftKey &&
|
|
4439
|
+
!e.code.startsWith('F')
|
|
4440
|
+
) {
|
|
4441
|
+
this.menuSearch();
|
|
4442
|
+
}
|
|
4443
|
+
}}
|
|
4444
|
+
>
|
|
4445
|
+
<span class="ccl-icon-zoom search-menu-icon"></span>
|
|
4446
|
+
</button>
|
|
4447
|
+
</div>
|
|
4448
|
+
<div class="filters-element filter-logo filters-header">
|
|
4449
|
+
<div class="filters-title">
|
|
4450
|
+
<svg
|
|
4451
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
4452
|
+
viewBox="0 0 36 36"
|
|
4453
|
+
class="icon ui"
|
|
4454
|
+
>
|
|
4455
|
+
<path
|
|
4456
|
+
fill-rule="evenodd"
|
|
4457
|
+
d="M5.0916,5.0002 L14.9996,19.3132 L14.9996,34.0002 L20.9996,29.5002 L20.9996,19.3132 L30.9086,5.0002 L5.0916,5.0002 Z M17.0006,18.6872 L8.9086,7.0002 L27.0916,7.0002 L19.0006,18.6872 L19.0006,28.5002 L17.0006,30.0002 L17.0006,18.6872 Z"
|
|
4458
|
+
></path>
|
|
4459
|
+
</svg>
|
|
4460
|
+
<span class="filters-title-bold">Filters</span>
|
|
4461
|
+
<div
|
|
4462
|
+
className="clear-filters"
|
|
4463
|
+
tabIndex="0"
|
|
4464
|
+
role="button"
|
|
4465
|
+
onClick={() => this.clearFilters()}
|
|
4466
|
+
onKeyDown={(e) => {
|
|
4467
|
+
if (
|
|
4468
|
+
!e.altKey &&
|
|
4469
|
+
e.code !== 'Tab' &&
|
|
4470
|
+
!e.ctrlKey &&
|
|
4471
|
+
e.code !== 'Delete' &&
|
|
4472
|
+
!e.shiftKey &&
|
|
4473
|
+
!e.code.startsWith('F')
|
|
4474
|
+
) {
|
|
4475
|
+
this.clearFilters();
|
|
4476
|
+
}
|
|
4477
|
+
}}
|
|
4478
|
+
>
|
|
4479
|
+
Clear filters
|
|
4480
|
+
</div>
|
|
4481
|
+
</div>
|
|
4482
|
+
|
|
4483
|
+
<div
|
|
4484
|
+
className="dropdown-icon close-filters-icon"
|
|
4485
|
+
role="button"
|
|
4486
|
+
tabIndex="0"
|
|
4487
|
+
onClick={() => this.closeFilters()}
|
|
4488
|
+
onKeyDown={(e) => {
|
|
4489
|
+
if (
|
|
4490
|
+
!e.altKey &&
|
|
4491
|
+
e.code !== 'Tab' &&
|
|
4492
|
+
!e.ctrlKey &&
|
|
4493
|
+
e.code !== 'Delete' &&
|
|
4494
|
+
!e.shiftKey &&
|
|
4495
|
+
!e.code.startsWith('F')
|
|
4496
|
+
) {
|
|
4497
|
+
this.closeFilters();
|
|
4498
|
+
}
|
|
4499
|
+
}}
|
|
4500
|
+
>
|
|
4501
|
+
<FontAwesomeIcon icon={['fas', this.state.filterArrow]} />
|
|
4502
|
+
</div>
|
|
4503
|
+
</div>
|
|
4504
|
+
<div className="filters-panel">
|
|
4505
|
+
<span className="menu-filter">
|
|
4506
|
+
Component
|
|
4507
|
+
<select
|
|
4508
|
+
id="select-component"
|
|
4509
|
+
class="esri-select filter-select"
|
|
4510
|
+
onBlur={() => {}}
|
|
4511
|
+
onChange={() => {
|
|
4512
|
+
this.loadProductFilters();
|
|
4513
|
+
}}
|
|
4514
|
+
></select>
|
|
4515
|
+
</span>
|
|
4516
|
+
<span className="menu-filter">
|
|
4517
|
+
Product
|
|
4518
|
+
<select
|
|
4519
|
+
id="select-product"
|
|
4520
|
+
class="esri-select filter-select"
|
|
4521
|
+
onBlur={() => {}}
|
|
4522
|
+
onChange={() => {
|
|
4523
|
+
this.loadFamilyFilters();
|
|
4524
|
+
}}
|
|
4525
|
+
></select>
|
|
4526
|
+
</span>
|
|
4527
|
+
<span className="menu-filter menu-family-filter">
|
|
4528
|
+
Family
|
|
4529
|
+
<select
|
|
4530
|
+
id="select-family"
|
|
4531
|
+
class="esri-select filter-select"
|
|
4532
|
+
></select>
|
|
4533
|
+
</span>
|
|
4534
|
+
</div>
|
|
4535
|
+
</div>
|
|
4536
|
+
</div>
|
|
4164
4537
|
<div
|
|
4165
4538
|
className="panels"
|
|
4166
4539
|
id="paneles"
|
|
@@ -1571,3 +1571,91 @@ div.map-container.popup-block {
|
|
|
1571
1571
|
.esri-swipe div {
|
|
1572
1572
|
outline: none !important;
|
|
1573
1573
|
}
|
|
1574
|
+
|
|
1575
|
+
.search-panel {
|
|
1576
|
+
background-color: white;
|
|
1577
|
+
}
|
|
1578
|
+
|
|
1579
|
+
.menu-searchpanel {
|
|
1580
|
+
padding: 0.6rem;
|
|
1581
|
+
padding-right: 1rem;
|
|
1582
|
+
padding-left: 1rem;
|
|
1583
|
+
background-color: rgba(160, 177, 40, 0.1);
|
|
1584
|
+
}
|
|
1585
|
+
|
|
1586
|
+
.search-input.menu-search-input {
|
|
1587
|
+
display: flex;
|
|
1588
|
+
}
|
|
1589
|
+
|
|
1590
|
+
#menu-searchtext {
|
|
1591
|
+
width: 23.5rem;
|
|
1592
|
+
height: 2rem;
|
|
1593
|
+
padding-left: 0.3rem;
|
|
1594
|
+
border-width: 1px;
|
|
1595
|
+
border-color: rgba(110, 110, 110, 0.3);
|
|
1596
|
+
}
|
|
1597
|
+
|
|
1598
|
+
.menu-search-button {
|
|
1599
|
+
width: 2rem;
|
|
1600
|
+
height: 2rem;
|
|
1601
|
+
border-width: 1px;
|
|
1602
|
+
border-color: rgba(110, 110, 110, 0.3);
|
|
1603
|
+
margin-left: 0.5rem;
|
|
1604
|
+
background-color: #a0b128;
|
|
1605
|
+
border-radius: 0;
|
|
1606
|
+
color: white;
|
|
1607
|
+
}
|
|
1608
|
+
|
|
1609
|
+
.search-menu-icon {
|
|
1610
|
+
width: 2rem;
|
|
1611
|
+
height: 2rem;
|
|
1612
|
+
}
|
|
1613
|
+
|
|
1614
|
+
.search-input-clear-icon-button {
|
|
1615
|
+
height: 1.5rem;
|
|
1616
|
+
}
|
|
1617
|
+
|
|
1618
|
+
.filter-logo {
|
|
1619
|
+
margin-top: 0.5rem;
|
|
1620
|
+
margin-bottom: 0.5rem;
|
|
1621
|
+
margin-left: 0 !important;
|
|
1622
|
+
}
|
|
1623
|
+
|
|
1624
|
+
.menu-filter {
|
|
1625
|
+
display: flex;
|
|
1626
|
+
justify-content: space-between;
|
|
1627
|
+
padding-top: 0.5rem;
|
|
1628
|
+
padding-bottom: 0.5rem;
|
|
1629
|
+
}
|
|
1630
|
+
|
|
1631
|
+
.filter-select {
|
|
1632
|
+
max-width: 19rem;
|
|
1633
|
+
height: 1.5rem !important;
|
|
1634
|
+
}
|
|
1635
|
+
|
|
1636
|
+
.clear-filters {
|
|
1637
|
+
display: none;
|
|
1638
|
+
margin-left: 16rem;
|
|
1639
|
+
font-size: small;
|
|
1640
|
+
text-decoration: underline;
|
|
1641
|
+
}
|
|
1642
|
+
|
|
1643
|
+
.clearsearch.search-input-clear-icon-button.button {
|
|
1644
|
+
position: absolute;
|
|
1645
|
+
top: 4.3rem;
|
|
1646
|
+
left: 23rem;
|
|
1647
|
+
display: none;
|
|
1648
|
+
}
|
|
1649
|
+
|
|
1650
|
+
.close-filters-icon {
|
|
1651
|
+
padding-left: 0.8rem;
|
|
1652
|
+
color: #a0b128;
|
|
1653
|
+
}
|
|
1654
|
+
|
|
1655
|
+
.filters-panel {
|
|
1656
|
+
display: none;
|
|
1657
|
+
}
|
|
1658
|
+
|
|
1659
|
+
.filters-element.filter-logo.filters-header {
|
|
1660
|
+
justify-content: space-between;
|
|
1661
|
+
}
|