@esri/solutions-components 0.10.7 → 0.10.8
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/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"],
|