@esri/solutions-components 0.10.6 → 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/instant-apps-control-panel.cjs.entry.js +2 -1
- package/dist/cjs/instant-apps-time-filter.cjs.entry.js +40 -21
- 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/instant-apps-control-panel.js +2 -1
- package/dist/components/instant-apps-time-filter.js +46 -23
- 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/instant-apps-control-panel.entry.js +2 -1
- package/dist/esm/instant-apps-time-filter.entry.js +41 -22
- 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-1867168b.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-ab2adcaf.entry.js → p-cc092b22.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 +2 -2
- 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-72f01088.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
@@ -18,9 +18,11 @@
|
|
18
18
|
* See the License for the specific language governing permissions and
|
19
19
|
* limitations under the License.
|
20
20
|
*/
|
21
|
-
import { Host, h } from "@stencil/core";
|
21
|
+
import { Host, h, Fragment } from "@stencil/core";
|
22
22
|
import { loadModules } from "../../utils/loadModules";
|
23
23
|
import { joinAppProxies } from "templates-common-library-esm/functionality/proxy";
|
24
|
+
import { getLocaleComponentStrings } from "../../utils/locale";
|
25
|
+
import { getFeatureLayerView, goToSelection } from "../../utils/mapViewUtils";
|
24
26
|
// TODO navigation and accessability isn't right for the map list
|
25
27
|
// tab does not go into the list when it's open
|
26
28
|
// focus is not set when it opens
|
@@ -31,6 +33,7 @@ export class MapCard {
|
|
31
33
|
constructor() {
|
32
34
|
this.appProxies = undefined;
|
33
35
|
this.defaultWebmapId = "";
|
36
|
+
this.defaultLayerId = undefined;
|
34
37
|
this.enableHome = undefined;
|
35
38
|
this.enableLegend = undefined;
|
36
39
|
this.enableFloorFilter = undefined;
|
@@ -51,8 +54,17 @@ export class MapCard {
|
|
51
54
|
this.stackTools = true;
|
52
55
|
this.theme = undefined;
|
53
56
|
this.toolOrder = undefined;
|
57
|
+
this.isMapLayout = undefined;
|
58
|
+
this.selectedFeaturesIds = undefined;
|
59
|
+
this.selectedLayer = undefined;
|
60
|
+
this.zoomToScale = undefined;
|
61
|
+
this.onlyShowUpdatableLayers = undefined;
|
62
|
+
this.isMobile = undefined;
|
63
|
+
this.mapInfo = undefined;
|
64
|
+
this._translations = undefined;
|
54
65
|
this._searchConfiguration = undefined;
|
55
66
|
this._webMapInfo = undefined;
|
67
|
+
this._showHideOpen = false;
|
56
68
|
}
|
57
69
|
//--------------------------------------------------------------------------
|
58
70
|
//
|
@@ -105,6 +117,22 @@ export class MapCard {
|
|
105
117
|
* HTMLMapToolsElement: the container div for the map tools
|
106
118
|
*/
|
107
119
|
_mapTools;
|
120
|
+
/**
|
121
|
+
* HTMLCalciteDropdownElement: Dropdown the will support overflow tools that won't fit in the current display
|
122
|
+
*/
|
123
|
+
_moreDropdown;
|
124
|
+
/**
|
125
|
+
* boolean: When true the show/hide fields list is forced open
|
126
|
+
*/
|
127
|
+
_mapListExpanded = false;
|
128
|
+
/**
|
129
|
+
* boolean: When true an indicator will be shown on the action
|
130
|
+
*/
|
131
|
+
_filterActive = false;
|
132
|
+
/**
|
133
|
+
* string: The current layers definition expression
|
134
|
+
*/
|
135
|
+
_definitionExpression;
|
108
136
|
//--------------------------------------------------------------------------
|
109
137
|
//
|
110
138
|
// Watch handlers
|
@@ -116,11 +144,31 @@ export class MapCard {
|
|
116
144
|
enableHomeWatchHandler() {
|
117
145
|
this._initHome();
|
118
146
|
}
|
147
|
+
/**
|
148
|
+
* watch for changes in layer view and verify if it has editing enabled
|
149
|
+
*/
|
150
|
+
async selectedLayerWatchHandler() {
|
151
|
+
await this.selectedLayer?.when(async () => {
|
152
|
+
this._definitionExpression = this.selectedLayer.definitionExpression;
|
153
|
+
});
|
154
|
+
}
|
119
155
|
//--------------------------------------------------------------------------
|
120
156
|
//
|
121
157
|
// Methods (public)
|
122
158
|
//
|
123
159
|
//--------------------------------------------------------------------------
|
160
|
+
/**
|
161
|
+
* Reset the filter
|
162
|
+
*/
|
163
|
+
async filterReset() {
|
164
|
+
this._filterActive = false;
|
165
|
+
}
|
166
|
+
/**
|
167
|
+
* updates the filter
|
168
|
+
*/
|
169
|
+
async updateFilter() {
|
170
|
+
this._filterActive = this._definitionExpression !== this.selectedLayer.definitionExpression;
|
171
|
+
}
|
124
172
|
//--------------------------------------------------------------------------
|
125
173
|
//
|
126
174
|
// Events (public)
|
@@ -134,12 +182,23 @@ export class MapCard {
|
|
134
182
|
* Emitted before a new map is loaded
|
135
183
|
*/
|
136
184
|
beforeMapChanged;
|
185
|
+
/**
|
186
|
+
* Emitted on demand when filter action is clicked
|
187
|
+
*/
|
188
|
+
toggleFilter;
|
137
189
|
/**
|
138
190
|
* Listen for changes to map info and load the appropriate map
|
139
191
|
*/
|
140
192
|
async mapInfoChange(evt) {
|
141
193
|
await this._loadMap(evt.detail);
|
142
194
|
}
|
195
|
+
/**
|
196
|
+
* Listen for change when mapview doesn't contain any layer
|
197
|
+
*/
|
198
|
+
noLayersFound() {
|
199
|
+
this.selectedLayer = undefined;
|
200
|
+
this.selectedFeaturesIds = [];
|
201
|
+
}
|
143
202
|
//--------------------------------------------------------------------------
|
144
203
|
//
|
145
204
|
// Functions (lifecycle)
|
@@ -149,17 +208,28 @@ export class MapCard {
|
|
149
208
|
* StencilJS: Called once just after the component is first connected to the DOM.
|
150
209
|
*/
|
151
210
|
async componentWillLoad() {
|
211
|
+
await this._getTranslations();
|
152
212
|
await this._initModules();
|
153
213
|
}
|
154
214
|
/**
|
155
215
|
* Renders the component.
|
156
216
|
*/
|
157
217
|
render() {
|
218
|
+
const mapContainerClass = this.isMapLayout ? "display-flex height-50-px" : "";
|
158
219
|
const mapClass = this.hidden ? "visibility-hidden-1" : "";
|
159
220
|
const themeClass = this.theme === "dark" ? "calcite-mode-dark" : "calcite-mode-light";
|
160
221
|
const mapPickerClass = this.mapInfos?.length > 1 ? "" : "display-none";
|
161
222
|
const mapHeightClass = this.mapInfos?.length > 1 ? "map-height" : "height-full";
|
162
|
-
|
223
|
+
const containerClass = this.isMobile ? "width-full" : "";
|
224
|
+
const mobileClass = this.isMobile ? "border-top" : "";
|
225
|
+
const headerElements = this.isMapLayout ? "" : "display-none";
|
226
|
+
return (h(Host, { key: '7029e518173a8c1e6e00049b8e68e23bed23d9cb' }, h("div", { key: '2b8d9197dcb68529562728fddeb53d0a7e9cbb86', class: `${mapContainerClass}` }, h("map-picker", { key: '2e50b7c70832f4151fafd06e860846a5efa8f6f1', class: mapPickerClass, isMapLayout: this.isMapLayout, mapInfos: this.mapInfos, ref: (el) => this._mapPicker = el }), h("div", { key: 'bc01ef7fb34400e3ff58151cab6abbabd9fa8a6f', class: `mapView-header display-flex ${headerElements}` }, h("div", { key: '1f1bf6ffb92fbc182be8333b4ae3d70271ea2f1b', class: `border-end ${containerClass} ${mobileClass}`, id: "solutions-map-layer-picker-container" }, this.mapView && h("map-layer-picker", { key: '47320f3794f060262c4ed29ec1400a50d9744a97', 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.selectedLayer ? [this.selectedLayer.id] : [], showSingleLayerAsLabel: true, showTables: true, type: "dropdown" })), this._getDropDownItem())), h("div", { key: '7101bfed6c0e0932275b0d28eea0ea5e1603aa8e', class: `${mapHeightClass} ${mapClass}`, ref: (el) => (this._mapDiv = el) }), h("map-tools", { key: '8ca28e50a77a25699cd6c17fe4f31788ca1cb49d', basemapConfig: this.basemapConfig, class: `box-shadow ${themeClass}`, enableBasemap: this.enableBasemap, enableFloorFilter: this.enableFloorFilter, enableFullscreen: this.enableFullscreen, enableHome: this.enableHome, enableLegend: this.enableLegend, enableSearch: this.enableSearch, enableSingleExpand: this.enableSingleExpand, homeZoomToolsSize: this.homeZoomToolsSize, mapView: this.mapView, mapWidgetsSize: this.mapWidgetsSize, position: this.mapWidgetsPosition, ref: (el) => this._mapTools = el, searchConfiguration: this._searchConfiguration, stackTools: this.stackTools, toolOrder: this.toolOrder })));
|
227
|
+
}
|
228
|
+
/**
|
229
|
+
* Called each time after the component is loaded
|
230
|
+
*/
|
231
|
+
async componentDidRender() {
|
232
|
+
document.onclick = (e) => this._handleDocumentClick(e);
|
163
233
|
}
|
164
234
|
//--------------------------------------------------------------------------
|
165
235
|
//
|
@@ -258,6 +328,96 @@ export class MapCard {
|
|
258
328
|
this.mapView.ui.remove(this._homeWidget);
|
259
329
|
}
|
260
330
|
}
|
331
|
+
/**
|
332
|
+
* Toggle show/hide dropdown
|
333
|
+
*/
|
334
|
+
_toggleShowHide() {
|
335
|
+
this._showHideOpen = !this._showHideOpen;
|
336
|
+
}
|
337
|
+
/**
|
338
|
+
* Open show/hide dropdown
|
339
|
+
*/
|
340
|
+
_forceShowHide() {
|
341
|
+
if (this._moreDropdown) {
|
342
|
+
this._moreDropdown.open = this._showHideOpen;
|
343
|
+
}
|
344
|
+
}
|
345
|
+
/**
|
346
|
+
* Close show/hide dropdown when the user clicks outside of it
|
347
|
+
*/
|
348
|
+
_handleDocumentClick(e) {
|
349
|
+
const id = e.target?.id;
|
350
|
+
if (this._showHideOpen && id !== "solutions-subset-list" && id !== "solutions-more" && id !== "chevron-down") {
|
351
|
+
if (this._moreDropdown) {
|
352
|
+
this._showHideOpen = false;
|
353
|
+
this._moreDropdown.open = false;
|
354
|
+
}
|
355
|
+
}
|
356
|
+
// if clicked on map picker then toggle the dropdown
|
357
|
+
if (e.target.tagName === 'MAP-PICKER') {
|
358
|
+
this._mapListExpanded = !this._mapListExpanded;
|
359
|
+
void this._mapPicker.toggle(this._mapListExpanded);
|
360
|
+
}
|
361
|
+
// if clicked on other place then just close the dropdown
|
362
|
+
if (e.target.tagName !== 'MAP-PICKER') {
|
363
|
+
this._mapListExpanded = false;
|
364
|
+
void this._mapPicker.close();
|
365
|
+
}
|
366
|
+
}
|
367
|
+
/**
|
368
|
+
* Zoom to all selected features
|
369
|
+
*
|
370
|
+
* @returns a promise that will resolve when the operation is complete
|
371
|
+
*/
|
372
|
+
async _zoom() {
|
373
|
+
if (this.selectedLayer) {
|
374
|
+
const selectedLayerView = await getFeatureLayerView(this.mapView, this.selectedLayer.id);
|
375
|
+
await goToSelection(this.selectedFeaturesIds, selectedLayerView, this.mapView, true, undefined, this.zoomToScale);
|
376
|
+
}
|
377
|
+
}
|
378
|
+
async _toggleFilter() {
|
379
|
+
this.toggleFilter.emit();
|
380
|
+
}
|
381
|
+
/**
|
382
|
+
* Return true when we have at least 1 layer expression for the current layer
|
383
|
+
*
|
384
|
+
* @returns boolean
|
385
|
+
*/
|
386
|
+
_hasFilterExpressions() {
|
387
|
+
let layerExpressions;
|
388
|
+
if (this.mapInfo?.filterConfig?.layerExpressions && this.selectedLayer?.id) {
|
389
|
+
layerExpressions = this.mapInfo.filterConfig.layerExpressions.filter((exp) => exp.id === this.selectedLayer.id);
|
390
|
+
}
|
391
|
+
return layerExpressions?.length > 0;
|
392
|
+
}
|
393
|
+
/**
|
394
|
+
* Get Dropdown action item
|
395
|
+
* @returns Dropdown item
|
396
|
+
*/
|
397
|
+
_getDropDownItem() {
|
398
|
+
return (h("calcite-dropdown", { closeOnSelectDisabled: true, disabled: this.selectedLayer === undefined, id: "solutions-more", onCalciteDropdownBeforeClose: () => this._forceShowHide(), ref: (el) => this._moreDropdown = el, widthScale: "l" }, h("calcite-action", { appearance: "solid", id: 'solutions-more', label: "", onClick: () => this._toggleShowHide(), slot: "trigger", text: "" }, h("calcite-button", { appearance: "transparent", iconEnd: this._showHideOpen ? "chevron-up" : "chevron-down", kind: "neutral" }, this._translations.more)), h("calcite-dropdown-group", { selectionMode: "none" }, this._getDropDownItems())));
|
399
|
+
}
|
400
|
+
/**
|
401
|
+
* Gets the dropdown items
|
402
|
+
* @returns dropdown items
|
403
|
+
*/
|
404
|
+
_getDropDownItems() {
|
405
|
+
const featureSelected = this.selectedFeaturesIds?.length > 0;
|
406
|
+
const showMultipleEdits = this.selectedFeaturesIds?.length > 1;
|
407
|
+
const hasFilterExpressions = this._hasFilterExpressions();
|
408
|
+
return (h(Fragment, null, h("calcite-dropdown-group", { selectionMode: "none" }, h("calcite-dropdown-item", { disabled: !showMultipleEdits, iconStart: "pencil", id: "solutions-subset-list", onClick: () => alert(this._translations.editMultiple) }, this._translations.editMultiple)), h("calcite-dropdown-group", { selectionMode: "none" }, h("calcite-dropdown-item", { iconStart: "refresh", id: "solutions-subset-list", onClick: () => { this.selectedLayer.refresh(); } }, this._translations.refresh)), h("calcite-dropdown-group", { selectionMode: "none" }, h("calcite-dropdown-item", { disabled: !featureSelected, iconStart: "zoom-to-object", id: "solutions-subset-list", onClick: this._zoom.bind(this) }, this._translations.zoom)), hasFilterExpressions &&
|
409
|
+
h("calcite-dropdown-group", null, h("calcite-dropdown-item", { disabled: false, iconStart: "filter", id: "solutions-subset-list", onClick: this._toggleFilter.bind(this), selected: this._filterActive }, this._translations.filters))));
|
410
|
+
}
|
411
|
+
/**
|
412
|
+
* Fetches the component's translations
|
413
|
+
*
|
414
|
+
* @returns Promise when complete
|
415
|
+
* @protected
|
416
|
+
*/
|
417
|
+
async _getTranslations() {
|
418
|
+
const messages = await getLocaleComponentStrings(this.el);
|
419
|
+
this._translations = messages[0];
|
420
|
+
}
|
261
421
|
static get is() { return "map-card"; }
|
262
422
|
static get originalStyleUrls() {
|
263
423
|
return {
|
@@ -306,6 +466,23 @@ export class MapCard {
|
|
306
466
|
"reflect": false,
|
307
467
|
"defaultValue": "\"\""
|
308
468
|
},
|
469
|
+
"defaultLayerId": {
|
470
|
+
"type": "string",
|
471
|
+
"mutable": false,
|
472
|
+
"complexType": {
|
473
|
+
"original": "string",
|
474
|
+
"resolved": "string",
|
475
|
+
"references": {}
|
476
|
+
},
|
477
|
+
"required": false,
|
478
|
+
"optional": false,
|
479
|
+
"docs": {
|
480
|
+
"tags": [],
|
481
|
+
"text": "string: when provided this layer ID will be used when the app loads"
|
482
|
+
},
|
483
|
+
"attribute": "default-layer-id",
|
484
|
+
"reflect": false
|
485
|
+
},
|
309
486
|
"enableHome": {
|
310
487
|
"type": "boolean",
|
311
488
|
"mutable": false,
|
@@ -679,13 +856,139 @@ export class MapCard {
|
|
679
856
|
"tags": [],
|
680
857
|
"text": "\r\nValid tools: \"legend\", \"search\", \"fullscreen\", \"basemap\", \"floorfilter\""
|
681
858
|
}
|
859
|
+
},
|
860
|
+
"isMapLayout": {
|
861
|
+
"type": "boolean",
|
862
|
+
"mutable": false,
|
863
|
+
"complexType": {
|
864
|
+
"original": "boolean",
|
865
|
+
"resolved": "boolean",
|
866
|
+
"references": {}
|
867
|
+
},
|
868
|
+
"required": false,
|
869
|
+
"optional": false,
|
870
|
+
"docs": {
|
871
|
+
"tags": [],
|
872
|
+
"text": "boolean: When true map will shown is full screen"
|
873
|
+
},
|
874
|
+
"attribute": "is-map-layout",
|
875
|
+
"reflect": false
|
876
|
+
},
|
877
|
+
"selectedFeaturesIds": {
|
878
|
+
"type": "unknown",
|
879
|
+
"mutable": false,
|
880
|
+
"complexType": {
|
881
|
+
"original": "number[]",
|
882
|
+
"resolved": "number[]",
|
883
|
+
"references": {}
|
884
|
+
},
|
885
|
+
"required": false,
|
886
|
+
"optional": false,
|
887
|
+
"docs": {
|
888
|
+
"tags": [],
|
889
|
+
"text": "number[]: A list of ids that are currently selected"
|
890
|
+
}
|
891
|
+
},
|
892
|
+
"selectedLayer": {
|
893
|
+
"type": "unknown",
|
894
|
+
"mutable": false,
|
895
|
+
"complexType": {
|
896
|
+
"original": "__esri.FeatureLayer",
|
897
|
+
"resolved": "FeatureLayer",
|
898
|
+
"references": {
|
899
|
+
"___esri": {
|
900
|
+
"location": "global",
|
901
|
+
"id": "global::___esri"
|
902
|
+
}
|
903
|
+
}
|
904
|
+
},
|
905
|
+
"required": false,
|
906
|
+
"optional": false,
|
907
|
+
"docs": {
|
908
|
+
"tags": [],
|
909
|
+
"text": "__esri.FeatureLayer: Selected layer"
|
910
|
+
}
|
911
|
+
},
|
912
|
+
"zoomToScale": {
|
913
|
+
"type": "number",
|
914
|
+
"mutable": false,
|
915
|
+
"complexType": {
|
916
|
+
"original": "number",
|
917
|
+
"resolved": "number",
|
918
|
+
"references": {}
|
919
|
+
},
|
920
|
+
"required": false,
|
921
|
+
"optional": false,
|
922
|
+
"docs": {
|
923
|
+
"tags": [],
|
924
|
+
"text": "number: default scale to zoom to when zooming to a single point feature"
|
925
|
+
},
|
926
|
+
"attribute": "zoom-to-scale",
|
927
|
+
"reflect": false
|
928
|
+
},
|
929
|
+
"onlyShowUpdatableLayers": {
|
930
|
+
"type": "boolean",
|
931
|
+
"mutable": false,
|
932
|
+
"complexType": {
|
933
|
+
"original": "boolean",
|
934
|
+
"resolved": "boolean",
|
935
|
+
"references": {}
|
936
|
+
},
|
937
|
+
"required": false,
|
938
|
+
"optional": false,
|
939
|
+
"docs": {
|
940
|
+
"tags": [],
|
941
|
+
"text": "boolean: When true only editable layers that support the update capability will be available"
|
942
|
+
},
|
943
|
+
"attribute": "only-show-updatable-layers",
|
944
|
+
"reflect": false
|
945
|
+
},
|
946
|
+
"isMobile": {
|
947
|
+
"type": "boolean",
|
948
|
+
"mutable": false,
|
949
|
+
"complexType": {
|
950
|
+
"original": "boolean",
|
951
|
+
"resolved": "boolean",
|
952
|
+
"references": {}
|
953
|
+
},
|
954
|
+
"required": false,
|
955
|
+
"optional": false,
|
956
|
+
"docs": {
|
957
|
+
"tags": [],
|
958
|
+
"text": "When true the component will render an optimized view for mobile devices"
|
959
|
+
},
|
960
|
+
"attribute": "is-mobile",
|
961
|
+
"reflect": false
|
962
|
+
},
|
963
|
+
"mapInfo": {
|
964
|
+
"type": "unknown",
|
965
|
+
"mutable": false,
|
966
|
+
"complexType": {
|
967
|
+
"original": "IMapInfo",
|
968
|
+
"resolved": "IMapInfo",
|
969
|
+
"references": {
|
970
|
+
"IMapInfo": {
|
971
|
+
"location": "import",
|
972
|
+
"path": "../../utils/interfaces",
|
973
|
+
"id": "src/utils/interfaces.ts::IMapInfo"
|
974
|
+
}
|
975
|
+
}
|
976
|
+
},
|
977
|
+
"required": false,
|
978
|
+
"optional": false,
|
979
|
+
"docs": {
|
980
|
+
"tags": [],
|
981
|
+
"text": "IMapInfo: key configuration details about the current map"
|
982
|
+
}
|
682
983
|
}
|
683
984
|
};
|
684
985
|
}
|
685
986
|
static get states() {
|
686
987
|
return {
|
988
|
+
"_translations": {},
|
687
989
|
"_searchConfiguration": {},
|
688
|
-
"_webMapInfo": {}
|
990
|
+
"_webMapInfo": {},
|
991
|
+
"_showHideOpen": {}
|
689
992
|
};
|
690
993
|
}
|
691
994
|
static get events() {
|
@@ -725,13 +1028,69 @@ export class MapCard {
|
|
725
1028
|
"resolved": "void",
|
726
1029
|
"references": {}
|
727
1030
|
}
|
1031
|
+
}, {
|
1032
|
+
"method": "toggleFilter",
|
1033
|
+
"name": "toggleFilter",
|
1034
|
+
"bubbles": true,
|
1035
|
+
"cancelable": true,
|
1036
|
+
"composed": true,
|
1037
|
+
"docs": {
|
1038
|
+
"tags": [],
|
1039
|
+
"text": "Emitted on demand when filter action is clicked"
|
1040
|
+
},
|
1041
|
+
"complexType": {
|
1042
|
+
"original": "void",
|
1043
|
+
"resolved": "void",
|
1044
|
+
"references": {}
|
1045
|
+
}
|
728
1046
|
}];
|
729
1047
|
}
|
1048
|
+
static get methods() {
|
1049
|
+
return {
|
1050
|
+
"filterReset": {
|
1051
|
+
"complexType": {
|
1052
|
+
"signature": "() => Promise<void>",
|
1053
|
+
"parameters": [],
|
1054
|
+
"references": {
|
1055
|
+
"Promise": {
|
1056
|
+
"location": "global",
|
1057
|
+
"id": "global::Promise"
|
1058
|
+
}
|
1059
|
+
},
|
1060
|
+
"return": "Promise<void>"
|
1061
|
+
},
|
1062
|
+
"docs": {
|
1063
|
+
"text": "Reset the filter",
|
1064
|
+
"tags": []
|
1065
|
+
}
|
1066
|
+
},
|
1067
|
+
"updateFilter": {
|
1068
|
+
"complexType": {
|
1069
|
+
"signature": "() => Promise<void>",
|
1070
|
+
"parameters": [],
|
1071
|
+
"references": {
|
1072
|
+
"Promise": {
|
1073
|
+
"location": "global",
|
1074
|
+
"id": "global::Promise"
|
1075
|
+
}
|
1076
|
+
},
|
1077
|
+
"return": "Promise<void>"
|
1078
|
+
},
|
1079
|
+
"docs": {
|
1080
|
+
"text": "updates the filter",
|
1081
|
+
"tags": []
|
1082
|
+
}
|
1083
|
+
}
|
1084
|
+
};
|
1085
|
+
}
|
730
1086
|
static get elementRef() { return "el"; }
|
731
1087
|
static get watchers() {
|
732
1088
|
return [{
|
733
1089
|
"propName": "enableHome",
|
734
1090
|
"methodName": "enableHomeWatchHandler"
|
1091
|
+
}, {
|
1092
|
+
"propName": "selectedLayer",
|
1093
|
+
"methodName": "selectedLayerWatchHandler"
|
735
1094
|
}];
|
736
1095
|
}
|
737
1096
|
static get listeners() {
|
@@ -741,6 +1100,12 @@ export class MapCard {
|
|
741
1100
|
"target": "window",
|
742
1101
|
"capture": false,
|
743
1102
|
"passive": false
|
1103
|
+
}, {
|
1104
|
+
"name": "noLayersFound",
|
1105
|
+
"method": "noLayersFound",
|
1106
|
+
"target": "window",
|
1107
|
+
"capture": false,
|
1108
|
+
"passive": false
|
744
1109
|
}];
|
745
1110
|
}
|
746
1111
|
}
|
@@ -183,7 +183,7 @@ export class MapDrawTools {
|
|
183
183
|
"border" : "border esri-widget esri-sketch__panel";
|
184
184
|
const undoRedoClass = this.drawMode === EDrawMode.SKETCH ?
|
185
185
|
"display-none" : "esri-widget esri-sketch__panel border-left esri-sketch__section";
|
186
|
-
return (h(Host, { key: '
|
186
|
+
return (h(Host, { key: '64c06f74fa05d6debb3a34bbb3d51bc9e2d1e8a6' }, h("div", { key: 'b3ac0f7c2f38da701fcee82580d7d4f55792ffb8', class: containerClass }, h("div", { key: '57625c7617de564ad7f62ed8952dd72108d46bbe', ref: (el) => { this._sketchElement = el; } }), h("div", { key: 'b1c8a28ef1fab0e0cb4a9617e9d366e1002d619d', class: undoRedoClass }, h("calcite-action", { key: 'ae27d672ad615b54bceb37fa56ac8e652f80df61', disabled: !this.undoEnabled, icon: "undo", onClick: () => this._undo(), scale: "s", text: this._translations.undo }), h("calcite-action", { key: '643d1413f98f8059590fb92c702074c9c732f9b1', disabled: !this.redoEnabled, icon: "redo", onClick: () => this._redo(), scale: "s", text: this._translations.redo })))));
|
187
187
|
}
|
188
188
|
//--------------------------------------------------------------------------
|
189
189
|
//
|
@@ -95,7 +95,7 @@ export class MapFullscreen {
|
|
95
95
|
* Renders the component.
|
96
96
|
*/
|
97
97
|
render() {
|
98
|
-
return (h(Host, { key: '
|
98
|
+
return (h(Host, { key: '27267ebf4781a3c85addd8339028f7ac8d07bfb2' }, h("div", { key: '0966dae1c7ab9a2cba461d2f19b63bea8e5f28cf', class: "fullscreen-widget", ref: (el) => { this._fullscreenElement = el; } })));
|
99
99
|
}
|
100
100
|
/**
|
101
101
|
* StencilJS: Called just after the component updates.
|
@@ -20,7 +20,7 @@
|
|
20
20
|
*/
|
21
21
|
import { Host, h } from "@stencil/core";
|
22
22
|
import { getLocaleComponentStrings } from "../../utils/locale";
|
23
|
-
import { getMapLayerHash, getMapTableHash } from "../../utils/mapViewUtils";
|
23
|
+
import { getLayerOrTable, getMapLayerHash, getMapTableHash } from "../../utils/mapViewUtils";
|
24
24
|
import state from "../../utils/publicNotificationStore";
|
25
25
|
export class MapLayerPicker {
|
26
26
|
constructor() {
|
@@ -129,8 +129,14 @@ export class MapLayerPicker {
|
|
129
129
|
async componentWillLoad() {
|
130
130
|
await this._getTranslations();
|
131
131
|
await this._setLayers();
|
132
|
+
}
|
133
|
+
/**
|
134
|
+
* StencilJS: Called once just after the component is first connected to the DOM.
|
135
|
+
*/
|
136
|
+
async componentWillRender() {
|
132
137
|
if (this.ids.length > 0 || this.selectedIds.length === 1) {
|
133
|
-
|
138
|
+
const layer = await getLayerOrTable(this.mapView, this.selectedIds[0]);
|
139
|
+
this.selectedName = layer?.title;
|
134
140
|
}
|
135
141
|
}
|
136
142
|
/**
|
@@ -140,7 +146,7 @@ export class MapLayerPicker {
|
|
140
146
|
const id = "map-layer-picker";
|
141
147
|
let style = this.height > 0 ? { "height": `${this.height.toString()}px` } : {};
|
142
148
|
style = { ...style, "display": this.display };
|
143
|
-
return (h(Host, { key: '
|
149
|
+
return (h(Host, { key: '47a42a4855654930ebaf59b1567ab4bd5ccf3133' }, h("div", { key: 'acc05150c663d68ae633a7d293984ae282cfbdfa', class: "map-layer-picker-container", style: style }, h("div", { key: '811bde9a5118862f58b6a9ed99abec0f46fb4a1f', class: "map-layer-picker", style: style }, !this._hasValidLayers ? this._getInvalidPlaceholder() :
|
144
150
|
!this._hasMultipleLayers && this.showSingleLayerAsLabel ? this._getSingleLayerPlaceholder() :
|
145
151
|
this.type === "combobox" ? this._getCombobox(id) :
|
146
152
|
this.type === "select" ? this._getSelect(id) : this._getDropdown(id)))));
|
@@ -86,7 +86,7 @@ export class MapLegend {
|
|
86
86
|
* StencilJS: Renders the component.
|
87
87
|
*/
|
88
88
|
render() {
|
89
|
-
return (h(Host, { key: '
|
89
|
+
return (h(Host, { key: 'd9f276c9f13ad09a606bda6e2aaf78707824f6e9' }, h("div", { key: 'f2db7bd093313a19ace2ec4340c5d0049b666bdc', ref: (el) => { this._legendElement = el; } })));
|
90
90
|
}
|
91
91
|
/**
|
92
92
|
* StencilJS: Called once just after the component is fully loaded and the first render() occurs.
|
@@ -23,6 +23,10 @@
|
|
23
23
|
width: 100%;
|
24
24
|
}
|
25
25
|
|
26
|
+
.width-25 {
|
27
|
+
width: 25% !important;
|
28
|
+
}
|
29
|
+
|
26
30
|
.height-full {
|
27
31
|
height: 100%;
|
28
32
|
}
|
@@ -38,6 +42,10 @@
|
|
38
42
|
border-color: var(--calcite-color-border-3);
|
39
43
|
}
|
40
44
|
|
45
|
+
.border-right {
|
46
|
+
border-right: 1px solid var(--calcite-color-border-3);
|
47
|
+
}
|
48
|
+
|
41
49
|
.action-bar-size {
|
42
50
|
height: 51px;
|
43
51
|
width: 100%;
|