@esri/solutions-components 0.8.27 → 0.8.29
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/basemap-gallery_7.cjs.entry.js +10 -1
- package/dist/cjs/calcite-alert_4.cjs.entry.js +3 -3
- package/dist/cjs/calcite-dropdown-group_2.cjs.entry.js +1 -1
- package/dist/cjs/calcite-flow_6.cjs.entry.js +1 -1
- package/dist/cjs/card-manager_3.cjs.entry.js +25 -22
- package/dist/cjs/crowdsource-manager.cjs.entry.js +1 -1
- package/dist/cjs/crowdsource-reporter.cjs.entry.js +1 -1
- package/dist/cjs/{downloadUtils-5349717a.js → downloadUtils-83bf79ba.js} +2 -2
- package/dist/cjs/feature-list.cjs.entry.js +3 -3
- package/dist/cjs/{index.es-aa69b58b.js → index.es-4e523f8b.js} +2 -2
- package/dist/cjs/map-select-tools_3.cjs.entry.js +5 -5
- package/dist/cjs/{mapViewUtils-6e46ba33.js → mapViewUtils-911698e5.js} +31 -17
- package/dist/cjs/{popupUtils-3e65296c.js → popupUtils-e3fa775b.js} +1 -1
- package/dist/cjs/public-notification.cjs.entry.js +2 -2
- package/dist/collection/components/floor-filter/floor-filter.js +10 -1
- package/dist/collection/components/layer-table/layer-table.js +24 -21
- package/dist/collection/components/map-select-tools/map-select-tools.js +2 -2
- package/dist/collection/components/refine-selection/refine-selection.js +1 -1
- package/dist/collection/utils/queryUtils.js +30 -0
- package/dist/collection/utils/queryUtils.ts +41 -0
- package/dist/components/floor-filter2.js +10 -1
- package/dist/components/layer-table2.js +24 -21
- package/dist/components/map-select-tools2.js +2 -2
- package/dist/components/queryUtils.js +31 -17
- package/dist/components/refine-selection2.js +1 -1
- package/dist/esm/basemap-gallery_7.entry.js +10 -1
- package/dist/esm/calcite-alert_4.entry.js +3 -3
- package/dist/esm/calcite-dropdown-group_2.entry.js +1 -1
- package/dist/esm/calcite-flow_6.entry.js +1 -1
- package/dist/esm/card-manager_3.entry.js +25 -22
- package/dist/esm/crowdsource-manager.entry.js +1 -1
- package/dist/esm/crowdsource-reporter.entry.js +1 -1
- package/dist/esm/{downloadUtils-5fa0d437.js → downloadUtils-571a502d.js} +2 -2
- package/dist/esm/feature-list.entry.js +3 -3
- package/dist/esm/{index.es-57c15c9b.js → index.es-2f9f04c5.js} +2 -2
- package/dist/esm/map-select-tools_3.entry.js +5 -5
- package/dist/esm/{mapViewUtils-4618ddb8.js → mapViewUtils-b8deb4ae.js} +31 -17
- package/dist/esm/{popupUtils-650b6bba.js → popupUtils-17193415.js} +1 -1
- package/dist/esm/public-notification.entry.js +2 -2
- package/dist/solutions-components/{p-81747268.entry.js → p-061da95a.entry.js} +1 -1
- package/dist/solutions-components/{p-e1662e32.entry.js → p-16fb8296.entry.js} +1 -1
- package/dist/solutions-components/p-1bdf0ba0.entry.js +6 -0
- package/dist/solutions-components/{p-a1037b19.js → p-2e23ac2c.js} +1 -1
- package/dist/solutions-components/{p-66722851.entry.js → p-2f7bfd8d.entry.js} +1 -1
- package/dist/solutions-components/p-327577d1.entry.js +6 -0
- package/dist/solutions-components/{p-bfdabb9d.entry.js → p-51d5532f.entry.js} +1 -1
- package/dist/solutions-components/{p-6f69de4d.js → p-52dba022.js} +2 -2
- package/dist/solutions-components/{p-24bf45b7.js → p-57eeed77.js} +1 -1
- package/dist/solutions-components/p-5aaa05ef.js +36 -0
- package/dist/solutions-components/{p-05b3a5d9.entry.js → p-61bf98bc.entry.js} +1 -1
- package/dist/solutions-components/{p-296375d3.entry.js → p-bb90a138.entry.js} +1 -1
- package/dist/solutions-components/p-bda54b12.entry.js +6 -0
- package/dist/solutions-components/{p-cd694107.entry.js → p-c21a6940.entry.js} +1 -1
- package/dist/solutions-components/solutions-components.esm.js +1 -1
- package/dist/solutions-components/utils/queryUtils.ts +41 -0
- package/dist/types/utils/queryUtils.d.ts +16 -0
- package/package.json +1 -1
- package/dist/solutions-components/p-1f4b174f.entry.js +0 -6
- package/dist/solutions-components/p-2a6db6e8.entry.js +0 -6
- package/dist/solutions-components/p-583e5dd0.js +0 -36
- package/dist/solutions-components/p-b656b73e.entry.js +0 -6
|
@@ -22,7 +22,7 @@ import { Host, h } from "@stencil/core";
|
|
|
22
22
|
import { loadModules } from "../../utils/loadModules";
|
|
23
23
|
import { getLocaleComponentStrings } from "../../utils/locale";
|
|
24
24
|
import { getFeatureLayerView, getLayerOrTable, goToSelection } from "../../utils/mapViewUtils";
|
|
25
|
-
import { queryAllIds,
|
|
25
|
+
import { queryAllIds, queryAllOidsWithQueryFeatures, queryFeaturesByGlobalID } from "../../utils/queryUtils";
|
|
26
26
|
import * as downloadUtils from "../../utils/downloadUtils";
|
|
27
27
|
import "@esri/instant-apps-components/dist/components/instant-apps-social-share";
|
|
28
28
|
export class LayerTable {
|
|
@@ -172,6 +172,7 @@ export class LayerTable {
|
|
|
172
172
|
this._initLayerExpressions();
|
|
173
173
|
this._initToolInfos();
|
|
174
174
|
this._updateToolbar();
|
|
175
|
+
console.log("mapInfoWatchHandler");
|
|
175
176
|
await this._sortTable();
|
|
176
177
|
}
|
|
177
178
|
/**
|
|
@@ -215,6 +216,10 @@ export class LayerTable {
|
|
|
215
216
|
if (this._selectAllActive && this.selectedIds.length !== this._allIds.length) {
|
|
216
217
|
this._selectAllActive = false;
|
|
217
218
|
}
|
|
219
|
+
if (this.selectedIds.length > 0) {
|
|
220
|
+
this._table.rowHighlightIds.removeAll();
|
|
221
|
+
this._table.rowHighlightIds.add(this.selectedIds[0]);
|
|
222
|
+
}
|
|
218
223
|
}
|
|
219
224
|
/**
|
|
220
225
|
* Scroll and zoom to the selected feature from the Features widget.
|
|
@@ -314,7 +319,7 @@ export class LayerTable {
|
|
|
314
319
|
const selected = this.selectedIds.length.toString();
|
|
315
320
|
const tableHeightClass = this.isMobile ? "height-full" : "height-full-adjusted";
|
|
316
321
|
this._validateActiveActions();
|
|
317
|
-
return (h(Host, { key: '
|
|
322
|
+
return (h(Host, { key: '928286a8e4d1159b56b2aa4384f0d6eed38c9e76' }, h("calcite-shell", { key: '7c9b98056ee867df54ebfd31fee6f046f5152f64' }, this._getTableControlRow("header"), h("div", { key: 'b1a9a9cca100c7bef335afd5b6c7d7384ca7536c', class: `width-full ${tableHeightClass}` }, h("calcite-panel", { key: 'ceeead9900f43c94f46c8c94698ae17f3ae558b7', class: "height-full width-full" }, h("calcite-loader", { key: '7bf3c9ba21daa27dd387ba5413b6f6e982e1f10d', class: loadingClass, label: this._translations.fetchingData, scale: "l" }), h("div", { key: '7d0440047453a45fe1688ad373ab2463fe7479ba', class: tableNodeClass, ref: this.onTableNodeCreate })), !this.isMobile ? (h("div", { class: "bottom-left text-color height-19" }, this._translations.recordsSelected
|
|
318
323
|
.replace("{{total}}", total)
|
|
319
324
|
.replace("{{selected}}", selected))) : undefined)), this._filterModal()));
|
|
320
325
|
}
|
|
@@ -915,43 +920,38 @@ export class LayerTable {
|
|
|
915
920
|
else if (this._shiftIsPressed) {
|
|
916
921
|
this._skipOnChange = true;
|
|
917
922
|
this._previousCurrentId = this._currentId;
|
|
918
|
-
this._currentId = [...
|
|
919
|
-
if (
|
|
923
|
+
this._currentId = [...ids].reverse()[0];
|
|
924
|
+
if (ids.length === 1) {
|
|
925
|
+
this._skipOnChange = false;
|
|
926
|
+
}
|
|
927
|
+
else if (this._previousCurrentId !== this._currentId) {
|
|
920
928
|
// query the layer based on current sort and filters then grab between the current id and previous id
|
|
921
929
|
const orderBy = this._table.activeSortOrders.reduce((prev, cur) => {
|
|
922
930
|
prev.push(`${cur.fieldName} ${cur.direction}`);
|
|
923
931
|
return prev;
|
|
924
932
|
}, []);
|
|
925
|
-
const oids = await
|
|
933
|
+
const oids = await queryAllOidsWithQueryFeatures(0, this._layer, [], orderBy);
|
|
926
934
|
let isBetween = false;
|
|
927
935
|
const _start = this._table.viewModel.getObjectIdIndex(this._previousCurrentId);
|
|
928
936
|
const _end = this._table.viewModel.getObjectIdIndex(this._currentId);
|
|
929
937
|
const startIndex = _start < _end ? _start : _end;
|
|
930
938
|
const endIndex = _end > _start ? _end : _start;
|
|
931
939
|
this._skipOnChange = startIndex + 1 !== endIndex;
|
|
932
|
-
const
|
|
940
|
+
const idsInRange = oids.reduce((prev, cur) => {
|
|
933
941
|
const id = cur;
|
|
934
|
-
const index = this._table.viewModel.getObjectIdIndex(id);
|
|
935
942
|
if ((id === this._currentId || id === this._previousCurrentId)) {
|
|
936
943
|
isBetween = !isBetween;
|
|
937
944
|
if (prev.indexOf(id) < 0) {
|
|
938
945
|
prev.push(id);
|
|
939
946
|
}
|
|
940
947
|
}
|
|
941
|
-
|
|
942
|
-
// Index of -1 will occur for features between the start and and oid if
|
|
943
|
-
// you select a row then scroll faster than the FeatureTable loads the data to select the next id
|
|
944
|
-
if (isBetween && prev.indexOf(id) < 0) {
|
|
945
|
-
prev.push(id);
|
|
946
|
-
}
|
|
947
|
-
// Also add index based check.
|
|
948
|
-
// In some cases the FeatureTable and Layer query will have differences in how null/undefined field values are sorted
|
|
949
|
-
if ((this.selectedIds.indexOf(id) > -1 || (index >= startIndex && index <= endIndex)) && prev.indexOf(id) < 0 && index > -1) {
|
|
948
|
+
else if (isBetween && prev.indexOf(id) < 0) {
|
|
950
949
|
prev.push(id);
|
|
951
950
|
}
|
|
952
951
|
return prev;
|
|
953
952
|
}, []);
|
|
954
|
-
|
|
953
|
+
const selectedIds = _start < _end ? idsInRange.reverse() : idsInRange;
|
|
954
|
+
this.selectedIds = [...new Set([...selectedIds, ...this.selectedIds])];
|
|
955
955
|
this._table.highlightIds.addMany(this.selectedIds.filter(i => ids.indexOf(i) < 0));
|
|
956
956
|
}
|
|
957
957
|
}
|
|
@@ -1014,6 +1014,7 @@ export class LayerTable {
|
|
|
1014
1014
|
this._table.editingEnabled = this._editEnabled && this.enableInlineEdit;
|
|
1015
1015
|
await this.reactiveUtils.once(() => this._table.state === "loaded")
|
|
1016
1016
|
.then(async () => {
|
|
1017
|
+
console.log("this._table.state === 'loaded'");
|
|
1017
1018
|
this._table.highlightIds.removeAll();
|
|
1018
1019
|
this._table.clearSelectionFilter();
|
|
1019
1020
|
this._resetColumnTemplates();
|
|
@@ -1117,18 +1118,18 @@ export class LayerTable {
|
|
|
1117
1118
|
* Sort the table with the configured field and the sort order
|
|
1118
1119
|
*/
|
|
1119
1120
|
async _sortTable() {
|
|
1120
|
-
var _a, _b, _c, _d, _e;
|
|
1121
|
+
var _a, _b, _c, _d, _e, _f;
|
|
1121
1122
|
//By default sort the table using objectIdField and in descending order
|
|
1122
1123
|
let sortField = (_a = this._layer) === null || _a === void 0 ? void 0 : _a.objectIdField;
|
|
1123
1124
|
let sortOrder = 'desc';
|
|
1124
1125
|
let configuredLayer;
|
|
1125
1126
|
//get the sortField and sortOrder from the configuration
|
|
1126
|
-
if (((_d = (_c = (_b = this.mapInfo) === null || _b === void 0 ? void 0 : _b.layerOptions) === null || _c === void 0 ? void 0 : _c.layers) === null || _d === void 0 ? void 0 : _d.length) > 0) {
|
|
1127
|
+
if (((_d = (_c = (_b = this.mapInfo) === null || _b === void 0 ? void 0 : _b.layerOptions) === null || _c === void 0 ? void 0 : _c.layers) === null || _d === void 0 ? void 0 : _d.length) > 0 && ((_e = this._layer) === null || _e === void 0 ? void 0 : _e.id)) {
|
|
1127
1128
|
configuredLayer = this.mapInfo.layerOptions.layers.filter((layer) => layer.id === this._layer.id);
|
|
1128
1129
|
if (configuredLayer && configuredLayer.length > 0) {
|
|
1129
1130
|
configuredLayer = configuredLayer[0];
|
|
1130
1131
|
//if sort field is defined and sortField is available in the fields then use it
|
|
1131
|
-
if (configuredLayer.sortField && ((
|
|
1132
|
+
if (configuredLayer.sortField && ((_f = configuredLayer.fields) === null || _f === void 0 ? void 0 : _f.includes(configuredLayer.sortField))) {
|
|
1132
1133
|
sortField = configuredLayer.sortField;
|
|
1133
1134
|
}
|
|
1134
1135
|
//use sort order if configured
|
|
@@ -1138,6 +1139,7 @@ export class LayerTable {
|
|
|
1138
1139
|
if (this._table && this._layer) {
|
|
1139
1140
|
await this._table.when();
|
|
1140
1141
|
await this._layer.when(() => {
|
|
1142
|
+
console.log("sort on this._layer.when");
|
|
1141
1143
|
this._table.sortColumn(sortField, sortOrder);
|
|
1142
1144
|
});
|
|
1143
1145
|
}
|
|
@@ -1291,9 +1293,10 @@ export class LayerTable {
|
|
|
1291
1293
|
* Clears the selected indexes
|
|
1292
1294
|
*/
|
|
1293
1295
|
_clearSelection() {
|
|
1294
|
-
var _a;
|
|
1296
|
+
var _a, _b;
|
|
1295
1297
|
this.selectedIds = [];
|
|
1296
1298
|
(_a = this._table) === null || _a === void 0 ? void 0 : _a.highlightIds.removeAll();
|
|
1299
|
+
(_b = this._table) === null || _b === void 0 ? void 0 : _b.rowHighlightIds.removeAll();
|
|
1297
1300
|
this._finishOnChange();
|
|
1298
1301
|
}
|
|
1299
1302
|
/**
|
|
@@ -200,14 +200,14 @@ export class MapSelectTools {
|
|
|
200
200
|
var _a, _b;
|
|
201
201
|
const showBufferToolsClass = this._searchDistanceEnabled ? "search-distance" : "div-not-visible";
|
|
202
202
|
const bufferDistance = typeof ((_a = this.selectionSet) === null || _a === void 0 ? void 0 : _a.distance) === "number" ? this.selectionSet.distance : this.defaultBufferDistance;
|
|
203
|
-
return (h("div", null, h("div", { class: "padding-top-1 display-flex" }, h("calcite-label", { class: "label-margin-0 w-100", layout: "inline-space-between" }, h("div", { class: "tooltip-container" }, this._translations.searchDistance, h("calcite-icon", { class: "padding-start-1-2 icon", icon: "question", id: "search-distance-icon", scale: "s" }))), h("calcite-popover", { closable: true, label: "", referenceElement: "search-distance-icon" }, h("span", { class: "tooltip-message" }, this._translations.useSearchDistanceTootip)), h("calcite-switch", { checked: this._searchDistanceEnabled, onCalciteSwitchChange: () => this._searchDistanceEnabled = !this._searchDistanceEnabled })), h("div", { class: showBufferToolsClass }, h("buffer-tools", { disabled: !this._searchDistanceEnabled, distance: bufferDistance, geometries: this.geometries, onBufferComplete: (evt) => void this._bufferComplete(evt), ref: (el) => this._bufferTools = el, unit: ((_b = this.selectionSet) === null || _b === void 0 ? void 0 : _b.unit) || this.defaultBufferUnit }))));
|
|
203
|
+
return (h("div", null, h("div", { class: "padding-top-1 display-flex" }, h("calcite-label", { class: "label-margin-0 w-100", layout: "inline-space-between" }, h("div", { class: "tooltip-container" }, this._translations.searchDistance, h("calcite-icon", { class: "padding-start-1-2 icon", flipRtl: true, icon: "question", id: "search-distance-icon", scale: "s" }))), h("calcite-popover", { closable: true, label: "", referenceElement: "search-distance-icon" }, h("span", { class: "tooltip-message" }, this._translations.useSearchDistanceTootip)), h("calcite-switch", { checked: this._searchDistanceEnabled, onCalciteSwitchChange: () => this._searchDistanceEnabled = !this._searchDistanceEnabled })), h("div", { class: showBufferToolsClass }, h("buffer-tools", { disabled: !this._searchDistanceEnabled, distance: bufferDistance, geometries: this.geometries, onBufferComplete: (evt) => void this._bufferComplete(evt), ref: (el) => this._bufferTools = el, unit: ((_b = this.selectionSet) === null || _b === void 0 ? void 0 : _b.unit) || this.defaultBufferUnit }))));
|
|
204
204
|
}
|
|
205
205
|
/**
|
|
206
206
|
* Renders the map layer picker component.
|
|
207
207
|
*/
|
|
208
208
|
_getUseLayerFeaturesOptions() {
|
|
209
209
|
const useLayerFeaturesClass = this._useLayerFeaturesEnabled ? "div-visible" : "div-not-visible";
|
|
210
|
-
return (h("div", null, h("div", { class: "padding-top-1 display-flex" }, h("calcite-label", { class: "label-margin-0 w-100", layout: "inline-space-between" }, h("div", { class: "tooltip-container" }, this._translations.useLayerFeatures, h("calcite-icon", { class: "padding-start-1-2 icon", icon: "question", id: "use-layer-features-icon", scale: "s" }))), h("calcite-popover", { closable: true, label: "", referenceElement: "use-layer-features-icon" }, h("span", { class: "tooltip-message" }, this._translations.useLayerFeaturesTooltip)), h("calcite-switch", { checked: this._useLayerFeaturesEnabled, onCalciteSwitchChange: () => { this._useLayerFeaturesEnabledChanged(); } })), h("div", { class: useLayerFeaturesClass + " padding-top-1" }, h("map-layer-picker", { enabledLayerIds: this.selectionLayerIds, mapView: this.mapView, onLayerSelectionChange: (evt) => { void this._layerSelectionChange(evt); }, selectedIds: this.layerViews.map(l => l.layer.id), showTables: false }))));
|
|
210
|
+
return (h("div", null, h("div", { class: "padding-top-1 display-flex" }, h("calcite-label", { class: "label-margin-0 w-100", layout: "inline-space-between" }, h("div", { class: "tooltip-container" }, this._translations.useLayerFeatures, h("calcite-icon", { class: "padding-start-1-2 icon", flipRtl: true, icon: "question", id: "use-layer-features-icon", scale: "s" }))), h("calcite-popover", { closable: true, label: "", referenceElement: "use-layer-features-icon" }, h("span", { class: "tooltip-message" }, this._translations.useLayerFeaturesTooltip)), h("calcite-switch", { checked: this._useLayerFeaturesEnabled, onCalciteSwitchChange: () => { this._useLayerFeaturesEnabledChanged(); } })), h("div", { class: useLayerFeaturesClass + " padding-top-1" }, h("map-layer-picker", { enabledLayerIds: this.selectionLayerIds, mapView: this.mapView, onLayerSelectionChange: (evt) => { void this._layerSelectionChange(evt); }, selectedIds: this.layerViews.map(l => l.layer.id), showTables: false }))));
|
|
211
211
|
}
|
|
212
212
|
/**
|
|
213
213
|
* Renders the number of selected features
|
|
@@ -77,7 +77,7 @@ export class RefineSelection {
|
|
|
77
77
|
render() {
|
|
78
78
|
var _a, _b;
|
|
79
79
|
const layerPickerClass = this._enabledLayerIds.length > 1 ? "display-block" : "display-none";
|
|
80
|
-
return (h(Host, { key: 'abb0520889c7e739ccd0f7ef1cf5371169b09a4f' }, h("div", { key: '3772abb5d1f741644edd934e13ce25588714be0d', class: layerPickerClass + " padding-top-sides-1" }, h("div", { key: 'd0205e6127cf2df2eeb6ff9269ee0f64ccb0506b', class: "display-flex" }, h("calcite-label", { key: 'c6bdf8e921b6d7460198c5ea773c9f29f86dd7a4', class: "font-bold width-full label-margin-0" }, h("div", { key: '49969bbbb52f847764cddd748d9ebb01ee261de1', class: "display-flex" }, this._translations.inputLayer, h("calcite-icon", { key: '
|
|
80
|
+
return (h(Host, { key: 'abb0520889c7e739ccd0f7ef1cf5371169b09a4f' }, h("div", { key: '3772abb5d1f741644edd934e13ce25588714be0d', class: layerPickerClass + " padding-top-sides-1" }, h("div", { key: 'd0205e6127cf2df2eeb6ff9269ee0f64ccb0506b', class: "display-flex" }, h("calcite-label", { key: 'c6bdf8e921b6d7460198c5ea773c9f29f86dd7a4', class: "font-bold width-full label-margin-0" }, h("div", { key: '49969bbbb52f847764cddd748d9ebb01ee261de1', class: "display-flex" }, this._translations.inputLayer, h("calcite-icon", { key: 'e214244ee8305ffc6214df5d456340ffff2e48d5', class: "padding-start-1-2 icon", flipRtl: true, icon: "question", id: "refine-input-layer", scale: "s" })), h("map-layer-picker", { key: '5141de15e7492342fa735b941d11713d9b6b940f', enabledLayerIds: this._enabledLayerIds, mapView: this.mapView, onLayerSelectionChange: (evt) => { void this._layerSelectionChange(evt); }, ref: (el) => { this._layerPicker = el; }, selectedIds: [this._refineLayer.layer.id], showTables: false })), h("calcite-popover", { key: 'fcc6af19fb88b1cffd386fc499ef90e94530a033', closable: true, label: "", referenceElement: "refine-input-layer" }, h("span", { key: 'b740844b112e2bd8d42dbd0e87c0201a4b64b171', class: "tooltip-message" }, this._translations.inputLayerTip)))), h("div", { key: 'fe3fdd55ef90be673e89a31a2faf4cb83de132f5', class: "padding-1" }, h("div", { key: 'ee3d2c2d3b4ab82c39bceffd8fda755c172e18b6', class: "padding-bottom-1" }, h("calcite-segmented-control", { key: '960d56c2a480e00410dc1f075e99f747c71a1cdb', class: "w-100", width: "full" }, h("calcite-segmented-control-item", { key: '048cfef7ac5f23a6ad2c663cb3704f673a0a0fbd', checked: this._addEnabled, class: "w-50 word-wrap-anywhere", onClick: () => this._setSelectionMode(ESelectionMode.ADD), value: ESelectionMode.ADD }, h("span", { key: '4777b29c110bf5055622d5de8a60d0633bb1498f', class: "font-weight-500" }, this._translations.add)), h("calcite-segmented-control-item", { key: 'ae9147508332307320f34d8997ca10f42a8df704', checked: !this._addEnabled, class: "w-50 word-wrap-anywhere", onClick: () => this._setSelectionMode(ESelectionMode.REMOVE), value: ESelectionMode.REMOVE }, h("span", { key: 'e9c94444fbb17b86d04fcc8a51c83c9ef1c09cf5', class: "font-weight-500" }, this._translations.remove)))), h("div", { key: '6c1e7c69a983f69930f8a084746233603db56727' }, h("map-draw-tools", { key: 'dcb2d5ddb6a62b4d45d9416b1c8f49ba3ce0ed08', active: true, drawMode: EDrawMode.REFINE, mapView: this.mapView, onDrawRedo: () => this._redo(), onDrawUndo: () => this._undo(), onSketchGraphicsChange: (evt) => this._sketchGraphicsChanged(evt), pointSymbol: this.sketchPointSymbol, polygonSymbol: this.sketchPolygonSymbol, polylineSymbol: this.sketchLineSymbol, redoEnabled: ((_a = this._refineSelectionSet) === null || _a === void 0 ? void 0 : _a.redoStack.length) > 0, ref: (el) => { this._drawTools = el; }, undoEnabled: ((_b = this._refineSelectionSet) === null || _b === void 0 ? void 0 : _b.undoStack.length) > 0 })), h("br", { key: '14e8f85ee2f281f757c9f9a66b5ddb818310f8fc' }), (h("calcite-list", { key: '0be153af5a6c87289ee49ffe6b46c35a4d943b50', class: "list-border" }, this._getRefineSelectionSetList())))));
|
|
81
81
|
}
|
|
82
82
|
//--------------------------------------------------------------------------
|
|
83
83
|
//
|
|
@@ -40,6 +40,36 @@ export async function queryAllFeatures(start, layer, graphics) {
|
|
|
40
40
|
queryAllFeatures(start += num, layer, graphics) :
|
|
41
41
|
Promise.resolve(graphics);
|
|
42
42
|
}
|
|
43
|
+
/**
|
|
44
|
+
* Query the layer for all OIDs valid for any definition expressions applied to the layer.
|
|
45
|
+
*
|
|
46
|
+
* This query allows OIDs to be returned in the same order as shown in the FeatureTable.
|
|
47
|
+
* FeatureLayer.queryObjectIds can return OIDs in a different order.
|
|
48
|
+
*
|
|
49
|
+
* @param start zero-based index indicating where to begin retrieving features
|
|
50
|
+
* @param layer the layer to retrieve features from
|
|
51
|
+
* @param graphics stores the features
|
|
52
|
+
* @param orderBy One or more field names used to order the query results.
|
|
53
|
+
* Specify ASC (ascending) or DESC (descending) after the field name to control the order.
|
|
54
|
+
* The default order is ASC.
|
|
55
|
+
*
|
|
56
|
+
* @returns Promise with the OIDs sorted based on any orderBy definitions
|
|
57
|
+
*/
|
|
58
|
+
export async function queryAllOidsWithQueryFeatures(start, layer, graphics, orderBy) {
|
|
59
|
+
const num = layer.capabilities.query.maxRecordCount;
|
|
60
|
+
const query = layer.createQuery();
|
|
61
|
+
query.start = start;
|
|
62
|
+
query.num = num;
|
|
63
|
+
query.returnGeometry = false;
|
|
64
|
+
query.orderByFields = orderBy;
|
|
65
|
+
query.outFields = [layer.objectIdField];
|
|
66
|
+
query.where = layer.definitionExpression || "1=1";
|
|
67
|
+
const result = await layer.queryFeatures(query);
|
|
68
|
+
graphics = graphics.concat(result.features);
|
|
69
|
+
return result.exceededTransferLimit ?
|
|
70
|
+
queryAllOidsWithQueryFeatures(start += num, layer, graphics, orderBy) :
|
|
71
|
+
Promise.resolve(graphics.map(g => g.attributes[layer.objectIdField]));
|
|
72
|
+
}
|
|
43
73
|
/**
|
|
44
74
|
* Query the layer for all IDs
|
|
45
75
|
*
|
|
@@ -48,6 +48,47 @@ export async function queryAllFeatures(
|
|
|
48
48
|
Promise.resolve(graphics);
|
|
49
49
|
}
|
|
50
50
|
|
|
51
|
+
/**
|
|
52
|
+
* Query the layer for all OIDs valid for any definition expressions applied to the layer.
|
|
53
|
+
*
|
|
54
|
+
* This query allows OIDs to be returned in the same order as shown in the FeatureTable.
|
|
55
|
+
* FeatureLayer.queryObjectIds can return OIDs in a different order.
|
|
56
|
+
*
|
|
57
|
+
* @param start zero-based index indicating where to begin retrieving features
|
|
58
|
+
* @param layer the layer to retrieve features from
|
|
59
|
+
* @param graphics stores the features
|
|
60
|
+
* @param orderBy One or more field names used to order the query results.
|
|
61
|
+
* Specify ASC (ascending) or DESC (descending) after the field name to control the order.
|
|
62
|
+
* The default order is ASC.
|
|
63
|
+
*
|
|
64
|
+
* @returns Promise with the OIDs sorted based on any orderBy definitions
|
|
65
|
+
*/
|
|
66
|
+
export async function queryAllOidsWithQueryFeatures(
|
|
67
|
+
start: number,
|
|
68
|
+
layer: __esri.FeatureLayer,
|
|
69
|
+
graphics: __esri.Graphic[],
|
|
70
|
+
orderBy?: string[]
|
|
71
|
+
): Promise<number[]> {
|
|
72
|
+
const num = layer.capabilities.query.maxRecordCount;
|
|
73
|
+
const query = layer.createQuery();
|
|
74
|
+
query.start = start;
|
|
75
|
+
query.num = num;
|
|
76
|
+
query.returnGeometry = false;
|
|
77
|
+
query.orderByFields = orderBy;
|
|
78
|
+
query.outFields = [layer.objectIdField];
|
|
79
|
+
query.where = layer.definitionExpression || "1=1";
|
|
80
|
+
|
|
81
|
+
const result = await layer.queryFeatures(query);
|
|
82
|
+
|
|
83
|
+
graphics = graphics.concat(
|
|
84
|
+
result.features
|
|
85
|
+
);
|
|
86
|
+
|
|
87
|
+
return result.exceededTransferLimit ?
|
|
88
|
+
queryAllOidsWithQueryFeatures(start += num, layer, graphics, orderBy) :
|
|
89
|
+
Promise.resolve(graphics.map(g => g.attributes[layer.objectIdField]));
|
|
90
|
+
}
|
|
91
|
+
|
|
51
92
|
/**
|
|
52
93
|
* Query the layer for all IDs
|
|
53
94
|
*
|
|
@@ -27,15 +27,19 @@ const FloorFilter = /*@__PURE__*/ proxyCustomElement(class FloorFilter extends H
|
|
|
27
27
|
//
|
|
28
28
|
//--------------------------------------------------------------------------
|
|
29
29
|
async mapViewWatchHandler() {
|
|
30
|
+
console.log("mapViewWatchHandler FF");
|
|
30
31
|
const webMap = this.mapView.map;
|
|
31
32
|
await webMap.when(() => {
|
|
33
|
+
console.log("webMap.when FF");
|
|
32
34
|
if (this.floorFilterWidget) {
|
|
33
35
|
this.floorFilterWidget.destroy();
|
|
34
36
|
this.floorFilterWidget = undefined;
|
|
37
|
+
console.log("floorFilterWidget destroyed");
|
|
35
38
|
}
|
|
36
39
|
if (this._floorFilterElement) {
|
|
37
40
|
this._floorFilterElement.remove();
|
|
38
41
|
this._floorFilterElement = document.createElement("div");
|
|
42
|
+
console.log("this._floorFilterElement created");
|
|
39
43
|
}
|
|
40
44
|
this._initFloorFilter(this.mapView, webMap);
|
|
41
45
|
});
|
|
@@ -52,7 +56,7 @@ const FloorFilter = /*@__PURE__*/ proxyCustomElement(class FloorFilter extends H
|
|
|
52
56
|
return this._initModules();
|
|
53
57
|
}
|
|
54
58
|
render() {
|
|
55
|
-
return (h(Host, { key: '
|
|
59
|
+
return (h(Host, { key: 'df3c419f3eaf30590c44c4919f0eeddfc333b81d' }, h("div", { key: '8496099f3bc35f34db6e47f73870ead9144df0a4', ref: (el) => { this._floorFilterElement = el; } })));
|
|
56
60
|
}
|
|
57
61
|
//--------------------------------------------------------------------------
|
|
58
62
|
//
|
|
@@ -79,6 +83,11 @@ const FloorFilter = /*@__PURE__*/ proxyCustomElement(class FloorFilter extends H
|
|
|
79
83
|
*/
|
|
80
84
|
_initFloorFilter(view, webMap) {
|
|
81
85
|
var _a, _b, _c;
|
|
86
|
+
console.log("_initFloorFilter");
|
|
87
|
+
console.log(`view: ${view}`);
|
|
88
|
+
console.log(`this.enabled: ${this.enabled}`);
|
|
89
|
+
console.log(`this.FloorFilter: ${this.FloorFilter}`);
|
|
90
|
+
console.log(`webMap?.floorInfo: ${webMap === null || webMap === void 0 ? void 0 : webMap.floorInfo}`);
|
|
82
91
|
if (view && this.enabled && this.FloorFilter && (webMap === null || webMap === void 0 ? void 0 : webMap.floorInfo)) {
|
|
83
92
|
this.floorFilterWidget = new this.FloorFilter({
|
|
84
93
|
container: this._floorFilterElement,
|
|
@@ -7,7 +7,7 @@ import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/
|
|
|
7
7
|
import { l as loadModules } from './loadModules.js';
|
|
8
8
|
import { g as getLocaleComponentStrings } from './locale.js';
|
|
9
9
|
import { b as goToSelection, c as getFeatureLayerView, g as getLayerOrTable } from './mapViewUtils.js';
|
|
10
|
-
import { b as queryAllIds, c as
|
|
10
|
+
import { b as queryAllIds, c as queryAllOidsWithQueryFeatures, d as queryFeaturesByGlobalID } from './queryUtils.js';
|
|
11
11
|
import { d as downloadCSV } from './downloadUtils.js';
|
|
12
12
|
import { d as defineCustomElement$D } from './action.js';
|
|
13
13
|
import { d as defineCustomElement$C } from './action-bar.js';
|
|
@@ -202,6 +202,7 @@ const LayerTable = /*@__PURE__*/ proxyCustomElement(class LayerTable extends HTM
|
|
|
202
202
|
this._initLayerExpressions();
|
|
203
203
|
this._initToolInfos();
|
|
204
204
|
this._updateToolbar();
|
|
205
|
+
console.log("mapInfoWatchHandler");
|
|
205
206
|
await this._sortTable();
|
|
206
207
|
}
|
|
207
208
|
/**
|
|
@@ -245,6 +246,10 @@ const LayerTable = /*@__PURE__*/ proxyCustomElement(class LayerTable extends HTM
|
|
|
245
246
|
if (this._selectAllActive && this.selectedIds.length !== this._allIds.length) {
|
|
246
247
|
this._selectAllActive = false;
|
|
247
248
|
}
|
|
249
|
+
if (this.selectedIds.length > 0) {
|
|
250
|
+
this._table.rowHighlightIds.removeAll();
|
|
251
|
+
this._table.rowHighlightIds.add(this.selectedIds[0]);
|
|
252
|
+
}
|
|
248
253
|
}
|
|
249
254
|
/**
|
|
250
255
|
* Scroll and zoom to the selected feature from the Features widget.
|
|
@@ -344,7 +349,7 @@ const LayerTable = /*@__PURE__*/ proxyCustomElement(class LayerTable extends HTM
|
|
|
344
349
|
const selected = this.selectedIds.length.toString();
|
|
345
350
|
const tableHeightClass = this.isMobile ? "height-full" : "height-full-adjusted";
|
|
346
351
|
this._validateActiveActions();
|
|
347
|
-
return (h(Host, { key: '
|
|
352
|
+
return (h(Host, { key: '928286a8e4d1159b56b2aa4384f0d6eed38c9e76' }, h("calcite-shell", { key: '7c9b98056ee867df54ebfd31fee6f046f5152f64' }, this._getTableControlRow("header"), h("div", { key: 'b1a9a9cca100c7bef335afd5b6c7d7384ca7536c', class: `width-full ${tableHeightClass}` }, h("calcite-panel", { key: 'ceeead9900f43c94f46c8c94698ae17f3ae558b7', class: "height-full width-full" }, h("calcite-loader", { key: '7bf3c9ba21daa27dd387ba5413b6f6e982e1f10d', class: loadingClass, label: this._translations.fetchingData, scale: "l" }), h("div", { key: '7d0440047453a45fe1688ad373ab2463fe7479ba', class: tableNodeClass, ref: this.onTableNodeCreate })), !this.isMobile ? (h("div", { class: "bottom-left text-color height-19" }, this._translations.recordsSelected
|
|
348
353
|
.replace("{{total}}", total)
|
|
349
354
|
.replace("{{selected}}", selected))) : undefined)), this._filterModal()));
|
|
350
355
|
}
|
|
@@ -945,43 +950,38 @@ const LayerTable = /*@__PURE__*/ proxyCustomElement(class LayerTable extends HTM
|
|
|
945
950
|
else if (this._shiftIsPressed) {
|
|
946
951
|
this._skipOnChange = true;
|
|
947
952
|
this._previousCurrentId = this._currentId;
|
|
948
|
-
this._currentId = [...
|
|
949
|
-
if (
|
|
953
|
+
this._currentId = [...ids].reverse()[0];
|
|
954
|
+
if (ids.length === 1) {
|
|
955
|
+
this._skipOnChange = false;
|
|
956
|
+
}
|
|
957
|
+
else if (this._previousCurrentId !== this._currentId) {
|
|
950
958
|
// query the layer based on current sort and filters then grab between the current id and previous id
|
|
951
959
|
const orderBy = this._table.activeSortOrders.reduce((prev, cur) => {
|
|
952
960
|
prev.push(`${cur.fieldName} ${cur.direction}`);
|
|
953
961
|
return prev;
|
|
954
962
|
}, []);
|
|
955
|
-
const oids = await
|
|
963
|
+
const oids = await queryAllOidsWithQueryFeatures(0, this._layer, [], orderBy);
|
|
956
964
|
let isBetween = false;
|
|
957
965
|
const _start = this._table.viewModel.getObjectIdIndex(this._previousCurrentId);
|
|
958
966
|
const _end = this._table.viewModel.getObjectIdIndex(this._currentId);
|
|
959
967
|
const startIndex = _start < _end ? _start : _end;
|
|
960
968
|
const endIndex = _end > _start ? _end : _start;
|
|
961
969
|
this._skipOnChange = startIndex + 1 !== endIndex;
|
|
962
|
-
const
|
|
970
|
+
const idsInRange = oids.reduce((prev, cur) => {
|
|
963
971
|
const id = cur;
|
|
964
|
-
const index = this._table.viewModel.getObjectIdIndex(id);
|
|
965
972
|
if ((id === this._currentId || id === this._previousCurrentId)) {
|
|
966
973
|
isBetween = !isBetween;
|
|
967
974
|
if (prev.indexOf(id) < 0) {
|
|
968
975
|
prev.push(id);
|
|
969
976
|
}
|
|
970
977
|
}
|
|
971
|
-
|
|
972
|
-
// Index of -1 will occur for features between the start and and oid if
|
|
973
|
-
// you select a row then scroll faster than the FeatureTable loads the data to select the next id
|
|
974
|
-
if (isBetween && prev.indexOf(id) < 0) {
|
|
975
|
-
prev.push(id);
|
|
976
|
-
}
|
|
977
|
-
// Also add index based check.
|
|
978
|
-
// In some cases the FeatureTable and Layer query will have differences in how null/undefined field values are sorted
|
|
979
|
-
if ((this.selectedIds.indexOf(id) > -1 || (index >= startIndex && index <= endIndex)) && prev.indexOf(id) < 0 && index > -1) {
|
|
978
|
+
else if (isBetween && prev.indexOf(id) < 0) {
|
|
980
979
|
prev.push(id);
|
|
981
980
|
}
|
|
982
981
|
return prev;
|
|
983
982
|
}, []);
|
|
984
|
-
|
|
983
|
+
const selectedIds = _start < _end ? idsInRange.reverse() : idsInRange;
|
|
984
|
+
this.selectedIds = [...new Set([...selectedIds, ...this.selectedIds])];
|
|
985
985
|
this._table.highlightIds.addMany(this.selectedIds.filter(i => ids.indexOf(i) < 0));
|
|
986
986
|
}
|
|
987
987
|
}
|
|
@@ -1044,6 +1044,7 @@ const LayerTable = /*@__PURE__*/ proxyCustomElement(class LayerTable extends HTM
|
|
|
1044
1044
|
this._table.editingEnabled = this._editEnabled && this.enableInlineEdit;
|
|
1045
1045
|
await this.reactiveUtils.once(() => this._table.state === "loaded")
|
|
1046
1046
|
.then(async () => {
|
|
1047
|
+
console.log("this._table.state === 'loaded'");
|
|
1047
1048
|
this._table.highlightIds.removeAll();
|
|
1048
1049
|
this._table.clearSelectionFilter();
|
|
1049
1050
|
this._resetColumnTemplates();
|
|
@@ -1147,18 +1148,18 @@ const LayerTable = /*@__PURE__*/ proxyCustomElement(class LayerTable extends HTM
|
|
|
1147
1148
|
* Sort the table with the configured field and the sort order
|
|
1148
1149
|
*/
|
|
1149
1150
|
async _sortTable() {
|
|
1150
|
-
var _a, _b, _c, _d, _e;
|
|
1151
|
+
var _a, _b, _c, _d, _e, _f;
|
|
1151
1152
|
//By default sort the table using objectIdField and in descending order
|
|
1152
1153
|
let sortField = (_a = this._layer) === null || _a === void 0 ? void 0 : _a.objectIdField;
|
|
1153
1154
|
let sortOrder = 'desc';
|
|
1154
1155
|
let configuredLayer;
|
|
1155
1156
|
//get the sortField and sortOrder from the configuration
|
|
1156
|
-
if (((_d = (_c = (_b = this.mapInfo) === null || _b === void 0 ? void 0 : _b.layerOptions) === null || _c === void 0 ? void 0 : _c.layers) === null || _d === void 0 ? void 0 : _d.length) > 0) {
|
|
1157
|
+
if (((_d = (_c = (_b = this.mapInfo) === null || _b === void 0 ? void 0 : _b.layerOptions) === null || _c === void 0 ? void 0 : _c.layers) === null || _d === void 0 ? void 0 : _d.length) > 0 && ((_e = this._layer) === null || _e === void 0 ? void 0 : _e.id)) {
|
|
1157
1158
|
configuredLayer = this.mapInfo.layerOptions.layers.filter((layer) => layer.id === this._layer.id);
|
|
1158
1159
|
if (configuredLayer && configuredLayer.length > 0) {
|
|
1159
1160
|
configuredLayer = configuredLayer[0];
|
|
1160
1161
|
//if sort field is defined and sortField is available in the fields then use it
|
|
1161
|
-
if (configuredLayer.sortField && ((
|
|
1162
|
+
if (configuredLayer.sortField && ((_f = configuredLayer.fields) === null || _f === void 0 ? void 0 : _f.includes(configuredLayer.sortField))) {
|
|
1162
1163
|
sortField = configuredLayer.sortField;
|
|
1163
1164
|
}
|
|
1164
1165
|
//use sort order if configured
|
|
@@ -1168,6 +1169,7 @@ const LayerTable = /*@__PURE__*/ proxyCustomElement(class LayerTable extends HTM
|
|
|
1168
1169
|
if (this._table && this._layer) {
|
|
1169
1170
|
await this._table.when();
|
|
1170
1171
|
await this._layer.when(() => {
|
|
1172
|
+
console.log("sort on this._layer.when");
|
|
1171
1173
|
this._table.sortColumn(sortField, sortOrder);
|
|
1172
1174
|
});
|
|
1173
1175
|
}
|
|
@@ -1321,9 +1323,10 @@ const LayerTable = /*@__PURE__*/ proxyCustomElement(class LayerTable extends HTM
|
|
|
1321
1323
|
* Clears the selected indexes
|
|
1322
1324
|
*/
|
|
1323
1325
|
_clearSelection() {
|
|
1324
|
-
var _a;
|
|
1326
|
+
var _a, _b;
|
|
1325
1327
|
this.selectedIds = [];
|
|
1326
1328
|
(_a = this._table) === null || _a === void 0 ? void 0 : _a.highlightIds.removeAll();
|
|
1329
|
+
(_b = this._table) === null || _b === void 0 ? void 0 : _b.rowHighlightIds.removeAll();
|
|
1327
1330
|
this._finishOnChange();
|
|
1328
1331
|
}
|
|
1329
1332
|
/**
|
|
@@ -217,14 +217,14 @@ const MapSelectTools = /*@__PURE__*/ proxyCustomElement(class MapSelectTools ext
|
|
|
217
217
|
var _a, _b;
|
|
218
218
|
const showBufferToolsClass = this._searchDistanceEnabled ? "search-distance" : "div-not-visible";
|
|
219
219
|
const bufferDistance = typeof ((_a = this.selectionSet) === null || _a === void 0 ? void 0 : _a.distance) === "number" ? this.selectionSet.distance : this.defaultBufferDistance;
|
|
220
|
-
return (h("div", null, h("div", { class: "padding-top-1 display-flex" }, h("calcite-label", { class: "label-margin-0 w-100", layout: "inline-space-between" }, h("div", { class: "tooltip-container" }, this._translations.searchDistance, h("calcite-icon", { class: "padding-start-1-2 icon", icon: "question", id: "search-distance-icon", scale: "s" }))), h("calcite-popover", { closable: true, label: "", referenceElement: "search-distance-icon" }, h("span", { class: "tooltip-message" }, this._translations.useSearchDistanceTootip)), h("calcite-switch", { checked: this._searchDistanceEnabled, onCalciteSwitchChange: () => this._searchDistanceEnabled = !this._searchDistanceEnabled })), h("div", { class: showBufferToolsClass }, h("buffer-tools", { disabled: !this._searchDistanceEnabled, distance: bufferDistance, geometries: this.geometries, onBufferComplete: (evt) => void this._bufferComplete(evt), ref: (el) => this._bufferTools = el, unit: ((_b = this.selectionSet) === null || _b === void 0 ? void 0 : _b.unit) || this.defaultBufferUnit }))));
|
|
220
|
+
return (h("div", null, h("div", { class: "padding-top-1 display-flex" }, h("calcite-label", { class: "label-margin-0 w-100", layout: "inline-space-between" }, h("div", { class: "tooltip-container" }, this._translations.searchDistance, h("calcite-icon", { class: "padding-start-1-2 icon", flipRtl: true, icon: "question", id: "search-distance-icon", scale: "s" }))), h("calcite-popover", { closable: true, label: "", referenceElement: "search-distance-icon" }, h("span", { class: "tooltip-message" }, this._translations.useSearchDistanceTootip)), h("calcite-switch", { checked: this._searchDistanceEnabled, onCalciteSwitchChange: () => this._searchDistanceEnabled = !this._searchDistanceEnabled })), h("div", { class: showBufferToolsClass }, h("buffer-tools", { disabled: !this._searchDistanceEnabled, distance: bufferDistance, geometries: this.geometries, onBufferComplete: (evt) => void this._bufferComplete(evt), ref: (el) => this._bufferTools = el, unit: ((_b = this.selectionSet) === null || _b === void 0 ? void 0 : _b.unit) || this.defaultBufferUnit }))));
|
|
221
221
|
}
|
|
222
222
|
/**
|
|
223
223
|
* Renders the map layer picker component.
|
|
224
224
|
*/
|
|
225
225
|
_getUseLayerFeaturesOptions() {
|
|
226
226
|
const useLayerFeaturesClass = this._useLayerFeaturesEnabled ? "div-visible" : "div-not-visible";
|
|
227
|
-
return (h("div", null, h("div", { class: "padding-top-1 display-flex" }, h("calcite-label", { class: "label-margin-0 w-100", layout: "inline-space-between" }, h("div", { class: "tooltip-container" }, this._translations.useLayerFeatures, h("calcite-icon", { class: "padding-start-1-2 icon", icon: "question", id: "use-layer-features-icon", scale: "s" }))), h("calcite-popover", { closable: true, label: "", referenceElement: "use-layer-features-icon" }, h("span", { class: "tooltip-message" }, this._translations.useLayerFeaturesTooltip)), h("calcite-switch", { checked: this._useLayerFeaturesEnabled, onCalciteSwitchChange: () => { this._useLayerFeaturesEnabledChanged(); } })), h("div", { class: useLayerFeaturesClass + " padding-top-1" }, h("map-layer-picker", { enabledLayerIds: this.selectionLayerIds, mapView: this.mapView, onLayerSelectionChange: (evt) => { void this._layerSelectionChange(evt); }, selectedIds: this.layerViews.map(l => l.layer.id), showTables: false }))));
|
|
227
|
+
return (h("div", null, h("div", { class: "padding-top-1 display-flex" }, h("calcite-label", { class: "label-margin-0 w-100", layout: "inline-space-between" }, h("div", { class: "tooltip-container" }, this._translations.useLayerFeatures, h("calcite-icon", { class: "padding-start-1-2 icon", flipRtl: true, icon: "question", id: "use-layer-features-icon", scale: "s" }))), h("calcite-popover", { closable: true, label: "", referenceElement: "use-layer-features-icon" }, h("span", { class: "tooltip-message" }, this._translations.useLayerFeaturesTooltip)), h("calcite-switch", { checked: this._useLayerFeaturesEnabled, onCalciteSwitchChange: () => { this._useLayerFeaturesEnabledChanged(); } })), h("div", { class: useLayerFeaturesClass + " padding-top-1" }, h("map-layer-picker", { enabledLayerIds: this.selectionLayerIds, mapView: this.mapView, onLayerSelectionChange: (evt) => { void this._layerSelectionChange(evt); }, selectedIds: this.layerViews.map(l => l.layer.id), showTables: false }))));
|
|
228
228
|
}
|
|
229
229
|
/**
|
|
230
230
|
* Renders the number of selected features
|
|
@@ -18,6 +18,36 @@
|
|
|
18
18
|
* See the License for the specific language governing permissions and
|
|
19
19
|
* limitations under the License.
|
|
20
20
|
*/
|
|
21
|
+
/**
|
|
22
|
+
* Query the layer for all OIDs valid for any definition expressions applied to the layer.
|
|
23
|
+
*
|
|
24
|
+
* This query allows OIDs to be returned in the same order as shown in the FeatureTable.
|
|
25
|
+
* FeatureLayer.queryObjectIds can return OIDs in a different order.
|
|
26
|
+
*
|
|
27
|
+
* @param start zero-based index indicating where to begin retrieving features
|
|
28
|
+
* @param layer the layer to retrieve features from
|
|
29
|
+
* @param graphics stores the features
|
|
30
|
+
* @param orderBy One or more field names used to order the query results.
|
|
31
|
+
* Specify ASC (ascending) or DESC (descending) after the field name to control the order.
|
|
32
|
+
* The default order is ASC.
|
|
33
|
+
*
|
|
34
|
+
* @returns Promise with the OIDs sorted based on any orderBy definitions
|
|
35
|
+
*/
|
|
36
|
+
async function queryAllOidsWithQueryFeatures(start, layer, graphics, orderBy) {
|
|
37
|
+
const num = layer.capabilities.query.maxRecordCount;
|
|
38
|
+
const query = layer.createQuery();
|
|
39
|
+
query.start = start;
|
|
40
|
+
query.num = num;
|
|
41
|
+
query.returnGeometry = false;
|
|
42
|
+
query.orderByFields = orderBy;
|
|
43
|
+
query.outFields = [layer.objectIdField];
|
|
44
|
+
query.where = layer.definitionExpression || "1=1";
|
|
45
|
+
const result = await layer.queryFeatures(query);
|
|
46
|
+
graphics = graphics.concat(result.features);
|
|
47
|
+
return result.exceededTransferLimit ?
|
|
48
|
+
queryAllOidsWithQueryFeatures(start += num, layer, graphics, orderBy) :
|
|
49
|
+
Promise.resolve(graphics.map(g => g.attributes[layer.objectIdField]));
|
|
50
|
+
}
|
|
21
51
|
/**
|
|
22
52
|
* Query the layer for all IDs
|
|
23
53
|
*
|
|
@@ -125,22 +155,6 @@ async function queryFeaturesByGeometry(start, layer, geometry, featuresCollectio
|
|
|
125
155
|
queryFeaturesByGeometry(start += num, layer, geometry, featuresCollection) :
|
|
126
156
|
Promise.resolve(featuresCollection);
|
|
127
157
|
}
|
|
128
|
-
/**
|
|
129
|
-
* Query the layer for feature ids that match the provided where clause.
|
|
130
|
-
* If no where clause is provided all features will be returned.
|
|
131
|
-
*
|
|
132
|
-
* @param layer the layer to retrieve features from
|
|
133
|
-
* @param where the where clause for the query
|
|
134
|
-
* @param orderBy any sort order to apply to the query
|
|
135
|
-
*
|
|
136
|
-
* @returns Promise with the ids from the layer that match the where and are sorted as defined by orderBy
|
|
137
|
-
*/
|
|
138
|
-
async function queryFeatureIds(layer, where, orderBy) {
|
|
139
|
-
const query = layer.createQuery();
|
|
140
|
-
query.where = where ? where : "1=1";
|
|
141
|
-
query.orderByFields = orderBy;
|
|
142
|
-
return await layer.queryObjectIds(query);
|
|
143
|
-
}
|
|
144
158
|
/**
|
|
145
159
|
* Query the layer for the extent of features with the provided OIDs
|
|
146
160
|
*
|
|
@@ -198,4 +212,4 @@ async function _intersectQuery(geometry, layer) {
|
|
|
198
212
|
return layer.queryObjectIds(q);
|
|
199
213
|
}
|
|
200
214
|
|
|
201
|
-
export { queryExtent as a, queryAllIds as b,
|
|
215
|
+
export { queryExtent as a, queryAllIds as b, queryAllOidsWithQueryFeatures as c, queryFeaturesByGlobalID as d, queryObjectIds as e, queryFeaturesByGeometry as f, getQueryGeoms as g, queryFeaturesByID as q };
|
|
@@ -98,7 +98,7 @@ const RefineSelection = /*@__PURE__*/ proxyCustomElement(class RefineSelection e
|
|
|
98
98
|
render() {
|
|
99
99
|
var _a, _b;
|
|
100
100
|
const layerPickerClass = this._enabledLayerIds.length > 1 ? "display-block" : "display-none";
|
|
101
|
-
return (h(Host, { key: 'abb0520889c7e739ccd0f7ef1cf5371169b09a4f' }, h("div", { key: '3772abb5d1f741644edd934e13ce25588714be0d', class: layerPickerClass + " padding-top-sides-1" }, h("div", { key: 'd0205e6127cf2df2eeb6ff9269ee0f64ccb0506b', class: "display-flex" }, h("calcite-label", { key: 'c6bdf8e921b6d7460198c5ea773c9f29f86dd7a4', class: "font-bold width-full label-margin-0" }, h("div", { key: '49969bbbb52f847764cddd748d9ebb01ee261de1', class: "display-flex" }, this._translations.inputLayer, h("calcite-icon", { key: '
|
|
101
|
+
return (h(Host, { key: 'abb0520889c7e739ccd0f7ef1cf5371169b09a4f' }, h("div", { key: '3772abb5d1f741644edd934e13ce25588714be0d', class: layerPickerClass + " padding-top-sides-1" }, h("div", { key: 'd0205e6127cf2df2eeb6ff9269ee0f64ccb0506b', class: "display-flex" }, h("calcite-label", { key: 'c6bdf8e921b6d7460198c5ea773c9f29f86dd7a4', class: "font-bold width-full label-margin-0" }, h("div", { key: '49969bbbb52f847764cddd748d9ebb01ee261de1', class: "display-flex" }, this._translations.inputLayer, h("calcite-icon", { key: 'e214244ee8305ffc6214df5d456340ffff2e48d5', class: "padding-start-1-2 icon", flipRtl: true, icon: "question", id: "refine-input-layer", scale: "s" })), h("map-layer-picker", { key: '5141de15e7492342fa735b941d11713d9b6b940f', enabledLayerIds: this._enabledLayerIds, mapView: this.mapView, onLayerSelectionChange: (evt) => { void this._layerSelectionChange(evt); }, ref: (el) => { this._layerPicker = el; }, selectedIds: [this._refineLayer.layer.id], showTables: false })), h("calcite-popover", { key: 'fcc6af19fb88b1cffd386fc499ef90e94530a033', closable: true, label: "", referenceElement: "refine-input-layer" }, h("span", { key: 'b740844b112e2bd8d42dbd0e87c0201a4b64b171', class: "tooltip-message" }, this._translations.inputLayerTip)))), h("div", { key: 'fe3fdd55ef90be673e89a31a2faf4cb83de132f5', class: "padding-1" }, h("div", { key: 'ee3d2c2d3b4ab82c39bceffd8fda755c172e18b6', class: "padding-bottom-1" }, h("calcite-segmented-control", { key: '960d56c2a480e00410dc1f075e99f747c71a1cdb', class: "w-100", width: "full" }, h("calcite-segmented-control-item", { key: '048cfef7ac5f23a6ad2c663cb3704f673a0a0fbd', checked: this._addEnabled, class: "w-50 word-wrap-anywhere", onClick: () => this._setSelectionMode(ESelectionMode.ADD), value: ESelectionMode.ADD }, h("span", { key: '4777b29c110bf5055622d5de8a60d0633bb1498f', class: "font-weight-500" }, this._translations.add)), h("calcite-segmented-control-item", { key: 'ae9147508332307320f34d8997ca10f42a8df704', checked: !this._addEnabled, class: "w-50 word-wrap-anywhere", onClick: () => this._setSelectionMode(ESelectionMode.REMOVE), value: ESelectionMode.REMOVE }, h("span", { key: 'e9c94444fbb17b86d04fcc8a51c83c9ef1c09cf5', class: "font-weight-500" }, this._translations.remove)))), h("div", { key: '6c1e7c69a983f69930f8a084746233603db56727' }, h("map-draw-tools", { key: 'dcb2d5ddb6a62b4d45d9416b1c8f49ba3ce0ed08', active: true, drawMode: EDrawMode.REFINE, mapView: this.mapView, onDrawRedo: () => this._redo(), onDrawUndo: () => this._undo(), onSketchGraphicsChange: (evt) => this._sketchGraphicsChanged(evt), pointSymbol: this.sketchPointSymbol, polygonSymbol: this.sketchPolygonSymbol, polylineSymbol: this.sketchLineSymbol, redoEnabled: ((_a = this._refineSelectionSet) === null || _a === void 0 ? void 0 : _a.redoStack.length) > 0, ref: (el) => { this._drawTools = el; }, undoEnabled: ((_b = this._refineSelectionSet) === null || _b === void 0 ? void 0 : _b.undoStack.length) > 0 })), h("br", { key: '14e8f85ee2f281f757c9f9a66b5ddb818310f8fc' }), (h("calcite-list", { key: '0be153af5a6c87289ee49ffe6b46c35a4d943b50', class: "list-border" }, this._getRefineSelectionSetList())))));
|
|
102
102
|
}
|
|
103
103
|
//--------------------------------------------------------------------------
|
|
104
104
|
//
|
|
@@ -133,15 +133,19 @@ const FloorFilter = class {
|
|
|
133
133
|
//
|
|
134
134
|
//--------------------------------------------------------------------------
|
|
135
135
|
async mapViewWatchHandler() {
|
|
136
|
+
console.log("mapViewWatchHandler FF");
|
|
136
137
|
const webMap = this.mapView.map;
|
|
137
138
|
await webMap.when(() => {
|
|
139
|
+
console.log("webMap.when FF");
|
|
138
140
|
if (this.floorFilterWidget) {
|
|
139
141
|
this.floorFilterWidget.destroy();
|
|
140
142
|
this.floorFilterWidget = undefined;
|
|
143
|
+
console.log("floorFilterWidget destroyed");
|
|
141
144
|
}
|
|
142
145
|
if (this._floorFilterElement) {
|
|
143
146
|
this._floorFilterElement.remove();
|
|
144
147
|
this._floorFilterElement = document.createElement("div");
|
|
148
|
+
console.log("this._floorFilterElement created");
|
|
145
149
|
}
|
|
146
150
|
this._initFloorFilter(this.mapView, webMap);
|
|
147
151
|
});
|
|
@@ -158,7 +162,7 @@ const FloorFilter = class {
|
|
|
158
162
|
return this._initModules();
|
|
159
163
|
}
|
|
160
164
|
render() {
|
|
161
|
-
return (h(Host, { key: '
|
|
165
|
+
return (h(Host, { key: 'df3c419f3eaf30590c44c4919f0eeddfc333b81d' }, h("div", { key: '8496099f3bc35f34db6e47f73870ead9144df0a4', ref: (el) => { this._floorFilterElement = el; } })));
|
|
162
166
|
}
|
|
163
167
|
//--------------------------------------------------------------------------
|
|
164
168
|
//
|
|
@@ -185,6 +189,11 @@ const FloorFilter = class {
|
|
|
185
189
|
*/
|
|
186
190
|
_initFloorFilter(view, webMap) {
|
|
187
191
|
var _a, _b, _c;
|
|
192
|
+
console.log("_initFloorFilter");
|
|
193
|
+
console.log(`view: ${view}`);
|
|
194
|
+
console.log(`this.enabled: ${this.enabled}`);
|
|
195
|
+
console.log(`this.FloorFilter: ${this.FloorFilter}`);
|
|
196
|
+
console.log(`webMap?.floorInfo: ${webMap === null || webMap === void 0 ? void 0 : webMap.floorInfo}`);
|
|
188
197
|
if (view && this.enabled && this.FloorFilter && (webMap === null || webMap === void 0 ? void 0 : webMap.floorInfo)) {
|
|
189
198
|
this.floorFilterWidget = new this.FloorFilter({
|
|
190
199
|
container: this._floorFilterElement,
|