@esri/solutions-components 0.10.29 → 0.10.31

Sign up to get free protection for your applications and to get access to all the features.
Files changed (127) hide show
  1. package/dist/cjs/calcite-alert_5.cjs.entry.js +33 -12
  2. package/dist/cjs/calcite-flow_4.cjs.entry.js +15 -17
  3. package/dist/cjs/card-manager_3.cjs.entry.js +0 -2
  4. package/dist/cjs/crowdsource-reporter.cjs.entry.js +45 -22
  5. package/dist/cjs/feature-list.cjs.entry.js +16 -10
  6. package/dist/cjs/loader.cjs.js +1 -1
  7. package/dist/cjs/map-select-tools_3.cjs.entry.js +4 -1
  8. package/dist/cjs/solutions-components.cjs.js +1 -1
  9. package/dist/collection/assets/t9n/create-feature/resources_ar.json +1 -1
  10. package/dist/collection/assets/t9n/create-feature/resources_bg.json +1 -1
  11. package/dist/collection/assets/t9n/create-feature/resources_bs.json +1 -1
  12. package/dist/collection/assets/t9n/create-feature/resources_ca.json +1 -1
  13. package/dist/collection/assets/t9n/create-feature/resources_cs.json +1 -1
  14. package/dist/collection/assets/t9n/create-feature/resources_da.json +1 -1
  15. package/dist/collection/assets/t9n/create-feature/resources_de.json +1 -1
  16. package/dist/collection/assets/t9n/create-feature/resources_el.json +1 -1
  17. package/dist/collection/assets/t9n/create-feature/resources_es.json +1 -1
  18. package/dist/collection/assets/t9n/create-feature/resources_et.json +1 -1
  19. package/dist/collection/assets/t9n/create-feature/resources_fi.json +1 -1
  20. package/dist/collection/assets/t9n/create-feature/resources_fr.json +1 -1
  21. package/dist/collection/assets/t9n/create-feature/resources_he.json +1 -1
  22. package/dist/collection/assets/t9n/create-feature/resources_hr.json +1 -1
  23. package/dist/collection/assets/t9n/create-feature/resources_hu.json +1 -1
  24. package/dist/collection/assets/t9n/create-feature/resources_id.json +1 -1
  25. package/dist/collection/assets/t9n/create-feature/resources_it.json +1 -1
  26. package/dist/collection/assets/t9n/create-feature/resources_ja.json +1 -1
  27. package/dist/collection/assets/t9n/create-feature/resources_ko.json +1 -1
  28. package/dist/collection/assets/t9n/create-feature/resources_lt.json +1 -1
  29. package/dist/collection/assets/t9n/create-feature/resources_lv.json +1 -1
  30. package/dist/collection/assets/t9n/create-feature/resources_nb.json +1 -1
  31. package/dist/collection/assets/t9n/create-feature/resources_nl.json +1 -1
  32. package/dist/collection/assets/t9n/create-feature/resources_pl.json +1 -1
  33. package/dist/collection/assets/t9n/create-feature/resources_pt-BR.json +2 -2
  34. package/dist/collection/assets/t9n/create-feature/resources_pt-PT.json +1 -1
  35. package/dist/collection/assets/t9n/create-feature/resources_ro.json +1 -1
  36. package/dist/collection/assets/t9n/create-feature/resources_ru.json +1 -1
  37. package/dist/collection/assets/t9n/create-feature/resources_sk.json +1 -1
  38. package/dist/collection/assets/t9n/create-feature/resources_sl.json +1 -1
  39. package/dist/collection/assets/t9n/create-feature/resources_sr.json +1 -1
  40. package/dist/collection/assets/t9n/create-feature/resources_sv.json +1 -1
  41. package/dist/collection/assets/t9n/create-feature/resources_th.json +1 -1
  42. package/dist/collection/assets/t9n/create-feature/resources_tr.json +1 -1
  43. package/dist/collection/assets/t9n/create-feature/resources_uk.json +1 -1
  44. package/dist/collection/assets/t9n/create-feature/resources_vi.json +1 -1
  45. package/dist/collection/assets/t9n/create-feature/resources_zh-CN.json +1 -1
  46. package/dist/collection/assets/t9n/create-feature/resources_zh-HK.json +1 -1
  47. package/dist/collection/assets/t9n/create-feature/resources_zh-TW.json +1 -1
  48. package/dist/collection/components/card-manager/card-manager.js +0 -2
  49. package/dist/collection/components/create-feature/create-feature.css +8 -1
  50. package/dist/collection/components/create-feature/create-feature.js +32 -31
  51. package/dist/collection/components/create-related-feature/create-related-feature.js +9 -26
  52. package/dist/collection/components/crowdsource-reporter/crowdsource-reporter.js +45 -23
  53. package/dist/collection/components/feature-details/feature-details.js +6 -8
  54. package/dist/collection/components/feature-list/feature-list.js +16 -10
  55. package/dist/collection/components/map-select-tools/map-select-tools.js +4 -1
  56. package/dist/components/card-manager2.js +0 -2
  57. package/dist/components/create-feature2.js +33 -13
  58. package/dist/components/create-related-feature2.js +9 -10
  59. package/dist/components/crowdsource-reporter.js +45 -23
  60. package/dist/components/feature-details2.js +6 -8
  61. package/dist/components/feature-list2.js +16 -10
  62. package/dist/components/map-select-tools2.js +4 -1
  63. package/dist/esm/calcite-alert_5.entry.js +33 -12
  64. package/dist/esm/calcite-flow_4.entry.js +15 -17
  65. package/dist/esm/card-manager_3.entry.js +0 -2
  66. package/dist/esm/crowdsource-reporter.entry.js +45 -22
  67. package/dist/esm/feature-list.entry.js +16 -10
  68. package/dist/esm/loader.js +1 -1
  69. package/dist/esm/map-select-tools_3.entry.js +4 -1
  70. package/dist/esm/solutions-components.js +1 -1
  71. package/dist/solutions-components/assets/t9n/create-feature/resources_ar.json +1 -1
  72. package/dist/solutions-components/assets/t9n/create-feature/resources_bg.json +1 -1
  73. package/dist/solutions-components/assets/t9n/create-feature/resources_bs.json +1 -1
  74. package/dist/solutions-components/assets/t9n/create-feature/resources_ca.json +1 -1
  75. package/dist/solutions-components/assets/t9n/create-feature/resources_cs.json +1 -1
  76. package/dist/solutions-components/assets/t9n/create-feature/resources_da.json +1 -1
  77. package/dist/solutions-components/assets/t9n/create-feature/resources_de.json +1 -1
  78. package/dist/solutions-components/assets/t9n/create-feature/resources_el.json +1 -1
  79. package/dist/solutions-components/assets/t9n/create-feature/resources_es.json +1 -1
  80. package/dist/solutions-components/assets/t9n/create-feature/resources_et.json +1 -1
  81. package/dist/solutions-components/assets/t9n/create-feature/resources_fi.json +1 -1
  82. package/dist/solutions-components/assets/t9n/create-feature/resources_fr.json +1 -1
  83. package/dist/solutions-components/assets/t9n/create-feature/resources_he.json +1 -1
  84. package/dist/solutions-components/assets/t9n/create-feature/resources_hr.json +1 -1
  85. package/dist/solutions-components/assets/t9n/create-feature/resources_hu.json +1 -1
  86. package/dist/solutions-components/assets/t9n/create-feature/resources_id.json +1 -1
  87. package/dist/solutions-components/assets/t9n/create-feature/resources_it.json +1 -1
  88. package/dist/solutions-components/assets/t9n/create-feature/resources_ja.json +1 -1
  89. package/dist/solutions-components/assets/t9n/create-feature/resources_ko.json +1 -1
  90. package/dist/solutions-components/assets/t9n/create-feature/resources_lt.json +1 -1
  91. package/dist/solutions-components/assets/t9n/create-feature/resources_lv.json +1 -1
  92. package/dist/solutions-components/assets/t9n/create-feature/resources_nb.json +1 -1
  93. package/dist/solutions-components/assets/t9n/create-feature/resources_nl.json +1 -1
  94. package/dist/solutions-components/assets/t9n/create-feature/resources_pl.json +1 -1
  95. package/dist/solutions-components/assets/t9n/create-feature/resources_pt-BR.json +2 -2
  96. package/dist/solutions-components/assets/t9n/create-feature/resources_pt-PT.json +1 -1
  97. package/dist/solutions-components/assets/t9n/create-feature/resources_ro.json +1 -1
  98. package/dist/solutions-components/assets/t9n/create-feature/resources_ru.json +1 -1
  99. package/dist/solutions-components/assets/t9n/create-feature/resources_sk.json +1 -1
  100. package/dist/solutions-components/assets/t9n/create-feature/resources_sl.json +1 -1
  101. package/dist/solutions-components/assets/t9n/create-feature/resources_sr.json +1 -1
  102. package/dist/solutions-components/assets/t9n/create-feature/resources_sv.json +1 -1
  103. package/dist/solutions-components/assets/t9n/create-feature/resources_th.json +1 -1
  104. package/dist/solutions-components/assets/t9n/create-feature/resources_tr.json +1 -1
  105. package/dist/solutions-components/assets/t9n/create-feature/resources_uk.json +1 -1
  106. package/dist/solutions-components/assets/t9n/create-feature/resources_vi.json +1 -1
  107. package/dist/solutions-components/assets/t9n/create-feature/resources_zh-CN.json +1 -1
  108. package/dist/solutions-components/assets/t9n/create-feature/resources_zh-HK.json +1 -1
  109. package/dist/solutions-components/assets/t9n/create-feature/resources_zh-TW.json +1 -1
  110. package/dist/solutions-components/p-0a578582.entry.js +6 -0
  111. package/dist/solutions-components/p-1f072e2c.entry.js +11 -0
  112. package/dist/solutions-components/p-cc4c013e.entry.js +6 -0
  113. package/dist/solutions-components/p-dd0bd439.entry.js +17 -0
  114. package/dist/solutions-components/p-edd88d2d.entry.js +6 -0
  115. package/dist/solutions-components/{p-971b67d7.entry.js → p-ff8b0603.entry.js} +1 -1
  116. package/dist/solutions-components/solutions-components.esm.js +1 -1
  117. package/dist/types/components/create-feature/create-feature.d.ts +17 -5
  118. package/dist/types/components/create-related-feature/create-related-feature.d.ts +4 -4
  119. package/dist/types/components/crowdsource-reporter/crowdsource-reporter.d.ts +10 -9
  120. package/dist/types/components/feature-list/feature-list.d.ts +1 -2
  121. package/dist/types/components.d.ts +0 -9
  122. package/package.json +1 -1
  123. package/dist/solutions-components/p-24ae549d.entry.js +0 -6
  124. package/dist/solutions-components/p-399dc933.entry.js +0 -17
  125. package/dist/solutions-components/p-634f86e5.entry.js +0 -11
  126. package/dist/solutions-components/p-94a5d59f.entry.js +0 -6
  127. package/dist/solutions-components/p-988c0d5e.entry.js +0 -6
@@ -575,7 +575,7 @@ const FlowItem = class {
575
575
  };
576
576
  FlowItem.style = CalciteFlowItemStyle0;
577
577
 
578
- const createFeatureCss = ":host{display:block}.esri-editor__panel-toolbar{display:none !important}.esri-editor__panel-content{padding-block:0px !important}.esri-editor .esri-item-list__group__header{display:none !important}.esri-editor__panel-content__section .esri-widget__heading{display:none !important}.esri-editor .esri-item-list__filter-container--sticky{padding-block:0px !important;padding-inline:10px !important}.search-widget{width:92% !important;margin:5px 14px 20px 14px}.display-none{display:none !important}.hide-map{height:1%;visibility:hidden}.show-map{padding:10px !important;position:absolute;bottom:0;width:calc(100% - 22px);height:50%}.notice-msg{padding:10px;width:calc(100% - 20px)}.esri-editor__panel-content{padding-block:10px !important}";
578
+ const createFeatureCss = ":host{display:block}.esri-editor__panel-toolbar{display:none !important}.esri-editor__panel-content{padding-block:0px !important}.esri-editor .esri-item-list__group__header{display:none !important}.esri-editor__panel-content__section .esri-widget__heading{display:none !important}.esri-editor .esri-item-list__filter-container--sticky{padding-block:0px !important;padding-inline:10px !important}.search-widget{width:92% !important;margin:5px 14px 20px 14px}.display-none{display:none !important}.hide-map{height:1%;visibility:hidden}.show-map{padding:10px !important;position:absolute;bottom:0;width:calc(100% - 22px)}.notice-msg{padding:10px;width:calc(100% - 20px)}.esri-editor__panel-content{padding-block:10px !important}@media only screen and (max-width: 600px){.esri-editor__panel-content{padding-block:0 !important;min-height:0 !important}}";
579
579
  const CreateFeatureStyle0 = createFeatureCss;
580
580
 
581
581
  const CreateFeature = class {
@@ -680,6 +680,14 @@ const CreateFeature = class {
680
680
  * __esri.FeatureLayer: selected feature layer;
681
681
  */
682
682
  _selectedLayer;
683
+ /**
684
+ * HTMLDivElement: refrence for search div element
685
+ */
686
+ _searchDiv;
687
+ /**
688
+ * HTMLCalciteNoticeElement: calcite notice refrence element
689
+ */
690
+ _calciteNotice;
683
691
  //--------------------------------------------------------------------------
684
692
  //
685
693
  // Watch handlers
@@ -727,15 +735,6 @@ const CreateFeature = class {
727
735
  // Methods (public)
728
736
  //
729
737
  //--------------------------------------------------------------------------
730
- /**
731
- * Destroy the Editor widget instance
732
- * @returns Promise that resolves when the operation is complete
733
- */
734
- async close() {
735
- if (this._editor) {
736
- this._editor.destroy();
737
- }
738
- }
739
738
  /**
740
739
  * Submit the created feature
741
740
  * @returns Promise that resolves when the operation is complete
@@ -803,6 +802,26 @@ const CreateFeature = class {
803
802
  async componentDidLoad() {
804
803
  await this.init();
805
804
  }
805
+ /**
806
+ * Called after each render
807
+ * Used to adjust the map top in case of mobile
808
+ */
809
+ componentDidRender() {
810
+ // update the map top according to space occupied by notice msg and search
811
+ if (this.isMobile) {
812
+ // get the height of notice, search and add 80px(editor msg) height to adjust the map top
813
+ const top = this._calciteNotice.offsetHeight + this._searchDiv.offsetHeight + 80;
814
+ this._mapViewContainer.style.top = `${top}px`;
815
+ }
816
+ }
817
+ /**
818
+ * StencilJS: Called every time the component is disconnected from the DOM,
819
+ */
820
+ disconnectedCallback() {
821
+ if (this._editor) {
822
+ this._editor.destroy();
823
+ }
824
+ }
806
825
  /**
807
826
  * Renders the component.
808
827
  */
@@ -820,7 +839,8 @@ const CreateFeature = class {
820
839
  else if (this._currentPage === 'featureForm') {
821
840
  guidingMsg = this._translations.provideDetailsMsg;
822
841
  }
823
- return (index.h(index.Fragment, { key: '204a51ffceb754c202bcf93fda18560e6101ca65' }, showGuidingMsg && index.h("calcite-notice", { key: '329daebd157ea330d746508dcf2198fa1d56f852', class: "notice-msg", icon: "lightbulb", kind: "success", open: true }, index.h("div", { key: '995898cf5e0ea57d41571429758baf6c459097af', slot: "message" }, guidingMsg)), index.h("calcite-loader", { key: '59bc1bce0936df76a432d75a5a4613d89203571c', class: loaderClass, label: "", scale: "s" }), index.h("div", { key: '814e3e6c63dc1880f235d2ffc5aa8ca9e22eb51e', class: featureFormClass, id: "feature-form" }), this.enableSearch && index.h("div", { key: '22146ca4dd94f57dddf80a04b4aeaa92fc0d3b81', class: `search-widget ${showSearchWidget} ${featureFormClass}`, id: "search-widget-ref" }), index.h("div", { key: '8863876b3393fdcd4d2cdf254289f80d9fd16ef1', class: `${mobileMapClass}`, ref: (el) => { this._mapViewContainer = el; } })));
842
+ return (index.h(index.Fragment, { key: '89634bf5707ea8390416d3087bfbe4e747bafcd7' }, showGuidingMsg && index.h("calcite-notice", { key: '4269224c2904f29060081f6cb8f383f1cf8d741d', class: "notice-msg", icon: "lightbulb", kind: "success", open: true, ref: el => this._calciteNotice = el }, index.h("div", { key: 'ecc3cca85c81d1cb7ab7cdc89b99e31afcb55f76', slot: "message" }, guidingMsg)), index.h("calcite-loader", { key: '34e492c0c469b39d4cfbcda17c4ba196ccb39eb8', class: loaderClass, label: "", scale: "s" }), index.h("div", { key: 'b2073ef4b6124b54038de34798cdf83337626023', class: featureFormClass, id: "feature-form" }), this.enableSearch &&
843
+ index.h("div", { key: 'cd13e98b6a40d5d89d271b5785f797e9bfc19900', class: `search-widget ${showSearchWidget} ${featureFormClass}`, id: "search-widget-ref", ref: el => this._searchDiv = el }), index.h("div", { key: '2575b2d20f7713b05a2024e77452af93eb64e147', class: `${mobileMapClass}`, ref: (el) => { this._mapViewContainer = el; } })));
824
844
  }
825
845
  //--------------------------------------------------------------------------
826
846
  //
@@ -868,7 +888,8 @@ const CreateFeature = class {
868
888
  this._mapViewContainer.classList.add('hide-map');
869
889
  await new this.MapView({
870
890
  map: this.mapView.map,
871
- container: this._mapViewContainer
891
+ container: this._mapViewContainer,
892
+ zoom: this.mapView.zoom
872
893
  }).when((view) => {
873
894
  // update the mapView and load all widgets
874
895
  this._updatedMapView = view;
@@ -234,14 +234,6 @@ const CreateRelatedFeature = class {
234
234
  // Methods (public)
235
235
  //
236
236
  //--------------------------------------------------------------------------
237
- /**
238
- * Destroy the Editor widget instance
239
- */
240
- async close() {
241
- if (this._editor) {
242
- this._editor.destroy();
243
- }
244
- }
245
237
  /**
246
238
  * Submit the comment
247
239
  */
@@ -308,7 +300,7 @@ const CreateRelatedFeature = class {
308
300
  }
309
301
  render() {
310
302
  const loaderClass = this._editorLoading ? "" : "display-none";
311
- return (index.h(index.Fragment, { key: '707536f66fc4de711e3f519a8869507bf2d6f566' }, this.showGuidingMsg && index.h("calcite-notice", { key: 'c3fb5a706d250b6db7dac9ab20b949a81eeb0c5f', class: "notice-msg", icon: "lightbulb", kind: "success", open: true }, index.h("div", { key: 'a9aa0a8137a256240c5e8d0c77dc364b31b5b2a1', slot: "message" }, this._translations.provideDetailsMsg)), index.h("calcite-loader", { key: '4e1295a1a867da2c9f1fe4428bdc115bd8643f75', class: loaderClass, label: "", scale: "s" })));
303
+ return (index.h(index.Fragment, { key: '641b4f6f51bce04b6263a1d7dc72a31839df970d' }, this.showGuidingMsg && index.h("calcite-notice", { key: '1a6e577bcc0632a7bc69dd411a692062a7ad176e', class: "notice-msg", icon: "lightbulb", kind: "success", open: true }, index.h("div", { key: '55c5836314fcca69a259be3a36e34c527edcabf3', slot: "message" }, this._translations.provideDetailsMsg)), index.h("calcite-loader", { key: '18c5603a4a75c67a160a71caa15e94790f66d60b', class: loaderClass, label: "", scale: "s" })));
312
304
  }
313
305
  /**
314
306
  * StencilJS: Called once just after the component is fully loaded and the first render() occurs.
@@ -316,6 +308,14 @@ const CreateRelatedFeature = class {
316
308
  async componentDidLoad() {
317
309
  await this.init();
318
310
  }
311
+ /**
312
+ * StencilJS: Called every time the component is disconnected from the DOM,
313
+ */
314
+ disconnectedCallback() {
315
+ if (this._editor) {
316
+ this._editor.destroy();
317
+ }
318
+ }
319
319
  /**
320
320
  * Display editor widget to create the new feature
321
321
  * @protected
@@ -704,14 +704,12 @@ const FeatureDetails = class {
704
704
  const allTables = await mapViewUtils.getAllTables(this.mapView);
705
705
  let relatedTable = null;
706
706
  let validRelationshipId = null;
707
- allTables.some((table) => {
708
- if (selectedLayer.url === table.url) {
709
- const relationship = selectedLayer.relationships.filter(a => table.layerId === a.relatedTableId);
710
- if (relationship?.length) {
711
- relatedTable = table;
712
- validRelationshipId = relationship[0].id;
713
- return true;
714
- }
707
+ selectedLayer.relationships.some((relationship) => {
708
+ const relatedTables = allTables.filter((table) => selectedLayer.url === table.url && table.layerId === relationship.relatedTableId);
709
+ if (relatedTables && relatedTables.length > 0) {
710
+ relatedTable = relatedTables[0];
711
+ validRelationshipId = relationship.id;
712
+ return true;
715
713
  }
716
714
  });
717
715
  this.relatedTableId = relatedTable?.id ?? '';
@@ -174,7 +174,6 @@ const CardManager = class {
174
174
  */
175
175
  async _backFromCreateFeature() {
176
176
  if (this._createFeature) {
177
- await this._createFeature.close();
178
177
  this._showCreateFeatureComponent = false;
179
178
  this.backFromCreateWorkFlow.emit();
180
179
  }
@@ -185,7 +184,6 @@ const CardManager = class {
185
184
  * @protected
186
185
  */
187
186
  _featureCreated() {
188
- void this._createFeature.close();
189
187
  this._showCreateFeatureComponent = false;
190
188
  this._showSubmitBtn = false;
191
189
  this._isFeatureCreated = true;
@@ -58,7 +58,6 @@ const CrowdsourceReporter = class {
58
58
  this._filterActive = false;
59
59
  this._flowItems = [];
60
60
  this._hasValidLayers = false;
61
- this._loadingFeatureDetails = undefined;
62
61
  this._mapInfo = undefined;
63
62
  this._reportSubmitted = false;
64
63
  this._selectedLayerName = undefined;
@@ -211,6 +210,10 @@ const CrowdsourceReporter = class {
211
210
  * FilterInitState: filter's init state
212
211
  */
213
212
  _filterInitState;
213
+ /**
214
+ * string: Previous selected layer id
215
+ */
216
+ _prevSelectedLayerId;
214
217
  //--------------------------------------------------------------------------
215
218
  //
216
219
  // Watch handlers
@@ -311,7 +314,7 @@ const CrowdsourceReporter = class {
311
314
  */
312
315
  render() {
313
316
  const themeClass = this.theme === "dark" ? "calcite-mode-dark" : "calcite-mode-light";
314
- return (index.h(index.Host, { key: '198fe34894f73b66ac15c4f75b05e3159586a392' }, this._reportSubmitted && index.h("calcite-alert", { key: '2c07a26c0fce4f5b66a2245850f7fca6e7cc2333', "auto-close": true, class: themeClass + " report-submitted-msg", icon: "check-circle", kind: "success", label: "", onCalciteAlertClose: () => { this._reportSubmitted = false; }, open: true, placement: "top" }, index.h("div", { key: 'f3269fd5bc315913f25795fc4dda47d83de7166f', slot: "message" }, this.reportSubmittedMessage ? this.reportSubmittedMessage : this._translations.submitMsg)), this._featureCreationFailedErrorMsg && index.h("calcite-alert", { key: '974254aa4eec7166ce23c9513633174b26d45a4d', "auto-close": true, class: themeClass, icon: "x-octagon", kind: "danger", label: "", onCalciteAlertClose: () => { this._featureCreationFailedErrorMsg = ""; }, open: true, placement: "top" }, index.h("div", { key: 'f0e27267cb6bdc626340185ff3af5c8527c5755c', slot: "title" }, this._translations.error), index.h("div", { key: 'ce443229655784ecc106ef4f90375a0d2ba14679', slot: "message" }, this._featureCreationFailedErrorMsg)), this._commentSubmitted && index.h("calcite-alert", { key: '8094e9db5856630b6dbbd4f37de35afc8fc0cab9', "auto-close": true, class: 'report-submitted ' + themeClass, icon: "check-circle", kind: "success", label: "", onCalciteAlertClose: () => { this._commentSubmitted = false; }, open: true, placement: "top" }, index.h("div", { key: '9fea022654934c6b58064f71e6c7cb59e4429732', slot: "message" }, this.commentSubmittedMessage || this._translations.commentSubmittedMsg)), this._addingCommentFailed && index.h("calcite-alert", { key: '21cd17c9a43553c40427759070ec5f7d86bcb471', "auto-close": true, class: themeClass, icon: "x-octagon", kind: "danger", label: "", onCalciteAlertClose: () => { this._addingCommentFailed = false; }, open: true, placement: "top" }, index.h("div", { key: '82ca845385e34740ab2af082a5338a851ad0c006', slot: "title" }, this._translations.error), index.h("div", { key: '9dd641fe9e78e83387a266df51b8f709409bd332', slot: "message" }, this._translations.addingCommentFailedMsg)), index.h("div", { key: '1977a4e41c0f222385585f0a0a6c19a99432846b' }, index.h("calcite-shell", { key: '67d0771f744f5ba427cef2b453dee3470d2fe5bc', "content-behind": true }, this._getReporter()))));
317
+ return (index.h(index.Host, { key: 'bb2f79258038360e5c0b894ce5a21dcdd41d0ce4' }, this._reportSubmitted && index.h("calcite-alert", { key: 'aa244cd93326c8817b851d2465c7b9c453117ad2', "auto-close": true, class: themeClass + " report-submitted-msg", icon: "check-circle", kind: "success", label: "", onCalciteAlertClose: () => { this._reportSubmitted = false; }, open: true, placement: "top" }, index.h("div", { key: '25d6d6bd01ee8dc260bce41ea6c43eafa609292e', slot: "message" }, this.reportSubmittedMessage ? this.reportSubmittedMessage : this._translations.submitMsg)), this._featureCreationFailedErrorMsg && index.h("calcite-alert", { key: '06851f2f8cabebd0e953c31bdddfdeac363a4e6e', "auto-close": true, class: themeClass, icon: "x-octagon", kind: "danger", label: "", onCalciteAlertClose: () => { this._featureCreationFailedErrorMsg = ""; }, open: true, placement: "top" }, index.h("div", { key: 'f0d73a00a8150a78c48cc09e8901ad7dcb438e90', slot: "title" }, this._translations.error), index.h("div", { key: '0747a85bbf4936a28dd85a9ea0e8b416f70ee7cf', slot: "message" }, this._featureCreationFailedErrorMsg)), this._commentSubmitted && index.h("calcite-alert", { key: '55017090c066ad4e12023315bde39e8c7fa67091', "auto-close": true, class: 'report-submitted ' + themeClass, icon: "check-circle", kind: "success", label: "", onCalciteAlertClose: () => { this._commentSubmitted = false; }, open: true, placement: "top" }, index.h("div", { key: 'cb63168c1fe507b7b93ac4f58d5283ad0d09b34b', slot: "message" }, this.commentSubmittedMessage || this._translations.commentSubmittedMsg)), this._addingCommentFailed && index.h("calcite-alert", { key: '36b551428b32c7d93f4d04639504bfe326bbc9c8', "auto-close": true, class: themeClass, icon: "x-octagon", kind: "danger", label: "", onCalciteAlertClose: () => { this._addingCommentFailed = false; }, open: true, placement: "top" }, index.h("div", { key: '2e9865c5611f4960bb622f75f386a489abcbb484', slot: "title" }, this._translations.error), index.h("div", { key: 'ebdf339d63369e18b1c68867cdffb9bd40f52766', slot: "message" }, this._translations.addingCommentFailedMsg)), index.h("div", { key: 'a08980aead377e11697e96e77aa514ed66dc9613' }, index.h("calcite-shell", { key: '6d96e769ece33073870f2b8f1a7ef6a44006c3f0', "content-behind": true }, this._getReporter()))));
315
318
  }
316
319
  //--------------------------------------------------------------------------
317
320
  //
@@ -444,18 +447,29 @@ const CrowdsourceReporter = class {
444
447
  this._filterActive = false;
445
448
  this._filterUrlParams = null;
446
449
  this._filterInitState = null;
447
- void this._featureList.refresh();
450
+ if (this._featureList) {
451
+ await this._featureList.refresh();
452
+ }
453
+ if (this._layerList) {
454
+ await this._layerList.refresh();
455
+ }
448
456
  }
449
457
  /**
450
458
  * Check if the layers definitionExpression has been modified and update the feature list depending on the applied filters
451
459
  * @protected
452
460
  */
453
- _handleFilterUpdate() {
461
+ async _handleFilterUpdate() {
462
+ this._showLoadingIndicator = true;
454
463
  //if filter are applied the url params will be generated
455
464
  //set the filter active state based on the length of applied filters
456
465
  this._filterActive = this._filterList.urlParams.getAll('filter').length > 0;
457
466
  this._filterUrlParams = this._filterList.urlParams.getAll('filter');
458
- void this._featureList.refresh();
467
+ this._filterInitState = await this._filterList.getFilterInitState();
468
+ await this._featureList.refresh();
469
+ if (this._layerList) {
470
+ await this._layerList.refresh();
471
+ }
472
+ this._showLoadingIndicator = false;
459
473
  }
460
474
  /**
461
475
  * Get the feature layer list
@@ -522,7 +536,6 @@ const CrowdsourceReporter = class {
522
536
  */
523
537
  backFromCreateFeaturePanel() {
524
538
  if (this._createFeature) {
525
- void this._createFeature.close();
526
539
  void this.updateNonVisibleLayersOnMap(false);
527
540
  }
528
541
  //on back form will be closed, so update the form state
@@ -543,7 +556,6 @@ const CrowdsourceReporter = class {
543
556
  */
544
557
  backFromCreateRelatedFeaturePanel() {
545
558
  if (this._createRelatedFeature) {
546
- void this._createRelatedFeature.close();
547
559
  this._showSubmitCancelButton = false;
548
560
  }
549
561
  //on back form will be closed, so update the form state
@@ -600,9 +612,6 @@ const CrowdsourceReporter = class {
600
612
  * @protected
601
613
  */
602
614
  async navigateToHomePage() {
603
- if (this._createFeature) {
604
- void this._createFeature.close();
605
- }
606
615
  if (this._layerList) {
607
616
  void this._layerList.refresh();
608
617
  }
@@ -624,6 +633,10 @@ const CrowdsourceReporter = class {
624
633
  if (evt.detail.layerId && evt.detail.layerName) {
625
634
  await this.setSelectedLayer(evt.detail.layerId, evt.detail.layerName);
626
635
  }
636
+ // reset the applied filter when switching to another layer
637
+ if (this._selectedLayerId !== this._prevSelectedLayerId && this._filterActive) {
638
+ await this.resetFilter();
639
+ }
627
640
  void this.updateNonVisibleLayersOnMap(true);
628
641
  // get the form template elements to pass in create-feature to create a LEVELID field in feature-form
629
642
  this._getFormElements();
@@ -683,27 +696,33 @@ const CrowdsourceReporter = class {
683
696
  await this.loadFeatureFromURLParams();
684
697
  }
685
698
  }
686
- /**On click of layer list item show feature list
699
+ /**
700
+ * On click of layer list item show feature list
687
701
  * @param evt Event which has details of selected layerId and layerName
688
702
  * @protected
689
703
  */
690
- displayFeaturesList(evt) {
704
+ async displayFeaturesList(evt) {
691
705
  this._updatedSorting = {
692
706
  field: '',
693
707
  order: 'desc'
694
708
  };
695
- this._filterActive = false;
696
709
  this._updatedSortOption = "sortNewest";
697
- void this.setSelectedLayer(evt.detail.layerId, evt.detail.layerName);
710
+ await this.setSelectedLayer(evt.detail.layerId, evt.detail.layerName);
698
711
  this._flowItems = [...this._flowItems, "feature-list"];
712
+ // reset the applied filter when switching to another layer
713
+ if (this._selectedLayerId !== this._prevSelectedLayerId && this._filterActive) {
714
+ await this.resetFilter();
715
+ }
716
+ this._prevSelectedLayerId = this._selectedLayerId;
699
717
  }
700
718
  /**
701
- * On back from filter panel get the filter's init state
719
+ * Reset's the applied filter
702
720
  * @protected
703
721
  */
704
- async backFromFilterPanel() {
705
- this._filterInitState = await this._filterList.getFilterInitState();
706
- this.backFromSelectedPanel();
722
+ async resetFilter() {
723
+ const prevLayer = await mapViewUtils.getLayerOrTable(this.mapView, this._prevSelectedLayerId);
724
+ prevLayer.definitionExpression = this._filterInitState.initDefExpressions[this._prevSelectedLayerId];
725
+ void this._handleFilterListReset();
707
726
  }
708
727
  /**
709
728
  * On back from selected panel navigate to the previous panel
@@ -764,10 +783,14 @@ const CrowdsourceReporter = class {
764
783
  */
765
784
  async getRelatedTable() {
766
785
  const selectedLayer = this._currentFeature.layer;
767
- const allRelatedTableIds = selectedLayer.relationships.map(a => a.relatedTableId);
768
786
  const allTables = await mapViewUtils.getAllTables(this.mapView);
769
- const relatedTables = allTables.filter((table) => selectedLayer.url === table.url && allRelatedTableIds.includes(table.layerId));
770
- this._relatedTable = relatedTables[0];
787
+ selectedLayer.relationships.some((relationship) => {
788
+ const relatedTables = allTables.filter((table) => selectedLayer.url === table.url && table.layerId === relationship.relatedTableId);
789
+ if (relatedTables && relatedTables.length > 0) {
790
+ this._relatedTable = relatedTables[0];
791
+ return true;
792
+ }
793
+ });
771
794
  }
772
795
  /**
773
796
  * Show loading indicator while updating the feature details component
@@ -825,7 +848,7 @@ const CrowdsourceReporter = class {
825
848
  */
826
849
  getFilterPanel() {
827
850
  const currentLayersExpressions = this.layerExpressions ? this.layerExpressions.filter((exp) => exp.id === this._selectedLayerId) : [];
828
- return (index.h("calcite-flow-item", { collapsed: this.isMobile && this._sidePanelCollapsed, heading: this._translations?.filterLayerTitle?.replace("{{title}}", this._selectedLayerName), loading: this._showLoadingIndicator, onCalciteFlowItemBack: this.backFromFilterPanel.bind(this) }, this.isMobile && this.getActionToExpandCollapsePanel(), index.h("div", { class: "width-full", slot: "footer" }, index.h("div", { class: "width-full", slot: "footer" }, index.h("calcite-button", { appearance: "solid", class: "footer-top-button footer-button", onClick: () => { void this._filterList?.forceReset(); }, width: "full" }, this._translations.resetFilter), index.h("calcite-button", { appearance: "outline", class: "footer-button", onClick: this.backFromFilterPanel.bind(this), width: "full" }, this._translations.close))), index.h("calcite-panel", { "full-height": true }, index.h("instant-apps-filter-list", { autoUpdateUrl: false, closeBtnOnClick: () => undefined, comboboxOverlayPositioning: "fixed", layerExpressions: currentLayersExpressions, onFilterListReset: () => this._handleFilterListReset(), onFilterUpdate: () => this._handleFilterUpdate(), ref: (el) => this._filterList = el, resetBtn: false, resetFiltersOnDisconnect: false, view: this.mapView, zoomBtn: false }))));
851
+ return (index.h("calcite-flow-item", { collapsed: this.isMobile && this._sidePanelCollapsed, heading: this._translations?.filterLayerTitle?.replace("{{title}}", this._selectedLayerName), loading: this._showLoadingIndicator, onCalciteFlowItemBack: this.backFromSelectedPanel.bind(this) }, this.isMobile && this.getActionToExpandCollapsePanel(), index.h("div", { class: "width-full", slot: "footer" }, index.h("div", { class: "width-full", slot: "footer" }, index.h("calcite-button", { appearance: "solid", class: "footer-top-button footer-button", disabled: !this._filterActive, onClick: () => { void this._filterList?.forceReset(); }, width: "full" }, this._translations.resetFilter), index.h("calcite-button", { appearance: "outline", class: "footer-button", onClick: this.backFromSelectedPanel.bind(this), width: "full" }, this._translations.close))), index.h("calcite-panel", { "full-height": true }, index.h("instant-apps-filter-list", { autoUpdateUrl: false, closeBtnOnClick: () => undefined, comboboxOverlayPositioning: "fixed", layerExpressions: currentLayersExpressions, onFilterListReset: () => this._handleFilterListReset(), onFilterUpdate: () => this._handleFilterUpdate(), ref: (el) => this._filterList = el, resetBtn: false, resetFiltersOnDisconnect: false, view: this.mapView, zoomBtn: false }))));
829
852
  }
830
853
  /**
831
854
  * Returns the calcite-flow item for feature details
@@ -128,7 +128,7 @@ const FeatureList = class {
128
128
  * @returns Promise that resolves when the operation is complete
129
129
  */
130
130
  async refresh(maintainPageState) {
131
- if (maintainPageState) {
131
+ if (maintainPageState && this._pagination) {
132
132
  const event = {
133
133
  target: {
134
134
  startItem: this._pagination.startItem
@@ -179,9 +179,9 @@ const FeatureList = class {
179
179
  * Renders the component.
180
180
  */
181
181
  render() {
182
- return (index.h("calcite-panel", { key: '3ba64729e3b56d8912424b65187fee65c5ed079f', "full-height": true, "full-width": true }, this._isLoading && index.h("calcite-loader", { key: 'd18959827b6f7feec0a42605ab93ee1147a3ddfc', label: "", scale: "m" }), this.showErrorWhenNoFeatures && this._featureItems.length === 0 && !this._isLoading &&
183
- index.h("calcite-notice", { key: '507e0031a5fb5a78b1d61bb4e893e4d9a314e207', class: "error-msg", icon: "feature-details", kind: "info", open: true }, index.h("div", { key: '640c9e8ab31fea285f6db4199a5ff4d917a4feec', slot: "message" }, this.noFeaturesFoundMsg ? this.noFeaturesFoundMsg : this._translations.featureErrorMsg)), index.h("calcite-list", { key: 'daa9fd622f3c97dad878854b70509e8cafcdea50', "selection-appearance": "border", "selection-mode": "none" }, !this._isLoading && this._featureItems.length > 0 && this._featureItems), this._featuresCount > this.pageSize &&
184
- index.h("div", { key: 'b30411c22825e9ec631235e243e726d3fa2244e4', class: "width-full", slot: "footer" }, index.h("calcite-pagination", { key: 'b3ee14ca6cde66bc45124b4de73fa019ffe634f8', class: "pagination", "full-width": true, onCalcitePaginationChange: this.pageChanged.bind(this), "page-size": this.pageSize, ref: el => this._pagination = el, "start-item": "1", "total-items": this._featuresCount }))));
182
+ return (index.h("calcite-panel", { key: 'fc2cc60231efb7fc4a05d3ade0bad6a3dd649b8e', "full-height": true, "full-width": true }, this._isLoading && index.h("calcite-loader", { key: '43c8176c2aaf0cc7f36a9f1ff477f53890cfcf2d', label: "", scale: "m" }), this.showErrorWhenNoFeatures && this._featureItems.length === 0 && !this._isLoading &&
183
+ index.h("calcite-notice", { key: 'dff1bb7207397ded8a557b61e9185ea788520441', class: "error-msg", icon: "feature-details", kind: "info", open: true }, index.h("div", { key: 'c1dd4e7fb8398c4317270b50eba7e6270fd7051b', slot: "message" }, this.noFeaturesFoundMsg ? this.noFeaturesFoundMsg : this._translations.featureErrorMsg)), index.h("calcite-list", { key: '49019c011e8667d193f566826644b0693b0fb6f9', "selection-appearance": "border", "selection-mode": "none" }, !this._isLoading && this._featureItems.length > 0 && this._featureItems), this._featuresCount > this.pageSize &&
184
+ index.h("div", { key: '12e767a001c4dffec7e771d12b772fb43bbf9b0f', class: "width-full", slot: "footer" }, index.h("calcite-pagination", { key: 'd6a8a9eac72fe7217eda926f46baedcb4e6d5859', class: "pagination", "full-width": true, onCalcitePaginationChange: this.pageChanged.bind(this), "page-size": this.pageSize, ref: el => this._pagination = el, "start-item": "1", "total-items": this._featuresCount }))));
185
185
  }
186
186
  //--------------------------------------------------------------------------
187
187
  //
@@ -355,10 +355,10 @@ const FeatureList = class {
355
355
  let userInfo;
356
356
  let featureSymbol;
357
357
  if (this.showUserImageInList) {
358
- const creatorField = this._selectedLayer.editFieldsInfo?.creatorField.toLowerCase();
358
+ const creatorField = this._selectedLayer.editFieldsInfo?.creatorField;
359
359
  // if feature's creator field is present then only we can fetch the information of user
360
360
  if (creatorField) {
361
- userInfo = await this.getUserInformation(feature, creatorField);
361
+ userInfo = await this.getUserInformation(feature);
362
362
  }
363
363
  }
364
364
  if (this.showFeatureSymbol) {
@@ -410,21 +410,27 @@ const FeatureList = class {
410
410
  const popupTitleClass = this.textSize === 'small' ? 'feature-list-popup-title-small' : 'feature-list-popup-title';
411
411
  const popupTitlePaddingClass = this.showUserImageInList || this.showFeatureSymbol ? 'feature-list-popup-title-padding-reduced' : 'feature-list-popup-title-padding';
412
412
  return (index.h("calcite-list-item", { onCalciteListItemSelect: (e) => { void this.featureClicked(e, selectedFeature); }, onMouseLeave: () => { void this.clearHighlights(); }, onMouseOver: () => { void this.onFeatureHover(selectedFeature); }, value: oId }, this.showUserImageInList &&
413
- index.h("calcite-avatar", { class: 'profile-img', "full-name": userInfo?.fullName, id: userInfo?.id, scale: "m", slot: "content-start", thumbnail: userInfo?.userProfileUrl }), this.showFeatureSymbol &&
413
+ index.h("calcite-avatar", { class: 'profile-img', "full-name": userInfo?.fullName, scale: "m", slot: "content-start", thumbnail: userInfo?.userProfileUrl, userId: userInfo?.id, username: userInfo?.fullName ? userInfo.username : undefined }), this.showFeatureSymbol &&
414
414
  index.h("div", { class: 'feature-symbol', ref: (el) => el && el.appendChild(featureSymbol), slot: "content-start" }), index.h("div", { class: `${popupTitleClass} ${popupTitlePaddingClass}`, slot: "content-start" }, popupTitle), this._likeFieldAvailable &&
415
415
  index.h("div", { class: "like-container", id: oId.concat("like"), slot: "content-end" }, index.h("span", null, this._abbreviatedLikeCount), index.h("calcite-icon", { icon: "thumbs-up", scale: 's' }), index.h("calcite-tooltip", { overlayPositioning: "fixed", placement: "top", "reference-element": oId.concat("like") }, formattedLikeCount)), index.h("calcite-icon", { flipRtl: true, icon: "chevron-right", scale: "s", slot: "content-end" })));
416
416
  }
417
417
  /**
418
418
  *
419
419
  * @param feature Each individual feature instance to be listed
420
- * @param creatorField Feature's creator field from the layer
421
420
  * @returns user information
422
421
  * @protected
423
422
  */
424
- async getUserInformation(feature, creatorField) {
425
- const userToken = this.mapView.map.portalItem.portal?.credential?.token;
423
+ async getUserInformation(feature) {
424
+ let creatorField = this._selectedLayer.editFieldsInfo?.creatorField;
425
+ if (feature.attributes.hasOwnProperty(creatorField.toLowerCase())) {
426
+ creatorField = creatorField.toLowerCase();
427
+ }
428
+ else if (feature.attributes.hasOwnProperty(creatorField.toUpperCase())) {
429
+ creatorField = creatorField.toUpperCase();
430
+ }
426
431
  //get the user information
427
432
  let url = `${this.esriConfig.portalUrl}/sharing/rest/community/users/${feature.attributes[creatorField]}?f=json&returnUserLicensedItems=true`;
433
+ const userToken = this.mapView.map.portalItem.portal?.credential?.token;
428
434
  if (userToken) {
429
435
  url += `&token=${userToken}`;
430
436
  }