@esri/solutions-components 0.7.49 → 0.7.51
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 +30 -26
- package/dist/cjs/card-manager_3.cjs.entry.js +72 -42
- package/dist/cjs/crowdsource-manager.cjs.entry.js +31 -45
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/solutions-components.cjs.js +1 -1
- package/dist/collection/components/crowdsource-manager/crowdsource-manager.js +31 -73
- package/dist/collection/components/floor-filter/floor-filter.js +30 -26
- package/dist/collection/components/layer-table/layer-table.js +76 -63
- package/dist/components/crowdsource-manager.js +31 -51
- package/dist/components/floor-filter2.js +30 -26
- package/dist/components/layer-table2.js +74 -43
- package/dist/esm/basemap-gallery_7.entry.js +30 -26
- package/dist/esm/card-manager_3.entry.js +72 -42
- package/dist/esm/crowdsource-manager.entry.js +31 -45
- package/dist/esm/loader.js +1 -1
- package/dist/esm/solutions-components.js +1 -1
- package/dist/solutions-components/p-697e9e11.entry.js +6 -0
- package/dist/solutions-components/p-7cfc4ba5.entry.js +6 -0
- package/dist/solutions-components/p-b4d2feb0.entry.js +6 -0
- package/dist/solutions-components/solutions-components.esm.js +1 -1
- package/dist/types/components/crowdsource-manager/crowdsource-manager.d.ts +6 -41
- package/dist/types/components/floor-filter/floor-filter.d.ts +1 -1
- package/dist/types/components/layer-table/layer-table.d.ts +25 -5
- package/dist/types/components.d.ts +0 -18
- package/package.json +1 -1
- package/dist/solutions-components/p-6a83b842.entry.js +0 -6
- package/dist/solutions-components/p-6d9f6b6a.entry.js +0 -6
- package/dist/solutions-components/p-766c0b57.entry.js +0 -6
@@ -26,8 +26,17 @@ const FloorFilter = /*@__PURE__*/ proxyCustomElement(class FloorFilter extends H
|
|
26
26
|
//
|
27
27
|
//--------------------------------------------------------------------------
|
28
28
|
async mapViewWatchHandler() {
|
29
|
-
|
30
|
-
|
29
|
+
const webMap = this.mapView.map;
|
30
|
+
await webMap.when(() => {
|
31
|
+
if (this.floorFilterWidget) {
|
32
|
+
this.floorFilterWidget.destroy();
|
33
|
+
this.floorFilterWidget = undefined;
|
34
|
+
}
|
35
|
+
if (this._floorFilterElement) {
|
36
|
+
this._floorFilterElement.remove();
|
37
|
+
this._floorFilterElement = document.createElement("div");
|
38
|
+
}
|
39
|
+
this._initFloorFilter(this.mapView, webMap);
|
31
40
|
});
|
32
41
|
}
|
33
42
|
//--------------------------------------------------------------------------
|
@@ -67,30 +76,25 @@ const FloorFilter = /*@__PURE__*/ proxyCustomElement(class FloorFilter extends H
|
|
67
76
|
/**
|
68
77
|
* Initialize the floor filter or reset the current view if it already exists
|
69
78
|
*/
|
70
|
-
_initFloorFilter(view) {
|
71
|
-
var _a, _b, _c
|
72
|
-
if (view && this.enabled && this.FloorFilter && (
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
this.
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
this.
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
this.
|
88
|
-
|
89
|
-
});
|
90
|
-
}
|
91
|
-
else {
|
92
|
-
this.floorFilterWidget.viewModel.view = view;
|
93
|
-
}
|
79
|
+
_initFloorFilter(view, webMap) {
|
80
|
+
var _a, _b, _c;
|
81
|
+
if (view && this.enabled && this.FloorFilter && (webMap === null || webMap === void 0 ? void 0 : webMap.floorInfo)) {
|
82
|
+
this.floorFilterWidget = new this.FloorFilter({
|
83
|
+
container: this._floorFilterElement,
|
84
|
+
view
|
85
|
+
});
|
86
|
+
(_a = this._facilityHandle) === null || _a === void 0 ? void 0 : _a.remove();
|
87
|
+
this._facilityHandle = this.reactiveUtils.watch(() => this.floorFilterWidget.facility, (facility) => {
|
88
|
+
this.facilityChanged.emit(facility);
|
89
|
+
});
|
90
|
+
(_b = this._levelHandle) === null || _b === void 0 ? void 0 : _b.remove();
|
91
|
+
this._levelHandle = this.reactiveUtils.watch(() => this.floorFilterWidget.level, (level) => {
|
92
|
+
this.levelChanged.emit(level);
|
93
|
+
});
|
94
|
+
(_c = this._siteHandle) === null || _c === void 0 ? void 0 : _c.remove();
|
95
|
+
this._siteHandle = this.reactiveUtils.watch(() => this.floorFilterWidget.site, (site) => {
|
96
|
+
this.siteChanged.emit(site);
|
97
|
+
});
|
94
98
|
}
|
95
99
|
}
|
96
100
|
get el() { return this; }
|
@@ -93,7 +93,6 @@ const LayerTable = /*@__PURE__*/ proxyCustomElement(class LayerTable extends HTM
|
|
93
93
|
this.onTableNodeCreate = (node) => {
|
94
94
|
this._tableNode = node;
|
95
95
|
};
|
96
|
-
this.defaultFilter = undefined;
|
97
96
|
this.defaultGlobalId = undefined;
|
98
97
|
this.defaultLayerId = undefined;
|
99
98
|
this.defaultOid = undefined;
|
@@ -129,6 +128,18 @@ const LayerTable = /*@__PURE__*/ proxyCustomElement(class LayerTable extends HTM
|
|
129
128
|
// Watch handlers
|
130
129
|
//
|
131
130
|
//--------------------------------------------------------------------------
|
131
|
+
/**
|
132
|
+
* Handle url defaults when defaultOid is set
|
133
|
+
*/
|
134
|
+
async defaultOidWatchHandler() {
|
135
|
+
await this._handleDefaults();
|
136
|
+
}
|
137
|
+
/**
|
138
|
+
* Handle url defaults when defaultGlobalId is set
|
139
|
+
*/
|
140
|
+
async defaultGlobalIdWatchHandler() {
|
141
|
+
await this._handleDefaults();
|
142
|
+
}
|
132
143
|
/**
|
133
144
|
* Reset the toolInfos when export csv is enabled/disabled
|
134
145
|
*/
|
@@ -816,22 +827,6 @@ const LayerTable = /*@__PURE__*/ proxyCustomElement(class LayerTable extends HTM
|
|
816
827
|
else {
|
817
828
|
urlObj.searchParams.delete("oid");
|
818
829
|
}
|
819
|
-
if (this._filterActive) {
|
820
|
-
const filter = JSON.parse(this._filterList.urlParams.get("filter"));
|
821
|
-
const layerExpressions = this._filterList.layerExpressions.map(layerExp => {
|
822
|
-
layerExp.expressions = layerExp.expressions.map(exp => {
|
823
|
-
if (exp.id.toString() === filter.expressionId.toString()) {
|
824
|
-
exp.active = true;
|
825
|
-
}
|
826
|
-
return exp;
|
827
|
-
});
|
828
|
-
return layerExp;
|
829
|
-
});
|
830
|
-
urlObj.searchParams.set("filter", JSON.stringify(layerExpressions));
|
831
|
-
}
|
832
|
-
else {
|
833
|
-
urlObj.searchParams.delete("filter");
|
834
|
-
}
|
835
830
|
this._shareNode.shareUrl = urlObj.href;
|
836
831
|
}
|
837
832
|
/**
|
@@ -845,7 +840,7 @@ const LayerTable = /*@__PURE__*/ proxyCustomElement(class LayerTable extends HTM
|
|
845
840
|
* @returns VNode The tooltip node
|
846
841
|
*/
|
847
842
|
_getToolTip(placement, referenceElement, text) {
|
848
|
-
return (h("calcite-tooltip", { placement: placement, "reference-element": referenceElement }, h("span", null, text)));
|
843
|
+
return document.getElementById(referenceElement) ? (h("calcite-tooltip", { placement: placement, "reference-element": referenceElement }, h("span", null, text))) : undefined;
|
849
844
|
}
|
850
845
|
/**
|
851
846
|
* Get an id with a prefix to the user supplied value
|
@@ -1008,7 +1003,11 @@ const LayerTable = /*@__PURE__*/ proxyCustomElement(class LayerTable extends HTM
|
|
1008
1003
|
_resetColumnTemplates() {
|
1009
1004
|
var _a, _b;
|
1010
1005
|
const columnTemplates = this._getColumnTemplates((_a = this._layer) === null || _a === void 0 ? void 0 : _a.id, (_b = this._layer) === null || _b === void 0 ? void 0 : _b.fields);
|
1011
|
-
|
1006
|
+
const hasChange = columnTemplates === null || columnTemplates === void 0 ? void 0 : columnTemplates.some((ct, i) => {
|
1007
|
+
var _a;
|
1008
|
+
return JSON.stringify((_a = this._table) === null || _a === void 0 ? void 0 : _a.tableTemplate.columnTemplates[i]) !== JSON.stringify(ct);
|
1009
|
+
});
|
1010
|
+
if (this._table && columnTemplates && hasChange) {
|
1012
1011
|
this._table.tableTemplate = new this.TableTemplate({
|
1013
1012
|
columnTemplates
|
1014
1013
|
});
|
@@ -1031,37 +1030,67 @@ const LayerTable = /*@__PURE__*/ proxyCustomElement(class LayerTable extends HTM
|
|
1031
1030
|
this._table.view = this.mapView;
|
1032
1031
|
this._table.layer = this._layer;
|
1033
1032
|
}
|
1033
|
+
await this._initLayerRefresh();
|
1034
1034
|
this._checkEditEnabled();
|
1035
1035
|
this._table.editingEnabled = this._editEnabled && this.enableInlineEdit;
|
1036
1036
|
await this.reactiveUtils.once(() => this._table.state === "loaded")
|
1037
1037
|
.then(async () => {
|
1038
|
-
var _a, _b, _c;
|
1039
1038
|
this._table.highlightIds.removeAll();
|
1040
1039
|
this._table.clearSelectionFilter();
|
1041
1040
|
this._resetColumnTemplates();
|
1042
|
-
if (!this._defaultOidHonored && ((_a = this.defaultOid) === null || _a === void 0 ? void 0 : _a.length) > 0 && this.defaultOid[0] > -1) {
|
1043
|
-
this._selectDefaultFeature(this.defaultOid);
|
1044
|
-
this._defaultOidHonored = true;
|
1045
|
-
}
|
1046
|
-
if (!this._defaultGlobalIdHonored && ((_b = this.defaultGlobalId) === null || _b === void 0 ? void 0 : _b.length) > 0) {
|
1047
|
-
const features = await queryFeaturesByGlobalID(this.defaultGlobalId, this._layer);
|
1048
|
-
const oids = (features === null || features === void 0 ? void 0 : features.length) > 0 ? features.map(f => f.getObjectId()) : undefined;
|
1049
|
-
if (oids) {
|
1050
|
-
this._selectDefaultFeature(oids);
|
1051
|
-
}
|
1052
|
-
this._defaultGlobalIdHonored = true;
|
1053
|
-
}
|
1054
|
-
if (!this._defaultFilterHonored && ((_c = this.defaultFilter) === null || _c === void 0 ? void 0 : _c.length) > 0 && this._filterList) {
|
1055
|
-
this._layerExpressions = this.defaultFilter;
|
1056
|
-
this._filterActive = true;
|
1057
|
-
this._defaultFilterHonored = true;
|
1058
|
-
}
|
1059
1041
|
this._showOnlySelected = false;
|
1042
|
+
await this._handleDefaults();
|
1060
1043
|
await this._sortTable();
|
1061
1044
|
this._initToolInfos();
|
1062
1045
|
this._updateToolbar();
|
1063
1046
|
});
|
1064
1047
|
}
|
1048
|
+
/**
|
1049
|
+
* Update the current IDs when that layers data is modified
|
1050
|
+
*/
|
1051
|
+
async _initLayerRefresh() {
|
1052
|
+
if (this._refreshHandle) {
|
1053
|
+
this._refreshHandle.remove();
|
1054
|
+
}
|
1055
|
+
this._refreshHandle = this._layer.on("refresh", (evt) => {
|
1056
|
+
if (evt.dataChanged) {
|
1057
|
+
this._skipOnChange = true;
|
1058
|
+
void this._updateAllIds();
|
1059
|
+
}
|
1060
|
+
});
|
1061
|
+
}
|
1062
|
+
/**
|
1063
|
+
* Reset _allIds when the layers data has changed and refresh the selection ids and table
|
1064
|
+
*/
|
1065
|
+
async _updateAllIds() {
|
1066
|
+
this._allIds = await queryAllIds(this._layer);
|
1067
|
+
this.selectedIds = this.selectedIds.filter(id => this._allIds.indexOf(id) > -1);
|
1068
|
+
await this._refresh();
|
1069
|
+
}
|
1070
|
+
/**
|
1071
|
+
* Handle default OID or GlobalID from url parameters
|
1072
|
+
*/
|
1073
|
+
async _handleDefaults() {
|
1074
|
+
var _a, _b;
|
1075
|
+
if (!this._defaultOidHonored && ((_a = this.defaultOid) === null || _a === void 0 ? void 0 : _a.length) > 0 && this.defaultOid[0] > -1 && this._table) {
|
1076
|
+
await this._selectDefaultFeature(this.defaultOid);
|
1077
|
+
this._defaultOidHonored = true;
|
1078
|
+
this.defaultOid = undefined;
|
1079
|
+
this._showOnlySelected = false;
|
1080
|
+
this._toggleShowSelected();
|
1081
|
+
}
|
1082
|
+
if (!this._defaultGlobalIdHonored && ((_b = this.defaultGlobalId) === null || _b === void 0 ? void 0 : _b.length) > 0 && this._table) {
|
1083
|
+
const features = await queryFeaturesByGlobalID(this.defaultGlobalId, this._layer);
|
1084
|
+
const oids = (features === null || features === void 0 ? void 0 : features.length) > 0 ? features.map(f => f.getObjectId()) : undefined;
|
1085
|
+
if (oids) {
|
1086
|
+
await this._selectDefaultFeature(oids);
|
1087
|
+
}
|
1088
|
+
this._defaultGlobalIdHonored = true;
|
1089
|
+
this.defaultGlobalId = undefined;
|
1090
|
+
this._showOnlySelected = false;
|
1091
|
+
this._toggleShowSelected();
|
1092
|
+
}
|
1093
|
+
}
|
1065
1094
|
/**
|
1066
1095
|
* Store the column names and current hidden status to support show/hide of columns
|
1067
1096
|
* @param fieldNames optional list of names from new config options
|
@@ -1090,13 +1119,12 @@ const LayerTable = /*@__PURE__*/ proxyCustomElement(class LayerTable extends HTM
|
|
1090
1119
|
/**
|
1091
1120
|
* Select the feature that was specified via url params
|
1092
1121
|
*/
|
1093
|
-
_selectDefaultFeature(oids) {
|
1122
|
+
async _selectDefaultFeature(oids) {
|
1094
1123
|
if (oids.length > 0) {
|
1095
1124
|
this._table.highlightIds.addMany(oids);
|
1096
|
-
|
1097
|
-
|
1098
|
-
|
1099
|
-
});
|
1125
|
+
// This is messed up and only make this worse
|
1126
|
+
//const i = this._table.viewModel.getObjectIdIndex(oids[0]);
|
1127
|
+
//this._table.viewModel.scrollToIndex(i);
|
1100
1128
|
}
|
1101
1129
|
}
|
1102
1130
|
/**
|
@@ -1472,6 +1500,8 @@ const LayerTable = /*@__PURE__*/ proxyCustomElement(class LayerTable extends HTM
|
|
1472
1500
|
}
|
1473
1501
|
get el() { return this; }
|
1474
1502
|
static get watchers() { return {
|
1503
|
+
"defaultOid": ["defaultOidWatchHandler"],
|
1504
|
+
"defaultGlobalId": ["defaultGlobalIdWatchHandler"],
|
1475
1505
|
"enableCSV": ["enableCSVWatchHandler"],
|
1476
1506
|
"enableInlineEdit": ["enableInlineEditWatchHandler"],
|
1477
1507
|
"enableShare": ["enableShareWatchHandler"],
|
@@ -1484,7 +1514,6 @@ const LayerTable = /*@__PURE__*/ proxyCustomElement(class LayerTable extends HTM
|
|
1484
1514
|
}; }
|
1485
1515
|
static get style() { return layerTableCss; }
|
1486
1516
|
}, [0, "layer-table", {
|
1487
|
-
"defaultFilter": [16],
|
1488
1517
|
"defaultGlobalId": [16],
|
1489
1518
|
"defaultLayerId": [1, "default-layer-id"],
|
1490
1519
|
"defaultOid": [16],
|
@@ -1515,6 +1544,8 @@ const LayerTable = /*@__PURE__*/ proxyCustomElement(class LayerTable extends HTM
|
|
1515
1544
|
"_toolInfos": [32],
|
1516
1545
|
"_translations": [32]
|
1517
1546
|
}, [[8, "selectionChanged", "selectionChanged"], [8, "editsComplete", "editsComplete"], [8, "facilityChanged", "facilityChanged"], [8, "levelChanged", "levelChanged"], [8, "siteChanged", "siteChanged"], [8, "noLayersFound", "noLayersFound"]], {
|
1547
|
+
"defaultOid": ["defaultOidWatchHandler"],
|
1548
|
+
"defaultGlobalId": ["defaultGlobalIdWatchHandler"],
|
1518
1549
|
"enableCSV": ["enableCSVWatchHandler"],
|
1519
1550
|
"enableInlineEdit": ["enableInlineEditWatchHandler"],
|
1520
1551
|
"enableShare": ["enableShareWatchHandler"],
|
@@ -132,8 +132,17 @@ const FloorFilter = class {
|
|
132
132
|
//
|
133
133
|
//--------------------------------------------------------------------------
|
134
134
|
async mapViewWatchHandler() {
|
135
|
-
|
136
|
-
|
135
|
+
const webMap = this.mapView.map;
|
136
|
+
await webMap.when(() => {
|
137
|
+
if (this.floorFilterWidget) {
|
138
|
+
this.floorFilterWidget.destroy();
|
139
|
+
this.floorFilterWidget = undefined;
|
140
|
+
}
|
141
|
+
if (this._floorFilterElement) {
|
142
|
+
this._floorFilterElement.remove();
|
143
|
+
this._floorFilterElement = document.createElement("div");
|
144
|
+
}
|
145
|
+
this._initFloorFilter(this.mapView, webMap);
|
137
146
|
});
|
138
147
|
}
|
139
148
|
//--------------------------------------------------------------------------
|
@@ -173,30 +182,25 @@ const FloorFilter = class {
|
|
173
182
|
/**
|
174
183
|
* Initialize the floor filter or reset the current view if it already exists
|
175
184
|
*/
|
176
|
-
_initFloorFilter(view) {
|
177
|
-
var _a, _b, _c
|
178
|
-
if (view && this.enabled && this.FloorFilter && (
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
this.
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
this.
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
this.
|
194
|
-
|
195
|
-
});
|
196
|
-
}
|
197
|
-
else {
|
198
|
-
this.floorFilterWidget.viewModel.view = view;
|
199
|
-
}
|
185
|
+
_initFloorFilter(view, webMap) {
|
186
|
+
var _a, _b, _c;
|
187
|
+
if (view && this.enabled && this.FloorFilter && (webMap === null || webMap === void 0 ? void 0 : webMap.floorInfo)) {
|
188
|
+
this.floorFilterWidget = new this.FloorFilter({
|
189
|
+
container: this._floorFilterElement,
|
190
|
+
view
|
191
|
+
});
|
192
|
+
(_a = this._facilityHandle) === null || _a === void 0 ? void 0 : _a.remove();
|
193
|
+
this._facilityHandle = this.reactiveUtils.watch(() => this.floorFilterWidget.facility, (facility) => {
|
194
|
+
this.facilityChanged.emit(facility);
|
195
|
+
});
|
196
|
+
(_b = this._levelHandle) === null || _b === void 0 ? void 0 : _b.remove();
|
197
|
+
this._levelHandle = this.reactiveUtils.watch(() => this.floorFilterWidget.level, (level) => {
|
198
|
+
this.levelChanged.emit(level);
|
199
|
+
});
|
200
|
+
(_c = this._siteHandle) === null || _c === void 0 ? void 0 : _c.remove();
|
201
|
+
this._siteHandle = this.reactiveUtils.watch(() => this.floorFilterWidget.site, (site) => {
|
202
|
+
this.siteChanged.emit(site);
|
203
|
+
});
|
200
204
|
}
|
201
205
|
}
|
202
206
|
get el() { return getElement(this); }
|
@@ -145,7 +145,6 @@ const LayerTable = class {
|
|
145
145
|
this.onTableNodeCreate = (node) => {
|
146
146
|
this._tableNode = node;
|
147
147
|
};
|
148
|
-
this.defaultFilter = undefined;
|
149
148
|
this.defaultGlobalId = undefined;
|
150
149
|
this.defaultLayerId = undefined;
|
151
150
|
this.defaultOid = undefined;
|
@@ -181,6 +180,18 @@ const LayerTable = class {
|
|
181
180
|
// Watch handlers
|
182
181
|
//
|
183
182
|
//--------------------------------------------------------------------------
|
183
|
+
/**
|
184
|
+
* Handle url defaults when defaultOid is set
|
185
|
+
*/
|
186
|
+
async defaultOidWatchHandler() {
|
187
|
+
await this._handleDefaults();
|
188
|
+
}
|
189
|
+
/**
|
190
|
+
* Handle url defaults when defaultGlobalId is set
|
191
|
+
*/
|
192
|
+
async defaultGlobalIdWatchHandler() {
|
193
|
+
await this._handleDefaults();
|
194
|
+
}
|
184
195
|
/**
|
185
196
|
* Reset the toolInfos when export csv is enabled/disabled
|
186
197
|
*/
|
@@ -868,22 +879,6 @@ const LayerTable = class {
|
|
868
879
|
else {
|
869
880
|
urlObj.searchParams.delete("oid");
|
870
881
|
}
|
871
|
-
if (this._filterActive) {
|
872
|
-
const filter = JSON.parse(this._filterList.urlParams.get("filter"));
|
873
|
-
const layerExpressions = this._filterList.layerExpressions.map(layerExp => {
|
874
|
-
layerExp.expressions = layerExp.expressions.map(exp => {
|
875
|
-
if (exp.id.toString() === filter.expressionId.toString()) {
|
876
|
-
exp.active = true;
|
877
|
-
}
|
878
|
-
return exp;
|
879
|
-
});
|
880
|
-
return layerExp;
|
881
|
-
});
|
882
|
-
urlObj.searchParams.set("filter", JSON.stringify(layerExpressions));
|
883
|
-
}
|
884
|
-
else {
|
885
|
-
urlObj.searchParams.delete("filter");
|
886
|
-
}
|
887
882
|
this._shareNode.shareUrl = urlObj.href;
|
888
883
|
}
|
889
884
|
/**
|
@@ -897,7 +892,7 @@ const LayerTable = class {
|
|
897
892
|
* @returns VNode The tooltip node
|
898
893
|
*/
|
899
894
|
_getToolTip(placement, referenceElement, text) {
|
900
|
-
return (h("calcite-tooltip", { placement: placement, "reference-element": referenceElement }, h("span", null, text)));
|
895
|
+
return document.getElementById(referenceElement) ? (h("calcite-tooltip", { placement: placement, "reference-element": referenceElement }, h("span", null, text))) : undefined;
|
901
896
|
}
|
902
897
|
/**
|
903
898
|
* Get an id with a prefix to the user supplied value
|
@@ -1060,7 +1055,11 @@ const LayerTable = class {
|
|
1060
1055
|
_resetColumnTemplates() {
|
1061
1056
|
var _a, _b;
|
1062
1057
|
const columnTemplates = this._getColumnTemplates((_a = this._layer) === null || _a === void 0 ? void 0 : _a.id, (_b = this._layer) === null || _b === void 0 ? void 0 : _b.fields);
|
1063
|
-
|
1058
|
+
const hasChange = columnTemplates === null || columnTemplates === void 0 ? void 0 : columnTemplates.some((ct, i) => {
|
1059
|
+
var _a;
|
1060
|
+
return JSON.stringify((_a = this._table) === null || _a === void 0 ? void 0 : _a.tableTemplate.columnTemplates[i]) !== JSON.stringify(ct);
|
1061
|
+
});
|
1062
|
+
if (this._table && columnTemplates && hasChange) {
|
1064
1063
|
this._table.tableTemplate = new this.TableTemplate({
|
1065
1064
|
columnTemplates
|
1066
1065
|
});
|
@@ -1083,37 +1082,67 @@ const LayerTable = class {
|
|
1083
1082
|
this._table.view = this.mapView;
|
1084
1083
|
this._table.layer = this._layer;
|
1085
1084
|
}
|
1085
|
+
await this._initLayerRefresh();
|
1086
1086
|
this._checkEditEnabled();
|
1087
1087
|
this._table.editingEnabled = this._editEnabled && this.enableInlineEdit;
|
1088
1088
|
await this.reactiveUtils.once(() => this._table.state === "loaded")
|
1089
1089
|
.then(async () => {
|
1090
|
-
var _a, _b, _c;
|
1091
1090
|
this._table.highlightIds.removeAll();
|
1092
1091
|
this._table.clearSelectionFilter();
|
1093
1092
|
this._resetColumnTemplates();
|
1094
|
-
if (!this._defaultOidHonored && ((_a = this.defaultOid) === null || _a === void 0 ? void 0 : _a.length) > 0 && this.defaultOid[0] > -1) {
|
1095
|
-
this._selectDefaultFeature(this.defaultOid);
|
1096
|
-
this._defaultOidHonored = true;
|
1097
|
-
}
|
1098
|
-
if (!this._defaultGlobalIdHonored && ((_b = this.defaultGlobalId) === null || _b === void 0 ? void 0 : _b.length) > 0) {
|
1099
|
-
const features = await queryFeaturesByGlobalID(this.defaultGlobalId, this._layer);
|
1100
|
-
const oids = (features === null || features === void 0 ? void 0 : features.length) > 0 ? features.map(f => f.getObjectId()) : undefined;
|
1101
|
-
if (oids) {
|
1102
|
-
this._selectDefaultFeature(oids);
|
1103
|
-
}
|
1104
|
-
this._defaultGlobalIdHonored = true;
|
1105
|
-
}
|
1106
|
-
if (!this._defaultFilterHonored && ((_c = this.defaultFilter) === null || _c === void 0 ? void 0 : _c.length) > 0 && this._filterList) {
|
1107
|
-
this._layerExpressions = this.defaultFilter;
|
1108
|
-
this._filterActive = true;
|
1109
|
-
this._defaultFilterHonored = true;
|
1110
|
-
}
|
1111
1093
|
this._showOnlySelected = false;
|
1094
|
+
await this._handleDefaults();
|
1112
1095
|
await this._sortTable();
|
1113
1096
|
this._initToolInfos();
|
1114
1097
|
this._updateToolbar();
|
1115
1098
|
});
|
1116
1099
|
}
|
1100
|
+
/**
|
1101
|
+
* Update the current IDs when that layers data is modified
|
1102
|
+
*/
|
1103
|
+
async _initLayerRefresh() {
|
1104
|
+
if (this._refreshHandle) {
|
1105
|
+
this._refreshHandle.remove();
|
1106
|
+
}
|
1107
|
+
this._refreshHandle = this._layer.on("refresh", (evt) => {
|
1108
|
+
if (evt.dataChanged) {
|
1109
|
+
this._skipOnChange = true;
|
1110
|
+
void this._updateAllIds();
|
1111
|
+
}
|
1112
|
+
});
|
1113
|
+
}
|
1114
|
+
/**
|
1115
|
+
* Reset _allIds when the layers data has changed and refresh the selection ids and table
|
1116
|
+
*/
|
1117
|
+
async _updateAllIds() {
|
1118
|
+
this._allIds = await queryAllIds(this._layer);
|
1119
|
+
this.selectedIds = this.selectedIds.filter(id => this._allIds.indexOf(id) > -1);
|
1120
|
+
await this._refresh();
|
1121
|
+
}
|
1122
|
+
/**
|
1123
|
+
* Handle default OID or GlobalID from url parameters
|
1124
|
+
*/
|
1125
|
+
async _handleDefaults() {
|
1126
|
+
var _a, _b;
|
1127
|
+
if (!this._defaultOidHonored && ((_a = this.defaultOid) === null || _a === void 0 ? void 0 : _a.length) > 0 && this.defaultOid[0] > -1 && this._table) {
|
1128
|
+
await this._selectDefaultFeature(this.defaultOid);
|
1129
|
+
this._defaultOidHonored = true;
|
1130
|
+
this.defaultOid = undefined;
|
1131
|
+
this._showOnlySelected = false;
|
1132
|
+
this._toggleShowSelected();
|
1133
|
+
}
|
1134
|
+
if (!this._defaultGlobalIdHonored && ((_b = this.defaultGlobalId) === null || _b === void 0 ? void 0 : _b.length) > 0 && this._table) {
|
1135
|
+
const features = await queryFeaturesByGlobalID(this.defaultGlobalId, this._layer);
|
1136
|
+
const oids = (features === null || features === void 0 ? void 0 : features.length) > 0 ? features.map(f => f.getObjectId()) : undefined;
|
1137
|
+
if (oids) {
|
1138
|
+
await this._selectDefaultFeature(oids);
|
1139
|
+
}
|
1140
|
+
this._defaultGlobalIdHonored = true;
|
1141
|
+
this.defaultGlobalId = undefined;
|
1142
|
+
this._showOnlySelected = false;
|
1143
|
+
this._toggleShowSelected();
|
1144
|
+
}
|
1145
|
+
}
|
1117
1146
|
/**
|
1118
1147
|
* Store the column names and current hidden status to support show/hide of columns
|
1119
1148
|
* @param fieldNames optional list of names from new config options
|
@@ -1142,13 +1171,12 @@ const LayerTable = class {
|
|
1142
1171
|
/**
|
1143
1172
|
* Select the feature that was specified via url params
|
1144
1173
|
*/
|
1145
|
-
_selectDefaultFeature(oids) {
|
1174
|
+
async _selectDefaultFeature(oids) {
|
1146
1175
|
if (oids.length > 0) {
|
1147
1176
|
this._table.highlightIds.addMany(oids);
|
1148
|
-
|
1149
|
-
|
1150
|
-
|
1151
|
-
});
|
1177
|
+
// This is messed up and only make this worse
|
1178
|
+
//const i = this._table.viewModel.getObjectIdIndex(oids[0]);
|
1179
|
+
//this._table.viewModel.scrollToIndex(i);
|
1152
1180
|
}
|
1153
1181
|
}
|
1154
1182
|
/**
|
@@ -1524,6 +1552,8 @@ const LayerTable = class {
|
|
1524
1552
|
}
|
1525
1553
|
get el() { return getElement(this); }
|
1526
1554
|
static get watchers() { return {
|
1555
|
+
"defaultOid": ["defaultOidWatchHandler"],
|
1556
|
+
"defaultGlobalId": ["defaultGlobalIdWatchHandler"],
|
1527
1557
|
"enableCSV": ["enableCSVWatchHandler"],
|
1528
1558
|
"enableInlineEdit": ["enableInlineEditWatchHandler"],
|
1529
1559
|
"enableShare": ["enableShareWatchHandler"],
|
@@ -15,13 +15,27 @@ const crowdsourceManagerCss = ":host{display:block;--calcite-label-margin-bottom
|
|
15
15
|
const CrowdsourceManager = class {
|
16
16
|
constructor(hostRef) {
|
17
17
|
registerInstance(this, hostRef);
|
18
|
+
//--------------------------------------------------------------------------
|
19
|
+
//
|
20
|
+
// Properties (protected)
|
21
|
+
//
|
22
|
+
//--------------------------------------------------------------------------
|
23
|
+
/**
|
24
|
+
* boolean: When true the map view will be set after render due to popup obstructing the view
|
25
|
+
* MapView.when is not fired when mapView is not currently visible
|
26
|
+
*/
|
27
|
+
this._defaultCenterHonored = false;
|
28
|
+
/**
|
29
|
+
* boolean: When true the map view will be set after render due to popup obstructing the view
|
30
|
+
* MapView.when is not fired when mapView is not currently visible
|
31
|
+
*/
|
32
|
+
this._defaultLevelHonored = false;
|
18
33
|
/**
|
19
34
|
* boolean: When true the map view will be set after render due to popup obstructing the view
|
20
35
|
* MapView.when is not fired when mapView is not currently visible
|
21
36
|
*/
|
22
37
|
this._shouldSetMapView = false;
|
23
38
|
this.defaultCenter = "";
|
24
|
-
this.defaultFilter = "";
|
25
39
|
this.defaultGlobalId = "";
|
26
40
|
this.defaultLayer = "";
|
27
41
|
this.defaultLevel = "";
|
@@ -66,39 +80,6 @@ const CrowdsourceManager = class {
|
|
66
80
|
// Watch handlers
|
67
81
|
//
|
68
82
|
//--------------------------------------------------------------------------
|
69
|
-
/**
|
70
|
-
* Watch for center url param to be set
|
71
|
-
*/
|
72
|
-
defaultCenterWatchHandler() {
|
73
|
-
this._defaultCenter = !this.defaultCenter ? undefined :
|
74
|
-
this.defaultCenter.split(";").map(v => parseFloat(v));
|
75
|
-
}
|
76
|
-
/**
|
77
|
-
* Watch for filter url param to be set
|
78
|
-
*/
|
79
|
-
defaultFilterWatchHandler() {
|
80
|
-
this._defaultFilter = JSON.parse(this.defaultFilter);
|
81
|
-
}
|
82
|
-
/**
|
83
|
-
* Watch for globalid url param to be set
|
84
|
-
*/
|
85
|
-
defaultGlobalIdWatchHandler() {
|
86
|
-
this._defaultGlobalId = !this.defaultGlobalId ? undefined :
|
87
|
-
this.defaultGlobalId.indexOf(",") > -1 ? this.defaultGlobalId.split(",") : [this.defaultGlobalId];
|
88
|
-
}
|
89
|
-
/**
|
90
|
-
* Watch for oid url param to be set
|
91
|
-
*/
|
92
|
-
defaultOidWatchHandler() {
|
93
|
-
this._defaultOid = !this.defaultOid ? undefined :
|
94
|
-
this.defaultOid.indexOf(",") > -1 ? this.defaultOid.split(",").map(o => parseInt(o, 10)) : [parseInt(this.defaultOid, 10)];
|
95
|
-
}
|
96
|
-
/**
|
97
|
-
* Watch for zoom level param to be set
|
98
|
-
*/
|
99
|
-
defaultLevelWatchHandler() {
|
100
|
-
this._defaultLevel = !this.defaultLevel ? undefined : parseInt(this.defaultLevel, 10);
|
101
|
-
}
|
102
83
|
/**
|
103
84
|
* When true the map zoom tools will be available
|
104
85
|
*/
|
@@ -390,6 +371,7 @@ const CrowdsourceManager = class {
|
|
390
371
|
* @protected
|
391
372
|
*/
|
392
373
|
_getTable(layoutMode, panelOpen, hideTable) {
|
374
|
+
var _a, _b;
|
393
375
|
const tableClass = hideTable && this._isMobile ? "visibility-hidden" : "";
|
394
376
|
const tableSizeClass = this._getTableSizeClass(layoutMode, panelOpen);
|
395
377
|
const icon = this._getDividerIcon(layoutMode, panelOpen);
|
@@ -398,7 +380,11 @@ const CrowdsourceManager = class {
|
|
398
380
|
const toggleLayout = layoutMode === ELayoutMode.HORIZONTAL ? "horizontal" : "vertical";
|
399
381
|
const toggleSlot = layoutMode === ELayoutMode.HORIZONTAL ? "header" : "panel-start";
|
400
382
|
const hasMapAndLayer = this.defaultWebmap && this.defaultLayer;
|
401
|
-
|
383
|
+
const globalId = !this.defaultGlobalId ? undefined :
|
384
|
+
((_a = this.defaultGlobalId) === null || _a === void 0 ? void 0 : _a.indexOf(",")) > -1 ? this.defaultGlobalId.split(",") : [this.defaultGlobalId];
|
385
|
+
const defaultOid = !this.defaultOid ? undefined :
|
386
|
+
((_b = this.defaultOid) === null || _b === void 0 ? void 0 : _b.indexOf(",")) > -1 ? this.defaultOid.split(",").map(o => parseInt(o, 10)) : [parseInt(this.defaultOid, 10)];
|
387
|
+
return (h("calcite-shell", { class: `${tableSizeClass} ${tableClass} border-bottom` }, !this._isMobile ? (h("calcite-action-bar", { class: "border-sides", expandDisabled: true, layout: toggleLayout, slot: toggleSlot }, h("calcite-action", { class: "toggle-node", icon: icon, id: id, onClick: () => this._toggleLayout(), text: "" }), h("calcite-tooltip", { label: tooltip, placement: "bottom", "reference-element": id }, h("span", null, tooltip)))) : undefined, h("div", { class: `width-full height-full position-relative` }, h("layer-table", { defaultGlobalId: hasMapAndLayer ? globalId : undefined, defaultLayerId: hasMapAndLayer ? this.defaultLayer : "", defaultOid: hasMapAndLayer && !globalId ? defaultOid : undefined, enableAutoRefresh: this.enableAutoRefresh, enableCSV: this.enableCSV, enableColumnReorder: this.enableColumnReorder, enableInlineEdit: this.enableInlineEdit, enableShare: this.enableShare, isMobile: this._isMobile, mapInfo: this._mapInfo, mapView: this === null || this === void 0 ? void 0 : this._mapView, onlyShowUpdatableLayers: this.onlyShowUpdatableLayers, ref: (el) => this._layerTable = el, shareIncludeEmbed: this.shareIncludeEmbed, shareIncludeSocial: this.shareIncludeSocial, showNewestFirst: this.showNewestFirst, zoomAndScrollToSelected: this.zoomAndScrollToSelected }))));
|
402
388
|
}
|
403
389
|
/**
|
404
390
|
* Update the component layout when its size changes
|
@@ -451,17 +437,22 @@ const CrowdsourceManager = class {
|
|
451
437
|
* @protected
|
452
438
|
*/
|
453
439
|
async _setMapView() {
|
440
|
+
var _a;
|
454
441
|
this._mapInfo = this._getMapInfo(this._mapChange.id);
|
455
442
|
this._mapView = this._mapChange.mapView;
|
456
443
|
this._initMapZoom();
|
457
444
|
this._mapView.popupEnabled = false;
|
458
|
-
|
445
|
+
const center = !this.defaultCenter || this._defaultCenterHonored ?
|
446
|
+
undefined : (_a = this.defaultCenter) === null || _a === void 0 ? void 0 : _a.split(";").map(v => parseFloat(v));
|
447
|
+
const zoom = !this.defaultLevel || this._defaultLevelHonored ?
|
448
|
+
undefined : parseInt(this.defaultLevel, 10);
|
449
|
+
if (center && zoom) {
|
459
450
|
await this._mapView.goTo({
|
460
|
-
center
|
461
|
-
zoom
|
451
|
+
center,
|
452
|
+
zoom
|
462
453
|
});
|
463
|
-
this.
|
464
|
-
this.
|
454
|
+
this._defaultCenterHonored = true;
|
455
|
+
this._defaultLevelHonored = true;
|
465
456
|
}
|
466
457
|
}
|
467
458
|
/**
|
@@ -493,11 +484,6 @@ const CrowdsourceManager = class {
|
|
493
484
|
}
|
494
485
|
get el() { return getElement(this); }
|
495
486
|
static get watchers() { return {
|
496
|
-
"defaultCenter": ["defaultCenterWatchHandler"],
|
497
|
-
"defaultFilter": ["defaultFilterWatchHandler"],
|
498
|
-
"defaultGlobalId": ["defaultGlobalIdWatchHandler"],
|
499
|
-
"defaultOid": ["defaultOidWatchHandler"],
|
500
|
-
"defaultLevel": ["defaultLevelWatchHandler"],
|
501
487
|
"enableZoom": ["enableZoomWatchHandler"]
|
502
488
|
}; }
|
503
489
|
};
|