@esri/solutions-components 0.8.33 → 0.8.35

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 (30) hide show
  1. package/dist/cjs/basemap-gallery_7.cjs.entry.js +1 -17
  2. package/dist/cjs/calcite-flow_6.cjs.entry.js +22 -19
  3. package/dist/cjs/crowdsource-reporter.cjs.entry.js +29 -6
  4. package/dist/collection/components/create-feature/create-feature.js +13 -12
  5. package/dist/collection/components/create-related-feature/create-related-feature.js +23 -3
  6. package/dist/collection/components/crowdsource-reporter/crowdsource-reporter.js +31 -8
  7. package/dist/collection/components/feature-details/feature-details.js +0 -4
  8. package/dist/collection/components/floor-filter/floor-filter.js +1 -17
  9. package/dist/collection/demos/crowdsource-reporter.html +32 -8
  10. package/dist/components/create-feature2.js +13 -12
  11. package/dist/components/create-related-feature2.js +9 -3
  12. package/dist/components/crowdsource-reporter.js +29 -6
  13. package/dist/components/feature-details2.js +0 -4
  14. package/dist/components/floor-filter2.js +1 -17
  15. package/dist/esm/basemap-gallery_7.entry.js +1 -17
  16. package/dist/esm/calcite-flow_6.entry.js +22 -19
  17. package/dist/esm/crowdsource-reporter.entry.js +29 -6
  18. package/dist/solutions-components/demos/crowdsource-reporter.html +32 -8
  19. package/dist/solutions-components/p-0ce36a4a.entry.js +17 -0
  20. package/dist/solutions-components/p-5c5e3745.entry.js +6 -0
  21. package/dist/solutions-components/p-6e260ca3.entry.js +6 -0
  22. package/dist/solutions-components/solutions-components.esm.js +1 -1
  23. package/dist/types/components/create-related-feature/create-related-feature.d.ts +4 -0
  24. package/dist/types/components/crowdsource-reporter/crowdsource-reporter.d.ts +16 -3
  25. package/dist/types/components.d.ts +7 -2
  26. package/dist/types/preact.d.ts +2 -1
  27. package/package.json +1 -1
  28. package/dist/solutions-components/p-21cbb55d.entry.js +0 -6
  29. package/dist/solutions-components/p-4ae34862.entry.js +0 -17
  30. package/dist/solutions-components/p-90c3bc54.entry.js +0 -6
@@ -40,6 +40,7 @@
40
40
  }
41
41
  .over-map[dir="rtl"] {
42
42
  right: 0px;
43
+ left: auto;
43
44
  }
44
45
  .column {
45
46
  width: 360px;
@@ -72,6 +73,13 @@
72
73
  top: calc(100% - 100px);
73
74
  height: 100px;
74
75
  }
76
+
77
+ .map-collapsed {
78
+ height: 100%;
79
+ top: 0;
80
+ width: 100%;
81
+ z-index: 1000;
82
+ }
75
83
  }
76
84
  </style>
77
85
 
@@ -295,22 +303,38 @@
295
303
  //on change update the prop for is mobile
296
304
  mediaQueryList.onchange = (e) => {
297
305
  demo.isMobile = e.matches;
298
- togglePanel({ detail: false })
306
+ togglePanel({ detail: { panelState: false, isFormOpen: false } })
299
307
  }
300
308
  //listen to togglePanel event
301
309
  demo.addEventListener('togglePanel', togglePanel);
302
310
  });
303
311
 
304
- function togglePanel(evt) {
305
- const state = evt.detail;
312
+ function togglePanel(evt) {
313
+ const panelState = evt.detail.panelState;
314
+ const hideMap = evt.detail.isFormOpen;
306
315
  const viewDiv = document.getElementById("viewDiv");
307
316
  const demo = document.getElementById("demo");
308
- if (state) {
309
- demo.classList.add("column-collapsed");
310
- viewDiv.classList.add("map-with-panel-collapsed");
317
+ // in case of form is open then collapse the map
318
+ if (hideMap) {
319
+ if (panelState) {
320
+ demo.classList.remove("map-collapsed");
321
+ demo.classList.add("column-collapsed");
322
+ viewDiv.classList.add("map-with-panel-collapsed");
323
+ } else {
324
+ demo.classList.add("map-collapsed");
325
+ demo.classList.remove("column-collapsed");
326
+ viewDiv.classList.remove("map-with-panel-collapsed");
327
+ }
311
328
  } else {
312
- demo.classList.remove("column-collapsed");
313
- viewDiv.classList.remove("map-with-panel-collapsed");
329
+ if (panelState) {
330
+ demo.classList.add("column-collapsed");
331
+ viewDiv.classList.add("map-with-panel-collapsed");
332
+ demo.classList.remove("map-collapsed");
333
+ } else {
334
+ demo.classList.remove("column-collapsed");
335
+ viewDiv.classList.remove("map-with-panel-collapsed");
336
+ demo.classList.remove("map-collapsed");
337
+ }
314
338
  }
315
339
  }
316
340
  </script>
@@ -191,14 +191,23 @@ const CreateFeature = /*@__PURE__*/ proxyCustomElement(class CreateFeature exten
191
191
  }
192
192
  });
193
193
  this._editor.viewModel.addHandles(handle);
194
+ //Add handle to watch featureFormViewModel ready state
195
+ const formHandle = this.reactiveUtils.watch(() => { var _a; return (_a = this._editor.viewModel.featureFormViewModel) === null || _a === void 0 ? void 0 : _a.state; }, (state) => {
196
+ if (state === 'ready') {
197
+ this._showSearchWidget = false;
198
+ this.progressStatus.emit(1);
199
+ this.drawComplete.emit();
200
+ }
201
+ });
202
+ this._editor.viewModel.addHandles(formHandle);
194
203
  //Add handle to watch editor viewmodel state and then show the search widget
195
- const formHandle = this.reactiveUtils.watch(() => this._editor.viewModel.state, (state) => {
204
+ const createFeatureHandle = this.reactiveUtils.watch(() => this._editor.viewModel.state, (state) => {
196
205
  if (state === 'creating-features') {
197
206
  this._editorLoading = true;
198
207
  this._showSearchWidget = true;
199
208
  }
200
209
  });
201
- this._editor.viewModel.addHandles(formHandle);
210
+ this._editor.viewModel.addHandles(createFeatureHandle);
202
211
  }
203
212
  /**
204
213
  * Start creating the feature
@@ -216,14 +225,6 @@ const CreateFeature = /*@__PURE__*/ proxyCustomElement(class CreateFeature exten
216
225
  setTimeout(() => {
217
226
  //on form submit
218
227
  this._editor.viewModel.featureFormViewModel.on('submit', this.submitted.bind(this));
219
- //on sketch complete emit the event
220
- this._editor.viewModel.sketchViewModel.on("create", (evt) => {
221
- if (evt.state === "complete") {
222
- this._showSearchWidget = false;
223
- this.progressStatus.emit(1);
224
- this.drawComplete.emit();
225
- }
226
- });
227
228
  //hides the header and footer elements in editor widget
228
229
  this.hideEditorsElements().then(() => {
229
230
  resolve({});
@@ -337,13 +338,13 @@ const CreateFeature = /*@__PURE__*/ proxyCustomElement(class CreateFeature exten
337
338
  * @protected
338
339
  */
339
340
  async hideEditorsElements() {
340
- var _a;
341
+ var _a, _b;
341
342
  if (!this.customizeSubmit) {
342
343
  return;
343
344
  }
344
345
  await this.timeout(700);
345
346
  //hides the header and footer on the featureForm
346
- (_a = this.el.querySelector('.esri-editor').querySelectorAll('calcite-flow-item')) === null || _a === void 0 ? void 0 : _a.forEach((flowItem) => {
347
+ (_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) => {
347
348
  var _a, _b, _c, _d, _e;
348
349
  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');
349
350
  //hide the header
@@ -17,6 +17,7 @@ const CreateRelatedFeature = /*@__PURE__*/ proxyCustomElement(class CreateRelate
17
17
  this.success = createEvent(this, "success", 7);
18
18
  this.fail = createEvent(this, "fail", 7);
19
19
  this.isActionPending = createEvent(this, "isActionPending", 7);
20
+ this.formReady = createEvent(this, "formReady", 7);
20
21
  /**
21
22
  * boolean: Flag to maintain form submission using submit button
22
23
  */
@@ -109,7 +110,7 @@ const CreateRelatedFeature = /*@__PURE__*/ proxyCustomElement(class CreateRelate
109
110
  }
110
111
  render() {
111
112
  const loaderClass = this._editorLoading ? "" : "display-none";
112
- return (h("calcite-loader", { key: 'a8fd1e83a4a9614779be19a11e6028b3a402cbd2', class: loaderClass, label: "", scale: "s" }));
113
+ return (h("calcite-loader", { key: '5302b1166a175b0605604792cd40b9d3fbfabd02', class: loaderClass, label: "", scale: "s" }));
113
114
  }
114
115
  /**
115
116
  * StencilJS: Called once just after the component is fully loaded and the first render() occurs.
@@ -157,6 +158,13 @@ const CreateRelatedFeature = /*@__PURE__*/ proxyCustomElement(class CreateRelate
157
158
  }
158
159
  });
159
160
  this._editor.viewModel.addHandles(attachmentHandle);
161
+ //Add handle to watch featureFormViewModel ready state
162
+ const formHandle = this.reactiveUtils.watch(() => { var _a; return (_a = this._editor.viewModel.featureFormViewModel) === null || _a === void 0 ? void 0 : _a.state; }, (state) => {
163
+ if (state === 'ready') {
164
+ this.formReady.emit();
165
+ }
166
+ });
167
+ this._editor.viewModel.addHandles(formHandle);
160
168
  }
161
169
  /**
162
170
  * Start creating the feature feature form
@@ -182,8 +190,6 @@ const CreateRelatedFeature = /*@__PURE__*/ proxyCustomElement(class CreateRelate
182
190
  await this._editor.startCreateFeaturesWorkflowAtFeatureCreation(creationInfo);
183
191
  //hides the header and footer elements in editor widget
184
192
  await this.hideEditorsElements();
185
- // Emit an event to show submit cancel buttons
186
- this.isActionPending.emit(false);
187
193
  this._editor.viewModel.featureFormViewModel.on('submit', this.submitted.bind(this));
188
194
  }
189
195
  /**
@@ -156,7 +156,7 @@ const CrowdsourceReporter$1 = /*@__PURE__*/ proxyCustomElement(class Crowdsource
156
156
  */
157
157
  render() {
158
158
  const themeClass = this.theme === "dark" ? "calcite-mode-dark" : "calcite-mode-light";
159
- return (h(Host, { key: '119bb8b1c9115dca4e15c45ddd8e7fbed500b4d7' }, this._reportSubmitted && h("calcite-alert", { key: 'ef85c61fb5c9eaac9391c1e37494ef5e4244dadb', "auto-close": true, class: themeClass + " report-submitted-msg", icon: "check-circle", kind: "success", label: "", onCalciteAlertClose: () => { this._reportSubmitted = false; }, open: true, placement: "top" }, h("div", { key: '616a75103a227cf1b50d9e43fea129afc3fee4f9', slot: "message" }, this.reportSubmittedMessage ? this.reportSubmittedMessage : this._translations.submitMsg)), this._featureCreationFailedErrorMsg && h("calcite-alert", { key: '2faf9a9729bf90b87e044bfe8958571735f2cbf5', "auto-close": true, class: themeClass, icon: "x-octagon", kind: "danger", label: "", onCalciteAlertClose: () => { this._featureCreationFailedErrorMsg = ""; }, open: true, placement: "top" }, h("div", { key: '66cdf81166042ff4efddd4cc5801d790463d75fc', slot: "title" }, this._translations.error), h("div", { key: 'ad289b06742d2159d6fcfbdc42ecc9fb6d81f362', slot: "message" }, this._featureCreationFailedErrorMsg)), this._commentSubmitted && h("calcite-alert", { key: '27aee542bfd2cae8972035d17167407b35b5eb76', "auto-close": true, class: 'report-submitted ' + themeClass, icon: "check-circle", kind: "success", label: "", onCalciteAlertClose: () => { this._commentSubmitted = false; }, open: true, placement: "top" }, h("div", { key: '70a8a21de05b00d409adb226d6393817f7514930', slot: "message" }, this._translations.commentSubmittedMsg)), this._addingCommentFailed && h("calcite-alert", { key: '107ab01eca03500faeb4db5a2ac0e9dc7261e6fc', "auto-close": true, class: themeClass, icon: "x-octagon", kind: "danger", label: "", onCalciteAlertClose: () => { this._addingCommentFailed = false; }, open: true, placement: "top" }, h("div", { key: '31e6fba8c28489f87897a13ebb4e7b8956452191', slot: "title" }, this._translations.error), h("div", { key: '6f0868946ef6e04490ba1e0806a03e26c756760b', slot: "message" }, this._translations.addingCommentFailedMsg)), h("div", { key: 'e169b7b466023010d45151ca9b7dfb900d8d7f9f' }, h("calcite-shell", { key: '72899b8eff6622233224df91223ee5d59539905b', "content-behind": true }, this._getReporter())), this.filterModal()));
159
+ return (h(Host, { key: 'e512e2693a586f8a6da7bcfa171feb60da26aee3' }, this._reportSubmitted && h("calcite-alert", { key: 'e5805ba948f1dc43eba2a78716af452cf71a8222', "auto-close": true, class: themeClass + " report-submitted-msg", icon: "check-circle", kind: "success", label: "", onCalciteAlertClose: () => { this._reportSubmitted = false; }, open: true, placement: "top" }, h("div", { key: '95b9accf1f09186c09c81cfb02a8939c4869ae8d', slot: "message" }, this.reportSubmittedMessage ? this.reportSubmittedMessage : this._translations.submitMsg)), this._featureCreationFailedErrorMsg && h("calcite-alert", { key: 'cab7f0e0f0d882612b4fa6f00799be9870aea6c5', "auto-close": true, class: themeClass, icon: "x-octagon", kind: "danger", label: "", onCalciteAlertClose: () => { this._featureCreationFailedErrorMsg = ""; }, open: true, placement: "top" }, h("div", { key: 'b9453672d85e26cf7bdeae0923cd36020d259d49', slot: "title" }, this._translations.error), h("div", { key: '5084315857bc88b8f80aaa411ac3fd5e4493e918', slot: "message" }, this._featureCreationFailedErrorMsg)), this._commentSubmitted && h("calcite-alert", { key: '62b7d9818913c3331ca9c8e4ed23c7f0c48a7946', "auto-close": true, class: 'report-submitted ' + themeClass, icon: "check-circle", kind: "success", label: "", onCalciteAlertClose: () => { this._commentSubmitted = false; }, open: true, placement: "top" }, h("div", { key: '5f18444fd375657db0c2a403cb453ead75536181', slot: "message" }, this._translations.commentSubmittedMsg)), this._addingCommentFailed && h("calcite-alert", { key: '732f08960095fc9fefcc79fc8df387a5a4c3f781', "auto-close": true, class: themeClass, icon: "x-octagon", kind: "danger", label: "", onCalciteAlertClose: () => { this._addingCommentFailed = false; }, open: true, placement: "top" }, h("div", { key: '16415430cf33ce53c0d49cab19dce2c3e34257d6', slot: "title" }, this._translations.error), h("div", { key: '83e5918e00902bd49512165f4aa62813cecb4619', slot: "message" }, this._translations.addingCommentFailedMsg)), h("div", { key: '3e9dadd880319708e64e717ba7e7adaddf97b935' }, h("calcite-shell", { key: 'c72664d361b3904bc191668207c3ad31ff1f98c9', "content-behind": true }, this._getReporter())), this.filterModal()));
160
160
  }
161
161
  //--------------------------------------------------------------------------
162
162
  //
@@ -333,7 +333,7 @@ const CrowdsourceReporter$1 = /*@__PURE__*/ proxyCustomElement(class Crowdsource
333
333
  * @protected
334
334
  */
335
335
  getFeatureCreateFlowItem() {
336
- return (h("calcite-flow-item", { collapsed: this.isMobile && this._sidePanelCollapsed, heading: this._selectedLayerName, onCalciteFlowItemBack: this.backFromCreateFeaturePanel.bind(this) }, this.isMobile && this.getActionToExpandCollapsePanel(), this._showSubmitCancelButton && h("div", { class: "width-full", slot: "footer" }, h("calcite-button", { appearance: "solid", class: "footer-top-button footer-button", onClick: this.onCreateFeatureSubmitButtonClick.bind(this), width: "full" }, this._translations.submit), h("calcite-button", { appearance: "outline", class: "footer-button", onClick: this.backFromCreateFeaturePanel.bind(this), width: "full" }, this._translations.cancel)), h("calcite-panel", { "full-height": true, "full-width": true }, h("div", { class: "progress-bar" }, h("calcite-progress", { type: "determinate", value: this._updatedProgressBarStatus })), h("calcite-notice", { class: "notice-msg", icon: "lightbulb", kind: "success", open: true }, h("div", { slot: "message" }, this._translations.featureEditFormInfoMsg)), h("create-feature", { customizeSubmit: true, mapView: this.mapView, onDrawComplete: this.onDrawComplete.bind(this), onEditingAttachment: this.showSubmitCancelButton.bind(this), onFail: this.createFeatureFailed.bind(this), onProgressStatus: this.updatedProgressStatus.bind(this), onSuccess: this.onReportSubmitted.bind(this), ref: el => this._createFeature = el, searchConfiguration: this.searchConfiguration, selectedLayerId: this._selectedLayerId }))));
336
+ return (h("calcite-flow-item", { collapsed: this.isMobile && this._sidePanelCollapsed, heading: this._selectedLayerName, onCalciteFlowItemBack: this.backFromCreateFeaturePanel.bind(this) }, this.isMobile && this.getActionToExpandCollapsePanel(), this._showSubmitCancelButton && h("div", { class: "width-full", slot: "footer" }, h("calcite-button", { appearance: "solid", class: "footer-top-button footer-button", onClick: this.onCreateFeatureSubmitButtonClick.bind(this), width: "full" }, this._translations.submit), h("calcite-button", { appearance: "outline", class: "footer-button", onClick: this.backFromCreateFeaturePanel.bind(this), width: "full" }, this._translations.cancel)), h("calcite-panel", { "full-height": true, "full-width": true }, h("div", { class: "progress-bar" }, h("calcite-progress", { type: "determinate", value: this._updatedProgressBarStatus })), h("calcite-notice", { class: "notice-msg", icon: "lightbulb", kind: "success", open: true }, h("div", { slot: "message" }, this._translations.featureEditFormInfoMsg)), h("create-feature", { customizeSubmit: true, mapView: this.mapView, onDrawComplete: this.onFormReady.bind(this), onEditingAttachment: this.showSubmitCancelButton.bind(this), onFail: this.createFeatureFailed.bind(this), onProgressStatus: this.updatedProgressStatus.bind(this), onSuccess: this.onReportSubmitted.bind(this), ref: el => this._createFeature = el, searchConfiguration: this.searchConfiguration, selectedLayerId: this._selectedLayerId }))));
337
337
  }
338
338
  /**
339
339
  * Update the progress bar status when editor panel changes
@@ -344,10 +344,12 @@ const CrowdsourceReporter$1 = /*@__PURE__*/ proxyCustomElement(class Crowdsource
344
344
  this._updatedProgressBarStatus = evt.detail;
345
345
  }
346
346
  /**
347
- * When drawing of incident location completed on map show the submit and cancel button
347
+ * When form is ready then show submit and cancel button
348
348
  * @protected
349
349
  */
350
- onDrawComplete() {
350
+ onFormReady() {
351
+ // update the form state when form is ready
352
+ this.updateFormState(true);
351
353
  this._showSubmitCancelButton = true;
352
354
  }
353
355
  /**
@@ -374,6 +376,10 @@ const CrowdsourceReporter$1 = /*@__PURE__*/ proxyCustomElement(class Crowdsource
374
376
  if (this._createFeature) {
375
377
  void this._createFeature.close();
376
378
  }
379
+ //on back form will be closed, so update the form state
380
+ if (this.isFormOpen) {
381
+ this.updateFormState(false);
382
+ }
377
383
  this.backFromSelectedPanel();
378
384
  }
379
385
  /**
@@ -394,6 +400,10 @@ const CrowdsourceReporter$1 = /*@__PURE__*/ proxyCustomElement(class Crowdsource
394
400
  void this._createRelatedFeature.close();
395
401
  this._showSubmitCancelButton = false;
396
402
  }
403
+ //on back form will be closed, so update the form state
404
+ if (this.isFormOpen) {
405
+ this.updateFormState(false);
406
+ }
397
407
  this.backFromSelectedPanel();
398
408
  }
399
409
  /**
@@ -410,6 +420,10 @@ const CrowdsourceReporter$1 = /*@__PURE__*/ proxyCustomElement(class Crowdsource
410
420
  * @protected
411
421
  */
412
422
  onReportSubmitted() {
423
+ //on report submit form will be closed, so update the form state
424
+ if (this.isFormOpen) {
425
+ this.updateFormState(false);
426
+ }
413
427
  this._reportSubmitted = true;
414
428
  void this.navigateToHomePage();
415
429
  }
@@ -546,7 +560,16 @@ const CrowdsourceReporter$1 = /*@__PURE__*/ proxyCustomElement(class Crowdsource
546
560
  */
547
561
  toggleSidePanel() {
548
562
  this._sidePanelCollapsed = !this._sidePanelCollapsed;
549
- this.togglePanel.emit(this._sidePanelCollapsed);
563
+ this.togglePanel.emit({ panelState: this._sidePanelCollapsed, isFormOpen: this.isFormOpen });
564
+ }
565
+ /**
566
+ * Hide map when form open in case of mobile
567
+ * @param isFormOpen updated form state
568
+ * @protected
569
+ */
570
+ updateFormState(isFormOpen) {
571
+ this.isFormOpen = isFormOpen;
572
+ this.togglePanel.emit({ panelState: this._sidePanelCollapsed, isFormOpen: this.isFormOpen });
550
573
  }
551
574
  /**
552
575
  * When feature is selected from list store that and show feature details
@@ -641,7 +664,7 @@ const CrowdsourceReporter$1 = /*@__PURE__*/ proxyCustomElement(class Crowdsource
641
664
  * @returns Node
642
665
  */
643
666
  getAddCommentFlowItem() {
644
- return (h("calcite-flow-item", { collapsed: this.isMobile && this._sidePanelCollapsed, heading: this._relatedTable.title, onCalciteFlowItemBack: this.backFromCreateRelatedFeaturePanel.bind(this) }, this.isMobile && this.getActionToExpandCollapsePanel(), h("div", { class: "width-full", slot: "footer" }, this._showSubmitCancelButton && h("div", { class: "width-full", slot: "footer" }, h("calcite-button", { appearance: "solid", class: "footer-top-button footer-button", onClick: this.onCreateRelatedFeatureSubmitButtonClick.bind(this), width: "full" }, this._translations.submit), h("calcite-button", { appearance: "outline", class: "footer-button", onClick: this.backFromCreateRelatedFeaturePanel.bind(this), width: "full" }, this._translations.cancel))), h("calcite-panel", null, h("create-related-feature", { customizeSubmit: true, mapView: this.mapView, onFail: this.addCommentFailed.bind(this), onIsActionPending: this.showSubmitCancelButton.bind(this), onSuccess: this.onCommentSubmitted.bind(this), ref: el => this._createRelatedFeature = el, selectedFeature: this._currentFeature, table: this._relatedTable }))));
667
+ return (h("calcite-flow-item", { collapsed: this.isMobile && this._sidePanelCollapsed, heading: this._relatedTable.title, onCalciteFlowItemBack: this.backFromCreateRelatedFeaturePanel.bind(this) }, this.isMobile && this.getActionToExpandCollapsePanel(), h("div", { class: "width-full", slot: "footer" }, this._showSubmitCancelButton && h("div", { class: "width-full", slot: "footer" }, h("calcite-button", { appearance: "solid", class: "footer-top-button footer-button", onClick: this.onCreateRelatedFeatureSubmitButtonClick.bind(this), width: "full" }, this._translations.submit), h("calcite-button", { appearance: "outline", class: "footer-button", onClick: this.backFromCreateRelatedFeaturePanel.bind(this), width: "full" }, this._translations.cancel))), h("calcite-panel", null, h("create-related-feature", { customizeSubmit: true, mapView: this.mapView, onFail: this.addCommentFailed.bind(this), onFormReady: this.onFormReady.bind(this), onIsActionPending: this.showSubmitCancelButton.bind(this), onSuccess: this.onCommentSubmitted.bind(this), ref: el => this._createRelatedFeature = el, selectedFeature: this._currentFeature, table: this._relatedTable }))));
645
668
  }
646
669
  /**
647
670
  * Sets the selected features and updates the first feature as the current selected feature
@@ -349,10 +349,6 @@ const FeatureDetails = /*@__PURE__*/ proxyCustomElement(class FeatureDetails ext
349
349
  const param = { updateFeatures: [newGraphicInstance] };
350
350
  await selectedLayer.applyEdits(param).then(() => {
351
351
  this._selectedGraphic = selectFeatureAttr;
352
- //update the current graphics in info card so that, the updated values are reflected in popup content
353
- if (this._infoCard) {
354
- void this._infoCard.updateCurrentGraphic(this._selectedGraphic);
355
- }
356
352
  //store the like dislike value for the current selected graphic in local storage
357
353
  this.setInLocalStorage();
358
354
  this._updating = false;
@@ -30,17 +30,12 @@ const FloorFilter = /*@__PURE__*/ proxyCustomElement(class FloorFilter extends H
30
30
  * Watch for changes to the mapView and re-init the floor filter
31
31
  */
32
32
  async mapViewWatchHandler() {
33
- console.log("mapViewWatchHandler");
34
- console.log(`this.mapView: ${this.mapView}`);
35
33
  await this._initFloorFilter(this.mapView);
36
34
  }
37
35
  /**
38
36
  * Watch for changes to the enabled property and re-init or destroy the floor filter
39
37
  */
40
38
  async enabledWatchHandler() {
41
- console.log("enabledWatchHandler");
42
- console.log(`this.enabled: ${this.enabled}`);
43
- console.log(`this.mapView: ${this.mapView}`);
44
39
  if (this.enabled) {
45
40
  await this._initFloorFilter(this.mapView);
46
41
  }
@@ -63,9 +58,7 @@ const FloorFilter = /*@__PURE__*/ proxyCustomElement(class FloorFilter extends H
63
58
  * Renders the component.
64
59
  */
65
60
  render() {
66
- console.log("render");
67
- console.log(`this._floorFilterElement: ${this._floorFilterElement}`);
68
- return (h(Host, { key: '01b71c71af2a183b85c8620c338512fd338f19ef' }, h("div", { key: '752d397c6e3b6a2257d0a8a05051ed821eca4b94', ref: (el) => { this._floorFilterElement = el; } })));
61
+ return (h(Host, { key: 'c80a8d46fb48f3789d9fa09c2400faad49e2e236' }, h("div", { key: '82919a3ba061a17c8aeaa0d2f6f4f13bc428b519', ref: (el) => { this._floorFilterElement = el; } })));
69
62
  }
70
63
  //--------------------------------------------------------------------------
71
64
  //
@@ -93,7 +86,6 @@ const FloorFilter = /*@__PURE__*/ proxyCustomElement(class FloorFilter extends H
93
86
  * @protected
94
87
  */
95
88
  _destroyWidget() {
96
- console.log("_destroyWidget");
97
89
  if (this.floorFilterWidget) {
98
90
  this.floorFilterWidget.destroy();
99
91
  this.floorFilterWidget = undefined;
@@ -108,7 +100,6 @@ const FloorFilter = /*@__PURE__*/ proxyCustomElement(class FloorFilter extends H
108
100
  * @protected
109
101
  */
110
102
  _initContainer() {
111
- console.log("_initContainer");
112
103
  this._destroyWidget();
113
104
  this._floorFilterElement = document.createElement("div");
114
105
  }
@@ -116,16 +107,9 @@ const FloorFilter = /*@__PURE__*/ proxyCustomElement(class FloorFilter extends H
116
107
  * Initialize the floor filter or reset the current view if it already exists
117
108
  */
118
109
  async _initFloorFilter(view) {
119
- console.log("_initFloorFilter");
120
110
  const webMap = view === null || view === void 0 ? void 0 : view.map;
121
111
  await webMap.when(() => {
122
112
  var _a, _b, _c;
123
- console.log("webMap.when");
124
- console.log("_initFloorFilter");
125
- console.log(`view: ${view}`);
126
- console.log(`this.enabled: ${this.enabled}`);
127
- console.log(`this.FloorFilter: ${this.FloorFilter}`);
128
- console.log(`webMap?.floorInfo: ${webMap === null || webMap === void 0 ? void 0 : webMap.floorInfo}`);
129
113
  if (view && this.enabled && this.FloorFilter && (webMap === null || webMap === void 0 ? void 0 : webMap.floorInfo)) {
130
114
  this._initContainer();
131
115
  this.floorFilterWidget = new this.FloorFilter({
@@ -136,17 +136,12 @@ const FloorFilter = class {
136
136
  * Watch for changes to the mapView and re-init the floor filter
137
137
  */
138
138
  async mapViewWatchHandler() {
139
- console.log("mapViewWatchHandler");
140
- console.log(`this.mapView: ${this.mapView}`);
141
139
  await this._initFloorFilter(this.mapView);
142
140
  }
143
141
  /**
144
142
  * Watch for changes to the enabled property and re-init or destroy the floor filter
145
143
  */
146
144
  async enabledWatchHandler() {
147
- console.log("enabledWatchHandler");
148
- console.log(`this.enabled: ${this.enabled}`);
149
- console.log(`this.mapView: ${this.mapView}`);
150
145
  if (this.enabled) {
151
146
  await this._initFloorFilter(this.mapView);
152
147
  }
@@ -169,9 +164,7 @@ const FloorFilter = class {
169
164
  * Renders the component.
170
165
  */
171
166
  render() {
172
- console.log("render");
173
- console.log(`this._floorFilterElement: ${this._floorFilterElement}`);
174
- return (h(Host, { key: '01b71c71af2a183b85c8620c338512fd338f19ef' }, h("div", { key: '752d397c6e3b6a2257d0a8a05051ed821eca4b94', ref: (el) => { this._floorFilterElement = el; } })));
167
+ return (h(Host, { key: 'c80a8d46fb48f3789d9fa09c2400faad49e2e236' }, h("div", { key: '82919a3ba061a17c8aeaa0d2f6f4f13bc428b519', ref: (el) => { this._floorFilterElement = el; } })));
175
168
  }
176
169
  //--------------------------------------------------------------------------
177
170
  //
@@ -199,7 +192,6 @@ const FloorFilter = class {
199
192
  * @protected
200
193
  */
201
194
  _destroyWidget() {
202
- console.log("_destroyWidget");
203
195
  if (this.floorFilterWidget) {
204
196
  this.floorFilterWidget.destroy();
205
197
  this.floorFilterWidget = undefined;
@@ -214,7 +206,6 @@ const FloorFilter = class {
214
206
  * @protected
215
207
  */
216
208
  _initContainer() {
217
- console.log("_initContainer");
218
209
  this._destroyWidget();
219
210
  this._floorFilterElement = document.createElement("div");
220
211
  }
@@ -222,16 +213,9 @@ const FloorFilter = class {
222
213
  * Initialize the floor filter or reset the current view if it already exists
223
214
  */
224
215
  async _initFloorFilter(view) {
225
- console.log("_initFloorFilter");
226
216
  const webMap = view === null || view === void 0 ? void 0 : view.map;
227
217
  await webMap.when(() => {
228
218
  var _a, _b, _c;
229
- console.log("webMap.when");
230
- console.log("_initFloorFilter");
231
- console.log(`view: ${view}`);
232
- console.log(`this.enabled: ${this.enabled}`);
233
- console.log(`this.FloorFilter: ${this.FloorFilter}`);
234
- console.log(`webMap?.floorInfo: ${webMap === null || webMap === void 0 ? void 0 : webMap.floorInfo}`);
235
219
  if (view && this.enabled && this.FloorFilter && (webMap === null || webMap === void 0 ? void 0 : webMap.floorInfo)) {
236
220
  this._initContainer();
237
221
  this.floorFilterWidget = new this.FloorFilter({
@@ -518,14 +518,23 @@ const CreateFeature = class {
518
518
  }
519
519
  });
520
520
  this._editor.viewModel.addHandles(handle);
521
+ //Add handle to watch featureFormViewModel ready state
522
+ const formHandle = this.reactiveUtils.watch(() => { var _a; return (_a = this._editor.viewModel.featureFormViewModel) === null || _a === void 0 ? void 0 : _a.state; }, (state) => {
523
+ if (state === 'ready') {
524
+ this._showSearchWidget = false;
525
+ this.progressStatus.emit(1);
526
+ this.drawComplete.emit();
527
+ }
528
+ });
529
+ this._editor.viewModel.addHandles(formHandle);
521
530
  //Add handle to watch editor viewmodel state and then show the search widget
522
- const formHandle = this.reactiveUtils.watch(() => this._editor.viewModel.state, (state) => {
531
+ const createFeatureHandle = this.reactiveUtils.watch(() => this._editor.viewModel.state, (state) => {
523
532
  if (state === 'creating-features') {
524
533
  this._editorLoading = true;
525
534
  this._showSearchWidget = true;
526
535
  }
527
536
  });
528
- this._editor.viewModel.addHandles(formHandle);
537
+ this._editor.viewModel.addHandles(createFeatureHandle);
529
538
  }
530
539
  /**
531
540
  * Start creating the feature
@@ -543,14 +552,6 @@ const CreateFeature = class {
543
552
  setTimeout(() => {
544
553
  //on form submit
545
554
  this._editor.viewModel.featureFormViewModel.on('submit', this.submitted.bind(this));
546
- //on sketch complete emit the event
547
- this._editor.viewModel.sketchViewModel.on("create", (evt) => {
548
- if (evt.state === "complete") {
549
- this._showSearchWidget = false;
550
- this.progressStatus.emit(1);
551
- this.drawComplete.emit();
552
- }
553
- });
554
555
  //hides the header and footer elements in editor widget
555
556
  this.hideEditorsElements().then(() => {
556
557
  resolve({});
@@ -664,13 +665,13 @@ const CreateFeature = class {
664
665
  * @protected
665
666
  */
666
667
  async hideEditorsElements() {
667
- var _a;
668
+ var _a, _b;
668
669
  if (!this.customizeSubmit) {
669
670
  return;
670
671
  }
671
672
  await this.timeout(700);
672
673
  //hides the header and footer on the featureForm
673
- (_a = this.el.querySelector('.esri-editor').querySelectorAll('calcite-flow-item')) === null || _a === void 0 ? void 0 : _a.forEach((flowItem) => {
674
+ (_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) => {
674
675
  var _a, _b, _c, _d, _e;
675
676
  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');
676
677
  //hide the header
@@ -738,6 +739,7 @@ const CreateRelatedFeature = class {
738
739
  this.success = createEvent(this, "success", 7);
739
740
  this.fail = createEvent(this, "fail", 7);
740
741
  this.isActionPending = createEvent(this, "isActionPending", 7);
742
+ this.formReady = createEvent(this, "formReady", 7);
741
743
  /**
742
744
  * boolean: Flag to maintain form submission using submit button
743
745
  */
@@ -830,7 +832,7 @@ const CreateRelatedFeature = class {
830
832
  }
831
833
  render() {
832
834
  const loaderClass = this._editorLoading ? "" : "display-none";
833
- return (h("calcite-loader", { key: 'a8fd1e83a4a9614779be19a11e6028b3a402cbd2', class: loaderClass, label: "", scale: "s" }));
835
+ return (h("calcite-loader", { key: '5302b1166a175b0605604792cd40b9d3fbfabd02', class: loaderClass, label: "", scale: "s" }));
834
836
  }
835
837
  /**
836
838
  * StencilJS: Called once just after the component is fully loaded and the first render() occurs.
@@ -878,6 +880,13 @@ const CreateRelatedFeature = class {
878
880
  }
879
881
  });
880
882
  this._editor.viewModel.addHandles(attachmentHandle);
883
+ //Add handle to watch featureFormViewModel ready state
884
+ const formHandle = this.reactiveUtils.watch(() => { var _a; return (_a = this._editor.viewModel.featureFormViewModel) === null || _a === void 0 ? void 0 : _a.state; }, (state) => {
885
+ if (state === 'ready') {
886
+ this.formReady.emit();
887
+ }
888
+ });
889
+ this._editor.viewModel.addHandles(formHandle);
881
890
  }
882
891
  /**
883
892
  * Start creating the feature feature form
@@ -903,8 +912,6 @@ const CreateRelatedFeature = class {
903
912
  await this._editor.startCreateFeaturesWorkflowAtFeatureCreation(creationInfo);
904
913
  //hides the header and footer elements in editor widget
905
914
  await this.hideEditorsElements();
906
- // Emit an event to show submit cancel buttons
907
- this.isActionPending.emit(false);
908
915
  this._editor.viewModel.featureFormViewModel.on('submit', this.submitted.bind(this));
909
916
  }
910
917
  /**
@@ -1312,10 +1319,6 @@ const FeatureDetails = class {
1312
1319
  const param = { updateFeatures: [newGraphicInstance] };
1313
1320
  await selectedLayer.applyEdits(param).then(() => {
1314
1321
  this._selectedGraphic = selectFeatureAttr;
1315
- //update the current graphics in info card so that, the updated values are reflected in popup content
1316
- if (this._infoCard) {
1317
- void this._infoCard.updateCurrentGraphic(this._selectedGraphic);
1318
- }
1319
1322
  //store the like dislike value for the current selected graphic in local storage
1320
1323
  this.setInLocalStorage();
1321
1324
  this._updating = false;
@@ -109,7 +109,7 @@ const CrowdsourceReporter = class {
109
109
  */
110
110
  render() {
111
111
  const themeClass = this.theme === "dark" ? "calcite-mode-dark" : "calcite-mode-light";
112
- return (h(Host, { key: '119bb8b1c9115dca4e15c45ddd8e7fbed500b4d7' }, this._reportSubmitted && h("calcite-alert", { key: 'ef85c61fb5c9eaac9391c1e37494ef5e4244dadb', "auto-close": true, class: themeClass + " report-submitted-msg", icon: "check-circle", kind: "success", label: "", onCalciteAlertClose: () => { this._reportSubmitted = false; }, open: true, placement: "top" }, h("div", { key: '616a75103a227cf1b50d9e43fea129afc3fee4f9', slot: "message" }, this.reportSubmittedMessage ? this.reportSubmittedMessage : this._translations.submitMsg)), this._featureCreationFailedErrorMsg && h("calcite-alert", { key: '2faf9a9729bf90b87e044bfe8958571735f2cbf5', "auto-close": true, class: themeClass, icon: "x-octagon", kind: "danger", label: "", onCalciteAlertClose: () => { this._featureCreationFailedErrorMsg = ""; }, open: true, placement: "top" }, h("div", { key: '66cdf81166042ff4efddd4cc5801d790463d75fc', slot: "title" }, this._translations.error), h("div", { key: 'ad289b06742d2159d6fcfbdc42ecc9fb6d81f362', slot: "message" }, this._featureCreationFailedErrorMsg)), this._commentSubmitted && h("calcite-alert", { key: '27aee542bfd2cae8972035d17167407b35b5eb76', "auto-close": true, class: 'report-submitted ' + themeClass, icon: "check-circle", kind: "success", label: "", onCalciteAlertClose: () => { this._commentSubmitted = false; }, open: true, placement: "top" }, h("div", { key: '70a8a21de05b00d409adb226d6393817f7514930', slot: "message" }, this._translations.commentSubmittedMsg)), this._addingCommentFailed && h("calcite-alert", { key: '107ab01eca03500faeb4db5a2ac0e9dc7261e6fc', "auto-close": true, class: themeClass, icon: "x-octagon", kind: "danger", label: "", onCalciteAlertClose: () => { this._addingCommentFailed = false; }, open: true, placement: "top" }, h("div", { key: '31e6fba8c28489f87897a13ebb4e7b8956452191', slot: "title" }, this._translations.error), h("div", { key: '6f0868946ef6e04490ba1e0806a03e26c756760b', slot: "message" }, this._translations.addingCommentFailedMsg)), h("div", { key: 'e169b7b466023010d45151ca9b7dfb900d8d7f9f' }, h("calcite-shell", { key: '72899b8eff6622233224df91223ee5d59539905b', "content-behind": true }, this._getReporter())), this.filterModal()));
112
+ return (h(Host, { key: 'e512e2693a586f8a6da7bcfa171feb60da26aee3' }, this._reportSubmitted && h("calcite-alert", { key: 'e5805ba948f1dc43eba2a78716af452cf71a8222', "auto-close": true, class: themeClass + " report-submitted-msg", icon: "check-circle", kind: "success", label: "", onCalciteAlertClose: () => { this._reportSubmitted = false; }, open: true, placement: "top" }, h("div", { key: '95b9accf1f09186c09c81cfb02a8939c4869ae8d', slot: "message" }, this.reportSubmittedMessage ? this.reportSubmittedMessage : this._translations.submitMsg)), this._featureCreationFailedErrorMsg && h("calcite-alert", { key: 'cab7f0e0f0d882612b4fa6f00799be9870aea6c5', "auto-close": true, class: themeClass, icon: "x-octagon", kind: "danger", label: "", onCalciteAlertClose: () => { this._featureCreationFailedErrorMsg = ""; }, open: true, placement: "top" }, h("div", { key: 'b9453672d85e26cf7bdeae0923cd36020d259d49', slot: "title" }, this._translations.error), h("div", { key: '5084315857bc88b8f80aaa411ac3fd5e4493e918', slot: "message" }, this._featureCreationFailedErrorMsg)), this._commentSubmitted && h("calcite-alert", { key: '62b7d9818913c3331ca9c8e4ed23c7f0c48a7946', "auto-close": true, class: 'report-submitted ' + themeClass, icon: "check-circle", kind: "success", label: "", onCalciteAlertClose: () => { this._commentSubmitted = false; }, open: true, placement: "top" }, h("div", { key: '5f18444fd375657db0c2a403cb453ead75536181', slot: "message" }, this._translations.commentSubmittedMsg)), this._addingCommentFailed && h("calcite-alert", { key: '732f08960095fc9fefcc79fc8df387a5a4c3f781', "auto-close": true, class: themeClass, icon: "x-octagon", kind: "danger", label: "", onCalciteAlertClose: () => { this._addingCommentFailed = false; }, open: true, placement: "top" }, h("div", { key: '16415430cf33ce53c0d49cab19dce2c3e34257d6', slot: "title" }, this._translations.error), h("div", { key: '83e5918e00902bd49512165f4aa62813cecb4619', slot: "message" }, this._translations.addingCommentFailedMsg)), h("div", { key: '3e9dadd880319708e64e717ba7e7adaddf97b935' }, h("calcite-shell", { key: 'c72664d361b3904bc191668207c3ad31ff1f98c9', "content-behind": true }, this._getReporter())), this.filterModal()));
113
113
  }
114
114
  //--------------------------------------------------------------------------
115
115
  //
@@ -286,7 +286,7 @@ const CrowdsourceReporter = class {
286
286
  * @protected
287
287
  */
288
288
  getFeatureCreateFlowItem() {
289
- return (h("calcite-flow-item", { collapsed: this.isMobile && this._sidePanelCollapsed, heading: this._selectedLayerName, onCalciteFlowItemBack: this.backFromCreateFeaturePanel.bind(this) }, this.isMobile && this.getActionToExpandCollapsePanel(), this._showSubmitCancelButton && h("div", { class: "width-full", slot: "footer" }, h("calcite-button", { appearance: "solid", class: "footer-top-button footer-button", onClick: this.onCreateFeatureSubmitButtonClick.bind(this), width: "full" }, this._translations.submit), h("calcite-button", { appearance: "outline", class: "footer-button", onClick: this.backFromCreateFeaturePanel.bind(this), width: "full" }, this._translations.cancel)), h("calcite-panel", { "full-height": true, "full-width": true }, h("div", { class: "progress-bar" }, h("calcite-progress", { type: "determinate", value: this._updatedProgressBarStatus })), h("calcite-notice", { class: "notice-msg", icon: "lightbulb", kind: "success", open: true }, h("div", { slot: "message" }, this._translations.featureEditFormInfoMsg)), h("create-feature", { customizeSubmit: true, mapView: this.mapView, onDrawComplete: this.onDrawComplete.bind(this), onEditingAttachment: this.showSubmitCancelButton.bind(this), onFail: this.createFeatureFailed.bind(this), onProgressStatus: this.updatedProgressStatus.bind(this), onSuccess: this.onReportSubmitted.bind(this), ref: el => this._createFeature = el, searchConfiguration: this.searchConfiguration, selectedLayerId: this._selectedLayerId }))));
289
+ return (h("calcite-flow-item", { collapsed: this.isMobile && this._sidePanelCollapsed, heading: this._selectedLayerName, onCalciteFlowItemBack: this.backFromCreateFeaturePanel.bind(this) }, this.isMobile && this.getActionToExpandCollapsePanel(), this._showSubmitCancelButton && h("div", { class: "width-full", slot: "footer" }, h("calcite-button", { appearance: "solid", class: "footer-top-button footer-button", onClick: this.onCreateFeatureSubmitButtonClick.bind(this), width: "full" }, this._translations.submit), h("calcite-button", { appearance: "outline", class: "footer-button", onClick: this.backFromCreateFeaturePanel.bind(this), width: "full" }, this._translations.cancel)), h("calcite-panel", { "full-height": true, "full-width": true }, h("div", { class: "progress-bar" }, h("calcite-progress", { type: "determinate", value: this._updatedProgressBarStatus })), h("calcite-notice", { class: "notice-msg", icon: "lightbulb", kind: "success", open: true }, h("div", { slot: "message" }, this._translations.featureEditFormInfoMsg)), h("create-feature", { customizeSubmit: true, mapView: this.mapView, onDrawComplete: this.onFormReady.bind(this), onEditingAttachment: this.showSubmitCancelButton.bind(this), onFail: this.createFeatureFailed.bind(this), onProgressStatus: this.updatedProgressStatus.bind(this), onSuccess: this.onReportSubmitted.bind(this), ref: el => this._createFeature = el, searchConfiguration: this.searchConfiguration, selectedLayerId: this._selectedLayerId }))));
290
290
  }
291
291
  /**
292
292
  * Update the progress bar status when editor panel changes
@@ -297,10 +297,12 @@ const CrowdsourceReporter = class {
297
297
  this._updatedProgressBarStatus = evt.detail;
298
298
  }
299
299
  /**
300
- * When drawing of incident location completed on map show the submit and cancel button
300
+ * When form is ready then show submit and cancel button
301
301
  * @protected
302
302
  */
303
- onDrawComplete() {
303
+ onFormReady() {
304
+ // update the form state when form is ready
305
+ this.updateFormState(true);
304
306
  this._showSubmitCancelButton = true;
305
307
  }
306
308
  /**
@@ -327,6 +329,10 @@ const CrowdsourceReporter = class {
327
329
  if (this._createFeature) {
328
330
  void this._createFeature.close();
329
331
  }
332
+ //on back form will be closed, so update the form state
333
+ if (this.isFormOpen) {
334
+ this.updateFormState(false);
335
+ }
330
336
  this.backFromSelectedPanel();
331
337
  }
332
338
  /**
@@ -347,6 +353,10 @@ const CrowdsourceReporter = class {
347
353
  void this._createRelatedFeature.close();
348
354
  this._showSubmitCancelButton = false;
349
355
  }
356
+ //on back form will be closed, so update the form state
357
+ if (this.isFormOpen) {
358
+ this.updateFormState(false);
359
+ }
350
360
  this.backFromSelectedPanel();
351
361
  }
352
362
  /**
@@ -363,6 +373,10 @@ const CrowdsourceReporter = class {
363
373
  * @protected
364
374
  */
365
375
  onReportSubmitted() {
376
+ //on report submit form will be closed, so update the form state
377
+ if (this.isFormOpen) {
378
+ this.updateFormState(false);
379
+ }
366
380
  this._reportSubmitted = true;
367
381
  void this.navigateToHomePage();
368
382
  }
@@ -499,7 +513,16 @@ const CrowdsourceReporter = class {
499
513
  */
500
514
  toggleSidePanel() {
501
515
  this._sidePanelCollapsed = !this._sidePanelCollapsed;
502
- this.togglePanel.emit(this._sidePanelCollapsed);
516
+ this.togglePanel.emit({ panelState: this._sidePanelCollapsed, isFormOpen: this.isFormOpen });
517
+ }
518
+ /**
519
+ * Hide map when form open in case of mobile
520
+ * @param isFormOpen updated form state
521
+ * @protected
522
+ */
523
+ updateFormState(isFormOpen) {
524
+ this.isFormOpen = isFormOpen;
525
+ this.togglePanel.emit({ panelState: this._sidePanelCollapsed, isFormOpen: this.isFormOpen });
503
526
  }
504
527
  /**
505
528
  * When feature is selected from list store that and show feature details
@@ -594,7 +617,7 @@ const CrowdsourceReporter = class {
594
617
  * @returns Node
595
618
  */
596
619
  getAddCommentFlowItem() {
597
- return (h("calcite-flow-item", { collapsed: this.isMobile && this._sidePanelCollapsed, heading: this._relatedTable.title, onCalciteFlowItemBack: this.backFromCreateRelatedFeaturePanel.bind(this) }, this.isMobile && this.getActionToExpandCollapsePanel(), h("div", { class: "width-full", slot: "footer" }, this._showSubmitCancelButton && h("div", { class: "width-full", slot: "footer" }, h("calcite-button", { appearance: "solid", class: "footer-top-button footer-button", onClick: this.onCreateRelatedFeatureSubmitButtonClick.bind(this), width: "full" }, this._translations.submit), h("calcite-button", { appearance: "outline", class: "footer-button", onClick: this.backFromCreateRelatedFeaturePanel.bind(this), width: "full" }, this._translations.cancel))), h("calcite-panel", null, h("create-related-feature", { customizeSubmit: true, mapView: this.mapView, onFail: this.addCommentFailed.bind(this), onIsActionPending: this.showSubmitCancelButton.bind(this), onSuccess: this.onCommentSubmitted.bind(this), ref: el => this._createRelatedFeature = el, selectedFeature: this._currentFeature, table: this._relatedTable }))));
620
+ return (h("calcite-flow-item", { collapsed: this.isMobile && this._sidePanelCollapsed, heading: this._relatedTable.title, onCalciteFlowItemBack: this.backFromCreateRelatedFeaturePanel.bind(this) }, this.isMobile && this.getActionToExpandCollapsePanel(), h("div", { class: "width-full", slot: "footer" }, this._showSubmitCancelButton && h("div", { class: "width-full", slot: "footer" }, h("calcite-button", { appearance: "solid", class: "footer-top-button footer-button", onClick: this.onCreateRelatedFeatureSubmitButtonClick.bind(this), width: "full" }, this._translations.submit), h("calcite-button", { appearance: "outline", class: "footer-button", onClick: this.backFromCreateRelatedFeaturePanel.bind(this), width: "full" }, this._translations.cancel))), h("calcite-panel", null, h("create-related-feature", { customizeSubmit: true, mapView: this.mapView, onFail: this.addCommentFailed.bind(this), onFormReady: this.onFormReady.bind(this), onIsActionPending: this.showSubmitCancelButton.bind(this), onSuccess: this.onCommentSubmitted.bind(this), ref: el => this._createRelatedFeature = el, selectedFeature: this._currentFeature, table: this._relatedTable }))));
598
621
  }
599
622
  /**
600
623
  * Sets the selected features and updates the first feature as the current selected feature