@esri/solutions-components 0.8.5 → 0.8.6

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 (89) hide show
  1. package/dist/assets/t9n/crowdsource-reporter/resources.json +5 -6
  2. package/dist/assets/t9n/crowdsource-reporter/resources_en.json +5 -6
  3. package/dist/assets/t9n/feature-list/resources.json +1 -1
  4. package/dist/assets/t9n/feature-list/resources_en.json +1 -1
  5. package/dist/assets/t9n/public-notification/resources.json +3 -1
  6. package/dist/assets/t9n/public-notification/resources_en.json +3 -1
  7. package/dist/cjs/buffer-tools_3.cjs.entry.js +2 -2
  8. package/dist/cjs/calcite-alert_4.cjs.entry.js +2 -2
  9. package/dist/cjs/calcite-combobox_5.cjs.entry.js +2 -2
  10. package/dist/cjs/calcite-flow_5.cjs.entry.js +163 -16
  11. package/dist/cjs/crowdsource-reporter.cjs.entry.js +120 -38
  12. package/dist/cjs/loader.cjs.js +1 -1
  13. package/dist/cjs/map-select-tools_3.cjs.entry.js +2 -2
  14. package/dist/cjs/public-notification.cjs.entry.js +110 -4
  15. package/dist/cjs/{publicNotificationStore-ef379d11.js → publicNotificationStore-e790601d.js} +2 -2
  16. package/dist/cjs/solutions-components.cjs.js +1 -1
  17. package/dist/collection/collection-manifest.json +1 -1
  18. package/dist/collection/components/create-feature/create-feature.css +9 -0
  19. package/dist/collection/components/create-feature/create-feature.js +134 -6
  20. package/dist/collection/components/crowdsource-reporter/crowdsource-reporter.css +5 -0
  21. package/dist/collection/components/crowdsource-reporter/crowdsource-reporter.js +120 -38
  22. package/dist/collection/components/feature-list/feature-list.js +93 -5
  23. package/dist/collection/components/info-card/info-card.css +1 -1
  24. package/dist/collection/components/info-card/info-card.js +1 -1
  25. package/dist/collection/components/layer-list/layer-list.js +6 -6
  26. package/dist/collection/components/map-draw-tools/map-draw-tools.js +1 -1
  27. package/dist/collection/components/map-layer-picker/map-layer-picker.js +1 -1
  28. package/dist/collection/components/map-select-tools/map-select-tools.js +1 -1
  29. package/dist/collection/components/public-notification/public-notification.js +110 -3
  30. package/dist/collection/demos/crowdsource-reporter.html +1 -1
  31. package/dist/collection/utils/interfaces.ts +7 -0
  32. package/dist/collection/utils/publicNotificationStore.js +2 -2
  33. package/dist/collection/utils/publicNotificationStore.ts +3 -2
  34. package/dist/components/create-feature2.js +111 -7
  35. package/dist/components/crowdsource-reporter.js +121 -39
  36. package/dist/components/feature-list2.js +54 -6
  37. package/dist/components/info-card2.js +2 -2
  38. package/dist/components/layer-list2.js +6 -6
  39. package/dist/components/map-draw-tools2.js +1 -1
  40. package/dist/components/map-layer-picker2.js +1 -1
  41. package/dist/components/map-select-tools2.js +1 -1
  42. package/dist/components/public-notification.js +110 -3
  43. package/dist/components/publicNotificationStore.js +2 -2
  44. package/dist/esm/buffer-tools_3.entry.js +2 -2
  45. package/dist/esm/calcite-alert_4.entry.js +3 -3
  46. package/dist/esm/calcite-combobox_5.entry.js +3 -3
  47. package/dist/esm/calcite-flow_5.entry.js +164 -17
  48. package/dist/esm/card-manager_3.entry.js +2 -2
  49. package/dist/esm/crowdsource-manager.entry.js +1 -1
  50. package/dist/esm/crowdsource-reporter.entry.js +121 -39
  51. package/dist/esm/{downloadUtils-0c13073b.js → downloadUtils-0c1e4d7b.js} +2 -2
  52. package/dist/esm/{index.es-ad250bc6.js → index.es-286e3cfa.js} +2 -2
  53. package/dist/esm/loader.js +1 -1
  54. package/dist/esm/map-select-tools_3.entry.js +4 -4
  55. package/dist/esm/{mapViewUtils-20504620.js → mapViewUtils-253178f1.js} +1 -1
  56. package/dist/esm/public-notification.entry.js +112 -6
  57. package/dist/esm/{publicNotificationStore-3bf4de75.js → publicNotificationStore-223faed2.js} +2 -2
  58. package/dist/esm/solutions-components.js +1 -1
  59. package/dist/solutions-components/demos/crowdsource-reporter.html +1 -1
  60. package/dist/solutions-components/p-15f9624a.entry.js +6 -0
  61. package/dist/solutions-components/{p-955647ea.entry.js → p-1ea5e061.entry.js} +2 -2
  62. package/dist/solutions-components/{p-590a2a26.js → p-212b02e7.js} +1 -1
  63. package/dist/solutions-components/p-238d3b5f.entry.js +6 -0
  64. package/dist/solutions-components/p-273d833b.entry.js +6 -0
  65. package/dist/solutions-components/{p-cc280aa1.js → p-322868ec.js} +1 -1
  66. package/dist/solutions-components/{p-1d3a1794.js → p-331b5d1e.js} +2 -2
  67. package/dist/solutions-components/{p-c897e3eb.js → p-3af79063.js} +1 -1
  68. package/dist/solutions-components/{p-b8c12736.entry.js → p-45ed16d5.entry.js} +1 -1
  69. package/dist/solutions-components/p-80b11ec1.entry.js +17 -0
  70. package/dist/solutions-components/{p-5c7e3941.entry.js → p-813fd8a4.entry.js} +2 -2
  71. package/dist/solutions-components/{p-ff302d95.entry.js → p-d136eab0.entry.js} +2 -2
  72. package/dist/solutions-components/p-e0446d5b.entry.js +6 -0
  73. package/dist/solutions-components/solutions-components.esm.js +1 -1
  74. package/dist/solutions-components/utils/interfaces.ts +7 -0
  75. package/dist/solutions-components/utils/publicNotificationStore.ts +3 -2
  76. package/dist/types/components/create-feature/create-feature.d.ts +43 -1
  77. package/dist/types/components/crowdsource-reporter/crowdsource-reporter.d.ts +31 -10
  78. package/dist/types/components/feature-list/feature-list.d.ts +31 -0
  79. package/dist/types/components/layer-list/layer-list.d.ts +3 -3
  80. package/dist/types/components/public-notification/public-notification.d.ts +48 -0
  81. package/dist/types/components.d.ts +21 -0
  82. package/dist/types/utils/interfaces.d.ts +6 -0
  83. package/dist/types/utils/publicNotificationStore.d.ts +2 -1
  84. package/package.json +1 -1
  85. package/dist/solutions-components/p-6512dc44.entry.js +0 -6
  86. package/dist/solutions-components/p-6f65682c.entry.js +0 -6
  87. package/dist/solutions-components/p-989bf0bf.entry.js +0 -6
  88. package/dist/solutions-components/p-a0611720.entry.js +0 -6
  89. package/dist/solutions-components/p-efe1694a.entry.js +0 -17
@@ -24,7 +24,7 @@ import { d as defineCustomElement$3 } from './tooltip.js';
24
24
  import { d as defineCustomElement$2 } from './delete-button2.js';
25
25
  import { d as defineCustomElement$1 } from './edit-card2.js';
26
26
 
27
- const infoCardCss = ":host{display:block;--calcite-label-margin-bottom:0}.padding-1-2{padding:0.5rem}.display-none{display:none !important}.display-flex{display:flex}.position-absolute{position:absolute;top:0;right:0;bottom:0;left:0;overflow:auto}.esri-features__footer{display:none !important}.button-container{justify-content:space-between;align-items:center}.top-border{border-top:1px solid var(--calcite-color-border-1)}.min-width-100{min-width:100px}.width-100{width:100%}.esri-features__container{padding:0.5rem !important;background-color:var(--calcite-color-foreground-1) !important;height:100% !important}.overflow-hidden{overflow:hidden}.height-40{height:40px}.end-border{border-inline-end:1px solid var(--calcite-color-border-1)}.font-bold{font-weight:bold}.visibility-hidden{visibility:hidden;height:0px}.padding-inline-start-1{padding-inline-start:1rem}.border-width-0{border-width:0px}";
27
+ const infoCardCss = ":host{display:block;--calcite-label-margin-bottom:0}.padding-1-2{padding:0.5rem}.display-none{display:none !important}.display-flex{display:flex}.position-absolute{position:absolute;top:0;right:0;bottom:0;left:0;overflow:auto}.feature-node .esri-features__footer{display:none !important}.button-container{justify-content:space-between;align-items:center}.top-border{border-top:1px solid var(--calcite-color-border-1)}.min-width-100{min-width:100px}.width-100{width:100%}.esri-features__container{padding:0.5rem !important;background-color:var(--calcite-color-foreground-1) !important;height:100% !important}.overflow-hidden{overflow:hidden}.height-40{height:40px}.end-border{border-inline-end:1px solid var(--calcite-color-border-1)}.font-bold{font-weight:bold}.visibility-hidden{visibility:hidden;height:0px}.padding-inline-start-1{padding-inline-start:1rem}.border-width-0{border-width:0px}";
28
28
 
29
29
  const InfoCard = /*@__PURE__*/ proxyCustomElement(class InfoCard extends HTMLElement {
30
30
  constructor() {
@@ -148,7 +148,7 @@ const InfoCard = /*@__PURE__*/ proxyCustomElement(class InfoCard extends HTMLEle
148
148
  const id = (_d = (_c = this._features) === null || _c === void 0 ? void 0 : _c.selectedFeature) === null || _d === void 0 ? void 0 : _d.getObjectId();
149
149
  const ids = parseInt(id === null || id === void 0 ? void 0 : id.toString(), 10) > -1 ? [id] : [];
150
150
  const deleteEnabled = ((_e = this._layer) === null || _e === void 0 ? void 0 : _e.editingEnabled) && ((_h = (_g = (_f = this._layer) === null || _f === void 0 ? void 0 : _f.capabilities) === null || _g === void 0 ? void 0 : _g.operations) === null || _h === void 0 ? void 0 : _h.supportsDelete);
151
- return (h(Host, null, h("calcite-shell", null, this._getHeader(), h("calcite-loader", { class: loadingClass, label: this._translations.fetchingData }), h("div", { class: "esri-widget " + featureNodeClass, id: "features-node" }), h("div", { class: `${editButtonClass} width-100`, slot: "footer" }, this.allowEditing &&
151
+ return (h(Host, null, h("calcite-shell", null, this._getHeader(), h("calcite-loader", { class: loadingClass, label: this._translations.fetchingData }), h("div", { class: "esri-widget feature-node " + featureNodeClass, id: "features-node" }), h("div", { class: `${editButtonClass} width-100`, slot: "footer" }, this.allowEditing &&
152
152
  h("div", { class: "display-flex top-border padding-1-2" }, h("calcite-button", { appearance: "solid", id: "solutions-edit", onClick: () => this._openEditRecord(), width: "full" }, this._translations.edit), this.isMobile && deleteEnabled ? (h("delete-button", { class: "padding-inline-start-1 width-100", id: "solutions-delete", ids: ids, layer: this._layer, onEditsComplete: () => this._closePopup() })) : undefined, h("calcite-tooltip", { label: "", placement: "bottom", "reference-element": "solutions-edit" }, h("span", null, this._translations.edit)), this.isMobile ? (h("calcite-tooltip", { label: "", placement: "bottom", "reference-element": "solutions-delete" }, h("span", null, this._translations.delete))) : undefined), !nextBackDisabled && h("div", { class: `display-flex padding-1-2 button-container top-border ${nextBackClass}` }, h("div", { class: "min-width-100" }, h("calcite-button", { appearance: "outline", disabled: nextBackDisabled, id: "solutions-back", onClick: () => this._back(), width: "full" }, this._translations.back), h("calcite-tooltip", { label: "", placement: "top", "reference-element": "solutions-back" }, h("span", null, this._translations.back))), h("div", null, h("calcite-action", { icon: "list", onClick: () => this._toggleListView(), scale: "s", text: this._count, textEnabled: true })), h("div", { class: "min-width-100" }, h("calcite-button", { appearance: "outline", disabled: nextBackDisabled, id: "solutions-next", onClick: () => this._next(), width: "full" }, this._translations.next), h("calcite-tooltip", { label: "", placement: "top", "reference-element": "solutions-next" }, h("span", null, this._translations.next))))), h("edit-card", { class: editClass, graphicIndex: (_j = this._features) === null || _j === void 0 ? void 0 : _j.selectedFeatureIndex, graphics: this.graphics, mapView: this.mapView, open: this._editRecordOpen }), h("calcite-alert", { icon: "layer-broken", kind: "warning", label: "", onCalciteAlertClose: () => this._alertClosed(), open: this._alertOpen, placement: "top" }, h("div", { slot: "title" }, this._translations.editDisabled), h("div", { slot: "message" }, this._translations.enableEditing)))));
153
153
  }
154
154
  //--------------------------------------------------------------------------
@@ -82,7 +82,7 @@ const LayerList = /*@__PURE__*/ proxyCustomElement(class LayerList extends HTMLE
82
82
  render() {
83
83
  return (h(Fragment, null, this._isLoading && h("calcite-loader", { label: "", scale: "m" }), !this._isLoading && this.mapView && this._noLayersToDisplay &&
84
84
  h("calcite-notice", { class: "error-msg", icon: "layers-reference", kind: "danger", open: true }, h("div", { slot: "title" }, this._translations.error), h("div", { slot: "message" }, this.noLayerErrorMsg ? this.noLayerErrorMsg : this._noLayerToDisplayErrorMsg)), !this._isLoading && this.mapView &&
85
- h("calcite-list", { "selection-appearance": "border", "selection-mode": this.showNextIcon ? "none" : "single-persist" }, this.renderLayerList())));
85
+ h("calcite-list", { "selection-appearance": "border", "selection-mode": "none" }, this.renderLayerList())));
86
86
  }
87
87
  //--------------------------------------------------------------------------
88
88
  //
@@ -130,7 +130,7 @@ const LayerList = /*@__PURE__*/ proxyCustomElement(class LayerList extends HTMLE
130
130
  }
131
131
  });
132
132
  await Promise.all(def).then(() => {
133
- const editableLayerIds = this.getEditableIds(this._layerItemsHash);
133
+ const editableLayerIds = this.getLayersToBeShownInList(this._layerItemsHash);
134
134
  this._mapLayerIds = editableLayerIds.reverse();
135
135
  this.handleNoLayersToDisplay();
136
136
  }, () => {
@@ -146,17 +146,17 @@ const LayerList = /*@__PURE__*/ proxyCustomElement(class LayerList extends HTMLE
146
146
  this.layersListLoaded.emit(this._mapLayerIds);
147
147
  }
148
148
  /**
149
- * Returns the ids of all OR configured layers that support edits with the update capability
149
+ * Returns the ids of all OR configured layers that needs to be shown in the list
150
150
  * @param hash each layer item details
151
151
  * @returns array of layer ids
152
152
  */
153
- getEditableIds(hash) {
153
+ getLayersToBeShownInList(hash) {
154
154
  var _a;
155
155
  const configuredLayers = ((_a = this.layers) === null || _a === void 0 ? void 0 : _a.length) > 0 ? this.layers : [];
156
156
  return Object.keys(hash).reduce((prev, cur) => {
157
- let showLayer = hash[cur].supportsAdd;
157
+ let showLayer = true;
158
158
  if ((configuredLayers === null || configuredLayers === void 0 ? void 0 : configuredLayers.length) > 0) {
159
- showLayer = configuredLayers.indexOf(cur) > -1 ? hash[cur].supportsAdd : false;
159
+ showLayer = configuredLayers.indexOf(cur) > -1;
160
160
  }
161
161
  if (showLayer) {
162
162
  prev.push(cur);
@@ -167,7 +167,7 @@ const MapDrawTools = /*@__PURE__*/ proxyCustomElement(class MapDrawTools extends
167
167
  }
168
168
  else {
169
169
  this._sketchGraphicsLayer = new this.GraphicsLayer({ title, listMode: "hide" });
170
- state.managedLayers.push(title);
170
+ state.managedLayers[title] = "sketch";
171
171
  this.mapView.map.layers.add(this._sketchGraphicsLayer);
172
172
  }
173
173
  if (this.graphics && this.graphics.length > 0) {
@@ -305,7 +305,7 @@ const MapLayerPicker = /*@__PURE__*/ proxyCustomElement(class MapLayerPicker ext
305
305
  _validLayer(id) {
306
306
  var _a;
307
307
  const name = (_a = this._layerNameHash[id]) === null || _a === void 0 ? void 0 : _a.name;
308
- return name && state.managedLayers.indexOf(name) < 0 && (this.enabledLayerIds.length > 0 ?
308
+ return name && Object.keys(state.managedLayers).indexOf(name) < 0 && (this.enabledLayerIds.length > 0 ?
309
309
  this.enabledLayerIds.indexOf(id) > -1 : true);
310
310
  }
311
311
  /**
@@ -443,7 +443,7 @@ const MapSelectTools = /*@__PURE__*/ proxyCustomElement(class MapSelectTools ext
443
443
  }
444
444
  else {
445
445
  this._bufferGraphicsLayer = new this.GraphicsLayer({ title, listMode: "hide" });
446
- state.managedLayers.push(title);
446
+ state.managedLayers[title] = "buffer";
447
447
  const sketchIndex = this.mapView.map.layers.findIndex((l) => l.title === this._translations.sketchLayer);
448
448
  if (sketchIndex > -1) {
449
449
  this.mapView.map.layers.add(this._bufferGraphicsLayer, sketchIndex);
@@ -92,6 +92,7 @@ const PublicNotification$1 = /*@__PURE__*/ proxyCustomElement(class PublicNotifi
92
92
  this.sketchLineSymbol = undefined;
93
93
  this.sketchPointSymbol = undefined;
94
94
  this.sketchPolygonSymbol = undefined;
95
+ this._exportGraphics = false;
95
96
  this._addMap = false;
96
97
  this._addResults = true;
97
98
  this._addTitle = false;
@@ -170,6 +171,7 @@ const PublicNotification$1 = /*@__PURE__*/ proxyCustomElement(class PublicNotifi
170
171
  if (pageType === EPageType.EXPORT) {
171
172
  this._fetchingData = true;
172
173
  this._numDuplicates = await this._getNumDuplicates();
174
+ this._updateExportGraphics();
173
175
  this._fetchingData = false;
174
176
  }
175
177
  this._clearHighlight();
@@ -177,6 +179,9 @@ const PublicNotification$1 = /*@__PURE__*/ proxyCustomElement(class PublicNotifi
177
179
  // clear any draw shapes or buffers
178
180
  await this._clearSelection();
179
181
  }
182
+ if (oldPageType === EPageType.EXPORT) {
183
+ this._removeExportGraphics();
184
+ }
180
185
  if (pageType !== EPageType.SELECT) {
181
186
  return this._highlightFeatures();
182
187
  }
@@ -240,12 +245,14 @@ const PublicNotification$1 = /*@__PURE__*/ proxyCustomElement(class PublicNotifi
240
245
  * @protected
241
246
  */
242
247
  async _initModules() {
243
- const [geometryEngine, jsonUtils] = await loadModules([
248
+ const [geometryEngine, jsonUtils, graphic] = await loadModules([
244
249
  "esri/geometry/geometryEngine",
245
- "esri/symbols/support/jsonUtils"
250
+ "esri/symbols/support/jsonUtils",
251
+ "esri/Graphic"
246
252
  ]);
247
253
  this._geometryEngine = geometryEngine;
248
254
  this._jsonUtils = jsonUtils;
255
+ this.Graphic = graphic;
249
256
  }
250
257
  /**
251
258
  * Load the search configuration
@@ -573,9 +580,107 @@ const PublicNotification$1 = /*@__PURE__*/ proxyCustomElement(class PublicNotifi
573
580
  _getExportOptions() {
574
581
  const displayClass = this._exportType === EExportType.PDF ? "display-block" : "display-none";
575
582
  const titleOptionsClass = this._addTitle ? "display-block" : "display-none";
583
+ const graphicsOptionsClass = this._addMap ? "display-flex" : "display-none";
576
584
  const title = this._titleValue ? this._titleValue : this.defaultExportTitle ? this.defaultExportTitle : "";
577
585
  const formatOptionsClass = this._addResults ? "" : "display-none";
578
- return (h("div", { class: displayClass }, this._getLabel(this._translations.pdfOptions, true), h("div", { class: "padding-top-sides-1" }, h("calcite-label", { class: "label-margin-0", layout: "inline" }, h("calcite-checkbox", { checked: this._addResults, onCalciteCheckboxChange: () => this._addResults = !this._addResults }), this._translations.addResults)), h("div", { class: `padding-top-sides-1 ${formatOptionsClass}` }, h("calcite-label", { class: "label-margin-0" }, this._translations.selectPDFLabelOption)), h("div", { class: `padding-sides-1 ${formatOptionsClass}` }, h("pdf-download", { defaultNumLabelsPerPage: parseInt(this.defaultNumLabelsPerPage.toString(), 10), disabled: !this._downloadActive, ref: (el) => { this._downloadTools = el; } })), h("div", { class: "padding-top-sides-1" }, h("calcite-label", { class: "label-margin-0", layout: "inline" }, h("calcite-checkbox", { checked: this._addTitle, onCalciteCheckboxChange: () => this._addTitle = !this._addTitle }), this._translations.title)), h("div", { class: titleOptionsClass }, this._getLabel(this._translations.title, true, ""), h("calcite-input-text", { class: "padding-sides-1", onCalciteInputTextInput: () => this._changeTitle(), placeholder: this._translations.titlePlaceholder, ref: (el) => { this._titleElement = el; }, value: title })), h("div", { class: "padding-top-sides-1" }, h("calcite-label", { class: "label-margin-0", layout: "inline" }, h("calcite-checkbox", { checked: this._addMap, onCalciteCheckboxChange: () => this._addMap = !this._addMap }), this._translations.includeMap))));
586
+ return (h("div", { class: displayClass }, this._getLabel(this._translations.pdfOptions, true), h("div", { class: "padding-top-sides-1" }, h("calcite-label", { class: "label-margin-0", layout: "inline" }, h("calcite-checkbox", { checked: this._addResults, onCalciteCheckboxChange: () => this._addResults = !this._addResults }), this._translations.addResults)), h("div", { class: `padding-top-sides-1 ${formatOptionsClass}` }, h("calcite-label", { class: "label-margin-0" }, this._translations.selectPDFLabelOption)), h("div", { class: `padding-sides-1 ${formatOptionsClass}` }, h("pdf-download", { defaultNumLabelsPerPage: parseInt(this.defaultNumLabelsPerPage.toString(), 10), disabled: !this._downloadActive, ref: (el) => { this._downloadTools = el; } })), h("div", { class: "padding-top-sides-1" }, h("calcite-label", { class: "label-margin-0", layout: "inline" }, h("calcite-checkbox", { checked: this._addTitle, onCalciteCheckboxChange: () => this._addTitle = !this._addTitle }), this._translations.title)), h("div", { class: titleOptionsClass }, this._getLabel(this._translations.title, true, ""), h("calcite-input-text", { class: "padding-sides-1", onCalciteInputTextInput: () => this._changeTitle(), placeholder: this._translations.titlePlaceholder, ref: (el) => { this._titleElement = el; }, value: title })), h("div", { class: "padding-top-sides-1" }, h("calcite-label", { class: "label-margin-0", layout: "inline" }, h("calcite-checkbox", { checked: this._addMap, onCalciteCheckboxChange: () => this._handleAddMapChange() }), this._translations.includeMap)), h("div", { class: `padding-top-sides-1 ${graphicsOptionsClass}` }, h("calcite-label", { class: "label-margin-0", layout: "inline" }, h("calcite-checkbox", { checked: this._exportGraphics, onCalciteCheckboxChange: () => this._handleExportGraphicsChange() }), this._translations.listGraphics), h("calcite-icon", { class: "padding-start-1-2 icon", icon: "question", id: "list-graphics-icon", scale: "s" }), h("calcite-popover", { closable: true, label: "", referenceElement: "list-graphics-icon" }, h("span", { class: "tooltip-message" }, this._translations.listGraphicsTip)))));
587
+ }
588
+ /**
589
+ * Toggle the _addMap state variable and update the graphics on the map
590
+ *
591
+ * @protected
592
+ */
593
+ _handleAddMapChange() {
594
+ this._addMap = !this._addMap;
595
+ this._updateExportGraphics();
596
+ }
597
+ /**
598
+ * Toggle the _exportGraphics state variable and update the graphics on the map
599
+ *
600
+ * @protected
601
+ */
602
+ _handleExportGraphicsChange() {
603
+ this._exportGraphics = !this._exportGraphics;
604
+ this._updateExportGraphics();
605
+ }
606
+ /**
607
+ * Get the "sketch" or "buffer" graphics layer
608
+ *
609
+ * @param type The type of managed layer to fetch "sketch" | "buffer"
610
+ *
611
+ * @protected
612
+ */
613
+ _getManagedLayer(type) {
614
+ let layer;
615
+ Object.keys(state.managedLayers).some((k) => {
616
+ const i = this.mapView.map.layers.findIndex((l) => l.title === k);
617
+ if (state.managedLayers[k] === type) {
618
+ layer = this.mapView.map.layers.getItemAt(i);
619
+ return true;
620
+ }
621
+ });
622
+ return layer;
623
+ }
624
+ /**
625
+ * Update the export graphics by adding or removeing them
626
+ *
627
+ * @param clear When true the graphics layers will be cleared prior to adding any new graphics, defaults to false
628
+ *
629
+ * @protected
630
+ */
631
+ _updateExportGraphics(clear = false) {
632
+ if (clear || !this._exportGraphics || !this._addMap) {
633
+ this._removeExportGraphics();
634
+ }
635
+ if (this._exportGraphics && this._addMap) {
636
+ this._addExportGraphics();
637
+ }
638
+ }
639
+ /**
640
+ * Remove all buffer and sketch graphics
641
+ *
642
+ * @protected
643
+ */
644
+ _removeExportGraphics() {
645
+ const sketchLayer = this._getManagedLayer("sketch");
646
+ const bufferLayer = this._getManagedLayer("buffer");
647
+ if (sketchLayer) {
648
+ sketchLayer.graphics.removeAll();
649
+ }
650
+ if (bufferLayer) {
651
+ bufferLayer.graphics.removeAll();
652
+ }
653
+ }
654
+ /**
655
+ * Add all buffer and sketch graphics that are flagged for download
656
+ *
657
+ * @protected
658
+ */
659
+ _addExportGraphics() {
660
+ const sketchLayer = this._getManagedLayer("sketch");
661
+ const bufferLayer = this._getManagedLayer("buffer");
662
+ this._selectionSets.forEach(ss => {
663
+ if (ss.download) {
664
+ if (sketchLayer) {
665
+ sketchLayer.graphics.add(ss.sketchGraphic);
666
+ }
667
+ if (bufferLayer) {
668
+ const symbol = {
669
+ type: "simple-fill",
670
+ color: this.bufferColor,
671
+ outline: {
672
+ color: this.bufferOutlineColor,
673
+ width: 1
674
+ }
675
+ };
676
+ const bufferGraphic = new this.Graphic({
677
+ geometry: ss.buffer,
678
+ symbol
679
+ });
680
+ bufferLayer.graphics.add(bufferGraphic);
681
+ }
682
+ }
683
+ });
579
684
  }
580
685
  /**
581
686
  * Render the refine page
@@ -669,6 +774,7 @@ const PublicNotification$1 = /*@__PURE__*/ proxyCustomElement(class PublicNotifi
669
774
  isActive = ss.download ? true : isActive;
670
775
  return ss;
671
776
  });
777
+ this._updateExportGraphics(true);
672
778
  this._downloadActive = isActive;
673
779
  this._fetchingData = true;
674
780
  this._numDuplicates = await this._getNumDuplicates();
@@ -939,6 +1045,7 @@ const PublicNotification$1 = /*@__PURE__*/ proxyCustomElement(class PublicNotifi
939
1045
  "sketchLineSymbol": [8, "sketch-line-symbol"],
940
1046
  "sketchPointSymbol": [8, "sketch-point-symbol"],
941
1047
  "sketchPolygonSymbol": [8, "sketch-polygon-symbol"],
1048
+ "_exportGraphics": [32],
942
1049
  "_addMap": [32],
943
1050
  "_addResults": [32],
944
1051
  "_addTitle": [32],
@@ -21,8 +21,8 @@ import { c as createStore } from './index4.js';
21
21
  * limitations under the License.
22
22
  */
23
23
  const { state, onChange } = createStore({
24
- // List of layers added and managed by the component
25
- managedLayers: [],
24
+ // Key Value pair whose Key is the layer name and the Value is the type of layer ("buffer" | "sketch")
25
+ managedLayers: {},
26
26
  // List of tables added and managed by the component
27
27
  managedTables: [],
28
28
  // Handle[]: https://developers.arcgis.com/javascript/latest/api-reference/esri-core-Handles.html#Handle
@@ -7,7 +7,7 @@ import { r as registerInstance, c as createEvent, h, H as Host, g as getElement
7
7
  import { l as loadModules, g as getLocaleComponentStrings } from './locale-bcbea4ef.js';
8
8
  import { x as setRequestedIcon } from './dom-38c6f027.js';
9
9
  import { f as EDrawMode } from './interfaces-586e863c.js';
10
- import { s as state } from './publicNotificationStore-3bf4de75.js';
10
+ import { s as state } from './publicNotificationStore-223faed2.js';
11
11
  import './esri-loader-1b324844.js';
12
12
  import './_commonjsHelpers-0f74c230.js';
13
13
  import './guid-b75a5f7b.js';
@@ -464,7 +464,7 @@ const MapDrawTools = class {
464
464
  }
465
465
  else {
466
466
  this._sketchGraphicsLayer = new this.GraphicsLayer({ title, listMode: "hide" });
467
- state.managedLayers.push(title);
467
+ state.managedLayers[title] = "sketch";
468
468
  this.mapView.map.layers.add(this._sketchGraphicsLayer);
469
469
  }
470
470
  if (this.graphics && this.graphics.length > 0) {
@@ -12,7 +12,7 @@ import { o as onToggleOpenCloseComponent } from './openCloseComponent-9f90f493.j
12
12
  import { c as connectMessages, s as setUpMessages, d as disconnectMessages, u as updateMessages } from './t9n-436fb2b1.js';
13
13
  import { K as KindIcons } from './resources-88a48c5c.js';
14
14
  import { g as getLocaleComponentStrings, l as loadModules } from './locale-bcbea4ef.js';
15
- import { a as getAllLayers } from './mapViewUtils-20504620.js';
15
+ import { a as getAllLayers } from './mapViewUtils-253178f1.js';
16
16
  import { P as PopupUtils } from './popupUtils-af124b47.js';
17
17
  import './guid-b75a5f7b.js';
18
18
  import './resources-8834f920.js';
@@ -664,7 +664,7 @@ const EditCard = class {
664
664
  };
665
665
  EditCard.style = editCardCss;
666
666
 
667
- const infoCardCss = ":host{display:block;--calcite-label-margin-bottom:0}.padding-1-2{padding:0.5rem}.display-none{display:none !important}.display-flex{display:flex}.position-absolute{position:absolute;top:0;right:0;bottom:0;left:0;overflow:auto}.esri-features__footer{display:none !important}.button-container{justify-content:space-between;align-items:center}.top-border{border-top:1px solid var(--calcite-color-border-1)}.min-width-100{min-width:100px}.width-100{width:100%}.esri-features__container{padding:0.5rem !important;background-color:var(--calcite-color-foreground-1) !important;height:100% !important}.overflow-hidden{overflow:hidden}.height-40{height:40px}.end-border{border-inline-end:1px solid var(--calcite-color-border-1)}.font-bold{font-weight:bold}.visibility-hidden{visibility:hidden;height:0px}.padding-inline-start-1{padding-inline-start:1rem}.border-width-0{border-width:0px}";
667
+ const infoCardCss = ":host{display:block;--calcite-label-margin-bottom:0}.padding-1-2{padding:0.5rem}.display-none{display:none !important}.display-flex{display:flex}.position-absolute{position:absolute;top:0;right:0;bottom:0;left:0;overflow:auto}.feature-node .esri-features__footer{display:none !important}.button-container{justify-content:space-between;align-items:center}.top-border{border-top:1px solid var(--calcite-color-border-1)}.min-width-100{min-width:100px}.width-100{width:100%}.esri-features__container{padding:0.5rem !important;background-color:var(--calcite-color-foreground-1) !important;height:100% !important}.overflow-hidden{overflow:hidden}.height-40{height:40px}.end-border{border-inline-end:1px solid var(--calcite-color-border-1)}.font-bold{font-weight:bold}.visibility-hidden{visibility:hidden;height:0px}.padding-inline-start-1{padding-inline-start:1rem}.border-width-0{border-width:0px}";
668
668
 
669
669
  const InfoCard = class {
670
670
  constructor(hostRef) {
@@ -787,7 +787,7 @@ const InfoCard = class {
787
787
  const id = (_d = (_c = this._features) === null || _c === void 0 ? void 0 : _c.selectedFeature) === null || _d === void 0 ? void 0 : _d.getObjectId();
788
788
  const ids = parseInt(id === null || id === void 0 ? void 0 : id.toString(), 10) > -1 ? [id] : [];
789
789
  const deleteEnabled = ((_e = this._layer) === null || _e === void 0 ? void 0 : _e.editingEnabled) && ((_h = (_g = (_f = this._layer) === null || _f === void 0 ? void 0 : _f.capabilities) === null || _g === void 0 ? void 0 : _g.operations) === null || _h === void 0 ? void 0 : _h.supportsDelete);
790
- return (h(Host, null, h("calcite-shell", null, this._getHeader(), h("calcite-loader", { class: loadingClass, label: this._translations.fetchingData }), h("div", { class: "esri-widget " + featureNodeClass, id: "features-node" }), h("div", { class: `${editButtonClass} width-100`, slot: "footer" }, this.allowEditing &&
790
+ return (h(Host, null, h("calcite-shell", null, this._getHeader(), h("calcite-loader", { class: loadingClass, label: this._translations.fetchingData }), h("div", { class: "esri-widget feature-node " + featureNodeClass, id: "features-node" }), h("div", { class: `${editButtonClass} width-100`, slot: "footer" }, this.allowEditing &&
791
791
  h("div", { class: "display-flex top-border padding-1-2" }, h("calcite-button", { appearance: "solid", id: "solutions-edit", onClick: () => this._openEditRecord(), width: "full" }, this._translations.edit), this.isMobile && deleteEnabled ? (h("delete-button", { class: "padding-inline-start-1 width-100", id: "solutions-delete", ids: ids, layer: this._layer, onEditsComplete: () => this._closePopup() })) : undefined, h("calcite-tooltip", { label: "", placement: "bottom", "reference-element": "solutions-edit" }, h("span", null, this._translations.edit)), this.isMobile ? (h("calcite-tooltip", { label: "", placement: "bottom", "reference-element": "solutions-delete" }, h("span", null, this._translations.delete))) : undefined), !nextBackDisabled && h("div", { class: `display-flex padding-1-2 button-container top-border ${nextBackClass}` }, h("div", { class: "min-width-100" }, h("calcite-button", { appearance: "outline", disabled: nextBackDisabled, id: "solutions-back", onClick: () => this._back(), width: "full" }, this._translations.back), h("calcite-tooltip", { label: "", placement: "top", "reference-element": "solutions-back" }, h("span", null, this._translations.back))), h("div", null, h("calcite-action", { icon: "list", onClick: () => this._toggleListView(), scale: "s", text: this._count, textEnabled: true })), h("div", { class: "min-width-100" }, h("calcite-button", { appearance: "outline", disabled: nextBackDisabled, id: "solutions-next", onClick: () => this._next(), width: "full" }, this._translations.next), h("calcite-tooltip", { label: "", placement: "top", "reference-element": "solutions-next" }, h("span", null, this._translations.next))))), h("edit-card", { class: editClass, graphicIndex: (_j = this._features) === null || _j === void 0 ? void 0 : _j.selectedFeatureIndex, graphics: this.graphics, mapView: this.mapView, open: this._editRecordOpen }), h("calcite-alert", { icon: "layer-broken", kind: "warning", label: "", onCalciteAlertClose: () => this._alertClosed(), open: this._alertOpen, placement: "top" }, h("div", { slot: "title" }, this._translations.editDisabled), h("div", { slot: "message" }, this._translations.enableEditing)))));
792
792
  }
793
793
  //--------------------------------------------------------------------------
@@ -22,8 +22,8 @@ import { V as Validation } from './Validation-ea480265.js';
22
22
  import { d as debounce } from './debounce-229b1a22.js';
23
23
  import { i as isActivationKey } from './key-c83d835f.js';
24
24
  import { g as getLocaleComponentStrings } from './locale-bcbea4ef.js';
25
- import { d as getMapLayerHash, o as getMapTableHash } from './mapViewUtils-20504620.js';
26
- import { s as state } from './publicNotificationStore-3bf4de75.js';
25
+ import { c as getMapLayerHash, o as getMapTableHash } from './mapViewUtils-253178f1.js';
26
+ import { s as state } from './publicNotificationStore-223faed2.js';
27
27
  import './resources-8834f920.js';
28
28
  import './browser-d60104bd.js';
29
29
  import './esri-loader-1b324844.js';
@@ -2065,7 +2065,7 @@ const MapLayerPicker = class {
2065
2065
  _validLayer(id) {
2066
2066
  var _a;
2067
2067
  const name = (_a = this._layerNameHash[id]) === null || _a === void 0 ? void 0 : _a.name;
2068
- return name && state.managedLayers.indexOf(name) < 0 && (this.enabledLayerIds.length > 0 ?
2068
+ return name && Object.keys(state.managedLayers).indexOf(name) < 0 && (this.enabledLayerIds.length > 0 ?
2069
2069
  this.enabledLayerIds.indexOf(id) > -1 : true);
2070
2070
  }
2071
2071
  /**