@esri/solutions-components 0.10.7 → 0.10.8
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/cjs/basemap-gallery_7.cjs.entry.js +24 -8
- package/dist/cjs/buffer-tools_3.cjs.entry.js +1 -1
- package/dist/cjs/calcite-combobox_3.cjs.entry.js +354 -967
- package/dist/cjs/calcite-graph_2.cjs.entry.js +1082 -0
- package/dist/cjs/calcite-shell-panel_14.cjs.entry.js +6 -6
- package/dist/cjs/calcite-tree_3.cjs.entry.js +1 -1
- package/dist/cjs/card-manager_3.cjs.entry.js +246 -18
- package/dist/cjs/crowdsource-manager.cjs.entry.js +169 -49
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/map-select-tools_3.cjs.entry.js +3 -3
- package/dist/cjs/pci-calculator.cjs.entry.js +1 -1
- package/dist/cjs/public-notification.cjs.entry.js +1 -1
- package/dist/cjs/refine-results-flow-item.cjs.entry.js +1 -1
- package/dist/cjs/share-item.cjs.entry.js +1 -1
- package/dist/cjs/solution-configuration.cjs.entry.js +3 -3
- package/dist/cjs/solution-contents_3.cjs.entry.js +3 -3
- package/dist/cjs/solutions-components.cjs.js +1 -1
- package/dist/cjs/spatial-ref.cjs.entry.js +1 -1
- package/dist/collection/assets/t9n/crowdsource-manager/resources.json +5 -1
- package/dist/collection/assets/t9n/crowdsource-manager/resources_en.json +5 -1
- package/dist/collection/assets/t9n/layer-table/resources.json +1 -0
- package/dist/collection/assets/t9n/layer-table/resources_en.json +1 -0
- package/dist/collection/assets/t9n/map-card/resources.json +6 -1
- package/dist/collection/assets/t9n/map-card/resources_en.json +6 -1
- package/dist/collection/components/card-manager/card-manager.js +34 -8
- package/dist/collection/components/crowdsource-manager/crowdsource-manager.js +173 -65
- package/dist/collection/components/layer-table/layer-table.js +175 -8
- package/dist/collection/components/map-card/map-card.css +4 -0
- package/dist/collection/components/map-card/map-card.js +368 -3
- package/dist/collection/components/map-draw-tools/map-draw-tools.js +1 -1
- package/dist/collection/components/map-fullscreen/map-fullscreen.js +1 -1
- package/dist/collection/components/map-layer-picker/map-layer-picker.js +9 -3
- package/dist/collection/components/map-legend/map-legend.js +1 -1
- package/dist/collection/components/map-picker/map-picker.css +8 -0
- package/dist/collection/components/map-picker/map-picker.js +74 -3
- package/dist/collection/components/map-search/map-search.js +1 -1
- package/dist/collection/components/map-select-tools/map-select-tools.js +1 -1
- package/dist/collection/components/map-tools/map-tools.js +1 -1
- package/dist/collection/components/pci-calculator/pci-calculator.js +1 -1
- package/dist/collection/components/pdf-download/pdf-download.js +1 -1
- package/dist/collection/components/public-notification/public-notification.js +1 -1
- package/dist/collection/components/refine-results-flow-item/refine-results-flow-item.js +1 -1
- package/dist/collection/components/refine-selection/refine-selection.js +1 -1
- package/dist/collection/components/share-item/share-item.js +1 -1
- package/dist/collection/components/solution-configuration/solution-configuration.js +3 -3
- package/dist/collection/components/solution-contents/solution-contents.js +1 -1
- package/dist/collection/components/solution-item/solution-item.js +1 -1
- package/dist/collection/components/solution-item-details/solution-item-details.js +1 -1
- package/dist/collection/components/solution-item-icon/solution-item-icon.js +1 -1
- package/dist/collection/components/solution-item-sharing/solution-item-sharing.js +1 -1
- package/dist/collection/components/solution-organization-variables/solution-organization-variables.js +1 -1
- package/dist/collection/components/solution-resource-item/solution-resource-item.js +1 -1
- package/dist/collection/components/solution-spatial-ref/solution-spatial-ref.js +1 -1
- package/dist/collection/components/solution-template-data/solution-template-data.js +1 -1
- package/dist/collection/components/solution-variables/solution-variables.js +1 -1
- package/dist/collection/components/spatial-ref/spatial-ref.js +1 -1
- package/dist/collection/demos/crowdsource-manager.html +1 -0
- package/dist/components/card-manager2.js +20 -8
- package/dist/components/crowdsource-manager.js +172 -53
- package/dist/components/layer-table2.js +72 -10
- package/dist/components/map-card2.js +288 -47
- package/dist/components/map-draw-tools2.js +1 -1
- package/dist/components/map-fullscreen2.js +1 -1
- package/dist/components/map-layer-picker2.js +9 -3
- package/dist/components/map-legend2.js +1 -1
- package/dist/components/map-picker2.js +24 -5
- package/dist/components/map-search2.js +1 -1
- package/dist/components/map-select-tools2.js +1 -1
- package/dist/components/map-tools2.js +1 -1
- package/dist/components/pci-calculator.js +1 -1
- package/dist/components/pdf-download2.js +1 -1
- package/dist/components/public-notification.js +1 -1
- package/dist/components/refine-results-flow-item.js +1 -1
- package/dist/components/refine-selection2.js +1 -1
- package/dist/components/share-item.js +1 -1
- package/dist/components/solution-configuration.js +3 -3
- package/dist/components/solution-contents2.js +1 -1
- package/dist/components/solution-item-details2.js +1 -1
- package/dist/components/solution-item-icon2.js +1 -1
- package/dist/components/solution-item-sharing2.js +1 -1
- package/dist/components/solution-item2.js +1 -1
- package/dist/components/solution-organization-variables2.js +1 -1
- package/dist/components/solution-resource-item2.js +1 -1
- package/dist/components/solution-spatial-ref2.js +1 -1
- package/dist/components/solution-template-data2.js +1 -1
- package/dist/components/solution-variables2.js +1 -1
- package/dist/components/spatial-ref.js +1 -1
- package/dist/esm/basemap-gallery_7.entry.js +24 -8
- package/dist/esm/buffer-tools_3.entry.js +1 -1
- package/dist/esm/calcite-combobox_3.entry.js +369 -982
- package/dist/esm/calcite-graph_2.entry.js +1077 -0
- package/dist/esm/calcite-shell-panel_14.entry.js +6 -6
- package/dist/esm/calcite-tree_3.entry.js +1 -1
- package/dist/esm/card-manager_3.entry.js +248 -20
- package/dist/esm/crowdsource-manager.entry.js +170 -50
- package/dist/esm/loader.js +1 -1
- package/dist/esm/map-select-tools_3.entry.js +3 -3
- package/dist/esm/pci-calculator.entry.js +1 -1
- package/dist/esm/public-notification.entry.js +1 -1
- package/dist/esm/refine-results-flow-item.entry.js +1 -1
- package/dist/esm/share-item.entry.js +1 -1
- package/dist/esm/solution-configuration.entry.js +3 -3
- package/dist/esm/solution-contents_3.entry.js +3 -3
- package/dist/esm/solutions-components.js +1 -1
- package/dist/esm/spatial-ref.entry.js +1 -1
- package/dist/solutions-components/assets/t9n/crowdsource-manager/resources.json +5 -1
- package/dist/solutions-components/assets/t9n/crowdsource-manager/resources_en.json +5 -1
- package/dist/solutions-components/assets/t9n/layer-table/resources.json +1 -0
- package/dist/solutions-components/assets/t9n/layer-table/resources_en.json +1 -0
- package/dist/solutions-components/assets/t9n/map-card/resources.json +6 -1
- package/dist/solutions-components/assets/t9n/map-card/resources_en.json +6 -1
- package/dist/solutions-components/demos/crowdsource-manager.html +1 -0
- package/dist/solutions-components/p-0abc1354.entry.js +6 -0
- package/dist/solutions-components/p-0f7b5d36.entry.js +6 -0
- package/dist/solutions-components/{p-a9818be2.entry.js → p-20c465e9.entry.js} +1 -1
- package/dist/solutions-components/{p-db18bce8.entry.js → p-36b50b5b.entry.js} +1 -1
- package/dist/solutions-components/{p-85512ae3.entry.js → p-445213cf.entry.js} +1 -1
- package/dist/solutions-components/{p-d49f895d.entry.js → p-4a5f0a97.entry.js} +1 -1
- package/dist/solutions-components/{p-002c97df.entry.js → p-5d201016.entry.js} +1 -1
- package/dist/solutions-components/{p-b7cec3bd.entry.js → p-618bafec.entry.js} +1 -1
- package/dist/solutions-components/p-6a66d5a9.entry.js +6 -0
- package/dist/solutions-components/p-71a2d5b8.entry.js +6 -0
- package/dist/solutions-components/p-7a64b026.entry.js +17 -0
- package/dist/solutions-components/p-85c25564.entry.js +6 -0
- package/dist/solutions-components/{p-235bf02e.entry.js → p-913413c3.entry.js} +1 -1
- package/dist/solutions-components/p-9af1cb14.entry.js +6 -0
- package/dist/solutions-components/{p-49aa2929.entry.js → p-bebd4646.entry.js} +1 -1
- package/dist/solutions-components/p-ce454f5a.entry.js +11 -0
- package/dist/solutions-components/solutions-components.esm.js +1 -1
- package/dist/types/components/card-manager/card-manager.d.ts +11 -0
- package/dist/types/components/crowdsource-manager/crowdsource-manager.d.ts +86 -20
- package/dist/types/components/layer-table/layer-table.d.ts +30 -0
- package/dist/types/components/map-card/map-card.d.ts +124 -0
- package/dist/types/components/map-layer-picker/map-layer-picker.d.ts +4 -0
- package/dist/types/components/map-picker/map-picker.d.ts +12 -0
- package/dist/types/components.d.ts +130 -0
- package/dist/types/preact.d.ts +4 -2
- package/package.json +1 -1
- package/dist/cjs/calcite-dropdown-group_2.cjs.entry.js +0 -453
- package/dist/esm/calcite-dropdown-group_2.entry.js +0 -448
- package/dist/solutions-components/p-129fd80e.entry.js +0 -6
- package/dist/solutions-components/p-3b426576.entry.js +0 -6
- package/dist/solutions-components/p-72b217f2.entry.js +0 -6
- package/dist/solutions-components/p-8b999a2b.entry.js +0 -6
- package/dist/solutions-components/p-973ff7b2.entry.js +0 -23
- package/dist/solutions-components/p-a001f9c9.entry.js +0 -6
- package/dist/solutions-components/p-c683b3fe.entry.js +0 -6
- package/dist/solutions-components/p-e9d049bd.entry.js +0 -6
@@ -3,7 +3,7 @@
|
|
3
3
|
* Licensed under the Apache License, Version 2.0
|
4
4
|
* http://www.apache.org/licenses/LICENSE-2.0
|
5
5
|
*/
|
6
|
-
import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';
|
6
|
+
import { proxyCustomElement, HTMLElement, createEvent, h, Host, Fragment } from '@stencil/core/internal/client';
|
7
7
|
import { g as getLocaleComponentStrings } from './locale.js';
|
8
8
|
import { a as ELayoutMode } from './interfaces.js';
|
9
9
|
import { g as getLayerOrTable } from './mapViewUtils.js';
|
@@ -74,7 +74,7 @@ const CrowdsourceManager$1 = /*@__PURE__*/ proxyCustomElement(class CrowdsourceM
|
|
74
74
|
this.__registerHost();
|
75
75
|
this.showIntroductionWindow = createEvent(this, "showIntroductionWindow", 7);
|
76
76
|
this.showCoverPage = createEvent(this, "showCoverPage", 7);
|
77
|
-
this.appLayout =
|
77
|
+
this.appLayout = 'splitView';
|
78
78
|
this.appProxies = undefined;
|
79
79
|
this.basemapConfig = undefined;
|
80
80
|
this.coverPageEnabled = undefined;
|
@@ -111,7 +111,6 @@ const CrowdsourceManager$1 = /*@__PURE__*/ proxyCustomElement(class CrowdsourceM
|
|
111
111
|
this.theme = "light";
|
112
112
|
this.zoomAndScrollToSelected = false;
|
113
113
|
this.zoomToScale = undefined;
|
114
|
-
this._expandPopup = false;
|
115
114
|
this._hideFooter = false;
|
116
115
|
this._hideTable = false;
|
117
116
|
this._isMobile = false;
|
@@ -122,7 +121,7 @@ const CrowdsourceManager$1 = /*@__PURE__*/ proxyCustomElement(class CrowdsourceM
|
|
122
121
|
this._mapView = undefined;
|
123
122
|
this._panelOpen = true;
|
124
123
|
this._numSelected = 0;
|
125
|
-
this.
|
124
|
+
this._filterOpen = false;
|
126
125
|
}
|
127
126
|
get el() { return this; }
|
128
127
|
//--------------------------------------------------------------------------
|
@@ -161,6 +160,18 @@ const CrowdsourceManager$1 = /*@__PURE__*/ proxyCustomElement(class CrowdsourceM
|
|
161
160
|
* MapView.when is not fired when mapView is not currently visible
|
162
161
|
*/
|
163
162
|
_shouldSetMapView = false;
|
163
|
+
/**
|
164
|
+
* LayerExpression[]: All layer expressions from the current filter config for the currently selected layer
|
165
|
+
*/
|
166
|
+
_layerExpressions;
|
167
|
+
/**
|
168
|
+
* HTMLInstantAppsFilterListElement: Component from Instant Apps that supports interacting with the current filter config
|
169
|
+
*/
|
170
|
+
_filterList;
|
171
|
+
/**
|
172
|
+
* boolean: True when app is directly rendered to map view layout
|
173
|
+
*/
|
174
|
+
_isMapViewOnLoad = false;
|
164
175
|
//--------------------------------------------------------------------------
|
165
176
|
//
|
166
177
|
// Watch handlers
|
@@ -177,7 +188,6 @@ const CrowdsourceManager$1 = /*@__PURE__*/ proxyCustomElement(class CrowdsourceM
|
|
177
188
|
*/
|
178
189
|
hideMapOnLoadWatchHandler() {
|
179
190
|
this.showHideMapPopupAndTable(this.hideMapOnLoad && !this._isMobile);
|
180
|
-
this._expandPopup = this.hideMapOnLoad && !this._isMobile;
|
181
191
|
}
|
182
192
|
//--------------------------------------------------------------------------
|
183
193
|
//
|
@@ -211,16 +221,6 @@ const CrowdsourceManager$1 = /*@__PURE__*/ proxyCustomElement(class CrowdsourceM
|
|
211
221
|
this.showHideMapPopupAndTable(false);
|
212
222
|
}
|
213
223
|
}
|
214
|
-
/**
|
215
|
-
* Listen for idsFound event to be fired so we can know that all layer ids have been fetched
|
216
|
-
*/
|
217
|
-
async idsFound(evt) {
|
218
|
-
const ids = evt.detail;
|
219
|
-
this._tableOnly = ids.tableIds.length > 0 && ids.layerIds.length === 0;
|
220
|
-
if (this._tableOnly) {
|
221
|
-
this._expandPopup = true;
|
222
|
-
}
|
223
|
-
}
|
224
224
|
/**
|
225
225
|
* Listen for layoutChanged event to be fired so we can adjust the layout
|
226
226
|
*/
|
@@ -236,14 +236,6 @@ const CrowdsourceManager$1 = /*@__PURE__*/ proxyCustomElement(class CrowdsourceM
|
|
236
236
|
await this._setMapView();
|
237
237
|
});
|
238
238
|
}
|
239
|
-
/**
|
240
|
-
* Listen for beforeMapChanged and minimize the popup if it's expanded
|
241
|
-
*/
|
242
|
-
async beforeMapChanged() {
|
243
|
-
if (this._expandPopup) {
|
244
|
-
this._shouldSetMapView = true;
|
245
|
-
}
|
246
|
-
}
|
247
239
|
/**
|
248
240
|
* Get the layer for the provided layer id
|
249
241
|
*/
|
@@ -252,13 +244,13 @@ const CrowdsourceManager$1 = /*@__PURE__*/ proxyCustomElement(class CrowdsourceM
|
|
252
244
|
const layer = await getLayerOrTable(this._mapView, id);
|
253
245
|
await layer.when(() => {
|
254
246
|
this._layer = layer;
|
247
|
+
this._initLayerExpressions();
|
255
248
|
});
|
256
249
|
}
|
257
250
|
/**
|
258
251
|
* Update the state expandPopup when mapInfoChange event occurs
|
259
252
|
*/
|
260
253
|
async mapInfoChange() {
|
261
|
-
this._expandPopup = this.hideMapOnLoad && !this._isMobile;
|
262
254
|
this._hideMapOnLoadHonored = false;
|
263
255
|
}
|
264
256
|
//--------------------------------------------------------------------------
|
@@ -281,7 +273,7 @@ const CrowdsourceManager$1 = /*@__PURE__*/ proxyCustomElement(class CrowdsourceM
|
|
281
273
|
render() {
|
282
274
|
// only avoid border when we have a header color that is not white
|
283
275
|
const borderClass = this.popupHeaderColor && this.popupHeaderColor !== "#FFFFFF" ? "border-width-0" : "";
|
284
|
-
return (h(Host, { key: '
|
276
|
+
return (h(Host, { key: 'bbe12b471976652c32fc0cb6277fdfc4171b2cd6' }, h("calcite-shell", { key: '00b85d8e681f5ab021e6efb63b603e3d2442f63c', class: "position-relative" }, h("calcite-panel", { key: 'f1a37f06f3023bb1c63b40eeca739e942c301e63', class: `width-full height-full ${borderClass}` }, this._getBody(this._layoutMode, this._panelOpen, this._hideTable)), this._getFooter()), this._filterModal()));
|
285
277
|
}
|
286
278
|
/**
|
287
279
|
* Called after each render
|
@@ -300,6 +292,12 @@ const CrowdsourceManager$1 = /*@__PURE__*/ proxyCustomElement(class CrowdsourceM
|
|
300
292
|
*/
|
301
293
|
async componentDidLoad() {
|
302
294
|
this._resizeObserver.observe(this.el);
|
295
|
+
// for backward compatibility if hidemaponload is true then render table layout as default
|
296
|
+
if (this.hideMapOnLoad) {
|
297
|
+
this.appLayout = 'tableView';
|
298
|
+
}
|
299
|
+
this._isMapViewOnLoad = this.appLayout === 'mapView';
|
300
|
+
this._setActiveLayout(this.appLayout);
|
303
301
|
}
|
304
302
|
//--------------------------------------------------------------------------
|
305
303
|
//
|
@@ -317,6 +315,27 @@ const CrowdsourceManager$1 = /*@__PURE__*/ proxyCustomElement(class CrowdsourceM
|
|
317
315
|
const deleteEnabled = this._layer?.editingEnabled && this._layer?.capabilities?.operations?.supportsDelete;
|
318
316
|
return this._isMobile && hasSelectedFeatures && !this._hideFooter ? (h("div", { class: `width-100`, slot: "footer" }, h("div", { class: "display-flex padding-1-2" }, h("calcite-button", { appearance: "solid", id: "solutions-show", onClick: () => this.showHideMapPopupAndTable(true), width: "full" }, this._translations.view.replace("{{n}}", this._numSelected.toString())), deleteEnabled ? (h("delete-button", { class: "padding-inline-start-1 width-full", id: "solutions-delete", ids: this._layerTable.selectedIds, layer: this._layer })) : undefined))) : undefined;
|
319
317
|
}
|
318
|
+
/**
|
319
|
+
* sets the active layout to render
|
320
|
+
* @param appLayout new app layout
|
321
|
+
*
|
322
|
+
* @protected
|
323
|
+
*/
|
324
|
+
_setActiveLayout(appLayout) {
|
325
|
+
//When going to splitView layout the panel should be open
|
326
|
+
if (appLayout === 'splitView' && !this._panelOpen) {
|
327
|
+
this._toggleLayout();
|
328
|
+
}
|
329
|
+
//Move the map node based on the selected layout
|
330
|
+
//for mapView layout show map in full view and or all other layout show in the card view
|
331
|
+
//for tableView the map will be hidden using css
|
332
|
+
if (appLayout === 'mapView') {
|
333
|
+
this._showMapInFullView();
|
334
|
+
}
|
335
|
+
else {
|
336
|
+
this._showMapInCardView();
|
337
|
+
}
|
338
|
+
}
|
320
339
|
/**
|
321
340
|
* Get the icon name to use for the divider icon based on the current layout
|
322
341
|
*
|
@@ -442,8 +461,11 @@ const CrowdsourceManager$1 = /*@__PURE__*/ proxyCustomElement(class CrowdsourceM
|
|
442
461
|
* @protected
|
443
462
|
*/
|
444
463
|
_getMapNode(panelOpen) {
|
445
|
-
const
|
446
|
-
|
464
|
+
const isMapLayout = this.appLayout === 'mapView';
|
465
|
+
const isTableLayout = this.appLayout === 'tableView';
|
466
|
+
const mapContainerClass = (isMapLayout || isTableLayout) ? "position-absolute-0" : this._layoutMode === ELayoutMode.HORIZONTAL && (!this._isMobile || panelOpen) ? "" : "adjusted-height-50";
|
467
|
+
const hasMapAndLayer = this.defaultWebmap && this.defaultLayer;
|
468
|
+
return (h("div", { class: `${mapContainerClass} overflow-hidden`, id: "card-mapView" }, h("map-card", { appProxies: this.appProxies, basemapConfig: this.basemapConfig, class: "width-full", defaultLayerId: hasMapAndLayer ? this.defaultLayer : "", defaultWebmapId: this.defaultWebmap, enableBasemap: this.enableBasemap, enableFloorFilter: this.enableFloorFilter, enableFullscreen: this.enableFullscreen, enableHome: this.enableHome, enableLegend: this.enableLegend, enableSearch: this.enableSearch, enableSingleExpand: true, hidden: !this._isMobile && isTableLayout, homeZoomIndex: 3, homeZoomPosition: "top-left", homeZoomToolsSize: "s", isMapLayout: isMapLayout, isMobile: this._isMobile, mapInfo: this._mapInfo, mapInfos: this.mapInfos?.filter(mapInfo => mapInfo.visible !== false), mapWidgetsIndex: 0, mapWidgetsPosition: "top-right", mapWidgetsSize: "m", onToggleFilter: this._toggleFilter.bind(this), onlyShowUpdatableLayers: this.onlyShowUpdatableLayers, selectedFeaturesIds: this._layerTable?.selectedIds, selectedLayer: this._layer, stackTools: true, theme: this.theme, toolOrder: ["legend", "search", "fullscreen", "basemap", "floorfilter"], zoomToScale: this.zoomToScale })));
|
447
469
|
}
|
448
470
|
/**
|
449
471
|
* Get the expand node for the popup information
|
@@ -452,11 +474,7 @@ const CrowdsourceManager$1 = /*@__PURE__*/ proxyCustomElement(class CrowdsourceM
|
|
452
474
|
* @protected
|
453
475
|
*/
|
454
476
|
_getPopupExpandNode() {
|
455
|
-
const
|
456
|
-
const id = "expand-popup";
|
457
|
-
const tooltip = this._expandPopup ? this._translations.collapsePopup : this._translations.expandPopup;
|
458
|
-
const themeClass = this.theme === "dark" ? "calcite-mode-dark" : "calcite-mode-light";
|
459
|
-
const popupNodeClass = !this._expandPopup ? "height-full" : this.mapInfos?.length === 1 || this._isMobile ? "position-absolute-0" : "position-absolute-50";
|
477
|
+
const popupNodeClass = "height-full";
|
460
478
|
const headerClass = this._isMobile ? "display-none height-0" : "";
|
461
479
|
const headerTheme = this.popupHeaderColor ? "" : !this._isMobile ? "calcite-mode-dark" : "calcite-mode-light";
|
462
480
|
const containerClass = this._isMobile && this._hideTable ? "position-absolute-0 width-full height-full" : this._isMobile ? "display-none height-0" : "";
|
@@ -465,16 +483,7 @@ const CrowdsourceManager$1 = /*@__PURE__*/ proxyCustomElement(class CrowdsourceM
|
|
465
483
|
'--calcite-color-foreground-2': this.popupHeaderHoverColor, /* background color that will be displayed on button when hovered */
|
466
484
|
'--calcite-color-text-3': this.popupHeaderTextColor, /* font color that will be displayed on button */
|
467
485
|
'--calcite-color-text-2': this.popupHeaderTextColor, /* font color that will be displayed on popup header text*/
|
468
|
-
} }, h("calcite-panel", null, !this._isMobile ? (h("div", { class: `display-flex align-items-center ${headerClass}`, slot: "header-content" }, h("calcite-icon", { icon: "information", scale: "s" }), h("div", { class: "padding-inline-start-75" }, this._translations.information))) : undefined,
|
469
|
-
}
|
470
|
-
/**
|
471
|
-
* Toggle the popup information
|
472
|
-
*
|
473
|
-
* @protected
|
474
|
-
*/
|
475
|
-
_togglePopup() {
|
476
|
-
this._expandPopup = !this._expandPopup;
|
477
|
-
this._hideMapOnLoadHonored = true;
|
486
|
+
} }, h("calcite-panel", null, !this._isMobile ? (h("div", { class: `display-flex align-items-center ${headerClass}`, slot: "header-content" }, h("calcite-icon", { icon: "information", scale: "s" }), h("div", { class: "padding-inline-start-75" }, this._translations.information))) : undefined, this._getCardNode())));
|
478
487
|
}
|
479
488
|
/**
|
480
489
|
* Get the card node
|
@@ -483,9 +492,11 @@ const CrowdsourceManager$1 = /*@__PURE__*/ proxyCustomElement(class CrowdsourceM
|
|
483
492
|
* @protected
|
484
493
|
*/
|
485
494
|
_getCardNode() {
|
486
|
-
const
|
495
|
+
const isMapLayout = this.appLayout === 'mapView';
|
496
|
+
const isTableLayout = this.appLayout === 'tableView';
|
497
|
+
const cardManagerHeight = (isMapLayout || isTableLayout) ? "height-full" : !this._isMobile ? "height-50" : "height-full";
|
487
498
|
const themeClass = this.theme === "dark" ? "calcite-mode-dark" : "calcite-mode-light";
|
488
|
-
return (h("div", { class: `width-50 height-full ${themeClass}` }, h("card-manager", { class: `${cardManagerHeight} width-full`, enableEditGeometry: this?._mapInfo?.enableEditGeometry, isMobile: this._isMobile, mapView: this?._mapView, zoomAndScrollToSelected: this.zoomAndScrollToSelected })));
|
499
|
+
return (h("div", { class: `width-50 height-full ${themeClass}` }, h("card-manager", { class: `${cardManagerHeight} width-full`, enableEditGeometry: this?._mapInfo?.enableEditGeometry, isMobile: this._isMobile, layer: this._layer, mapView: this?._mapView, selectedFeaturesIds: this._layerTable?.selectedIds, zoomAndScrollToSelected: this.zoomAndScrollToSelected })));
|
489
500
|
}
|
490
501
|
/**
|
491
502
|
* Get the table node based for the current layout
|
@@ -497,11 +508,11 @@ const CrowdsourceManager$1 = /*@__PURE__*/ proxyCustomElement(class CrowdsourceM
|
|
497
508
|
* @protected
|
498
509
|
*/
|
499
510
|
_getTable(layoutMode, panelOpen, hideTable) {
|
500
|
-
const
|
511
|
+
const isMapLayout = this.appLayout === 'mapView';
|
512
|
+
const isTableLayout = this.appLayout === 'tableView';
|
513
|
+
const tableClass = hideTable && this._isMobile ? "visibility-hidden" : isMapLayout ? "display-none" : "";
|
514
|
+
const mapClass = isMapLayout ? "height-full width-full" : "display-none";
|
501
515
|
const tableSizeClass = this._getTableSizeClass(layoutMode, panelOpen);
|
502
|
-
const icon = this._getDividerIcon(layoutMode, panelOpen);
|
503
|
-
const tooltip = panelOpen ? this._translations.close : this._translations.open;
|
504
|
-
const id = "toggle-layout";
|
505
516
|
const toggleLayout = layoutMode === ELayoutMode.HORIZONTAL ? "horizontal" : "vertical";
|
506
517
|
const toggleSlot = layoutMode === ELayoutMode.HORIZONTAL ? "header" : "panel-start";
|
507
518
|
const hasMapAndLayer = this.defaultWebmap && this.defaultLayer;
|
@@ -509,10 +520,74 @@ const CrowdsourceManager$1 = /*@__PURE__*/ proxyCustomElement(class CrowdsourceM
|
|
509
520
|
this.defaultGlobalId?.indexOf(",") > -1 ? this.defaultGlobalId.split(",") : [this.defaultGlobalId];
|
510
521
|
const defaultOid = !this.defaultOid ? undefined :
|
511
522
|
this.defaultOid?.indexOf(",") > -1 ? this.defaultOid.split(",").map(o => parseInt(o, 10)) : [parseInt(this.defaultOid, 10)];
|
512
|
-
return (h("calcite-shell", { class: `${tableSizeClass}
|
523
|
+
return (h("calcite-shell", { class: `${tableSizeClass} border-bottom` }, !this._isMobile ? (h("calcite-action-bar", { class: "border-sides", expandDisabled: true, layout: toggleLayout, slot: toggleSlot }, this.getActions(layoutMode, panelOpen))) : undefined, h("div", { class: `width-full height-full position-relative ${tableClass}` }, h("layer-table", { createFilterModal: false, defaultGlobalId: hasMapAndLayer ? globalId : undefined, defaultLayerId: hasMapAndLayer ? this.defaultLayer : "", defaultOid: hasMapAndLayer && !globalId ? defaultOid : undefined, enableAutoRefresh: this.enableAutoRefresh, enableCSV: this.enableCSV, enableColumnReorder: this.enableColumnReorder, enableInlineEdit: this?._mapInfo?.enableInlineEdit, enableShare: this.enableShare, isMobile: this._isMobile, mapHidden: isTableLayout, mapInfo: this._mapInfo, mapView: this?._mapView, onToggleFilter: this._toggleFilter.bind(this), onlyShowUpdatableLayers: this.onlyShowUpdatableLayers, ref: (el) => this._layerTable = el, shareIncludeEmbed: this.shareIncludeEmbed, shareIncludeSocial: this.shareIncludeSocial, showNewestFirst: this.showNewestFirst, zoomAndScrollToSelected: this.zoomAndScrollToSelected, zoomToScale: this.zoomToScale })), h("div", { class: mapClass, id: "full-map-view" })));
|
524
|
+
}
|
525
|
+
/**
|
526
|
+
* Returns the Actions for table's node
|
527
|
+
*
|
528
|
+
* @returns Node
|
529
|
+
* @protected
|
530
|
+
*/
|
531
|
+
getActions(layoutMode, panelOpen) {
|
532
|
+
const icon = this._getDividerIcon(layoutMode, panelOpen);
|
533
|
+
const tooltip = panelOpen ? this._translations.close : this._translations.open;
|
534
|
+
const id = "toggle-layout";
|
535
|
+
return (h(Fragment, null, h("calcite-action", { active: this.appLayout === 'splitView', class: "toggle-node", icon: "browser", id: "browser-action", onClick: () => { this._changeLayout('splitView'); }, text: "" }), h("calcite-tooltip", { placement: "right", "reference-element": "browser-action" }, h("span", null, this._translations.splitView)), h("calcite-action", { active: this.appLayout === 'tableView', class: "toggle-node", icon: "dock-left", id: "dock-left-action", onClick: () => { this._changeLayout('tableView'); }, text: "" }), h("calcite-tooltip", { placement: "right", "reference-element": "dock-left-action" }, h("span", null, this._translations.tableView)), h("calcite-action", { active: this.appLayout === 'mapView', class: "toggle-node", icon: "browser-map", id: "browser-map-action", onClick: () => { this._changeLayout('mapView'); }, text: "" }), h("calcite-tooltip", { placement: "right", "reference-element": "browser-map-action" }, h("span", null, this._translations.mapView)), h("calcite-action", { class: "toggle-node", icon: icon, id: id, onClick: () => this._toggleLayout(), slot: "actions-end", text: "" }), h("calcite-tooltip", { placement: "bottom", "reference-element": id }, h("span", null, tooltip))));
|
536
|
+
}
|
537
|
+
/**
|
538
|
+
* Show filter component in modal
|
539
|
+
*
|
540
|
+
* @returns node to interact with any configured filters for the current layer
|
541
|
+
* @protected
|
542
|
+
*/
|
543
|
+
_filterModal() {
|
544
|
+
return (h("calcite-modal", { "aria-labelledby": "modal-title", class: "modal", kind: "brand", onCalciteModalClose: () => void this._closeFilter(), open: this._filterOpen, widthScale: "s" }, h("div", { class: "display-flex align-center", id: "modal-title", slot: "header" }, this._translations?.filter?.replace("{{title}}", this._layer?.title)), h("div", { slot: "content" }, h("instant-apps-filter-list", { autoUpdateUrl: false, closeBtn: true, closeBtnOnClick: async () => this._closeFilter(), comboboxOverlayPositioning: "fixed", layerExpressions: this._layerExpressions, onFilterListReset: () => this._handleFilterListReset(), onFilterUpdate: () => void this._layerTable?.filterUpdate(), ref: (el) => this._filterList = el, view: this._mapView, zoomBtn: false }))));
|
545
|
+
}
|
546
|
+
/**
|
547
|
+
* Store any filters for the current layer.
|
548
|
+
* Should only occur on layer change
|
549
|
+
*
|
550
|
+
* @protected
|
551
|
+
*/
|
552
|
+
_initLayerExpressions() {
|
553
|
+
const layerExpressions = this._mapInfo?.filterConfig?.layerExpressions;
|
554
|
+
this._layerExpressions = layerExpressions ? layerExpressions.filter((exp) => exp.id === this._layer?.id) : [];
|
555
|
+
this._filterList.layerExpressions = this._layerExpressions;
|
556
|
+
this._layerExpressions.filter(lyrExp => {
|
557
|
+
return lyrExp.expressions.filter(exp => exp.active).length > 0;
|
558
|
+
}).length > 0;
|
559
|
+
}
|
560
|
+
/**
|
561
|
+
* Toggle the filter modal
|
562
|
+
*
|
563
|
+
* @protected
|
564
|
+
*/
|
565
|
+
_toggleFilter() {
|
566
|
+
this._filterOpen = !this._filterOpen;
|
567
|
+
}
|
568
|
+
/**
|
569
|
+
* Reset the filter active prop
|
570
|
+
*
|
571
|
+
* @protected
|
572
|
+
*/
|
573
|
+
_handleFilterListReset() {
|
574
|
+
void this._layerTable.filterReset();
|
575
|
+
}
|
576
|
+
/**
|
577
|
+
* Close the filter modal
|
578
|
+
*
|
579
|
+
* @protected
|
580
|
+
*/
|
581
|
+
async _closeFilter() {
|
582
|
+
if (this._filterOpen) {
|
583
|
+
this._filterOpen = false;
|
584
|
+
void this._layerTable.closeFilter();
|
585
|
+
}
|
513
586
|
}
|
514
587
|
/**
|
515
588
|
* Update the component layout when its size changes
|
589
|
+
*
|
590
|
+
* @protected
|
516
591
|
*/
|
517
592
|
_onResize() {
|
518
593
|
const isMobile = this.el.offsetWidth < 1024;
|
@@ -529,22 +604,67 @@ const CrowdsourceManager$1 = /*@__PURE__*/ proxyCustomElement(class CrowdsourceM
|
|
529
604
|
/**
|
530
605
|
* Open/Close the appropriate panel.
|
531
606
|
* The panel that is toggled is dependent upon the layout mode and if using classic grid or not
|
607
|
+
*
|
608
|
+
* @protected
|
532
609
|
*/
|
533
610
|
_toggleLayout() {
|
534
611
|
this._panelOpen = !this._panelOpen;
|
535
612
|
}
|
613
|
+
/**
|
614
|
+
* Changes the layout mode
|
615
|
+
* @param appLayout selected active app layout
|
616
|
+
*
|
617
|
+
* @protected
|
618
|
+
*/
|
619
|
+
_changeLayout(appLayout) {
|
620
|
+
if (this.appLayout !== appLayout) {
|
621
|
+
this._setActiveLayout(appLayout);
|
622
|
+
this.appLayout = appLayout;
|
623
|
+
if (this._isMapViewOnLoad) {
|
624
|
+
void this._layerTable.refresh();
|
625
|
+
this._isMapViewOnLoad = false;
|
626
|
+
}
|
627
|
+
}
|
628
|
+
}
|
629
|
+
/**
|
630
|
+
* shows the map in card view
|
631
|
+
*
|
632
|
+
* @protected
|
633
|
+
*/
|
634
|
+
_showMapInCardView() {
|
635
|
+
if (this.appLayout === 'mapView') {
|
636
|
+
const fullMapView = document.getElementById('full-map-view').childNodes[0];
|
637
|
+
const splitMapClass = document.getElementById('card-mapView');
|
638
|
+
if (fullMapView) {
|
639
|
+
splitMapClass.appendChild(fullMapView);
|
640
|
+
}
|
641
|
+
}
|
642
|
+
}
|
643
|
+
/**
|
644
|
+
* Shows the map in full view
|
645
|
+
*
|
646
|
+
* @protected
|
647
|
+
*/
|
648
|
+
_showMapInFullView() {
|
649
|
+
const splitMap = document.getElementById('card-mapView').childNodes[0];
|
650
|
+
const fullMapViewClass = document.getElementById('full-map-view');
|
651
|
+
if (splitMap) {
|
652
|
+
fullMapViewClass.appendChild(splitMap);
|
653
|
+
}
|
654
|
+
}
|
536
655
|
/**
|
537
656
|
* Show/Hide the map, popup, and table
|
538
657
|
*
|
539
658
|
* @param show when true the map, popup, and table will be displayed
|
659
|
+
* @protected
|
540
660
|
*/
|
541
661
|
showHideMapPopupAndTable(show) {
|
542
|
-
this._expandPopup = false;
|
543
662
|
this._hideTable = show;
|
544
663
|
this._hideFooter = show;
|
545
664
|
}
|
546
665
|
/**
|
547
666
|
* Get the current map info (configuration details) when maps change
|
667
|
+
* @param id map changed id
|
548
668
|
*
|
549
669
|
* @returns IMapInfo for the provided id
|
550
670
|
* @protected
|
@@ -652,7 +772,6 @@ const CrowdsourceManager$1 = /*@__PURE__*/ proxyCustomElement(class CrowdsourceM
|
|
652
772
|
"theme": [1],
|
653
773
|
"zoomAndScrollToSelected": [4, "zoom-and-scroll-to-selected"],
|
654
774
|
"zoomToScale": [2, "zoom-to-scale"],
|
655
|
-
"_expandPopup": [32],
|
656
775
|
"_hideFooter": [32],
|
657
776
|
"_hideTable": [32],
|
658
777
|
"_isMobile": [32],
|
@@ -663,8 +782,8 @@ const CrowdsourceManager$1 = /*@__PURE__*/ proxyCustomElement(class CrowdsourceM
|
|
663
782
|
"_mapView": [32],
|
664
783
|
"_panelOpen": [32],
|
665
784
|
"_numSelected": [32],
|
666
|
-
"
|
667
|
-
}, [[8, "featureSelectionChange", "featureSelectionChange"], [8, "popupClosed", "popupClosed"], [8, "
|
785
|
+
"_filterOpen": [32]
|
786
|
+
}, [[8, "featureSelectionChange", "featureSelectionChange"], [8, "popupClosed", "popupClosed"], [8, "layoutChanged", "layoutChanged"], [8, "mapChanged", "mapChanged"], [8, "layerSelectionChange", "layerSelectionChange"], [8, "mapInfoChange", "mapInfoChange"]], {
|
668
787
|
"enableZoom": ["enableZoomWatchHandler"],
|
669
788
|
"hideMapOnLoad": ["hideMapOnLoadWatchHandler"]
|
670
789
|
}]);
|
@@ -57,6 +57,7 @@ const LayerTable = /*@__PURE__*/ proxyCustomElement(class LayerTable extends HTM
|
|
57
57
|
super();
|
58
58
|
this.__registerHost();
|
59
59
|
this.featureSelectionChange = createEvent(this, "featureSelectionChange", 7);
|
60
|
+
this.toggleFilter = createEvent(this, "toggleFilter", 7);
|
60
61
|
this.defaultGlobalId = undefined;
|
61
62
|
this.defaultLayerId = undefined;
|
62
63
|
this.defaultOid = undefined;
|
@@ -76,6 +77,7 @@ const LayerTable = /*@__PURE__*/ proxyCustomElement(class LayerTable extends HTM
|
|
76
77
|
this.showNewestFirst = undefined;
|
77
78
|
this.zoomAndScrollToSelected = undefined;
|
78
79
|
this.zoomToScale = undefined;
|
80
|
+
this.createFilterModal = true;
|
79
81
|
this._allIds = [];
|
80
82
|
this._controlsThatFit = undefined;
|
81
83
|
this._csvExporting = false;
|
@@ -327,7 +329,9 @@ const LayerTable = /*@__PURE__*/ proxyCustomElement(class LayerTable extends HTM
|
|
327
329
|
*/
|
328
330
|
async mapInfoWatchHandler() {
|
329
331
|
this._resetColumnTemplates();
|
330
|
-
this.
|
332
|
+
if (this.createFilterModal) {
|
333
|
+
this._initLayerExpressions();
|
334
|
+
}
|
331
335
|
this._initToolInfos();
|
332
336
|
this._updateToolbar();
|
333
337
|
await this._sortTable();
|
@@ -357,7 +361,9 @@ const LayerTable = /*@__PURE__*/ proxyCustomElement(class LayerTable extends HTM
|
|
357
361
|
this._floorField = this._layer.floorInfo?.floorField;
|
358
362
|
this._updateFloorDefinitionExpression();
|
359
363
|
await this._resetTable();
|
360
|
-
this.
|
364
|
+
if (this.createFilterModal) {
|
365
|
+
this._initLayerExpressions();
|
366
|
+
}
|
361
367
|
this._updateShareUrl();
|
362
368
|
this._fetchingData = false;
|
363
369
|
});
|
@@ -381,6 +387,30 @@ const LayerTable = /*@__PURE__*/ proxyCustomElement(class LayerTable extends HTM
|
|
381
387
|
// Methods (public)
|
382
388
|
//
|
383
389
|
//--------------------------------------------------------------------------
|
390
|
+
/**
|
391
|
+
* Reset the filter
|
392
|
+
*/
|
393
|
+
async filterReset() {
|
394
|
+
void this._handleFilterListReset();
|
395
|
+
}
|
396
|
+
/**
|
397
|
+
* Updates the filter
|
398
|
+
*/
|
399
|
+
async filterUpdate() {
|
400
|
+
this._handleFilterUpdate();
|
401
|
+
}
|
402
|
+
/**
|
403
|
+
* Closes the filter
|
404
|
+
*/
|
405
|
+
async closeFilter() {
|
406
|
+
await this._closeFilter();
|
407
|
+
}
|
408
|
+
/**
|
409
|
+
* refresh the feature table
|
410
|
+
*/
|
411
|
+
async refresh() {
|
412
|
+
await this._refresh();
|
413
|
+
}
|
384
414
|
//--------------------------------------------------------------------------
|
385
415
|
//
|
386
416
|
// Events (public)
|
@@ -390,6 +420,10 @@ const LayerTable = /*@__PURE__*/ proxyCustomElement(class LayerTable extends HTM
|
|
390
420
|
* Emitted on demand when a layer is selected
|
391
421
|
*/
|
392
422
|
featureSelectionChange;
|
423
|
+
/**
|
424
|
+
* Emitted on demand when filter action is clicked
|
425
|
+
*/
|
426
|
+
toggleFilter;
|
393
427
|
/**
|
394
428
|
* Scroll and zoom to the selected feature from the Features widget.
|
395
429
|
*
|
@@ -421,6 +455,14 @@ const LayerTable = /*@__PURE__*/ proxyCustomElement(class LayerTable extends HTM
|
|
421
455
|
}
|
422
456
|
}
|
423
457
|
}
|
458
|
+
/**
|
459
|
+
* Handles layer selection change to show new table
|
460
|
+
*
|
461
|
+
* @param evt CustomEvent the id for the current layer
|
462
|
+
*/
|
463
|
+
async layerSelectionChange(evt) {
|
464
|
+
await this._layerSelectionChanged(evt);
|
465
|
+
}
|
424
466
|
/**
|
425
467
|
* Refresh the table when edits are completed
|
426
468
|
*/
|
@@ -488,9 +530,9 @@ const LayerTable = /*@__PURE__*/ proxyCustomElement(class LayerTable extends HTM
|
|
488
530
|
const selected = this.selectedIds.length.toString();
|
489
531
|
const tableHeightClass = this.isMobile ? "height-full" : "height-full-adjusted";
|
490
532
|
this._validateActiveActions();
|
491
|
-
return (h(Host, { key: '
|
533
|
+
return (h(Host, { key: '17071727cb283d84afb8beab8382bd3623f35920' }, h("calcite-shell", { key: 'f8508d67fd4b100fdc3f52b7db63194714cf216b' }, this._getTableControlRow("header"), h("div", { key: '5c1ebcb0530764a9568dc5dae153632a3d9491c8', class: `width-full ${tableHeightClass}` }, h("calcite-panel", { key: '7a6420894e4e50e2b4cda6e5ebe043134f4c0397', class: "height-full width-full" }, h("calcite-loader", { key: '48d4fe7e27fae877ca0e4caa22555968636f6c33', class: loadingClass, label: this._translations.fetchingData, scale: "l" }), h("div", { key: 'cce71356e8ca141d1a18b32944d4fa03af8aae33', class: tableNodeClass, ref: this.onTableNodeCreate })), !this.isMobile ? (h("div", { class: "bottom-left text-color height-19" }, this._translations.recordsSelected
|
492
534
|
.replace("{{total}}", total)
|
493
|
-
.replace("{{selected}}", selected))) : undefined)), this._filterModal()));
|
535
|
+
.replace("{{selected}}", selected))) : undefined)), this.createFilterModal && this._filterModal()));
|
494
536
|
}
|
495
537
|
/**
|
496
538
|
* Called once after the component is loaded
|
@@ -559,7 +601,7 @@ const LayerTable = /*@__PURE__*/ proxyCustomElement(class LayerTable extends HTM
|
|
559
601
|
_getActionBar() {
|
560
602
|
const containerClass = this.isMobile ? "width-full" : "";
|
561
603
|
const mobileClass = this.isMobile ? "border-top" : "";
|
562
|
-
return (h("calcite-action-bar", { class: containerClass, expandDisabled: true, expanded: true, id: this._getId("bar"), layout: "horizontal" }, h("div", { class: `border-end ${containerClass} ${mobileClass}`, id: "solutions-map-layer-picker-container" }, h("map-layer-picker", { appearance: "transparent", defaultLayerId: this.defaultLayerId, display: "inline-flex", height: 50, isMobile: this.isMobile, mapView: this.mapView,
|
604
|
+
return (h("calcite-action-bar", { class: containerClass, expandDisabled: true, expanded: true, id: this._getId("bar"), layout: "horizontal" }, h("div", { class: `border-end ${containerClass} ${mobileClass}`, id: "solutions-map-layer-picker-container" }, h("map-layer-picker", { appearance: "transparent", defaultLayerId: this.defaultLayerId, display: "inline-flex", height: 50, isMobile: this.isMobile, mapView: this.mapView, onlyShowUpdatableLayers: this.onlyShowUpdatableLayers, placeholderIcon: "layers", scale: "l", selectedIds: this._layer ? [this._layer?.id] : [], showSingleLayerAsLabel: true, showTables: true, type: "dropdown" })), !this.isMobile ? this._getActions() : undefined));
|
563
605
|
}
|
564
606
|
/**
|
565
607
|
* Get the actions that are used for various interactions with the table
|
@@ -604,15 +646,19 @@ const LayerTable = /*@__PURE__*/ proxyCustomElement(class LayerTable extends HTM
|
|
604
646
|
*/
|
605
647
|
_validateEnabledActions() {
|
606
648
|
const featuresSelected = this._featuresSelected();
|
649
|
+
const showMultipleEdits = this.selectedIds.length > 1 && this._layer?.capabilities?.operations?.supportsUpdate;
|
607
650
|
const selectionDependant = [
|
608
651
|
"zoom-to-object",
|
652
|
+
"pencil",
|
609
653
|
"trash",
|
610
654
|
"erase",
|
611
655
|
"selected-items-filter"
|
612
656
|
];
|
613
657
|
this._toolInfos?.forEach(ti => {
|
614
658
|
if (ti && selectionDependant.indexOf(ti.icon) > -1) {
|
615
|
-
|
659
|
+
// disable the pencil icon if multiple features are not selected
|
660
|
+
// For other icons disable them if any feature is not selected
|
661
|
+
ti.disabled = ti.icon === "pencil" ? !showMultipleEdits : !featuresSelected;
|
616
662
|
}
|
617
663
|
});
|
618
664
|
}
|
@@ -646,6 +692,7 @@ const LayerTable = /*@__PURE__*/ proxyCustomElement(class LayerTable extends HTM
|
|
646
692
|
*/
|
647
693
|
_initToolInfos() {
|
648
694
|
const featuresSelected = this._featuresSelected();
|
695
|
+
const showMultipleEdits = this.selectedIds.length > 1 && this._layer?.capabilities?.operations?.supportsUpdate;
|
649
696
|
const featuresEmpty = this._featuresEmpty();
|
650
697
|
const hasFilterExpressions = this._hasFilterExpressions();
|
651
698
|
if (this._translations) {
|
@@ -664,10 +711,20 @@ const LayerTable = /*@__PURE__*/ proxyCustomElement(class LayerTable extends HTM
|
|
664
711
|
icon: "filter",
|
665
712
|
indicator: false,
|
666
713
|
label: this._translations.filters,
|
667
|
-
func: () => this._toggleFilter(),
|
714
|
+
func: () => this.createFilterModal ? this._toggleFilter() : this.toggleFilter.emit(),
|
668
715
|
disabled: false,
|
669
716
|
isOverflow: false
|
670
717
|
} : undefined,
|
718
|
+
!this.mapHidden ? {
|
719
|
+
active: false,
|
720
|
+
icon: "pencil",
|
721
|
+
indicator: false,
|
722
|
+
label: this._translations.editMultiple,
|
723
|
+
func: () => alert(this._translations.editMultiple),
|
724
|
+
disabled: !showMultipleEdits,
|
725
|
+
isOverflow: false,
|
726
|
+
isSublist: false
|
727
|
+
} : undefined,
|
671
728
|
this._deleteEnabled ? {
|
672
729
|
active: undefined,
|
673
730
|
icon: "trash",
|
@@ -852,7 +909,7 @@ const LayerTable = /*@__PURE__*/ proxyCustomElement(class LayerTable extends HTM
|
|
852
909
|
_setControlsThatFit(controlsThatFit, skipControls) {
|
853
910
|
let update = JSON.stringify(controlsThatFit) !== JSON.stringify(this._controlsThatFit);
|
854
911
|
const actionbar = document.getElementById("solutions-action-bar");
|
855
|
-
actionbar
|
912
|
+
actionbar?.childNodes?.forEach((n) => {
|
856
913
|
if (skipControls.indexOf(n.id) < 0 && !update) {
|
857
914
|
update = this._controlsThatFit.map(c => c.id).indexOf(n.id) < 0;
|
858
915
|
}
|
@@ -1721,6 +1778,7 @@ const LayerTable = /*@__PURE__*/ proxyCustomElement(class LayerTable extends HTM
|
|
1721
1778
|
"showNewestFirst": [4, "show-newest-first"],
|
1722
1779
|
"zoomAndScrollToSelected": [4, "zoom-and-scroll-to-selected"],
|
1723
1780
|
"zoomToScale": [2, "zoom-to-scale"],
|
1781
|
+
"createFilterModal": [4, "create-filter-modal"],
|
1724
1782
|
"_allIds": [32],
|
1725
1783
|
"_controlsThatFit": [32],
|
1726
1784
|
"_csvExporting": [32],
|
@@ -1732,8 +1790,12 @@ const LayerTable = /*@__PURE__*/ proxyCustomElement(class LayerTable extends HTM
|
|
1732
1790
|
"_showHideOpen": [32],
|
1733
1791
|
"_showOnlySelected": [32],
|
1734
1792
|
"_toolInfos": [32],
|
1735
|
-
"_translations": [32]
|
1736
|
-
|
1793
|
+
"_translations": [32],
|
1794
|
+
"filterReset": [64],
|
1795
|
+
"filterUpdate": [64],
|
1796
|
+
"closeFilter": [64],
|
1797
|
+
"refresh": [64]
|
1798
|
+
}, [[8, "selectionChanged", "selectionChanged"], [8, "layerSelectionChange", "layerSelectionChange"], [8, "editsComplete", "editsComplete"], [8, "facilityChanged", "facilityChanged"], [8, "levelChanged", "levelChanged"], [8, "siteChanged", "siteChanged"], [8, "noLayersFound", "noLayersFound"]], {
|
1737
1799
|
"defaultOid": ["defaultOidWatchHandler"],
|
1738
1800
|
"defaultGlobalId": ["defaultGlobalIdWatchHandler"],
|
1739
1801
|
"enableCSV": ["enableCSVWatchHandler"],
|