@esri/solutions-components 0.8.30 → 0.8.32

Sign up to get free protection for your applications and to get access to all the features.
Files changed (52) hide show
  1. package/dist/cjs/calcite-alert_4.cjs.entry.js +1 -1
  2. package/dist/cjs/calcite-flow_6.cjs.entry.js +58 -34
  3. package/dist/cjs/card-manager_3.cjs.entry.js +17 -4
  4. package/dist/cjs/crowdsource-manager.cjs.entry.js +1 -1
  5. package/dist/cjs/crowdsource-reporter.cjs.entry.js +2 -2
  6. package/dist/cjs/feature-list.cjs.entry.js +1 -1
  7. package/dist/cjs/loader.cjs.js +1 -1
  8. package/dist/cjs/{popupUtils-e3fa775b.js → popupUtils-9ca69f8c.js} +1 -1
  9. package/dist/cjs/solutions-components.cjs.js +1 -1
  10. package/dist/collection/components/create-feature/create-feature.js +13 -8
  11. package/dist/collection/components/create-related-feature/create-related-feature.css +4 -0
  12. package/dist/collection/components/create-related-feature/create-related-feature.js +52 -26
  13. package/dist/collection/components/crowdsource-manager/crowdsource-manager.js +1 -1
  14. package/dist/collection/components/crowdsource-reporter/crowdsource-reporter.css +4 -0
  15. package/dist/collection/components/crowdsource-reporter/crowdsource-reporter.js +1 -1
  16. package/dist/collection/components/layer-table/layer-table.js +36 -4
  17. package/dist/collection/demos/crowdsource-manager.html +1 -1
  18. package/dist/collection/utils/popupUtils.js +1 -1
  19. package/dist/collection/utils/popupUtils.ts +1 -1
  20. package/dist/components/create-feature2.js +13 -8
  21. package/dist/components/create-related-feature2.js +57 -30
  22. package/dist/components/crowdsource-manager.js +1 -1
  23. package/dist/components/crowdsource-reporter.js +2 -2
  24. package/dist/components/layer-table2.js +19 -4
  25. package/dist/components/popupUtils.js +1 -1
  26. package/dist/esm/calcite-alert_4.entry.js +1 -1
  27. package/dist/esm/calcite-flow_6.entry.js +58 -34
  28. package/dist/esm/card-manager_3.entry.js +17 -4
  29. package/dist/esm/crowdsource-manager.entry.js +1 -1
  30. package/dist/esm/crowdsource-reporter.entry.js +2 -2
  31. package/dist/esm/feature-list.entry.js +1 -1
  32. package/dist/esm/loader.js +1 -1
  33. package/dist/esm/{popupUtils-17193415.js → popupUtils-8efd3cde.js} +1 -1
  34. package/dist/esm/solutions-components.js +1 -1
  35. package/dist/solutions-components/demos/crowdsource-manager.html +1 -1
  36. package/dist/solutions-components/{p-61bf98bc.entry.js → p-1b096a8b.entry.js} +1 -1
  37. package/dist/solutions-components/p-2455bcb0.js +21 -0
  38. package/dist/solutions-components/{p-bb90a138.entry.js → p-3365a6de.entry.js} +2 -2
  39. package/dist/solutions-components/p-4ae34862.entry.js +17 -0
  40. package/dist/solutions-components/p-5862de8d.entry.js +6 -0
  41. package/dist/solutions-components/{p-16fb8296.entry.js → p-628874a6.entry.js} +1 -1
  42. package/dist/solutions-components/{p-2f7bfd8d.entry.js → p-90c3bc54.entry.js} +1 -1
  43. package/dist/solutions-components/solutions-components.esm.js +1 -1
  44. package/dist/solutions-components/utils/popupUtils.ts +1 -1
  45. package/dist/types/components/create-feature/create-feature.d.ts +1 -1
  46. package/dist/types/components/create-related-feature/create-related-feature.d.ts +19 -1
  47. package/dist/types/components/layer-table/layer-table.d.ts +8 -0
  48. package/dist/types/components.d.ts +8 -0
  49. package/package.json +1 -1
  50. package/dist/solutions-components/p-1bdf0ba0.entry.js +0 -6
  51. package/dist/solutions-components/p-2e23ac2c.js +0 -21
  52. package/dist/solutions-components/p-c21a6940.entry.js +0 -17
@@ -32,7 +32,7 @@ export class CreateFeature {
32
32
  this.customizeSubmit = false;
33
33
  this.searchConfiguration = undefined;
34
34
  this._editorLoading = false;
35
- this.showSearchWidget = undefined;
35
+ this._showSearchWidget = undefined;
36
36
  }
37
37
  //--------------------------------------------------------------------------
38
38
  //
@@ -105,10 +105,10 @@ export class CreateFeature {
105
105
  * Renders the component.
106
106
  */
107
107
  render() {
108
- const showSearchWidget = this.showSearchWidget ? '' : 'display-none';
108
+ const showSearchWidget = this._showSearchWidget ? '' : 'display-none';
109
109
  const loaderClass = this._editorLoading ? "" : "display-none";
110
110
  const featureFormClass = this._editorLoading ? "display-none" : "";
111
- return (h(Fragment, { key: '2e790defdd5592fed729853888ee06143c95c84d' }, h("calcite-loader", { key: 'a0f1de0064ea80305d4aaf83f78939c0236c955a', class: loaderClass, label: "", scale: "s" }), h("div", { key: '1af391d6d7fd0dffa2e8e4b43905f8081a5f9820', class: featureFormClass, id: "feature-form" }), h("div", { key: '88d12115c3c2e0d34a5d6fd8895fb60cec6e9b5d', class: `search-widget ${showSearchWidget} ${featureFormClass}`, id: "search-widget-ref" })));
111
+ return (h(Fragment, { key: 'a4ccd565a52a4cde4e76439629425f19bd4c222e' }, h("calcite-loader", { key: '30e8a3753985a734dd7cba461f26691b51f49ab9', class: loaderClass, label: "", scale: "s" }), h("div", { key: '0845f1fa85a21b578fd18200b43d4a77c34e6808', class: featureFormClass, id: "feature-form" }), h("div", { key: 'af74b6337f5a0dcfdbd552145c88eae5282a3307', class: `search-widget ${showSearchWidget} ${featureFormClass}`, id: "search-widget-ref" })));
112
112
  }
113
113
  //--------------------------------------------------------------------------
114
114
  //
@@ -198,7 +198,7 @@ export class CreateFeature {
198
198
  const formHandle = this.reactiveUtils.watch(() => this._editor.viewModel.state, (state) => {
199
199
  if (state === 'creating-features') {
200
200
  this._editorLoading = true;
201
- this.showSearchWidget = true;
201
+ this._showSearchWidget = true;
202
202
  }
203
203
  });
204
204
  this._editor.viewModel.addHandles(formHandle);
@@ -222,11 +222,12 @@ export class CreateFeature {
222
222
  //on sketch complete emit the event
223
223
  this._editor.viewModel.sketchViewModel.on("create", (evt) => {
224
224
  if (evt.state === "complete") {
225
- this.showSearchWidget = false;
225
+ this._showSearchWidget = false;
226
226
  this.progressStatus.emit(1);
227
227
  this.drawComplete.emit();
228
228
  }
229
229
  });
230
+ //hides the header and footer elements in editor widget
230
231
  this.hideEditorsElements().then(() => {
231
232
  resolve({});
232
233
  }, e => reject(e));
@@ -237,8 +238,12 @@ export class CreateFeature {
237
238
  if (items.length === 1) {
238
239
  this._editor.viewModel.featureTemplatesViewModel.select(items[0]);
239
240
  }
240
- //hides the header and footer elements in editor widget
241
- void this.hideEditorsElements();
241
+ const resolvePromise = items.length > 1;
242
+ this.hideEditorsElements().then(() => {
243
+ if (resolvePromise) {
244
+ resolve({});
245
+ }
246
+ }, e => resolvePromise && reject(e));
242
247
  }
243
248
  });
244
249
  }
@@ -486,7 +491,7 @@ export class CreateFeature {
486
491
  static get states() {
487
492
  return {
488
493
  "_editorLoading": {},
489
- "showSearchWidget": {}
494
+ "_showSearchWidget": {}
490
495
  };
491
496
  }
492
497
  static get events() {
@@ -5,4 +5,8 @@
5
5
  /* Override to hide Editor settings panel collapsible */
6
6
  .esri-editor__panel-toolbar {
7
7
  display: none !important;
8
+ }
9
+
10
+ .display-none {
11
+ display: none !important;
8
12
  }
@@ -18,7 +18,7 @@
18
18
  * See the License for the specific language governing permissions and
19
19
  * limitations under the License.
20
20
  */
21
- import { Host, h } from "@stencil/core";
21
+ import { h } from "@stencil/core";
22
22
  import { loadModules } from "../../utils/loadModules";
23
23
  export class CreateRelatedFeature {
24
24
  constructor() {
@@ -30,6 +30,7 @@ export class CreateRelatedFeature {
30
30
  this.table = undefined;
31
31
  this.selectedFeature = undefined;
32
32
  this.customizeSubmit = false;
33
+ this._editorLoading = false;
33
34
  }
34
35
  //--------------------------------------------------------------------------
35
36
  //
@@ -44,6 +45,18 @@ export class CreateRelatedFeature {
44
45
  await this.init();
45
46
  });
46
47
  }
48
+ /**
49
+ * When _editorLoading is true the container node will be hidden while starting the create workflow
50
+ */
51
+ async _editorLoadingWatchHandler(v) {
52
+ var _a, _b;
53
+ if (v) {
54
+ (_a = this._container) === null || _a === void 0 ? void 0 : _a.classList.add("display-none");
55
+ await this.startCreate();
56
+ (_b = this._container) === null || _b === void 0 ? void 0 : _b.classList.remove("display-none");
57
+ this._editorLoading = false;
58
+ }
59
+ }
47
60
  //--------------------------------------------------------------------------
48
61
  //
49
62
  // Methods (public)
@@ -100,7 +113,8 @@ export class CreateRelatedFeature {
100
113
  this.reactiveUtils = reactiveUtils;
101
114
  }
102
115
  render() {
103
- return (h(Host, { key: 'c8516898db79b35b7fba909810afdc56b0602ebd' }));
116
+ const loaderClass = this._editorLoading ? "" : "display-none";
117
+ return (h("calcite-loader", { key: 'a8fd1e83a4a9614779be19a11e6028b3a402cbd2', class: loaderClass, label: "", scale: "s" }));
104
118
  }
105
119
  /**
106
120
  * StencilJS: Called once just after the component is fully loaded and the first render() occurs.
@@ -113,29 +127,24 @@ export class CreateRelatedFeature {
113
127
  * @protected
114
128
  */
115
129
  async createEditorWidget() {
130
+ var _a;
116
131
  if (this._editor) {
117
132
  this._editor.destroy();
118
133
  }
119
- const container = document.createElement("div");
134
+ this._container = document.createElement("div");
135
+ (_a = this._container) === null || _a === void 0 ? void 0 : _a.classList.add("display-none");
120
136
  this._editor = new this.Editor({
121
137
  view: this.mapView,
122
138
  visibleElements: {
123
139
  snappingControls: false
124
140
  },
125
- container
141
+ container: this._container
126
142
  });
127
- this.el.appendChild(container);
128
- //Add handle to watch featureFormViewModel ready state and hide the editor elements
129
- const hideElementHandle = this.reactiveUtils.watch(() => { var _a; return (_a = this._editor.viewModel.featureFormViewModel) === null || _a === void 0 ? void 0 : _a.state; }, (state) => {
130
- if (state === 'ready') {
131
- this.hideEditorsElements();
132
- }
133
- });
134
- this._editor.viewModel.addHandles(hideElementHandle);
143
+ this.el.appendChild(this._container);
135
144
  //Add handle to watch featureTemplatesViewModel ready state and then start the creation
136
145
  const handle = this.reactiveUtils.watch(() => this._editor.viewModel.featureTemplatesViewModel.state, (state) => {
137
146
  if (state === 'ready') {
138
- void this.startCreate();
147
+ this._editorLoading = true;
139
148
  }
140
149
  });
141
150
  this._editor.viewModel.addHandles(handle);
@@ -176,6 +185,8 @@ export class CreateRelatedFeature {
176
185
  template,
177
186
  };
178
187
  await this._editor.startCreateFeaturesWorkflowAtFeatureCreation(creationInfo);
188
+ //hides the header and footer elements in editor widget
189
+ await this.hideEditorsElements();
179
190
  // Emit an event to show submit cancel buttons
180
191
  this.isActionPending.emit(false);
181
192
  this._editor.viewModel.featureFormViewModel.on('submit', this.submitted.bind(this));
@@ -184,22 +195,21 @@ export class CreateRelatedFeature {
184
195
  * Hides the elements of editor widget
185
196
  * @protected
186
197
  */
187
- hideEditorsElements() {
198
+ async hideEditorsElements() {
199
+ var _a, _b;
188
200
  if (!this.customizeSubmit) {
189
201
  return;
190
202
  }
191
- setTimeout(() => {
192
- var _a;
193
- //hides the header and footer on the featureForm
194
- (_a = this.el.querySelector('.esri-editor').querySelectorAll('calcite-flow-item')) === null || _a === void 0 ? void 0 : _a.forEach((flowItem) => {
195
- var _a, _b, _c, _d, _e;
196
- const article = (_c = (_b = (_a = flowItem.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('calcite-panel')) === null || _b === void 0 ? void 0 : _b.shadowRoot) === null || _c === void 0 ? void 0 : _c.querySelector('article');
197
- //hide the header
198
- (_d = article === null || article === void 0 ? void 0 : article.querySelector('header')) === null || _d === void 0 ? void 0 : _d.setAttribute('style', 'display: none');
199
- //hide the footer
200
- (_e = article === null || article === void 0 ? void 0 : article.querySelector('footer')) === null || _e === void 0 ? void 0 : _e.setAttribute('style', 'display: none');
201
- });
202
- }, 700);
203
+ await this.timeout(700);
204
+ //hides the header and footer on the featureForm
205
+ (_b = (_a = this.el.querySelector('.esri-editor')) === null || _a === void 0 ? void 0 : _a.querySelectorAll('calcite-flow-item')) === null || _b === void 0 ? void 0 : _b.forEach((flowItem) => {
206
+ var _a, _b, _c, _d, _e;
207
+ const article = (_c = (_b = (_a = flowItem.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('calcite-panel')) === null || _b === void 0 ? void 0 : _b.shadowRoot) === null || _c === void 0 ? void 0 : _c.querySelector('article');
208
+ //hide the header
209
+ (_d = article === null || article === void 0 ? void 0 : article.querySelector('header')) === null || _d === void 0 ? void 0 : _d.setAttribute('style', 'display: none');
210
+ //hide the footer
211
+ (_e = article === null || article === void 0 ? void 0 : article.querySelector('footer')) === null || _e === void 0 ? void 0 : _e.setAttribute('style', 'display: none');
212
+ });
203
213
  }
204
214
  /**
205
215
  * Makes attributes for related feature
@@ -255,6 +265,14 @@ export class CreateRelatedFeature {
255
265
  this.success.emit();
256
266
  }
257
267
  }
268
+ /**
269
+ * call setTimeout in Promise wrapper
270
+ * @param delay The time, in milliseconds that the timer should wait before the promise is resolved
271
+ * @protected
272
+ */
273
+ timeout(delay) {
274
+ return new Promise(resolve => setTimeout(resolve, delay));
275
+ }
258
276
  static get is() { return "create-related-feature"; }
259
277
  static get originalStyleUrls() {
260
278
  return {
@@ -348,6 +366,11 @@ export class CreateRelatedFeature {
348
366
  }
349
367
  };
350
368
  }
369
+ static get states() {
370
+ return {
371
+ "_editorLoading": {}
372
+ };
373
+ }
351
374
  static get events() {
352
375
  return [{
353
376
  "method": "success",
@@ -444,6 +467,9 @@ export class CreateRelatedFeature {
444
467
  return [{
445
468
  "propName": "mapView",
446
469
  "methodName": "mapViewWatchHandler"
470
+ }, {
471
+ "propName": "_editorLoading",
472
+ "methodName": "_editorLoadingWatchHandler"
447
473
  }];
448
474
  }
449
475
  }
@@ -431,7 +431,7 @@ export class CrowdsourceManager {
431
431
  ((_a = this.defaultGlobalId) === null || _a === void 0 ? void 0 : _a.indexOf(",")) > -1 ? this.defaultGlobalId.split(",") : [this.defaultGlobalId];
432
432
  const defaultOid = !this.defaultOid ? undefined :
433
433
  ((_b = this.defaultOid) === null || _b === void 0 ? void 0 : _b.indexOf(",")) > -1 ? this.defaultOid.split(",").map(o => parseInt(o, 10)) : [parseInt(this.defaultOid, 10)];
434
- return (h("calcite-shell", { class: `${tableSizeClass} ${tableClass} border-bottom` }, !this._isMobile ? (h("calcite-action-bar", { class: "border-sides", 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)))) : undefined, h("div", { class: `width-full height-full position-relative` }, h("layer-table", { defaultGlobalId: hasMapAndLayer ? globalId : undefined, defaultLayerId: hasMapAndLayer ? this.defaultLayer : "", defaultOid: hasMapAndLayer && !globalId ? defaultOid : undefined, enableAutoRefresh: this.enableAutoRefresh, enableCSV: this.enableCSV, enableColumnReorder: this.enableColumnReorder, enableInlineEdit: this.enableInlineEdit, enableShare: this.enableShare, isMobile: this._isMobile, mapInfo: this._mapInfo, mapView: this === null || this === void 0 ? void 0 : this._mapView, onlyShowUpdatableLayers: this.onlyShowUpdatableLayers, ref: (el) => this._layerTable = el, shareIncludeEmbed: this.shareIncludeEmbed, shareIncludeSocial: this.shareIncludeSocial, showNewestFirst: this.showNewestFirst, zoomAndScrollToSelected: this.zoomAndScrollToSelected, zoomToScale: this.zoomToScale }))));
434
+ return (h("calcite-shell", { class: `${tableSizeClass} ${tableClass} border-bottom` }, !this._isMobile ? (h("calcite-action-bar", { class: "border-sides", 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)))) : undefined, h("div", { class: `width-full height-full position-relative` }, h("layer-table", { defaultGlobalId: hasMapAndLayer ? globalId : undefined, defaultLayerId: hasMapAndLayer ? this.defaultLayer : "", defaultOid: hasMapAndLayer && !globalId ? defaultOid : undefined, enableAutoRefresh: this.enableAutoRefresh, enableCSV: this.enableCSV, enableColumnReorder: this.enableColumnReorder, enableInlineEdit: this.enableInlineEdit, enableShare: this.enableShare, isMobile: this._isMobile, mapHidden: this._expandPopup, mapInfo: this._mapInfo, mapView: this === null || this === void 0 ? void 0 : this._mapView, onlyShowUpdatableLayers: this.onlyShowUpdatableLayers, ref: (el) => this._layerTable = el, shareIncludeEmbed: this.shareIncludeEmbed, shareIncludeSocial: this.shareIncludeSocial, showNewestFirst: this.showNewestFirst, zoomAndScrollToSelected: this.zoomAndScrollToSelected, zoomToScale: this.zoomToScale }))));
435
435
  }
436
436
  /**
437
437
  * Update the component layout when its size changes
@@ -79,3 +79,7 @@
79
79
  position: absolute;
80
80
  z-index: 1000;
81
81
  }
82
+
83
+ .share-node {
84
+ display: flex;
85
+ }
@@ -580,7 +580,7 @@ export class CrowdsourceReporter {
580
580
  getFeatureDetailsFlowItem() {
581
581
  var _a;
582
582
  const showCommentBtn = ((_a = this._getLayersConfig(this._selectedLayerId)) === null || _a === void 0 ? void 0 : _a.comment) && this._selectedLayer.relationships.length > 0;
583
- return (h("calcite-flow-item", { collapsed: this.isMobile && this._sidePanelCollapsed, heading: this._selectedLayerName, loading: this._showLoadingIndicator, onCalciteFlowItemBack: this.backFromSelectedPanel.bind(this) }, this.isMobile && this.getActionToExpandCollapsePanel(), h("instant-apps-social-share", { autoUpdateShareUrl: false, embed: false, popoverButtonIconScale: "s", ref: el => this._shareNode = el, removePopoverOffset: true, scale: "s", shareButtonColor: "neutral", shareButtonType: "action", slot: "header-actions-end", socialMedia: true, view: this.mapView }), this._selectedFeature.length > 1 && this.getFeaturesPagination(), h("calcite-panel", null, h("feature-details", { class: 'full-height', graphics: this._selectedFeature, layerItemsHash: this._layerItemsHash, mapView: this.mapView, onCommentSelect: this.onCommentSelectFromList.bind(this), onFeatureSelectionChange: this.selectionChanged.bind(this), onLoadingStatus: (evt) => void this.updatingFeatureDetails(evt.detail), ref: el => this._featureDetails = el, reportingOptions: this.reportingOptions }), showCommentBtn &&
583
+ return (h("calcite-flow-item", { collapsed: this.isMobile && this._sidePanelCollapsed, heading: this._selectedLayerName, loading: this._showLoadingIndicator, onCalciteFlowItemBack: this.backFromSelectedPanel.bind(this) }, this.isMobile && this.getActionToExpandCollapsePanel(), h("instant-apps-social-share", { autoUpdateShareUrl: false, class: "share-node", embed: false, popoverButtonIconScale: "s", ref: el => this._shareNode = el, removePopoverOffset: true, scale: "m", shareButtonColor: "neutral", shareButtonType: "action", slot: "header-actions-end", socialMedia: true, view: this.mapView }), this._selectedFeature.length > 1 && this.getFeaturesPagination(), h("calcite-panel", null, h("feature-details", { class: 'full-height', graphics: this._selectedFeature, layerItemsHash: this._layerItemsHash, mapView: this.mapView, onCommentSelect: this.onCommentSelectFromList.bind(this), onFeatureSelectionChange: this.selectionChanged.bind(this), onLoadingStatus: (evt) => void this.updatingFeatureDetails(evt.detail), ref: el => this._featureDetails = el, reportingOptions: this.reportingOptions }), showCommentBtn &&
584
584
  h("calcite-button", { appearance: "solid", onClick: () => this._flowItems = [...this._flowItems, "add-comment"], slot: "footer", width: "full" }, this._translations.comment))));
585
585
  }
586
586
  /**
@@ -73,6 +73,7 @@ export class LayerTable {
73
73
  this.enableInlineEdit = undefined;
74
74
  this.enableShare = undefined;
75
75
  this.isMobile = undefined;
76
+ this.mapHidden = undefined;
76
77
  this.mapInfo = undefined;
77
78
  this.mapView = undefined;
78
79
  this.onlyShowUpdatableLayers = undefined;
@@ -156,6 +157,15 @@ export class LayerTable {
156
157
  }
157
158
  });
158
159
  }
160
+ /**
161
+ * Reset the toolInfos when mapHidden prop changes so we can show/hide any map dependant tool(s)
162
+ */
163
+ mapHiddenWatchHandler() {
164
+ var _a;
165
+ if (((_a = this._toolInfos) === null || _a === void 0 ? void 0 : _a.length) > 0) {
166
+ this._initToolInfos();
167
+ }
168
+ }
159
169
  /**
160
170
  * When isMobile is false we need to init the tool infos for the dynamic toolbar
161
171
  */
@@ -319,7 +329,7 @@ export class LayerTable {
319
329
  const selected = this.selectedIds.length.toString();
320
330
  const tableHeightClass = this.isMobile ? "height-full" : "height-full-adjusted";
321
331
  this._validateActiveActions();
322
- return (h(Host, { key: '928286a8e4d1159b56b2aa4384f0d6eed38c9e76' }, h("calcite-shell", { key: '7c9b98056ee867df54ebfd31fee6f046f5152f64' }, this._getTableControlRow("header"), h("div", { key: 'b1a9a9cca100c7bef335afd5b6c7d7384ca7536c', class: `width-full ${tableHeightClass}` }, h("calcite-panel", { key: 'ceeead9900f43c94f46c8c94698ae17f3ae558b7', class: "height-full width-full" }, h("calcite-loader", { key: '7bf3c9ba21daa27dd387ba5413b6f6e982e1f10d', class: loadingClass, label: this._translations.fetchingData, scale: "l" }), h("div", { key: '7d0440047453a45fe1688ad373ab2463fe7479ba', class: tableNodeClass, ref: this.onTableNodeCreate })), !this.isMobile ? (h("div", { class: "bottom-left text-color height-19" }, this._translations.recordsSelected
332
+ return (h(Host, { key: '9692c6f764d078c22e1d6271deb3844ef65b1fca' }, h("calcite-shell", { key: 'a37b9fcfdd8450fea4a994738bf833c331bb168a' }, this._getTableControlRow("header"), h("div", { key: 'e0e82e0bb5441286d5cd3bdda3c55d77515fbcb0', class: `width-full ${tableHeightClass}` }, h("calcite-panel", { key: '4890c168eba3db34a291121f633c0d69ab8a1517', class: "height-full width-full" }, h("calcite-loader", { key: '19f85ec47a03731fe4c9ebb13d91cad66a8637fa', class: loadingClass, label: this._translations.fetchingData, scale: "l" }), h("div", { key: '53d1c8bce2e2d464a141fabfcf13ee41aaf02168', class: tableNodeClass, ref: this.onTableNodeCreate })), !this.isMobile ? (h("div", { class: "bottom-left text-color height-19" }, this._translations.recordsSelected
323
333
  .replace("{{total}}", total)
324
334
  .replace("{{selected}}", selected))) : undefined)), this._filterModal()));
325
335
  }
@@ -482,7 +492,8 @@ export class LayerTable {
482
492
  const featuresEmpty = this._featuresEmpty();
483
493
  const hasFilterExpressions = this._hasFilterExpressions();
484
494
  if (this._translations) {
485
- this._toolInfos = [{
495
+ this._toolInfos = [
496
+ !this.mapHidden ? {
486
497
  active: false,
487
498
  icon: "zoom-to-object",
488
499
  indicator: false,
@@ -490,7 +501,7 @@ export class LayerTable {
490
501
  func: () => this._zoom(),
491
502
  disabled: !featuresSelected,
492
503
  isOverflow: false
493
- },
504
+ } : undefined,
494
505
  hasFilterExpressions ? {
495
506
  active: false,
496
507
  icon: "filter",
@@ -568,7 +579,8 @@ export class LayerTable {
568
579
  disabled: false,
569
580
  isOverflow: false,
570
581
  isSublist: true
571
- }];
582
+ }
583
+ ];
572
584
  this._defaultVisibleToolSizeInfos = undefined;
573
585
  }
574
586
  }
@@ -1664,6 +1676,23 @@ export class LayerTable {
1664
1676
  "attribute": "is-mobile",
1665
1677
  "reflect": false
1666
1678
  },
1679
+ "mapHidden": {
1680
+ "type": "boolean",
1681
+ "mutable": false,
1682
+ "complexType": {
1683
+ "original": "boolean",
1684
+ "resolved": "boolean",
1685
+ "references": {}
1686
+ },
1687
+ "required": false,
1688
+ "optional": false,
1689
+ "docs": {
1690
+ "tags": [],
1691
+ "text": "boolean: when true the map is hidden and map specific controls should be hidden"
1692
+ },
1693
+ "attribute": "map-hidden",
1694
+ "reflect": false
1695
+ },
1667
1696
  "mapInfo": {
1668
1697
  "type": "unknown",
1669
1698
  "mutable": false,
@@ -1879,6 +1908,9 @@ export class LayerTable {
1879
1908
  }, {
1880
1909
  "propName": "_controlsThatFit",
1881
1910
  "methodName": "_controlsThatFitWatchHandler"
1911
+ }, {
1912
+ "propName": "mapHidden",
1913
+ "methodName": "mapHiddenWatchHandler"
1882
1914
  }, {
1883
1915
  "propName": "isMobile",
1884
1916
  "methodName": "isMobileWatchHandler"
@@ -209,7 +209,7 @@
209
209
  }
210
210
  }]
211
211
  ];
212
- demo.hideMapOnLoad = false;
212
+ demo.hideMapOnLoad = true;
213
213
  //demo.coverPageEnabled = true;
214
214
  demo.introductionWindowEnabled = true;
215
215
  }
@@ -68,7 +68,7 @@ export class PopupUtils {
68
68
  const fieldInfo = layer.popupTemplate.fieldInfos.find((fInfo) => fInfo.fieldName.toLowerCase() === field.name.toLowerCase());
69
69
  //format the attribute value
70
70
  const formattedAttributeValue = _prepareAttributeValue(attributeValue, field.type, field.domain, fieldInfo === null || fieldInfo === void 0 ? void 0 : fieldInfo.format, this.intl);
71
- attributes[`{${field.name.toUpperCase()}}`] = formattedAttributeValue;
71
+ attributes[`{${field.name.toUpperCase()}}`] = formattedAttributeValue !== null && formattedAttributeValue !== void 0 ? formattedAttributeValue : attributeValue;
72
72
  });
73
73
  }
74
74
  return popupTitle === null || popupTitle === void 0 ? void 0 : popupTitle.replace(/{.*?}/g, (placeholder) => {
@@ -80,7 +80,7 @@ export class PopupUtils {
80
80
  const fieldInfo = layer.popupTemplate.fieldInfos.find((fInfo) => fInfo.fieldName.toLowerCase() === field.name.toLowerCase());
81
81
  //format the attribute value
82
82
  const formattedAttributeValue = _prepareAttributeValue(attributeValue, field.type, field.domain, fieldInfo?.format, this.intl);
83
- attributes[`{${field.name.toUpperCase()}}`] = formattedAttributeValue;
83
+ attributes[`{${field.name.toUpperCase()}}`] = formattedAttributeValue ?? attributeValue;
84
84
  })
85
85
  }
86
86
 
@@ -29,7 +29,7 @@ const CreateFeature = /*@__PURE__*/ proxyCustomElement(class CreateFeature exten
29
29
  this.customizeSubmit = false;
30
30
  this.searchConfiguration = undefined;
31
31
  this._editorLoading = false;
32
- this.showSearchWidget = undefined;
32
+ this._showSearchWidget = undefined;
33
33
  }
34
34
  //--------------------------------------------------------------------------
35
35
  //
@@ -102,10 +102,10 @@ const CreateFeature = /*@__PURE__*/ proxyCustomElement(class CreateFeature exten
102
102
  * Renders the component.
103
103
  */
104
104
  render() {
105
- const showSearchWidget = this.showSearchWidget ? '' : 'display-none';
105
+ const showSearchWidget = this._showSearchWidget ? '' : 'display-none';
106
106
  const loaderClass = this._editorLoading ? "" : "display-none";
107
107
  const featureFormClass = this._editorLoading ? "display-none" : "";
108
- return (h(Fragment, { key: '2e790defdd5592fed729853888ee06143c95c84d' }, h("calcite-loader", { key: 'a0f1de0064ea80305d4aaf83f78939c0236c955a', class: loaderClass, label: "", scale: "s" }), h("div", { key: '1af391d6d7fd0dffa2e8e4b43905f8081a5f9820', class: featureFormClass, id: "feature-form" }), h("div", { key: '88d12115c3c2e0d34a5d6fd8895fb60cec6e9b5d', class: `search-widget ${showSearchWidget} ${featureFormClass}`, id: "search-widget-ref" })));
108
+ return (h(Fragment, { key: 'a4ccd565a52a4cde4e76439629425f19bd4c222e' }, h("calcite-loader", { key: '30e8a3753985a734dd7cba461f26691b51f49ab9', class: loaderClass, label: "", scale: "s" }), h("div", { key: '0845f1fa85a21b578fd18200b43d4a77c34e6808', class: featureFormClass, id: "feature-form" }), h("div", { key: 'af74b6337f5a0dcfdbd552145c88eae5282a3307', class: `search-widget ${showSearchWidget} ${featureFormClass}`, id: "search-widget-ref" })));
109
109
  }
110
110
  //--------------------------------------------------------------------------
111
111
  //
@@ -195,7 +195,7 @@ const CreateFeature = /*@__PURE__*/ proxyCustomElement(class CreateFeature exten
195
195
  const formHandle = this.reactiveUtils.watch(() => this._editor.viewModel.state, (state) => {
196
196
  if (state === 'creating-features') {
197
197
  this._editorLoading = true;
198
- this.showSearchWidget = true;
198
+ this._showSearchWidget = true;
199
199
  }
200
200
  });
201
201
  this._editor.viewModel.addHandles(formHandle);
@@ -219,11 +219,12 @@ const CreateFeature = /*@__PURE__*/ proxyCustomElement(class CreateFeature exten
219
219
  //on sketch complete emit the event
220
220
  this._editor.viewModel.sketchViewModel.on("create", (evt) => {
221
221
  if (evt.state === "complete") {
222
- this.showSearchWidget = false;
222
+ this._showSearchWidget = false;
223
223
  this.progressStatus.emit(1);
224
224
  this.drawComplete.emit();
225
225
  }
226
226
  });
227
+ //hides the header and footer elements in editor widget
227
228
  this.hideEditorsElements().then(() => {
228
229
  resolve({});
229
230
  }, e => reject(e));
@@ -234,8 +235,12 @@ const CreateFeature = /*@__PURE__*/ proxyCustomElement(class CreateFeature exten
234
235
  if (items.length === 1) {
235
236
  this._editor.viewModel.featureTemplatesViewModel.select(items[0]);
236
237
  }
237
- //hides the header and footer elements in editor widget
238
- void this.hideEditorsElements();
238
+ const resolvePromise = items.length > 1;
239
+ this.hideEditorsElements().then(() => {
240
+ if (resolvePromise) {
241
+ resolve({});
242
+ }
243
+ }, e => resolvePromise && reject(e));
239
244
  }
240
245
  });
241
246
  }
@@ -401,7 +406,7 @@ const CreateFeature = /*@__PURE__*/ proxyCustomElement(class CreateFeature exten
401
406
  "customizeSubmit": [4, "customize-submit"],
402
407
  "searchConfiguration": [16],
403
408
  "_editorLoading": [32],
404
- "showSearchWidget": [32],
409
+ "_showSearchWidget": [32],
405
410
  "close": [64],
406
411
  "submit": [64]
407
412
  }, undefined, {