@esri/solutions-components 0.6.13 → 0.6.15

Sign up to get free protection for your applications and to get access to all the features.
Files changed (118) hide show
  1. package/dist/assets/t9n/layer-table/resources.json +1 -1
  2. package/dist/assets/t9n/layer-table/resources_en.json +1 -1
  3. package/dist/assets/t9n/map-layer-picker/resources.json +4 -0
  4. package/dist/assets/t9n/map-layer-picker/resources_en.json +4 -0
  5. package/dist/cjs/basemap-gallery_6.cjs.entry.js +20 -5
  6. package/dist/cjs/buffer-tools_4.cjs.entry.js +1 -1
  7. package/dist/cjs/calcite-chip_3.cjs.entry.js +803 -0
  8. package/dist/cjs/calcite-combobox_6.cjs.entry.js +76 -28
  9. package/dist/cjs/card-manager_3.cjs.entry.js +112 -54
  10. package/dist/cjs/crowdsource-manager.cjs.entry.js +18 -5
  11. package/dist/cjs/{downloadUtils-fb4744e0.js → downloadUtils-34a515ad.js} +2 -2
  12. package/dist/cjs/edit-card_2.cjs.entry.js +29 -18
  13. package/dist/cjs/{index.es-372e33de.js → index.es-0ba11065.js} +2 -2
  14. package/dist/cjs/loader.cjs.js +1 -1
  15. package/dist/cjs/map-select-tools_3.cjs.entry.js +3 -3
  16. package/dist/cjs/{mapViewUtils-a4dd36ec.js → mapViewUtils-a2884698.js} +39 -55
  17. package/dist/cjs/public-notification.cjs.entry.js +3 -3
  18. package/dist/cjs/{publicNotificationStore-b69862af.js → publicNotificationStore-610bd880.js} +0 -4
  19. package/dist/cjs/solutions-components.cjs.js +1 -1
  20. package/dist/collection/components/basemap-gallery/basemap-gallery.js +23 -1
  21. package/dist/collection/components/card-manager/card-manager.js +2 -2
  22. package/dist/collection/components/crowdsource-manager/crowdsource-manager.js +171 -5
  23. package/dist/collection/components/edit-card/edit-card.js +44 -21
  24. package/dist/collection/components/layer-table/layer-table.js +127 -47
  25. package/dist/collection/components/map-card/map-card.js +115 -5
  26. package/dist/collection/components/map-layer-picker/map-layer-picker.css +6 -0
  27. package/dist/collection/components/map-layer-picker/map-layer-picker.js +107 -27
  28. package/dist/collection/components/map-picker/map-picker.css +5 -1
  29. package/dist/collection/components/map-picker/map-picker.js +3 -3
  30. package/dist/collection/components/map-tools/map-tools.js +104 -1
  31. package/dist/collection/demos/crowdsource-manager.html +2 -2
  32. package/dist/collection/demos/new-public-notification.html +3 -3
  33. package/dist/collection/utils/interfaces.ts +12 -1
  34. package/dist/collection/utils/mapViewUtils.js +38 -52
  35. package/dist/collection/utils/mapViewUtils.ts +41 -57
  36. package/dist/collection/utils/publicNotificationStore.js +0 -4
  37. package/dist/collection/utils/publicNotificationStore.ts +0 -4
  38. package/dist/components/basemap-gallery2.js +2 -0
  39. package/dist/components/card-manager2.js +2 -2
  40. package/dist/components/crowdsource-manager.js +27 -6
  41. package/dist/components/edit-card2.js +29 -18
  42. package/dist/components/layer-table2.js +136 -78
  43. package/dist/components/map-card2.js +17 -5
  44. package/dist/components/map-layer-picker2.js +114 -52
  45. package/dist/components/map-picker2.js +4 -4
  46. package/dist/components/map-select-tools2.js +55 -43
  47. package/dist/components/map-tools2.js +20 -1
  48. package/dist/components/mapViewUtils.js +39 -53
  49. package/dist/components/public-notification.js +1 -1
  50. package/dist/components/publicNotificationStore.js +0 -4
  51. package/dist/components/refine-selection2.js +61 -49
  52. package/dist/esm/basemap-gallery_6.entry.js +20 -5
  53. package/dist/esm/buffer-tools_4.entry.js +1 -1
  54. package/dist/esm/calcite-chip_3.entry.js +797 -0
  55. package/dist/esm/calcite-combobox_6.entry.js +76 -28
  56. package/dist/esm/card-manager_3.entry.js +112 -54
  57. package/dist/esm/crowdsource-manager.entry.js +18 -5
  58. package/dist/esm/{downloadUtils-67c7a6c8.js → downloadUtils-ac67a786.js} +2 -2
  59. package/dist/esm/edit-card_2.entry.js +29 -18
  60. package/dist/esm/{index.es-59a67d3d.js → index.es-f553598f.js} +2 -2
  61. package/dist/esm/loader.js +1 -1
  62. package/dist/esm/map-select-tools_3.entry.js +3 -3
  63. package/dist/esm/{mapViewUtils-00a04d52.js → mapViewUtils-8141d8c1.js} +39 -53
  64. package/dist/esm/polyfills/core-js.js +11 -0
  65. package/dist/esm/polyfills/dom.js +79 -0
  66. package/dist/esm/polyfills/es5-html-element.js +1 -0
  67. package/dist/esm/polyfills/index.js +34 -0
  68. package/dist/esm/polyfills/system.js +6 -0
  69. package/dist/esm/public-notification.entry.js +3 -3
  70. package/dist/esm/{publicNotificationStore-90a6a274.js → publicNotificationStore-dcf39a55.js} +0 -4
  71. package/dist/esm/solutions-components.js +1 -1
  72. package/dist/solutions-components/demos/crowdsource-manager.html +2 -2
  73. package/dist/solutions-components/demos/new-public-notification.html +3 -3
  74. package/dist/solutions-components/p-08b52ed8.entry.js +6 -0
  75. package/dist/solutions-components/p-16362eb4.js +36 -0
  76. package/dist/solutions-components/{p-3691a072.js → p-1ab414e0.js} +2 -2
  77. package/dist/solutions-components/{p-73ab9d9a.entry.js → p-3d7aa1b2.entry.js} +1 -1
  78. package/dist/solutions-components/{p-9a8c51bf.entry.js → p-57cf6784.entry.js} +1 -1
  79. package/dist/solutions-components/p-64b22d57.entry.js +6 -0
  80. package/dist/solutions-components/p-654dd5df.entry.js +6 -0
  81. package/dist/solutions-components/{p-0219a1a9.entry.js → p-83a52f9e.entry.js} +6 -6
  82. package/dist/solutions-components/{p-f9166fcb.js → p-a26711e8.js} +1 -1
  83. package/dist/solutions-components/{p-b892e595.entry.js → p-b9d29f30.entry.js} +1 -1
  84. package/dist/solutions-components/{p-1b41181b.js → p-c8d0ce92.js} +2 -2
  85. package/dist/solutions-components/p-ee7e2f00.entry.js +34 -0
  86. package/dist/solutions-components/p-ef6ec812.entry.js +6 -0
  87. package/dist/solutions-components/solutions-components.esm.js +1 -1
  88. package/dist/solutions-components/utils/interfaces.ts +12 -1
  89. package/dist/solutions-components/utils/mapViewUtils.ts +41 -57
  90. package/dist/solutions-components/utils/publicNotificationStore.ts +0 -4
  91. package/dist/types/components/basemap-gallery/basemap-gallery.d.ts +5 -0
  92. package/dist/types/components/crowdsource-manager/crowdsource-manager.d.ts +37 -1
  93. package/dist/types/components/edit-card/edit-card.d.ts +10 -9
  94. package/dist/types/components/layer-table/layer-table.d.ts +40 -0
  95. package/dist/types/components/map-card/map-card.d.ts +25 -1
  96. package/dist/types/components/map-layer-picker/map-layer-picker.d.ts +50 -3
  97. package/dist/types/components/map-picker/map-picker.d.ts +2 -2
  98. package/dist/types/components/map-tools/map-tools.d.ts +21 -1
  99. package/dist/types/components.d.ts +182 -2
  100. package/dist/types/preact.d.ts +6 -3
  101. package/dist/types/utils/interfaces.d.ts +10 -1
  102. package/dist/types/utils/mapViewUtils.d.ts +8 -24
  103. package/dist/types/utils/publicNotificationStore.d.ts +0 -2
  104. package/package.json +1 -1
  105. package/dist/cjs/calcite-chip.cjs.entry.js +0 -259
  106. package/dist/cjs/calcite-notice.cjs.entry.js +0 -139
  107. package/dist/cjs/calcite-tooltip.cjs.entry.js +0 -439
  108. package/dist/esm/calcite-chip.entry.js +0 -255
  109. package/dist/esm/calcite-notice.entry.js +0 -135
  110. package/dist/esm/calcite-tooltip.entry.js +0 -435
  111. package/dist/solutions-components/p-2cff8331.entry.js +0 -6
  112. package/dist/solutions-components/p-3a6c8fc3.entry.js +0 -6
  113. package/dist/solutions-components/p-3b1fc7a2.entry.js +0 -6
  114. package/dist/solutions-components/p-767002cd.js +0 -36
  115. package/dist/solutions-components/p-a776b7e6.entry.js +0 -6
  116. package/dist/solutions-components/p-be36d5ed.entry.js +0 -22
  117. package/dist/solutions-components/p-c644edf5.entry.js +0 -11
  118. package/dist/solutions-components/p-cfd88a2f.entry.js +0 -11
@@ -6,24 +6,25 @@
6
6
  import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';
7
7
  import { l as loadModules } from './loadModules.js';
8
8
  import { g as getLocaleComponentStrings } from './locale.js';
9
- import { a as getMapLayerIds, g as getLayer, b as goToSelection } from './mapViewUtils.js';
9
+ import { a as goToSelection, g as getLayerOrTable } from './mapViewUtils.js';
10
10
  import { b as queryAllIds, q as queryFeaturesByID } from './queryUtils.js';
11
11
  import { d as downloadCSV } from './downloadUtils.js';
12
- import { d as defineCustomElement$n } from './action.js';
13
- import { d as defineCustomElement$m } from './action-bar.js';
14
- import { d as defineCustomElement$l } from './action-group.js';
15
- import { d as defineCustomElement$k } from './action-menu.js';
16
- import { d as defineCustomElement$j } from './alert.js';
17
- import { d as defineCustomElement$i } from './button.js';
18
- import { d as defineCustomElement$h } from './chip.js';
19
- import { d as defineCustomElement$g } from './combobox.js';
20
- import { d as defineCustomElement$f } from './combobox-item.js';
21
- import { d as defineCustomElement$e } from './dropdown.js';
22
- import { d as defineCustomElement$d } from './dropdown-group.js';
23
- import { d as defineCustomElement$c } from './dropdown-item.js';
24
- import { d as defineCustomElement$b } from './icon.js';
25
- import { d as defineCustomElement$a } from './loader.js';
26
- import { d as defineCustomElement$9 } from './modal.js';
12
+ import { d as defineCustomElement$o } from './action.js';
13
+ import { d as defineCustomElement$n } from './action-bar.js';
14
+ import { d as defineCustomElement$m } from './action-group.js';
15
+ import { d as defineCustomElement$l } from './action-menu.js';
16
+ import { d as defineCustomElement$k } from './alert.js';
17
+ import { d as defineCustomElement$j } from './button.js';
18
+ import { d as defineCustomElement$i } from './chip.js';
19
+ import { d as defineCustomElement$h } from './combobox.js';
20
+ import { d as defineCustomElement$g } from './combobox-item.js';
21
+ import { d as defineCustomElement$f } from './dropdown.js';
22
+ import { d as defineCustomElement$e } from './dropdown-group.js';
23
+ import { d as defineCustomElement$d } from './dropdown-item.js';
24
+ import { d as defineCustomElement$c } from './icon.js';
25
+ import { d as defineCustomElement$b } from './loader.js';
26
+ import { d as defineCustomElement$a } from './modal.js';
27
+ import { d as defineCustomElement$9 } from './notice.js';
27
28
  import { d as defineCustomElement$8 } from './option.js';
28
29
  import { d as defineCustomElement$7 } from './panel.js';
29
30
  import { d as defineCustomElement$6 } from './popover.js';
@@ -63,6 +64,7 @@ const LayerTable = /*@__PURE__*/ proxyCustomElement(class LayerTable extends HTM
63
64
  this.enableInlineEdit = undefined;
64
65
  this.mapInfo = undefined;
65
66
  this.mapView = undefined;
67
+ this.onlyShowUpdatableLayers = undefined;
66
68
  this.showNewestFirst = undefined;
67
69
  this.zoomAndScrollToSelected = undefined;
68
70
  this._alertOpen = false;
@@ -83,13 +85,12 @@ const LayerTable = /*@__PURE__*/ proxyCustomElement(class LayerTable extends HTM
83
85
  * watch for changes in map view and get the first layer
84
86
  */
85
87
  async mapViewWatchHandler() {
86
- this._fetchingData = true;
87
- const mapLayerIds = await getMapLayerIds(this.mapView);
88
- this._layer = await getLayer(this.mapView, mapLayerIds[0]);
89
- this.reactiveUtils.on(() => this.mapView, "click", (event) => {
88
+ if (this._mapClickHandle) {
89
+ this._mapClickHandle.remove();
90
+ }
91
+ this._mapClickHandle = this.reactiveUtils.on(() => this.mapView, "click", (event) => {
90
92
  void this._mapClicked(event);
91
93
  });
92
- this._fetchingData = false;
93
94
  }
94
95
  /**
95
96
  * watch for changes in layer view and verify if it has editing enabled
@@ -146,6 +147,22 @@ const LayerTable = /*@__PURE__*/ proxyCustomElement(class LayerTable extends HTM
146
147
  }
147
148
  }
148
149
  }
150
+ /**
151
+ * Refresh the table when edits are completed
152
+ *
153
+ */
154
+ editsComplete() {
155
+ this._refresh();
156
+ }
157
+ /**
158
+ * Refresh the table when edits are completed
159
+ *
160
+ */
161
+ noLayersFound() {
162
+ this._layer = undefined;
163
+ this._allIds = [];
164
+ this._clearSelection();
165
+ }
149
166
  //--------------------------------------------------------------------------
150
167
  //
151
168
  // Functions (lifecycle)
@@ -164,9 +181,6 @@ const LayerTable = /*@__PURE__*/ proxyCustomElement(class LayerTable extends HTM
164
181
  * Renders the component.
165
182
  */
166
183
  render() {
167
- if (!this._layer) {
168
- return null;
169
- }
170
184
  const tableNodeClass = this._fetchingData ? "display-none" : "";
171
185
  const loadingClass = this._fetchingData ? "" : "display-none";
172
186
  const total = this._allIds.length.toString();
@@ -204,9 +218,37 @@ const LayerTable = /*@__PURE__*/ proxyCustomElement(class LayerTable extends HTM
204
218
  */
205
219
  _getTableControlRow(slot) {
206
220
  const featuresSelected = this._selectedIndexes.length > 0;
207
- 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 :
221
+ 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), onlyShowUpdatableLayers: this.onlyShowUpdatableLayers, placeholderIcon: "layers", scale: "l", type: "dropdown" })), this._getAction("zoom-to-object", this._translations.zoom, () => this._zoom(), !featuresSelected), this._getAction("filter", this._translations.filters, () => this._filter(), false), this._deleteEnabled ? this._getDangerAction("trash", this._translations.delete, () => this._delete(), !featuresSelected) : undefined, this._getAction("erase", this._translations.clearSelection, () => this._clearSelection(), !featuresSelected)), h("calcite-dropdown", { disabled: this._layer === undefined }, 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 :
208
222
  this._translations.showSelected), h("calcite-dropdown-item", { iconStart: "compare", 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)))));
209
223
  }
224
+ /**
225
+ * Get an action and tooltip
226
+ *
227
+ * @param icon string the name of the icon to display, will also be used as the id
228
+ * @param label string the text to display and label the action
229
+ * @param func any the function to execute
230
+ * @param disabled boolean when true the user will not be able to interact with the action
231
+ *
232
+ * @returns VNode The node representing the DOM element that will contain the action
233
+ */
234
+ _getAction(icon, label, func, disabled) {
235
+ const _disabled = this._layer === undefined ? true : disabled;
236
+ return (h("div", { class: "display-flex" }, h("calcite-action", { appearance: "solid", disabled: _disabled, icon: icon, id: icon, label: label, onClick: func, text: label, textEnabled: true }), h("calcite-tooltip", { label: "", placement: "bottom", "reference-element": icon }, h("span", null, label))));
237
+ }
238
+ /**
239
+ * Get an action with danger color icon and text
240
+ *
241
+ * @param icon string the name of the icon to display, will also be used as the id
242
+ * @param label string the text to display and label the action
243
+ * @param func any the function to execute
244
+ * @param disabled boolean when true the user will not be able to interact with the action
245
+ *
246
+ * @returns VNode The node representing the DOM element that will contain the action
247
+ */
248
+ _getDangerAction(icon, label, func, disabled) {
249
+ const _disabled = this._layer === undefined ? true : disabled;
250
+ return (h("div", { class: "display-flex" }, h("calcite-action", { appearance: "solid", disabled: _disabled, id: icon, onClick: func, text: "" }, h("calcite-button", { appearance: "transparent", iconStart: icon, kind: "danger" }, label)), h("calcite-tooltip", { label: "", placement: "bottom", "reference-element": icon }, h("span", null, label))));
251
+ }
210
252
  /**
211
253
  * Initialize the FeatureTable
212
254
  *
@@ -216,7 +258,7 @@ const LayerTable = /*@__PURE__*/ proxyCustomElement(class LayerTable extends HTM
216
258
  */
217
259
  async _getTable(node, columnTemplates) {
218
260
  if (this._layer) {
219
- await this._layer.when(async () => {
261
+ await this._layer.when(() => {
220
262
  this._table = new this.FeatureTable({
221
263
  autoRefreshEnabled: this.enableAutoRefresh,
222
264
  layer: this._layer,
@@ -233,25 +275,25 @@ const LayerTable = /*@__PURE__*/ proxyCustomElement(class LayerTable extends HTM
233
275
  },
234
276
  container: node
235
277
  });
236
- this._checkEditEnabled();
237
- await this._table.when(async () => {
238
- this._table.highlightIds.on("change", () => {
239
- this._selectedIndexes = this._table.highlightIds.toArray();
240
- if (this._showOnlySelected) {
241
- if (this._selectedIndexes.length > 0) {
242
- this._table.filterBySelection();
243
- }
244
- else {
245
- this._toggleShowSelected();
246
- }
278
+ });
279
+ this._checkEditEnabled();
280
+ await this._table.when(() => {
281
+ this._table.highlightIds.on("change", () => {
282
+ this._selectedIndexes = this._table.highlightIds.toArray();
283
+ if (this._showOnlySelected) {
284
+ if (this._selectedIndexes.length > 0) {
285
+ this._table.filterBySelection();
247
286
  }
248
- this.featureSelectionChange.emit(this._selectedIndexes);
249
- });
250
- this.reactiveUtils.watch(() => this._table.activeSortOrders, (sortOrders) => {
251
- var _a, _b, _c, _d;
252
- this._sortActive = (sortOrders.length > 0 && ((_a = sortOrders[0]) === null || _a === void 0 ? void 0 : _a.direction) === "asc" || ((_b = sortOrders[0]) === null || _b === void 0 ? void 0 : _b.direction) === "desc") ||
253
- ((_c = sortOrders[0]) === null || _c === void 0 ? void 0 : _c.direction) === null && ((_d = sortOrders[0]) === null || _d === void 0 ? void 0 : _d.fieldName) === this._layer.objectIdField;
254
- });
287
+ else {
288
+ this._toggleShowSelected();
289
+ }
290
+ }
291
+ this.featureSelectionChange.emit(this._selectedIndexes);
292
+ });
293
+ this.reactiveUtils.watch(() => this._table.activeSortOrders, (sortOrders) => {
294
+ var _a, _b, _c, _d;
295
+ this._sortActive = this._layer ? (sortOrders.length > 0 && ((_a = sortOrders[0]) === null || _a === void 0 ? void 0 : _a.direction) === "asc" || ((_b = sortOrders[0]) === null || _b === void 0 ? void 0 : _b.direction) === "desc") ||
296
+ ((_c = sortOrders[0]) === null || _c === void 0 ? void 0 : _c.direction) === null && ((_d = sortOrders[0]) === null || _d === void 0 ? void 0 : _d.fieldName) === this._layer.objectIdField : false;
255
297
  });
256
298
  });
257
299
  }
@@ -262,20 +304,30 @@ const LayerTable = /*@__PURE__*/ proxyCustomElement(class LayerTable extends HTM
262
304
  * @returns void
263
305
  */
264
306
  async _resetTable() {
265
- if (this._layer && this._table) {
307
+ if (this._table) {
266
308
  this._clearSelection();
267
309
  this._allIds = [];
268
310
  this.featureSelectionChange.emit(this._selectedIndexes);
269
- const columnTemplates = this._getColumnTemplates(this._layer.id);
270
- this._table.layer = this._layer;
271
- this._table.tableTemplate.columnTemplates = columnTemplates;
272
- this._checkEditEnabled();
273
- this._table.view = this.mapView;
274
- this._table.editingEnabled = this._editEnabled;
275
- this._table.clearSelectionFilter();
276
- this._showOnlySelected = false;
277
- this._sortActive = false;
278
- await this._sortTable();
311
+ if (this._layer) {
312
+ await this._layer.when(() => {
313
+ const columnTemplates = this._getColumnTemplates(this._layer.id);
314
+ this._table.layer = this._layer;
315
+ this._table.tableTemplate.columnTemplates = columnTemplates;
316
+ this._table.view = this.mapView;
317
+ this._checkEditEnabled();
318
+ this._table.editingEnabled = this._editEnabled && this.enableInlineEdit;
319
+ });
320
+ await this._table.when(() => {
321
+ this._table.clearSelectionFilter();
322
+ });
323
+ this._showOnlySelected = false;
324
+ this._sortActive = false;
325
+ await this._sortTable();
326
+ }
327
+ else {
328
+ this._table.view = this.mapView;
329
+ this._table.layer = this._layer;
330
+ }
279
331
  }
280
332
  }
281
333
  /**
@@ -296,11 +348,10 @@ const LayerTable = /*@__PURE__*/ proxyCustomElement(class LayerTable extends HTM
296
348
  if (this._table && this._layer && !this._sortActive) {
297
349
  if (!this._tableSorting && this.showNewestFirst) {
298
350
  this._tableSorting = true;
299
- await this._table.when(async () => {
300
- await this._layer.when(async () => {
301
- this._table.sortColumn(this._layer.objectIdField, "desc");
302
- this._tableSorting = false;
303
- });
351
+ await this._table.when();
352
+ await this._layer.when(() => {
353
+ this._table.sortColumn(this._layer.objectIdField, "desc");
354
+ this._tableSorting = false;
304
355
  });
305
356
  }
306
357
  }
@@ -498,11 +549,12 @@ const LayerTable = /*@__PURE__*/ proxyCustomElement(class LayerTable extends HTM
498
549
  * @returns a promise that will resolve when the operation is complete
499
550
  */
500
551
  async _layerSelectionChanged(evt) {
552
+ var _a;
501
553
  const id = evt.detail[0];
502
- if (id !== this._layer.id || this._allIds.length === 0) {
554
+ if (id !== ((_a = this._layer) === null || _a === void 0 ? void 0 : _a.id) || this._allIds.length === 0) {
503
555
  this._fetchingData = true;
504
556
  const columnTemplates = this._getColumnTemplates(id);
505
- this._layer = await getLayer(this.mapView, id);
557
+ this._layer = await getLayerOrTable(this.mapView, id);
506
558
  this._allIds = await queryAllIds(this._layer);
507
559
  if (!this._table) {
508
560
  await this._getTable(this._tableNode, columnTemplates);
@@ -561,6 +613,7 @@ const LayerTable = /*@__PURE__*/ proxyCustomElement(class LayerTable extends HTM
561
613
  "enableInlineEdit": [4, "enable-inline-edit"],
562
614
  "mapInfo": [16],
563
615
  "mapView": [16],
616
+ "onlyShowUpdatableLayers": [4, "only-show-updatable-layers"],
564
617
  "showNewestFirst": [4, "show-newest-first"],
565
618
  "zoomAndScrollToSelected": [4, "zoom-and-scroll-to-selected"],
566
619
  "_alertOpen": [32],
@@ -572,12 +625,12 @@ const LayerTable = /*@__PURE__*/ proxyCustomElement(class LayerTable extends HTM
572
625
  "_sortActive": [32],
573
626
  "_translations": [32],
574
627
  "getSelectedGraphics": [64]
575
- }, [[8, "selectionChanged", "selectionChanged"]]]);
628
+ }, [[8, "selectionChanged", "selectionChanged"], [8, "editsComplete", "editsComplete"], [8, "noLayersFound", "noLayersFound"]]]);
576
629
  function defineCustomElement() {
577
630
  if (typeof customElements === "undefined") {
578
631
  return;
579
632
  }
580
- const components = ["layer-table", "calcite-action", "calcite-action-bar", "calcite-action-group", "calcite-action-menu", "calcite-alert", "calcite-button", "calcite-chip", "calcite-combobox", "calcite-combobox-item", "calcite-dropdown", "calcite-dropdown-group", "calcite-dropdown-item", "calcite-icon", "calcite-loader", "calcite-modal", "calcite-option", "calcite-panel", "calcite-popover", "calcite-scrim", "calcite-select", "calcite-shell", "calcite-tooltip", "map-layer-picker"];
633
+ const components = ["layer-table", "calcite-action", "calcite-action-bar", "calcite-action-group", "calcite-action-menu", "calcite-alert", "calcite-button", "calcite-chip", "calcite-combobox", "calcite-combobox-item", "calcite-dropdown", "calcite-dropdown-group", "calcite-dropdown-item", "calcite-icon", "calcite-loader", "calcite-modal", "calcite-notice", "calcite-option", "calcite-panel", "calcite-popover", "calcite-scrim", "calcite-select", "calcite-shell", "calcite-tooltip", "map-layer-picker"];
581
634
  components.forEach(tagName => { switch (tagName) {
582
635
  case "layer-table":
583
636
  if (!customElements.get(tagName)) {
@@ -586,75 +639,80 @@ function defineCustomElement() {
586
639
  break;
587
640
  case "calcite-action":
588
641
  if (!customElements.get(tagName)) {
589
- defineCustomElement$n();
642
+ defineCustomElement$o();
590
643
  }
591
644
  break;
592
645
  case "calcite-action-bar":
593
646
  if (!customElements.get(tagName)) {
594
- defineCustomElement$m();
647
+ defineCustomElement$n();
595
648
  }
596
649
  break;
597
650
  case "calcite-action-group":
598
651
  if (!customElements.get(tagName)) {
599
- defineCustomElement$l();
652
+ defineCustomElement$m();
600
653
  }
601
654
  break;
602
655
  case "calcite-action-menu":
603
656
  if (!customElements.get(tagName)) {
604
- defineCustomElement$k();
657
+ defineCustomElement$l();
605
658
  }
606
659
  break;
607
660
  case "calcite-alert":
608
661
  if (!customElements.get(tagName)) {
609
- defineCustomElement$j();
662
+ defineCustomElement$k();
610
663
  }
611
664
  break;
612
665
  case "calcite-button":
613
666
  if (!customElements.get(tagName)) {
614
- defineCustomElement$i();
667
+ defineCustomElement$j();
615
668
  }
616
669
  break;
617
670
  case "calcite-chip":
618
671
  if (!customElements.get(tagName)) {
619
- defineCustomElement$h();
672
+ defineCustomElement$i();
620
673
  }
621
674
  break;
622
675
  case "calcite-combobox":
623
676
  if (!customElements.get(tagName)) {
624
- defineCustomElement$g();
677
+ defineCustomElement$h();
625
678
  }
626
679
  break;
627
680
  case "calcite-combobox-item":
628
681
  if (!customElements.get(tagName)) {
629
- defineCustomElement$f();
682
+ defineCustomElement$g();
630
683
  }
631
684
  break;
632
685
  case "calcite-dropdown":
633
686
  if (!customElements.get(tagName)) {
634
- defineCustomElement$e();
687
+ defineCustomElement$f();
635
688
  }
636
689
  break;
637
690
  case "calcite-dropdown-group":
638
691
  if (!customElements.get(tagName)) {
639
- defineCustomElement$d();
692
+ defineCustomElement$e();
640
693
  }
641
694
  break;
642
695
  case "calcite-dropdown-item":
643
696
  if (!customElements.get(tagName)) {
644
- defineCustomElement$c();
697
+ defineCustomElement$d();
645
698
  }
646
699
  break;
647
700
  case "calcite-icon":
648
701
  if (!customElements.get(tagName)) {
649
- defineCustomElement$b();
702
+ defineCustomElement$c();
650
703
  }
651
704
  break;
652
705
  case "calcite-loader":
653
706
  if (!customElements.get(tagName)) {
654
- defineCustomElement$a();
707
+ defineCustomElement$b();
655
708
  }
656
709
  break;
657
710
  case "calcite-modal":
711
+ if (!customElements.get(tagName)) {
712
+ defineCustomElement$a();
713
+ }
714
+ break;
715
+ case "calcite-notice":
658
716
  if (!customElements.get(tagName)) {
659
717
  defineCustomElement$9();
660
718
  }
@@ -36,10 +36,16 @@ const MapCard = /*@__PURE__*/ proxyCustomElement(class MapCard extends HTMLEleme
36
36
  super();
37
37
  this.__registerHost();
38
38
  this.mapChanged = createEvent(this, "mapChanged", 7);
39
+ this.beforeMapChanged = createEvent(this, "beforeMapChanged", 7);
39
40
  /**
40
41
  * string: the id of map currently displayed
41
42
  */
42
43
  this._loadedId = "";
44
+ this.enableLegend = undefined;
45
+ this.enableFullscreen = undefined;
46
+ this.enableSearch = undefined;
47
+ this.enableBasemap = undefined;
48
+ this.basemapConfig = undefined;
43
49
  this.mapInfos = [];
44
50
  this.mapView = undefined;
45
51
  this._searchConfiguration = undefined;
@@ -66,7 +72,7 @@ const MapCard = /*@__PURE__*/ proxyCustomElement(class MapCard extends HTMLEleme
66
72
  * Renders the component.
67
73
  */
68
74
  render() {
69
- return (h(Host, null, h("map-picker", { mapInfos: this.mapInfos }), h("div", { class: "map-height", ref: (el) => (this._mapDiv = el) }), h("map-tools", { class: "box-shadow", mapView: this.mapView, ref: (el) => this._mapTools = el, searchConfiguration: this._searchConfiguration })));
75
+ return (h(Host, null, h("map-picker", { mapInfos: this.mapInfos }), h("div", { class: "map-height", ref: (el) => (this._mapDiv = el) }), h("map-tools", { basemapConfig: this.basemapConfig, class: "box-shadow", enableBasemap: this.enableBasemap, enableFullscreen: this.enableFullscreen, enableLegend: this.enableLegend, enableSearch: this.enableSearch, mapView: this.mapView, ref: (el) => this._mapTools = el, searchConfiguration: this._searchConfiguration })));
70
76
  }
71
77
  //--------------------------------------------------------------------------
72
78
  //
@@ -116,22 +122,28 @@ const MapCard = /*@__PURE__*/ proxyCustomElement(class MapCard extends HTMLEleme
116
122
  });
117
123
  this._loadedId = id;
118
124
  this._searchConfiguration = this._webMapInfo.searchConfiguration;
119
- this.mapChanged.emit({
120
- id: id,
121
- mapView: this.mapView
122
- });
125
+ this.beforeMapChanged.emit();
123
126
  await this.mapView.when(() => {
124
127
  const home = new this.Home({
125
128
  view: this.mapView
126
129
  });
127
130
  this.mapView.ui.add(home, { position: "top-left", index: 3 });
128
131
  this.mapView.ui.add(this._mapTools, { position: "top-right", index: 0 });
132
+ this.mapChanged.emit({
133
+ id: id,
134
+ mapView: this.mapView
135
+ });
129
136
  });
130
137
  }
131
138
  }
132
139
  get el() { return this; }
133
140
  static get style() { return mapCardCss; }
134
141
  }, [0, "map-card", {
142
+ "enableLegend": [4, "enable-legend"],
143
+ "enableFullscreen": [4, "enable-fullscreen"],
144
+ "enableSearch": [4, "enable-search"],
145
+ "enableBasemap": [4, "enable-basemap"],
146
+ "basemapConfig": [16],
135
147
  "mapInfos": [16],
136
148
  "mapView": [16],
137
149
  "_searchConfiguration": [32],