@esri/solutions-components 0.6.3 → 0.6.4

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.
Files changed (85) hide show
  1. package/dist/cjs/buffer-tools_4.cjs.entry.js +1 -1
  2. package/dist/cjs/calcite-combobox_6.cjs.entry.js +74 -52
  3. package/dist/cjs/calcite-input-text_4.cjs.entry.js +9 -9
  4. package/dist/cjs/card-manager_3.cjs.entry.js +36 -29
  5. package/dist/cjs/crowdsource-manager.cjs.entry.js +2 -2
  6. package/dist/cjs/{downloadUtils-6d4e269f.js → downloadUtils-4aadf4b0.js} +4 -3
  7. package/dist/cjs/edit-card_2.cjs.entry.js +11 -6
  8. package/dist/cjs/{index.es-fc923796.js → index.es-17db3b89.js} +2 -2
  9. package/dist/cjs/loader.cjs.js +1 -1
  10. package/dist/cjs/{mapViewUtils-efc49df7.js → mapViewUtils-77a1ff88.js} +48 -6
  11. package/dist/cjs/public-notification.cjs.entry.js +3 -3
  12. package/dist/cjs/{publicNotificationStore-cd1a32c3.js → publicNotificationStore-ec1bdd2d.js} +5 -1
  13. package/dist/cjs/solutions-components.cjs.js +1 -1
  14. package/dist/collection/components/card-manager/card-manager.js +8 -8
  15. package/dist/collection/components/crowdsource-manager/crowdsource-manager.css +2 -2
  16. package/dist/collection/components/crowdsource-manager/crowdsource-manager.js +1 -1
  17. package/dist/collection/components/edit-card/edit-card.css +1 -1
  18. package/dist/collection/components/edit-card/edit-card.js +7 -1
  19. package/dist/collection/components/info-card/info-card.js +4 -5
  20. package/dist/collection/components/layer-table/layer-table.js +34 -27
  21. package/dist/collection/components/map-layer-picker/map-layer-picker.js +110 -54
  22. package/dist/collection/components/map-select-tools/map-select-tools.js +5 -5
  23. package/dist/collection/components/refine-selection/refine-selection.js +3 -3
  24. package/dist/collection/demos/crowdsource-manager.html +31 -16
  25. package/dist/collection/utils/downloadUtils.js +2 -1
  26. package/dist/collection/utils/downloadUtils.ts +1 -1
  27. package/dist/collection/utils/interfaces.ts +6 -5
  28. package/dist/collection/utils/mapViewUtils.js +44 -5
  29. package/dist/collection/utils/mapViewUtils.ts +52 -7
  30. package/dist/collection/utils/publicNotificationStore.js +5 -1
  31. package/dist/collection/utils/publicNotificationStore.ts +5 -1
  32. package/dist/components/card-manager2.js +5 -5
  33. package/dist/components/crowdsource-manager.js +2 -2
  34. package/dist/components/downloadUtils.js +2 -1
  35. package/dist/components/edit-card2.js +7 -1
  36. package/dist/components/info-card2.js +4 -5
  37. package/dist/components/layer-table2.js +33 -26
  38. package/dist/components/map-layer-picker2.js +78 -54
  39. package/dist/components/map-select-tools2.js +5 -5
  40. package/dist/components/mapViewUtils.js +45 -6
  41. package/dist/components/publicNotificationStore.js +5 -1
  42. package/dist/components/refine-selection2.js +3 -3
  43. package/dist/esm/buffer-tools_4.entry.js +1 -1
  44. package/dist/esm/calcite-combobox_6.entry.js +74 -52
  45. package/dist/esm/calcite-input-text_4.entry.js +9 -9
  46. package/dist/esm/card-manager_3.entry.js +36 -29
  47. package/dist/esm/crowdsource-manager.entry.js +2 -2
  48. package/dist/esm/{downloadUtils-1092cb0f.js → downloadUtils-3b5f85d9.js} +4 -3
  49. package/dist/esm/edit-card_2.entry.js +11 -6
  50. package/dist/esm/{index.es-08a48fdd.js → index.es-bb9196f6.js} +2 -2
  51. package/dist/esm/loader.js +1 -1
  52. package/dist/esm/{mapViewUtils-a787c6a8.js → mapViewUtils-55ea1e10.js} +45 -6
  53. package/dist/esm/public-notification.entry.js +3 -3
  54. package/dist/esm/{publicNotificationStore-c36d95bf.js → publicNotificationStore-6ef555f3.js} +5 -1
  55. package/dist/esm/solutions-components.js +1 -1
  56. package/dist/solutions-components/demos/crowdsource-manager.html +31 -16
  57. package/dist/solutions-components/{p-841a5f97.entry.js → p-03179924.entry.js} +1 -1
  58. package/dist/solutions-components/{p-a29ba58a.js → p-477ae127.js} +2 -2
  59. package/dist/solutions-components/p-4af3f843.js +36 -0
  60. package/dist/solutions-components/{p-5b260e5f.js → p-6015e2ee.js} +1 -1
  61. package/dist/solutions-components/{p-ad60a547.js → p-9807924d.js} +3 -3
  62. package/dist/solutions-components/{p-781480c2.entry.js → p-a56f965e.entry.js} +1 -1
  63. package/dist/solutions-components/{p-5a6ca63b.entry.js → p-cdc0bb97.entry.js} +6 -6
  64. package/dist/solutions-components/{p-6305f474.entry.js → p-d3fd28e9.entry.js} +1 -1
  65. package/dist/solutions-components/p-d83da8a0.entry.js +11 -0
  66. package/dist/solutions-components/p-d875f38c.entry.js +6 -0
  67. package/dist/solutions-components/p-ef235c88.entry.js +6 -0
  68. package/dist/solutions-components/solutions-components.esm.js +1 -1
  69. package/dist/solutions-components/utils/downloadUtils.ts +1 -1
  70. package/dist/solutions-components/utils/interfaces.ts +6 -5
  71. package/dist/solutions-components/utils/mapViewUtils.ts +52 -7
  72. package/dist/solutions-components/utils/publicNotificationStore.ts +5 -1
  73. package/dist/types/components/card-manager/card-manager.d.ts +2 -2
  74. package/dist/types/components/edit-card/edit-card.d.ts +6 -2
  75. package/dist/types/components/layer-table/layer-table.d.ts +4 -4
  76. package/dist/types/components/map-layer-picker/map-layer-picker.d.ts +34 -19
  77. package/dist/types/components.d.ts +22 -6
  78. package/dist/types/utils/interfaces.d.ts +4 -3
  79. package/dist/types/utils/mapViewUtils.d.ts +22 -5
  80. package/dist/types/utils/publicNotificationStore.d.ts +2 -0
  81. package/package.json +1 -1
  82. package/dist/solutions-components/p-0641aa9b.js +0 -36
  83. package/dist/solutions-components/p-74a2d025.entry.js +0 -6
  84. package/dist/solutions-components/p-a62c1b3c.entry.js +0 -6
  85. package/dist/solutions-components/p-ccf5c0ff.entry.js +0 -11
@@ -21,7 +21,7 @@
21
21
  import { Host, h } from "@stencil/core";
22
22
  import { loadModules } from "../../utils/loadModules";
23
23
  import { getLocaleComponentStrings } from "../../utils/locale";
24
- import { getMapLayerView, getMapLayerIds } from "../../utils/mapViewUtils";
24
+ import { getLayer, getMapLayerIds } from "../../utils/mapViewUtils";
25
25
  import { queryFeaturesByID, queryAllIds } from "../../utils/queryUtils";
26
26
  import * as downloadUtils from "../../utils/downloadUtils";
27
27
  export class LayerTable {
@@ -43,7 +43,7 @@ export class LayerTable {
43
43
  this.mapView = undefined;
44
44
  this._alertOpen = false;
45
45
  this._fetchingData = false;
46
- this._layerView = undefined;
46
+ this._layer = undefined;
47
47
  this._selectedIndexes = [];
48
48
  this._showOnlySelected = false;
49
49
  this._translations = undefined;
@@ -59,7 +59,7 @@ export class LayerTable {
59
59
  async mapViewWatchHandler() {
60
60
  this._fetchingData = true;
61
61
  const mapLayerIds = await getMapLayerIds(this.mapView);
62
- this._layerView = await getMapLayerView(this.mapView, mapLayerIds[0]);
62
+ this._layer = await getLayer(this.mapView, mapLayerIds[0]);
63
63
  this._resetTable();
64
64
  this.reactiveUtils.on(() => this.mapView, "click", (event) => {
65
65
  void this._mapClicked(event);
@@ -69,7 +69,7 @@ export class LayerTable {
69
69
  /**
70
70
  * watch for changes in layer view and verify if it has editing enabled
71
71
  */
72
- async _layerViewWatchHandler() {
72
+ async _layerWatchHandler() {
73
73
  this._fetchingData = true;
74
74
  this._resetTable();
75
75
  this._fetchingData = false;
@@ -106,7 +106,7 @@ export class LayerTable {
106
106
  * Renders the component.
107
107
  */
108
108
  render() {
109
- if (!this._layerView) {
109
+ if (!this._layer) {
110
110
  return null;
111
111
  }
112
112
  const tableNodeClass = this._fetchingData ? "display-none" : "";
@@ -141,8 +141,8 @@ export class LayerTable {
141
141
  */
142
142
  _getTableControlRow(slot) {
143
143
  const featuresSelected = this._selectedIndexes.length > 0;
144
- return (h("div", { class: "display-flex table-border height-51", slot: slot }, h("calcite-action-bar", { expandDisabled: true, expanded: true, layout: "horizontal" }, h("div", { class: "border-end" }, h("map-layer-picker", { appearance: "transparent", mapView: this.mapView, onLayerSelectionChange: (evt) => this._layerSelectionChanged(evt), placeholderIcon: "layers", scale: "l", type: "dropdown" })), h("calcite-action", { appearance: "solid", disabled: !featuresSelected, icon: "magnifying-glass", id: "magnifying-glass", label: this._translations.zoom, onClick: () => this._zoom(), text: this._translations.zoom, textEnabled: true }), h("calcite-tooltip", { label: "", placement: "bottom", "reference-element": "magnifying-glass" }, h("span", null, this._translations.zoom)), h("calcite-action", { appearance: "solid", icon: "filter", id: "filter", onClick: () => this._filter(), text: this._translations.filters, "text-enabled": "true", textEnabled: true }), h("calcite-tooltip", { label: "", placement: "bottom", "reference-element": "filter" }, h("span", null, this._translations.filters)), h("calcite-action", { appearance: "solid", disabled: !featuresSelected, id: "trash", onClick: () => this._delete(), text: "" }, h("calcite-button", { appearance: "transparent", iconStart: "trash", kind: "danger" }, this._translations.delete)), h("calcite-tooltip", { label: "", placement: "bottom", "reference-element": "trash" }, h("span", null, this._translations.delete))), h("calcite-dropdown", null, h("calcite-action", { appearance: "solid", label: "", slot: "trigger", text: "" }, h("calcite-button", { appearance: "transparent", iconEnd: "chevron-down", kind: "neutral" }, this._translations.more)), h("calcite-dropdown-group", { "selection-mode": "none" }, h("calcite-dropdown-item", { iconStart: "list-check-all", onClick: () => this._selectAll() }, this._translations.selectAll), h("calcite-dropdown-item", { iconStart: "selected-items-filter", onClick: () => this._showSelected() }, this._showOnlySelected ? this._translations.showAll :
145
- this._translations.showSelected), h("calcite-dropdown-item", { iconStart: "erase", onClick: () => this._clearSelection() }, this._translations.clearSelection), h("calcite-dropdown-item", { iconStart: "refresh", onClick: () => this._switchSelected() }, this._translations.switchSelected), h("calcite-dropdown-item", { iconStart: "refresh", onClick: () => this._refresh() }, this._translations.refresh), h("calcite-dropdown-item", { iconStart: "export", onClick: () => void this._exportToCSV() }, this._translations.exportCSV)))));
144
+ return (h("div", { class: "display-flex table-border height-51", slot: slot }, h("calcite-action-bar", { expandDisabled: true, expanded: true, layout: "horizontal" }, h("div", { class: "border-end" }, h("map-layer-picker", { appearance: "transparent", mapView: this.mapView, onLayerSelectionChange: (evt) => this._layerSelectionChanged(evt), placeholderIcon: "layers", scale: "l", type: "dropdown" })), h("calcite-action", { appearance: "solid", disabled: !featuresSelected, icon: "magnifying-glass", id: "magnifying-glass", label: this._translations.zoom, onClick: () => this._zoom(), text: this._translations.zoom, textEnabled: true }), h("calcite-tooltip", { label: "", placement: "bottom", "reference-element": "magnifying-glass" }, h("span", null, this._translations.zoom)), h("calcite-action", { appearance: "solid", icon: "filter", id: "filter", onClick: () => this._filter(), text: this._translations.filters, "text-enabled": "true", textEnabled: true }), h("calcite-tooltip", { label: "", placement: "bottom", "reference-element": "filter" }, h("span", null, this._translations.filters)), h("calcite-action", { appearance: "solid", disabled: !featuresSelected, id: "trash", onClick: () => this._delete(), text: "" }, h("calcite-button", { appearance: "transparent", iconStart: "trash", kind: "danger" }, this._translations.delete)), h("calcite-tooltip", { label: "", placement: "bottom", "reference-element": "trash" }, h("span", null, this._translations.delete)), h("calcite-action", { appearance: "solid", disabled: !featuresSelected, icon: "erase", id: "erase", onClick: () => this._clearSelection(), text: this._translations.clearSelection, "text-enabled": "true", textEnabled: true }), h("calcite-tooltip", { label: "", placement: "bottom", "reference-element": "erase" }, h("span", null, this._translations.clearSelection))), h("calcite-dropdown", null, h("calcite-action", { appearance: "solid", label: "", slot: "trigger", text: "" }, h("calcite-button", { appearance: "transparent", iconEnd: "chevron-down", kind: "neutral" }, this._translations.more)), h("calcite-dropdown-group", { "selection-mode": "none" }, h("calcite-dropdown-item", { iconStart: "list-check-all", onClick: () => this._selectAll() }, this._translations.selectAll), h("calcite-dropdown-item", { iconStart: "selected-items-filter", onClick: () => this._toggleShowSelected() }, this._showOnlySelected ? this._translations.showAll :
145
+ this._translations.showSelected), h("calcite-dropdown-item", { iconStart: "refresh", onClick: () => this._switchSelected() }, this._translations.switchSelected), h("calcite-dropdown-item", { iconStart: "refresh", onClick: () => this._refresh() }, this._translations.refresh), h("calcite-dropdown-item", { iconStart: "export", onClick: () => void this._exportToCSV() }, this._translations.exportCSV)))));
146
146
  }
147
147
  /**
148
148
  * Initialize the FeatureTable
@@ -150,10 +150,9 @@ export class LayerTable {
150
150
  * @returns void
151
151
  */
152
152
  _getTable(node) {
153
- var _a;
154
- if ((_a = this._layerView) === null || _a === void 0 ? void 0 : _a.layer) {
153
+ if (this._layer) {
155
154
  this._table = new this.FeatureTable({
156
- layer: this._layerView.layer,
155
+ layer: this._layer,
157
156
  view: this.mapView,
158
157
  //editingEnabled: this._editEnabled,
159
158
  highlightOnRowSelectEnabled: true,
@@ -166,6 +165,14 @@ export class LayerTable {
166
165
  });
167
166
  this._table.highlightIds.on("change", () => {
168
167
  this._selectedIndexes = this._table.highlightIds.toArray();
168
+ if (this._showOnlySelected) {
169
+ if (this._selectedIndexes.length > 0) {
170
+ this._table.filterBySelection();
171
+ }
172
+ else {
173
+ this._toggleShowSelected();
174
+ }
175
+ }
169
176
  this.featureSelectionChange.emit(this._selectedIndexes);
170
177
  });
171
178
  }
@@ -176,10 +183,11 @@ export class LayerTable {
176
183
  * @returns void
177
184
  */
178
185
  _resetTable() {
179
- var _a;
180
- if (((_a = this._layerView) === null || _a === void 0 ? void 0 : _a.layer) && this._table) {
181
- this._table.layer = this._layerView.layer;
182
- this._editEnabled = this._layerView.layer.editingEnabled;
186
+ if (this._layer && this._table) {
187
+ this._clearSelection();
188
+ this.featureSelectionChange.emit(this._selectedIndexes);
189
+ this._table.layer = this._layer;
190
+ this._editEnabled = this._layer.editingEnabled;
183
191
  this._table.view = this.mapView;
184
192
  this._table.editingEnabled = this._editEnabled;
185
193
  this._table.clearSelectionFilter();
@@ -193,7 +201,7 @@ export class LayerTable {
193
201
  */
194
202
  async _mapClicked(evt) {
195
203
  const opts = {
196
- include: this._layerView.layer
204
+ include: this._layer
197
205
  };
198
206
  const hitTestResult = await this.mapView.hitTest(evt.screenPoint, opts);
199
207
  if (hitTestResult.results.length > 0) {
@@ -238,7 +246,7 @@ export class LayerTable {
238
246
  *
239
247
  * @returns void
240
248
  */
241
- _showSelected() {
249
+ _toggleShowSelected() {
242
250
  this._showOnlySelected = !this._showOnlySelected;
243
251
  if (this._showOnlySelected) {
244
252
  this._table.filterBySelection();
@@ -283,10 +291,10 @@ export class LayerTable {
283
291
  async _exportToCSV() {
284
292
  const exportInfos = {};
285
293
  const ids = this._table.highlightIds.toArray();
286
- exportInfos[this._layerView.layer.id] = {
294
+ exportInfos[this._layer.id] = {
287
295
  selectionSetNames: [],
288
296
  ids,
289
- layerView: this._layerView
297
+ layer: this._layer
290
298
  };
291
299
  void downloadUtils.downloadCSV(exportInfos, false, // formatUsingLayerPopup
292
300
  true);
@@ -321,7 +329,7 @@ export class LayerTable {
321
329
  this._alertMessage = this._translations.confirm;
322
330
  this._alertKind = "danger";
323
331
  this._alertActionFunction = () => {
324
- void this._layerView.layer.applyEdits({
332
+ void this._layer.applyEdits({
325
333
  deleteFeatures: this._table.highlightIds.toArray()
326
334
  });
327
335
  this._alertOpen = false;
@@ -352,15 +360,14 @@ export class LayerTable {
352
360
  * @returns a promise that will resolve when the operation is complete
353
361
  */
354
362
  async _layerSelectionChanged(evt) {
355
- var _a;
356
363
  const id = evt.detail[0];
357
- if (id !== ((_a = this._layerView) === null || _a === void 0 ? void 0 : _a.layer.id) || this._allIds.length === 0) {
364
+ if (id !== this._layer.id || this._allIds.length === 0) {
358
365
  this._fetchingData = true;
359
366
  this._table.highlightIds.removeAll();
360
- this._layerView = await getMapLayerView(this.mapView, id);
361
- this._allIds = await queryAllIds(this._layerView.layer);
367
+ this._layer = await getLayer(this.mapView, id);
368
+ this._allIds = await queryAllIds(this._layer);
362
369
  this._selectedIndexes = [];
363
- this._table.layer = this._layerView.layer;
370
+ this._table.layer = this._layer;
364
371
  this._table.render();
365
372
  this._fetchingData = false;
366
373
  }
@@ -413,7 +420,7 @@ export class LayerTable {
413
420
  return {
414
421
  "_alertOpen": {},
415
422
  "_fetchingData": {},
416
- "_layerView": {},
423
+ "_layer": {},
417
424
  "_selectedIndexes": {},
418
425
  "_showOnlySelected": {},
419
426
  "_translations": {}
@@ -469,8 +476,8 @@ export class LayerTable {
469
476
  "propName": "mapView",
470
477
  "methodName": "mapViewWatchHandler"
471
478
  }, {
472
- "propName": "_layerView",
473
- "methodName": "_layerViewWatchHandler"
479
+ "propName": "_layer",
480
+ "methodName": "_layerWatchHandler"
474
481
  }];
475
482
  }
476
483
  }
@@ -19,19 +19,21 @@
19
19
  * limitations under the License.
20
20
  */
21
21
  import { Host, h } from "@stencil/core";
22
- import { getMapLayerHash, getMapLayerIds } from "../../utils/mapViewUtils";
22
+ import { getMapLayerHash, getMapLayerIds, getMapTableHash, getMapTableIds } from "../../utils/mapViewUtils";
23
23
  import state from "../../utils/publicNotificationStore";
24
24
  export class MapLayerPicker {
25
25
  constructor() {
26
26
  this.appearance = "transparent";
27
27
  this.enabledLayerIds = [];
28
+ this.enabledTableIds = [];
28
29
  this.mapView = undefined;
29
30
  this.placeholderIcon = "";
30
- this.selectedLayerIds = [];
31
+ this.selectedIds = [];
31
32
  this.scale = "m";
33
+ this.showTables = true;
32
34
  this.type = "select";
33
- this.layerIds = [];
34
- this.selectedLayerName = "";
35
+ this.ids = [];
36
+ this.selectedName = "";
35
37
  }
36
38
  //--------------------------------------------------------------------------
37
39
  //
@@ -44,7 +46,11 @@ export class MapLayerPicker {
44
46
  */
45
47
  async mapViewWatchHandler() {
46
48
  await this._setLayers();
47
- this._setSelectedLayer(this.layerIds[0]);
49
+ const hasLayers = Object.keys(state.layerNameHash).length > 0;
50
+ const hasTables = Object.keys(state.tableNameHash).length > 0 && this.showTables;
51
+ if (hasLayers || hasTables) {
52
+ this._setSelectedLayer(this.ids[0], hasLayers ? "layer" : "table");
53
+ }
48
54
  }
49
55
  //--------------------------------------------------------------------------
50
56
  //
@@ -56,8 +62,8 @@ export class MapLayerPicker {
56
62
  */
57
63
  async componentWillLoad() {
58
64
  await this._setLayers();
59
- if (this.layerIds.length > 0 || this.selectedLayerIds.length === 1) {
60
- this.layerSelectionChange.emit(this.selectedLayerIds.length === 1 ? [this.selectedLayerIds[0]] : [this.layerIds[0]]);
65
+ if (this.ids.length > 0 || this.selectedIds.length === 1) {
66
+ this.layerSelectionChange.emit(this.selectedIds.length === 1 ? [this.selectedIds[0]] : [this.ids[0]]);
61
67
  }
62
68
  }
63
69
  /**
@@ -71,13 +77,15 @@ export class MapLayerPicker {
71
77
  * StencilJS: Called once just after the component is fully loaded and the first render() occurs.
72
78
  */
73
79
  async componentDidLoad() {
74
- if (this.layerIds.length > 0 || this.selectedLayerIds.length === 1) {
75
- const id = this.selectedLayerIds.length === 1 ? this.selectedLayerIds[0] : this.layerIds[0];
80
+ if (this.ids.length > 0 || this.selectedIds.length === 1) {
81
+ const id = this.selectedIds.length === 1 ? this.selectedIds[0] : this.ids[0];
76
82
  if (this.type === "select") {
77
83
  this._layerElement.value = id;
78
84
  }
79
85
  else if (this.type === "dropdown") {
80
- this.selectedLayerName = state.layerNameHash[id];
86
+ this.selectedName = Object.keys(state.layerNameHash).indexOf(id) > -1 ?
87
+ state.layerNameHash[id] : Object.keys(state.tableNameHash).indexOf(id) > -1 ?
88
+ state.tableNameHash[id] : "";
81
89
  }
82
90
  }
83
91
  }
@@ -94,7 +102,7 @@ export class MapLayerPicker {
94
102
  * @returns Calcite Select component with the ids of the layers from the map
95
103
  */
96
104
  _getSelect() {
97
- return (h("calcite-select", { label: "", onCalciteSelectChange: () => this._layerSelectionChange(), ref: (el) => { this._layerElement = el; }, scale: this.scale }, this._addSelectMapLayersOptions()));
105
+ return (h("calcite-select", { label: "", onCalciteSelectChange: () => this._layerSelectionChange(), ref: (el) => { this._layerElement = el; }, scale: this.scale }, this._getMapLayerOptions()));
98
106
  }
99
107
  /**
100
108
  * Create a list of layer ids from the map
@@ -104,7 +112,7 @@ export class MapLayerPicker {
104
112
  * @returns Calcite ComboBox component with the ids of the layers from the map
105
113
  */
106
114
  _getCombobox() {
107
- return (h("calcite-combobox", { clearDisabled: true, label: "", onCalciteComboboxChange: () => this._layerSelectionChange(), "placeholder-icon": this.placeholderIcon, ref: (el) => { this._layerElement = el; }, scale: this.scale, "selection-mode": "single" }, this._addComboboxMapLayersOptions()));
115
+ return (h("calcite-combobox", { clearDisabled: true, label: "", onCalciteComboboxChange: () => this._layerSelectionChange(), "placeholder-icon": this.placeholderIcon, ref: (el) => { this._layerElement = el; }, scale: this.scale, "selection-mode": "single" }, this._getMapLayerOptions()));
108
116
  }
109
117
  /**
110
118
  * Hydrate a dropdown component with items to display the layer names
@@ -112,54 +120,42 @@ export class MapLayerPicker {
112
120
  * @returns Array of Dropdown items with layer names
113
121
  */
114
122
  _getDropdown() {
115
- return (h("calcite-dropdown", { class: "layer-picker-dropdown" }, h("calcite-action", { slot: "trigger", text: "" }, h("calcite-button", { alignment: "icon-end-space-between", appearance: this.appearance, class: "max-width-350", iconEnd: "chevron-down", iconStart: "layers", kind: "neutral", width: "full" }, h("div", null, this.selectedLayerName))), h("calcite-dropdown-group", { "selection-mode": "single" }, this._getDropdownItems())));
123
+ return (h("calcite-dropdown", { class: "layer-picker-dropdown" }, h("calcite-action", { slot: "trigger", text: "" }, h("calcite-button", { alignment: "icon-end-space-between", appearance: this.appearance, class: "max-width-350", iconEnd: "chevron-down", iconStart: "layers", kind: "neutral", width: "full" }, h("div", null, this.selectedName))), h("calcite-dropdown-group", { "selection-mode": "single" }, this._getMapLayerOptions())));
116
124
  }
117
125
  /**
118
- * Hydrate a dropdown component with items to display the layer names
126
+ * Get the appropriate type of dom nodes for each valid layer or table
119
127
  *
120
- * @returns Array of Dropdown items with layer names
128
+ * @returns Array of dom nodes with the names of the layers and optionally of the tables
121
129
  */
122
- _getDropdownItems() {
123
- return this.layerIds.reduce((prev, cur) => {
124
- if (state.managedLayers.indexOf(state.layerNameHash[cur]) < 0 && (this.enabledLayerIds.length > 0 ? this.enabledLayerIds.indexOf(cur) > -1 : true)) {
125
- prev.push((h("calcite-dropdown-item", { onClick: () => void this._setSelectedLayer(cur) }, state.layerNameHash[cur])));
130
+ _getMapLayerOptions() {
131
+ return this.ids.reduce((prev, cur) => {
132
+ if (this._validLayer(cur)) {
133
+ prev.push(this._getItem(cur, "layer"));
134
+ }
135
+ else if (this._validTable(cur)) {
136
+ prev.push(this._getItem(cur, "table"));
126
137
  }
127
138
  return prev;
128
139
  }, []);
129
140
  }
130
141
  /**
131
- * Store the layer name based on the user selection
132
- */
133
- _setSelectedLayer(id) {
134
- this.selectedLayerName = state.layerNameHash[id];
135
- this.selectedLayerIds = [id];
136
- this.layerSelectionChange.emit(this.selectedLayerIds);
137
- }
138
- /**
139
- * Hydrate a select component with the ids of the layers in the map
142
+ * Get the appropriate type of dom node for the current layer or table id
140
143
  *
141
- * @returns Array of select options for the ids of the layers
144
+ * @returns A dom node with the name of the layer or table
142
145
  */
143
- _addSelectMapLayersOptions() {
144
- return this.layerIds.reduce((prev, cur) => {
145
- if (state.managedLayers.indexOf(state.layerNameHash[cur]) < 0 && (this.enabledLayerIds.length > 0 ? this.enabledLayerIds.indexOf(cur) > -1 : true)) {
146
- prev.push((h("calcite-option", { label: state.layerNameHash[cur], value: cur })));
147
- }
148
- return prev;
149
- }, []);
146
+ _getItem(id, itemType) {
147
+ const name = itemType === "layer" ? state.layerNameHash[id] : state.tableNameHash[id];
148
+ return this.type === "combobox" ? (h("calcite-combobox-item", { textLabel: name, value: id })) :
149
+ this.type === "select" ? (h("calcite-option", { label: name, value: id })) :
150
+ (h("calcite-dropdown-item", { onClick: () => void this._setSelectedLayer(id, itemType) }, name));
150
151
  }
151
152
  /**
152
- * Hydrate a combobox component with the ids of the layers in the map
153
- *
154
- * @returns Array of ComboBox items for the ids of the layers
153
+ * Store the layer name based on the user selection
155
154
  */
156
- _addComboboxMapLayersOptions() {
157
- return this.layerIds.reduce((prev, cur) => {
158
- if (state.managedLayers.indexOf(state.layerNameHash[cur]) < 0 && (this.enabledLayerIds.length > 0 ? this.enabledLayerIds.indexOf(cur) > -1 : true)) {
159
- prev.push((h("calcite-combobox-item", { textLabel: state.layerNameHash[cur], value: cur })));
160
- }
161
- return prev;
162
- }, []);
155
+ _setSelectedLayer(id, type) {
156
+ this.selectedName = type === "layer" ? state.layerNameHash[id] : state.tableNameHash[id];
157
+ this.selectedIds = [id];
158
+ this.layerSelectionChange.emit(this.selectedIds);
163
159
  }
164
160
  /**
165
161
  * Fetch the ids of the layers from the map
@@ -169,8 +165,12 @@ export class MapLayerPicker {
169
165
  async _setLayers() {
170
166
  if (this.mapView) {
171
167
  const mapLayerIds = await getMapLayerIds(this.mapView);
172
- this.layerIds = mapLayerIds.filter(n => { var _a; return ((_a = this.enabledLayerIds) === null || _a === void 0 ? void 0 : _a.length) > 0 ? this.enabledLayerIds.indexOf(n) > -1 : true; });
173
- await this._initLayerHashState();
168
+ const mapTableIds = this.showTables ? await getMapTableIds(this.mapView) : [];
169
+ this.ids = [
170
+ ...mapLayerIds.filter(n => { var _a; return ((_a = this.enabledLayerIds) === null || _a === void 0 ? void 0 : _a.length) > 0 ? this.enabledLayerIds.indexOf(n) > -1 : true; }),
171
+ ...mapTableIds.filter(n => { var _a; return ((_a = this.enabledTableIds) === null || _a === void 0 ? void 0 : _a.length) > 0 ? this.enabledTableIds.indexOf(n) > -1 : true; }),
172
+ ];
173
+ await this._initStateHash();
174
174
  }
175
175
  }
176
176
  /**
@@ -178,11 +178,33 @@ export class MapLayerPicker {
178
178
  *
179
179
  * @returns Promise when the operation has completed
180
180
  */
181
- async _initLayerHashState() {
181
+ async _initStateHash() {
182
182
  if (this.mapView) {
183
183
  state.layerNameHash = await getMapLayerHash(this.mapView);
184
+ state.tableNameHash = this.showTables ? await getMapTableHash(this.mapView) : {};
184
185
  }
185
186
  }
187
+ /**
188
+ * Evaluate if the id exists in the current hash and verify if it should be excluded
189
+ *
190
+ * @returns boolean when true the layer will be used in the current layer picker type
191
+ */
192
+ _validLayer(id) {
193
+ const name = state.layerNameHash[id];
194
+ return name && state.managedLayers.indexOf(name) < 0 && (this.enabledLayerIds.length > 0 ?
195
+ this.enabledLayerIds.indexOf(id) > -1 : name);
196
+ }
197
+ /**
198
+ * Evaluate if the id exists in the current hash and verify if it should be excluded
199
+ *
200
+ * @returns boolean when true the table will be used in the current layer picker type
201
+ */
202
+ _validTable(id) {
203
+ const name = state.tableNameHash[id];
204
+ const validName = name && this.showTables;
205
+ return validName ? state.managedTables.indexOf(name) < 0 &&
206
+ (this.enabledTableIds.length > 0 ? this.enabledTableIds.indexOf(id) > -1 : true) : validName;
207
+ }
186
208
  /**
187
209
  * Fetch the ids of the layers from the map
188
210
  *
@@ -191,8 +213,8 @@ export class MapLayerPicker {
191
213
  _layerSelectionChange() {
192
214
  const ids = Array.isArray(this._layerElement.value) ? this._layerElement.value : [this._layerElement.value];
193
215
  if (JSON.stringify(ids) !== JSON.stringify([""])) {
194
- this.selectedLayerIds = ids;
195
- this.layerSelectionChange.emit(this.selectedLayerIds);
216
+ this.selectedIds = ids;
217
+ this.layerSelectionChange.emit(this.selectedIds);
196
218
  }
197
219
  }
198
220
  static get is() { return "map-layer-picker"; }
@@ -242,6 +264,22 @@ export class MapLayerPicker {
242
264
  },
243
265
  "defaultValue": "[]"
244
266
  },
267
+ "enabledTableIds": {
268
+ "type": "unknown",
269
+ "mutable": false,
270
+ "complexType": {
271
+ "original": "string[]",
272
+ "resolved": "string[]",
273
+ "references": {}
274
+ },
275
+ "required": false,
276
+ "optional": false,
277
+ "docs": {
278
+ "tags": [],
279
+ "text": "string[]: Optional list of enabled table ids\r\n If empty all tables will be available"
280
+ },
281
+ "defaultValue": "[]"
282
+ },
245
283
  "mapView": {
246
284
  "type": "unknown",
247
285
  "mutable": false,
@@ -279,7 +317,7 @@ export class MapLayerPicker {
279
317
  "reflect": false,
280
318
  "defaultValue": "\"\""
281
319
  },
282
- "selectedLayerIds": {
320
+ "selectedIds": {
283
321
  "type": "unknown",
284
322
  "mutable": true,
285
323
  "complexType": {
@@ -313,6 +351,24 @@ export class MapLayerPicker {
313
351
  "reflect": false,
314
352
  "defaultValue": "\"m\""
315
353
  },
354
+ "showTables": {
355
+ "type": "boolean",
356
+ "mutable": false,
357
+ "complexType": {
358
+ "original": "boolean",
359
+ "resolved": "boolean",
360
+ "references": {}
361
+ },
362
+ "required": false,
363
+ "optional": false,
364
+ "docs": {
365
+ "tags": [],
366
+ "text": "boolean: when true standalone tables will also be available"
367
+ },
368
+ "attribute": "show-tables",
369
+ "reflect": false,
370
+ "defaultValue": "true"
371
+ },
316
372
  "type": {
317
373
  "type": "string",
318
374
  "mutable": false,
@@ -335,8 +391,8 @@ export class MapLayerPicker {
335
391
  }
336
392
  static get states() {
337
393
  return {
338
- "layerIds": {},
339
- "selectedLayerName": {}
394
+ "ids": {},
395
+ "selectedName": {}
340
396
  };
341
397
  }
342
398
  static get events() {
@@ -20,7 +20,7 @@
20
20
  */
21
21
  import { Host, h } from "@stencil/core";
22
22
  import { loadModules } from "../../utils/loadModules";
23
- import { highlightFeatures, getMapLayerView, goToSelection } from "../../utils/mapViewUtils";
23
+ import { highlightFeatures, getFeatureLayerView, goToSelection } from "../../utils/mapViewUtils";
24
24
  import { getQueryGeoms, queryFeaturesByGeometry, queryObjectIds } from "../../utils/queryUtils";
25
25
  import { EWorkflowType } from "../../utils/interfaces";
26
26
  import state from "../../utils/publicNotificationStore";
@@ -199,7 +199,7 @@ export class MapSelectTools {
199
199
  */
200
200
  _getUseLayerFeaturesOptions() {
201
201
  const useLayerFeaturesClass = this._useLayerFeaturesEnabled ? "div-visible" : "div-not-visible";
202
- return (h("div", null, h("div", { class: "padding-top-1 display-flex" }, h("calcite-label", { class: "label-margin-0 w-100", layout: "inline-space-between" }, h("div", { class: "tooltip-container" }, this._translations.useLayerFeatures, h("calcite-icon", { class: "padding-start-1-2 icon", icon: "question", id: "use-layer-features-icon", scale: "s" }))), h("calcite-popover", { closable: true, label: "", referenceElement: "use-layer-features-icon" }, h("span", { class: "tooltip-message" }, this._translations.useLayerFeaturesTooltip)), h("calcite-switch", { checked: this._useLayerFeaturesEnabled, onCalciteSwitchChange: () => { this._useLayerFeaturesEnabledChanged(); } })), h("div", { class: useLayerFeaturesClass + " padding-top-1" }, h("map-layer-picker", { enabledLayerIds: this.selectionLayerIds, mapView: this.mapView, onLayerSelectionChange: (evt) => { void this._layerSelectionChange(evt); }, selectedLayerIds: this.layerViews.map(l => l.layer.id) }))));
202
+ return (h("div", null, h("div", { class: "padding-top-1 display-flex" }, h("calcite-label", { class: "label-margin-0 w-100", layout: "inline-space-between" }, h("div", { class: "tooltip-container" }, this._translations.useLayerFeatures, h("calcite-icon", { class: "padding-start-1-2 icon", icon: "question", id: "use-layer-features-icon", scale: "s" }))), h("calcite-popover", { closable: true, label: "", referenceElement: "use-layer-features-icon" }, h("span", { class: "tooltip-message" }, this._translations.useLayerFeaturesTooltip)), h("calcite-switch", { checked: this._useLayerFeaturesEnabled, onCalciteSwitchChange: () => { this._useLayerFeaturesEnabledChanged(); } })), h("div", { class: useLayerFeaturesClass + " padding-top-1" }, h("map-layer-picker", { enabledLayerIds: this.selectionLayerIds, mapView: this.mapView, onLayerSelectionChange: (evt) => { void this._layerSelectionChange(evt); }, selectedIds: this.layerViews.map(l => l.layer.id) }))));
203
203
  }
204
204
  /**
205
205
  * Renders the number of selected features
@@ -228,7 +228,7 @@ export class MapSelectTools {
228
228
  * @protected
229
229
  */
230
230
  _getMapLayerPicker() {
231
- return (h("div", { class: "display-flex padding-sides-1 padding-bottom-1" }, h("calcite-label", { class: "font-bold width-full label-margin-0" }, this._translations.inputLayer, h("map-layer-picker", { enabledLayerIds: this.enabledLayerIds, mapView: this.mapView, onLayerSelectionChange: (evt) => this._inputLayerSelectionChange(evt), selectedLayerIds: this.selectLayerView ? [this.selectLayerView.layer.id] : this.selectionSet ? [this.selectionSet.layerView.layer.id] : [] }))));
231
+ return (h("div", { class: "display-flex padding-sides-1 padding-bottom-1" }, h("calcite-label", { class: "font-bold width-full label-margin-0" }, this._translations.inputLayer, h("map-layer-picker", { enabledLayerIds: this.enabledLayerIds, mapView: this.mapView, onLayerSelectionChange: (evt) => this._inputLayerSelectionChange(evt), selectedIds: this.selectLayerView ? [this.selectLayerView.layer.id] : this.selectionSet ? [this.selectionSet.layerView.layer.id] : [] }))));
232
232
  }
233
233
  //--------------------------------------------------------------------------
234
234
  //
@@ -661,7 +661,7 @@ export class MapSelectTools {
661
661
  async _layerSelectionChange(evt) {
662
662
  if (Array.isArray(evt.detail) && evt.detail.length > 0) {
663
663
  const layerPromises = evt.detail.map(id => {
664
- return getMapLayerView(this.mapView, id);
664
+ return getFeatureLayerView(this.mapView, id);
665
665
  });
666
666
  return Promise.all(layerPromises).then((layerViews) => {
667
667
  this.layerViews = layerViews;
@@ -689,7 +689,7 @@ export class MapSelectTools {
689
689
  var _a;
690
690
  const id = ((_a = evt === null || evt === void 0 ? void 0 : evt.detail) === null || _a === void 0 ? void 0 : _a.length) > 0 ? evt.detail[0] : "";
691
691
  if (!this.selectLayerView || id !== this.selectLayerView.layer.id) {
692
- this.selectLayerView = await getMapLayerView(this.mapView, id);
692
+ this.selectLayerView = await getFeatureLayerView(this.mapView, id);
693
693
  this._updateLabel();
694
694
  this._bufferGeometry ? await this._selectFeatures([this._bufferGeometry]) :
695
695
  await this._highlightWithOIDsOrGeoms();
@@ -20,7 +20,7 @@
20
20
  */
21
21
  import { Host, h } from "@stencil/core";
22
22
  import { EDrawMode, ESelectionMode, EWorkflowType } from "../../utils/interfaces";
23
- import { getIdSets, getMapLayerView, highlightAllFeatures } from "../../utils/mapViewUtils";
23
+ import { getIdSets, getFeatureLayerView, highlightAllFeatures } from "../../utils/mapViewUtils";
24
24
  import { queryFeaturesByGeometry } from "../../utils/queryUtils";
25
25
  import state from "../../utils/publicNotificationStore";
26
26
  import { getLocaleComponentStrings } from "../../utils/locale";
@@ -77,7 +77,7 @@ export class RefineSelection {
77
77
  render() {
78
78
  var _a, _b;
79
79
  const layerPickerClass = this._enabledLayerIds.length > 1 ? "display-block" : "display-none";
80
- return (h(Host, null, h("div", { class: layerPickerClass + " padding-top-sides-1" }, h("div", { class: "display-flex" }, h("calcite-label", { class: "font-bold width-full label-margin-0" }, h("div", { class: "display-flex" }, this._translations.inputLayer, h("calcite-icon", { class: "padding-start-1-2 icon", icon: "question", id: "refine-input-layer", scale: "s" })), h("map-layer-picker", { enabledLayerIds: this._enabledLayerIds, mapView: this.mapView, onLayerSelectionChange: (evt) => { void this._layerSelectionChange(evt); }, ref: (el) => { this._layerPicker = el; }, selectedLayerIds: [this._refineLayer.layer.id] })), h("calcite-popover", { closable: true, label: "", referenceElement: "refine-input-layer" }, h("span", { class: "tooltip-message" }, this._translations.inputLayerTip)))), h("div", { class: "padding-1" }, h("div", { class: "padding-bottom-1" }, h("calcite-segmented-control", { class: "w-100" }, h("calcite-segmented-control-item", { checked: this._addEnabled, class: "w-50 word-wrap-anywhere", onClick: () => this._setSelectionMode(ESelectionMode.ADD), value: ESelectionMode.ADD }, h("span", { class: "font-weight-500" }, this._translations.add)), h("calcite-segmented-control-item", { checked: !this._addEnabled, class: "w-50 word-wrap-anywhere", onClick: () => this._setSelectionMode(ESelectionMode.REMOVE), value: ESelectionMode.REMOVE }, h("span", { class: "font-weight-500" }, this._translations.remove)))), h("div", null, h("map-draw-tools", { active: true, drawMode: EDrawMode.REFINE, mapView: this.mapView, onDrawRedo: () => this._redo(), onDrawUndo: () => this._undo(), onSketchGraphicsChange: (evt) => this._sketchGraphicsChanged(evt), pointSymbol: this.sketchPointSymbol, polygonSymbol: this.sketchPolygonSymbol, polylineSymbol: this.sketchLineSymbol, redoEnabled: ((_a = this._refineSelectionSet) === null || _a === void 0 ? void 0 : _a.redoStack.length) > 0, ref: (el) => { this._drawTools = el; }, undoEnabled: ((_b = this._refineSelectionSet) === null || _b === void 0 ? void 0 : _b.undoStack.length) > 0 })), h("br", null), (h("calcite-list", { class: "list-border" }, this._getRefineSelectionSetList())))));
80
+ return (h(Host, null, h("div", { class: layerPickerClass + " padding-top-sides-1" }, h("div", { class: "display-flex" }, h("calcite-label", { class: "font-bold width-full label-margin-0" }, h("div", { class: "display-flex" }, this._translations.inputLayer, h("calcite-icon", { class: "padding-start-1-2 icon", icon: "question", id: "refine-input-layer", scale: "s" })), h("map-layer-picker", { enabledLayerIds: this._enabledLayerIds, mapView: this.mapView, onLayerSelectionChange: (evt) => { void this._layerSelectionChange(evt); }, ref: (el) => { this._layerPicker = el; }, selectedIds: [this._refineLayer.layer.id] })), h("calcite-popover", { closable: true, label: "", referenceElement: "refine-input-layer" }, h("span", { class: "tooltip-message" }, this._translations.inputLayerTip)))), h("div", { class: "padding-1" }, h("div", { class: "padding-bottom-1" }, h("calcite-segmented-control", { class: "w-100" }, h("calcite-segmented-control-item", { checked: this._addEnabled, class: "w-50 word-wrap-anywhere", onClick: () => this._setSelectionMode(ESelectionMode.ADD), value: ESelectionMode.ADD }, h("span", { class: "font-weight-500" }, this._translations.add)), h("calcite-segmented-control-item", { checked: !this._addEnabled, class: "w-50 word-wrap-anywhere", onClick: () => this._setSelectionMode(ESelectionMode.REMOVE), value: ESelectionMode.REMOVE }, h("span", { class: "font-weight-500" }, this._translations.remove)))), h("div", null, h("map-draw-tools", { active: true, drawMode: EDrawMode.REFINE, mapView: this.mapView, onDrawRedo: () => this._redo(), onDrawUndo: () => this._undo(), onSketchGraphicsChange: (evt) => this._sketchGraphicsChanged(evt), pointSymbol: this.sketchPointSymbol, polygonSymbol: this.sketchPolygonSymbol, polylineSymbol: this.sketchLineSymbol, redoEnabled: ((_a = this._refineSelectionSet) === null || _a === void 0 ? void 0 : _a.redoStack.length) > 0, ref: (el) => { this._drawTools = el; }, undoEnabled: ((_b = this._refineSelectionSet) === null || _b === void 0 ? void 0 : _b.undoStack.length) > 0 })), h("br", null), (h("calcite-list", { class: "list-border" }, this._getRefineSelectionSetList())))));
81
81
  }
82
82
  //--------------------------------------------------------------------------
83
83
  //
@@ -171,7 +171,7 @@ export class RefineSelection {
171
171
  refineInfo[id] = {
172
172
  addIds: [],
173
173
  removeIds: [],
174
- layerView: await getMapLayerView(this.mapView, id)
174
+ layerView: await getFeatureLayerView(this.mapView, id)
175
175
  };
176
176
  if (selectionSet) {
177
177
  selectionSet.refineInfos = Object.assign(Object.assign({}, selectionSet.refineInfos), refineInfo);
@@ -41,23 +41,38 @@
41
41
  <script>
42
42
  function addValues() {
43
43
  const demo = document.getElementById("demo");
44
+
45
+ let custom = [];
46
+ var vars = window.location.search.substring(1).split('&');
47
+ vars.forEach((v) => {
48
+ let paramName = v.split('=');
49
+ if (paramName[0] === "id") {
50
+ custom = [{
51
+ id:paramName[1],
52
+ name: "Map from URL"
53
+ }];
54
+ }
55
+ });
56
+
44
57
  demo.mapInfos = [
45
- {
46
- id: "863e4f6f2a7840db896cc1b1606d552d",
47
- name: "IA map"
48
- }, {
49
- id: "3715f4899bea4b2a948347c5c2357e58",
50
- name: "PN Map"
51
- }, {
52
- id: "4fa949c89bb04ecb8a9f5ad119448333",
53
- name: "CS TIL DATA"
54
- }, {
55
- id: "f5b01c17a09941eaad63e7b4e6c7d880",
56
- name: "Attachments Map"
57
- }, {
58
- id: "ce3dec81bf714d3bb71da9691ab686d1",
59
- name: "Popup Configured Map"
60
- }];
58
+ ...custom,
59
+ ...[{
60
+ id: "863e4f6f2a7840db896cc1b1606d552d",
61
+ name: "IA map"
62
+ }, {
63
+ id: "3715f4899bea4b2a948347c5c2357e58",
64
+ name: "PN Map"
65
+ }, {
66
+ id: "4fa949c89bb04ecb8a9f5ad119448333",
67
+ name: "CS TIL DATA"
68
+ }, {
69
+ id: "f5b01c17a09941eaad63e7b4e6c7d880",
70
+ name: "Attachments Map"
71
+ }, {
72
+ id: "ce3dec81bf714d3bb71da9691ab686d1",
73
+ name: "Popup Configured Map"
74
+ }]
75
+ ];
61
76
  }
62
77
  </script>
63
78
  </head>
@@ -479,8 +479,9 @@ function _getSelectionSetNames(exportInfos, id = /.+/) {
479
479
  export async function consolidateLabels(exportInfos, formatUsingLayerPopup = true, includeHeaderNames = false, isCSVExport = false) {
480
480
  const labelRequests = [];
481
481
  Object.keys(exportInfos).forEach(k => {
482
+ var _a;
482
483
  const labelInfo = exportInfos[k];
483
- labelRequests.push(_prepareLabels(labelInfo.layerView.layer, labelInfo.ids, formatUsingLayerPopup, includeHeaderNames));
484
+ labelRequests.push(_prepareLabels(((_a = labelInfo.layerView) === null || _a === void 0 ? void 0 : _a.layer) || labelInfo.layer, labelInfo.ids, formatUsingLayerPopup, includeHeaderNames));
484
485
  if (isCSVExport) {
485
486
  // add the layer id as a temp value separator that we can use to split values for CSV export
486
487
  labelRequests.push(Promise.resolve([[k]]));
@@ -669,7 +669,7 @@ export async function consolidateLabels(
669
669
 
670
670
  Object.keys(exportInfos).forEach(k => {
671
671
  const labelInfo: IExportInfo = exportInfos[k];
672
- labelRequests.push(_prepareLabels(labelInfo.layerView.layer, labelInfo.ids, formatUsingLayerPopup, includeHeaderNames));
672
+ labelRequests.push(_prepareLabels(labelInfo.layerView?.layer || labelInfo.layer, labelInfo.ids, formatUsingLayerPopup, includeHeaderNames));
673
673
  if (isCSVExport) {
674
674
  // add the layer id as a temp value separator that we can use to split values for CSV export
675
675
  labelRequests.push(Promise.resolve([[k]]));