@esri/solutions-components 0.10.41 → 0.10.43

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 (128) hide show
  1. package/dist/cjs/calcite-action-pad_2.cjs.entry.js +1 -1
  2. package/dist/cjs/calcite-block_5.cjs.entry.js +25 -26
  3. package/dist/cjs/card-manager_3.cjs.entry.js +11 -12
  4. package/dist/cjs/{constants-51cf394f.js → constants-bed33322.js} +3 -11
  5. package/dist/cjs/crowdsource-manager.cjs.entry.js +4 -3
  6. package/dist/cjs/crowdsource-reporter.cjs.entry.js +114 -52
  7. package/dist/cjs/{helpers-afcac967.js → helpers-0493759d.js} +1 -1
  8. package/dist/cjs/instant-apps-app-guide.cjs.entry.js +2 -2
  9. package/dist/cjs/instant-apps-ckeditor-wrapper_3.cjs.entry.js +3 -3
  10. package/dist/cjs/instant-apps-control-panel.cjs.entry.js +1 -1
  11. package/dist/cjs/instant-apps-create.cjs.entry.js +2 -2
  12. package/dist/cjs/instant-apps-export-views.cjs.entry.js +2 -2
  13. package/dist/cjs/instant-apps-export.cjs.entry.js +2 -2
  14. package/dist/cjs/instant-apps-interactive-legend-classic.cjs.entry.js +2 -2
  15. package/dist/cjs/instant-apps-interactive-legend-count_2.cjs.entry.js +2 -2
  16. package/dist/cjs/instant-apps-interactive-legend-group-legend-element-caption.cjs.entry.js +2 -2
  17. package/dist/cjs/instant-apps-interactive-legend-group-legend-element_5.cjs.entry.js +21 -7
  18. package/dist/cjs/instant-apps-interactive-legend.cjs.entry.js +3 -3
  19. package/dist/cjs/instant-apps-keyboard-shortcuts.cjs.entry.js +2 -2
  20. package/dist/cjs/instant-apps-language-switcher.cjs.entry.js +7 -7
  21. package/dist/cjs/instant-apps-language-translator.cjs.entry.js +6 -6
  22. package/dist/cjs/instant-apps-measurement.cjs.entry.js +2 -2
  23. package/dist/cjs/instant-apps-popover.cjs.entry.js +2 -2
  24. package/dist/cjs/instant-apps-scoreboard.cjs.entry.js +2 -2
  25. package/dist/cjs/instant-apps-sign-in.cjs.entry.js +2 -2
  26. package/dist/cjs/instant-apps-splash.cjs.entry.js +6 -5
  27. package/dist/cjs/instant-apps-time-filter.cjs.entry.js +2 -2
  28. package/dist/cjs/{loadModules-8567855e.js → loadModules-df8b13ca.js} +1 -1
  29. package/dist/cjs/loader.cjs.js +1 -1
  30. package/dist/cjs/{locale-4a18a858.js → locale-4b820602.js} +1 -1
  31. package/dist/cjs/solution-contents_3.cjs.entry.js +1 -1
  32. package/dist/cjs/solutions-components.cjs.js +1 -1
  33. package/dist/cjs/{utils-fa7ad44b.js → utils-3f10ea6b.js} +2 -2
  34. package/dist/collection/components/crowdsource-manager/crowdsource-manager.js +4 -3
  35. package/dist/collection/components/crowdsource-reporter/crowdsource-reporter.js +114 -52
  36. package/dist/collection/components/layer-table/layer-table.js +14 -11
  37. package/dist/collection/components/map-card/map-card.js +9 -5
  38. package/dist/collection/components/solution-spatial-ref/solution-spatial-ref.js +2 -2
  39. package/dist/components/crowdsource-manager.js +4 -3
  40. package/dist/components/crowdsource-reporter.js +114 -52
  41. package/dist/components/instant-apps-filter-list2.js +25 -26
  42. package/dist/components/instant-apps-interactive-legend-relationship2.js +19 -5
  43. package/dist/components/instant-apps-language-switcher.js +3 -3
  44. package/dist/components/instant-apps-language-translator2.js +4 -12
  45. package/dist/components/instant-apps-splash.js +4 -3
  46. package/dist/components/layer-table2.js +8 -9
  47. package/dist/components/loadModules2.js +1 -1
  48. package/dist/components/map-card2.js +3 -3
  49. package/dist/components/solution-spatial-ref2.js +2 -2
  50. package/dist/components/utils4.js +1 -1
  51. package/dist/esm/calcite-action-pad_2.entry.js +1 -1
  52. package/dist/esm/calcite-block_5.entry.js +25 -26
  53. package/dist/esm/card-manager_3.entry.js +11 -12
  54. package/dist/esm/{constants-886c7c2c.js → constants-637a40f5.js} +3 -11
  55. package/dist/esm/crowdsource-manager.entry.js +4 -3
  56. package/dist/esm/crowdsource-reporter.entry.js +114 -52
  57. package/dist/esm/{helpers-91087955.js → helpers-91ca0f44.js} +1 -1
  58. package/dist/esm/instant-apps-app-guide.entry.js +2 -2
  59. package/dist/esm/instant-apps-ckeditor-wrapper_3.entry.js +3 -3
  60. package/dist/esm/instant-apps-control-panel.entry.js +1 -1
  61. package/dist/esm/instant-apps-create.entry.js +2 -2
  62. package/dist/esm/instant-apps-export-views.entry.js +2 -2
  63. package/dist/esm/instant-apps-export.entry.js +2 -2
  64. package/dist/esm/instant-apps-interactive-legend-classic.entry.js +2 -2
  65. package/dist/esm/instant-apps-interactive-legend-count_2.entry.js +2 -2
  66. package/dist/esm/instant-apps-interactive-legend-group-legend-element-caption.entry.js +2 -2
  67. package/dist/esm/instant-apps-interactive-legend-group-legend-element_5.entry.js +21 -7
  68. package/dist/esm/instant-apps-interactive-legend.entry.js +3 -3
  69. package/dist/esm/instant-apps-keyboard-shortcuts.entry.js +2 -2
  70. package/dist/esm/instant-apps-language-switcher.entry.js +7 -7
  71. package/dist/esm/instant-apps-language-translator.entry.js +6 -6
  72. package/dist/esm/instant-apps-measurement.entry.js +2 -2
  73. package/dist/esm/instant-apps-popover.entry.js +2 -2
  74. package/dist/esm/instant-apps-scoreboard.entry.js +2 -2
  75. package/dist/esm/instant-apps-sign-in.entry.js +2 -2
  76. package/dist/esm/instant-apps-splash.entry.js +6 -5
  77. package/dist/esm/instant-apps-time-filter.entry.js +2 -2
  78. package/dist/esm/{loadModules-03ba7abe.js → loadModules-d5a25252.js} +1 -1
  79. package/dist/esm/loader.js +1 -1
  80. package/dist/esm/{locale-ce177eb8.js → locale-77038bee.js} +1 -1
  81. package/dist/esm/solution-contents_3.entry.js +1 -1
  82. package/dist/esm/solutions-components.js +1 -1
  83. package/dist/esm/{utils-3fc29543.js → utils-0a78d3c9.js} +2 -2
  84. package/dist/node_modules/@esri/instant-apps-components/dist/collection/components/instant-apps-splash/instant-apps-splash.css +7 -0
  85. package/dist/solutions-components/{p-b739f26d.entry.js → p-053effee.entry.js} +1 -1
  86. package/dist/solutions-components/{p-af573e0d.js → p-09543b4e.js} +1 -1
  87. package/dist/solutions-components/p-1b1ff60a.entry.js +6 -0
  88. package/dist/solutions-components/{p-e4107150.entry.js → p-2291bf3f.entry.js} +1 -1
  89. package/dist/solutions-components/p-2cf41651.entry.js +6 -0
  90. package/dist/solutions-components/{p-fe3aea1a.entry.js → p-351c7cbf.entry.js} +1 -1
  91. package/dist/solutions-components/{p-90fc786f.entry.js → p-3d999f0f.entry.js} +1 -1
  92. package/dist/solutions-components/p-3fe6c230.entry.js +6 -0
  93. package/dist/solutions-components/p-4695cfab.js +6 -0
  94. package/dist/solutions-components/{p-43699470.entry.js → p-499489c5.entry.js} +1 -1
  95. package/dist/solutions-components/{p-5ff711ee.js → p-5104cc98.js} +1 -1
  96. package/dist/solutions-components/p-5e694bcc.entry.js +29 -0
  97. package/dist/solutions-components/{p-cbb86cf2.entry.js → p-6a3f2249.entry.js} +1 -1
  98. package/dist/solutions-components/{p-a7f56b28.entry.js → p-6e5ea1cb.entry.js} +1 -1
  99. package/dist/solutions-components/{p-9c170b30.entry.js → p-76a1236d.entry.js} +1 -1
  100. package/dist/solutions-components/{p-1e14b3d0.entry.js → p-78b6d3fe.entry.js} +1 -1
  101. package/dist/solutions-components/{p-c48be45f.entry.js → p-8a1a0f9b.entry.js} +1 -1
  102. package/dist/solutions-components/{p-6d1922cc.entry.js → p-8b92fe23.entry.js} +1 -1
  103. package/dist/solutions-components/{p-5cbf3eed.entry.js → p-8d4a4498.entry.js} +1 -1
  104. package/dist/solutions-components/{p-4a02fd45.entry.js → p-9d9e0e74.entry.js} +1 -1
  105. package/dist/solutions-components/p-a1d8aed8.entry.js +6 -0
  106. package/dist/solutions-components/{p-50fb7f47.js → p-b49e1a78.js} +1 -1
  107. package/dist/solutions-components/{p-c551ffc5.entry.js → p-c399f2b8.entry.js} +1 -1
  108. package/dist/solutions-components/p-cb27611e.entry.js +6 -0
  109. package/dist/solutions-components/{p-4cd4cb85.js → p-d001e961.js} +1 -1
  110. package/dist/solutions-components/{p-523dcf4b.entry.js → p-d37a68f7.entry.js} +1 -1
  111. package/dist/solutions-components/{p-a2cf9fdc.entry.js → p-db7d5db8.entry.js} +1 -1
  112. package/dist/solutions-components/{p-6438d1ea.entry.js → p-e29e57db.entry.js} +1 -1
  113. package/dist/solutions-components/{p-a5b751e2.entry.js → p-e625aa69.entry.js} +1 -1
  114. package/dist/solutions-components/{p-2542d5c9.entry.js → p-e9fcc194.entry.js} +1 -1
  115. package/dist/solutions-components/{p-374ddead.entry.js → p-f4880179.entry.js} +1 -1
  116. package/dist/solutions-components/solutions-components.esm.js +1 -1
  117. package/dist/types/components/crowdsource-reporter/crowdsource-reporter.d.ts +44 -18
  118. package/dist/types/components/layer-table/layer-table.d.ts +2 -2
  119. package/dist/types/components/map-card/map-card.d.ts +1 -1
  120. package/dist/types/components.d.ts +2 -2
  121. package/package.json +7 -7
  122. package/dist/solutions-components/p-3fc18283.entry.js +0 -6
  123. package/dist/solutions-components/p-5585dcd3.entry.js +0 -6
  124. package/dist/solutions-components/p-953afbb3.entry.js +0 -29
  125. package/dist/solutions-components/p-cced387c.entry.js +0 -6
  126. package/dist/solutions-components/p-ceb1030b.js +0 -6
  127. package/dist/solutions-components/p-e9026f9a.entry.js +0 -6
  128. package/dist/solutions-components/p-f728af86.entry.js +0 -6
@@ -5,7 +5,7 @@
5
5
  */
6
6
  'use strict';
7
7
 
8
- const locale = require('./locale-4a18a858.js');
8
+ const locale = require('./locale-4b820602.js');
9
9
  const index = require('./index-2b13a4d5.js');
10
10
 
11
11
  exports.EInputType = void 0;
@@ -131,7 +131,7 @@ function initExternalCKEditorStyles() {
131
131
  document.head.appendChild(style);
132
132
  }
133
133
  async function updateLastSave(resource) {
134
- const data = await resource.fetch();
134
+ const data = store.get('portalItemResourceT9n');
135
135
  const lastSave = Date.now();
136
136
  store.set('lastSave', lastSave);
137
137
  const dataStr = JSON.stringify(Object.assign(Object.assign({}, data), { lastSave }));
@@ -543,9 +543,10 @@ export class CrowdsourceManager {
543
543
  return (h("calcite-modal", { "aria-labelledby": "modal-title", class: "modal", kind: "brand", onCalciteModalClose: () => void this._closeFilter(), open: this._filterOpen, widthScale: "s" }, h("div", { class: "display-flex align-center", id: "modal-title", slot: "header" }, this._translations?.filter?.replace("{{title}}", this._layer?.title)), h("div", { slot: "content" }, h("instant-apps-filter-list", { autoUpdateUrl: false, closeBtn: true, closeBtnOnClick: async () => this._closeFilter(), comboboxOverlayPositioning: "fixed", layerExpressions: this._layerExpressions, onFilterListReset: () => {
544
544
  this._handleFilterListReset();
545
545
  void this._mapCard.resetFilter();
546
- }, onFilterUpdate: () => {
547
- void this._layerTable?.filterUpdate();
548
- void this._mapCard.updateFilterState();
546
+ }, onFilterUpdate: async () => {
547
+ const active = this._filterList.filterCount > 0;
548
+ await this._layerTable?.filterUpdate(active);
549
+ await this._mapCard.updateFilterState(active);
549
550
  }, ref: (el) => this._filterList = el, view: this._mapView, zoomBtn: false }))));
550
551
  }
551
552
  /**
@@ -213,17 +213,17 @@ export class CrowdsourceReporter {
213
213
  */
214
214
  _formElements = [];
215
215
  /**
216
- * string[]: URL params set by using filters.
216
+ * string: Previous selected layer id
217
217
  */
218
- _filterUrlParams;
218
+ _prevSelectedLayerId;
219
219
  /**
220
- * FilterInitState: filter's init state
220
+ * ILayerExpression[]: current LayerExpressions based on the selected layer
221
221
  */
222
- _filterInitState;
222
+ _currentLayerExpressions;
223
223
  /**
224
- * string: Previous selected layer id
224
+ * { [key: string]: string }: definitionExpressions for each layer
225
225
  */
226
- _prevSelectedLayerId;
226
+ _initDefExpressions;
227
227
  //--------------------------------------------------------------------------
228
228
  //
229
229
  // Watch handlers
@@ -248,6 +248,7 @@ export class CrowdsourceReporter {
248
248
  */
249
249
  async mapViewWatchHandler() {
250
250
  await this.mapView.when(async () => {
251
+ this.setInitExpressions();
251
252
  await this.setMapView();
252
253
  });
253
254
  }
@@ -326,15 +327,25 @@ export class CrowdsourceReporter {
326
327
  this._layers = this.reportingOptions ? Object.keys(this.reportingOptions).filter((layerId) => {
327
328
  return this.reportingOptions[layerId].visible;
328
329
  }) : [];
330
+ this.setInitExpressions();
329
331
  await this.setMapView();
330
332
  });
331
333
  }
334
+ /**
335
+ * StencilJS: Called before every render().
336
+ * Update the filter list's initial definition expressions when the filter list component is available
337
+ */
338
+ componentWillRender() {
339
+ if (this._flowItems.includes('filter-panel')) {
340
+ void this._filterList?.updateInitDefExpressions({ initDefExpressions: this._initDefExpressions });
341
+ }
342
+ }
332
343
  /**
333
344
  * Renders the component.
334
345
  */
335
346
  render() {
336
347
  const themeClass = this.theme === "dark" ? "calcite-mode-dark" : "calcite-mode-light";
337
- return (h(Host, { key: 'fbe7fdc13c462e0fe155107ac784f03b3922d624' }, this._reportSubmitted && h("calcite-alert", { key: '9bcf7856ad01e7bc59142a862c50b9d84c443268', "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: '7b81a7c8b3d66159a790ab3d13be9f1b65a6202e', slot: "message" }, this.reportSubmittedMessage ? this.reportSubmittedMessage : this._translations.submitMsg)), this._featureCreationFailedErrorMsg && h("calcite-alert", { key: 'ee2f17e3326ef7c60fb2ee06ed313fd28cf7084a', "auto-close": true, class: themeClass, icon: "x-octagon", kind: "danger", label: "", onCalciteAlertClose: () => { this._featureCreationFailedErrorMsg = ""; }, open: true, placement: "top" }, h("div", { key: 'b356832ee6d4d16a84cdea0abb6b1c677f9ca1f6', slot: "title" }, this._translations.error), h("div", { key: '8aa16df1114b75b6a3e2a76de7fb5c7cbc5d3632', slot: "message" }, this._featureCreationFailedErrorMsg)), this._commentSubmitted && h("calcite-alert", { key: 'e99693c23ef18b62daf892fccaacbbfe2486702d', "auto-close": true, class: 'report-submitted ' + themeClass, icon: "check-circle", kind: "success", label: "", onCalciteAlertClose: () => { this._commentSubmitted = false; }, open: true, placement: "top" }, h("div", { key: '58ccda0d3782dbe70d346b973b7648f8ae4c8c8f', slot: "message" }, this.commentSubmittedMessage || this._translations.commentSubmittedMsg)), this._addingCommentFailed && h("calcite-alert", { key: 'e49e9e3b33df17dd90b3263bec6c17566f6f7b1b', "auto-close": true, class: themeClass, icon: "x-octagon", kind: "danger", label: "", onCalciteAlertClose: () => { this._addingCommentFailed = false; }, open: true, placement: "top" }, h("div", { key: 'cfb88dd323ead1398cd73849f68a9c2846ef9d14', slot: "title" }, this._translations.error), h("div", { key: 'b27e8983a74c8613e569400b7c7ad0b14d43f323', slot: "message" }, this._translations.addingCommentFailedMsg)), h("div", { key: '7ac3d49d6383d2a88e54d91fa00e2c81aa91a890' }, h("calcite-shell", { key: '709e673f4e9261b4283c7593926d605c8a049abd', "content-behind": true }, this._getReporter()))));
348
+ return (h(Host, { key: 'f1dd6d85210210a73fff30a5d98370da1834be7b' }, this._reportSubmitted && h("calcite-alert", { key: 'b84760fcbf4bfcf0f038be272f74eda97ce17bd9', "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: '27aa04dd8575ad27898f7848bc2733a03a33e70f', slot: "message" }, this.reportSubmittedMessage ? this.reportSubmittedMessage : this._translations.submitMsg)), this._featureCreationFailedErrorMsg && h("calcite-alert", { key: '3fc2721bed573ad10bbb1c81af126e2e8ca90b12', "auto-close": true, class: themeClass, icon: "x-octagon", kind: "danger", label: "", onCalciteAlertClose: () => { this._featureCreationFailedErrorMsg = ""; }, open: true, placement: "top" }, h("div", { key: '4993e5c5b52d650b094c2890d0e4516cc87ffb69', slot: "title" }, this._translations.error), h("div", { key: '272b17f4c0239d8b295d6f2c0c02f1ba236d840d', slot: "message" }, this._featureCreationFailedErrorMsg)), this._commentSubmitted && h("calcite-alert", { key: '5b9e1a2bd129888ec0764ad9b05e5056653d3c33', "auto-close": true, class: 'report-submitted ' + themeClass, icon: "check-circle", kind: "success", label: "", onCalciteAlertClose: () => { this._commentSubmitted = false; }, open: true, placement: "top" }, h("div", { key: 'bd428297f5fe85cbf7edc42c61c64c299d7954b7', slot: "message" }, this.commentSubmittedMessage || this._translations.commentSubmittedMsg)), this._addingCommentFailed && h("calcite-alert", { key: '2aa1927ca27f9ec15a16f8e68905a1cf203ef833', "auto-close": true, class: themeClass, icon: "x-octagon", kind: "danger", label: "", onCalciteAlertClose: () => { this._addingCommentFailed = false; }, open: true, placement: "top" }, h("div", { key: '4bff5fb03586edf0f9ea21649d1de4c34034e539', slot: "title" }, this._translations.error), h("div", { key: '7ea6c71dbbac15c2f43242ba00c9e461177051a1', slot: "message" }, this._translations.addingCommentFailedMsg)), h("div", { key: '3aa6bfc19a1e82ab90d2ab42aa9a577b3a2b6d8f' }, h("calcite-shell", { key: 'f27355d4f655c0a0931158f38f0be3eb28f6c4d4', "content-behind": true }, this._getReporter()))));
338
349
  }
339
350
  //--------------------------------------------------------------------------
340
351
  //
@@ -398,7 +409,6 @@ export class CrowdsourceReporter {
398
409
  break;
399
410
  case "filter-panel":
400
411
  renderLists.push(this.getFilterPanel());
401
- void this._restoreFilters();
402
412
  break;
403
413
  case "feature-details":
404
414
  renderLists.push(this.getFeatureDetailsFlowItem());
@@ -445,20 +455,6 @@ export class CrowdsourceReporter {
445
455
  return (h("calcite-popover", { autoClose: true, label: "", offsetDistance: 0, placement: this.isMobile ? "leading-start" : "bottom-start", pointerDisabled: true, referenceElement: "sort-popover" }, h("calcite-list", { "selection-mode": "single" }, h("calcite-list-item", { label: this._translations.sortNewest, onCalciteListItemSelect: () => { void this.sortOptionClick(this._selectedLayer.objectIdField, "desc", "sortNewest"); }, selected: this._updatedSortOption === "sortNewest", value: "sortNewest" }), h("calcite-list-item", { label: this._translations.sortOldest, onCalciteListItemSelect: () => { void this.sortOptionClick(this._selectedLayer.objectIdField, "asc", "sortOldest"); }, selected: this._updatedSortOption === "sortOldest", value: "sortOldest" }), canSortByVotes &&
446
456
  h(Fragment, null, h("calcite-list-item", { label: this._translations.sortHighestVoted, onCalciteListItemSelect: () => { void this.sortOptionClick(this.reportingOptions[this._selectedLayerId].likeField, "desc", "sortHighestVoted"); }, selected: this._updatedSortOption === "sortHighestVoted", value: "sortHighestVoted" }), h("calcite-list-item", { label: this._translations.sortLowestVoted, onCalciteListItemSelect: () => { void this.sortOptionClick(this.reportingOptions[this._selectedLayerId].likeField, "asc", "sortLowestVoted"); }, selected: this._updatedSortOption === "sortLowestVoted", value: "sortLowestVoted" })))));
447
457
  }
448
- /**
449
- * Restores the applied filters
450
- * @protected
451
- */
452
- _restoreFilters() {
453
- // call the restore function when instant-apps-filter-list is ready
454
- setTimeout(() => {
455
- const canRestoreFilter = this._filterList && this._filterUrlParams && this._filterInitState;
456
- if (canRestoreFilter) {
457
- void this._filterList.restoreFilters(this._filterUrlParams[0], this._filterInitState);
458
- }
459
- this._filterInitState = null;
460
- }, 200);
461
- }
462
458
  /**
463
459
  * Reset the filter
464
460
  * @protected
@@ -466,19 +462,14 @@ export class CrowdsourceReporter {
466
462
  async _handleFilterListReset() {
467
463
  //on reset filter list reset the filter states
468
464
  this._filterActive = false;
469
- this._filterUrlParams = null;
470
- this._filterInitState = null;
471
465
  }
472
466
  /**
473
467
  * Check if the layers definitionExpression has been modified and update the feature list depending on the applied filters
474
468
  * @protected
475
469
  */
476
- async _handleFilterUpdate() {
470
+ async _handleFilterUpdate(active) {
477
471
  this._showLoadingIndicator = true;
478
- //if filter are applied the url params will be generated
479
- //set the filter active state based on the length of applied filters
480
- this._filterActive = this._filterList.urlParams.getAll('filter').length > 0;
481
- this._filterUrlParams = this._filterList.urlParams.getAll('filter');
472
+ this._filterActive = active;
482
473
  await this._featureList.refresh();
483
474
  this._showLoadingIndicator = false;
484
475
  }
@@ -645,10 +636,6 @@ export class CrowdsourceReporter {
645
636
  if (evt.detail.layerId && evt.detail.layerName) {
646
637
  await this.setSelectedLayer(evt.detail.layerId, evt.detail.layerName);
647
638
  }
648
- // reset the applied filter when switching to another layer
649
- if (this._selectedLayerId !== this._prevSelectedLayerId && this._filterActive) {
650
- await this.resetFilter();
651
- }
652
639
  void this.updateNonVisibleLayersOnMap(true);
653
640
  // get the form template elements to pass in create-feature to create a LEVELID field in feature-form
654
641
  this._getFormElements();
@@ -720,28 +707,18 @@ export class CrowdsourceReporter {
720
707
  };
721
708
  this._updatedSortOption = "sortNewest";
722
709
  await this.setSelectedLayer(evt.detail.layerId, evt.detail.layerName);
710
+ void this.handleSelectedLayersFilter();
723
711
  this._flowItems = [...this._flowItems, "feature-list"];
724
- // reset the applied filter when switching to another layer
725
- if (this._selectedLayerId !== this._prevSelectedLayerId && this._filterActive) {
726
- await this.resetFilter();
727
- }
728
712
  this._prevSelectedLayerId = this._selectedLayerId;
729
713
  }
730
- /**
731
- * Reset's the applied filter
732
- * @protected
733
- */
734
- async resetFilter() {
735
- const prevLayer = await getLayerOrTable(this.mapView, this._prevSelectedLayerId);
736
- prevLayer.definitionExpression = this._filterInitState.initDefExpressions[this._prevSelectedLayerId];
737
- void this._handleFilterListReset();
738
- }
739
714
  /**
740
715
  * On back from filter panel get the filter's init state
741
716
  * @protected
742
717
  */
743
718
  async backFromFilterPanel() {
744
- this._filterInitState = await this._filterList.getFilterInitState();
719
+ if (this._filterList != null) {
720
+ this._currentLayerExpressions = await this._filterList.getCurrentLayerExpressions();
721
+ }
745
722
  await this._featureList.refresh();
746
723
  this.backFromSelectedPanel();
747
724
  }
@@ -856,9 +833,8 @@ export class CrowdsourceReporter {
856
833
  * @protected
857
834
  */
858
835
  getFeatureListFlowItem(layerId, layerName) {
859
- const layerExpressions = this.layerExpressions?.filter((exp) => exp.id === this._selectedLayerId);
860
836
  const canCreateReports = this._getLayersConfig(this._selectedLayerId)?.reporting && this._layerItemsHash[this._selectedLayerId].supportsAdd;
861
- const showFilterIcon = layerExpressions?.length > 0;
837
+ const showFilterIcon = this._currentLayerExpressions?.length > 0;
862
838
  return (h("calcite-flow-item", { collapsed: this.isMobile && this._sidePanelCollapsed, heading: layerName, loading: this._showLoadingIndicator, onCalciteFlowItemBack: this.backFromSelectedPanel.bind(this) }, this._toggleSort(), h("calcite-action", { icon: "sort-ascending-arrow", id: "sort-popover", slot: "header-actions-end", text: this._translations.sort, title: this._translations.sort }), showFilterIcon && h("calcite-action", { icon: "filter", indicator: this._filterActive, onClick: () => { this._flowItems = [...this._flowItems, "filter-panel"]; }, slot: "header-actions-end", text: this._translations.filter, title: this._translations.filter }), this.isMobile && this.getActionToExpandCollapsePanel(), this.enableNewReports && canCreateReports &&
863
839
  h("calcite-button", { appearance: "solid", onClick: this.navigateToCreateFeature.bind(this), slot: "footer", width: "full" }, this.reportButtonText ? this.reportButtonText : this._translations.createReportButtonText), h("calcite-panel", { "full-height": true }, h("feature-list", { applyLayerViewFilter: this.showMyReportsOnly, class: "height-full", highlightOnHover: true, locale: this.locale, mapView: this.mapView, noFeaturesFoundMsg: this._translations.featureErrorMsg, onFeatureSelect: this.onFeatureSelectFromList.bind(this), pageSize: 30, ref: el => this._featureList = el, reportingOptions: this.reportingOptions, selectedLayerId: layerId, showFeatureSymbol: this.showFeatureSymbol, sortingInfo: this._updatedSorting }))));
864
840
  }
@@ -868,8 +844,7 @@ export class CrowdsourceReporter {
868
844
  * @protected
869
845
  */
870
846
  getFilterPanel() {
871
- const currentLayersExpressions = this.layerExpressions ? this.layerExpressions.filter((exp) => exp.id === this._selectedLayerId) : [];
872
- return (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(), h("div", { class: "width-full", slot: "footer" }, h("div", { class: "width-full", slot: "footer" }, h("calcite-button", { appearance: "solid", class: "footer-top-button footer-button", disabled: !this._filterActive, onClick: () => { void this._filterList?.forceReset(); }, width: "full" }, this._translations.resetFilter), h("calcite-button", { appearance: "outline", class: "footer-button", onClick: this.backFromFilterPanel.bind(this), width: "full" }, this._translations.close))), h("calcite-panel", { "full-height": true }, 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 }))));
847
+ return (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(), h("div", { class: "width-full", slot: "footer" }, h("div", { class: "width-full", slot: "footer" }, h("calcite-button", { appearance: "solid", class: "footer-top-button footer-button", disabled: !this._filterActive, onClick: this.resetFilterList.bind(this), width: "full" }, this._translations.resetFilter), h("calcite-button", { appearance: "outline", class: "footer-button", onClick: this.backFromFilterPanel.bind(this), width: "full" }, this._translations.close))), h("calcite-panel", { "full-height": true }, h("instant-apps-filter-list", { autoUpdateUrl: false, closeBtnOnClick: () => undefined, comboboxOverlayPositioning: "fixed", layerExpressions: this._currentLayerExpressions, onFilterListReset: () => this._handleFilterListReset(), onFilterUpdate: () => this._handleFilterUpdate(this._filterList.filterCount > 0), ref: (el) => this._filterList = el, resetBtn: false, resetFiltersOnDisconnect: false, view: this.mapView, zoomBtn: false }))));
873
848
  }
874
849
  /**
875
850
  * Returns the calcite-flow item for feature details
@@ -929,6 +904,7 @@ export class CrowdsourceReporter {
929
904
  else {
930
905
  if (this._editableLayerIds.length > 1) {
931
906
  void this.setSelectedLayer('', '');
907
+ void this.handlePrevLayersFilter();
932
908
  }
933
909
  this._currentFeatureId = '';
934
910
  }
@@ -1185,7 +1161,8 @@ export class CrowdsourceReporter {
1185
1161
  detail: this._editableLayerIds
1186
1162
  };
1187
1163
  await this.layerListLoaded(evt);
1188
- void this.setSelectedLayer(this._validLayers[0].id, this._validLayers[0].title);
1164
+ await this.setSelectedLayer(this._validLayers[0].id, this._validLayers[0].title);
1165
+ void this.handleSelectedLayersFilter();
1189
1166
  }
1190
1167
  /**
1191
1168
  * Updates the share url for current selected feature
@@ -1245,6 +1222,91 @@ export class CrowdsourceReporter {
1245
1222
  }
1246
1223
  }
1247
1224
  }
1225
+ /**
1226
+ * Handles updating the current layer expressions and definition expression for the selected layer
1227
+ * @protected
1228
+ */
1229
+ async handleSelectedLayersFilter() {
1230
+ if (this._selectedLayer) {
1231
+ this._currentLayerExpressions = this.layerExpressions ? this.layerExpressions.filter(exp => exp.id === this._selectedLayerId) : [];
1232
+ this.setActiveDefinitionExpressions();
1233
+ }
1234
+ }
1235
+ /**
1236
+ * Handles updating the previous layer's definition expression to it's initial definition expression
1237
+ * @protected
1238
+ */
1239
+ async handlePrevLayersFilter() {
1240
+ if (this._prevSelectedLayerId) {
1241
+ const prevLayer = await getLayerOrTable(this.mapView, this._prevSelectedLayerId);
1242
+ if (prevLayer) {
1243
+ prevLayer.definitionExpression = this._initDefExpressions[this._prevSelectedLayerId];
1244
+ }
1245
+ }
1246
+ }
1247
+ /**
1248
+ * Resets the selected layer's definition expression with the initial definition expression
1249
+ * @protected
1250
+ */
1251
+ resetFilterList() {
1252
+ void this._filterList?.forceReset();
1253
+ if (this._selectedLayer != null) {
1254
+ this._selectedLayer.definitionExpression = this._initDefExpressions[this._selectedLayerId];
1255
+ this._filterActive = false;
1256
+ }
1257
+ }
1258
+ /**
1259
+ * Sets the active definition expressions for the selected layer
1260
+ * @protected
1261
+ */
1262
+ setActiveDefinitionExpressions() {
1263
+ if (this._selectedLayer == null) {
1264
+ return;
1265
+ }
1266
+ const defExpressions = [];
1267
+ if (this._currentLayerExpressions?.length > 0) {
1268
+ const layerExpression = this._currentLayerExpressions[0];
1269
+ for (const expression of layerExpression.expressions) {
1270
+ const { active, definitionExpression } = expression;
1271
+ if (active && definitionExpression) {
1272
+ defExpressions.push(`(${definitionExpression})`);
1273
+ }
1274
+ }
1275
+ this._filterActive = defExpressions.length > 0;
1276
+ this.updateFilterLayerDefExpression(defExpressions, layerExpression.operator);
1277
+ }
1278
+ }
1279
+ /**
1280
+ * Updates the selected layer's definition expression based on the active expressions
1281
+ * @protected
1282
+ */
1283
+ updateFilterLayerDefExpression(defExpressions, operator) {
1284
+ const initDefExpression = this._initDefExpressions[this._selectedLayerId];
1285
+ const combinedExpressions = defExpressions?.length > 0 && initDefExpression != null
1286
+ ? `(${defExpressions.join(operator)}) AND (${initDefExpression})`
1287
+ : defExpressions.length > 0
1288
+ ? defExpressions.join(operator)
1289
+ : initDefExpression;
1290
+ this._selectedLayer.definitionExpression = combinedExpressions;
1291
+ }
1292
+ /**
1293
+ * Sets the initial definition expressions for all the feature layers
1294
+ * @protected
1295
+ */
1296
+ setInitExpressions() {
1297
+ this._initDefExpressions = {};
1298
+ if (this.mapView == null) {
1299
+ return;
1300
+ }
1301
+ const map = this.mapView.map;
1302
+ map.allLayers.concat(map.allTables).forEach(layer => {
1303
+ if (layer.type !== "feature") {
1304
+ return;
1305
+ }
1306
+ const fl = layer;
1307
+ this._initDefExpressions[fl.id] = fl.definitionExpression;
1308
+ });
1309
+ }
1248
1310
  static get is() { return "crowdsource-reporter"; }
1249
1311
  static get originalStyleUrls() {
1250
1312
  return {
@@ -395,8 +395,8 @@ export class LayerTable {
395
395
  /**
396
396
  * Updates the filter
397
397
  */
398
- async filterUpdate() {
399
- await this._handleFilterUpdate();
398
+ async filterUpdate(active) {
399
+ await this._handleFilterUpdate(active);
400
400
  }
401
401
  /**
402
402
  * Closes the filter
@@ -538,10 +538,10 @@ export class LayerTable {
538
538
  const tableHeightClass = this.isMobile ? "height-full" : "height-full-adjusted";
539
539
  const showSearch = this._canShowFullTextSearch();
540
540
  this._validateActiveActions();
541
- return (h(Host, { key: '5cbb5ba55c63eaf278666aac034a01d971d9f12a' }, h("calcite-shell", { key: '8a27d87fc002b72fe478d25885b2ab04261362ca' }, this._getTableControlRow("header"), h("div", { key: '250c356a30389b8cb95628953f3bb3ec5c88361d', class: `width-full ${tableHeightClass}` }, h("calcite-panel", { key: '9d5dbb084031bdface1dbc3a1dbc2fa33eb163b5', class: "height-full width-full" }, showSearch &&
542
- h("div", { key: '2d45ae4255a1d0e3cf14aa0f6a01915a38626bc7', class: "search-container" }, h("calcite-input", { key: 'c73546fef30db70d01cf8978a5daf9ea4193ddc2', class: "search", clearable: true, icon: "search", onCalciteInputChange: (evt) => void this._searchTextChanged(evt), placeholder: this._searchPlaceHolder, title: this._searchPlaceHolder, type: "search" })), h("calcite-loader", { key: '61621afb1e5fa67e25b878320c8497200b8265cd', class: loadingClass, label: this._translations.fetchingData, scale: "l" }), h("div", { key: '0ef4fe0e4099ec60f4c38e2c421920c9a8fe3c4f', class: tableNodeClass, ref: this.onTableNodeCreate }))), !this.isMobile ? (h("div", { class: "bottom-left text-color height-19" }, this._translations.recordsSelected
541
+ return (h(Host, { key: 'f56462fd5d5afa71052cf2557069bb2fee15aaeb' }, h("calcite-shell", { key: '92ccfa2235269aad6da5f918f79ec8ae100e99ca' }, this._getTableControlRow("header"), h("div", { key: 'e5b8fe5e4236e1a7b7e9d31ad784d9bb52a6918d', class: `width-full ${tableHeightClass}` }, h("calcite-panel", { key: 'eca933d832e5b6efddb025211c253bf09e41ab22', class: "height-full width-full" }, showSearch &&
542
+ h("div", { key: 'e819896c4264db3ee95d10194b67da65997b541d', class: "search-container" }, h("calcite-input", { key: 'e979c7962205caf072057332280b9e04ecd233c4', class: "search", clearable: true, icon: "search", onCalciteInputChange: (evt) => void this._searchTextChanged(evt), placeholder: this._searchPlaceHolder, title: this._searchPlaceHolder, type: "search" })), h("calcite-loader", { key: 'ee715472a4f819dd1e9328e75022439e9bba1334', class: loadingClass, label: this._translations.fetchingData, scale: "l" }), h("div", { key: '8085821dea31de1fcbb1119e5791c0dea744e470', class: tableNodeClass, ref: this.onTableNodeCreate }))), !this.isMobile ? (h("div", { class: "bottom-left text-color height-19" }, this._translations.recordsSelected
543
543
  .replace("{{total}}", total)
544
- .replace("{{selected}}", selected))) : undefined), this.createFilterModal && this._filterModal(), h("delete-dialog", { key: 'e2564b1d08476f762577247ffb41a00e5c41514c', id: "deleteDialogId", ids: this._getIds(), layer: this._layer, locale: this.locale, onDeleteDialogClose: () => this._deleteDialogOpen = false, open: this._deleteDialogOpen, ref: (el) => this._deleteDialog = el })));
544
+ .replace("{{selected}}", selected))) : undefined), this.createFilterModal && this._filterModal(), h("delete-dialog", { key: '20c9a06c3f0d44433d9442755d25658c249e102c', id: "deleteDialogId", ids: this._getIds(), layer: this._layer, locale: this.locale, onDeleteDialogClose: () => this._deleteDialogOpen = false, open: this._deleteDialogOpen, ref: (el) => this._deleteDialog = el })));
545
545
  }
546
546
  _deleteDialog;
547
547
  /**
@@ -1586,7 +1586,7 @@ export class LayerTable {
1586
1586
  * @protected
1587
1587
  */
1588
1588
  _filterModal() {
1589
- return (h("calcite-modal", { "aria-labelledby": "modal-title", class: "modal", kind: "brand", onCalciteModalClose: () => void this._closeFilter(), open: this._filterOpen, widthScale: "s" }, h("div", { class: "display-flex align-center", id: "modal-title", slot: "header" }, this._translations?.filter?.replace("{{title}}", this._layer?.title)), h("div", { slot: "content" }, h("instant-apps-filter-list", { autoUpdateUrl: false, closeBtn: true, closeBtnOnClick: async () => this._closeFilter(), comboboxOverlayPositioning: "fixed", layerExpressions: this._layerExpressions, onFilterListReset: () => void this._handleFilterListReset(), onFilterUpdate: () => void this._handleFilterUpdate(), ref: (el) => this._filterList = el, view: this.mapView, zoomBtn: false }))));
1589
+ return (h("calcite-modal", { "aria-labelledby": "modal-title", class: "modal", kind: "brand", onCalciteModalClose: () => void this._closeFilter(), open: this._filterOpen, widthScale: "s" }, h("div", { class: "display-flex align-center", id: "modal-title", slot: "header" }, this._translations?.filter?.replace("{{title}}", this._layer?.title)), h("div", { slot: "content" }, h("instant-apps-filter-list", { autoUpdateUrl: false, closeBtn: true, closeBtnOnClick: async () => this._closeFilter(), comboboxOverlayPositioning: "fixed", layerExpressions: this._layerExpressions, onFilterListReset: () => void this._handleFilterListReset(), onFilterUpdate: () => void this._handleFilterUpdate(this._filterList.filterCount > 0), ref: (el) => this._filterList = el, view: this.mapView, zoomBtn: false }))));
1590
1590
  }
1591
1591
  /**
1592
1592
  * Reset the filter active prop
@@ -1601,7 +1601,7 @@ export class LayerTable {
1601
1601
  * Check if the layers definitionExpression has been modified
1602
1602
  * @protected
1603
1603
  */
1604
- async _handleFilterUpdate() {
1604
+ async _handleFilterUpdate(active) {
1605
1605
  const defExp = this._layer.definitionExpression;
1606
1606
  if (this._floorExpression) {
1607
1607
  const regEx = new RegExp(`${this._floorField} = ['].+[']`, "gm");
@@ -1609,8 +1609,7 @@ export class LayerTable {
1609
1609
  defExp.replace(regEx, this._floorExpression) : defExp ?
1610
1610
  `${defExp} AND (${this._floorExpression})` : this._floorExpression;
1611
1611
  }
1612
- this._filterActive = this._definitionExpression !== this._layer.definitionExpression &&
1613
- (this._floorExpression ? this._layer.definitionExpression !== this._floorExpression : true);
1612
+ this._filterActive = active;
1614
1613
  this._updateShareUrl();
1615
1614
  await this._searchFullText();
1616
1615
  }
@@ -2375,8 +2374,12 @@ export class LayerTable {
2375
2374
  },
2376
2375
  "filterUpdate": {
2377
2376
  "complexType": {
2378
- "signature": "() => Promise<void>",
2379
- "parameters": [],
2377
+ "signature": "(active: boolean) => Promise<void>",
2378
+ "parameters": [{
2379
+ "name": "active",
2380
+ "type": "boolean",
2381
+ "docs": ""
2382
+ }],
2380
2383
  "references": {
2381
2384
  "Promise": {
2382
2385
  "location": "global",
@@ -266,8 +266,8 @@ export class MapCard {
266
266
  /**
267
267
  * updates the filter
268
268
  */
269
- async updateFilterState() {
270
- this._filterActive = this._definitionExpression !== this.selectedLayer.definitionExpression;
269
+ async updateFilterState(active) {
270
+ this._filterActive = active;
271
271
  this._updateShareUrl();
272
272
  }
273
273
  /**
@@ -344,7 +344,7 @@ export class MapCard {
344
344
  const mapHeightClass = this.mapInfos?.length > 1 || this.isMapLayout ? "map-height" : "height-full";
345
345
  const progressClass = this.isMapLayout ? "" : "display-none";
346
346
  this._validateActiveActions();
347
- return (h(Host, { key: '0b617eeb40229e49a32f5e4a557bfa0f88588fae' }, h("div", { key: 'd93aa32cd31279e468e4570af231a3f3788b9897', class: `${mapContainerClass} width-full`, ref: (el) => this._toolbar = el }, this._getActionBar(), !this.isMobile && this.isMapLayout && this._getDropdown("more-table-options"), this.enableShare && !this.isMobile && this.isMapLayout ? this._getShare("share") : undefined), h("calcite-progress", { key: '0ac01b19752ded5ddf0b06723b30fa669b2f6933', class: progressClass, value: 0 }), h("div", { key: '256bc38d71e3de4ab7ba7328ce12c32fa9ef0d2b', class: `${mapHeightClass} ${mapClass}`, ref: (el) => (this._mapDiv = el) }), h("map-tools", { key: 'e86f179871e8b315ff8d6ecb87545d9af8222590', basemapConfig: this.basemapConfig, class: `box-shadow ${themeClass}`, enableBasemap: this.enableBasemap, enableFloorFilter: this.enableFloorFilter, enableFullscreen: this.enableFullscreen, enableHome: this.enableHome, enableLegend: this.enableLegend, enableSearch: this.enableSearch, enableSingleExpand: this.enableSingleExpand, homeZoomToolsSize: this.homeZoomToolsSize, locale: this.locale, mapView: this.mapView, mapWidgetsSize: this.mapWidgetsSize, position: this.mapWidgetsPosition, ref: (el) => this._mapTools = el, searchConfiguration: this._searchConfiguration, stackTools: this.stackTools, toolOrder: this.toolOrder })));
347
+ return (h(Host, { key: '525ee5ce855cf5aa4f8c50e7e88be6c6236046ac' }, h("div", { key: '899898ee0b2ba9048ed24716a339c94d3106a52e', class: `${mapContainerClass} width-full`, ref: (el) => this._toolbar = el }, this._getActionBar(), !this.isMobile && this.isMapLayout && this._getDropdown("more-table-options"), this.enableShare && !this.isMobile && this.isMapLayout ? this._getShare("share") : undefined), h("calcite-progress", { key: '896569eb6cf65f45cbebb4b36f5b01ada5ed1092', class: progressClass, value: 0 }), h("div", { key: '79cac798541783bdc74e4b13f9df4d7564eb99f4', class: `${mapHeightClass} ${mapClass}`, ref: (el) => (this._mapDiv = el) }), h("map-tools", { key: '730d48c4ce98af3872bfa6c486e8749e18c24477', basemapConfig: this.basemapConfig, class: `box-shadow ${themeClass}`, enableBasemap: this.enableBasemap, enableFloorFilter: this.enableFloorFilter, enableFullscreen: this.enableFullscreen, enableHome: this.enableHome, enableLegend: this.enableLegend, enableSearch: this.enableSearch, enableSingleExpand: this.enableSingleExpand, homeZoomToolsSize: this.homeZoomToolsSize, locale: this.locale, mapView: this.mapView, mapWidgetsSize: this.mapWidgetsSize, position: this.mapWidgetsPosition, ref: (el) => this._mapTools = el, searchConfiguration: this._searchConfiguration, stackTools: this.stackTools, toolOrder: this.toolOrder })));
348
348
  }
349
349
  /**
350
350
  * Called each time after the component is loaded
@@ -1662,8 +1662,12 @@ export class MapCard {
1662
1662
  },
1663
1663
  "updateFilterState": {
1664
1664
  "complexType": {
1665
- "signature": "() => Promise<void>",
1666
- "parameters": [],
1665
+ "signature": "(active: boolean) => Promise<void>",
1666
+ "parameters": [{
1667
+ "name": "active",
1668
+ "type": "boolean",
1669
+ "docs": ""
1670
+ }],
1667
1671
  "references": {
1668
1672
  "Promise": {
1669
1673
  "location": "global",
@@ -75,7 +75,7 @@ export class SolutionSpatialRef {
75
75
  }
76
76
  render() {
77
77
  this._updateUIFromStore();
78
- return (h(Host, { key: 'c4d6b7debb3852da999002bd1d9394ba4a4f2da8' }, h("label", { key: 'e16a28157db4c3aece6a00460816c3394f1f9198', class: "switch-label" }, h("calcite-switch", { key: '48d3b1c12aa93c50ccf424ccaf0a810855227b8d', checked: this.enabled, class: "spatial-ref-switch", onCalciteSwitchChange: (event) => this.enabled = event.target.checked, scale: "m" }), this._translations.enableSpatialReference), h("br", { key: '0e7eb35accdccef9f17e0a24b17180d25c4f054a' }), h("div", { key: '257e130fdda5e42a8c40662f21c3d315f91562c7', class: "spatial-ref-component", id: "spatialRefDefn" }, this._renderFeatureServicesList(this.featureServices)), h("label", { key: 'd7581971bb310c6c4b0fb1015db59a359da54b90', class: "switch-label spatial-ref-component" }, h("calcite-switch", { key: '3045b179955101fc5baff8ca09cb10d0077e35ca', checked: this.enableDefault, class: "spatial-ref-switch", disabled: !this.enabled, onCalciteSwitchChange: (event) => this.enableDefault = event.target.checked, scale: "m" }), this._translations.enableDefaultSpatialReference)));
78
+ return (h(Host, { key: 'b8775ad1a6a18c0b32d020c02d6f9fe13f5d578a' }, h("label", { key: 'd10fa03d4d127579eed4fec2c6c907dc46166bdf', class: "switch-label" }, h("calcite-switch", { key: 'ce47d98234008f377d674851ce77c68ebaa4fd71', checked: this.enabled, class: "spatial-ref-switch", onCalciteSwitchChange: (event) => this.enabled = event.target.checked, scale: "m" }), this._translations.enableSpatialReference), h("br", { key: '54dc5ccf3fec55650f62d8dbeb09071c8e88805c' }), h("div", { key: '03257e474d254e4d5a0dd10ac7ab6e8b88f85d54', class: "spatial-ref-component", id: "spatialRefDefn" }, this._renderFeatureServicesList(this.featureServices)), h("label", { key: 'fac415766affa3b1620ce6a5c3d5ef900b25944f', class: "switch-label spatial-ref-component" }, h("calcite-switch", { key: '611b69b0895267702a69a70436033274d3d28892', checked: this.enableDefault, class: "spatial-ref-switch", disabled: !this.enabled, onCalciteSwitchChange: (event) => this.enableDefault = event.target.checked, scale: "m" }), this._translations.enableDefaultSpatialReference)));
79
79
  }
80
80
  //--------------------------------------------------------------------------
81
81
  //
@@ -345,7 +345,7 @@ export class SolutionSpatialRef {
345
345
  },
346
346
  "locale": {
347
347
  "type": "string",
348
- "mutable": false,
348
+ "mutable": true,
349
349
  "complexType": {
350
350
  "original": "string",
351
351
  "resolved": "string",
@@ -591,9 +591,10 @@ const CrowdsourceManager$1 = /*@__PURE__*/ proxyCustomElement(class CrowdsourceM
591
591
  return (h("calcite-modal", { "aria-labelledby": "modal-title", class: "modal", kind: "brand", onCalciteModalClose: () => void this._closeFilter(), open: this._filterOpen, widthScale: "s" }, h("div", { class: "display-flex align-center", id: "modal-title", slot: "header" }, this._translations?.filter?.replace("{{title}}", this._layer?.title)), h("div", { slot: "content" }, h("instant-apps-filter-list", { autoUpdateUrl: false, closeBtn: true, closeBtnOnClick: async () => this._closeFilter(), comboboxOverlayPositioning: "fixed", layerExpressions: this._layerExpressions, onFilterListReset: () => {
592
592
  this._handleFilterListReset();
593
593
  void this._mapCard.resetFilter();
594
- }, onFilterUpdate: () => {
595
- void this._layerTable?.filterUpdate();
596
- void this._mapCard.updateFilterState();
594
+ }, onFilterUpdate: async () => {
595
+ const active = this._filterList.filterCount > 0;
596
+ await this._layerTable?.filterUpdate(active);
597
+ await this._mapCard.updateFilterState(active);
597
598
  }, ref: (el) => this._filterList = el, view: this._mapView, zoomBtn: false }))));
598
599
  }
599
600
  /**