@esri/solutions-components 0.3.8 → 0.4.0
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.
- package/dist/cjs/buffer-tools_6.cjs.entry.js +37 -33
- package/dist/cjs/calcite-combobox_3.cjs.entry.js +1 -1
- 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
- package/dist/cjs/calcite-input-message_5.cjs.entry.js +2 -2
- package/dist/cjs/{index.es-43f519b3.js → index.es-176629d8.js} +2 -2
- package/dist/cjs/layer-table.cjs.entry.js +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/{mapViewUtils-24d1d859.js → mapViewUtils-d250b1ed.js} +11 -6
- package/dist/cjs/public-notification.cjs.entry.js +24 -11
- package/dist/cjs/solutions-components.cjs.js +1 -1
- package/dist/collection/components/buffer-tools/buffer-tools.js +22 -20
- package/dist/collection/components/map-select-tools/map-select-tools.js +78 -13
- package/dist/collection/components/pdf-download/pdf-download.js +9 -19
- package/dist/collection/components/public-notification/public-notification.js +44 -30
- package/dist/collection/components/refine-selection/refine-selection.js +34 -14
- package/dist/collection/components/refine-selection-tools/refine-selection-tools.js +47 -21
- package/dist/collection/demos/buffer-tools.html +1 -1
- package/dist/collection/demos/new-public-notification.html +1 -11
- package/dist/collection/utils/interfaces.ts +8 -0
- package/dist/collection/utils/mapViewUtils.js +11 -6
- package/dist/collection/utils/mapViewUtils.ts +11 -6
- package/dist/components/buffer-tools2.js +19 -16
- package/dist/components/map-layer-picker2.js +11 -6
- package/dist/components/map-select-tools2.js +72 -15
- package/dist/components/pdf-download2.js +9 -4
- package/dist/components/public-notification.js +23 -11
- package/dist/components/refine-selection-tools2.js +20 -18
- package/dist/components/refine-selection2.js +32 -15
- package/dist/esm/buffer-tools_6.entry.js +37 -33
- package/dist/esm/calcite-combobox_3.entry.js +1 -1
- 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
- package/dist/esm/calcite-input-message_5.entry.js +2 -2
- package/dist/esm/{index.es-4a2bee8f.js → index.es-54a6f3a3.js} +2 -2
- package/dist/esm/layer-table.entry.js +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/{mapViewUtils-c2fb048d.js → mapViewUtils-63e118f8.js} +11 -6
- package/dist/esm/public-notification.entry.js +24 -11
- package/dist/esm/solutions-components.js +1 -1
- package/dist/solutions-components/demos/buffer-tools.html +1 -1
- package/dist/solutions-components/demos/new-public-notification.html +1 -11
- package/dist/solutions-components/{p-21ae3f97.entry.js → p-117174e8.entry.js} +1 -1
- package/dist/solutions-components/{p-1b7c13f8.js → p-1e459361.js} +1 -1
- package/dist/solutions-components/{p-b4be1c30.entry.js → p-6d28f991.entry.js} +1 -1
- package/dist/solutions-components/{p-547cbe8a.js → p-80f5e33c.js} +12 -12
- package/dist/solutions-components/{p-c5f670fb.entry.js → p-8927862a.entry.js} +1 -1
- package/dist/solutions-components/{p-709c3f22.entry.js → p-8a0c0935.entry.js} +2 -2
- package/dist/solutions-components/p-cc2e20c8.js +36 -0
- package/dist/solutions-components/p-e69c58e5.entry.js +6 -0
- package/dist/solutions-components/solutions-components.esm.js +1 -1
- package/dist/solutions-components/utils/interfaces.ts +8 -0
- package/dist/solutions-components/utils/mapViewUtils.ts +11 -6
- package/dist/types/components/buffer-tools/buffer-tools.d.ts +2 -2
- package/dist/types/components/map-select-tools/map-select-tools.d.ts +19 -1
- package/dist/types/components/pdf-download/pdf-download.d.ts +0 -5
- package/dist/types/components/public-notification/public-notification.d.ts +11 -6
- package/dist/types/components/refine-selection/refine-selection.d.ts +6 -4
- package/dist/types/components/refine-selection-tools/refine-selection-tools.d.ts +6 -10
- package/dist/types/components.d.ts +24 -28
- package/dist/types/preact.d.ts +2 -1
- package/dist/types/utils/interfaces.d.ts +7 -0
- package/package.json +1 -1
- package/dist/solutions-components/p-b47d1a9a.entry.js +0 -6
- package/dist/solutions-components/p-cd7606eb.js +0 -36
|
@@ -39,8 +39,10 @@ import { d as defineCustomElement$1 } from './select.js';
|
|
|
39
39
|
async function getMapLayerHash(mapView) {
|
|
40
40
|
let layerHash = {};
|
|
41
41
|
await mapView.when(() => {
|
|
42
|
-
layerHash = mapView.map.
|
|
43
|
-
|
|
42
|
+
layerHash = mapView.map.allLayers.toArray().reduce((prev, cur) => {
|
|
43
|
+
if (cur.type === "feature") {
|
|
44
|
+
prev[cur.id] = cur.title;
|
|
45
|
+
}
|
|
44
46
|
return prev;
|
|
45
47
|
}, {});
|
|
46
48
|
});
|
|
@@ -57,9 +59,12 @@ async function getMapLayerHash(mapView) {
|
|
|
57
59
|
async function getMapLayerIds(mapView) {
|
|
58
60
|
let layerIds = [];
|
|
59
61
|
await mapView.when(() => {
|
|
60
|
-
layerIds = mapView.map.
|
|
61
|
-
|
|
62
|
-
|
|
62
|
+
layerIds = mapView.map.allLayers.toArray().reduce((prev, cur) => {
|
|
63
|
+
if (cur.type === "feature") {
|
|
64
|
+
prev.push(cur.id);
|
|
65
|
+
}
|
|
66
|
+
return prev;
|
|
67
|
+
}, []);
|
|
63
68
|
});
|
|
64
69
|
return layerIds;
|
|
65
70
|
}
|
|
@@ -88,7 +93,7 @@ async function getMapLayerView(mapView, id) {
|
|
|
88
93
|
async function getMapLayer(mapView, id) {
|
|
89
94
|
let layers = [];
|
|
90
95
|
await mapView.when(() => {
|
|
91
|
-
layers = mapView.map.
|
|
96
|
+
layers = mapView.map.allLayers.toArray().filter((l) => {
|
|
92
97
|
return l.id === id;
|
|
93
98
|
});
|
|
94
99
|
});
|
|
@@ -5,7 +5,7 @@
|
|
|
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 {
|
|
8
|
+
import { h as highlightFeatures, g as goToSelection, d as defineCustomElement$2 } from './map-layer-picker2.js';
|
|
9
9
|
import { c as queryObjectIds, d as getQueryGeoms } from './queryUtils.js';
|
|
10
10
|
import { c as EWorkflowType, e as ESelectionMode, f as ERefineMode, b as ESketchType } from './interfaces3.js';
|
|
11
11
|
import { s as state } from './publicNotificationStore.js';
|
|
@@ -47,6 +47,12 @@ const MapSelectTools = /*@__PURE__*/ proxyCustomElement(class extends HTMLElemen
|
|
|
47
47
|
* string: A label to help uniquely identify the selection set
|
|
48
48
|
*/
|
|
49
49
|
this._selectionLabel = "";
|
|
50
|
+
/**
|
|
51
|
+
* boolean: When false the geometries will be used for selection
|
|
52
|
+
* When true a list of OIDs will be used
|
|
53
|
+
* see https://github.com/Esri/solutions-components/issues/148
|
|
54
|
+
*/
|
|
55
|
+
this._skipGeomQuery = false;
|
|
50
56
|
this.bufferColor = [227, 139, 79, 0.8];
|
|
51
57
|
this.bufferOutlineColor = [255, 255, 255];
|
|
52
58
|
this.enabledLayerIds = [];
|
|
@@ -77,13 +83,33 @@ const MapSelectTools = /*@__PURE__*/ proxyCustomElement(class extends HTMLElemen
|
|
|
77
83
|
async watchGeometriesHandler(newValue, oldValue) {
|
|
78
84
|
if (newValue !== oldValue) {
|
|
79
85
|
if (newValue.length > 0) {
|
|
80
|
-
|
|
86
|
+
if (this._skipGeomQuery) {
|
|
87
|
+
void highlightFeatures(this._selectedIds, this.selectLayerView, this.mapView);
|
|
88
|
+
}
|
|
89
|
+
else {
|
|
90
|
+
return this._geomQuery(this.geometries);
|
|
91
|
+
}
|
|
81
92
|
}
|
|
82
93
|
else if (newValue.length === 0) {
|
|
83
94
|
return this._clearResults(true, true);
|
|
84
95
|
}
|
|
85
96
|
}
|
|
86
97
|
}
|
|
98
|
+
/**
|
|
99
|
+
* Called each time the searchConfiguration prop is changed.
|
|
100
|
+
*
|
|
101
|
+
* @returns Promise when complete
|
|
102
|
+
*/
|
|
103
|
+
async watchSearchConfigurationHandler(newValue, oldValue) {
|
|
104
|
+
console.log("watchSearchConfigurationHandler");
|
|
105
|
+
console.log("newValue");
|
|
106
|
+
console.log(newValue);
|
|
107
|
+
console.log("oldValue");
|
|
108
|
+
console.log(oldValue);
|
|
109
|
+
if (JSON.stringify(newValue) !== JSON.stringify(oldValue)) {
|
|
110
|
+
this._initSearchWidget();
|
|
111
|
+
}
|
|
112
|
+
}
|
|
87
113
|
/**
|
|
88
114
|
* Called each time the workflowType prop is changed and emits the workflowTypeChange event.
|
|
89
115
|
*
|
|
@@ -132,7 +158,8 @@ const MapSelectTools = /*@__PURE__*/ proxyCustomElement(class extends HTMLElemen
|
|
|
132
158
|
selectedIds: this._selectedIds,
|
|
133
159
|
layerView: this.selectLayerView,
|
|
134
160
|
geometries: this.geometries,
|
|
135
|
-
refineSelectLayers: this._refineTools.layerViews
|
|
161
|
+
refineSelectLayers: this._refineTools.layerViews,
|
|
162
|
+
skipGeomQuery: this._skipGeomQuery
|
|
136
163
|
};
|
|
137
164
|
}
|
|
138
165
|
/**
|
|
@@ -141,22 +168,28 @@ const MapSelectTools = /*@__PURE__*/ proxyCustomElement(class extends HTMLElemen
|
|
|
141
168
|
labelChange(event) {
|
|
142
169
|
this._selectionLabel = event.detail;
|
|
143
170
|
}
|
|
171
|
+
/**
|
|
172
|
+
* Handle changes to the search configuration
|
|
173
|
+
*/
|
|
174
|
+
searchConfigurationChangeChanged(event) {
|
|
175
|
+
this.searchConfiguration = event.detail;
|
|
176
|
+
}
|
|
144
177
|
/**
|
|
145
178
|
* Listen to changes in the sketch graphics
|
|
146
179
|
*
|
|
147
180
|
*/
|
|
148
181
|
sketchGraphicsChange(event) {
|
|
149
|
-
this._updateSelection(EWorkflowType.SKETCH, event.detail, this._selectionLabel || this._translations.sketch);
|
|
182
|
+
this._updateSelection(EWorkflowType.SKETCH, event.detail, this._selectionLabel || this._translations.sketch, true);
|
|
150
183
|
}
|
|
151
184
|
/**
|
|
152
185
|
* Listen to changes in the refine graphics
|
|
153
186
|
*
|
|
154
187
|
*/
|
|
155
188
|
refineSelectionGraphicsChange(event) {
|
|
156
|
-
const graphics = event.detail;
|
|
157
|
-
this.
|
|
158
|
-
// Using OIDs to avoid issue with points
|
|
189
|
+
const graphics = event.detail.graphics;
|
|
190
|
+
this._skipGeomQuery = event.detail.useOIDs;
|
|
159
191
|
const oids = Array.isArray(graphics) ? graphics.map(g => g.attributes[g.layer.objectIdField]) : [];
|
|
192
|
+
this._updateSelection(EWorkflowType.SELECT, graphics, this._selectionLabel || this._translations.select, !event.detail.useOIDs, oids);
|
|
160
193
|
return this._highlightFeatures(oids);
|
|
161
194
|
}
|
|
162
195
|
//--------------------------------------------------------------------------
|
|
@@ -189,7 +222,7 @@ const MapSelectTools = /*@__PURE__*/ proxyCustomElement(class extends HTMLElemen
|
|
|
189
222
|
const useSelectClass = this._layerSelectChecked && !searchEnabled ? " div-visible" : " div-not-visible";
|
|
190
223
|
const useDrawClass = !this._layerSelectChecked && !searchEnabled ? " div-visible" : " div-not-visible";
|
|
191
224
|
const showLayerChoiceClass = searchEnabled ? "div-not-visible" : "div-visible";
|
|
192
|
-
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: ((_a = this.selectionSet) === null || _a === void 0 ? void 0 : _a.workflowType) === EWorkflowType.SELECT, 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, 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: ((_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 })), h("slot", null)));
|
|
225
|
+
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: ((_a = this.selectionSet) === null || _a === void 0 ? void 0 : _a.workflowType) === EWorkflowType.SELECT, 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: ((_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 })), h("slot", null)));
|
|
193
226
|
}
|
|
194
227
|
//--------------------------------------------------------------------------
|
|
195
228
|
//
|
|
@@ -233,17 +266,19 @@ const MapSelectTools = /*@__PURE__*/ proxyCustomElement(class extends HTMLElemen
|
|
|
233
266
|
* @protected
|
|
234
267
|
*/
|
|
235
268
|
_initSelectionSet() {
|
|
236
|
-
var _a, _b, _c, _d, _e, _f, _g;
|
|
269
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j;
|
|
237
270
|
if (this.selectionSet) {
|
|
238
271
|
this._searchTerm = (_b = (_a = this.selectionSet) === null || _a === void 0 ? void 0 : _a.searchResult) === null || _b === void 0 ? void 0 : _b.name;
|
|
239
272
|
this._workflowType = (_c = this.selectionSet) === null || _c === void 0 ? void 0 : _c.workflowType;
|
|
240
273
|
this._searchResult = (_d = this.selectionSet) === null || _d === void 0 ? void 0 : _d.searchResult;
|
|
241
274
|
this._refineSelectLayers = (_e = this.selectionSet) === null || _e === void 0 ? void 0 : _e.refineSelectLayers;
|
|
275
|
+
this._selectedIds = (_f = this.selectionSet) === null || _f === void 0 ? void 0 : _f.selectedIds;
|
|
276
|
+
this._skipGeomQuery = (_g = this.selectionSet) === null || _g === void 0 ? void 0 : _g.skipGeomQuery;
|
|
242
277
|
this.geometries = [
|
|
243
|
-
...(
|
|
278
|
+
...((_h = this.selectionSet) === null || _h === void 0 ? void 0 : _h.geometries) || []
|
|
244
279
|
];
|
|
245
280
|
// reset selection label base
|
|
246
|
-
this._selectionLabel = ((
|
|
281
|
+
this._selectionLabel = ((_j = this.selectionSet) === null || _j === void 0 ? void 0 : _j.label) || this._getSelectionBaseLabel();
|
|
247
282
|
void goToSelection(this.selectionSet.selectedIds, this.selectionSet.layerView, this.mapView, false);
|
|
248
283
|
}
|
|
249
284
|
else {
|
|
@@ -268,8 +303,16 @@ const MapSelectTools = /*@__PURE__*/ proxyCustomElement(class extends HTMLElemen
|
|
|
268
303
|
* @protected
|
|
269
304
|
*/
|
|
270
305
|
_initSearchWidget() {
|
|
306
|
+
console.log("_initSearchWidget");
|
|
307
|
+
console.log("this.mapView");
|
|
308
|
+
console.log(this.mapView);
|
|
309
|
+
console.log("this._searchElement");
|
|
310
|
+
console.log(this._searchElement);
|
|
271
311
|
if (this.mapView && this._searchElement) {
|
|
312
|
+
console.log("this._getSearchConfig");
|
|
272
313
|
const searchConfiguration = this._getSearchConfig(this.searchConfiguration, this.mapView);
|
|
314
|
+
console.log("searchConfiguration");
|
|
315
|
+
console.log(searchConfiguration);
|
|
273
316
|
const searchOptions = Object.assign({ view: this.mapView, container: this._searchElement, searchTerm: this._searchTerm }, searchConfiguration);
|
|
274
317
|
this._searchWidget = new this.Search(searchOptions);
|
|
275
318
|
this._searchWidget.on("search-clear", () => {
|
|
@@ -280,9 +323,10 @@ const MapSelectTools = /*@__PURE__*/ proxyCustomElement(class extends HTMLElemen
|
|
|
280
323
|
void this._clearResults(false);
|
|
281
324
|
if (searchResults.result) {
|
|
282
325
|
this._searchResult = searchResults.result;
|
|
283
|
-
this._updateSelection(EWorkflowType.SEARCH, [searchResults.result.feature], (_a = searchResults === null || searchResults === void 0 ? void 0 : searchResults.result) === null || _a === void 0 ? void 0 : _a.name);
|
|
326
|
+
this._updateSelection(EWorkflowType.SEARCH, [searchResults.result.feature], (_a = searchResults === null || searchResults === void 0 ? void 0 : searchResults.result) === null || _a === void 0 ? void 0 : _a.name, true);
|
|
284
327
|
}
|
|
285
328
|
});
|
|
329
|
+
console.log("END search widget init");
|
|
286
330
|
}
|
|
287
331
|
}
|
|
288
332
|
/**
|
|
@@ -408,6 +452,7 @@ const MapSelectTools = /*@__PURE__*/ proxyCustomElement(class extends HTMLElemen
|
|
|
408
452
|
* @protected
|
|
409
453
|
*/
|
|
410
454
|
async _bufferComplete(evt) {
|
|
455
|
+
var _a, _b;
|
|
411
456
|
this._bufferGeometry = Array.isArray(evt.detail) ?
|
|
412
457
|
evt.detail[0] : evt.detail;
|
|
413
458
|
if (this._bufferGeometry) {
|
|
@@ -434,7 +479,13 @@ const MapSelectTools = /*@__PURE__*/ proxyCustomElement(class extends HTMLElemen
|
|
|
434
479
|
if (this._bufferGraphicsLayer) {
|
|
435
480
|
this._bufferGraphicsLayer.removeAll();
|
|
436
481
|
}
|
|
437
|
-
|
|
482
|
+
if (this._skipGeomQuery || ((_a = this.selectionSet) === null || _a === void 0 ? void 0 : _a.skipGeomQuery)) {
|
|
483
|
+
this._selectedIds = (_b = this.selectionSet) === null || _b === void 0 ? void 0 : _b.selectedIds;
|
|
484
|
+
void this._highlightFeatures(this._selectedIds);
|
|
485
|
+
}
|
|
486
|
+
else {
|
|
487
|
+
void this._geomQuery(this.geometries);
|
|
488
|
+
}
|
|
438
489
|
}
|
|
439
490
|
}
|
|
440
491
|
/**
|
|
@@ -482,10 +533,15 @@ const MapSelectTools = /*@__PURE__*/ proxyCustomElement(class extends HTMLElemen
|
|
|
482
533
|
* @param type worflow type
|
|
483
534
|
* @param graphics graphics to be used for selection
|
|
484
535
|
* @param label selection label
|
|
536
|
+
* @param useGeoms indicates if the geometries should be used directly for selections
|
|
537
|
+
* @param oids list of IDs to select when useGeoms is false
|
|
485
538
|
*
|
|
486
539
|
* @protected
|
|
487
540
|
*/
|
|
488
|
-
_updateSelection(type, graphics, label) {
|
|
541
|
+
_updateSelection(type, graphics, label, useGeoms, oids) {
|
|
542
|
+
this._selectedIds = oids ? oids : this._selectedIds;
|
|
543
|
+
// see https://github.com/Esri/solutions-components/issues/148
|
|
544
|
+
this._skipGeomQuery = !useGeoms;
|
|
489
545
|
this.geometries = Array.isArray(graphics) ? graphics.map(g => g.geometry) : this.geometries;
|
|
490
546
|
this._workflowType = type;
|
|
491
547
|
this._selectionLabel = label;
|
|
@@ -502,6 +558,7 @@ const MapSelectTools = /*@__PURE__*/ proxyCustomElement(class extends HTMLElemen
|
|
|
502
558
|
get el() { return this; }
|
|
503
559
|
static get watchers() { return {
|
|
504
560
|
"geometries": ["watchGeometriesHandler"],
|
|
561
|
+
"searchConfiguration": ["watchSearchConfigurationHandler"],
|
|
505
562
|
"_workflowType": ["workflowTypeHandler"]
|
|
506
563
|
}; }
|
|
507
564
|
static get style() { return mapSelectToolsCss; }
|
|
@@ -524,7 +581,7 @@ const MapSelectTools = /*@__PURE__*/ proxyCustomElement(class extends HTMLElemen
|
|
|
524
581
|
"_workflowType": [32],
|
|
525
582
|
"clearSelection": [64],
|
|
526
583
|
"getSelection": [64]
|
|
527
|
-
}, [[8, "labelChange", "labelChange"], [8, "sketchGraphicsChange", "sketchGraphicsChange"], [8, "refineSelectionGraphicsChange", "refineSelectionGraphicsChange"]]]);
|
|
584
|
+
}, [[8, "labelChange", "labelChange"], [8, "searchConfigurationChange", "searchConfigurationChangeChanged"], [8, "sketchGraphicsChange", "sketchGraphicsChange"], [8, "refineSelectionGraphicsChange", "refineSelectionGraphicsChange"]]]);
|
|
528
585
|
function defineCustomElement() {
|
|
529
586
|
if (typeof customElements === "undefined") {
|
|
530
587
|
return;
|
|
@@ -2262,7 +2262,6 @@ const PdfDownload = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
|
|
|
2262
2262
|
this.__registerHost();
|
|
2263
2263
|
this.__attachShadow();
|
|
2264
2264
|
this.disabled = false;
|
|
2265
|
-
this.enabledSizeValues = [];
|
|
2266
2265
|
this.layerView = undefined;
|
|
2267
2266
|
this._translations = undefined;
|
|
2268
2267
|
}
|
|
@@ -2352,8 +2351,15 @@ const PdfDownload = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
|
|
|
2352
2351
|
_convertPopupToLabelSpec(popupInfo) {
|
|
2353
2352
|
// Replace <br>, <br/> with |
|
|
2354
2353
|
popupInfo = popupInfo.replace(/<br\s*\/?>/gi, "|");
|
|
2355
|
-
// Remove remaining HTML tags
|
|
2356
|
-
|
|
2354
|
+
// Remove remaining HTML tags, replace 0xA0 that popup uses for spaces, replace some char representations,
|
|
2355
|
+
// and split the label back into individual lines
|
|
2356
|
+
let labelSpec = popupInfo
|
|
2357
|
+
.replace(/<[\s.]*[^<>]*\/?>/gi, "")
|
|
2358
|
+
.replace(/\xA0/gi, " ")
|
|
2359
|
+
.replace(/</gi, "<")
|
|
2360
|
+
.replace(/>/gi, ">")
|
|
2361
|
+
.replace(/ /gi, " ")
|
|
2362
|
+
.split("|");
|
|
2357
2363
|
// Trim lines and remove empties
|
|
2358
2364
|
labelSpec = labelSpec.map(line => line.trim()).filter(line => line.length > 0);
|
|
2359
2365
|
return labelSpec;
|
|
@@ -2444,7 +2450,6 @@ const PdfDownload = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
|
|
|
2444
2450
|
static get style() { return pdfDownloadCss; }
|
|
2445
2451
|
}, [1, "pdf-download", {
|
|
2446
2452
|
"disabled": [4],
|
|
2447
|
-
"enabledSizeValues": [16],
|
|
2448
2453
|
"layerView": [16],
|
|
2449
2454
|
"_translations": [32],
|
|
2450
2455
|
"downloadCSV": [64],
|
|
@@ -54,13 +54,13 @@ const PublicNotification$1 = /*@__PURE__*/ proxyCustomElement(class extends HTML
|
|
|
54
54
|
super();
|
|
55
55
|
this.__registerHost();
|
|
56
56
|
this.labelChange = createEvent(this, "labelChange", 7);
|
|
57
|
+
this.searchConfigurationChange = createEvent(this, "searchConfigurationChange", 7);
|
|
57
58
|
this.addresseeLayerIds = [];
|
|
58
59
|
this.bufferColor = [227, 139, 79, 0.8];
|
|
59
60
|
this.bufferOutlineColor = [255, 255, 255];
|
|
60
61
|
this.customLabelEnabled = undefined;
|
|
61
62
|
this.defaultBufferDistance = undefined;
|
|
62
63
|
this.defaultBufferUnit = undefined;
|
|
63
|
-
this.exportOptions = undefined;
|
|
64
64
|
this.featureEffect = undefined;
|
|
65
65
|
this.featureHighlightEnabled = undefined;
|
|
66
66
|
this.mapView = undefined;
|
|
@@ -93,6 +93,25 @@ const PublicNotification$1 = /*@__PURE__*/ proxyCustomElement(class extends HTML
|
|
|
93
93
|
this._popupsEnabled = v === null || v === void 0 ? void 0 : v.popup.autoOpenEnabled;
|
|
94
94
|
}
|
|
95
95
|
}
|
|
96
|
+
/**
|
|
97
|
+
* Called each time the searchConfiguration prop is changed.
|
|
98
|
+
*
|
|
99
|
+
* @returns Promise when complete
|
|
100
|
+
*/
|
|
101
|
+
async watchSearchConfigurationHandler(newValue, oldValue) {
|
|
102
|
+
//TODO adding this here to see if its any different than having in map-select-tools
|
|
103
|
+
// I would have thought that the prop would have made it through on the next render of map-select-tools
|
|
104
|
+
// however we are still seeing a broken search...need to understand why and don't see a clean way to debug in devext
|
|
105
|
+
console.log("PN watchSearchConfigurationHandler");
|
|
106
|
+
console.log("PN newValue");
|
|
107
|
+
console.log(newValue);
|
|
108
|
+
console.log("PN oldValue");
|
|
109
|
+
console.log(oldValue);
|
|
110
|
+
if (JSON.stringify(newValue) !== JSON.stringify(oldValue)) {
|
|
111
|
+
console.log("Emit event from parent");
|
|
112
|
+
this.searchConfigurationChange.emit(newValue);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
96
115
|
/**
|
|
97
116
|
* Called each time the selectionSets prop is changed.
|
|
98
117
|
*/
|
|
@@ -160,13 +179,8 @@ const PublicNotification$1 = /*@__PURE__*/ proxyCustomElement(class extends HTML
|
|
|
160
179
|
* Renders the component.
|
|
161
180
|
*/
|
|
162
181
|
render() {
|
|
163
|
-
var _a, _b, _c, _d, _e, _f;
|
|
164
182
|
const hasSelections = this._selectionSets.length > 0;
|
|
165
|
-
|
|
166
|
-
(_c = this.exportOptions) === null || _c === void 0 ? void 0 : _c.csvOptions.enabled : true;
|
|
167
|
-
const pdfEnabled = typeof ((_e = (_d = this.exportOptions) === null || _d === void 0 ? void 0 : _d.pdfOptions) === null || _e === void 0 ? void 0 : _e.enabled) === "boolean" ?
|
|
168
|
-
(_f = this.exportOptions) === null || _f === void 0 ? void 0 : _f.pdfOptions.enabled : true;
|
|
169
|
-
return (h(Host, null, h("calcite-shell", null, h("calcite-action-bar", { class: "border-bottom-1 action-bar-size", "expand-disabled": true, layout: "horizontal", slot: "header" }, this._getActionGroup("list-check", false, EPageType.LIST, this._translations.myLists), this.showRefineSelection ? this._getActionGroup("test-data", !hasSelections, EPageType.REFINE, this._translations.refineSelection) : undefined, pdfEnabled ? this._getActionGroup("file-pdf", !hasSelections, EPageType.PDF, this._translations.downloadPDF) : undefined, csvEnabled ? this._getActionGroup("file-csv", !hasSelections, EPageType.CSV, this._translations.downloadCSV) : undefined), this._getPage(this._pageType))));
|
|
183
|
+
return (h(Host, null, h("calcite-shell", null, h("calcite-action-bar", { class: "border-bottom-1 action-bar-size", "expand-disabled": true, layout: "horizontal", slot: "header" }, this._getActionGroup("list-check", false, EPageType.LIST, this._translations.myLists), this.showRefineSelection ? this._getActionGroup("test-data", !hasSelections, EPageType.REFINE, this._translations.refineSelection) : undefined, this._getActionGroup("file-pdf", !hasSelections, EPageType.PDF, this._translations.downloadPDF), this._getActionGroup("file-csv", !hasSelections, EPageType.CSV, this._translations.downloadCSV)), this._getPage(this._pageType))));
|
|
170
184
|
}
|
|
171
185
|
//--------------------------------------------------------------------------
|
|
172
186
|
//
|
|
@@ -370,10 +384,8 @@ const PublicNotification$1 = /*@__PURE__*/ proxyCustomElement(class extends HTML
|
|
|
370
384
|
* @protected
|
|
371
385
|
*/
|
|
372
386
|
_getDownloadPage(type) {
|
|
373
|
-
var _a, _b;
|
|
374
387
|
const isPdf = type === EExportType.PDF;
|
|
375
|
-
|
|
376
|
-
return (h("calcite-panel", null, h("div", null, h("div", { class: "padding-top-sides-1" }, h("calcite-label", { class: "font-bold" }, isPdf ? this._translations.pdfDownloads : this._translations.csvDownloads), 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", { layout: "inline" }, h("calcite-checkbox", { disabled: !this._downloadActive, ref: (el) => { this._removeDuplicates = el; } }), this._translations.removeDuplicate)), h("div", { class: isPdf && multiPdfOptions ? "" : "display-none" }, this._getLabel(this._translations.selectPDFLabelOption, false), h("div", { class: "padding-sides-1" }, h("pdf-download", { disabled: !this._downloadActive, enabledSizeValues: (_b = this.exportOptions) === null || _b === void 0 ? void 0 : _b.pdfOptions.enabledSizeValues, 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)))));
|
|
388
|
+
return (h("calcite-panel", null, h("div", null, h("div", { class: "padding-top-sides-1" }, h("calcite-label", { class: "font-bold" }, isPdf ? this._translations.pdfDownloads : this._translations.csvDownloads), 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", { layout: "inline" }, h("calcite-checkbox", { disabled: !this._downloadActive, ref: (el) => { this._removeDuplicates = 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)))));
|
|
377
389
|
}
|
|
378
390
|
/**
|
|
379
391
|
* Create the stacked navigation buttons for a page
|
|
@@ -720,6 +732,7 @@ const PublicNotification$1 = /*@__PURE__*/ proxyCustomElement(class extends HTML
|
|
|
720
732
|
get el() { return this; }
|
|
721
733
|
static get watchers() { return {
|
|
722
734
|
"mapView": ["mapViewWatchHandler"],
|
|
735
|
+
"searchConfiguration": ["watchSearchConfigurationHandler"],
|
|
723
736
|
"_selectionSets": ["selectionSetsWatchHandler"],
|
|
724
737
|
"_pageType": ["pageTypeWatchHandler"]
|
|
725
738
|
}; }
|
|
@@ -731,7 +744,6 @@ const PublicNotification$1 = /*@__PURE__*/ proxyCustomElement(class extends HTML
|
|
|
731
744
|
"customLabelEnabled": [4, "custom-label-enabled"],
|
|
732
745
|
"defaultBufferDistance": [2, "default-buffer-distance"],
|
|
733
746
|
"defaultBufferUnit": [1, "default-buffer-unit"],
|
|
734
|
-
"exportOptions": [16],
|
|
735
747
|
"featureEffect": [16],
|
|
736
748
|
"featureHighlightEnabled": [4, "feature-highlight-enabled"],
|
|
737
749
|
"mapView": [16],
|
|
@@ -32,14 +32,6 @@ const RefineSelectionTools = /*@__PURE__*/ proxyCustomElement(class extends HTML
|
|
|
32
32
|
* {<layer id>: Graphic[]}: Collection of graphics returned from queries to the layer
|
|
33
33
|
*/
|
|
34
34
|
this._featuresCollection = {};
|
|
35
|
-
/**
|
|
36
|
-
* IRefineOperation[]: Array to maintain the possible redo operations
|
|
37
|
-
*/
|
|
38
|
-
this._redoStack = [];
|
|
39
|
-
/**
|
|
40
|
-
* IRefineOperation[]: Array to maintain the possible undo operations
|
|
41
|
-
*/
|
|
42
|
-
this._undoStack = [];
|
|
43
35
|
this.active = false;
|
|
44
36
|
this.border = false;
|
|
45
37
|
this.enabledLayerIds = [];
|
|
@@ -50,6 +42,7 @@ const RefineSelectionTools = /*@__PURE__*/ proxyCustomElement(class extends HTML
|
|
|
50
42
|
this.mapView = undefined;
|
|
51
43
|
this.mode = undefined;
|
|
52
44
|
this.refineMode = undefined;
|
|
45
|
+
this.refineSelectionSet = undefined;
|
|
53
46
|
this.useLayerPicker = true;
|
|
54
47
|
this._selectEnabled = false;
|
|
55
48
|
this._selectionMode = undefined;
|
|
@@ -130,10 +123,11 @@ const RefineSelectionTools = /*@__PURE__*/ proxyCustomElement(class extends HTML
|
|
|
130
123
|
* Renders the component.
|
|
131
124
|
*/
|
|
132
125
|
render() {
|
|
126
|
+
var _a, _b;
|
|
133
127
|
const showLayerPickerClass = this.useLayerPicker ? "div-visible" : "div-not-visible";
|
|
134
128
|
const drawClass = this.border ? " border" : "";
|
|
135
129
|
const showUndoRedo = this.refineMode === ERefineMode.ALL ? "div-visible" : "div-not-visible";
|
|
136
|
-
return (h(Host, null, h("div", null, 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" }), h("div", { class: "margin-top-1" + drawClass }, h("div", { class: "esri-sketch esri-widget" }, h("div", { class: "esri-sketch__panel" }, h("div", { class: "esri-sketch__tool-section esri-sketch__section" }, h("calcite-action", { disabled: !this._selectEnabled, icon: "
|
|
130
|
+
return (h(Host, null, h("div", null, 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" }), h("div", { class: "margin-top-1" + drawClass }, h("div", { class: "esri-sketch esri-widget" }, h("div", { class: "esri-sketch__panel" }, h("div", { class: "esri-sketch__tool-section esri-sketch__section" }, h("calcite-action", { disabled: !this._selectEnabled, icon: "pin", onClick: () => this._setSelectionMode(ESelectionType.POINT), scale: "s", text: this._translations.select }), h("calcite-action", { disabled: !this._selectEnabled, icon: "line", onClick: () => this._setSelectionMode(ESelectionType.LINE), scale: "s", text: this._translations.selectLine }), h("calcite-action", { disabled: !this._selectEnabled, icon: "polygon", onClick: () => this._setSelectionMode(ESelectionType.POLY), scale: "s", text: this._translations.selectPolygon }), h("calcite-action", { disabled: !this._selectEnabled, icon: "rectangle", onClick: () => this._setSelectionMode(ESelectionType.RECT), scale: "s", text: this._translations.selectRectangle })), h("div", { class: showUndoRedo + " esri-sketch__tool-section esri-sketch__section" }, 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 }), 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 }))))))));
|
|
137
131
|
}
|
|
138
132
|
//--------------------------------------------------------------------------
|
|
139
133
|
//
|
|
@@ -245,7 +239,7 @@ const RefineSelectionTools = /*@__PURE__*/ proxyCustomElement(class extends HTML
|
|
|
245
239
|
return prev;
|
|
246
240
|
}, []);
|
|
247
241
|
}
|
|
248
|
-
this.refineSelectionGraphicsChange.emit(graphics);
|
|
242
|
+
this.refineSelectionGraphicsChange.emit({ graphics, useOIDs: false });
|
|
249
243
|
this._clear();
|
|
250
244
|
});
|
|
251
245
|
});
|
|
@@ -319,11 +313,14 @@ const RefineSelectionTools = /*@__PURE__*/ proxyCustomElement(class extends HTML
|
|
|
319
313
|
});
|
|
320
314
|
});
|
|
321
315
|
if (this.refineMode === ERefineMode.SUBSET) {
|
|
322
|
-
this.refineSelectionGraphicsChange.emit(
|
|
316
|
+
this.refineSelectionGraphicsChange.emit({
|
|
317
|
+
graphics,
|
|
318
|
+
useOIDs: this.layerViews[0].layer.title === this.layerView.layer.title
|
|
319
|
+
});
|
|
323
320
|
}
|
|
324
321
|
else {
|
|
325
322
|
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]; }) : [];
|
|
326
|
-
await this._updateIds(oids, this.mode, this.
|
|
323
|
+
await this._updateIds(oids, this.mode, this.refineSelectionSet.undoStack, this.mode);
|
|
327
324
|
}
|
|
328
325
|
this._clear();
|
|
329
326
|
});
|
|
@@ -366,12 +363,16 @@ const RefineSelectionTools = /*@__PURE__*/ proxyCustomElement(class extends HTML
|
|
|
366
363
|
if (mode === ESelectionMode.ADD) {
|
|
367
364
|
idUpdates.addIds = oids.filter(id => this.ids.indexOf(id) < 0);
|
|
368
365
|
this.ids = [...this.ids, ...idUpdates.addIds];
|
|
369
|
-
|
|
366
|
+
if (idUpdates.addIds.length > 0) {
|
|
367
|
+
operationStack.push({ mode: operationMode, ids: idUpdates.addIds });
|
|
368
|
+
}
|
|
370
369
|
}
|
|
371
370
|
else {
|
|
372
371
|
idUpdates.removeIds = oids.filter(id => this.ids.indexOf(id) > -1);
|
|
373
372
|
this.ids = this.ids.filter(id => idUpdates.removeIds.indexOf(id) < 0);
|
|
374
|
-
|
|
373
|
+
if (idUpdates.removeIds.length > 0) {
|
|
374
|
+
operationStack.push({ mode: operationMode, ids: idUpdates.removeIds });
|
|
375
|
+
}
|
|
375
376
|
}
|
|
376
377
|
await this._highlightFeatures(this.ids).then(() => {
|
|
377
378
|
this.refineSelectionIdsChange.emit(idUpdates);
|
|
@@ -385,8 +386,8 @@ const RefineSelectionTools = /*@__PURE__*/ proxyCustomElement(class extends HTML
|
|
|
385
386
|
* @protected
|
|
386
387
|
*/
|
|
387
388
|
_undo() {
|
|
388
|
-
const undoOp = this.
|
|
389
|
-
void this._updateIds(undoOp.ids, undoOp.mode === ESelectionMode.ADD ? ESelectionMode.REMOVE : ESelectionMode.ADD, this.
|
|
389
|
+
const undoOp = this.refineSelectionSet.undoStack.pop();
|
|
390
|
+
void this._updateIds(undoOp.ids, undoOp.mode === ESelectionMode.ADD ? ESelectionMode.REMOVE : ESelectionMode.ADD, this.refineSelectionSet.redoStack, undoOp.mode);
|
|
390
391
|
}
|
|
391
392
|
/**
|
|
392
393
|
* Redo the most current ADD or REMOVE operation
|
|
@@ -396,8 +397,8 @@ const RefineSelectionTools = /*@__PURE__*/ proxyCustomElement(class extends HTML
|
|
|
396
397
|
* @protected
|
|
397
398
|
*/
|
|
398
399
|
_redo() {
|
|
399
|
-
const redoOp = this.
|
|
400
|
-
void this._updateIds(redoOp.ids, redoOp.mode, this.
|
|
400
|
+
const redoOp = this.refineSelectionSet.redoStack.pop();
|
|
401
|
+
void this._updateIds(redoOp.ids, redoOp.mode, this.refineSelectionSet.undoStack, redoOp.mode);
|
|
401
402
|
}
|
|
402
403
|
/**
|
|
403
404
|
* Fetches the component's translations
|
|
@@ -424,6 +425,7 @@ const RefineSelectionTools = /*@__PURE__*/ proxyCustomElement(class extends HTML
|
|
|
424
425
|
"mapView": [16],
|
|
425
426
|
"mode": [1],
|
|
426
427
|
"refineMode": [1, "refine-mode"],
|
|
428
|
+
"refineSelectionSet": [1040],
|
|
427
429
|
"useLayerPicker": [4, "use-layer-picker"],
|
|
428
430
|
"_selectEnabled": [32],
|
|
429
431
|
"_selectionMode": [32],
|
|
@@ -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 {
|
|
7
|
+
import { c as EWorkflowType, e as ESelectionMode, f 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';
|
|
@@ -72,6 +72,19 @@ const RefineSelection = /*@__PURE__*/ proxyCustomElement(class extends HTMLEleme
|
|
|
72
72
|
this.SketchViewModel = undefined;
|
|
73
73
|
this._translations = undefined;
|
|
74
74
|
}
|
|
75
|
+
//--------------------------------------------------------------------------
|
|
76
|
+
//
|
|
77
|
+
// Watch handlers
|
|
78
|
+
//
|
|
79
|
+
//--------------------------------------------------------------------------
|
|
80
|
+
/**
|
|
81
|
+
* Called each time the addresseeLayer is changed.
|
|
82
|
+
* Add a new clean refine set for the new addressee layer.
|
|
83
|
+
*/
|
|
84
|
+
addresseeLayerWatchHandler() {
|
|
85
|
+
const selectionSets = this.selectionSets.filter(ss => ss.workflowType !== EWorkflowType.REFINE);
|
|
86
|
+
this.selectionSets = this._initRefineSelectionSet(selectionSets);
|
|
87
|
+
}
|
|
75
88
|
/**
|
|
76
89
|
* Handles changes to refine selection ids.
|
|
77
90
|
*
|
|
@@ -93,12 +106,16 @@ const RefineSelection = /*@__PURE__*/ proxyCustomElement(class extends HTMLEleme
|
|
|
93
106
|
*/
|
|
94
107
|
async componentWillLoad() {
|
|
95
108
|
await this._getTranslations();
|
|
109
|
+
const refineSet = this._getRefineSelectionSet(this.selectionSets);
|
|
110
|
+
if (!refineSet) {
|
|
111
|
+
this.selectionSets = this._initRefineSelectionSet(this.selectionSets);
|
|
112
|
+
}
|
|
96
113
|
}
|
|
97
114
|
/**
|
|
98
115
|
* Renders the component.
|
|
99
116
|
*/
|
|
100
117
|
render() {
|
|
101
|
-
return (h(Host, null, h("div", { class: "padding-1" }, h("div", null, h("calcite-radio-group", { class: "w-100", onCalciteRadioGroupChange: (evt) => this._modeChanged(evt) }, h("calcite-radio-group-item", { checked: this._addEnabled, class: "w-50", onClick: () => this._setSelectionMode(ESelectionMode.ADD), value: ESelectionMode.ADD }, this._translations.add), h("calcite-radio-group-item", { checked: !this._addEnabled, class: "w-50", onClick: () => this._setSelectionMode(ESelectionMode.REMOVE), value: ESelectionMode.REMOVE }, this._translations.remove)), h("refine-selection-tools", { border: true, enabledLayerIds: this.enabledLayerIds, ids: getSelectionIds(this.selectionSets), layerViews: [this.addresseeLayer], mapView: this.mapView, mode: this._addEnabled ? ESelectionMode.ADD : ESelectionMode.REMOVE, ref: (el) => { this._refineTools = el; }, refineMode: ERefineMode.ALL, useLayerPicker: false })), h("br", null), (h("calcite-list", { class: "list-border" }, this._getRefineSelectionSetList())))));
|
|
118
|
+
return (h(Host, null, h("div", { class: "padding-1" }, h("div", null, h("calcite-radio-group", { class: "w-100", onCalciteRadioGroupChange: (evt) => this._modeChanged(evt) }, h("calcite-radio-group-item", { checked: this._addEnabled, class: "w-50", onClick: () => this._setSelectionMode(ESelectionMode.ADD), value: ESelectionMode.ADD }, this._translations.add), h("calcite-radio-group-item", { checked: !this._addEnabled, class: "w-50", onClick: () => this._setSelectionMode(ESelectionMode.REMOVE), value: ESelectionMode.REMOVE }, this._translations.remove)), h("refine-selection-tools", { border: true, enabledLayerIds: this.enabledLayerIds, ids: getSelectionIds(this.selectionSets), layerViews: [this.addresseeLayer], mapView: this.mapView, mode: this._addEnabled ? ESelectionMode.ADD : ESelectionMode.REMOVE, ref: (el) => { this._refineTools = el; }, refineMode: ERefineMode.ALL, refineSelectionSet: this._getRefineSelectionSet(this.selectionSets), useLayerPicker: false })), h("br", null), (h("calcite-list", { class: "list-border" }, this._getRefineSelectionSetList())))));
|
|
102
119
|
}
|
|
103
120
|
//--------------------------------------------------------------------------
|
|
104
121
|
//
|
|
@@ -164,7 +181,7 @@ const RefineSelection = /*@__PURE__*/ proxyCustomElement(class extends HTMLEleme
|
|
|
164
181
|
if (removeIds.length > 0) {
|
|
165
182
|
this.selectionSets = this.selectionSets.reduce((prev, cur) => {
|
|
166
183
|
cur.selectedIds = cur.selectedIds.filter(id => removeIds.indexOf(id) < 0);
|
|
167
|
-
if (cur.selectedIds.length > 0) {
|
|
184
|
+
if (cur.selectedIds.length > 0 || cur.workflowType === EWorkflowType.REFINE) {
|
|
168
185
|
prev.push(cur);
|
|
169
186
|
}
|
|
170
187
|
return prev;
|
|
@@ -183,9 +200,7 @@ const RefineSelection = /*@__PURE__*/ proxyCustomElement(class extends HTMLEleme
|
|
|
183
200
|
*/
|
|
184
201
|
_updateRefineSelectionSet(addIds, removeIds) {
|
|
185
202
|
const selectionSet = this._getRefineSelectionSet(this.selectionSets);
|
|
186
|
-
this.
|
|
187
|
-
this._updateRefineIds(selectionSet, addIds, removeIds) :
|
|
188
|
-
this._addRefineSelectionSet(addIds, removeIds);
|
|
203
|
+
this._updateRefineIds(selectionSet, addIds, removeIds);
|
|
189
204
|
this.selectionSetsChanged.emit(this.selectionSets);
|
|
190
205
|
}
|
|
191
206
|
/**
|
|
@@ -218,15 +233,12 @@ const RefineSelection = /*@__PURE__*/ proxyCustomElement(class extends HTMLEleme
|
|
|
218
233
|
/**
|
|
219
234
|
* Add a new refine selection set
|
|
220
235
|
*
|
|
221
|
-
* @param addIds any ids to add
|
|
222
|
-
* @param removeIds any ids to remove
|
|
223
|
-
*
|
|
224
236
|
* @returns updated selection sets
|
|
225
237
|
* @protected
|
|
226
238
|
*/
|
|
227
|
-
|
|
239
|
+
_initRefineSelectionSet(selectionSets) {
|
|
228
240
|
return [
|
|
229
|
-
...
|
|
241
|
+
...selectionSets,
|
|
230
242
|
({
|
|
231
243
|
buffer: undefined,
|
|
232
244
|
distance: 0,
|
|
@@ -237,13 +249,15 @@ const RefineSelection = /*@__PURE__*/ proxyCustomElement(class extends HTMLEleme
|
|
|
237
249
|
layerView: this.addresseeLayer,
|
|
238
250
|
refineSelectLayers: [],
|
|
239
251
|
searchResult: undefined,
|
|
240
|
-
selectedIds:
|
|
252
|
+
selectedIds: [],
|
|
241
253
|
unit: "feet",
|
|
242
254
|
workflowType: EWorkflowType.REFINE,
|
|
243
255
|
refineIds: {
|
|
244
|
-
addIds:
|
|
245
|
-
removeIds:
|
|
246
|
-
}
|
|
256
|
+
addIds: [],
|
|
257
|
+
removeIds: []
|
|
258
|
+
},
|
|
259
|
+
redoStack: [],
|
|
260
|
+
undoStack: []
|
|
247
261
|
})
|
|
248
262
|
];
|
|
249
263
|
}
|
|
@@ -284,6 +298,9 @@ const RefineSelection = /*@__PURE__*/ proxyCustomElement(class extends HTMLEleme
|
|
|
284
298
|
return null;
|
|
285
299
|
}
|
|
286
300
|
get el() { return this; }
|
|
301
|
+
static get watchers() { return {
|
|
302
|
+
"addresseeLayer": ["addresseeLayerWatchHandler"]
|
|
303
|
+
}; }
|
|
287
304
|
static get style() { return refineSelectionCss; }
|
|
288
305
|
}, [0, "refine-selection", {
|
|
289
306
|
"addresseeLayer": [16],
|