@esri/solutions-components 0.6.13 → 0.6.14

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 (109) 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 +5 -0
  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 +19 -0
  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 +4 -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/utils/interfaces.ts +12 -1
  32. package/dist/collection/utils/mapViewUtils.js +38 -52
  33. package/dist/collection/utils/mapViewUtils.ts +41 -57
  34. package/dist/collection/utils/publicNotificationStore.js +0 -4
  35. package/dist/collection/utils/publicNotificationStore.ts +0 -4
  36. package/dist/components/basemap-gallery2.js +2 -0
  37. package/dist/components/card-manager2.js +2 -2
  38. package/dist/components/crowdsource-manager.js +27 -6
  39. package/dist/components/edit-card2.js +5 -0
  40. package/dist/components/layer-table2.js +136 -78
  41. package/dist/components/map-card2.js +17 -5
  42. package/dist/components/map-layer-picker2.js +114 -52
  43. package/dist/components/map-picker2.js +4 -4
  44. package/dist/components/map-select-tools2.js +55 -43
  45. package/dist/components/map-tools2.js +20 -1
  46. package/dist/components/mapViewUtils.js +39 -53
  47. package/dist/components/public-notification.js +1 -1
  48. package/dist/components/publicNotificationStore.js +0 -4
  49. package/dist/components/refine-selection2.js +61 -49
  50. package/dist/esm/basemap-gallery_6.entry.js +20 -5
  51. package/dist/esm/buffer-tools_4.entry.js +1 -1
  52. package/dist/esm/calcite-chip_3.entry.js +797 -0
  53. package/dist/esm/calcite-combobox_6.entry.js +76 -28
  54. package/dist/esm/card-manager_3.entry.js +112 -54
  55. package/dist/esm/crowdsource-manager.entry.js +18 -5
  56. package/dist/esm/{downloadUtils-67c7a6c8.js → downloadUtils-ac67a786.js} +2 -2
  57. package/dist/esm/edit-card_2.entry.js +5 -0
  58. package/dist/esm/{index.es-59a67d3d.js → index.es-f553598f.js} +2 -2
  59. package/dist/esm/loader.js +1 -1
  60. package/dist/esm/map-select-tools_3.entry.js +3 -3
  61. package/dist/esm/{mapViewUtils-00a04d52.js → mapViewUtils-8141d8c1.js} +39 -53
  62. package/dist/esm/public-notification.entry.js +3 -3
  63. package/dist/esm/{publicNotificationStore-90a6a274.js → publicNotificationStore-dcf39a55.js} +0 -4
  64. package/dist/esm/solutions-components.js +1 -1
  65. package/dist/solutions-components/p-08b52ed8.entry.js +6 -0
  66. package/dist/solutions-components/p-16362eb4.js +36 -0
  67. package/dist/solutions-components/{p-3691a072.js → p-1ab414e0.js} +2 -2
  68. package/dist/solutions-components/{p-73ab9d9a.entry.js → p-3d7aa1b2.entry.js} +1 -1
  69. package/dist/solutions-components/{p-9a8c51bf.entry.js → p-57cf6784.entry.js} +1 -1
  70. package/dist/solutions-components/p-64b22d57.entry.js +6 -0
  71. package/dist/solutions-components/p-654dd5df.entry.js +6 -0
  72. package/dist/solutions-components/{p-f9166fcb.js → p-a26711e8.js} +1 -1
  73. package/dist/solutions-components/p-b1c8c6d7.entry.js +6 -0
  74. package/dist/solutions-components/{p-b892e595.entry.js → p-b9d29f30.entry.js} +1 -1
  75. package/dist/solutions-components/{p-1b41181b.js → p-c8d0ce92.js} +2 -2
  76. package/dist/solutions-components/{p-0219a1a9.entry.js → p-e76949eb.entry.js} +6 -6
  77. package/dist/solutions-components/p-ee7e2f00.entry.js +34 -0
  78. package/dist/solutions-components/solutions-components.esm.js +1 -1
  79. package/dist/solutions-components/utils/interfaces.ts +12 -1
  80. package/dist/solutions-components/utils/mapViewUtils.ts +41 -57
  81. package/dist/solutions-components/utils/publicNotificationStore.ts +0 -4
  82. package/dist/types/components/basemap-gallery/basemap-gallery.d.ts +5 -0
  83. package/dist/types/components/crowdsource-manager/crowdsource-manager.d.ts +37 -1
  84. package/dist/types/components/edit-card/edit-card.d.ts +8 -0
  85. package/dist/types/components/layer-table/layer-table.d.ts +40 -0
  86. package/dist/types/components/map-card/map-card.d.ts +25 -1
  87. package/dist/types/components/map-layer-picker/map-layer-picker.d.ts +50 -3
  88. package/dist/types/components/map-picker/map-picker.d.ts +2 -2
  89. package/dist/types/components/map-tools/map-tools.d.ts +21 -1
  90. package/dist/types/components.d.ts +182 -2
  91. package/dist/types/preact.d.ts +6 -3
  92. package/dist/types/utils/interfaces.d.ts +10 -1
  93. package/dist/types/utils/mapViewUtils.d.ts +8 -24
  94. package/dist/types/utils/publicNotificationStore.d.ts +0 -2
  95. package/package.json +1 -1
  96. package/dist/cjs/calcite-chip.cjs.entry.js +0 -259
  97. package/dist/cjs/calcite-notice.cjs.entry.js +0 -139
  98. package/dist/cjs/calcite-tooltip.cjs.entry.js +0 -439
  99. package/dist/esm/calcite-chip.entry.js +0 -255
  100. package/dist/esm/calcite-notice.entry.js +0 -135
  101. package/dist/esm/calcite-tooltip.entry.js +0 -435
  102. package/dist/solutions-components/p-2cff8331.entry.js +0 -6
  103. package/dist/solutions-components/p-3a6c8fc3.entry.js +0 -6
  104. package/dist/solutions-components/p-3b1fc7a2.entry.js +0 -6
  105. package/dist/solutions-components/p-767002cd.js +0 -36
  106. package/dist/solutions-components/p-a776b7e6.entry.js +0 -6
  107. package/dist/solutions-components/p-be36d5ed.entry.js +0 -22
  108. package/dist/solutions-components/p-c644edf5.entry.js +0 -11
  109. package/dist/solutions-components/p-cfd88a2f.entry.js +0 -11
@@ -24,78 +24,64 @@ import { EWorkflowType } from "./interfaces";
24
24
  * Gets the layer names from the current map
25
25
  *
26
26
  * @param mapView the map view to fetch the layer names from
27
+ * @param onlyShowUpdatableLayers when true only layers that support editing and updates will be returned
27
28
  *
28
29
  * @returns Promise resolving with an array of layer names
29
30
  *
30
31
  */
31
- export async function getMapLayerHash(mapView) {
32
- let layerHash = {};
32
+ export async function getMapLayerHash(mapView, onlyShowUpdatableLayers) {
33
+ let layerHash;
33
34
  await mapView.when(() => {
34
35
  layerHash = mapView.map.allLayers.toArray().reduce((prev, cur) => {
35
36
  if (cur.type === "feature") {
36
- prev[cur.id] = cur.title;
37
+ prev[cur.id] = {
38
+ name: cur.title,
39
+ supportsUpdate: undefined
40
+ };
37
41
  }
38
42
  return prev;
39
43
  }, {});
40
44
  });
41
- return layerHash;
45
+ return onlyShowUpdatableLayers ? Object.keys(layerHash).reduce(async (prev, cur) => {
46
+ const layer = await getLayerOrTable(mapView, cur);
47
+ await layer.when(() => {
48
+ prev[cur] = {
49
+ name: layerHash[cur].name,
50
+ supportsUpdate: layer.editingEnabled && layer.capabilities.operations.supportsUpdate
51
+ };
52
+ });
53
+ return prev;
54
+ }, {}) : layerHash;
42
55
  }
43
56
  /**
44
57
  * Gets the table names from the current map
45
58
  *
46
59
  * @param mapView the map view to fetch the table names from
60
+ * @param onlyShowUpdatableLayers when true only layers that support editing and updates will be returned
47
61
  *
48
62
  * @returns Promise resolving with an array of table names
49
63
  *
50
64
  */
51
- export async function getMapTableHash(mapView) {
52
- let tableHash = {};
65
+ export async function getMapTableHash(mapView, onlyShowUpdatableTables) {
66
+ let tableHash;
53
67
  await mapView.when(() => {
54
68
  tableHash = mapView.map.allTables.toArray().reduce((prev, cur) => {
55
- prev[cur.id] = cur.title;
69
+ prev[cur.id] = {
70
+ name: cur.title,
71
+ supportsUpdate: undefined
72
+ };
56
73
  return prev;
57
74
  }, {});
58
75
  });
59
- return tableHash;
60
- }
61
- /**
62
- * Gets the layer names from the current map
63
- *
64
- * @param mapView the map view to fetch the layer names from
65
- *
66
- * @returns Promise resolving with an array of layer names
67
- *
68
- */
69
- export async function getMapLayerIds(mapView) {
70
- let layerIds = [];
71
- await mapView.when(() => {
72
- layerIds = mapView.map.allLayers.toArray().reduce((prev, cur) => {
73
- if (cur.type === "feature") {
74
- prev.push(cur.id);
75
- }
76
- return prev;
77
- }, []);
78
- });
79
- return layerIds;
80
- }
81
- /**
82
- * Gets the table names from the current map
83
- *
84
- * @param mapView the map view to fetch the table names from
85
- *
86
- * @returns Promise resolving with an array of table names
87
- *
88
- */
89
- export async function getMapTableIds(mapView) {
90
- // TODO...seems like its the same as the hash...see if I can remove this
91
- let tableIds = [];
92
- await mapView.when(() => {
93
- tableIds = mapView.map.allTables.toArray().reduce((prev, cur) => {
94
- prev.push(cur.id);
95
- return prev;
96
- }, []);
97
- });
98
- return tableIds;
76
+ return onlyShowUpdatableTables ? Object.keys(tableHash).reduce(async (prev, cur) => {
77
+ const item = await getLayerOrTable(mapView, cur);
78
+ await item.load();
79
+ prev[cur] = {
80
+ name: tableHash[cur].name,
81
+ supportsUpdate: item.editingEnabled && item.capabilities.operations.supportsUpdate
82
+ };
83
+ return prev;
84
+ }, {}) : tableHash;
99
85
  }
100
86
  /**
101
87
  * Get a layer view by id
@@ -107,19 +93,19 @@ export async function getMapTableIds(mapView) {
107
93
  *
108
94
  */
109
95
  export async function getFeatureLayerView(mapView, id) {
110
- const layer = await getLayer(mapView, id);
96
+ const layer = await getLayerOrTable(mapView, id);
111
97
  return layer ? await mapView.whenLayerView(layer) : undefined;
112
98
  }
113
99
  /**
114
- * Get a layer by id
100
+ * Get a layer or table by id
115
101
  *
116
102
  * @param mapView the map view to fetch the layer from
117
- * @param id the id if the layer to fetch
103
+ * @param id the id of the layer or table to fetch
118
104
  *
119
- * @returns Promise resolving with the fetched layer
105
+ * @returns Promise resolving with the fetched layer or table
120
106
  *
121
107
  */
122
- export async function getLayer(mapView, id) {
108
+ export async function getLayerOrTable(mapView, id) {
123
109
  let layers = [];
124
110
  await mapView.when(() => {
125
111
  layers = [
@@ -21,89 +21,73 @@ import { EWorkflowType, IMapItemHash, ISelectionSet } from "./interfaces";
21
21
  * Gets the layer names from the current map
22
22
  *
23
23
  * @param mapView the map view to fetch the layer names from
24
+ * @param onlyShowUpdatableLayers when true only layers that support editing and updates will be returned
24
25
  *
25
26
  * @returns Promise resolving with an array of layer names
26
27
  *
27
28
  */
28
29
  export async function getMapLayerHash(
29
- mapView: __esri.MapView
30
+ mapView: __esri.MapView,
31
+ onlyShowUpdatableLayers: boolean
30
32
  ): Promise<IMapItemHash> {
31
- let layerHash = {};
33
+ let layerHash;
32
34
  await mapView.when(() => {
33
35
  layerHash = mapView.map.allLayers.toArray().reduce((prev, cur) => {
34
36
  if (cur.type === "feature") {
35
- prev[cur.id] = cur.title;
37
+ prev[cur.id] = {
38
+ name: cur.title,
39
+ supportsUpdate: undefined
40
+ };
36
41
  }
37
42
  return prev;
38
43
  }, {});
39
44
  });
40
- return layerHash;
45
+
46
+ return onlyShowUpdatableLayers ? Object.keys(layerHash).reduce(async (prev, cur) => {
47
+ const layer = await getLayerOrTable(mapView, cur);
48
+ await layer.when(() => {
49
+ prev[cur] = {
50
+ name: layerHash[cur].name,
51
+ supportsUpdate: layer.editingEnabled && layer.capabilities.operations.supportsUpdate
52
+ };
53
+ });
54
+ return prev;
55
+ }, {}) : layerHash;
41
56
  }
42
57
 
43
58
  /**
44
59
  * Gets the table names from the current map
45
60
  *
46
61
  * @param mapView the map view to fetch the table names from
62
+ * @param onlyShowUpdatableLayers when true only layers that support editing and updates will be returned
47
63
  *
48
64
  * @returns Promise resolving with an array of table names
49
65
  *
50
66
  */
51
67
  export async function getMapTableHash(
52
- mapView: __esri.MapView
68
+ mapView: __esri.MapView,
69
+ onlyShowUpdatableTables: boolean
53
70
  ): Promise<IMapItemHash> {
54
- let tableHash = {};
71
+ let tableHash;
55
72
  await mapView.when(() => {
56
73
  tableHash = mapView.map.allTables.toArray().reduce((prev, cur) => {
57
- prev[cur.id] = cur.title;
74
+ prev[cur.id] = {
75
+ name: cur.title,
76
+ supportsUpdate: undefined
77
+ };
58
78
  return prev;
59
79
  }, {});
60
80
  });
61
- return tableHash;
62
- }
63
-
64
- /**
65
- * Gets the layer names from the current map
66
- *
67
- * @param mapView the map view to fetch the layer names from
68
- *
69
- * @returns Promise resolving with an array of layer names
70
- *
71
- */
72
- export async function getMapLayerIds(
73
- mapView: __esri.MapView
74
- ): Promise<string[]> {
75
- let layerIds = [];
76
- await mapView.when(() => {
77
- layerIds = mapView.map.allLayers.toArray().reduce((prev, cur) => {
78
- if (cur.type === "feature") {
79
- prev.push(cur.id);
80
- }
81
- return prev;
82
- }, []);
83
- });
84
- return layerIds;
85
- }
86
81
 
87
- /**
88
- * Gets the table names from the current map
89
- *
90
- * @param mapView the map view to fetch the table names from
91
- *
92
- * @returns Promise resolving with an array of table names
93
- *
94
- */
95
- export async function getMapTableIds(
96
- mapView: __esri.MapView
97
- ): Promise<string[]> {
98
- // TODO...seems like its the same as the hash...see if I can remove this
99
- let tableIds = [];
100
- await mapView.when(() => {
101
- tableIds = mapView.map.allTables.toArray().reduce((prev, cur) => {
102
- prev.push(cur.id);
103
- return prev;
104
- }, []);
105
- });
106
- return tableIds;
82
+ return onlyShowUpdatableTables ? Object.keys(tableHash).reduce(async (prev, cur) => {
83
+ const item = await getLayerOrTable(mapView, cur);
84
+ await item.load();
85
+ prev[cur] = {
86
+ name: tableHash[cur].name,
87
+ supportsUpdate: item.editingEnabled && item.capabilities.operations.supportsUpdate
88
+ };
89
+ return prev;
90
+ }, {}) : tableHash;
107
91
  }
108
92
 
109
93
  /**
@@ -119,20 +103,20 @@ export async function getFeatureLayerView(
119
103
  mapView: __esri.MapView,
120
104
  id: string
121
105
  ): Promise<__esri.FeatureLayerView> {
122
- const layer = await getLayer(mapView, id);
106
+ const layer = await getLayerOrTable(mapView, id);
123
107
  return layer ? await mapView.whenLayerView(layer) : undefined;
124
108
  }
125
109
 
126
110
  /**
127
- * Get a layer by id
111
+ * Get a layer or table by id
128
112
  *
129
113
  * @param mapView the map view to fetch the layer from
130
- * @param id the id if the layer to fetch
114
+ * @param id the id of the layer or table to fetch
131
115
  *
132
- * @returns Promise resolving with the fetched layer
116
+ * @returns Promise resolving with the fetched layer or table
133
117
  *
134
118
  */
135
- export async function getLayer(
119
+ export async function getLayerOrTable(
136
120
  mapView: __esri.MapView,
137
121
  id: string
138
122
  ): Promise<__esri.FeatureLayer> {
@@ -26,10 +26,6 @@ const { state, onChange } = createStore({
26
26
  managedTables: [],
27
27
  // Handle[]: https://developers.arcgis.com/javascript/latest/api-reference/esri-core-Handles.html#Handle
28
28
  highlightHandles: [],
29
- // IMapItemHash title: id lookup to be used across components
30
- layerNameHash: {},
31
- // IMapItemHash title: id lookup to be used across components
32
- tableNameHash: {},
33
29
  // remove all handles
34
30
  removeHandles: () => {
35
31
  state.highlightHandles.forEach(h => h === null || h === void 0 ? void 0 : h.remove());
@@ -23,10 +23,6 @@ const { state, onChange } = createStore({
23
23
  managedTables: [],
24
24
  // Handle[]: https://developers.arcgis.com/javascript/latest/api-reference/esri-core-Handles.html#Handle
25
25
  highlightHandles: [],
26
- // IMapItemHash title: id lookup to be used across components
27
- layerNameHash: {},
28
- // IMapItemHash title: id lookup to be used across components
29
- tableNameHash: {},
30
26
  // remove all handles
31
27
  removeHandles: () => {
32
28
  state.highlightHandles.forEach(h => h?.remove());
@@ -14,6 +14,7 @@ const BasemapGallery = /*@__PURE__*/ proxyCustomElement(class BasemapGallery ext
14
14
  this.__registerHost();
15
15
  this.__attachShadow();
16
16
  this.mapView = undefined;
17
+ this.basemapConfig = undefined;
17
18
  this.basemapWidget = undefined;
18
19
  }
19
20
  //--------------------------------------------------------------------------
@@ -98,6 +99,7 @@ const BasemapGallery = /*@__PURE__*/ proxyCustomElement(class BasemapGallery ext
98
99
  static get style() { return basemapGalleryCss; }
99
100
  }, [1, "basemap-gallery", {
100
101
  "mapView": [16],
102
+ "basemapConfig": [16],
101
103
  "basemapWidget": [16]
102
104
  }]);
103
105
  function defineCustomElement() {
@@ -6,7 +6,7 @@
6
6
  import { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';
7
7
  import { g as getLocaleComponentStrings } from './locale.js';
8
8
  import { q as queryFeaturesByID } from './queryUtils.js';
9
- import { g as getLayer } from './mapViewUtils.js';
9
+ import { g as getLayerOrTable } from './mapViewUtils.js';
10
10
  import { d as defineCustomElement$a } from './alert.js';
11
11
  import { d as defineCustomElement$9 } from './button.js';
12
12
  import { d as defineCustomElement$8 } from './chip.js';
@@ -62,7 +62,7 @@ const CardManager = /*@__PURE__*/ proxyCustomElement(class CardManager extends H
62
62
  */
63
63
  async layerSelectionChange(evt) {
64
64
  const id = evt.detail[0];
65
- this.layer = await getLayer(this.mapView, id);
65
+ this.layer = await getLayerOrTable(this.mapView, id);
66
66
  }
67
67
  //--------------------------------------------------------------------------
68
68
  //
@@ -62,10 +62,18 @@ const CrowdsourceManager$1 = /*@__PURE__*/ proxyCustomElement(class CrowdsourceM
62
62
  this._shouldSetMapView = false;
63
63
  this.classicGrid = false;
64
64
  this.enableAutoRefresh = true;
65
+ this.enableFullscreen = true;
65
66
  this.enableInlineEdit = false;
67
+ this.enableLegend = true;
68
+ this.enableSearch = true;
69
+ this.enableHome = true;
70
+ this.enableZoom = true;
71
+ this.enableBasemap = true;
72
+ this.basemapConfig = undefined;
66
73
  this.showNewestFirst = true;
67
74
  this.hideMap = false;
68
75
  this.mapInfos = [];
76
+ this.onlyShowUpdatableLayers = true;
69
77
  this.searchConfiguration = undefined;
70
78
  this.zoomAndScrollToSelected = false;
71
79
  this._expandPopup = false;
@@ -100,13 +108,18 @@ const CrowdsourceManager$1 = /*@__PURE__*/ proxyCustomElement(class CrowdsourceM
100
108
  */
101
109
  async mapChanged(evt) {
102
110
  this._mapChange = evt.detail;
111
+ await this._mapChange.mapView.when(() => {
112
+ this._setMapView();
113
+ });
114
+ }
115
+ /**
116
+ * Listen for beforeMapChanged and minimize the popup if it's expanded
117
+ */
118
+ async beforeMapChanged() {
103
119
  if (this._expandPopup) {
104
120
  this._shouldSetMapView = true;
105
121
  this._expandPopup = false;
106
122
  }
107
- else {
108
- this._setMapView();
109
- }
110
123
  }
111
124
  //--------------------------------------------------------------------------
112
125
  //
@@ -265,7 +278,7 @@ const CrowdsourceManager$1 = /*@__PURE__*/ proxyCustomElement(class CrowdsourceM
265
278
  const mapDisplayClass = this.classicGrid && layoutMode === ELayoutMode.GRID ? "display-flex height-full width-1-2" :
266
279
  layoutMode === ELayoutMode.GRID && !hideMap ? "" : "display-none";
267
280
  const mapContainerClass = this.classicGrid && layoutMode === ELayoutMode.GRID ? "width-full" : this._expandPopup ? "height-50-px" : "adjusted-height-50";
268
- return (h("div", { class: `${mapContainerClass} overflow-hidden ${mapDisplayClass}` }, h("map-card", { class: "width-full", mapInfos: this.mapInfos })));
281
+ return (h("div", { class: `${mapContainerClass} overflow-hidden ${mapDisplayClass}` }, h("map-card", { basemapConfig: this.basemapConfig, class: "width-full", enableBasemap: this.enableBasemap, enableFullscreen: this.enableFullscreen, enableLegend: this.enableLegend, enableSearch: this.enableSearch, mapInfos: this.mapInfos })));
269
282
  }
270
283
  /**
271
284
  * Get the expand node for the popup information
@@ -319,7 +332,7 @@ const CrowdsourceManager$1 = /*@__PURE__*/ proxyCustomElement(class CrowdsourceM
319
332
  const toggleSlot = this.classicGrid && layoutMode !== ELayoutMode.VERTICAL ? "footer" :
320
333
  this.classicGrid && layoutMode === ELayoutMode.VERTICAL ? "panel-end" :
321
334
  layoutMode === ELayoutMode.HORIZONTAL ? "header" : "panel-start";
322
- return (h("calcite-shell", { class: tableSizeClass + " border-bottom" }, h("calcite-action-bar", { class: "border", expandDisabled: true, layout: toggleLayout, slot: toggleSlot }, h("calcite-action", { class: "toggle-node", icon: icon, id: id, onClick: () => this._toggleLayout(), text: "" }), h("calcite-tooltip", { label: tooltip, placement: "bottom", "reference-element": id }, h("span", null, tooltip))), h("div", { class: "width-full height-full position-relative" }, h("layer-table", { enableAutoRefresh: this.enableAutoRefresh, enableInlineEdit: this.enableInlineEdit, mapInfo: this._mapInfo, mapView: this === null || this === void 0 ? void 0 : this._mapView, showNewestFirst: this.showNewestFirst, zoomAndScrollToSelected: this.zoomAndScrollToSelected }))));
335
+ return (h("calcite-shell", { class: tableSizeClass + " border-bottom" }, h("calcite-action-bar", { class: "border", expandDisabled: true, layout: toggleLayout, slot: toggleSlot }, h("calcite-action", { class: "toggle-node", icon: icon, id: id, onClick: () => this._toggleLayout(), text: "" }), h("calcite-tooltip", { label: tooltip, placement: "bottom", "reference-element": id }, h("span", null, tooltip))), h("div", { class: "width-full height-full position-relative" }, h("layer-table", { enableAutoRefresh: this.enableAutoRefresh, enableInlineEdit: this.enableInlineEdit, mapInfo: this._mapInfo, mapView: this === null || this === void 0 ? void 0 : this._mapView, onlyShowUpdatableLayers: this.onlyShowUpdatableLayers, showNewestFirst: this.showNewestFirst, zoomAndScrollToSelected: this.zoomAndScrollToSelected }))));
323
336
  }
324
337
  /**
325
338
  * Open/Close the appropriate panel.
@@ -372,10 +385,18 @@ const CrowdsourceManager$1 = /*@__PURE__*/ proxyCustomElement(class CrowdsourceM
372
385
  }, [0, "crowdsource-manager", {
373
386
  "classicGrid": [4, "classic-grid"],
374
387
  "enableAutoRefresh": [4, "enable-auto-refresh"],
388
+ "enableFullscreen": [4, "enable-fullscreen"],
375
389
  "enableInlineEdit": [4, "enable-inline-edit"],
390
+ "enableLegend": [4, "enable-legend"],
391
+ "enableSearch": [4, "enable-search"],
392
+ "enableHome": [4, "enable-home"],
393
+ "enableZoom": [4, "enable-zoom"],
394
+ "enableBasemap": [4, "enable-basemap"],
395
+ "basemapConfig": [16],
376
396
  "showNewestFirst": [4, "show-newest-first"],
377
397
  "hideMap": [4, "hide-map"],
378
398
  "mapInfos": [16],
399
+ "onlyShowUpdatableLayers": [4, "only-show-updatable-layers"],
379
400
  "searchConfiguration": [16],
380
401
  "zoomAndScrollToSelected": [4, "zoom-and-scroll-to-selected"],
381
402
  "_expandPopup": [32],
@@ -383,7 +404,7 @@ const CrowdsourceManager$1 = /*@__PURE__*/ proxyCustomElement(class CrowdsourceM
383
404
  "_layoutMode": [32],
384
405
  "_mapView": [32],
385
406
  "_panelOpen": [32]
386
- }, [[8, "layoutChanged", "layoutChanged"], [8, "mapChanged", "mapChanged"]]]);
407
+ }, [[8, "layoutChanged", "layoutChanged"], [8, "mapChanged", "mapChanged"], [8, "beforeMapChanged", "beforeMapChanged"]]]);
387
408
  function defineCustomElement$1() {
388
409
  if (typeof customElements === "undefined") {
389
410
  return;
@@ -16,6 +16,7 @@ const EditCard = /*@__PURE__*/ proxyCustomElement(class EditCard extends HTMLEle
16
16
  super();
17
17
  this.__registerHost();
18
18
  this.closeEdit = createEvent(this, "closeEdit", 7);
19
+ this.editsComplete = createEvent(this, "editsComplete", 7);
19
20
  /**
20
21
  * boolean: When true the Editor widget should be closed
21
22
  */
@@ -78,6 +79,10 @@ const EditCard = /*@__PURE__*/ proxyCustomElement(class EditCard extends HTMLEle
78
79
  }
79
80
  if (((_a = this.graphics) === null || _a === void 0 ? void 0 : _a.length) > 0 && ((_b = this.graphics[0]) === null || _b === void 0 ? void 0 : _b.layer)) {
80
81
  this._layer = this.graphics[0].layer;
82
+ if (this._layerEditHandle) {
83
+ this._layerEditHandle.remove();
84
+ }
85
+ this._layerEditHandle = this._layer.on("edits", () => this.editsComplete.emit());
81
86
  }
82
87
  }
83
88
  /**