@esri/solutions-components 0.3.8 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (63) hide show
  1. package/dist/cjs/buffer-tools_6.cjs.entry.js +37 -33
  2. package/dist/cjs/calcite-combobox_3.cjs.entry.js +1 -1
  3. package/dist/cjs/{calcite-input-message.calcite-notice.map-select-tools.pdf-download.refine-selection-d5d5499f.js → calcite-input-message.calcite-notice.map-select-tools.pdf-download.refine-selection-da276a1c.js} +112 -32
  4. package/dist/cjs/calcite-input-message_5.cjs.entry.js +2 -2
  5. package/dist/cjs/{index.es-43f519b3.js → index.es-176629d8.js} +2 -2
  6. package/dist/cjs/layer-table.cjs.entry.js +1 -1
  7. package/dist/cjs/loader.cjs.js +1 -1
  8. package/dist/cjs/{mapViewUtils-24d1d859.js → mapViewUtils-d250b1ed.js} +11 -6
  9. package/dist/cjs/public-notification.cjs.entry.js +24 -11
  10. package/dist/cjs/solutions-components.cjs.js +1 -1
  11. package/dist/collection/components/buffer-tools/buffer-tools.js +22 -20
  12. package/dist/collection/components/map-select-tools/map-select-tools.js +78 -13
  13. package/dist/collection/components/pdf-download/pdf-download.js +9 -19
  14. package/dist/collection/components/public-notification/public-notification.js +44 -30
  15. package/dist/collection/components/refine-selection/refine-selection.js +34 -14
  16. package/dist/collection/components/refine-selection-tools/refine-selection-tools.js +47 -21
  17. package/dist/collection/demos/buffer-tools.html +1 -1
  18. package/dist/collection/demos/new-public-notification.html +1 -11
  19. package/dist/collection/utils/interfaces.ts +8 -0
  20. package/dist/collection/utils/mapViewUtils.js +11 -6
  21. package/dist/collection/utils/mapViewUtils.ts +11 -6
  22. package/dist/components/buffer-tools2.js +19 -16
  23. package/dist/components/map-layer-picker2.js +11 -6
  24. package/dist/components/map-select-tools2.js +72 -15
  25. package/dist/components/pdf-download2.js +9 -4
  26. package/dist/components/public-notification.js +23 -11
  27. package/dist/components/refine-selection-tools2.js +20 -18
  28. package/dist/components/refine-selection2.js +32 -15
  29. package/dist/esm/buffer-tools_6.entry.js +37 -33
  30. package/dist/esm/calcite-combobox_3.entry.js +1 -1
  31. package/dist/esm/{calcite-input-message.calcite-notice.map-select-tools.pdf-download.refine-selection-b60306b8.js → calcite-input-message.calcite-notice.map-select-tools.pdf-download.refine-selection-c6f63458.js} +112 -32
  32. package/dist/esm/calcite-input-message_5.entry.js +2 -2
  33. package/dist/esm/{index.es-4a2bee8f.js → index.es-54a6f3a3.js} +2 -2
  34. package/dist/esm/layer-table.entry.js +1 -1
  35. package/dist/esm/loader.js +1 -1
  36. package/dist/esm/{mapViewUtils-c2fb048d.js → mapViewUtils-63e118f8.js} +11 -6
  37. package/dist/esm/public-notification.entry.js +24 -11
  38. package/dist/esm/solutions-components.js +1 -1
  39. package/dist/solutions-components/demos/buffer-tools.html +1 -1
  40. package/dist/solutions-components/demos/new-public-notification.html +1 -11
  41. package/dist/solutions-components/{p-21ae3f97.entry.js → p-117174e8.entry.js} +1 -1
  42. package/dist/solutions-components/{p-1b7c13f8.js → p-1e459361.js} +1 -1
  43. package/dist/solutions-components/{p-b4be1c30.entry.js → p-6d28f991.entry.js} +1 -1
  44. package/dist/solutions-components/{p-547cbe8a.js → p-80f5e33c.js} +12 -12
  45. package/dist/solutions-components/{p-c5f670fb.entry.js → p-8927862a.entry.js} +1 -1
  46. package/dist/solutions-components/{p-709c3f22.entry.js → p-8a0c0935.entry.js} +2 -2
  47. package/dist/solutions-components/p-cc2e20c8.js +36 -0
  48. package/dist/solutions-components/p-e69c58e5.entry.js +6 -0
  49. package/dist/solutions-components/solutions-components.esm.js +1 -1
  50. package/dist/solutions-components/utils/interfaces.ts +8 -0
  51. package/dist/solutions-components/utils/mapViewUtils.ts +11 -6
  52. package/dist/types/components/buffer-tools/buffer-tools.d.ts +2 -2
  53. package/dist/types/components/map-select-tools/map-select-tools.d.ts +19 -1
  54. package/dist/types/components/pdf-download/pdf-download.d.ts +0 -5
  55. package/dist/types/components/public-notification/public-notification.d.ts +11 -6
  56. package/dist/types/components/refine-selection/refine-selection.d.ts +6 -4
  57. package/dist/types/components/refine-selection-tools/refine-selection-tools.d.ts +6 -10
  58. package/dist/types/components.d.ts +24 -28
  59. package/dist/types/preact.d.ts +2 -1
  60. package/dist/types/utils/interfaces.d.ts +7 -0
  61. package/package.json +1 -1
  62. package/dist/solutions-components/p-b47d1a9a.entry.js +0 -6
  63. package/dist/solutions-components/p-cd7606eb.js +0 -36
@@ -20,7 +20,7 @@ const key = require('./key-55aca5c0.js');
20
20
  const locale$1 = require('./locale-73cab8e8.js');
21
21
  const publicNotificationStore = require('./publicNotificationStore-20e924f5.js');
22
22
  const interfaces = require('./interfaces-17c631bf.js');
23
- const mapViewUtils = require('./mapViewUtils-24d1d859.js');
23
+ const mapViewUtils = require('./mapViewUtils-d250b1ed.js');
24
24
  require('./_commonjsHelpers-384729db.js');
25
25
  require('./resources-b56bce71.js');
26
26
  require('./observers-5311faf8.js');
@@ -37,8 +37,8 @@ const BufferTools = class {
37
37
  this.appearance = "text";
38
38
  this.distance = 0;
39
39
  this.geometries = [];
40
- this.sliderMax = 100;
41
- this.sliderMin = 0;
40
+ this.max = undefined;
41
+ this.min = 0;
42
42
  this.sliderTicks = 10;
43
43
  this.unionResults = true;
44
44
  this.unit = "meters";
@@ -123,16 +123,19 @@ const BufferTools = class {
123
123
  * @protected
124
124
  */
125
125
  _setDistance(event) {
126
- this.distanceChanged.emit({
127
- oldValue: this.distance,
128
- newValue: event.detail.value
129
- });
130
- this.distance = event.detail.value;
131
- if (this.distance > 0) {
132
- this._buffer();
133
- }
134
- else {
135
- this.bufferComplete.emit(undefined);
126
+ const v = parseInt(event.detail.value, 10);
127
+ if (this.distance !== v && v >= this.min) {
128
+ this.distanceChanged.emit({
129
+ oldValue: this.distance,
130
+ newValue: event.detail.value
131
+ });
132
+ this.distance = v;
133
+ if (this.distance > 0) {
134
+ this._buffer();
135
+ }
136
+ else {
137
+ this.bufferComplete.emit(undefined);
138
+ }
136
139
  }
137
140
  }
138
141
  /**
@@ -175,7 +178,7 @@ const BufferTools = class {
175
178
  * @protected
176
179
  */
177
180
  _getTextBoxDisplay() {
178
- return (index.h("div", { class: "c-container" }, index.h("calcite-input", { class: "padding-end-1", "number-button-type": "vertical", onCalciteInputInput: (evt) => this._setDistance(evt), placeholder: "0", type: "number", value: this.distance ? this.distance.toString() : undefined }), index.h("calcite-select", { class: "flex-1", label: "label", onCalciteSelectChange: () => this._setUnit(this._unitElement.value), ref: (el) => { this._unitElement = el; } }, this._getUnits())));
181
+ return (index.h("div", { class: "c-container" }, index.h("calcite-input", { class: "padding-end-1", max: this.max && this.max > 0 ? this.max : undefined, min: this.min, "number-button-type": "vertical", onCalciteInputInput: (evt) => this._setDistance(evt), placeholder: "0", type: "number", value: this.distance ? this.distance.toString() : undefined }), index.h("calcite-select", { class: "flex-1", label: "label", onCalciteSelectChange: () => this._setUnit(this._unitElement.value), ref: (el) => { this._unitElement = el; } }, this._getUnits())));
179
182
  }
180
183
  /**
181
184
  * Render distance control as a slider
@@ -186,7 +189,7 @@ const BufferTools = class {
186
189
  * @protected
187
190
  */
188
191
  _getSliderDisplay() {
189
- return (index.h("div", null, index.h("calcite-slider", { labelHandles: true, max: this.sliderMax, min: this.sliderMin, ticks: this.sliderTicks })));
192
+ return (index.h("div", null, index.h("calcite-slider", { labelHandles: true, max: this.max && this.max > 0 ? this.max : undefined, min: this.min, ticks: this.sliderTicks })));
190
193
  }
191
194
  /**
192
195
  * Fetches the component's translations
@@ -1533,14 +1536,6 @@ const RefineSelectionTools = class {
1533
1536
  * {<layer id>: Graphic[]}: Collection of graphics returned from queries to the layer
1534
1537
  */
1535
1538
  this._featuresCollection = {};
1536
- /**
1537
- * IRefineOperation[]: Array to maintain the possible redo operations
1538
- */
1539
- this._redoStack = [];
1540
- /**
1541
- * IRefineOperation[]: Array to maintain the possible undo operations
1542
- */
1543
- this._undoStack = [];
1544
1539
  this.active = false;
1545
1540
  this.border = false;
1546
1541
  this.enabledLayerIds = [];
@@ -1551,6 +1546,7 @@ const RefineSelectionTools = class {
1551
1546
  this.mapView = undefined;
1552
1547
  this.mode = undefined;
1553
1548
  this.refineMode = undefined;
1549
+ this.refineSelectionSet = undefined;
1554
1550
  this.useLayerPicker = true;
1555
1551
  this._selectEnabled = false;
1556
1552
  this._selectionMode = undefined;
@@ -1631,10 +1627,11 @@ const RefineSelectionTools = class {
1631
1627
  * Renders the component.
1632
1628
  */
1633
1629
  render() {
1630
+ var _a, _b;
1634
1631
  const showLayerPickerClass = this.useLayerPicker ? "div-visible" : "div-not-visible";
1635
1632
  const drawClass = this.border ? " border" : "";
1636
1633
  const showUndoRedo = this.refineMode === interfaces.ERefineMode.ALL ? "div-visible" : "div-not-visible";
1637
- return (index.h(index.Host, null, index.h("div", null, index.h("map-layer-picker", { class: showLayerPickerClass, enabledLayerIds: this.enabledLayerIds, mapView: this.mapView, onLayerSelectionChange: (evt) => { void this._layerSelectionChange(evt); }, selectedLayerIds: this.layerViews.map(l => l.layer.id), selectionMode: "single" }), index.h("div", { class: "margin-top-1" + drawClass }, index.h("div", { class: "esri-sketch esri-widget" }, index.h("div", { class: "esri-sketch__panel" }, index.h("div", { class: "esri-sketch__tool-section esri-sketch__section" }, index.h("calcite-action", { disabled: !this._selectEnabled, icon: "select", onClick: () => this._setSelectionMode(interfaces.ESelectionType.POINT), scale: "s", text: this._translations.select })), index.h("div", { class: "esri-sketch__tool-section esri-sketch__section" }, index.h("calcite-action", { disabled: !this._selectEnabled, icon: "line", onClick: () => this._setSelectionMode(interfaces.ESelectionType.LINE), scale: "s", text: this._translations.selectLine }), index.h("calcite-action", { disabled: !this._selectEnabled, icon: "polygon", onClick: () => this._setSelectionMode(interfaces.ESelectionType.POLY), scale: "s", text: this._translations.selectPolygon }), index.h("calcite-action", { disabled: !this._selectEnabled, icon: "rectangle", onClick: () => this._setSelectionMode(interfaces.ESelectionType.RECT), scale: "s", text: this._translations.selectRectangle })), index.h("div", { class: showUndoRedo + " esri-sketch__tool-section esri-sketch__section" }, index.h("calcite-action", { disabled: this._undoStack.length === 0, icon: "undo", onClick: () => this._undo(), scale: "s", text: this._translations.undo }), index.h("calcite-action", { disabled: this._redoStack.length === 0, icon: "redo", onClick: () => this._redo(), scale: "s", text: this._translations.redo }))))))));
1634
+ return (index.h(index.Host, null, index.h("div", null, index.h("map-layer-picker", { class: showLayerPickerClass, enabledLayerIds: this.enabledLayerIds, mapView: this.mapView, onLayerSelectionChange: (evt) => { void this._layerSelectionChange(evt); }, selectedLayerIds: this.layerViews.map(l => l.layer.id), selectionMode: "single" }), index.h("div", { class: "margin-top-1" + drawClass }, index.h("div", { class: "esri-sketch esri-widget" }, index.h("div", { class: "esri-sketch__panel" }, index.h("div", { class: "esri-sketch__tool-section esri-sketch__section" }, index.h("calcite-action", { disabled: !this._selectEnabled, icon: "pin", onClick: () => this._setSelectionMode(interfaces.ESelectionType.POINT), scale: "s", text: this._translations.select }), index.h("calcite-action", { disabled: !this._selectEnabled, icon: "line", onClick: () => this._setSelectionMode(interfaces.ESelectionType.LINE), scale: "s", text: this._translations.selectLine }), index.h("calcite-action", { disabled: !this._selectEnabled, icon: "polygon", onClick: () => this._setSelectionMode(interfaces.ESelectionType.POLY), scale: "s", text: this._translations.selectPolygon }), index.h("calcite-action", { disabled: !this._selectEnabled, icon: "rectangle", onClick: () => this._setSelectionMode(interfaces.ESelectionType.RECT), scale: "s", text: this._translations.selectRectangle })), index.h("div", { class: showUndoRedo + " esri-sketch__tool-section esri-sketch__section" }, index.h("calcite-action", { disabled: ((_a = this.refineSelectionSet) === null || _a === void 0 ? void 0 : _a.undoStack) ? this.refineSelectionSet.undoStack.length === 0 : true, icon: "undo", onClick: () => this._undo(), scale: "s", text: this._translations.undo }), index.h("calcite-action", { disabled: ((_b = this.refineSelectionSet) === null || _b === void 0 ? void 0 : _b.redoStack) ? this.refineSelectionSet.redoStack.length === 0 : true, icon: "redo", onClick: () => this._redo(), scale: "s", text: this._translations.redo }))))))));
1638
1635
  }
1639
1636
  //--------------------------------------------------------------------------
1640
1637
  //
@@ -1746,7 +1743,7 @@ const RefineSelectionTools = class {
1746
1743
  return prev;
1747
1744
  }, []);
1748
1745
  }
1749
- this.refineSelectionGraphicsChange.emit(graphics);
1746
+ this.refineSelectionGraphicsChange.emit({ graphics, useOIDs: false });
1750
1747
  this._clear();
1751
1748
  });
1752
1749
  });
@@ -1820,11 +1817,14 @@ const RefineSelectionTools = class {
1820
1817
  });
1821
1818
  });
1822
1819
  if (this.refineMode === interfaces.ERefineMode.SUBSET) {
1823
- this.refineSelectionGraphicsChange.emit(graphics);
1820
+ this.refineSelectionGraphicsChange.emit({
1821
+ graphics,
1822
+ useOIDs: this.layerViews[0].layer.title === this.layerView.layer.title
1823
+ });
1824
1824
  }
1825
1825
  else {
1826
1826
  const oids = Array.isArray(graphics) ? graphics.map(g => { var _a; return g.attributes[(_a = g === null || g === void 0 ? void 0 : g.layer) === null || _a === void 0 ? void 0 : _a.objectIdField]; }) : [];
1827
- await this._updateIds(oids, this.mode, this._undoStack, this.mode);
1827
+ await this._updateIds(oids, this.mode, this.refineSelectionSet.undoStack, this.mode);
1828
1828
  }
1829
1829
  this._clear();
1830
1830
  });
@@ -1867,12 +1867,16 @@ const RefineSelectionTools = class {
1867
1867
  if (mode === interfaces.ESelectionMode.ADD) {
1868
1868
  idUpdates.addIds = oids.filter(id => this.ids.indexOf(id) < 0);
1869
1869
  this.ids = [...this.ids, ...idUpdates.addIds];
1870
- operationStack.push({ mode: operationMode, ids: idUpdates.addIds });
1870
+ if (idUpdates.addIds.length > 0) {
1871
+ operationStack.push({ mode: operationMode, ids: idUpdates.addIds });
1872
+ }
1871
1873
  }
1872
1874
  else {
1873
1875
  idUpdates.removeIds = oids.filter(id => this.ids.indexOf(id) > -1);
1874
1876
  this.ids = this.ids.filter(id => idUpdates.removeIds.indexOf(id) < 0);
1875
- operationStack.push({ mode: operationMode, ids: idUpdates.removeIds });
1877
+ if (idUpdates.removeIds.length > 0) {
1878
+ operationStack.push({ mode: operationMode, ids: idUpdates.removeIds });
1879
+ }
1876
1880
  }
1877
1881
  await this._highlightFeatures(this.ids).then(() => {
1878
1882
  this.refineSelectionIdsChange.emit(idUpdates);
@@ -1886,8 +1890,8 @@ const RefineSelectionTools = class {
1886
1890
  * @protected
1887
1891
  */
1888
1892
  _undo() {
1889
- const undoOp = this._undoStack.pop();
1890
- void this._updateIds(undoOp.ids, undoOp.mode === interfaces.ESelectionMode.ADD ? interfaces.ESelectionMode.REMOVE : interfaces.ESelectionMode.ADD, this._redoStack, undoOp.mode);
1893
+ const undoOp = this.refineSelectionSet.undoStack.pop();
1894
+ void this._updateIds(undoOp.ids, undoOp.mode === interfaces.ESelectionMode.ADD ? interfaces.ESelectionMode.REMOVE : interfaces.ESelectionMode.ADD, this.refineSelectionSet.redoStack, undoOp.mode);
1891
1895
  }
1892
1896
  /**
1893
1897
  * Redo the most current ADD or REMOVE operation
@@ -1897,8 +1901,8 @@ const RefineSelectionTools = class {
1897
1901
  * @protected
1898
1902
  */
1899
1903
  _redo() {
1900
- const redoOp = this._redoStack.pop();
1901
- void this._updateIds(redoOp.ids, redoOp.mode, this._undoStack, redoOp.mode);
1904
+ const redoOp = this.refineSelectionSet.redoStack.pop();
1905
+ void this._updateIds(redoOp.ids, redoOp.mode, this.refineSelectionSet.undoStack, redoOp.mode);
1902
1906
  }
1903
1907
  /**
1904
1908
  * Fetches the component's translations
@@ -20,7 +20,7 @@ const dom = require('./dom-4a580af6.js');
20
20
  const openCloseComponent = require('./openCloseComponent-bf986132.js');
21
21
  const debounce = require('./debounce-69c3bada.js');
22
22
  const conditionalSlot = require('./conditionalSlot-baada7a3.js');
23
- const mapViewUtils = require('./mapViewUtils-24d1d859.js');
23
+ const mapViewUtils = require('./mapViewUtils-d250b1ed.js');
24
24
  const publicNotificationStore = require('./publicNotificationStore-20e924f5.js');
25
25
  require('./resources-b56bce71.js');
26
26
  require('./interfaces-17c631bf.js');
@@ -10,7 +10,7 @@ const dom = require('./dom-4a580af6.js');
10
10
  const interfaces = require('./interfaces-e76f31e9.js');
11
11
  const conditionalSlot = require('./conditionalSlot-baada7a3.js');
12
12
  const loadModules = require('./loadModules-918ff3e7.js');
13
- const mapViewUtils = require('./mapViewUtils-24d1d859.js');
13
+ const mapViewUtils = require('./mapViewUtils-d250b1ed.js');
14
14
  const interfaces$1 = require('./interfaces-17c631bf.js');
15
15
  const publicNotificationStore = require('./publicNotificationStore-20e924f5.js');
16
16
  const locale = require('./locale-db1db902.js');
@@ -246,6 +246,12 @@ const MapSelectTools = class {
246
246
  * string: A label to help uniquely identify the selection set
247
247
  */
248
248
  this._selectionLabel = "";
249
+ /**
250
+ * boolean: When false the geometries will be used for selection
251
+ * When true a list of OIDs will be used
252
+ * see https://github.com/Esri/solutions-components/issues/148
253
+ */
254
+ this._skipGeomQuery = false;
249
255
  this.bufferColor = [227, 139, 79, 0.8];
250
256
  this.bufferOutlineColor = [255, 255, 255];
251
257
  this.enabledLayerIds = [];
@@ -276,13 +282,33 @@ const MapSelectTools = class {
276
282
  async watchGeometriesHandler(newValue, oldValue) {
277
283
  if (newValue !== oldValue) {
278
284
  if (newValue.length > 0) {
279
- return this._geomQuery(this.geometries);
285
+ if (this._skipGeomQuery) {
286
+ void mapViewUtils.highlightFeatures(this._selectedIds, this.selectLayerView, this.mapView);
287
+ }
288
+ else {
289
+ return this._geomQuery(this.geometries);
290
+ }
280
291
  }
281
292
  else if (newValue.length === 0) {
282
293
  return this._clearResults(true, true);
283
294
  }
284
295
  }
285
296
  }
297
+ /**
298
+ * Called each time the searchConfiguration prop is changed.
299
+ *
300
+ * @returns Promise when complete
301
+ */
302
+ async watchSearchConfigurationHandler(newValue, oldValue) {
303
+ console.log("watchSearchConfigurationHandler");
304
+ console.log("newValue");
305
+ console.log(newValue);
306
+ console.log("oldValue");
307
+ console.log(oldValue);
308
+ if (JSON.stringify(newValue) !== JSON.stringify(oldValue)) {
309
+ this._initSearchWidget();
310
+ }
311
+ }
286
312
  /**
287
313
  * Called each time the workflowType prop is changed and emits the workflowTypeChange event.
288
314
  *
@@ -331,7 +357,8 @@ const MapSelectTools = class {
331
357
  selectedIds: this._selectedIds,
332
358
  layerView: this.selectLayerView,
333
359
  geometries: this.geometries,
334
- refineSelectLayers: this._refineTools.layerViews
360
+ refineSelectLayers: this._refineTools.layerViews,
361
+ skipGeomQuery: this._skipGeomQuery
335
362
  };
336
363
  }
337
364
  /**
@@ -340,22 +367,28 @@ const MapSelectTools = class {
340
367
  labelChange(event) {
341
368
  this._selectionLabel = event.detail;
342
369
  }
370
+ /**
371
+ * Handle changes to the search configuration
372
+ */
373
+ searchConfigurationChangeChanged(event) {
374
+ this.searchConfiguration = event.detail;
375
+ }
343
376
  /**
344
377
  * Listen to changes in the sketch graphics
345
378
  *
346
379
  */
347
380
  sketchGraphicsChange(event) {
348
- this._updateSelection(interfaces$1.EWorkflowType.SKETCH, event.detail, this._selectionLabel || this._translations.sketch);
381
+ this._updateSelection(interfaces$1.EWorkflowType.SKETCH, event.detail, this._selectionLabel || this._translations.sketch, true);
349
382
  }
350
383
  /**
351
384
  * Listen to changes in the refine graphics
352
385
  *
353
386
  */
354
387
  refineSelectionGraphicsChange(event) {
355
- const graphics = event.detail;
356
- this._updateSelection(interfaces$1.EWorkflowType.SELECT, graphics, this._selectionLabel || this._translations.select);
357
- // Using OIDs to avoid issue with points
388
+ const graphics = event.detail.graphics;
389
+ this._skipGeomQuery = event.detail.useOIDs;
358
390
  const oids = Array.isArray(graphics) ? graphics.map(g => g.attributes[g.layer.objectIdField]) : [];
391
+ this._updateSelection(interfaces$1.EWorkflowType.SELECT, graphics, this._selectionLabel || this._translations.select, !event.detail.useOIDs, oids);
359
392
  return this._highlightFeatures(oids);
360
393
  }
361
394
  //--------------------------------------------------------------------------
@@ -388,7 +421,7 @@ const MapSelectTools = class {
388
421
  const useSelectClass = this._layerSelectChecked && !searchEnabled ? " div-visible" : " div-not-visible";
389
422
  const useDrawClass = !this._layerSelectChecked && !searchEnabled ? " div-visible" : " div-not-visible";
390
423
  const showLayerChoiceClass = searchEnabled ? "div-not-visible" : "div-visible";
391
- return (index.h(index.Host, null, index.h("div", { class: "padding-bottom-1" }, index.h("calcite-radio-group", { class: "w-100", onCalciteRadioGroupChange: (evt) => this._workflowChange(evt) }, index.h("calcite-radio-group-item", { checked: searchEnabled, class: "w-50 end-border", value: interfaces$1.EWorkflowType.SEARCH }, this._translations.search), index.h("calcite-radio-group-item", { checked: drawEnabled, class: "w-50", value: interfaces$1.EWorkflowType.SKETCH }, this._translations.sketch))), index.h("div", { class: showSearchClass }, index.h("div", { class: "search-widget", ref: (el) => { this._searchElement = el; } })), index.h("div", { class: showLayerChoiceClass }, index.h("calcite-label", { layout: "inline" }, index.h("calcite-checkbox", { checked: ((_a = this.selectionSet) === null || _a === void 0 ? void 0 : _a.workflowType) === interfaces$1.EWorkflowType.SELECT, onCalciteCheckboxChange: () => this._layerSelectChanged(), ref: (el) => this._selectFromLayerElement = el }), "Use layer features")), index.h("div", { class: useDrawClass }, index.h("map-draw-tools", { active: true, border: true, mapView: this.mapView, ref: (el) => { this._drawTools = el; } })), index.h("div", { class: useSelectClass }, index.h("refine-selection-tools", { active: true, border: true, enabledLayerIds: this.enabledLayerIds, layerViews: this._refineSelectLayers, mapView: this.mapView, mode: interfaces$1.ESelectionMode.ADD, ref: (el) => { this._refineTools = el; }, refineMode: interfaces$1.ERefineMode.SUBSET })), index.h("calcite-label", { class: showBufferToolsClass }, this._translations.searchDistance, index.h("buffer-tools", { distance: ((_b = this.selectionSet) === null || _b === void 0 ? void 0 : _b.distance) || this.defaultBufferDistance, geometries: this.geometries, onBufferComplete: (evt) => this._bufferComplete(evt), ref: (el) => this._bufferTools = el, unit: ((_c = this.selectionSet) === null || _c === void 0 ? void 0 : _c.unit) || this.defaultBufferUnit })), index.h("slot", null)));
424
+ return (index.h(index.Host, null, index.h("div", { class: "padding-bottom-1" }, index.h("calcite-radio-group", { class: "w-100", onCalciteRadioGroupChange: (evt) => this._workflowChange(evt) }, index.h("calcite-radio-group-item", { checked: searchEnabled, class: "w-50 end-border", value: interfaces$1.EWorkflowType.SEARCH }, this._translations.search), index.h("calcite-radio-group-item", { checked: drawEnabled, class: "w-50", value: interfaces$1.EWorkflowType.SKETCH }, this._translations.sketch))), index.h("div", { class: showSearchClass }, index.h("div", { class: "search-widget", ref: (el) => { this._searchElement = el; } })), index.h("div", { class: showLayerChoiceClass }, index.h("calcite-label", { layout: "inline" }, index.h("calcite-checkbox", { checked: ((_a = this.selectionSet) === null || _a === void 0 ? void 0 : _a.workflowType) === interfaces$1.EWorkflowType.SELECT, onCalciteCheckboxChange: () => this._layerSelectChanged(), ref: (el) => this._selectFromLayerElement = el }), "Use layer features")), index.h("div", { class: useDrawClass }, index.h("map-draw-tools", { active: true, border: true, mapView: this.mapView, ref: (el) => { this._drawTools = el; } })), index.h("div", { class: useSelectClass }, index.h("refine-selection-tools", { active: true, border: true, enabledLayerIds: this.enabledLayerIds, layerView: this.selectLayerView, layerViews: this._refineSelectLayers, mapView: this.mapView, mode: interfaces$1.ESelectionMode.ADD, ref: (el) => { this._refineTools = el; }, refineMode: interfaces$1.ERefineMode.SUBSET })), index.h("calcite-label", { class: showBufferToolsClass }, this._translations.searchDistance, index.h("buffer-tools", { distance: ((_b = this.selectionSet) === null || _b === void 0 ? void 0 : _b.distance) || this.defaultBufferDistance, geometries: this.geometries, onBufferComplete: (evt) => this._bufferComplete(evt), ref: (el) => this._bufferTools = el, unit: ((_c = this.selectionSet) === null || _c === void 0 ? void 0 : _c.unit) || this.defaultBufferUnit })), index.h("slot", null)));
392
425
  }
393
426
  //--------------------------------------------------------------------------
394
427
  //
@@ -432,17 +465,19 @@ const MapSelectTools = class {
432
465
  * @protected
433
466
  */
434
467
  _initSelectionSet() {
435
- var _a, _b, _c, _d, _e, _f, _g;
468
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j;
436
469
  if (this.selectionSet) {
437
470
  this._searchTerm = (_b = (_a = this.selectionSet) === null || _a === void 0 ? void 0 : _a.searchResult) === null || _b === void 0 ? void 0 : _b.name;
438
471
  this._workflowType = (_c = this.selectionSet) === null || _c === void 0 ? void 0 : _c.workflowType;
439
472
  this._searchResult = (_d = this.selectionSet) === null || _d === void 0 ? void 0 : _d.searchResult;
440
473
  this._refineSelectLayers = (_e = this.selectionSet) === null || _e === void 0 ? void 0 : _e.refineSelectLayers;
474
+ this._selectedIds = (_f = this.selectionSet) === null || _f === void 0 ? void 0 : _f.selectedIds;
475
+ this._skipGeomQuery = (_g = this.selectionSet) === null || _g === void 0 ? void 0 : _g.skipGeomQuery;
441
476
  this.geometries = [
442
- ...(_f = this.selectionSet) === null || _f === void 0 ? void 0 : _f.geometries
477
+ ...((_h = this.selectionSet) === null || _h === void 0 ? void 0 : _h.geometries) || []
443
478
  ];
444
479
  // reset selection label base
445
- this._selectionLabel = ((_g = this.selectionSet) === null || _g === void 0 ? void 0 : _g.label) || this._getSelectionBaseLabel();
480
+ this._selectionLabel = ((_j = this.selectionSet) === null || _j === void 0 ? void 0 : _j.label) || this._getSelectionBaseLabel();
446
481
  void mapViewUtils.goToSelection(this.selectionSet.selectedIds, this.selectionSet.layerView, this.mapView, false);
447
482
  }
448
483
  else {
@@ -467,8 +502,16 @@ const MapSelectTools = class {
467
502
  * @protected
468
503
  */
469
504
  _initSearchWidget() {
505
+ console.log("_initSearchWidget");
506
+ console.log("this.mapView");
507
+ console.log(this.mapView);
508
+ console.log("this._searchElement");
509
+ console.log(this._searchElement);
470
510
  if (this.mapView && this._searchElement) {
511
+ console.log("this._getSearchConfig");
471
512
  const searchConfiguration = this._getSearchConfig(this.searchConfiguration, this.mapView);
513
+ console.log("searchConfiguration");
514
+ console.log(searchConfiguration);
472
515
  const searchOptions = Object.assign({ view: this.mapView, container: this._searchElement, searchTerm: this._searchTerm }, searchConfiguration);
473
516
  this._searchWidget = new this.Search(searchOptions);
474
517
  this._searchWidget.on("search-clear", () => {
@@ -479,9 +522,10 @@ const MapSelectTools = class {
479
522
  void this._clearResults(false);
480
523
  if (searchResults.result) {
481
524
  this._searchResult = searchResults.result;
482
- this._updateSelection(interfaces$1.EWorkflowType.SEARCH, [searchResults.result.feature], (_a = searchResults === null || searchResults === void 0 ? void 0 : searchResults.result) === null || _a === void 0 ? void 0 : _a.name);
525
+ this._updateSelection(interfaces$1.EWorkflowType.SEARCH, [searchResults.result.feature], (_a = searchResults === null || searchResults === void 0 ? void 0 : searchResults.result) === null || _a === void 0 ? void 0 : _a.name, true);
483
526
  }
484
527
  });
528
+ console.log("END search widget init");
485
529
  }
486
530
  }
487
531
  /**
@@ -607,6 +651,7 @@ const MapSelectTools = class {
607
651
  * @protected
608
652
  */
609
653
  async _bufferComplete(evt) {
654
+ var _a, _b;
610
655
  this._bufferGeometry = Array.isArray(evt.detail) ?
611
656
  evt.detail[0] : evt.detail;
612
657
  if (this._bufferGeometry) {
@@ -633,7 +678,13 @@ const MapSelectTools = class {
633
678
  if (this._bufferGraphicsLayer) {
634
679
  this._bufferGraphicsLayer.removeAll();
635
680
  }
636
- void this._geomQuery(this.geometries);
681
+ if (this._skipGeomQuery || ((_a = this.selectionSet) === null || _a === void 0 ? void 0 : _a.skipGeomQuery)) {
682
+ this._selectedIds = (_b = this.selectionSet) === null || _b === void 0 ? void 0 : _b.selectedIds;
683
+ void this._highlightFeatures(this._selectedIds);
684
+ }
685
+ else {
686
+ void this._geomQuery(this.geometries);
687
+ }
637
688
  }
638
689
  }
639
690
  /**
@@ -681,10 +732,15 @@ const MapSelectTools = class {
681
732
  * @param type worflow type
682
733
  * @param graphics graphics to be used for selection
683
734
  * @param label selection label
735
+ * @param useGeoms indicates if the geometries should be used directly for selections
736
+ * @param oids list of IDs to select when useGeoms is false
684
737
  *
685
738
  * @protected
686
739
  */
687
- _updateSelection(type, graphics, label) {
740
+ _updateSelection(type, graphics, label, useGeoms, oids) {
741
+ this._selectedIds = oids ? oids : this._selectedIds;
742
+ // see https://github.com/Esri/solutions-components/issues/148
743
+ this._skipGeomQuery = !useGeoms;
688
744
  this.geometries = Array.isArray(graphics) ? graphics.map(g => g.geometry) : this.geometries;
689
745
  this._workflowType = type;
690
746
  this._selectionLabel = label;
@@ -701,6 +757,7 @@ const MapSelectTools = class {
701
757
  get el() { return index.getElement(this); }
702
758
  static get watchers() { return {
703
759
  "geometries": ["watchGeometriesHandler"],
760
+ "searchConfiguration": ["watchSearchConfigurationHandler"],
704
761
  "_workflowType": ["workflowTypeHandler"]
705
762
  }; }
706
763
  };
@@ -1925,7 +1982,7 @@ function(t){var e=function(t){for(var e=t.length,r=new Uint8Array(e),n=0;n<e;n++
1925
1982
  * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
1926
1983
  * ====================================================================
1927
1984
  */
1928
- function(t){function e(){return (n.canvg?Promise.resolve(n.canvg):Promise.resolve().then(function () { return require('./index.es-43f519b3.js'); })).catch((function(t){return Promise.reject(new Error("Could not load canvg: "+t))})).then((function(t){return t.default?t.default:t}))}E.API.addSvgAsImage=function(t,r,n,i,o,s,c,u){if(isNaN(r)||isNaN(n))throw a.error("jsPDF.addSvgAsImage: Invalid coordinates",arguments),new Error("Invalid coordinates passed to jsPDF.addSvgAsImage");if(isNaN(i)||isNaN(o))throw a.error("jsPDF.addSvgAsImage: Invalid measurements",arguments),new Error("Invalid measurements (width and/or height) passed to jsPDF.addSvgAsImage");var h=document.createElement("canvas");h.width=i,h.height=o;var l=h.getContext("2d");l.fillStyle="#fff",l.fillRect(0,0,h.width,h.height);var f={ignoreMouse:!0,ignoreAnimation:!0,ignoreDimensions:!0},d=this;return e().then((function(e){return e.fromString(l,t,f)}),(function(){return Promise.reject(new Error("Could not load canvg."))})).then((function(t){return t.render(f)})).then((function(){d.addImage(h.toDataURL("image/jpeg",1),r,n,i,o,c,u);}))};}(),E.API.putTotalPages=function(t){var e,r=0;parseInt(this.internal.getFont().id.substr(1),10)<15?(e=new RegExp(t,"g"),r=this.internal.getNumberOfPages()):(e=new RegExp(this.pdfEscape16(t,this.internal.getFont()),"g"),r=this.pdfEscape16(this.internal.getNumberOfPages()+"",this.internal.getFont()));for(var n=1;n<=this.internal.getNumberOfPages();n++)for(var i=0;i<this.internal.pages[n].length;i++)this.internal.pages[n][i]=this.internal.pages[n][i].replace(e,r);return this},E.API.viewerPreferences=function(e,r){var n;e=e||{},r=r||!1;var i,a,o,s={HideToolbar:{defaultValue:!1,value:!1,type:"boolean",explicitSet:!1,valueSet:[!0,!1],pdfVersion:1.3},HideMenubar:{defaultValue:!1,value:!1,type:"boolean",explicitSet:!1,valueSet:[!0,!1],pdfVersion:1.3},HideWindowUI:{defaultValue:!1,value:!1,type:"boolean",explicitSet:!1,valueSet:[!0,!1],pdfVersion:1.3},FitWindow:{defaultValue:!1,value:!1,type:"boolean",explicitSet:!1,valueSet:[!0,!1],pdfVersion:1.3},CenterWindow:{defaultValue:!1,value:!1,type:"boolean",explicitSet:!1,valueSet:[!0,!1],pdfVersion:1.3},DisplayDocTitle:{defaultValue:!1,value:!1,type:"boolean",explicitSet:!1,valueSet:[!0,!1],pdfVersion:1.4},NonFullScreenPageMode:{defaultValue:"UseNone",value:"UseNone",type:"name",explicitSet:!1,valueSet:["UseNone","UseOutlines","UseThumbs","UseOC"],pdfVersion:1.3},Direction:{defaultValue:"L2R",value:"L2R",type:"name",explicitSet:!1,valueSet:["L2R","R2L"],pdfVersion:1.3},ViewArea:{defaultValue:"CropBox",value:"CropBox",type:"name",explicitSet:!1,valueSet:["MediaBox","CropBox","TrimBox","BleedBox","ArtBox"],pdfVersion:1.4},ViewClip:{defaultValue:"CropBox",value:"CropBox",type:"name",explicitSet:!1,valueSet:["MediaBox","CropBox","TrimBox","BleedBox","ArtBox"],pdfVersion:1.4},PrintArea:{defaultValue:"CropBox",value:"CropBox",type:"name",explicitSet:!1,valueSet:["MediaBox","CropBox","TrimBox","BleedBox","ArtBox"],pdfVersion:1.4},PrintClip:{defaultValue:"CropBox",value:"CropBox",type:"name",explicitSet:!1,valueSet:["MediaBox","CropBox","TrimBox","BleedBox","ArtBox"],pdfVersion:1.4},PrintScaling:{defaultValue:"AppDefault",value:"AppDefault",type:"name",explicitSet:!1,valueSet:["AppDefault","None"],pdfVersion:1.6},Duplex:{defaultValue:"",value:"none",type:"name",explicitSet:!1,valueSet:["Simplex","DuplexFlipShortEdge","DuplexFlipLongEdge","none"],pdfVersion:1.7},PickTrayByPDFSize:{defaultValue:!1,value:!1,type:"boolean",explicitSet:!1,valueSet:[!0,!1],pdfVersion:1.7},PrintPageRange:{defaultValue:"",value:"",type:"array",explicitSet:!1,valueSet:null,pdfVersion:1.7},NumCopies:{defaultValue:1,value:1,type:"integer",explicitSet:!1,valueSet:null,pdfVersion:1.7}},c=Object.keys(s),u=[],h=0,l=0,f=0;function d(t,e){var r,n=!1;for(r=0;r<t.length;r+=1)t[r]===e&&(n=!0);return n}if(void 0===this.internal.viewerpreferences&&(this.internal.viewerpreferences={},this.internal.viewerpreferences.configuration=JSON.parse(JSON.stringify(s)),this.internal.viewerpreferences.isSubscribed=!1),n=this.internal.viewerpreferences.configuration,"reset"===e||!0===r){var p=c.length;for(f=0;f<p;f+=1)n[c[f]].value=n[c[f]].defaultValue,n[c[f]].explicitSet=!1;}if("object"===t(e))for(a in e)if(o=e[a],d(c,a)&&void 0!==o){if("boolean"===n[a].type&&"boolean"==typeof o)n[a].value=o;else if("name"===n[a].type&&d(n[a].valueSet,o))n[a].value=o;else if("integer"===n[a].type&&Number.isInteger(o))n[a].value=o;else if("array"===n[a].type){for(h=0;h<o.length;h+=1)if(i=!0,1===o[h].length&&"number"==typeof o[h][0])u.push(String(o[h]-1));else if(o[h].length>1){for(l=0;l<o[h].length;l+=1)"number"!=typeof o[h][l]&&(i=!1);!0===i&&u.push([o[h][0]-1,o[h][1]-1].join(" "));}n[a].value="["+u.join(" ")+"]";}else n[a].value=n[a].defaultValue;n[a].explicitSet=!0;}return !1===this.internal.viewerpreferences.isSubscribed&&(this.internal.events.subscribe("putCatalog",(function(){var t,e=[];for(t in n)!0===n[t].explicitSet&&("name"===n[t].type?e.push("/"+t+" /"+n[t].value):e.push("/"+t+" "+n[t].value));0!==e.length&&this.internal.write("/ViewerPreferences\n<<\n"+e.join("\n")+"\n>>");})),this.internal.viewerpreferences.isSubscribed=!0),this.internal.viewerpreferences.configuration=n,this},
1985
+ function(t){function e(){return (n.canvg?Promise.resolve(n.canvg):Promise.resolve().then(function () { return require('./index.es-176629d8.js'); })).catch((function(t){return Promise.reject(new Error("Could not load canvg: "+t))})).then((function(t){return t.default?t.default:t}))}E.API.addSvgAsImage=function(t,r,n,i,o,s,c,u){if(isNaN(r)||isNaN(n))throw a.error("jsPDF.addSvgAsImage: Invalid coordinates",arguments),new Error("Invalid coordinates passed to jsPDF.addSvgAsImage");if(isNaN(i)||isNaN(o))throw a.error("jsPDF.addSvgAsImage: Invalid measurements",arguments),new Error("Invalid measurements (width and/or height) passed to jsPDF.addSvgAsImage");var h=document.createElement("canvas");h.width=i,h.height=o;var l=h.getContext("2d");l.fillStyle="#fff",l.fillRect(0,0,h.width,h.height);var f={ignoreMouse:!0,ignoreAnimation:!0,ignoreDimensions:!0},d=this;return e().then((function(e){return e.fromString(l,t,f)}),(function(){return Promise.reject(new Error("Could not load canvg."))})).then((function(t){return t.render(f)})).then((function(){d.addImage(h.toDataURL("image/jpeg",1),r,n,i,o,c,u);}))};}(),E.API.putTotalPages=function(t){var e,r=0;parseInt(this.internal.getFont().id.substr(1),10)<15?(e=new RegExp(t,"g"),r=this.internal.getNumberOfPages()):(e=new RegExp(this.pdfEscape16(t,this.internal.getFont()),"g"),r=this.pdfEscape16(this.internal.getNumberOfPages()+"",this.internal.getFont()));for(var n=1;n<=this.internal.getNumberOfPages();n++)for(var i=0;i<this.internal.pages[n].length;i++)this.internal.pages[n][i]=this.internal.pages[n][i].replace(e,r);return this},E.API.viewerPreferences=function(e,r){var n;e=e||{},r=r||!1;var i,a,o,s={HideToolbar:{defaultValue:!1,value:!1,type:"boolean",explicitSet:!1,valueSet:[!0,!1],pdfVersion:1.3},HideMenubar:{defaultValue:!1,value:!1,type:"boolean",explicitSet:!1,valueSet:[!0,!1],pdfVersion:1.3},HideWindowUI:{defaultValue:!1,value:!1,type:"boolean",explicitSet:!1,valueSet:[!0,!1],pdfVersion:1.3},FitWindow:{defaultValue:!1,value:!1,type:"boolean",explicitSet:!1,valueSet:[!0,!1],pdfVersion:1.3},CenterWindow:{defaultValue:!1,value:!1,type:"boolean",explicitSet:!1,valueSet:[!0,!1],pdfVersion:1.3},DisplayDocTitle:{defaultValue:!1,value:!1,type:"boolean",explicitSet:!1,valueSet:[!0,!1],pdfVersion:1.4},NonFullScreenPageMode:{defaultValue:"UseNone",value:"UseNone",type:"name",explicitSet:!1,valueSet:["UseNone","UseOutlines","UseThumbs","UseOC"],pdfVersion:1.3},Direction:{defaultValue:"L2R",value:"L2R",type:"name",explicitSet:!1,valueSet:["L2R","R2L"],pdfVersion:1.3},ViewArea:{defaultValue:"CropBox",value:"CropBox",type:"name",explicitSet:!1,valueSet:["MediaBox","CropBox","TrimBox","BleedBox","ArtBox"],pdfVersion:1.4},ViewClip:{defaultValue:"CropBox",value:"CropBox",type:"name",explicitSet:!1,valueSet:["MediaBox","CropBox","TrimBox","BleedBox","ArtBox"],pdfVersion:1.4},PrintArea:{defaultValue:"CropBox",value:"CropBox",type:"name",explicitSet:!1,valueSet:["MediaBox","CropBox","TrimBox","BleedBox","ArtBox"],pdfVersion:1.4},PrintClip:{defaultValue:"CropBox",value:"CropBox",type:"name",explicitSet:!1,valueSet:["MediaBox","CropBox","TrimBox","BleedBox","ArtBox"],pdfVersion:1.4},PrintScaling:{defaultValue:"AppDefault",value:"AppDefault",type:"name",explicitSet:!1,valueSet:["AppDefault","None"],pdfVersion:1.6},Duplex:{defaultValue:"",value:"none",type:"name",explicitSet:!1,valueSet:["Simplex","DuplexFlipShortEdge","DuplexFlipLongEdge","none"],pdfVersion:1.7},PickTrayByPDFSize:{defaultValue:!1,value:!1,type:"boolean",explicitSet:!1,valueSet:[!0,!1],pdfVersion:1.7},PrintPageRange:{defaultValue:"",value:"",type:"array",explicitSet:!1,valueSet:null,pdfVersion:1.7},NumCopies:{defaultValue:1,value:1,type:"integer",explicitSet:!1,valueSet:null,pdfVersion:1.7}},c=Object.keys(s),u=[],h=0,l=0,f=0;function d(t,e){var r,n=!1;for(r=0;r<t.length;r+=1)t[r]===e&&(n=!0);return n}if(void 0===this.internal.viewerpreferences&&(this.internal.viewerpreferences={},this.internal.viewerpreferences.configuration=JSON.parse(JSON.stringify(s)),this.internal.viewerpreferences.isSubscribed=!1),n=this.internal.viewerpreferences.configuration,"reset"===e||!0===r){var p=c.length;for(f=0;f<p;f+=1)n[c[f]].value=n[c[f]].defaultValue,n[c[f]].explicitSet=!1;}if("object"===t(e))for(a in e)if(o=e[a],d(c,a)&&void 0!==o){if("boolean"===n[a].type&&"boolean"==typeof o)n[a].value=o;else if("name"===n[a].type&&d(n[a].valueSet,o))n[a].value=o;else if("integer"===n[a].type&&Number.isInteger(o))n[a].value=o;else if("array"===n[a].type){for(h=0;h<o.length;h+=1)if(i=!0,1===o[h].length&&"number"==typeof o[h][0])u.push(String(o[h]-1));else if(o[h].length>1){for(l=0;l<o[h].length;l+=1)"number"!=typeof o[h][l]&&(i=!1);!0===i&&u.push([o[h][0]-1,o[h][1]-1].join(" "));}n[a].value="["+u.join(" ")+"]";}else n[a].value=n[a].defaultValue;n[a].explicitSet=!0;}return !1===this.internal.viewerpreferences.isSubscribed&&(this.internal.events.subscribe("putCatalog",(function(){var t,e=[];for(t in n)!0===n[t].explicitSet&&("name"===n[t].type?e.push("/"+t+" /"+n[t].value):e.push("/"+t+" "+n[t].value));0!==e.length&&this.internal.write("/ViewerPreferences\n<<\n"+e.join("\n")+"\n>>");})),this.internal.viewerpreferences.isSubscribed=!0),this.internal.viewerpreferences.configuration=n,this},
1929
1986
  /** ====================================================================
1930
1987
  * @license
1931
1988
  * jsPDF XMP metadata plugin
@@ -2953,7 +3010,6 @@ const PdfDownload = class {
2953
3010
  constructor(hostRef) {
2954
3011
  index.registerInstance(this, hostRef);
2955
3012
  this.disabled = false;
2956
- this.enabledSizeValues = [];
2957
3013
  this.layerView = undefined;
2958
3014
  this._translations = undefined;
2959
3015
  }
@@ -3043,8 +3099,15 @@ const PdfDownload = class {
3043
3099
  _convertPopupToLabelSpec(popupInfo) {
3044
3100
  // Replace <br>, <br/> with |
3045
3101
  popupInfo = popupInfo.replace(/<br\s*\/?>/gi, "|");
3046
- // Remove remaining HTML tags and replace 0xA0 that popup uses for spaces
3047
- let labelSpec = popupInfo.replace(/<[\s.]*[^<>]*\/?>/gi, "").replace(/\xA0/gi, " ").split("|");
3102
+ // Remove remaining HTML tags, replace 0xA0 that popup uses for spaces, replace some char representations,
3103
+ // and split the label back into individual lines
3104
+ let labelSpec = popupInfo
3105
+ .replace(/<[\s.]*[^<>]*\/?>/gi, "")
3106
+ .replace(/\xA0/gi, " ")
3107
+ .replace(/&lt;/gi, "<")
3108
+ .replace(/&gt;/gi, ">")
3109
+ .replace(/&nbsp;/gi, " ")
3110
+ .split("|");
3048
3111
  // Trim lines and remove empties
3049
3112
  labelSpec = labelSpec.map(line => line.trim()).filter(line => line.length > 0);
3050
3113
  return labelSpec;
@@ -3158,6 +3221,19 @@ const RefineSelection = class {
3158
3221
  this.SketchViewModel = undefined;
3159
3222
  this._translations = undefined;
3160
3223
  }
3224
+ //--------------------------------------------------------------------------
3225
+ //
3226
+ // Watch handlers
3227
+ //
3228
+ //--------------------------------------------------------------------------
3229
+ /**
3230
+ * Called each time the addresseeLayer is changed.
3231
+ * Add a new clean refine set for the new addressee layer.
3232
+ */
3233
+ addresseeLayerWatchHandler() {
3234
+ const selectionSets = this.selectionSets.filter(ss => ss.workflowType !== interfaces$1.EWorkflowType.REFINE);
3235
+ this.selectionSets = this._initRefineSelectionSet(selectionSets);
3236
+ }
3161
3237
  /**
3162
3238
  * Handles changes to refine selection ids.
3163
3239
  *
@@ -3179,12 +3255,16 @@ const RefineSelection = class {
3179
3255
  */
3180
3256
  async componentWillLoad() {
3181
3257
  await this._getTranslations();
3258
+ const refineSet = this._getRefineSelectionSet(this.selectionSets);
3259
+ if (!refineSet) {
3260
+ this.selectionSets = this._initRefineSelectionSet(this.selectionSets);
3261
+ }
3182
3262
  }
3183
3263
  /**
3184
3264
  * Renders the component.
3185
3265
  */
3186
3266
  render() {
3187
- return (index.h(index.Host, null, index.h("div", { class: "padding-1" }, index.h("div", null, index.h("calcite-radio-group", { class: "w-100", onCalciteRadioGroupChange: (evt) => this._modeChanged(evt) }, index.h("calcite-radio-group-item", { checked: this._addEnabled, class: "w-50", onClick: () => this._setSelectionMode(interfaces$1.ESelectionMode.ADD), value: interfaces$1.ESelectionMode.ADD }, this._translations.add), index.h("calcite-radio-group-item", { checked: !this._addEnabled, class: "w-50", onClick: () => this._setSelectionMode(interfaces$1.ESelectionMode.REMOVE), value: interfaces$1.ESelectionMode.REMOVE }, this._translations.remove)), index.h("refine-selection-tools", { border: true, enabledLayerIds: this.enabledLayerIds, ids: publicNotificationUtils.getSelectionIds(this.selectionSets), layerViews: [this.addresseeLayer], mapView: this.mapView, mode: this._addEnabled ? interfaces$1.ESelectionMode.ADD : interfaces$1.ESelectionMode.REMOVE, ref: (el) => { this._refineTools = el; }, refineMode: interfaces$1.ERefineMode.ALL, useLayerPicker: false })), index.h("br", null), (index.h("calcite-list", { class: "list-border" }, this._getRefineSelectionSetList())))));
3267
+ return (index.h(index.Host, null, index.h("div", { class: "padding-1" }, index.h("div", null, index.h("calcite-radio-group", { class: "w-100", onCalciteRadioGroupChange: (evt) => this._modeChanged(evt) }, index.h("calcite-radio-group-item", { checked: this._addEnabled, class: "w-50", onClick: () => this._setSelectionMode(interfaces$1.ESelectionMode.ADD), value: interfaces$1.ESelectionMode.ADD }, this._translations.add), index.h("calcite-radio-group-item", { checked: !this._addEnabled, class: "w-50", onClick: () => this._setSelectionMode(interfaces$1.ESelectionMode.REMOVE), value: interfaces$1.ESelectionMode.REMOVE }, this._translations.remove)), index.h("refine-selection-tools", { border: true, enabledLayerIds: this.enabledLayerIds, ids: publicNotificationUtils.getSelectionIds(this.selectionSets), layerViews: [this.addresseeLayer], mapView: this.mapView, mode: this._addEnabled ? interfaces$1.ESelectionMode.ADD : interfaces$1.ESelectionMode.REMOVE, ref: (el) => { this._refineTools = el; }, refineMode: interfaces$1.ERefineMode.ALL, refineSelectionSet: this._getRefineSelectionSet(this.selectionSets), useLayerPicker: false })), index.h("br", null), (index.h("calcite-list", { class: "list-border" }, this._getRefineSelectionSetList())))));
3188
3268
  }
3189
3269
  //--------------------------------------------------------------------------
3190
3270
  //
@@ -3250,7 +3330,7 @@ const RefineSelection = class {
3250
3330
  if (removeIds.length > 0) {
3251
3331
  this.selectionSets = this.selectionSets.reduce((prev, cur) => {
3252
3332
  cur.selectedIds = cur.selectedIds.filter(id => removeIds.indexOf(id) < 0);
3253
- if (cur.selectedIds.length > 0) {
3333
+ if (cur.selectedIds.length > 0 || cur.workflowType === interfaces$1.EWorkflowType.REFINE) {
3254
3334
  prev.push(cur);
3255
3335
  }
3256
3336
  return prev;
@@ -3269,9 +3349,7 @@ const RefineSelection = class {
3269
3349
  */
3270
3350
  _updateRefineSelectionSet(addIds, removeIds) {
3271
3351
  const selectionSet = this._getRefineSelectionSet(this.selectionSets);
3272
- this.selectionSets = selectionSet ?
3273
- this._updateRefineIds(selectionSet, addIds, removeIds) :
3274
- this._addRefineSelectionSet(addIds, removeIds);
3352
+ this._updateRefineIds(selectionSet, addIds, removeIds);
3275
3353
  this.selectionSetsChanged.emit(this.selectionSets);
3276
3354
  }
3277
3355
  /**
@@ -3304,15 +3382,12 @@ const RefineSelection = class {
3304
3382
  /**
3305
3383
  * Add a new refine selection set
3306
3384
  *
3307
- * @param addIds any ids to add
3308
- * @param removeIds any ids to remove
3309
- *
3310
3385
  * @returns updated selection sets
3311
3386
  * @protected
3312
3387
  */
3313
- _addRefineSelectionSet(addIds, removeIds) {
3388
+ _initRefineSelectionSet(selectionSets) {
3314
3389
  return [
3315
- ...this.selectionSets,
3390
+ ...selectionSets,
3316
3391
  ({
3317
3392
  buffer: undefined,
3318
3393
  distance: 0,
@@ -3323,13 +3398,15 @@ const RefineSelection = class {
3323
3398
  layerView: this.addresseeLayer,
3324
3399
  refineSelectLayers: [],
3325
3400
  searchResult: undefined,
3326
- selectedIds: addIds,
3401
+ selectedIds: [],
3327
3402
  unit: "feet",
3328
3403
  workflowType: interfaces$1.EWorkflowType.REFINE,
3329
3404
  refineIds: {
3330
- addIds: addIds,
3331
- removeIds: removeIds
3332
- }
3405
+ addIds: [],
3406
+ removeIds: []
3407
+ },
3408
+ redoStack: [],
3409
+ undoStack: []
3333
3410
  })
3334
3411
  ];
3335
3412
  }
@@ -3370,6 +3447,9 @@ const RefineSelection = class {
3370
3447
  return null;
3371
3448
  }
3372
3449
  get el() { return index.getElement(this); }
3450
+ static get watchers() { return {
3451
+ "addresseeLayer": ["addresseeLayerWatchHandler"]
3452
+ }; }
3373
3453
  };
3374
3454
  RefineSelection.style = refineSelectionCss;
3375
3455
 
@@ -7,7 +7,7 @@
7
7
 
8
8
  Object.defineProperty(exports, '__esModule', { value: true });
9
9
 
10
- const calciteInputMessage_calciteNotice_mapSelectTools_pdfDownload_refineSelection_entry = require('./calcite-input-message.calcite-notice.map-select-tools.pdf-download.refine-selection-d5d5499f.js');
10
+ const calciteInputMessage_calciteNotice_mapSelectTools_pdfDownload_refineSelection_entry = require('./calcite-input-message.calcite-notice.map-select-tools.pdf-download.refine-selection-da276a1c.js');
11
11
  require('./index-c6979cbb.js');
12
12
  require('./dom-4a580af6.js');
13
13
  require('./resources-b56bce71.js');
@@ -18,7 +18,7 @@ require('./observers-5311faf8.js');
18
18
  require('./loadModules-918ff3e7.js');
19
19
  require('./locale-db1db902.js');
20
20
  require('./_commonjsHelpers-384729db.js');
21
- require('./mapViewUtils-24d1d859.js');
21
+ require('./mapViewUtils-d250b1ed.js');
22
22
  require('./interfaces-17c631bf.js');
23
23
  require('./publicNotificationStore-20e924f5.js');
24
24
  require('./index-763f87ac.js');
@@ -6,7 +6,7 @@
6
6
  'use strict';
7
7
 
8
8
  const _commonjsHelpers = require('./_commonjsHelpers-384729db.js');
9
- const calciteInputMessage_calciteNotice_mapSelectTools_pdfDownload_refineSelection_entry = require('./calcite-input-message.calcite-notice.map-select-tools.pdf-download.refine-selection-d5d5499f.js');
9
+ const calciteInputMessage_calciteNotice_mapSelectTools_pdfDownload_refineSelection_entry = require('./calcite-input-message.calcite-notice.map-select-tools.pdf-download.refine-selection-da276a1c.js');
10
10
  require('./index-c6979cbb.js');
11
11
  require('./dom-4a580af6.js');
12
12
  require('./resources-b56bce71.js');
@@ -16,7 +16,7 @@ require('./conditionalSlot-baada7a3.js');
16
16
  require('./observers-5311faf8.js');
17
17
  require('./loadModules-918ff3e7.js');
18
18
  require('./locale-db1db902.js');
19
- require('./mapViewUtils-24d1d859.js');
19
+ require('./mapViewUtils-d250b1ed.js');
20
20
  require('./interfaces-17c631bf.js');
21
21
  require('./publicNotificationStore-20e924f5.js');
22
22
  require('./index-763f87ac.js');
@@ -9,7 +9,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
9
9
 
10
10
  const index = require('./index-c6979cbb.js');
11
11
  const locale = require('./locale-db1db902.js');
12
- const mapViewUtils = require('./mapViewUtils-24d1d859.js');
12
+ const mapViewUtils = require('./mapViewUtils-d250b1ed.js');
13
13
  const csvUtils = require('./csvUtils-3a56c6d8.js');
14
14
  require('./_commonjsHelpers-384729db.js');
15
15
  require('./interfaces-17c631bf.js');