@esri/solutions-components 0.5.0 → 0.5.2

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 (162) hide show
  1. package/dist/assets/arcgis-pdf-creator/PDFCreator.js +6 -3
  2. package/dist/assets/arcgis-pdf-creator/PDFCreator_jsPDF.js +1 -1
  3. package/dist/assets/arcgis-pdf-creator/PDFCreator_pdf_lib.js +1 -1
  4. package/dist/assets/arcgis-pdf-creator/PDFLabels.js +54 -3
  5. package/dist/assets/arcgis-pdf-creator/grid.js +1 -1
  6. package/dist/assets/data/images/grid.png +0 -0
  7. package/dist/assets/data/images/horizontal.png +0 -0
  8. package/dist/assets/data/images/vertical.png +0 -0
  9. package/dist/assets/t9n/crowdsource-manager/resources.json +7 -1
  10. package/dist/assets/t9n/crowdsource-manager/resources_en.json +7 -1
  11. package/dist/cjs/buffer-tools_6.cjs.entry.js +88 -92
  12. package/dist/cjs/{calcite-block_2.cjs.entry.js → calcite-action-bar_4.cjs.entry.js} +307 -18
  13. package/dist/cjs/{calcite-action.cjs.entry.js → calcite-action_2.cjs.entry.js} +84 -1
  14. package/dist/cjs/{calcite-combobox_3.cjs.entry.js → calcite-chip_4.cjs.entry.js} +131 -5
  15. package/dist/cjs/{calcite-dropdown-group_4.cjs.entry.js → calcite-dropdown_5.cjs.entry.js} +467 -1
  16. package/dist/cjs/calcite-input-message_5.cjs.entry.js +19 -17
  17. package/dist/cjs/calcite-shell-panel_14.cjs.entry.js +2 -2
  18. package/dist/cjs/{calcite-action-bar_2.cjs.entry.js → calcite-tooltip.cjs.entry.js} +2 -208
  19. package/dist/cjs/crowdsource-manager.cjs.entry.js +88 -14
  20. package/dist/cjs/{downloadUtils-415ab342.js → downloadUtils-9359e9ff.js} +135 -44
  21. package/dist/cjs/{index.es-98008aa0.js → index.es-9c0d0ed6.js} +3 -3
  22. package/dist/cjs/{interfaces-17c631bf.js → interfaces-cac36920.js} +6 -0
  23. package/dist/cjs/layer-table_2.cjs.entry.js +512 -0
  24. package/dist/cjs/loader.cjs.js +1 -1
  25. package/dist/cjs/{mapViewUtils-f617ae9a.js → mapViewUtils-090f4d4d.js} +3 -3
  26. package/dist/cjs/public-notification.cjs.entry.js +173 -48
  27. package/dist/cjs/solution-configuration.cjs.entry.js +2 -2
  28. package/dist/cjs/solution-contents_3.cjs.entry.js +2 -2
  29. package/dist/cjs/{solution-store-b86759b2.js → solution-store-d28c332e.js} +1 -1
  30. package/dist/cjs/solutions-components.cjs.js +1 -1
  31. package/dist/collection/assets/arcgis-pdf-creator/PDFCreator.js +6 -3
  32. package/dist/collection/assets/arcgis-pdf-creator/PDFCreator_jsPDF.js +1 -1
  33. package/dist/collection/assets/arcgis-pdf-creator/PDFCreator_pdf_lib.js +1 -1
  34. package/dist/collection/assets/arcgis-pdf-creator/PDFLabels.js +54 -3
  35. package/dist/collection/assets/arcgis-pdf-creator/grid.js +1 -1
  36. package/dist/collection/components/crowdsource-manager/crowdsource-manager.css +122 -0
  37. package/dist/collection/components/crowdsource-manager/crowdsource-manager.js +130 -14
  38. package/dist/collection/components/layer-table/layer-table.css +2 -70
  39. package/dist/collection/components/layer-table/layer-table.js +66 -106
  40. package/dist/collection/components/map-card/map-card.css +4 -7
  41. package/dist/collection/components/map-card/map-card.js +44 -10
  42. package/dist/collection/components/map-draw-tools/map-draw-tools.js +4 -8
  43. package/dist/collection/components/map-select-tools/map-select-tools.js +75 -15
  44. package/dist/collection/components/public-notification/public-notification.js +217 -25
  45. package/dist/collection/components/refine-selection-tools/refine-selection-tools.js +1 -1
  46. package/dist/collection/demos/crowdsource-manager.html +14 -41
  47. package/dist/collection/utils/csvDownload.js +41 -0
  48. package/dist/collection/utils/csvDownload.ts +42 -0
  49. package/dist/collection/utils/csvUtils.js +6 -23
  50. package/dist/collection/utils/csvUtils.ts +8 -27
  51. package/dist/collection/utils/downloadUtils.js +30 -14
  52. package/dist/collection/utils/downloadUtils.ts +36 -14
  53. package/dist/collection/utils/interfaces.js +6 -0
  54. package/dist/collection/utils/interfaces.ts +6 -0
  55. package/dist/collection/utils/pdfUtils.js +9 -6
  56. package/dist/collection/utils/pdfUtils.ts +13 -8
  57. package/dist/collection/utils/queryUtils.js +2 -2
  58. package/dist/collection/utils/queryUtils.ts +2 -2
  59. package/dist/collection/utils/test/csvUtils.spec.tsx +56 -0
  60. package/dist/collection/utils/test/downloadUtils.spec.tsx +133 -0
  61. package/dist/components/crowdsource-manager.js +293 -17
  62. package/dist/components/downloadUtils.js +133 -42
  63. package/dist/components/interfaces3.js +7 -1
  64. package/dist/components/layer-table.js +1 -443
  65. package/dist/components/layer-table2.js +429 -0
  66. package/dist/components/map-card.js +1 -339
  67. package/dist/{esm/map-card.entry.js → components/map-card2.js} +118 -22
  68. package/dist/components/map-draw-tools2.js +19 -23
  69. package/dist/components/map-layer-picker2.js +1 -1
  70. package/dist/components/map-select-tools2.js +21 -16
  71. package/dist/components/public-notification.js +209 -81
  72. package/dist/components/queryUtils.js +2 -2
  73. package/dist/components/refine-selection-tools2.js +3 -3
  74. package/dist/components/refine-selection2.js +1 -1
  75. package/dist/components/solution-resource-item2.js +1 -1
  76. package/dist/components/solution-store.js +1 -1
  77. package/dist/esm/buffer-tools_6.entry.js +79 -83
  78. package/dist/esm/{calcite-block_2.entry.js → calcite-action-bar_4.entry.js} +307 -20
  79. package/dist/esm/{calcite-action.entry.js → calcite-action_2.entry.js} +84 -2
  80. package/dist/esm/{calcite-combobox_3.entry.js → calcite-chip_4.entry.js} +134 -9
  81. package/dist/esm/{calcite-dropdown-group_4.entry.js → calcite-dropdown_5.entry.js} +468 -3
  82. package/dist/esm/calcite-input-message_5.entry.js +19 -17
  83. package/dist/esm/calcite-shell-panel_14.entry.js +2 -2
  84. package/dist/esm/{calcite-action-bar_2.entry.js → calcite-tooltip.entry.js} +4 -209
  85. package/dist/esm/crowdsource-manager.entry.js +88 -14
  86. package/dist/esm/{downloadUtils-606b0f0e.js → downloadUtils-a8f139c5.js} +135 -44
  87. package/dist/esm/{index.es-c736c805.js → index.es-a75412ff.js} +3 -3
  88. package/dist/esm/{interfaces-d0d83efa.js → interfaces-cd4054e5.js} +7 -1
  89. package/dist/esm/layer-table_2.entry.js +507 -0
  90. package/dist/esm/loader.js +1 -1
  91. package/dist/esm/{mapViewUtils-4e945e07.js → mapViewUtils-8ffcd36d.js} +4 -4
  92. package/dist/esm/public-notification.entry.js +169 -44
  93. package/dist/esm/solution-configuration.entry.js +2 -2
  94. package/dist/esm/solution-contents_3.entry.js +2 -2
  95. package/dist/esm/{solution-store-477288ac.js → solution-store-1b67f2c8.js} +1 -1
  96. package/dist/esm/solutions-components.js +1 -1
  97. package/dist/solutions-components/demos/crowdsource-manager.html +14 -41
  98. package/dist/solutions-components/{p-dd11eeb2.js → p-1395b0ef.js} +1 -1
  99. package/dist/solutions-components/{p-4f5641b4.entry.js → p-1affd711.entry.js} +18 -18
  100. package/dist/solutions-components/p-30de8da1.entry.js +17 -0
  101. package/dist/solutions-components/{p-91cad71e.entry.js → p-439c878d.entry.js} +3 -9
  102. package/dist/solutions-components/{p-72117a18.js → p-765a27f3.js} +1 -1
  103. package/dist/solutions-components/p-813a04c3.entry.js +6 -0
  104. package/dist/solutions-components/{p-9e8a371f.entry.js → p-874b39a7.entry.js} +3 -3
  105. package/dist/solutions-components/p-8cece97f.js +21 -0
  106. package/dist/solutions-components/{p-dd0241fb.entry.js → p-97aa7211.entry.js} +1 -1
  107. package/dist/solutions-components/{p-0e459cc7.entry.js → p-a955a3e6.entry.js} +10 -4
  108. package/dist/solutions-components/{p-6a657ff6.js → p-bb64bd47.js} +25 -9
  109. package/dist/solutions-components/p-c392dd95.entry.js +17 -0
  110. package/dist/solutions-components/p-ca386a72.entry.js +6 -0
  111. package/dist/solutions-components/p-d47d74a6.entry.js +23 -0
  112. package/dist/solutions-components/p-db846ee2.entry.js +11 -0
  113. package/dist/solutions-components/p-dc53c9c1.js +36 -0
  114. package/dist/solutions-components/p-e1c93241.entry.js +6 -0
  115. package/dist/solutions-components/{p-4cbaf0f1.entry.js → p-e6d235d6.entry.js} +1 -1
  116. package/dist/solutions-components/solutions-components.esm.js +6 -6
  117. package/dist/solutions-components/utils/csvDownload.ts +42 -0
  118. package/dist/solutions-components/utils/csvUtils.ts +8 -27
  119. package/dist/solutions-components/utils/downloadUtils.ts +36 -14
  120. package/dist/solutions-components/utils/interfaces.ts +6 -0
  121. package/dist/solutions-components/utils/pdfUtils.ts +13 -8
  122. package/dist/solutions-components/utils/queryUtils.ts +2 -2
  123. package/dist/solutions-components/utils/test/csvUtils.spec.tsx +56 -0
  124. package/dist/solutions-components/utils/test/downloadUtils.spec.tsx +133 -0
  125. package/dist/types/components/crowdsource-manager/crowdsource-manager.d.ts +39 -0
  126. package/dist/types/components/layer-table/layer-table.d.ts +35 -48
  127. package/dist/types/components/map-card/map-card.d.ts +10 -6
  128. package/dist/types/components/map-select-tools/map-select-tools.d.ts +16 -1
  129. package/dist/types/components/public-notification/public-notification.d.ts +86 -4
  130. package/dist/types/components.d.ts +68 -0
  131. package/dist/types/preact.d.ts +2 -1
  132. package/dist/types/utils/csvDownload.d.ts +24 -0
  133. package/dist/types/utils/csvUtils.d.ts +2 -1
  134. package/dist/types/utils/downloadUtils.d.ts +25 -0
  135. package/dist/types/utils/interfaces.d.ts +5 -0
  136. package/dist/types/utils/pdfUtils.d.ts +2 -1
  137. package/package.json +4 -4
  138. package/dist/cjs/calcite-chip.cjs.entry.js +0 -142
  139. package/dist/cjs/calcite-dropdown.cjs.entry.js +0 -481
  140. package/dist/cjs/calcite-handle.cjs.entry.js +0 -99
  141. package/dist/cjs/calcite-loader.cjs.entry.js +0 -95
  142. package/dist/cjs/layer-table.cjs.entry.js +0 -317
  143. package/dist/cjs/map-card.cjs.entry.js +0 -252
  144. package/dist/esm/calcite-chip.entry.js +0 -138
  145. package/dist/esm/calcite-dropdown.entry.js +0 -477
  146. package/dist/esm/calcite-handle.entry.js +0 -95
  147. package/dist/esm/calcite-loader.entry.js +0 -91
  148. package/dist/esm/layer-table.entry.js +0 -313
  149. package/dist/solutions-components/p-11132485.entry.js +0 -11
  150. package/dist/solutions-components/p-15b43c29.entry.js +0 -11
  151. package/dist/solutions-components/p-5034aabc.entry.js +0 -11
  152. package/dist/solutions-components/p-5ee7b022.entry.js +0 -12
  153. package/dist/solutions-components/p-6f012424.entry.js +0 -6
  154. package/dist/solutions-components/p-7fd10eb3.entry.js +0 -11
  155. package/dist/solutions-components/p-84bbaebf.entry.js +0 -6
  156. package/dist/solutions-components/p-88e28de2.js +0 -36
  157. package/dist/solutions-components/p-a57ef371.entry.js +0 -6
  158. package/dist/solutions-components/p-ac76d270.entry.js +0 -17
  159. package/dist/solutions-components/p-dbc9a5a8.js +0 -21
  160. package/dist/solutions-components/p-e162304e.entry.js +0 -6
  161. package/dist/solutions-components/p-f5c70be2.entry.js +0 -6
  162. package/dist/solutions-components/p-f6b17cc6.entry.js +0 -11
@@ -5,9 +5,9 @@
5
5
  */
6
6
  import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';
7
7
  import { l as loadModules } from './loadModules.js';
8
- import { g as goToSelection, h as highlightFeatures, d as defineCustomElement$2 } from './map-layer-picker2.js';
8
+ import { a as goToSelection, h as highlightFeatures, d as defineCustomElement$2 } from './map-layer-picker2.js';
9
9
  import { b as queryObjectIds, c as getQueryGeoms } from './queryUtils.js';
10
- import { c as EWorkflowType, e as ESelectionMode, f as ERefineMode, b as ESketchType } from './interfaces3.js';
10
+ import { c as EWorkflowType, f as ESelectionMode, g as ERefineMode, b as ESketchType } from './interfaces3.js';
11
11
  import { s as state } from './publicNotificationStore.js';
12
12
  import { g as getLocaleComponentStrings } from './locale.js';
13
13
  import { d as defineCustomElement$k } from './buffer-tools2.js';
@@ -53,13 +53,16 @@ const MapSelectTools = /*@__PURE__*/ proxyCustomElement(class extends HTMLElemen
53
53
  this.enabledLayerIds = [];
54
54
  this.defaultBufferDistance = undefined;
55
55
  this.defaultBufferUnit = undefined;
56
- this.geometries = undefined;
56
+ this.geometries = [];
57
57
  this.isUpdate = false;
58
58
  this.mapView = undefined;
59
59
  this.searchConfiguration = undefined;
60
60
  this.selectionSet = undefined;
61
61
  this.selectLayerView = undefined;
62
62
  this.showBufferTools = true;
63
+ this.sketchLineSymbol = undefined;
64
+ this.sketchPointSymbol = undefined;
65
+ this.sketchPolygonSymbol = undefined;
63
66
  this._layerSelectChecked = undefined;
64
67
  this._searchTerm = undefined;
65
68
  this._translations = undefined;
@@ -206,7 +209,7 @@ const MapSelectTools = /*@__PURE__*/ proxyCustomElement(class extends HTMLElemen
206
209
  const useDrawClass = !this._layerSelectChecked && !searchEnabled ? " div-visible" : " div-not-visible";
207
210
  const showLayerChoiceClass = searchEnabled ? "div-not-visible" : "div-visible";
208
211
  const bufferDistance = typeof ((_a = this.selectionSet) === null || _a === void 0 ? void 0 : _a.distance) === "number" ? this.selectionSet.distance : this.defaultBufferDistance;
209
- return (h(Host, null, h("div", { class: "padding-bottom-1" }, h("calcite-radio-group", { class: "w-100", onCalciteRadioGroupChange: (evt) => this._workflowChange(evt) }, h("calcite-radio-group-item", { checked: searchEnabled, class: "w-50 end-border", value: EWorkflowType.SEARCH }, this._translations.search), h("calcite-radio-group-item", { checked: drawEnabled, class: "w-50", value: EWorkflowType.SKETCH }, this._translations.sketch))), h("div", { class: showSearchClass }, h("div", { class: "search-widget", ref: (el) => { this._searchElement = el; } })), h("div", { class: showLayerChoiceClass }, h("calcite-label", { layout: "inline" }, h("calcite-checkbox", { checked: this._layerSelectChecked, onCalciteCheckboxChange: () => this._layerSelectChanged(), ref: (el) => this._selectFromLayerElement = el }), "Use layer features")), h("div", { class: useDrawClass }, h("map-draw-tools", { active: true, border: true, mapView: this.mapView, ref: (el) => { this._drawTools = el; } })), h("div", { class: useSelectClass }, h("refine-selection-tools", { active: true, border: true, enabledLayerIds: this.enabledLayerIds, layerView: this.selectLayerView, layerViews: this._refineSelectLayers, mapView: this.mapView, mode: ESelectionMode.ADD, ref: (el) => { this._refineTools = el; }, refineMode: ERefineMode.SUBSET })), h("calcite-label", { class: showBufferToolsClass }, this._translations.searchDistance, h("buffer-tools", { distance: bufferDistance, geometries: this.geometries, onBufferComplete: (evt) => this._bufferComplete(evt), ref: (el) => this._bufferTools = el, unit: ((_b = this.selectionSet) === null || _b === void 0 ? void 0 : _b.unit) || this.defaultBufferUnit })), h("slot", null)));
212
+ return (h(Host, null, h("div", { class: "padding-bottom-1" }, h("calcite-radio-group", { class: "w-100", onCalciteRadioGroupChange: (evt) => this._workflowChange(evt) }, h("calcite-radio-group-item", { checked: searchEnabled, class: "w-50 end-border", value: EWorkflowType.SEARCH }, this._translations.search), h("calcite-radio-group-item", { checked: drawEnabled, class: "w-50", value: EWorkflowType.SKETCH }, this._translations.sketch))), h("div", { class: showSearchClass }, h("div", { class: "search-widget", ref: (el) => { this._searchElement = el; } })), h("div", { class: showLayerChoiceClass }, h("calcite-label", { layout: "inline" }, h("calcite-checkbox", { checked: this._layerSelectChecked, onCalciteCheckboxChange: () => this._layerSelectChanged(), ref: (el) => this._selectFromLayerElement = el }), "Use layer features")), h("div", { class: useDrawClass }, h("map-draw-tools", { active: true, border: true, mapView: this.mapView, pointSymbol: this.sketchPointSymbol, polygonSymbol: this.sketchPolygonSymbol, polylineSymbol: this.sketchLineSymbol, ref: (el) => { this._drawTools = el; } })), h("div", { class: useSelectClass }, h("refine-selection-tools", { active: true, border: true, enabledLayerIds: this.enabledLayerIds, layerView: this.selectLayerView, layerViews: this._refineSelectLayers, mapView: this.mapView, mode: ESelectionMode.ADD, ref: (el) => { this._refineTools = el; }, refineMode: ERefineMode.SUBSET })), h("calcite-label", { class: showBufferToolsClass }, this._translations.searchDistance, h("buffer-tools", { distance: bufferDistance, geometries: this.geometries, onBufferComplete: (evt) => this._bufferComplete(evt), ref: (el) => this._bufferTools = el, unit: ((_b = this.selectionSet) === null || _b === void 0 ? void 0 : _b.unit) || this.defaultBufferUnit })), h("slot", null)));
210
213
  }
211
214
  //--------------------------------------------------------------------------
212
215
  //
@@ -241,7 +244,7 @@ const MapSelectTools = /*@__PURE__*/ proxyCustomElement(class extends HTMLElemen
241
244
  */
242
245
  async _init() {
243
246
  this._initGraphicsLayer();
244
- this._initSelectionSet();
247
+ await this._initSelectionSet();
245
248
  this._initSearchWidget();
246
249
  }
247
250
  /**
@@ -249,7 +252,7 @@ const MapSelectTools = /*@__PURE__*/ proxyCustomElement(class extends HTMLElemen
249
252
  *
250
253
  * @protected
251
254
  */
252
- _initSelectionSet() {
255
+ async _initSelectionSet() {
253
256
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
254
257
  if (this.selectionSet) {
255
258
  this._searchTerm = (_b = (_a = this.selectionSet) === null || _a === void 0 ? void 0 : _a.searchResult) === null || _b === void 0 ? void 0 : _b.name;
@@ -264,7 +267,7 @@ const MapSelectTools = /*@__PURE__*/ proxyCustomElement(class extends HTMLElemen
264
267
  ];
265
268
  // reset selection label base
266
269
  this._selectionLabel = ((_k = this.selectionSet) === null || _k === void 0 ? void 0 : _k.label) || this._getSelectionBaseLabel();
267
- void goToSelection(this.selectionSet.selectedIds, this.selectionSet.layerView, this.mapView, false);
270
+ await goToSelection(this.selectionSet.selectedIds, this.selectionSet.layerView, this.mapView, false);
268
271
  }
269
272
  else {
270
273
  this._workflowType = EWorkflowType.SEARCH;
@@ -371,7 +374,7 @@ const MapSelectTools = /*@__PURE__*/ proxyCustomElement(class extends HTMLElemen
371
374
  this._bufferGraphicsLayer = this.mapView.map.layers.getItemAt(bufferIndex);
372
375
  }
373
376
  else {
374
- this._bufferGraphicsLayer = new this.GraphicsLayer({ title });
377
+ this._bufferGraphicsLayer = new this.GraphicsLayer({ title, listMode: "hide" });
375
378
  state.managedLayers.push(title);
376
379
  const sketchIndex = this.mapView.map.layers.findIndex((l) => l.title === this._translations.sketchLayer);
377
380
  if (sketchIndex > -1) {
@@ -440,17 +443,16 @@ const MapSelectTools = /*@__PURE__*/ proxyCustomElement(class extends HTMLElemen
440
443
  this.selectionLoadingChange.emit(false);
441
444
  // Add geometries used for selecting features as graphics
442
445
  this._drawTools.graphics = this.geometries.map(geom => {
443
- var _a, _b, _c;
444
446
  const props = {
445
447
  "geometry": geom,
446
448
  "symbol": geom.type === "point" ?
447
- (_a = this._drawTools) === null || _a === void 0 ? void 0 : _a.pointSymbol : geom.type === "polyline" ?
448
- (_b = this._drawTools) === null || _b === void 0 ? void 0 : _b.polylineSymbol : geom.type === "polygon" ?
449
- (_c = this._drawTools) === null || _c === void 0 ? void 0 : _c.polygonSymbol : undefined
449
+ this.sketchPointSymbol : geom.type === "polyline" ?
450
+ this.sketchLineSymbol : geom.type === "polygon" ?
451
+ this.sketchPolygonSymbol : undefined
450
452
  };
451
453
  return new this.Graphic(props);
452
454
  });
453
- void this._highlightFeatures(this._selectedIds);
455
+ await this._highlightFeatures(this._selectedIds);
454
456
  }
455
457
  /**
456
458
  * Query the selectLayerView based on any user drawn geometries or buffers
@@ -479,8 +481,8 @@ const MapSelectTools = /*@__PURE__*/ proxyCustomElement(class extends HTMLElemen
479
481
  });
480
482
  this._bufferGraphicsLayer.removeAll();
481
483
  this._bufferGraphicsLayer.add(polygonGraphic);
482
- void this._selectFeatures([this._bufferGeometry]);
483
- void this.mapView.goTo(polygonGraphic.geometry.extent);
484
+ await this._selectFeatures([this._bufferGeometry]);
485
+ await this.mapView.goTo(polygonGraphic.geometry.extent);
484
486
  }
485
487
  else {
486
488
  if (this._bufferGraphicsLayer) {
@@ -524,7 +526,7 @@ const MapSelectTools = /*@__PURE__*/ proxyCustomElement(class extends HTMLElemen
524
526
  // for sketch
525
527
  // checking for clear as it would throw off tests
526
528
  if ((_b = this._drawTools) === null || _b === void 0 ? void 0 : _b.clear) {
527
- void this._drawTools.clear();
529
+ await this._drawTools.clear();
528
530
  }
529
531
  this.selectionSetChange.emit(this._selectedIds.length);
530
532
  }
@@ -576,6 +578,9 @@ const MapSelectTools = /*@__PURE__*/ proxyCustomElement(class extends HTMLElemen
576
578
  "selectionSet": [16],
577
579
  "selectLayerView": [16],
578
580
  "showBufferTools": [4, "show-buffer-tools"],
581
+ "sketchLineSymbol": [16],
582
+ "sketchPointSymbol": [16],
583
+ "sketchPolygonSymbol": [16],
579
584
  "_layerSelectChecked": [32],
580
585
  "_searchTerm": [32],
581
586
  "_translations": [32],
@@ -1,54 +1,54 @@
1
- /*!
2
- * Copyright 2022 Esri
3
- * Licensed under the Apache License, Version 2.0
4
- * http://www.apache.org/licenses/LICENSE-2.0
5
- */
6
- import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';
7
- import { a as EPageType, b as ESketchType, c as EWorkflowType, d as EExportType } from './interfaces3.js';
8
- import { l as loadModules } from './loadModules.js';
9
- import { a as getMapLayerView, g as goToSelection, h as highlightFeatures, d as defineCustomElement$6 } from './map-layer-picker2.js';
10
- import { g as getSelectionSetQuery } from './queryUtils.js';
11
- import { s as state } from './publicNotificationStore.js';
12
- import { a as getComponentClosestLanguage, g as getLocaleComponentStrings } from './locale.js';
13
- import { g as getTotal, a as getSelectionIds, d as defineCustomElement$3 } from './refine-selection2.js';
14
- import { d as defineCustomElement$C } from './buffer-tools2.js';
15
- import { d as defineCustomElement$B } from './action.js';
16
- import { d as defineCustomElement$A } from './action-bar.js';
17
- import { d as defineCustomElement$z } from './action-group.js';
18
- import { d as defineCustomElement$y } from './action-menu.js';
19
- import { d as defineCustomElement$x } from './button.js';
20
- import { d as defineCustomElement$w } from './checkbox.js';
21
- import { d as defineCustomElement$v } from './chip.js';
22
- import { d as defineCustomElement$u } from './combobox.js';
23
- import { d as defineCustomElement$t } from './combobox-item.js';
24
- import { d as defineCustomElement$s } from './graph.js';
25
- import { d as defineCustomElement$r } from './icon.js';
26
- import { d as defineCustomElement$q } from './input.js';
27
- import { d as defineCustomElement$p } from './input-message.js';
28
- import { d as defineCustomElement$o } from './label.js';
29
- import { d as defineCustomElement$n } from './list.js';
30
- import { d as defineCustomElement$m } from './list-item2.js';
31
- import { d as defineCustomElement$l } from './loader.js';
32
- import { d as defineCustomElement$k } from './modal.js';
33
- import { d as defineCustomElement$j } from './notice.js';
34
- import { d as defineCustomElement$i } from './option.js';
35
- import { d as defineCustomElement$h } from './panel.js';
36
- import { d as defineCustomElement$g } from './popover.js';
37
- import { d as defineCustomElement$f } from './progress.js';
38
- import { d as defineCustomElement$e } from './radio-group.js';
39
- import { d as defineCustomElement$d } from './radio-group-item.js';
40
- import { d as defineCustomElement$c } from './scrim.js';
41
- import { d as defineCustomElement$b } from './select.js';
42
- import { d as defineCustomElement$a } from './shell.js';
43
- import { d as defineCustomElement$9 } from './slider.js';
44
- import { d as defineCustomElement$8 } from './tooltip.js';
45
- import { d as defineCustomElement$7 } from './map-draw-tools2.js';
46
- import { d as defineCustomElement$5 } from './map-select-tools2.js';
47
- import { d as defineCustomElement$4 } from './pdf-download2.js';
48
- import { d as defineCustomElement$2 } from './refine-selection-tools2.js';
49
-
50
- const publicNotificationCss = ":host{display:block;--calcite-input-message-spacing-value:0}.align-center{align-items:center}.border-bottom-1{border-width:0px;border-bottom-width:1px;border-style:solid;border-color:var(--calcite-ui-border-3)}.action-bar-size{height:3.5rem;width:100%}.w-1-3{width:33.3%}.w-1-4{width:25%}.action-center{-webkit-box-align:center;-webkit-align-items:center;-ms-grid-row-align:center;align-items:center;align-content:center;justify-content:center}.width-full{width:100%}.height-full{height:100%}.padding-1{padding:1rem}.padding-top-sides-1{-webkit-padding-before:1rem;padding-block-start:1rem;-webkit-padding-start:1rem;padding-inline-start:1rem;-webkit-padding-end:1rem;padding-inline-end:1rem}.padding-sides-1{-webkit-padding-start:1rem;padding-inline-start:1rem;-webkit-padding-end:1rem;padding-inline-end:1rem}.padding-end-1-2{-webkit-padding-end:.5rem;padding-inline-end:.5rem}.padding-top-1-2{-webkit-padding-before:.5rem;padding-block-start:.5rem}.padding-top-1{padding-top:1rem}.padding-bottom-1{padding-bottom:1rem}.info-blue{color:#00A0FF}.info-message{justify-content:center;display:grid}.font-bold{font-weight:bold}.display-flex{display:flex}.display-block{display:block}.display-none{display:none}.main-label{float:left}html[dir=\"rtl\"] .main-label{float:right}.back-label:hover{cursor:pointer;color:var(--calcite-ui-brand-hover)}.border-bottom{border-bottom:1px solid var(--calcite-ui-border-2)}.margin-side-1{-webkit-margin-start:1rem;margin-inline-start:1rem;-webkit-margin-end:1rem;margin-inline-end:1rem}.border-top{border-top:1px solid var(--calcite-ui-border-2)}.w-100{width:100%}.w-50{width:50%}.padding-1-2{padding:0.5rem}.list-border{border:1px solid var(--calcite-ui-border-2)}.margin-sides-1{-webkit-margin-start:1rem;margin-inline-start:1rem;-webkit-margin-end:1rem;margin-inline-end:1rem}.margin-start-1-2{-webkit-margin-start:0.5rem;margin-inline-start:0.5rem}.float-right{float:right}.float-right[dir=\"rtl\"]{float:left}.float-left{float:left}.float-left[dir=\"rtl\"]{float:right}.margin-top-0{-webkit-margin-before:0 !important;margin-block-start:0 !important}.height-1-1-2{height:1.5rem}.main-background{background-color:var(--calcite-ui-foreground-2)}.num-selected{align-items:center;display:flex}";
51
-
1
+ /*!
2
+ * Copyright 2022 Esri
3
+ * Licensed under the Apache License, Version 2.0
4
+ * http://www.apache.org/licenses/LICENSE-2.0
5
+ */
6
+ import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';
7
+ import { a as EPageType, b as ESketchType, c as EWorkflowType, d as EExportType } from './interfaces3.js';
8
+ import { l as loadModules } from './loadModules.js';
9
+ import { g as getMapLayerView, a as goToSelection, h as highlightFeatures, d as defineCustomElement$6 } from './map-layer-picker2.js';
10
+ import { g as getSelectionSetQuery } from './queryUtils.js';
11
+ import { s as state } from './publicNotificationStore.js';
12
+ import { a as getComponentClosestLanguage, g as getLocaleComponentStrings } from './locale.js';
13
+ import { g as getTotal, a as getSelectionIds, d as defineCustomElement$3 } from './refine-selection2.js';
14
+ import { d as defineCustomElement$C } from './buffer-tools2.js';
15
+ import { d as defineCustomElement$B } from './action.js';
16
+ import { d as defineCustomElement$A } from './action-bar.js';
17
+ import { d as defineCustomElement$z } from './action-group.js';
18
+ import { d as defineCustomElement$y } from './action-menu.js';
19
+ import { d as defineCustomElement$x } from './button.js';
20
+ import { d as defineCustomElement$w } from './checkbox.js';
21
+ import { d as defineCustomElement$v } from './chip.js';
22
+ import { d as defineCustomElement$u } from './combobox.js';
23
+ import { d as defineCustomElement$t } from './combobox-item.js';
24
+ import { d as defineCustomElement$s } from './graph.js';
25
+ import { d as defineCustomElement$r } from './icon.js';
26
+ import { d as defineCustomElement$q } from './input.js';
27
+ import { d as defineCustomElement$p } from './input-message.js';
28
+ import { d as defineCustomElement$o } from './label.js';
29
+ import { d as defineCustomElement$n } from './list.js';
30
+ import { d as defineCustomElement$m } from './list-item2.js';
31
+ import { d as defineCustomElement$l } from './loader.js';
32
+ import { d as defineCustomElement$k } from './modal.js';
33
+ import { d as defineCustomElement$j } from './notice.js';
34
+ import { d as defineCustomElement$i } from './option.js';
35
+ import { d as defineCustomElement$h } from './panel.js';
36
+ import { d as defineCustomElement$g } from './popover.js';
37
+ import { d as defineCustomElement$f } from './progress.js';
38
+ import { d as defineCustomElement$e } from './radio-group.js';
39
+ import { d as defineCustomElement$d } from './radio-group-item.js';
40
+ import { d as defineCustomElement$c } from './scrim.js';
41
+ import { d as defineCustomElement$b } from './select.js';
42
+ import { d as defineCustomElement$a } from './shell.js';
43
+ import { d as defineCustomElement$9 } from './slider.js';
44
+ import { d as defineCustomElement$8 } from './tooltip.js';
45
+ import { d as defineCustomElement$7 } from './map-draw-tools2.js';
46
+ import { d as defineCustomElement$5 } from './map-select-tools2.js';
47
+ import { d as defineCustomElement$4 } from './pdf-download2.js';
48
+ import { d as defineCustomElement$2 } from './refine-selection-tools2.js';
49
+
50
+ const publicNotificationCss = ":host{display:block;--calcite-input-message-spacing-value:0}.align-center{align-items:center}.border-bottom-1{border-width:0px;border-bottom-width:1px;border-style:solid;border-color:var(--calcite-ui-border-3)}.action-bar-size{height:3.5rem;width:100%}.w-1-3{width:33.3%}.w-1-4{width:25%}.action-center{-webkit-box-align:center;-webkit-align-items:center;-ms-grid-row-align:center;align-items:center;align-content:center;justify-content:center}.width-full{width:100%}.height-full{height:100%}.padding-1{padding:1rem}.padding-top-sides-1{-webkit-padding-before:1rem;padding-block-start:1rem;-webkit-padding-start:1rem;padding-inline-start:1rem;-webkit-padding-end:1rem;padding-inline-end:1rem}.padding-sides-1{-webkit-padding-start:1rem;padding-inline-start:1rem;-webkit-padding-end:1rem;padding-inline-end:1rem}.padding-end-1-2{-webkit-padding-end:.5rem;padding-inline-end:.5rem}.padding-top-1-2{-webkit-padding-before:.5rem;padding-block-start:.5rem}.padding-top-1{padding-top:1rem}.padding-bottom-1{padding-bottom:1rem}.info-blue{color:#00A0FF}.info-message{justify-content:center;display:grid}.font-bold{font-weight:bold}.display-flex{display:flex}.display-block{display:block}.display-none{display:none}.main-label{float:left}html[dir=\"rtl\"] .main-label{float:right}.back-label:hover{cursor:pointer;color:var(--calcite-ui-brand-hover)}.border-bottom{border-bottom:1px solid var(--calcite-ui-border-2)}.margin-side-1{-webkit-margin-start:1rem;margin-inline-start:1rem;-webkit-margin-end:1rem;margin-inline-end:1rem}.border-top{border-top:1px solid var(--calcite-ui-border-2)}.w-100{width:100%}.w-50{width:50%}.padding-1-2{padding:0.5rem}.list-border{border:1px solid var(--calcite-ui-border-2)}.margin-sides-1{-webkit-margin-start:1rem;margin-inline-start:1rem;-webkit-margin-end:1rem;margin-inline-end:1rem}.margin-start-1-2{-webkit-margin-start:0.5rem;margin-inline-start:0.5rem}.float-right{float:right}.float-right[dir=\"rtl\"]{float:left}.float-left{float:left}.float-left[dir=\"rtl\"]{float:right}.margin-top-0{-webkit-margin-before:0 !important;margin-block-start:0 !important}.height-1-1-2{height:1.5rem}.main-background{background-color:var(--calcite-ui-foreground-2)}.num-selected{align-items:center;display:flex}";
51
+
52
52
  const PublicNotification$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
53
53
  constructor() {
54
54
  super();
@@ -69,6 +69,9 @@ const PublicNotification$1 = /*@__PURE__*/ proxyCustomElement(class extends HTML
69
69
  this.selectionLayerIds = [];
70
70
  this.showRefineSelection = false;
71
71
  this.showSearchSettings = true;
72
+ this.sketchLineSymbol = undefined;
73
+ this.sketchPointSymbol = undefined;
74
+ this.sketchPolygonSymbol = undefined;
72
75
  this.addresseeLayer = undefined;
73
76
  this._downloadActive = true;
74
77
  this._numSelected = 0;
@@ -110,14 +113,27 @@ const PublicNotification$1 = /*@__PURE__*/ proxyCustomElement(class extends HTML
110
113
  }
111
114
  }
112
115
  /**
113
- * Called each time the selectionSets prop is changed.
116
+ * Called each time the sketchLineSymbol prop is changed.
114
117
  */
115
- async selectionSetsWatchHandler(v, oldV) {
116
- if (v && v !== oldV && v.length > 0) {
117
- const nonRefineSets = v.filter(ss => ss.workflowType !== EWorkflowType.REFINE);
118
- if (nonRefineSets.length === 0) {
119
- this._selectionSets = [];
120
- }
118
+ async sketchLineSymbolWatchHandler(v, oldV) {
119
+ if (v && JSON.stringify(v) !== JSON.stringify(oldV)) {
120
+ this._setLineSymbol(v);
121
+ }
122
+ }
123
+ /**
124
+ * Called each time the sketchPointSymbol prop is changed.
125
+ */
126
+ async sketchPointSymbolWatchHandler(v, oldV) {
127
+ if (v && JSON.stringify(v) !== JSON.stringify(oldV)) {
128
+ this._setPointSymbol(v);
129
+ }
130
+ }
131
+ /**
132
+ * Called each time the sketchPolygonSymbol prop is changed.
133
+ */
134
+ async sketchPolygonSymbolWatchHandler(v, oldV) {
135
+ if (v && JSON.stringify(v) !== JSON.stringify(oldV)) {
136
+ this._setPolygonSymbol(v);
121
137
  }
122
138
  }
123
139
  /**
@@ -177,6 +193,7 @@ const PublicNotification$1 = /*@__PURE__*/ proxyCustomElement(class extends HTML
177
193
  async componentWillLoad() {
178
194
  await this._getTranslations();
179
195
  await this._initModules();
196
+ this._initSymbols();
180
197
  }
181
198
  /**
182
199
  * Renders the component.
@@ -197,10 +214,84 @@ const PublicNotification$1 = /*@__PURE__*/ proxyCustomElement(class extends HTML
197
214
  * @protected
198
215
  */
199
216
  async _initModules() {
200
- const [geometryEngine] = await loadModules([
201
- "esri/geometry/geometryEngine"
217
+ const [geometryEngine, jsonUtils] = await loadModules([
218
+ "esri/geometry/geometryEngine",
219
+ "esri/symbols/support/jsonUtils"
202
220
  ]);
203
221
  this._geometryEngine = geometryEngine;
222
+ this._jsonUtils = jsonUtils;
223
+ }
224
+ /**
225
+ * Initialize the default symbols that will be used when creating new graphics
226
+ *
227
+ * @protected
228
+ */
229
+ _initSymbols() {
230
+ this._setLineSymbol(this.sketchLineSymbol);
231
+ this._setPointSymbol(this.sketchPointSymbol);
232
+ this._setPolygonSymbol(this.sketchPolygonSymbol);
233
+ }
234
+ /**
235
+ * Convert a JSON representation of a line symbol and/or set the line symbol
236
+ *
237
+ * @param v SimpleLineSymbol or a JSON representation of a line symbol
238
+ *
239
+ * @protected
240
+ */
241
+ _setLineSymbol(v) {
242
+ const isSymbol = (v === null || v === void 0 ? void 0 : v.type) === 'simple-line';
243
+ this.sketchLineSymbol = isSymbol ? v : this._jsonUtils.fromJSON(v ? v : {
244
+ "type": "esriSLS",
245
+ "color": [130, 130, 130, 255],
246
+ "width": 2,
247
+ "style": "esriSLSSolid"
248
+ });
249
+ }
250
+ /**
251
+ * Convert a JSON representation of a point symbol and/or set the point symbol
252
+ *
253
+ * @param v SimpleMarkerSymbol or a JSON representation of a point symbol
254
+ *
255
+ * @protected
256
+ */
257
+ _setPointSymbol(v) {
258
+ const isSymbol = (v === null || v === void 0 ? void 0 : v.type) === 'simple-marker';
259
+ this.sketchPointSymbol = isSymbol ? v : this._jsonUtils.fromJSON(v ? v : {
260
+ "type": "esriSMS",
261
+ "color": [255, 255, 255, 255],
262
+ "angle": 0,
263
+ "xoffset": 0,
264
+ "yoffset": 0,
265
+ "size": 6,
266
+ "style": "esriSMSCircle",
267
+ "outline": {
268
+ "type": "esriSLS",
269
+ "color": [50, 50, 50, 255],
270
+ "width": 1,
271
+ "style": "esriSLSSolid"
272
+ }
273
+ });
274
+ }
275
+ /**
276
+ * Convert a JSON representation of a polygon symbol and/or set the polygon symbol
277
+ *
278
+ * @param v SimpleFillSymbol or a JSON representation of a polygon symbol
279
+ *
280
+ * @protected
281
+ */
282
+ _setPolygonSymbol(v) {
283
+ const isSymbol = (v === null || v === void 0 ? void 0 : v.type) === 'simple-fill';
284
+ this.sketchPolygonSymbol = isSymbol ? v : this._jsonUtils.fromJSON(v ? v : {
285
+ "type": "esriSFS",
286
+ "color": [150, 150, 150, 51],
287
+ "outline": {
288
+ "type": "esriSLS",
289
+ "color": [50, 50, 50, 255],
290
+ "width": 2,
291
+ "style": "esriSLSSolid"
292
+ },
293
+ "style": "esriSFSSolid"
294
+ });
204
295
  }
205
296
  /**
206
297
  * Get a calcite action group for the current action
@@ -263,7 +354,7 @@ const PublicNotification$1 = /*@__PURE__*/ proxyCustomElement(class extends HTML
263
354
  * @protected
264
355
  */
265
356
  _getListPage() {
266
- const hasSets = this._selectionSets.filter(ss => ss.workflowType !== EWorkflowType.REFINE).length > 0;
357
+ const hasSets = this._hasSelections();
267
358
  const total = getTotal(this._selectionSets);
268
359
  return hasSets ? (h("calcite-panel", null, h("div", { class: "padding-top-sides-1" }, h("calcite-label", { class: "font-bold" }, this._translations.myLists)), this._getNotice(this._translations.listHasSetsTip, "padding-sides-1 padding-bottom-1"), this._getMapLayerPicker(), h("div", { class: "display-block padding-sides-1 height-1-1-2" }, h("div", { class: "display-block float-left" }, h("calcite-label", { alignment: "start", class: "font-bold" }, this._translations.notifications)), h("div", { class: "display-block float-right" }, h("calcite-input-message", { active: true, class: "info-blue margin-top-0", scale: "m" }, this._translations.uniqueCout.replace("{{n}}", total.toString())))), hasSets ? this._getSelectionSetList() : (h("div", { class: "info-message" }, h("calcite-input-message", { active: true, class: "info-blue", scale: "m" }, this._translations.noNotifications))), h("div", { class: "display-flex padding-1" }, h("calcite-button", { onClick: () => { this._setPageType(EPageType.SELECT); }, width: "full" }, this._translations.add)), this._showModal(this._showLayerSelectionChangeModal))) : (h("calcite-panel", null, h("div", { class: "padding-top-sides-1" }, h("calcite-label", { class: "font-bold" }, this._translations.myLists)), h("div", { class: "padding-sides-1" }, h("calcite-label", null, this._translations.notifications)), h("div", { class: "info-message padding-bottom-1" }, h("calcite-input-message", { active: true, class: "info-blue", scale: "m" }, this._translations.noNotifications)), this._getNotice(this._translations.selectLayerAndAdd, "padding-sides-1 padding-bottom-1"), this._getMapLayerPicker(), h("div", { class: "display-flex padding-1" }, h("calcite-button", { onClick: () => { this._setPageType(EPageType.SELECT); }, width: "full" }, this._translations.add))));
269
360
  }
@@ -288,7 +379,8 @@ const PublicNotification$1 = /*@__PURE__*/ proxyCustomElement(class extends HTML
288
379
  // REFINE is handled seperately from the core selection sets
289
380
  // You can only access after clicking the refine action
290
381
  this._selectionSets.reduce((prev, cur, i) => {
291
- if (cur.workflowType !== EWorkflowType.REFINE) {
382
+ const validSet = this._isValidSet(cur);
383
+ if (validSet) {
292
384
  prev.push((h("calcite-list-item", { description: this._translations.selectedFeatures.replace("{{n}}", cur.selectedIds.length.toString()), label: cur.label, onClick: () => this._gotoSelection(cur, this.mapView) }, this._getAction(true, "pencil", "", (evt) => this._openSelection(cur, evt), false, "actions-end"), this._getAction(true, "x", "", (evt) => this._deleteSelection(i, evt), false, "actions-end"))));
293
385
  }
294
386
  return prev;
@@ -329,14 +421,38 @@ const PublicNotification$1 = /*@__PURE__*/ proxyCustomElement(class extends HTML
329
421
  await this._updateAddresseeLayer(id);
330
422
  }
331
423
  /**
332
- * Check if any selection sets exist.
424
+ * Check if any valid selection sets exist.
333
425
  *
334
- * @returns true if selection sets exist
426
+ * @returns true if valid selection sets exist
335
427
  *
336
428
  * @protected
337
429
  */
338
430
  _hasSelections() {
339
- return this._selectionSets.length > 0;
431
+ return this._selectionSets.filter(ss => this._isValidSet(ss)).length > 0;
432
+ }
433
+ /**
434
+ * Check if any duplicates exist
435
+ *
436
+ * @returns true if duplicates are found
437
+ *
438
+ * @protected
439
+ */
440
+ _hasDuplicates() {
441
+ const selectedIds = this._selectionSets.reduce((prev, cur) => {
442
+ return prev.concat(cur.download ? cur.selectedIds : []);
443
+ }, []);
444
+ return selectedIds.length > new Set(selectedIds).size;
445
+ }
446
+ /**
447
+ * Check if a selection set is valid (exists or has at least one added if its a refine set)
448
+ *
449
+ * @returns true if selection set is valid
450
+ *
451
+ * @protected
452
+ */
453
+ _isValidSet(ss) {
454
+ var _a, _b;
455
+ return ss.workflowType === EWorkflowType.REFINE ? ((_b = (_a = ss === null || ss === void 0 ? void 0 : ss.refineIds) === null || _a === void 0 ? void 0 : _a.addIds) === null || _b === void 0 ? void 0 : _b.length) > 0 : true;
340
456
  }
341
457
  /**
342
458
  * Create the Select page that shows the selection workflows
@@ -358,7 +474,7 @@ const PublicNotification$1 = /*@__PURE__*/ proxyCustomElement(class extends HTML
358
474
  const locale = getComponentClosestLanguage(this.el);
359
475
  const selectionLoading = locale && locale === "en" ?
360
476
  `${this._translations.selectionLoading}...` : this._translations.selectionLoading;
361
- return (h("calcite-panel", null, this._getLabel(this._translations.stepTwoFull.replace("{{layer}}", (_a = this.addresseeLayer) === null || _a === void 0 ? void 0 : _a.layer.title)), this._getNotice(noticeText), h("div", { class: "padding-top-sides-1" }, h("map-select-tools", { bufferColor: this.bufferColor, bufferOutlineColor: this.bufferOutlineColor, class: "font-bold", defaultBufferDistance: this.defaultBufferDistance, defaultBufferUnit: this.defaultBufferUnit, enabledLayerIds: this.selectionLayerIds, isUpdate: !!this._activeSelection, mapView: this.mapView, onSelectionSetChange: (evt) => this._updateForSelection(evt), onWorkflowTypeChange: (evt) => this._updateForWorkflowType(evt), ref: (el) => { this._selectTools = el; }, searchConfiguration: this._searchConfiguration, selectLayerView: this.addresseeLayer, selectionSet: this._activeSelection, showBufferTools: this.showSearchSettings })), h("div", { class: "padding-sides-1 padding-bottom-1", style: { "align-items": "end", "display": "flex" } }, this._selectionLoading ? (h("div", null, h("calcite-loader", { active: true, class: "info-blue", inline: true, label: selectionLoading, scale: "m", type: "indeterminate" }))) : (h("calcite-icon", { class: "info-blue padding-end-1-2", icon: "feature-layer", scale: "s" })), h("calcite-input-message", { active: true, class: "info-blue", scale: "m" }, this._selectionLoading ? selectionLoading :
477
+ return (h("calcite-panel", null, this._getLabel(this._translations.stepTwoFull.replace("{{layer}}", (_a = this.addresseeLayer) === null || _a === void 0 ? void 0 : _a.layer.title)), this._getNotice(noticeText), h("div", { class: "padding-top-sides-1" }, h("map-select-tools", { bufferColor: this.bufferColor, bufferOutlineColor: this.bufferOutlineColor, class: "font-bold", defaultBufferDistance: this.defaultBufferDistance, defaultBufferUnit: this.defaultBufferUnit, enabledLayerIds: this.selectionLayerIds, isUpdate: !!this._activeSelection, mapView: this.mapView, onSelectionSetChange: (evt) => this._updateForSelection(evt), onWorkflowTypeChange: (evt) => this._updateForWorkflowType(evt), ref: (el) => { this._selectTools = el; }, searchConfiguration: this._searchConfiguration, selectLayerView: this.addresseeLayer, selectionSet: this._activeSelection, showBufferTools: this.showSearchSettings, sketchLineSymbol: this.sketchLineSymbol, sketchPointSymbol: this.sketchPointSymbol, sketchPolygonSymbol: this.sketchPolygonSymbol })), h("div", { class: "padding-sides-1 padding-bottom-1", style: { "align-items": "end", "display": "flex" } }, this._selectionLoading ? (h("div", null, h("calcite-loader", { active: true, class: "info-blue", inline: true, label: selectionLoading, scale: "m", type: "indeterminate" }))) : (h("calcite-icon", { class: "info-blue padding-end-1-2", icon: "feature-layer", scale: "s" })), h("calcite-input-message", { active: true, class: "info-blue", scale: "m" }, this._selectionLoading ? selectionLoading :
362
478
  this.noResultText && this._numSelected === 0 ? this.noResultText :
363
479
  this._translations.selectedAddresses.replace("{{n}}", this._numSelected.toString()).replace("{{layer}}", ((_b = this.addresseeLayer) === null || _b === void 0 ? void 0 : _b.layer.title) || ""))), h("div", { class: "padding-sides-1 " + nameLabelClass }, h("calcite-label", { class: "font-bold" }, "List name", h("calcite-input", { onInput: () => {
364
480
  this.labelChange.emit(this._labelName.value);
@@ -405,7 +521,8 @@ const PublicNotification$1 = /*@__PURE__*/ proxyCustomElement(class extends HTML
405
521
  _getDownloadPage(type) {
406
522
  const isPdf = type === EExportType.PDF;
407
523
  const hasSelections = this._hasSelections();
408
- return (h("calcite-panel", null, h("div", null, h("div", { class: "padding-top-sides-1" }, h("calcite-label", { class: "font-bold" }, isPdf ? this._translations.downloadPDF : this._translations.downloadCSV)), hasSelections ? (h("div", null, h("div", { class: "padding-top-sides-1" }, h("calcite-label", null, this._translations.notifications)), this._getSelectionLists(), h("div", { class: "margin-side-1 padding-top-1 border-bottom" }), h("div", { class: "padding-top-sides-1" }, h("calcite-label", { class: isPdf ? "display-none" : "", layout: "inline" }, h("calcite-checkbox", { disabled: !this._downloadActive, ref: (el) => { this._removeDuplicatesCSV = el; } }), this._translations.removeDuplicate), h("calcite-label", { class: isPdf ? "" : "display-none", layout: "inline" }, h("calcite-checkbox", { disabled: !this._downloadActive, ref: (el) => { this._removeDuplicatesPDF = el; } }), this._translations.removeDuplicate)), h("div", { class: isPdf ? "" : "display-none" }, this._getLabel(this._translations.selectPDFLabelOption, false), h("div", { class: "padding-sides-1" }, h("pdf-download", { disabled: !this._downloadActive, layerView: this.addresseeLayer, ref: (el) => { this._downloadTools = el; } }))), h("div", { class: "padding-1 display-flex" }, h("calcite-button", { disabled: !this._downloadActive, onClick: isPdf ? () => this._downloadPDF() : () => this._downloadCSV(), width: "full" }, isPdf ? this._translations.downloadPDF : this._translations.downloadCSV)))) : (this._getNotice(this._translations.downloadNoLists, "padding-sides-1 padding-bottom-1")))));
524
+ const hasDuplicates = this._hasDuplicates();
525
+ return (h("calcite-panel", null, h("div", null, h("div", { class: "padding-top-sides-1" }, h("calcite-label", { class: "font-bold" }, isPdf ? this._translations.downloadPDF : this._translations.downloadCSV)), hasSelections ? (h("div", null, h("div", { class: "padding-top-sides-1" }, h("calcite-label", null, this._translations.notifications)), this._getSelectionLists(), h("div", { class: "margin-side-1 padding-top-1 border-bottom" }), h("div", { class: "padding-top-sides-1" }, h("calcite-label", { class: isPdf ? "display-none" : "", disabled: !hasDuplicates, layout: "inline" }, h("calcite-checkbox", { disabled: !hasDuplicates, ref: (el) => { this._removeDuplicatesCSV = el; } }), this._translations.removeDuplicate), h("calcite-label", { class: isPdf ? "" : "display-none", disabled: !hasDuplicates, layout: "inline" }, h("calcite-checkbox", { disabled: !hasDuplicates, ref: (el) => { this._removeDuplicatesPDF = el; } }), this._translations.removeDuplicate)), h("div", { class: isPdf ? "" : "display-none" }, this._getLabel(this._translations.selectPDFLabelOption, false), h("div", { class: "padding-sides-1" }, h("pdf-download", { disabled: !this._downloadActive, layerView: this.addresseeLayer, ref: (el) => { this._downloadTools = el; } }))), h("div", { class: "padding-1 display-flex" }, h("calcite-button", { disabled: !this._downloadActive, onClick: isPdf ? () => this._downloadPDF() : () => this._downloadCSV(), width: "full" }, isPdf ? this._translations.downloadPDF : this._translations.downloadCSV)))) : (this._getNotice(this._translations.downloadNoLists, "padding-sides-1 padding-bottom-1")))));
409
526
  }
410
527
  /**
411
528
  * Create the stacked navigation buttons for a page
@@ -455,7 +572,8 @@ const PublicNotification$1 = /*@__PURE__*/ proxyCustomElement(class extends HTML
455
572
  */
456
573
  _getSelectionLists() {
457
574
  return this._selectionSets.reduce((prev, cur) => {
458
- if (cur.workflowType !== EWorkflowType.REFINE) {
575
+ const validSet = this._isValidSet(cur);
576
+ if (validSet) {
459
577
  if (!this._downloadActive && cur.download) {
460
578
  this._downloadActive = true;
461
579
  }
@@ -618,7 +736,7 @@ const PublicNotification$1 = /*@__PURE__*/ proxyCustomElement(class extends HTML
618
736
  * @protected
619
737
  */
620
738
  async _updateSelectionSets(layerView) {
621
- const _selectionSets = this._selectionSets.filter(selectionSet => selectionSet.workflowType !== EWorkflowType.REFINE);
739
+ const _selectionSets = this._selectionSets;
622
740
  const oidDefs = [];
623
741
  _selectionSets.forEach(selectionSet => {
624
742
  selectionSet.layerView = layerView;
@@ -702,11 +820,16 @@ const PublicNotification$1 = /*@__PURE__*/ proxyCustomElement(class extends HTML
702
820
  */
703
821
  _openSelection(selectionSet, evt) {
704
822
  evt.stopPropagation();
705
- this._activeSelection = selectionSet;
706
- this._distance = this._activeSelection.distance;
707
- this._unit = this._activeSelection.unit;
708
- this._customLabel = this._activeSelection.label;
709
- this._pageType = EPageType.SELECT;
823
+ if (selectionSet.workflowType === EWorkflowType.REFINE) {
824
+ this._pageType = EPageType.REFINE;
825
+ }
826
+ else {
827
+ this._activeSelection = selectionSet;
828
+ this._distance = this._activeSelection.distance;
829
+ this._unit = this._activeSelection.unit;
830
+ this._customLabel = this._activeSelection.label;
831
+ this._pageType = EPageType.SELECT;
832
+ }
710
833
  }
711
834
  /**
712
835
  * Highlight any selected features in the map
@@ -755,7 +878,9 @@ const PublicNotification$1 = /*@__PURE__*/ proxyCustomElement(class extends HTML
755
878
  static get watchers() { return {
756
879
  "mapView": ["mapViewWatchHandler"],
757
880
  "searchConfiguration": ["watchSearchConfigurationHandler"],
758
- "_selectionSets": ["selectionSetsWatchHandler"],
881
+ "sketchLineSymbol": ["sketchLineSymbolWatchHandler"],
882
+ "sketchPointSymbol": ["sketchPointSymbolWatchHandler"],
883
+ "sketchPolygonSymbol": ["sketchPolygonSymbolWatchHandler"],
759
884
  "_pageType": ["pageTypeWatchHandler"]
760
885
  }; }
761
886
  static get style() { return publicNotificationCss; }
@@ -774,6 +899,9 @@ const PublicNotification$1 = /*@__PURE__*/ proxyCustomElement(class extends HTML
774
899
  "selectionLayerIds": [16],
775
900
  "showRefineSelection": [4, "show-refine-selection"],
776
901
  "showSearchSettings": [4, "show-search-settings"],
902
+ "sketchLineSymbol": [8, "sketch-line-symbol"],
903
+ "sketchPointSymbol": [8, "sketch-point-symbol"],
904
+ "sketchPolygonSymbol": [8, "sketch-polygon-symbol"],
777
905
  "addresseeLayer": [32],
778
906
  "_downloadActive": [32],
779
907
  "_numSelected": [32],
@@ -984,9 +1112,9 @@ function defineCustomElement$1() {
984
1112
  break;
985
1113
  } });
986
1114
  }
987
- defineCustomElement$1();
988
-
989
- const PublicNotification = PublicNotification$1;
990
- const defineCustomElement = defineCustomElement$1;
991
-
992
- export { PublicNotification, defineCustomElement };
1115
+ defineCustomElement$1();
1116
+
1117
+ const PublicNotification = PublicNotification$1;
1118
+ const defineCustomElement = defineCustomElement$1;
1119
+
1120
+ export { PublicNotification, defineCustomElement };
@@ -52,7 +52,7 @@ async function queryAllFeatures(start, layer, graphics) {
52
52
  */
53
53
  async function queryObjectIds(geometries, layer) {
54
54
  let ids = [];
55
- const queryDefs = geometries.map(g => _intersectQuery(g, layer));
55
+ const queryDefs = geometries ? geometries.map(g => _intersectQuery(g, layer)) : [Promise.resolve()];
56
56
  const results = await Promise.all(queryDefs);
57
57
  results.forEach(resultIds => {
58
58
  ids = [
@@ -158,7 +158,7 @@ function getSelectionSetQuery(selectionSet, geometryEngine) {
158
158
  * @returns Array of single unioned geometry for the provided geometry type
159
159
  */
160
160
  function _unionGeoms(geometries, type, geometryEngine) {
161
- const geoms = geometries.filter(g => g.type === type);
161
+ const geoms = (geometries === null || geometries === void 0 ? void 0 : geometries.filter(g => g.type === type)) || [];
162
162
  return geoms.length <= 1 ? geoms : [geometryEngine.union(geoms)];
163
163
  }
164
164
  /**
@@ -4,9 +4,9 @@
4
4
  * http://www.apache.org/licenses/LICENSE-2.0
5
5
  */
6
6
  import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';
7
- import { g as ESelectionType, f as ERefineMode, e as ESelectionMode } from './interfaces3.js';
7
+ import { h as ESelectionType, g as ERefineMode, f as ESelectionMode } from './interfaces3.js';
8
8
  import { l as loadModules } from './loadModules.js';
9
- import { a as getMapLayerView, h as highlightFeatures, d as defineCustomElement$1 } from './map-layer-picker2.js';
9
+ import { g as getMapLayerView, h as highlightFeatures, d as defineCustomElement$1 } from './map-layer-picker2.js';
10
10
  import { d as queryFeaturesByGeometry } from './queryUtils.js';
11
11
  import { s as state } from './publicNotificationStore.js';
12
12
  import { g as getLocaleComponentStrings } from './locale.js';
@@ -207,7 +207,7 @@ const RefineSelectionTools = /*@__PURE__*/ proxyCustomElement(class extends HTML
207
207
  this._sketchGraphicsLayer = this.mapView.map.layers.getItemAt(sketchIndex);
208
208
  }
209
209
  else {
210
- this._sketchGraphicsLayer = new this.GraphicsLayer({ title });
210
+ this._sketchGraphicsLayer = new this.GraphicsLayer({ title, listMode: "hide" });
211
211
  state.managedLayers.push(title);
212
212
  this.mapView.map.layers.add(this._sketchGraphicsLayer);
213
213
  }
@@ -4,7 +4,7 @@
4
4
  * http://www.apache.org/licenses/LICENSE-2.0
5
5
  */
6
6
  import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';
7
- import { c as EWorkflowType, e as ESelectionMode, f as ERefineMode } from './interfaces3.js';
7
+ import { c as EWorkflowType, f as ESelectionMode, g as ERefineMode } from './interfaces3.js';
8
8
  import { g as getLocaleComponentStrings } from './locale.js';
9
9
  import { d as defineCustomElement$e } from './action.js';
10
10
  import { d as defineCustomElement$d } from './chip.js';
@@ -4,7 +4,7 @@
4
4
  * http://www.apache.org/licenses/LICENSE-2.0
5
5
  */
6
6
  import { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';
7
- import { h as EUpdateType } from './interfaces3.js';
7
+ import { i as EUpdateType } from './interfaces3.js';
8
8
  import { s as state, E as EFileType } from './solution-store.js';
9
9
  import { g as getLocaleComponentStrings } from './locale.js';
10
10
  import { d as defineCustomElement$a } from './action.js';
@@ -4,7 +4,7 @@
4
4
  * http://www.apache.org/licenses/LICENSE-2.0
5
5
  */
6
6
  import { c as createStore } from './index2.js';
7
- import { h as EUpdateType } from './interfaces3.js';
7
+ import { i as EUpdateType } from './interfaces3.js';
8
8
  import { c as createCommonjsModule, a as commonjsGlobal, b as commonjsRequire } from './_commonjsHelpers.js';
9
9
 
10
10
  /*! *****************************************************************************