@esri/solutions-components 0.7.25 → 0.7.27
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/calcite-alert_4.cjs.entry.js +2 -2
- package/dist/cjs/calcite-flow_4.cjs.entry.js +43 -12
- package/dist/cjs/card-manager_3.cjs.entry.js +3 -1
- package/dist/cjs/crowdsource-reporter.cjs.entry.js +11 -22
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/{popupUtils-a73902a6.js → popupUtils-7755782a.js} +9 -12
- package/dist/cjs/solutions-components.cjs.js +1 -1
- package/dist/collection/components/crowdsource-reporter/crowdsource-reporter.css +0 -21
- package/dist/collection/components/crowdsource-reporter/crowdsource-reporter.js +27 -21
- package/dist/collection/components/feature-list/feature-list.js +43 -10
- package/dist/collection/components/info-card/info-card.js +1 -1
- package/dist/collection/components/layer-list/layer-list.js +2 -1
- package/dist/collection/components/layer-table/layer-table.js +3 -1
- package/dist/collection/demos/crowdsource-reporter.html +92 -58
- package/dist/collection/demos/feature-list.html +65 -17
- package/dist/collection/demos/layer-list.html +43 -3
- package/dist/collection/utils/interfaces.ts +1 -1
- package/dist/collection/utils/popupUtils.js +9 -12
- package/dist/collection/utils/popupUtils.ts +30 -32
- package/dist/components/crowdsource-reporter.js +12 -23
- package/dist/components/feature-list2.js +42 -10
- package/dist/components/info-card2.js +1 -1
- package/dist/components/layer-list2.js +2 -1
- package/dist/components/layer-table2.js +3 -1
- package/dist/components/popupUtils.js +9 -12
- package/dist/esm/calcite-alert_4.entry.js +2 -2
- package/dist/esm/calcite-flow_4.entry.js +43 -12
- package/dist/esm/card-manager_3.entry.js +3 -1
- package/dist/esm/crowdsource-reporter.entry.js +12 -23
- package/dist/esm/loader.js +1 -1
- package/dist/esm/{popupUtils-a593bd78.js → popupUtils-d75edf93.js} +9 -12
- package/dist/esm/solutions-components.js +1 -1
- package/dist/solutions-components/demos/crowdsource-reporter.html +92 -58
- package/dist/solutions-components/demos/feature-list.html +65 -17
- package/dist/solutions-components/demos/layer-list.html +43 -3
- package/dist/solutions-components/p-515a319e.js +21 -0
- package/dist/solutions-components/p-6a452a84.entry.js +17 -0
- package/dist/solutions-components/p-8756eebb.entry.js +6 -0
- package/dist/solutions-components/{p-29f661f5.entry.js → p-934cbe40.entry.js} +2 -2
- package/dist/solutions-components/{p-5af99fd8.entry.js → p-9549b5b1.entry.js} +1 -1
- package/dist/solutions-components/solutions-components.esm.js +1 -1
- package/dist/solutions-components/utils/interfaces.ts +1 -1
- package/dist/solutions-components/utils/popupUtils.ts +30 -32
- package/dist/types/components/crowdsource-reporter/crowdsource-reporter.d.ts +5 -1
- package/dist/types/components/feature-list/feature-list.d.ts +8 -0
- package/dist/types/components.d.ts +19 -0
- package/dist/types/preact.d.ts +3 -1
- package/dist/types/utils/interfaces.d.ts +1 -1
- package/dist/types/utils/popupUtils.d.ts +3 -2
- package/package.json +1 -1
- package/dist/solutions-components/p-0b619197.entry.js +0 -17
- package/dist/solutions-components/p-db868283.js +0 -21
- package/dist/solutions-components/p-e88a64be.entry.js +0 -6
@@ -17,7 +17,7 @@ const t9n = require('./t9n-0556abcb.js');
|
|
17
17
|
const resources = require('./resources-222ad22c.js');
|
18
18
|
const locale$1 = require('./locale-a476e15d.js');
|
19
19
|
const mapViewUtils = require('./mapViewUtils-8aa325de.js');
|
20
|
-
const popupUtils = require('./popupUtils-
|
20
|
+
const popupUtils = require('./popupUtils-7755782a.js');
|
21
21
|
require('./guid-1a466ca6.js');
|
22
22
|
require('./resources-6c60363a.js');
|
23
23
|
require('./key-b8c05387.js');
|
@@ -813,7 +813,7 @@ const InfoCard = class {
|
|
813
813
|
if (this.graphics.length > 0) {
|
814
814
|
this._layer = (_a = this.graphics[0]) === null || _a === void 0 ? void 0 : _a.layer;
|
815
815
|
this._editEnabled = this._layer.editingEnabled && this._layer.capabilities.operations.supportsUpdate;
|
816
|
-
this._mobileTitle = await this._popupUtils.getPopupTitle(this.graphics[0]);
|
816
|
+
this._mobileTitle = await this._popupUtils.getPopupTitle(this.graphics[0], this.mapView.map);
|
817
817
|
this._features.open({
|
818
818
|
features: this.graphics
|
819
819
|
});
|
@@ -15,7 +15,7 @@ const interactive = require('./interactive-8aff886e.js');
|
|
15
15
|
const locale = require('./locale-6a627639.js');
|
16
16
|
const t9n = require('./t9n-0556abcb.js');
|
17
17
|
const resources = require('./resources-8e3763a4.js');
|
18
|
-
const popupUtils = require('./popupUtils-
|
18
|
+
const popupUtils = require('./popupUtils-7755782a.js');
|
19
19
|
const mapViewUtils = require('./mapViewUtils-8aa325de.js');
|
20
20
|
const locale$1 = require('./locale-a476e15d.js');
|
21
21
|
require('./guid-1a466ca6.js');
|
@@ -357,6 +357,18 @@ const FeatureList = class {
|
|
357
357
|
}
|
358
358
|
//--------------------------------------------------------------------------
|
359
359
|
//
|
360
|
+
// Watch handlers
|
361
|
+
//
|
362
|
+
//--------------------------------------------------------------------------
|
363
|
+
/**
|
364
|
+
* Watch for selectedLayerId change and update layer instance and features list for new layerId
|
365
|
+
*/
|
366
|
+
async selectedLayerWatchHandler() {
|
367
|
+
this._selectedLayer = await mapViewUtils.getLayerOrTable(this.mapView, this.selectedLayerId);
|
368
|
+
await this.initializeFeatureItems();
|
369
|
+
}
|
370
|
+
//--------------------------------------------------------------------------
|
371
|
+
//
|
360
372
|
// Functions (lifecycle)
|
361
373
|
//
|
362
374
|
//--------------------------------------------------------------------------
|
@@ -368,23 +380,22 @@ const FeatureList = class {
|
|
368
380
|
await this._getTranslations();
|
369
381
|
this._isLoading = true;
|
370
382
|
this._popupUtils = new popupUtils.PopupUtils();
|
371
|
-
|
383
|
+
if (this.mapView && this.selectedLayerId) {
|
384
|
+
this._selectedLayer = await mapViewUtils.getLayerOrTable(this.mapView, this.selectedLayerId);
|
385
|
+
}
|
372
386
|
}
|
373
387
|
/**
|
374
388
|
* StencilJS: Called once just after the component is fully loaded and the first render() occurs.
|
375
389
|
*/
|
376
390
|
async componentDidLoad() {
|
377
|
-
|
378
|
-
this._featureItems = await this.queryPage(0);
|
379
|
-
this._featuresCount = await this._selectedLayer.queryFeatureCount();
|
380
|
-
this._isLoading = false;
|
381
|
-
}
|
391
|
+
await this.initializeFeatureItems();
|
382
392
|
}
|
383
393
|
/**
|
384
394
|
* Renders the component.
|
385
395
|
*/
|
386
396
|
render() {
|
387
|
-
return (index.h("calcite-panel", { "full-height": true, "full-width": true }, this._isLoading && index.h("calcite-loader", { scale: "m" }), this._featureItems.length === 0 && !this._isLoading &&
|
397
|
+
return (index.h("calcite-panel", { "full-height": true, "full-width": true }, this._isLoading && index.h("calcite-loader", { scale: "m" }), this._featureItems.length === 0 && !this._isLoading &&
|
398
|
+
index.h("calcite-notice", { class: "error-msg", icon: "feature-details", kind: "info", open: true }, index.h("div", { slot: "message" }, this.noFeaturesFoundMsg ? this.noFeaturesFoundMsg : this._translations.featureErrorMsg)), index.h("calcite-list", { "selection-appearance": "border", "selection-mode": "single" }, !this._isLoading && this._featureItems.length > 0 && this._featureItems), this._featuresCount > this.pageSize &&
|
388
399
|
index.h("div", { class: "width-full", slot: "footer" }, index.h("calcite-pagination", { class: "pagination", "full-width": true, onCalcitePaginationChange: this.pageChanged.bind(this), "page-size": this.pageSize, "start-item": "1", "total-items": this._featuresCount }))));
|
389
400
|
}
|
390
401
|
//--------------------------------------------------------------------------
|
@@ -392,6 +403,17 @@ const FeatureList = class {
|
|
392
403
|
// Functions (protected)
|
393
404
|
//
|
394
405
|
//--------------------------------------------------------------------------
|
406
|
+
/**
|
407
|
+
* Initialize the features list using the selected layer
|
408
|
+
*/
|
409
|
+
async initializeFeatureItems() {
|
410
|
+
if (this._selectedLayer) {
|
411
|
+
this._isLoading = true;
|
412
|
+
this._featureItems = await this.queryPage(0);
|
413
|
+
this._featuresCount = await this._selectedLayer.queryFeatureCount();
|
414
|
+
this._isLoading = false;
|
415
|
+
}
|
416
|
+
}
|
395
417
|
/**
|
396
418
|
* On page change get the next updated feature list
|
397
419
|
* @param event page change event
|
@@ -436,14 +458,19 @@ const FeatureList = class {
|
|
436
458
|
*/
|
437
459
|
async queryPage(page) {
|
438
460
|
const featureLayer = this._selectedLayer;
|
461
|
+
const objectIdField = featureLayer.objectIdField;
|
439
462
|
const query = {
|
440
463
|
start: page,
|
441
464
|
num: this.pageSize,
|
442
465
|
outFields: ["*"],
|
443
|
-
orderByFields: [featureLayer.objectIdField + " DESC"],
|
444
466
|
returnGeometry: true,
|
445
|
-
where: featureLayer.definitionExpression
|
467
|
+
where: featureLayer.definitionExpression,
|
468
|
+
outSpatialReference: this.mapView.spatialReference.toJSON()
|
446
469
|
};
|
470
|
+
//sort only when objectId field is found
|
471
|
+
if (objectIdField) {
|
472
|
+
query.orderByFields = [objectIdField.toString() + " DESC"];
|
473
|
+
}
|
447
474
|
const featureSet = await featureLayer.queryFeatures(query);
|
448
475
|
return await this.createFeatureItem(featureSet);
|
449
476
|
}
|
@@ -456,7 +483,7 @@ const FeatureList = class {
|
|
456
483
|
async createFeatureItem(featureSet) {
|
457
484
|
const currentFeatures = featureSet === null || featureSet === void 0 ? void 0 : featureSet.features;
|
458
485
|
const items = currentFeatures.map(async (feature) => {
|
459
|
-
const popupTitle = await this._popupUtils.getPopupTitle(feature);
|
486
|
+
const popupTitle = await this._popupUtils.getPopupTitle(feature, this.mapView.map);
|
460
487
|
return this.getFeatureItem(feature, popupTitle);
|
461
488
|
});
|
462
489
|
return Promise.all(items);
|
@@ -485,6 +512,9 @@ const FeatureList = class {
|
|
485
512
|
this._translations = messages[0];
|
486
513
|
}
|
487
514
|
get el() { return index.getElement(this); }
|
515
|
+
static get watchers() { return {
|
516
|
+
"selectedLayerId": ["selectedLayerWatchHandler"]
|
517
|
+
}; }
|
488
518
|
};
|
489
519
|
FeatureList.style = featureListCss;
|
490
520
|
|
@@ -527,7 +557,8 @@ const LayerList = class {
|
|
527
557
|
* Renders the component.
|
528
558
|
*/
|
529
559
|
render() {
|
530
|
-
return (index.h(index.Fragment, null, this._isLoading && index.h("calcite-loader", { scale: "m" }), !this._isLoading && this.mapView && this._noLayersToDisplay &&
|
560
|
+
return (index.h(index.Fragment, null, this._isLoading && index.h("calcite-loader", { scale: "m" }), !this._isLoading && this.mapView && this._noLayersToDisplay &&
|
561
|
+
index.h("calcite-notice", { class: "error-msg", icon: "layers-reference", kind: "danger", open: true }, index.h("div", { slot: "title" }, this._translations.error), index.h("div", { slot: "message" }, this.noLayerErrorMsg ? this.noLayerErrorMsg : this._translations.noLayerToDisplayErrorMsg)), !this._isLoading && this.mapView &&
|
531
562
|
index.h("calcite-list", null, this.renderLayerList())));
|
532
563
|
}
|
533
564
|
//--------------------------------------------------------------------------
|
@@ -1194,7 +1194,7 @@ const LayerTable = class {
|
|
1194
1194
|
*/
|
1195
1195
|
_filterModal() {
|
1196
1196
|
var _a, _b, _c;
|
1197
|
-
return (index.h("calcite-modal", { "aria-labelledby": "modal-title", class: "modal", kind: "brand", onCalciteModalClose: async () => this._closeFilter(), open: this._filterOpen, widthScale: "s" }, index.h("div", { class: "display-flex align-center", id: "modal-title", slot: "header" }, (_b = (_a = this._translations) === null || _a === void 0 ? void 0 : _a.filter) === null || _b === void 0 ? void 0 : _b.replace("{{title}}", (_c = this._layer) === null || _c === void 0 ? void 0 : _c.title)), index.h("div", { slot: "content" }, index.h("instant-apps-filter-list", { autoUpdateUrl:
|
1197
|
+
return (index.h("calcite-modal", { "aria-labelledby": "modal-title", class: "modal", kind: "brand", onCalciteModalClose: async () => this._closeFilter(), open: this._filterOpen, widthScale: "s" }, index.h("div", { class: "display-flex align-center", id: "modal-title", slot: "header" }, (_b = (_a = this._translations) === null || _a === void 0 ? void 0 : _a.filter) === null || _b === void 0 ? void 0 : _b.replace("{{title}}", (_c = this._layer) === null || _c === void 0 ? void 0 : _c.title)), index.h("div", { slot: "content" }, index.h("instant-apps-filter-list", { autoUpdateUrl: false, closeBtn: true, closeBtnOnClick: async () => this._closeFilter(), layerExpressions: this._layerExpressions, onFilterListReset: () => this._handleFilterListReset(), onFilterUpdate: () => this._handleFilterUpdate(), ref: (el) => this._filterList = el, view: this.mapView, zoomBtn: false }))));
|
1198
1198
|
}
|
1199
1199
|
/**
|
1200
1200
|
* Reset the filter active prop
|
@@ -1295,6 +1295,8 @@ const LayerTable = class {
|
|
1295
1295
|
var _a, _b;
|
1296
1296
|
const layerExpressions = (_b = (_a = this.mapInfo) === null || _a === void 0 ? void 0 : _a.filterConfig) === null || _b === void 0 ? void 0 : _b.layerExpressions;
|
1297
1297
|
this._layerExpressions = layerExpressions ? layerExpressions.filter((exp) => exp.id === this._layer.id) : [];
|
1298
|
+
this._filterList.layerExpressions = this._layerExpressions;
|
1299
|
+
this._filterActive = false;
|
1298
1300
|
}
|
1299
1301
|
/**
|
1300
1302
|
* Select all rows that are not currently selectd
|
@@ -12,11 +12,12 @@ const locale = require('./locale-a476e15d.js');
|
|
12
12
|
require('./esri-loader-a91c0ec1.js');
|
13
13
|
require('./_commonjsHelpers-384729db.js');
|
14
14
|
|
15
|
-
const crowdsourceReporterCss = ":host{display:block;--calcite-label-margin-bottom:0px;--solutions-theme-foreground-color:var(--calcite-color-foreground-1)}.width-full{width:100% !important}.width-0{width:0}.height-full{height:100% !important}.height-0{height:0}.overflow-hidden{overflow:hidden}.border{border:1px solid var(--calcite-color-border-3)}.
|
15
|
+
const crowdsourceReporterCss = ":host{display:block;--calcite-label-margin-bottom:0px;--solutions-theme-foreground-color:var(--calcite-color-foreground-1)}.width-full{width:100% !important}.width-0{width:0}.height-full{height:100% !important}.height-0{height:0}.overflow-hidden{overflow:hidden}.border{border:1px solid var(--calcite-color-border-3)}.error-msg{padding:10px}";
|
16
16
|
|
17
17
|
const CrowdsourceReporter = class {
|
18
18
|
constructor(hostRef) {
|
19
19
|
index.registerInstance(this, hostRef);
|
20
|
+
this.togglePanel = index.createEvent(this, "togglePanel", 7);
|
20
21
|
this.description = undefined;
|
21
22
|
this.isMobile = undefined;
|
22
23
|
this.enableAnonymousAccess = undefined;
|
@@ -53,9 +54,7 @@ const CrowdsourceReporter = class {
|
|
53
54
|
* Called each time the mapView prop is changed.
|
54
55
|
*/
|
55
56
|
async isMobileWatchHandler() {
|
56
|
-
|
57
|
-
this._sidePanelCollapsed = false;
|
58
|
-
}
|
57
|
+
this._sidePanelCollapsed = false;
|
59
58
|
}
|
60
59
|
/**
|
61
60
|
* Called each time the mapView prop is changed.
|
@@ -67,16 +66,6 @@ const CrowdsourceReporter = class {
|
|
67
66
|
}
|
68
67
|
//--------------------------------------------------------------------------
|
69
68
|
//
|
70
|
-
// Methods (public)
|
71
|
-
//
|
72
|
-
//--------------------------------------------------------------------------
|
73
|
-
//--------------------------------------------------------------------------
|
74
|
-
//
|
75
|
-
// Events (public)
|
76
|
-
//
|
77
|
-
//--------------------------------------------------------------------------
|
78
|
-
//--------------------------------------------------------------------------
|
79
|
-
//
|
80
69
|
// Functions (lifecycle)
|
81
70
|
//
|
82
71
|
//--------------------------------------------------------------------------
|
@@ -118,13 +107,8 @@ const CrowdsourceReporter = class {
|
|
118
107
|
break;
|
119
108
|
}
|
120
109
|
});
|
121
|
-
let sidePanelClass = "side-panel";
|
122
|
-
//in case of mobile handle for collapsed styles of the panel
|
123
|
-
if (this.isMobile && this._sidePanelCollapsed) {
|
124
|
-
sidePanelClass += " collapsed-side-panel";
|
125
|
-
}
|
126
110
|
const themeClass = this.theme === "dark" ? "calcite-mode-dark" : "calcite-mode-light";
|
127
|
-
return (index.h("calcite-panel", { class:
|
111
|
+
return (index.h("calcite-panel", { class: "width-full " + themeClass }, this.mapView
|
128
112
|
? index.h("calcite-flow", null, (renderLists === null || renderLists === void 0 ? void 0 : renderLists.length) > 0 && renderLists)
|
129
113
|
: index.h("calcite-loader", { scale: "m" })));
|
130
114
|
}
|
@@ -134,7 +118,10 @@ const CrowdsourceReporter = class {
|
|
134
118
|
* @protected
|
135
119
|
*/
|
136
120
|
getLayerListFlowItem() {
|
137
|
-
return (index.h("calcite-flow-item", { collapsed: this.isMobile && this._sidePanelCollapsed, heading: this.reportsHeader }, this._hasValidLayers &&
|
121
|
+
return (index.h("calcite-flow-item", { collapsed: this.isMobile && this._sidePanelCollapsed, heading: this.reportsHeader }, this._hasValidLayers &&
|
122
|
+
index.h("calcite-action", { icon: "sort-ascending-arrow", slot: this.isMobile ? "header-menu-actions" : "header-actions-end", text: this._translations.sort, "text-enabled": this.isMobile }), this._hasValidLayers &&
|
123
|
+
index.h("calcite-action", { icon: "filter", slot: this.isMobile ? "header-menu-actions" : "header-actions-end", text: this._translations.filter, "text-enabled": this.isMobile }), this.isMobile && this.getActionToExpandCollapsePanel(), this._hasValidLayers && this.enableNewReports &&
|
124
|
+
index.h("calcite-button", { appearance: "secondary", slot: "footer", width: "full" }, this.reportButtonText), index.h("calcite-panel", { "full-height": true, "full-width": true }, index.h("layer-list", { class: "height-full", layers: this.layers, mapView: this.mapView, noLayerErrorMsg: this._translations.noLayerToDisplayErrorMsg, onLayerSelect: this.displayFeaturesList.bind(this), onLayersListLoaded: this.layerListLoaded.bind(this) }))));
|
138
125
|
}
|
139
126
|
/**
|
140
127
|
* When layer list is loaded, we will receive the list of layers, if its means we don't have any valid layer to be listed
|
@@ -169,6 +156,7 @@ const CrowdsourceReporter = class {
|
|
169
156
|
*/
|
170
157
|
toggleSidePanel() {
|
171
158
|
this._sidePanelCollapsed = !this._sidePanelCollapsed;
|
159
|
+
this.togglePanel.emit(this._sidePanelCollapsed);
|
172
160
|
}
|
173
161
|
/**
|
174
162
|
* When feature is selected from list store that and show feature details
|
@@ -185,7 +173,8 @@ const CrowdsourceReporter = class {
|
|
185
173
|
* @protected
|
186
174
|
*/
|
187
175
|
getFeatureListFlowItem(layerId, layerName) {
|
188
|
-
return (index.h("calcite-flow-item", { collapsed: this.isMobile && this._sidePanelCollapsed, heading: layerName, onCalciteFlowItemBack: this.backFromFeatureList.bind(this) }, index.h("calcite-action", { icon: "sort-ascending-arrow", slot: this.isMobile ? "header-menu-actions" : "header-actions-end", text: this._translations.sort, "text-enabled": this.isMobile }), index.h("calcite-action", { icon: "filter", slot: this.isMobile ? "header-menu-actions" : "header-actions-end", text: this._translations.filter, "text-enabled": this.isMobile }), this.isMobile && this.getActionToExpandCollapsePanel(), this.enableNewReports &&
|
176
|
+
return (index.h("calcite-flow-item", { collapsed: this.isMobile && this._sidePanelCollapsed, heading: layerName, onCalciteFlowItemBack: this.backFromFeatureList.bind(this) }, index.h("calcite-action", { icon: "sort-ascending-arrow", slot: this.isMobile ? "header-menu-actions" : "header-actions-end", text: this._translations.sort, "text-enabled": this.isMobile }), index.h("calcite-action", { icon: "filter", slot: this.isMobile ? "header-menu-actions" : "header-actions-end", text: this._translations.filter, "text-enabled": this.isMobile }), this.isMobile && this.getActionToExpandCollapsePanel(), this.enableNewReports &&
|
177
|
+
index.h("calcite-button", { appearance: "secondary", slot: "footer", width: "full" }, this.reportButtonText), index.h("calcite-panel", { "full-height": true }, index.h("feature-list", { class: "height-full", highlightOnMap: true, mapView: this.mapView, noFeaturesFoundMsg: this._translations.featureErrorMsg, onFeatureSelect: this.onFeatureSelectFromList.bind(this), pageSize: 30, selectedLayerId: layerId }))));
|
189
178
|
}
|
190
179
|
/**
|
191
180
|
* Returns the calcite-flow item for feature details
|