@esri/solutions-components 0.7.30 → 0.7.31
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/assets/t9n/crowdsource-reporter/resources.json +7 -5
- package/dist/assets/t9n/crowdsource-reporter/resources_en.json +7 -5
- package/dist/assets/t9n/feature-list/resources.json +1 -1
- package/dist/assets/t9n/feature-list/resources_en.json +1 -1
- package/dist/assets/t9n/layer-list/resources.json +1 -1
- package/dist/assets/t9n/layer-list/resources_en.json +1 -1
- package/dist/cjs/{calcite-flow_4.cjs.entry.js → calcite-flow_5.cjs.entry.js} +235 -19
- package/dist/cjs/card-manager_3.cjs.entry.js +1 -1
- package/dist/cjs/crowdsource-reporter.cjs.entry.js +221 -32
- package/dist/cjs/{downloadUtils-83c6d3c3.js → downloadUtils-10e0de31.js} +2 -2
- package/dist/cjs/{index.es-bd1a93b2.js → index.es-72dc7ab9.js} +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/map-select-tools_3.cjs.entry.js +1 -1
- package/dist/cjs/public-notification.cjs.entry.js +1 -1
- package/dist/cjs/solutions-components.cjs.js +1 -1
- package/dist/collection/collection-manifest.json +1 -0
- package/dist/collection/components/create-feature/create-feature.css +23 -0
- package/dist/collection/components/create-feature/create-feature.js +361 -0
- package/dist/collection/components/crowdsource-reporter/crowdsource-reporter.css +10 -1
- package/dist/collection/components/crowdsource-reporter/crowdsource-reporter.js +260 -33
- package/dist/collection/components/feature-list/feature-list.js +1 -0
- package/dist/collection/components/layer-list/layer-list.js +60 -16
- package/dist/collection/demos/crowdsource-reporter.html +26 -11
- package/dist/collection/utils/downloadUtils.js +1 -1
- package/dist/collection/utils/downloadUtils.ts +1 -1
- package/dist/components/create-feature.d.ts +11 -0
- package/dist/components/create-feature.js +11 -0
- package/dist/components/create-feature2.js +226 -0
- package/dist/components/crowdsource-reporter.js +297 -90
- package/dist/components/downloadUtils.js +1 -1
- package/dist/components/feature-list2.js +1 -0
- package/dist/components/layer-list2.js +38 -17
- package/dist/esm/{calcite-flow_4.entry.js → calcite-flow_5.entry.js} +235 -20
- package/dist/esm/card-manager_3.entry.js +1 -1
- package/dist/esm/crowdsource-reporter.entry.js +222 -33
- package/dist/esm/{downloadUtils-d070a467.js → downloadUtils-d297078f.js} +2 -2
- package/dist/esm/{index.es-d48535a2.js → index.es-3b4fa9d0.js} +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/map-select-tools_3.entry.js +1 -1
- package/dist/esm/public-notification.entry.js +1 -1
- package/dist/esm/solutions-components.js +1 -1
- package/dist/solutions-components/demos/crowdsource-reporter.html +26 -11
- package/dist/solutions-components/{p-f120ff40.entry.js → p-09ec8c8f.entry.js} +1 -1
- package/dist/solutions-components/{p-55b835a1.js → p-103c5318.js} +2 -2
- package/dist/solutions-components/{p-309cdea1.entry.js → p-57d49d15.entry.js} +1 -1
- package/dist/solutions-components/{p-b913a4fd.js → p-8ec25bf4.js} +1 -1
- package/dist/solutions-components/{p-f22ff57e.entry.js → p-921f21d5.entry.js} +1 -1
- package/dist/solutions-components/p-b4e2cac4.entry.js +17 -0
- package/dist/solutions-components/p-bb6562ab.entry.js +6 -0
- package/dist/solutions-components/solutions-components.esm.js +1 -1
- package/dist/solutions-components/utils/downloadUtils.ts +1 -1
- package/dist/types/components/create-feature/create-feature.d.ts +107 -0
- package/dist/types/components/crowdsource-reporter/crowdsource-reporter.d.ts +132 -12
- package/dist/types/components/feature-list/feature-list.d.ts +1 -0
- package/dist/types/components/layer-list/layer-list.d.ts +6 -0
- package/dist/types/components.d.ts +89 -0
- package/dist/types/preact.d.ts +6 -0
- package/package.json +1 -1
- package/dist/solutions-components/p-2f162664.entry.js +0 -6
- package/dist/solutions-components/p-94ee3ef7.entry.js +0 -17
@@ -2859,7 +2859,7 @@ function _prepareAttributeValue(attributeValue, attributeType, attributeDomain,
|
|
2859
2859
|
if (attributeDomain && attributeDomain.type === "coded-value") {
|
2860
2860
|
// "coded-value" domain field
|
2861
2861
|
const value = attributeDomain.getName(attributeValue);
|
2862
|
-
return value.toString();
|
2862
|
+
return value === null || value === void 0 ? void 0 : value.toString();
|
2863
2863
|
}
|
2864
2864
|
else {
|
2865
2865
|
// Non-domain field or unsupported domain type
|
@@ -91,6 +91,7 @@ const FeatureList = /*@__PURE__*/ proxyCustomElement(class FeatureList extends H
|
|
91
91
|
//--------------------------------------------------------------------------
|
92
92
|
/**
|
93
93
|
* Initialize the features list using the selected layer
|
94
|
+
* @protected
|
94
95
|
*/
|
95
96
|
async initializeFeatureItems() {
|
96
97
|
if (this._selectedLayer) {
|
@@ -39,6 +39,23 @@ const LayerList = /*@__PURE__*/ proxyCustomElement(class LayerList extends HTMLE
|
|
39
39
|
}
|
40
40
|
//--------------------------------------------------------------------------
|
41
41
|
//
|
42
|
+
// Watch handlers
|
43
|
+
//
|
44
|
+
//--------------------------------------------------------------------------
|
45
|
+
//--------------------------------------------------------------------------
|
46
|
+
//
|
47
|
+
// Methods (public)
|
48
|
+
//
|
49
|
+
//--------------------------------------------------------------------------
|
50
|
+
/**
|
51
|
+
* Refresh the layer list which will fetch the latest layer count and update the list
|
52
|
+
* @returns Promise that resolves when the operation is complete
|
53
|
+
*/
|
54
|
+
async refresh() {
|
55
|
+
await this.setLayers();
|
56
|
+
}
|
57
|
+
//--------------------------------------------------------------------------
|
58
|
+
//
|
42
59
|
// Functions (lifecycle)
|
43
60
|
//
|
44
61
|
//--------------------------------------------------------------------------
|
@@ -63,7 +80,7 @@ const LayerList = /*@__PURE__*/ proxyCustomElement(class LayerList extends HTMLE
|
|
63
80
|
render() {
|
64
81
|
return (h(Fragment, null, this._isLoading && h("calcite-loader", { scale: "m" }), !this._isLoading && this.mapView && this._noLayersToDisplay &&
|
65
82
|
h("calcite-notice", { class: "error-msg", icon: "layers-reference", kind: "danger", open: true }, h("div", { slot: "title" }, this._translations.error), h("div", { slot: "message" }, this.noLayerErrorMsg ? this.noLayerErrorMsg : this._translations.noLayerToDisplayErrorMsg)), !this._isLoading && this.mapView &&
|
66
|
-
h("calcite-list", { "selection-appearance": "border", "selection-mode": this.showNextIcon ? "none" : "single" }, this.renderLayerList())));
|
83
|
+
h("calcite-list", { "selection-appearance": "border", "selection-mode": this.showNextIcon ? "none" : "single-persist" }, this.renderLayerList())));
|
67
84
|
}
|
68
85
|
//--------------------------------------------------------------------------
|
69
86
|
//
|
@@ -90,21 +107,24 @@ const LayerList = /*@__PURE__*/ proxyCustomElement(class LayerList extends HTMLE
|
|
90
107
|
this._layerItemsHash = await getMapLayerHash(this.mapView, true);
|
91
108
|
const allMapLayers = await getAllLayers(this.mapView);
|
92
109
|
// eslint-disable-next-line @typescript-eslint/no-misused-promises
|
93
|
-
|
110
|
+
allMapLayers.forEach(async (eachLayer) => {
|
94
111
|
var _a, _b;
|
95
112
|
//TODO: checking editable condition could be configurable
|
96
|
-
if ((eachLayer === null || eachLayer === void 0 ? void 0 : eachLayer.type) === "feature" && (eachLayer === null || eachLayer === void 0 ? void 0 : eachLayer.editingEnabled) && ((_b = (_a = eachLayer === null || eachLayer === void 0 ? void 0 : eachLayer.capabilities) === null || _a === void 0 ? void 0 : _a.operations) === null || _b === void 0 ? void 0 : _b.
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
113
|
+
if ((eachLayer === null || eachLayer === void 0 ? void 0 : eachLayer.type) === "feature" && (eachLayer === null || eachLayer === void 0 ? void 0 : eachLayer.editingEnabled) && ((_b = (_a = eachLayer === null || eachLayer === void 0 ? void 0 : eachLayer.capabilities) === null || _a === void 0 ? void 0 : _a.operations) === null || _b === void 0 ? void 0 : _b.supportsAdd)) {
|
114
|
+
this._layerItemsHash[eachLayer.id].supportsAdd = true;
|
115
|
+
if (this.showFeatureCount) {
|
116
|
+
const q = eachLayer.createQuery();
|
117
|
+
const result = eachLayer.queryFeatureCount(q);
|
118
|
+
def.push(result);
|
119
|
+
void result.then(async (resCount) => {
|
120
|
+
const formattedCount = !isNaN(resCount) ? await formatNumber(resCount, {
|
121
|
+
places: 0,
|
122
|
+
api: 4,
|
123
|
+
type: "decimal"
|
124
|
+
}) : "";
|
125
|
+
this._layerItemsHash[eachLayer.id].formattedFeatureCount = formattedCount;
|
126
|
+
});
|
127
|
+
}
|
108
128
|
}
|
109
129
|
});
|
110
130
|
await Promise.all(def).then(() => {
|
@@ -132,9 +152,9 @@ const LayerList = /*@__PURE__*/ proxyCustomElement(class LayerList extends HTMLE
|
|
132
152
|
var _a;
|
133
153
|
const configuredLayers = ((_a = this.layers) === null || _a === void 0 ? void 0 : _a.length) > 0 ? this.layers : [];
|
134
154
|
return Object.keys(hash).reduce((prev, cur) => {
|
135
|
-
let showLayer = hash[cur].
|
155
|
+
let showLayer = hash[cur].supportsAdd;
|
136
156
|
if ((configuredLayers === null || configuredLayers === void 0 ? void 0 : configuredLayers.length) > 0) {
|
137
|
-
showLayer = configuredLayers.indexOf(cur) > -1 ? hash[cur].
|
157
|
+
showLayer = configuredLayers.indexOf(cur) > -1 ? hash[cur].supportsAdd : false;
|
138
158
|
}
|
139
159
|
if (showLayer) {
|
140
160
|
prev.push(cur);
|
@@ -193,7 +213,8 @@ const LayerList = /*@__PURE__*/ proxyCustomElement(class LayerList extends HTMLE
|
|
193
213
|
"_noLayersToDisplay": [32],
|
194
214
|
"_mapLayerIds": [32],
|
195
215
|
"_isLoading": [32],
|
196
|
-
"_translations": [32]
|
216
|
+
"_translations": [32],
|
217
|
+
"refresh": [64]
|
197
218
|
}]);
|
198
219
|
function defineCustomElement() {
|
199
220
|
if (typeof customElements === "undefined") {
|
@@ -11,16 +11,16 @@ import { c as connectInteractive, u as updateHostInteraction, d as disconnectInt
|
|
11
11
|
import { c as connectLocalized, d as disconnectLocalized } from './locale-6107ef11.js';
|
12
12
|
import { c as connectMessages, s as setUpMessages, d as disconnectMessages, u as updateMessages } from './t9n-f16911e7.js';
|
13
13
|
import { S as SLOTS$1 } from './resources-649a0f91.js';
|
14
|
-
import {
|
14
|
+
import { l as loadModules, g as getLocaleComponentStrings, f as formatNumber } from './locale-731e75a8.js';
|
15
15
|
import { g as getLayerOrTable, c as getFeatureLayerView, h as highlightFeatures, d as getMapLayerHash, a as getAllLayers } from './mapViewUtils-cf05e880.js';
|
16
|
-
import {
|
16
|
+
import { P as PopupUtils } from './popupUtils-d75edf93.js';
|
17
17
|
import './guid-36c6c6a5.js';
|
18
18
|
import './resources-cdc36705.js';
|
19
19
|
import './browser-b4c16201.js';
|
20
20
|
import './key-af303047.js';
|
21
|
-
import './interfaces-586e863c.js';
|
22
21
|
import './esri-loader-eda07632.js';
|
23
22
|
import './_commonjsHelpers-d5f9d613.js';
|
23
|
+
import './interfaces-586e863c.js';
|
24
24
|
|
25
25
|
/*!
|
26
26
|
* All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
@@ -335,6 +335,200 @@ const FlowItem = class {
|
|
335
335
|
};
|
336
336
|
FlowItem.style = flowItemCss;
|
337
337
|
|
338
|
+
const createFeatureCss = ":host{display:block}.esri-editor__panel-toolbar{display:none !important}";
|
339
|
+
|
340
|
+
const CreateFeature = class {
|
341
|
+
constructor(hostRef) {
|
342
|
+
registerInstance(this, hostRef);
|
343
|
+
this.success = createEvent(this, "success", 7);
|
344
|
+
this.fail = createEvent(this, "fail", 7);
|
345
|
+
this.drawComplete = createEvent(this, "drawComplete", 7);
|
346
|
+
this.mapView = undefined;
|
347
|
+
this.selectedLayerId = undefined;
|
348
|
+
}
|
349
|
+
//--------------------------------------------------------------------------
|
350
|
+
//
|
351
|
+
// Watch handlers
|
352
|
+
//
|
353
|
+
//--------------------------------------------------------------------------
|
354
|
+
/**
|
355
|
+
* Called each time the mapView prop is changed.
|
356
|
+
*/
|
357
|
+
async mapViewWatchHandler() {
|
358
|
+
await this.mapView.when(async () => {
|
359
|
+
await this.init();
|
360
|
+
});
|
361
|
+
}
|
362
|
+
//--------------------------------------------------------------------------
|
363
|
+
//
|
364
|
+
// Methods (public)
|
365
|
+
//
|
366
|
+
//--------------------------------------------------------------------------
|
367
|
+
/**
|
368
|
+
* Destroy the Editor widget instance
|
369
|
+
* @returns Promise that resolves when the operation is complete
|
370
|
+
*/
|
371
|
+
async close() {
|
372
|
+
if (this._editor) {
|
373
|
+
this._editor.destroy();
|
374
|
+
}
|
375
|
+
}
|
376
|
+
/**
|
377
|
+
* Submit the created feature
|
378
|
+
* @returns Promise that resolves when the operation is complete
|
379
|
+
*/
|
380
|
+
async submit() {
|
381
|
+
if (this._editor) {
|
382
|
+
this._editor.viewModel.featureFormViewModel.submit();
|
383
|
+
}
|
384
|
+
}
|
385
|
+
//--------------------------------------------------------------------------
|
386
|
+
//
|
387
|
+
// Functions (lifecycle)
|
388
|
+
//
|
389
|
+
//--------------------------------------------------------------------------
|
390
|
+
/**
|
391
|
+
* StencilJS: Called once just after the component is first connected to the DOM.
|
392
|
+
* @returns Promise when complete
|
393
|
+
*/
|
394
|
+
async componentWillLoad() {
|
395
|
+
await this.initModules();
|
396
|
+
}
|
397
|
+
/**
|
398
|
+
* StencilJS: Called once just after the component is fully loaded and the first render() occurs.
|
399
|
+
*/
|
400
|
+
async componentDidLoad() {
|
401
|
+
await this.init();
|
402
|
+
}
|
403
|
+
/**
|
404
|
+
* Renders the component.
|
405
|
+
*/
|
406
|
+
render() {
|
407
|
+
return (h(Host, { id: "feature-form" }));
|
408
|
+
}
|
409
|
+
//--------------------------------------------------------------------------
|
410
|
+
//
|
411
|
+
// Functions (protected)
|
412
|
+
//
|
413
|
+
//--------------------------------------------------------------------------
|
414
|
+
/**
|
415
|
+
* Init Editor widget and starts the create workflow
|
416
|
+
*/
|
417
|
+
async init() {
|
418
|
+
if (this.mapView) {
|
419
|
+
if (this.mapView && this.selectedLayerId) {
|
420
|
+
await getLayerOrTable(this.mapView, this.selectedLayerId);
|
421
|
+
await this.createEditorWidget();
|
422
|
+
await this.startCreate();
|
423
|
+
this._editor.viewModel.featureFormViewModel.on('submit', this.submitted.bind(this));
|
424
|
+
setTimeout(() => {
|
425
|
+
var _a, _b;
|
426
|
+
this.el.querySelector('.esri-editor').querySelectorAll('calcite-flow-item')[1].shadowRoot.querySelector('calcite-panel').shadowRoot.querySelector('article').querySelector('header').setAttribute('style', 'display: none');
|
427
|
+
(_b = (_a = this.el.querySelector('.esri-editor').querySelectorAll('calcite-flow-item')[1].shadowRoot.querySelector('calcite-panel').shadowRoot.querySelector('article')) === null || _a === void 0 ? void 0 : _a.querySelector('footer')) === null || _b === void 0 ? void 0 : _b.setAttribute('style', 'display: none');
|
428
|
+
}, 700);
|
429
|
+
}
|
430
|
+
}
|
431
|
+
}
|
432
|
+
/**
|
433
|
+
* Load esri javascript api modules
|
434
|
+
* @returns Promise resolving when function is done
|
435
|
+
* @protected
|
436
|
+
*/
|
437
|
+
async initModules() {
|
438
|
+
const [Editor] = await loadModules([
|
439
|
+
"esri/widgets/Editor"
|
440
|
+
]);
|
441
|
+
this.Editor = Editor;
|
442
|
+
}
|
443
|
+
/**
|
444
|
+
* Display editor widget to create the new feature
|
445
|
+
* @protected
|
446
|
+
*/
|
447
|
+
async createEditorWidget() {
|
448
|
+
if (this._editor) {
|
449
|
+
this._editor.destroy();
|
450
|
+
}
|
451
|
+
const container = document.createElement("div");
|
452
|
+
const layer = await getLayerOrTable(this.mapView, this.selectedLayerId);
|
453
|
+
const selectedLayer = {
|
454
|
+
layer: layer
|
455
|
+
};
|
456
|
+
this._editor = new this.Editor({
|
457
|
+
allowedWorkflows: "create-features",
|
458
|
+
view: this.mapView,
|
459
|
+
layerInfos: [selectedLayer],
|
460
|
+
visibleElements: {
|
461
|
+
snappingControls: false,
|
462
|
+
snappingControlsElements: {
|
463
|
+
featureEnabledToggle: false,
|
464
|
+
layerList: false,
|
465
|
+
enabledToggle: false
|
466
|
+
}
|
467
|
+
},
|
468
|
+
container,
|
469
|
+
});
|
470
|
+
this.el.appendChild(container);
|
471
|
+
}
|
472
|
+
/**
|
473
|
+
* Start creating the feature
|
474
|
+
* @protected
|
475
|
+
*/
|
476
|
+
async startCreate() {
|
477
|
+
var _a, _b;
|
478
|
+
const layer = await getLayerOrTable(this.mapView, this.selectedLayerId);
|
479
|
+
if (layer) {
|
480
|
+
let template = layer.templates && layer.templates.length ? layer.templates[0] : {};
|
481
|
+
if (((_a = layer.sourceJSON) === null || _a === void 0 ? void 0 : _a.types.length) && ((_b = layer.sourceJSON.types[0].templates) === null || _b === void 0 ? void 0 : _b.length)) {
|
482
|
+
template = layer.sourceJSON.types[0].templates[0];
|
483
|
+
}
|
484
|
+
const creationInfo = {
|
485
|
+
layer: layer,
|
486
|
+
template: template
|
487
|
+
};
|
488
|
+
await this._editor.startCreateFeaturesWorkflowAtFeatureCreation(creationInfo);
|
489
|
+
this._editor.viewModel.sketchViewModel.on("create", (evt) => {
|
490
|
+
if (evt.state === "complete") {
|
491
|
+
this.drawComplete.emit();
|
492
|
+
}
|
493
|
+
});
|
494
|
+
}
|
495
|
+
}
|
496
|
+
/**
|
497
|
+
* On creation of feature emit the event that the feature is created
|
498
|
+
* @param evt feature submit event
|
499
|
+
* @protected
|
500
|
+
*/
|
501
|
+
async submitted(evt) {
|
502
|
+
var _a;
|
503
|
+
if (evt.invalid.length) {
|
504
|
+
return;
|
505
|
+
}
|
506
|
+
if (evt.valid.length) {
|
507
|
+
try {
|
508
|
+
await this._editor.activeWorkflow.commit();
|
509
|
+
//throw errors if any failures
|
510
|
+
if ((_a = this._editor.viewModel.failures) === null || _a === void 0 ? void 0 : _a.length) {
|
511
|
+
this._editor.viewModel.failures.some((failure) => {
|
512
|
+
if (failure.error) {
|
513
|
+
throw (failure.error);
|
514
|
+
}
|
515
|
+
});
|
516
|
+
}
|
517
|
+
}
|
518
|
+
catch (e) {
|
519
|
+
this.fail.emit(e);
|
520
|
+
return;
|
521
|
+
}
|
522
|
+
this.success.emit();
|
523
|
+
}
|
524
|
+
}
|
525
|
+
get el() { return getElement(this); }
|
526
|
+
static get watchers() { return {
|
527
|
+
"mapView": ["mapViewWatchHandler"]
|
528
|
+
}; }
|
529
|
+
};
|
530
|
+
CreateFeature.style = createFeatureCss;
|
531
|
+
|
338
532
|
const featureListCss = ":host{display:block}.width-full{width:100%}.pagination{display:flex;justify-content:center}.error-msg{padding:10px;width:calc(100% - 20px)}.popup-title{font-weight:500;padding:10px 12px}";
|
339
533
|
|
340
534
|
const FeatureList = class {
|
@@ -401,6 +595,7 @@ const FeatureList = class {
|
|
401
595
|
//--------------------------------------------------------------------------
|
402
596
|
/**
|
403
597
|
* Initialize the features list using the selected layer
|
598
|
+
* @protected
|
404
599
|
*/
|
405
600
|
async initializeFeatureItems() {
|
406
601
|
if (this._selectedLayer) {
|
@@ -534,6 +729,23 @@ const LayerList = class {
|
|
534
729
|
}
|
535
730
|
//--------------------------------------------------------------------------
|
536
731
|
//
|
732
|
+
// Watch handlers
|
733
|
+
//
|
734
|
+
//--------------------------------------------------------------------------
|
735
|
+
//--------------------------------------------------------------------------
|
736
|
+
//
|
737
|
+
// Methods (public)
|
738
|
+
//
|
739
|
+
//--------------------------------------------------------------------------
|
740
|
+
/**
|
741
|
+
* Refresh the layer list which will fetch the latest layer count and update the list
|
742
|
+
* @returns Promise that resolves when the operation is complete
|
743
|
+
*/
|
744
|
+
async refresh() {
|
745
|
+
await this.setLayers();
|
746
|
+
}
|
747
|
+
//--------------------------------------------------------------------------
|
748
|
+
//
|
537
749
|
// Functions (lifecycle)
|
538
750
|
//
|
539
751
|
//--------------------------------------------------------------------------
|
@@ -558,7 +770,7 @@ const LayerList = class {
|
|
558
770
|
render() {
|
559
771
|
return (h(Fragment, null, this._isLoading && h("calcite-loader", { scale: "m" }), !this._isLoading && this.mapView && this._noLayersToDisplay &&
|
560
772
|
h("calcite-notice", { class: "error-msg", icon: "layers-reference", kind: "danger", open: true }, h("div", { slot: "title" }, this._translations.error), h("div", { slot: "message" }, this.noLayerErrorMsg ? this.noLayerErrorMsg : this._translations.noLayerToDisplayErrorMsg)), !this._isLoading && this.mapView &&
|
561
|
-
h("calcite-list", { "selection-appearance": "border", "selection-mode": this.showNextIcon ? "none" : "single" }, this.renderLayerList())));
|
773
|
+
h("calcite-list", { "selection-appearance": "border", "selection-mode": this.showNextIcon ? "none" : "single-persist" }, this.renderLayerList())));
|
562
774
|
}
|
563
775
|
//--------------------------------------------------------------------------
|
564
776
|
//
|
@@ -585,21 +797,24 @@ const LayerList = class {
|
|
585
797
|
this._layerItemsHash = await getMapLayerHash(this.mapView, true);
|
586
798
|
const allMapLayers = await getAllLayers(this.mapView);
|
587
799
|
// eslint-disable-next-line @typescript-eslint/no-misused-promises
|
588
|
-
|
800
|
+
allMapLayers.forEach(async (eachLayer) => {
|
589
801
|
var _a, _b;
|
590
802
|
//TODO: checking editable condition could be configurable
|
591
|
-
if ((eachLayer === null || eachLayer === void 0 ? void 0 : eachLayer.type) === "feature" && (eachLayer === null || eachLayer === void 0 ? void 0 : eachLayer.editingEnabled) && ((_b = (_a = eachLayer === null || eachLayer === void 0 ? void 0 : eachLayer.capabilities) === null || _a === void 0 ? void 0 : _a.operations) === null || _b === void 0 ? void 0 : _b.
|
592
|
-
|
593
|
-
|
594
|
-
|
595
|
-
|
596
|
-
|
597
|
-
|
598
|
-
|
599
|
-
|
600
|
-
|
601
|
-
|
602
|
-
|
803
|
+
if ((eachLayer === null || eachLayer === void 0 ? void 0 : eachLayer.type) === "feature" && (eachLayer === null || eachLayer === void 0 ? void 0 : eachLayer.editingEnabled) && ((_b = (_a = eachLayer === null || eachLayer === void 0 ? void 0 : eachLayer.capabilities) === null || _a === void 0 ? void 0 : _a.operations) === null || _b === void 0 ? void 0 : _b.supportsAdd)) {
|
804
|
+
this._layerItemsHash[eachLayer.id].supportsAdd = true;
|
805
|
+
if (this.showFeatureCount) {
|
806
|
+
const q = eachLayer.createQuery();
|
807
|
+
const result = eachLayer.queryFeatureCount(q);
|
808
|
+
def.push(result);
|
809
|
+
void result.then(async (resCount) => {
|
810
|
+
const formattedCount = !isNaN(resCount) ? await formatNumber(resCount, {
|
811
|
+
places: 0,
|
812
|
+
api: 4,
|
813
|
+
type: "decimal"
|
814
|
+
}) : "";
|
815
|
+
this._layerItemsHash[eachLayer.id].formattedFeatureCount = formattedCount;
|
816
|
+
});
|
817
|
+
}
|
603
818
|
}
|
604
819
|
});
|
605
820
|
await Promise.all(def).then(() => {
|
@@ -627,9 +842,9 @@ const LayerList = class {
|
|
627
842
|
var _a;
|
628
843
|
const configuredLayers = ((_a = this.layers) === null || _a === void 0 ? void 0 : _a.length) > 0 ? this.layers : [];
|
629
844
|
return Object.keys(hash).reduce((prev, cur) => {
|
630
|
-
let showLayer = hash[cur].
|
845
|
+
let showLayer = hash[cur].supportsAdd;
|
631
846
|
if ((configuredLayers === null || configuredLayers === void 0 ? void 0 : configuredLayers.length) > 0) {
|
632
|
-
showLayer = configuredLayers.indexOf(cur) > -1 ? hash[cur].
|
847
|
+
showLayer = configuredLayers.indexOf(cur) > -1 ? hash[cur].supportsAdd : false;
|
633
848
|
}
|
634
849
|
if (showLayer) {
|
635
850
|
prev.push(cur);
|
@@ -681,4 +896,4 @@ const LayerList = class {
|
|
681
896
|
};
|
682
897
|
LayerList.style = layerListCss;
|
683
898
|
|
684
|
-
export { Flow as calcite_flow, FlowItem as calcite_flow_item, FeatureList as feature_list, LayerList as layer_list };
|
899
|
+
export { Flow as calcite_flow, FlowItem as calcite_flow_item, CreateFeature as create_feature, FeatureList as feature_list, LayerList as layer_list };
|
@@ -6,7 +6,7 @@
|
|
6
6
|
import { r as registerInstance, h, H as Host, g as getElement, c as createEvent } from './index-7183ce4a.js';
|
7
7
|
import { g as getLocaleComponentStrings, l as loadModules } from './locale-731e75a8.js';
|
8
8
|
import { q as queryFeaturesByID, g as getLayerOrTable, b as goToSelection, e as queryAllIds, f as queryFeatureIds, i as queryFeaturesByGlobalID } from './mapViewUtils-cf05e880.js';
|
9
|
-
import { d as downloadCSV } from './downloadUtils-
|
9
|
+
import { d as downloadCSV } from './downloadUtils-d297078f.js';
|
10
10
|
import './esri-loader-eda07632.js';
|
11
11
|
import './_commonjsHelpers-d5f9d613.js';
|
12
12
|
import './interfaces-586e863c.js';
|