@esri/solutions-components 0.10.21 → 0.10.22
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_5.cjs.entry.js +6 -2
- package/dist/cjs/map-select-tools_3.cjs.entry.js +78 -21
- package/dist/collection/components/edit-card/edit-card.js +6 -2
- package/dist/collection/components/map-select-tools/map-select-tools.js +78 -21
- package/dist/components/edit-card2.js +6 -2
- package/dist/components/map-select-tools2.js +78 -21
- package/dist/esm/calcite-alert_5.entry.js +6 -2
- package/dist/esm/map-select-tools_3.entry.js +78 -21
- package/dist/solutions-components/{p-9fed495d.entry.js → p-a85fd786.entry.js} +1 -1
- package/dist/solutions-components/p-cd5a9034.entry.js +6 -0
- package/dist/solutions-components/solutions-components.esm.js +1 -1
- package/dist/types/components/edit-card/edit-card.d.ts +3 -1
- package/dist/types/components/map-select-tools/map-select-tools.d.ts +22 -0
- package/package.json +1 -1
- package/dist/solutions-components/p-bde2619f.entry.js +0 -6
@@ -1287,6 +1287,8 @@ const EditCard = class {
|
|
1287
1287
|
_editor;
|
1288
1288
|
/**
|
1289
1289
|
* esri/layers/FeatureLayer: https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-FeatureLayer.html
|
1290
|
+
* OR
|
1291
|
+
* esri/layers/support/SubtypeSublayer: https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-support-SubtypeSublayer.html
|
1290
1292
|
*/
|
1291
1293
|
_layer;
|
1292
1294
|
/**
|
@@ -1391,7 +1393,9 @@ const EditCard = class {
|
|
1391
1393
|
if (this._layerEditHandle) {
|
1392
1394
|
this._layerEditHandle.remove();
|
1393
1395
|
}
|
1394
|
-
|
1396
|
+
// #896 Editing on sybtype group layer is failing in Manager
|
1397
|
+
const layer = this._layer.type === "subtype-sublayer" ? this._layer.parent : this._layer;
|
1398
|
+
this._layerEditHandle = layer.on("edits", () => {
|
1395
1399
|
this.editsComplete.emit();
|
1396
1400
|
});
|
1397
1401
|
}
|
@@ -1406,7 +1410,7 @@ const EditCard = class {
|
|
1406
1410
|
!this.graphics[0].layer.editingEnabled : true;
|
1407
1411
|
const tableNodeClass = this._editorLoading ? "display-none" : "position-absolute";
|
1408
1412
|
const loadingClass = this._editorLoading ? "" : "display-none";
|
1409
|
-
return (index.h(index.Host, { key: '
|
1413
|
+
return (index.h(index.Host, { key: '16dd78822ee6d7c4e2da97c4b7ec7c0678b51e68' }, index.h("div", { key: '8aba2b86c7bf8e7dfbf7567b156e02b23b728f4e', class: "position-absolute" }, editDisabled ? (index.h("calcite-notice", { kind: "warning", open: true, slot: "content-top", width: "full" }, index.h("div", { slot: "message" }, this._translations.enableEditing))) : undefined, index.h("div", { key: '8230d44ec05ff207681e6333b7f08c80748c4f3d', class: "position-absolute" }, index.h("div", { key: '71792b5737c43a024ebc677ae168d74569349585', class: tableNodeClass, id: "feature-form", ref: (el) => this._editContainer = el }), index.h("calcite-loader", { key: '47176534c25769af8ae107c3864901c4294b4359', class: loadingClass, label: "", scale: "s" })))));
|
1410
1414
|
}
|
1411
1415
|
//--------------------------------------------------------------------------
|
1412
1416
|
//
|
@@ -64,6 +64,10 @@ const MapSelectTools = class {
|
|
64
64
|
// Properties (protected)
|
65
65
|
//
|
66
66
|
//--------------------------------------------------------------------------
|
67
|
+
/**
|
68
|
+
* esri/request: https://developers.arcgis.com/javascript/latest/api-reference/esri-request.html
|
69
|
+
*/
|
70
|
+
_esriRequest;
|
67
71
|
/**
|
68
72
|
* esri/layers/FeatureLayer: https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-FeatureLayer.html
|
69
73
|
*/
|
@@ -293,7 +297,7 @@ const MapSelectTools = class {
|
|
293
297
|
render() {
|
294
298
|
const mapToolsClass = this.enableSketchTools ? "" : "display-none";
|
295
299
|
const mapToolsContainerClass = this.enableSketchTools ? "padding-top-1" : "";
|
296
|
-
return (index.h(index.Host, { key: '
|
300
|
+
return (index.h(index.Host, { key: '6753158d00a33dd5dfbb1f22cc27388baf4c0b5e' }, this._getMapLayerPicker(), index.h("div", { key: '082c6be48d3dfbe2e39be2c462959c7772a91d40', class: "border-bottom" }), index.h("div", { key: '0e8133a809b05bef34c2f19adeff43c1e57cc002', class: "padding-top-sides-1" }, index.h("div", { key: '4434b5b4d073f3ba9a7e44b82078b9b81733025b', class: "search-widget", ref: (el) => { this._searchElement = el; } }), index.h("div", { key: '6f01e27e06ea365de6ff98df3f9edd973d87117c', class: mapToolsContainerClass }, index.h("map-draw-tools", { key: '24ffe562d080955f2aacfd080c0baa1997f8eaab', active: true, class: mapToolsClass, editGraphicsEnabled: !this._useLayerFeaturesEnabled, graphics: this._graphics, mapView: this.mapView, onSketchGraphicsChange: (evt) => void this._sketchGraphicsChanged(evt), pointSymbol: this.sketchPointSymbol, polygonSymbol: this.sketchPolygonSymbol, polylineSymbol: this.sketchLineSymbol, ref: (el) => { this._drawTools = el; } })), this.enableSearchDistance ? this._getBufferOptions() : undefined, this.enableLayerFeatures ? this._getUseLayerFeaturesOptions() : undefined, this._getNumSelected()), index.h("div", { key: '4c7cf401b5bcc7e4adef34e140d22676fce8ebbc', class: "border-bottom" }), this._getNameInput()));
|
297
301
|
}
|
298
302
|
/**
|
299
303
|
* Renders the buffer tools component.
|
@@ -360,13 +364,15 @@ const MapSelectTools = class {
|
|
360
364
|
* @protected
|
361
365
|
*/
|
362
366
|
async _initModules() {
|
363
|
-
const [GraphicsLayer, Graphic, Search, geometryEngine, FeatureLayer] = await locale.loadModules([
|
367
|
+
const [esriRequest, GraphicsLayer, Graphic, Search, geometryEngine, FeatureLayer] = await locale.loadModules([
|
368
|
+
"esri/request",
|
364
369
|
"esri/layers/GraphicsLayer",
|
365
370
|
"esri/Graphic",
|
366
371
|
"esri/widgets/Search",
|
367
372
|
"esri/geometry/geometryEngine",
|
368
373
|
"esri/layers/FeatureLayer"
|
369
374
|
]);
|
375
|
+
this._esriRequest = esriRequest;
|
370
376
|
this.GraphicsLayer = GraphicsLayer;
|
371
377
|
this.Graphic = Graphic;
|
372
378
|
this.Search = Search;
|
@@ -443,25 +449,7 @@ const MapSelectTools = class {
|
|
443
449
|
void this._clearResults(false, clearLabel);
|
444
450
|
});
|
445
451
|
this._searchWidget.on("select-result", (searchResults) => {
|
446
|
-
|
447
|
-
this._searchResult = searchResults.result;
|
448
|
-
const resultFeature = searchResults.result.feature;
|
449
|
-
const resultLayer = resultFeature?.layer;
|
450
|
-
const selectLayer = this.selectLayerView.layer;
|
451
|
-
const oid = resultFeature?.getObjectId();
|
452
|
-
const useOIDs = resultLayer?.url && selectLayer?.url && resultLayer.url === selectLayer.url && !isNaN(oid);
|
453
|
-
const oids = useOIDs ? [oid] : undefined;
|
454
|
-
this._workflowType = interfaces.EWorkflowType.SEARCH;
|
455
|
-
void this._updateLabel();
|
456
|
-
const graphics = [searchResults.result.feature];
|
457
|
-
this._updateSelection(graphics, useOIDs, oids);
|
458
|
-
this._drawTools.graphics = graphics;
|
459
|
-
this._searchWidget.resultGraphic.visible = false;
|
460
|
-
}
|
461
|
-
else {
|
462
|
-
const clearLabel = this._searchClearLabel();
|
463
|
-
void this._clearResults(false, clearLabel);
|
464
|
-
}
|
452
|
+
void this._selectResult(searchResults.result);
|
465
453
|
});
|
466
454
|
await this._searchWidget.when(() => {
|
467
455
|
this._searchWidget.allPlaceholder = this.searchConfiguration?.allPlaceholder &&
|
@@ -470,6 +458,75 @@ const MapSelectTools = class {
|
|
470
458
|
});
|
471
459
|
}
|
472
460
|
}
|
461
|
+
/**
|
462
|
+
* Handle the result from the search widget.
|
463
|
+
*
|
464
|
+
* @param url the url of the layer view
|
465
|
+
*
|
466
|
+
* @returns the url of the views source
|
467
|
+
* @protected
|
468
|
+
*/
|
469
|
+
async _selectResult(result) {
|
470
|
+
if (result) {
|
471
|
+
this._searchResult = result;
|
472
|
+
const resultFeature = result.feature;
|
473
|
+
const resultLayer = resultFeature?.layer;
|
474
|
+
const selectLayer = this.selectLayerView.layer;
|
475
|
+
const oid = resultFeature?.getObjectId();
|
476
|
+
let resultLayerSourceUrl;
|
477
|
+
if (resultLayer.sourceJSON?.isView) {
|
478
|
+
resultLayerSourceUrl = await this._getViewSourceUrl(resultLayer.url);
|
479
|
+
}
|
480
|
+
let selectLayerSourceUrl;
|
481
|
+
if (selectLayer.sourceJSON?.isView) {
|
482
|
+
selectLayerSourceUrl = await this._getViewSourceUrl(selectLayer.url);
|
483
|
+
}
|
484
|
+
const rUrl = resultLayer?.url?.toLowerCase();
|
485
|
+
const rSourceUrl = resultLayerSourceUrl?.toLowerCase();
|
486
|
+
const sUrl = selectLayer?.url?.toLowerCase();
|
487
|
+
const sSourceUrl = selectLayerSourceUrl?.toLowerCase();
|
488
|
+
const useOIDs = rUrl && sUrl &&
|
489
|
+
(rUrl === sUrl || rUrl === sSourceUrl || rSourceUrl === sUrl || rSourceUrl === sSourceUrl) &&
|
490
|
+
!isNaN(oid);
|
491
|
+
const oids = useOIDs ? [oid] : undefined;
|
492
|
+
this._workflowType = interfaces.EWorkflowType.SEARCH;
|
493
|
+
void this._updateLabel();
|
494
|
+
const graphics = [result.feature];
|
495
|
+
this._updateSelection(graphics, useOIDs, oids);
|
496
|
+
this._drawTools.graphics = graphics;
|
497
|
+
this._searchWidget.resultGraphic.visible = false;
|
498
|
+
}
|
499
|
+
else {
|
500
|
+
const clearLabel = this._searchClearLabel();
|
501
|
+
void this._clearResults(false, clearLabel);
|
502
|
+
}
|
503
|
+
}
|
504
|
+
/**
|
505
|
+
* Get the source url for a view. This function supports single source views only.
|
506
|
+
*
|
507
|
+
* @param url the url of the layer view
|
508
|
+
*
|
509
|
+
* @returns the url of the views source
|
510
|
+
* @protected
|
511
|
+
*/
|
512
|
+
async _getViewSourceUrl(url) {
|
513
|
+
let sourceUrl = "";
|
514
|
+
const resultLayerSourcesUrl = `${url}/sources?f=json`;
|
515
|
+
try {
|
516
|
+
const request = await this._esriRequest(resultLayerSourcesUrl, {
|
517
|
+
query: {
|
518
|
+
f: "json"
|
519
|
+
}
|
520
|
+
});
|
521
|
+
if (request?.data?.services?.length === 1) {
|
522
|
+
sourceUrl = request.data.services[0].url;
|
523
|
+
}
|
524
|
+
}
|
525
|
+
catch (error) {
|
526
|
+
console.log(error);
|
527
|
+
}
|
528
|
+
return sourceUrl;
|
529
|
+
}
|
473
530
|
/**
|
474
531
|
* Check if the current label should be cleared
|
475
532
|
*
|
@@ -75,6 +75,8 @@ export class EditCard {
|
|
75
75
|
_editor;
|
76
76
|
/**
|
77
77
|
* esri/layers/FeatureLayer: https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-FeatureLayer.html
|
78
|
+
* OR
|
79
|
+
* esri/layers/support/SubtypeSublayer: https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-support-SubtypeSublayer.html
|
78
80
|
*/
|
79
81
|
_layer;
|
80
82
|
/**
|
@@ -179,7 +181,9 @@ export class EditCard {
|
|
179
181
|
if (this._layerEditHandle) {
|
180
182
|
this._layerEditHandle.remove();
|
181
183
|
}
|
182
|
-
|
184
|
+
// #896 Editing on sybtype group layer is failing in Manager
|
185
|
+
const layer = this._layer.type === "subtype-sublayer" ? this._layer.parent : this._layer;
|
186
|
+
this._layerEditHandle = layer.on("edits", () => {
|
183
187
|
this.editsComplete.emit();
|
184
188
|
});
|
185
189
|
}
|
@@ -194,7 +198,7 @@ export class EditCard {
|
|
194
198
|
!this.graphics[0].layer.editingEnabled : true;
|
195
199
|
const tableNodeClass = this._editorLoading ? "display-none" : "position-absolute";
|
196
200
|
const loadingClass = this._editorLoading ? "" : "display-none";
|
197
|
-
return (h(Host, { key: '
|
201
|
+
return (h(Host, { key: '16dd78822ee6d7c4e2da97c4b7ec7c0678b51e68' }, h("div", { key: '8aba2b86c7bf8e7dfbf7567b156e02b23b728f4e', class: "position-absolute" }, editDisabled ? (h("calcite-notice", { kind: "warning", open: true, slot: "content-top", width: "full" }, h("div", { slot: "message" }, this._translations.enableEditing))) : undefined, h("div", { key: '8230d44ec05ff207681e6333b7f08c80748c4f3d', class: "position-absolute" }, h("div", { key: '71792b5737c43a024ebc677ae168d74569349585', class: tableNodeClass, id: "feature-form", ref: (el) => this._editContainer = el }), h("calcite-loader", { key: '47176534c25769af8ae107c3864901c4294b4359', class: loadingClass, label: "", scale: "s" })))));
|
198
202
|
}
|
199
203
|
//--------------------------------------------------------------------------
|
200
204
|
//
|
@@ -69,6 +69,10 @@ export class MapSelectTools {
|
|
69
69
|
// Properties (protected)
|
70
70
|
//
|
71
71
|
//--------------------------------------------------------------------------
|
72
|
+
/**
|
73
|
+
* esri/request: https://developers.arcgis.com/javascript/latest/api-reference/esri-request.html
|
74
|
+
*/
|
75
|
+
_esriRequest;
|
72
76
|
/**
|
73
77
|
* esri/layers/FeatureLayer: https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-FeatureLayer.html
|
74
78
|
*/
|
@@ -298,7 +302,7 @@ export class MapSelectTools {
|
|
298
302
|
render() {
|
299
303
|
const mapToolsClass = this.enableSketchTools ? "" : "display-none";
|
300
304
|
const mapToolsContainerClass = this.enableSketchTools ? "padding-top-1" : "";
|
301
|
-
return (h(Host, { key: '
|
305
|
+
return (h(Host, { key: '6753158d00a33dd5dfbb1f22cc27388baf4c0b5e' }, this._getMapLayerPicker(), h("div", { key: '082c6be48d3dfbe2e39be2c462959c7772a91d40', class: "border-bottom" }), h("div", { key: '0e8133a809b05bef34c2f19adeff43c1e57cc002', class: "padding-top-sides-1" }, h("div", { key: '4434b5b4d073f3ba9a7e44b82078b9b81733025b', class: "search-widget", ref: (el) => { this._searchElement = el; } }), h("div", { key: '6f01e27e06ea365de6ff98df3f9edd973d87117c', class: mapToolsContainerClass }, h("map-draw-tools", { key: '24ffe562d080955f2aacfd080c0baa1997f8eaab', active: true, class: mapToolsClass, editGraphicsEnabled: !this._useLayerFeaturesEnabled, graphics: this._graphics, mapView: this.mapView, onSketchGraphicsChange: (evt) => void this._sketchGraphicsChanged(evt), pointSymbol: this.sketchPointSymbol, polygonSymbol: this.sketchPolygonSymbol, polylineSymbol: this.sketchLineSymbol, ref: (el) => { this._drawTools = el; } })), this.enableSearchDistance ? this._getBufferOptions() : undefined, this.enableLayerFeatures ? this._getUseLayerFeaturesOptions() : undefined, this._getNumSelected()), h("div", { key: '4c7cf401b5bcc7e4adef34e140d22676fce8ebbc', class: "border-bottom" }), this._getNameInput()));
|
302
306
|
}
|
303
307
|
/**
|
304
308
|
* Renders the buffer tools component.
|
@@ -365,13 +369,15 @@ export class MapSelectTools {
|
|
365
369
|
* @protected
|
366
370
|
*/
|
367
371
|
async _initModules() {
|
368
|
-
const [GraphicsLayer, Graphic, Search, geometryEngine, FeatureLayer] = await loadModules([
|
372
|
+
const [esriRequest, GraphicsLayer, Graphic, Search, geometryEngine, FeatureLayer] = await loadModules([
|
373
|
+
"esri/request",
|
369
374
|
"esri/layers/GraphicsLayer",
|
370
375
|
"esri/Graphic",
|
371
376
|
"esri/widgets/Search",
|
372
377
|
"esri/geometry/geometryEngine",
|
373
378
|
"esri/layers/FeatureLayer"
|
374
379
|
]);
|
380
|
+
this._esriRequest = esriRequest;
|
375
381
|
this.GraphicsLayer = GraphicsLayer;
|
376
382
|
this.Graphic = Graphic;
|
377
383
|
this.Search = Search;
|
@@ -448,25 +454,7 @@ export class MapSelectTools {
|
|
448
454
|
void this._clearResults(false, clearLabel);
|
449
455
|
});
|
450
456
|
this._searchWidget.on("select-result", (searchResults) => {
|
451
|
-
|
452
|
-
this._searchResult = searchResults.result;
|
453
|
-
const resultFeature = searchResults.result.feature;
|
454
|
-
const resultLayer = resultFeature?.layer;
|
455
|
-
const selectLayer = this.selectLayerView.layer;
|
456
|
-
const oid = resultFeature?.getObjectId();
|
457
|
-
const useOIDs = resultLayer?.url && selectLayer?.url && resultLayer.url === selectLayer.url && !isNaN(oid);
|
458
|
-
const oids = useOIDs ? [oid] : undefined;
|
459
|
-
this._workflowType = EWorkflowType.SEARCH;
|
460
|
-
void this._updateLabel();
|
461
|
-
const graphics = [searchResults.result.feature];
|
462
|
-
this._updateSelection(graphics, useOIDs, oids);
|
463
|
-
this._drawTools.graphics = graphics;
|
464
|
-
this._searchWidget.resultGraphic.visible = false;
|
465
|
-
}
|
466
|
-
else {
|
467
|
-
const clearLabel = this._searchClearLabel();
|
468
|
-
void this._clearResults(false, clearLabel);
|
469
|
-
}
|
457
|
+
void this._selectResult(searchResults.result);
|
470
458
|
});
|
471
459
|
await this._searchWidget.when(() => {
|
472
460
|
this._searchWidget.allPlaceholder = this.searchConfiguration?.allPlaceholder &&
|
@@ -475,6 +463,75 @@ export class MapSelectTools {
|
|
475
463
|
});
|
476
464
|
}
|
477
465
|
}
|
466
|
+
/**
|
467
|
+
* Handle the result from the search widget.
|
468
|
+
*
|
469
|
+
* @param url the url of the layer view
|
470
|
+
*
|
471
|
+
* @returns the url of the views source
|
472
|
+
* @protected
|
473
|
+
*/
|
474
|
+
async _selectResult(result) {
|
475
|
+
if (result) {
|
476
|
+
this._searchResult = result;
|
477
|
+
const resultFeature = result.feature;
|
478
|
+
const resultLayer = resultFeature?.layer;
|
479
|
+
const selectLayer = this.selectLayerView.layer;
|
480
|
+
const oid = resultFeature?.getObjectId();
|
481
|
+
let resultLayerSourceUrl;
|
482
|
+
if (resultLayer.sourceJSON?.isView) {
|
483
|
+
resultLayerSourceUrl = await this._getViewSourceUrl(resultLayer.url);
|
484
|
+
}
|
485
|
+
let selectLayerSourceUrl;
|
486
|
+
if (selectLayer.sourceJSON?.isView) {
|
487
|
+
selectLayerSourceUrl = await this._getViewSourceUrl(selectLayer.url);
|
488
|
+
}
|
489
|
+
const rUrl = resultLayer?.url?.toLowerCase();
|
490
|
+
const rSourceUrl = resultLayerSourceUrl?.toLowerCase();
|
491
|
+
const sUrl = selectLayer?.url?.toLowerCase();
|
492
|
+
const sSourceUrl = selectLayerSourceUrl?.toLowerCase();
|
493
|
+
const useOIDs = rUrl && sUrl &&
|
494
|
+
(rUrl === sUrl || rUrl === sSourceUrl || rSourceUrl === sUrl || rSourceUrl === sSourceUrl) &&
|
495
|
+
!isNaN(oid);
|
496
|
+
const oids = useOIDs ? [oid] : undefined;
|
497
|
+
this._workflowType = EWorkflowType.SEARCH;
|
498
|
+
void this._updateLabel();
|
499
|
+
const graphics = [result.feature];
|
500
|
+
this._updateSelection(graphics, useOIDs, oids);
|
501
|
+
this._drawTools.graphics = graphics;
|
502
|
+
this._searchWidget.resultGraphic.visible = false;
|
503
|
+
}
|
504
|
+
else {
|
505
|
+
const clearLabel = this._searchClearLabel();
|
506
|
+
void this._clearResults(false, clearLabel);
|
507
|
+
}
|
508
|
+
}
|
509
|
+
/**
|
510
|
+
* Get the source url for a view. This function supports single source views only.
|
511
|
+
*
|
512
|
+
* @param url the url of the layer view
|
513
|
+
*
|
514
|
+
* @returns the url of the views source
|
515
|
+
* @protected
|
516
|
+
*/
|
517
|
+
async _getViewSourceUrl(url) {
|
518
|
+
let sourceUrl = "";
|
519
|
+
const resultLayerSourcesUrl = `${url}/sources?f=json`;
|
520
|
+
try {
|
521
|
+
const request = await this._esriRequest(resultLayerSourcesUrl, {
|
522
|
+
query: {
|
523
|
+
f: "json"
|
524
|
+
}
|
525
|
+
});
|
526
|
+
if (request?.data?.services?.length === 1) {
|
527
|
+
sourceUrl = request.data.services[0].url;
|
528
|
+
}
|
529
|
+
}
|
530
|
+
catch (error) {
|
531
|
+
console.log(error);
|
532
|
+
}
|
533
|
+
return sourceUrl;
|
534
|
+
}
|
478
535
|
/**
|
479
536
|
* Check if the current label should be cleared
|
480
537
|
*
|
@@ -67,6 +67,8 @@ const EditCard = /*@__PURE__*/ proxyCustomElement(class EditCard extends HTMLEle
|
|
67
67
|
_editor;
|
68
68
|
/**
|
69
69
|
* esri/layers/FeatureLayer: https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-FeatureLayer.html
|
70
|
+
* OR
|
71
|
+
* esri/layers/support/SubtypeSublayer: https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-support-SubtypeSublayer.html
|
70
72
|
*/
|
71
73
|
_layer;
|
72
74
|
/**
|
@@ -171,7 +173,9 @@ const EditCard = /*@__PURE__*/ proxyCustomElement(class EditCard extends HTMLEle
|
|
171
173
|
if (this._layerEditHandle) {
|
172
174
|
this._layerEditHandle.remove();
|
173
175
|
}
|
174
|
-
|
176
|
+
// #896 Editing on sybtype group layer is failing in Manager
|
177
|
+
const layer = this._layer.type === "subtype-sublayer" ? this._layer.parent : this._layer;
|
178
|
+
this._layerEditHandle = layer.on("edits", () => {
|
175
179
|
this.editsComplete.emit();
|
176
180
|
});
|
177
181
|
}
|
@@ -186,7 +190,7 @@ const EditCard = /*@__PURE__*/ proxyCustomElement(class EditCard extends HTMLEle
|
|
186
190
|
!this.graphics[0].layer.editingEnabled : true;
|
187
191
|
const tableNodeClass = this._editorLoading ? "display-none" : "position-absolute";
|
188
192
|
const loadingClass = this._editorLoading ? "" : "display-none";
|
189
|
-
return (h(Host, { key: '
|
193
|
+
return (h(Host, { key: '16dd78822ee6d7c4e2da97c4b7ec7c0678b51e68' }, h("div", { key: '8aba2b86c7bf8e7dfbf7567b156e02b23b728f4e', class: "position-absolute" }, editDisabled ? (h("calcite-notice", { kind: "warning", open: true, slot: "content-top", width: "full" }, h("div", { slot: "message" }, this._translations.enableEditing))) : undefined, h("div", { key: '8230d44ec05ff207681e6333b7f08c80748c4f3d', class: "position-absolute" }, h("div", { key: '71792b5737c43a024ebc677ae168d74569349585', class: tableNodeClass, id: "feature-form", ref: (el) => this._editContainer = el }), h("calcite-loader", { key: '47176534c25769af8ae107c3864901c4294b4359', class: loadingClass, label: "", scale: "s" })))));
|
190
194
|
}
|
191
195
|
//--------------------------------------------------------------------------
|
192
196
|
//
|
@@ -81,6 +81,10 @@ const MapSelectTools = /*@__PURE__*/ proxyCustomElement(class MapSelectTools ext
|
|
81
81
|
// Properties (protected)
|
82
82
|
//
|
83
83
|
//--------------------------------------------------------------------------
|
84
|
+
/**
|
85
|
+
* esri/request: https://developers.arcgis.com/javascript/latest/api-reference/esri-request.html
|
86
|
+
*/
|
87
|
+
_esriRequest;
|
84
88
|
/**
|
85
89
|
* esri/layers/FeatureLayer: https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-FeatureLayer.html
|
86
90
|
*/
|
@@ -310,7 +314,7 @@ const MapSelectTools = /*@__PURE__*/ proxyCustomElement(class MapSelectTools ext
|
|
310
314
|
render() {
|
311
315
|
const mapToolsClass = this.enableSketchTools ? "" : "display-none";
|
312
316
|
const mapToolsContainerClass = this.enableSketchTools ? "padding-top-1" : "";
|
313
|
-
return (h(Host, { key: '
|
317
|
+
return (h(Host, { key: '6753158d00a33dd5dfbb1f22cc27388baf4c0b5e' }, this._getMapLayerPicker(), h("div", { key: '082c6be48d3dfbe2e39be2c462959c7772a91d40', class: "border-bottom" }), h("div", { key: '0e8133a809b05bef34c2f19adeff43c1e57cc002', class: "padding-top-sides-1" }, h("div", { key: '4434b5b4d073f3ba9a7e44b82078b9b81733025b', class: "search-widget", ref: (el) => { this._searchElement = el; } }), h("div", { key: '6f01e27e06ea365de6ff98df3f9edd973d87117c', class: mapToolsContainerClass }, h("map-draw-tools", { key: '24ffe562d080955f2aacfd080c0baa1997f8eaab', active: true, class: mapToolsClass, editGraphicsEnabled: !this._useLayerFeaturesEnabled, graphics: this._graphics, mapView: this.mapView, onSketchGraphicsChange: (evt) => void this._sketchGraphicsChanged(evt), pointSymbol: this.sketchPointSymbol, polygonSymbol: this.sketchPolygonSymbol, polylineSymbol: this.sketchLineSymbol, ref: (el) => { this._drawTools = el; } })), this.enableSearchDistance ? this._getBufferOptions() : undefined, this.enableLayerFeatures ? this._getUseLayerFeaturesOptions() : undefined, this._getNumSelected()), h("div", { key: '4c7cf401b5bcc7e4adef34e140d22676fce8ebbc', class: "border-bottom" }), this._getNameInput()));
|
314
318
|
}
|
315
319
|
/**
|
316
320
|
* Renders the buffer tools component.
|
@@ -377,13 +381,15 @@ const MapSelectTools = /*@__PURE__*/ proxyCustomElement(class MapSelectTools ext
|
|
377
381
|
* @protected
|
378
382
|
*/
|
379
383
|
async _initModules() {
|
380
|
-
const [GraphicsLayer, Graphic, Search, geometryEngine, FeatureLayer] = await loadModules([
|
384
|
+
const [esriRequest, GraphicsLayer, Graphic, Search, geometryEngine, FeatureLayer] = await loadModules([
|
385
|
+
"esri/request",
|
381
386
|
"esri/layers/GraphicsLayer",
|
382
387
|
"esri/Graphic",
|
383
388
|
"esri/widgets/Search",
|
384
389
|
"esri/geometry/geometryEngine",
|
385
390
|
"esri/layers/FeatureLayer"
|
386
391
|
]);
|
392
|
+
this._esriRequest = esriRequest;
|
387
393
|
this.GraphicsLayer = GraphicsLayer;
|
388
394
|
this.Graphic = Graphic;
|
389
395
|
this.Search = Search;
|
@@ -460,25 +466,7 @@ const MapSelectTools = /*@__PURE__*/ proxyCustomElement(class MapSelectTools ext
|
|
460
466
|
void this._clearResults(false, clearLabel);
|
461
467
|
});
|
462
468
|
this._searchWidget.on("select-result", (searchResults) => {
|
463
|
-
|
464
|
-
this._searchResult = searchResults.result;
|
465
|
-
const resultFeature = searchResults.result.feature;
|
466
|
-
const resultLayer = resultFeature?.layer;
|
467
|
-
const selectLayer = this.selectLayerView.layer;
|
468
|
-
const oid = resultFeature?.getObjectId();
|
469
|
-
const useOIDs = resultLayer?.url && selectLayer?.url && resultLayer.url === selectLayer.url && !isNaN(oid);
|
470
|
-
const oids = useOIDs ? [oid] : undefined;
|
471
|
-
this._workflowType = EWorkflowType.SEARCH;
|
472
|
-
void this._updateLabel();
|
473
|
-
const graphics = [searchResults.result.feature];
|
474
|
-
this._updateSelection(graphics, useOIDs, oids);
|
475
|
-
this._drawTools.graphics = graphics;
|
476
|
-
this._searchWidget.resultGraphic.visible = false;
|
477
|
-
}
|
478
|
-
else {
|
479
|
-
const clearLabel = this._searchClearLabel();
|
480
|
-
void this._clearResults(false, clearLabel);
|
481
|
-
}
|
469
|
+
void this._selectResult(searchResults.result);
|
482
470
|
});
|
483
471
|
await this._searchWidget.when(() => {
|
484
472
|
this._searchWidget.allPlaceholder = this.searchConfiguration?.allPlaceholder &&
|
@@ -487,6 +475,75 @@ const MapSelectTools = /*@__PURE__*/ proxyCustomElement(class MapSelectTools ext
|
|
487
475
|
});
|
488
476
|
}
|
489
477
|
}
|
478
|
+
/**
|
479
|
+
* Handle the result from the search widget.
|
480
|
+
*
|
481
|
+
* @param url the url of the layer view
|
482
|
+
*
|
483
|
+
* @returns the url of the views source
|
484
|
+
* @protected
|
485
|
+
*/
|
486
|
+
async _selectResult(result) {
|
487
|
+
if (result) {
|
488
|
+
this._searchResult = result;
|
489
|
+
const resultFeature = result.feature;
|
490
|
+
const resultLayer = resultFeature?.layer;
|
491
|
+
const selectLayer = this.selectLayerView.layer;
|
492
|
+
const oid = resultFeature?.getObjectId();
|
493
|
+
let resultLayerSourceUrl;
|
494
|
+
if (resultLayer.sourceJSON?.isView) {
|
495
|
+
resultLayerSourceUrl = await this._getViewSourceUrl(resultLayer.url);
|
496
|
+
}
|
497
|
+
let selectLayerSourceUrl;
|
498
|
+
if (selectLayer.sourceJSON?.isView) {
|
499
|
+
selectLayerSourceUrl = await this._getViewSourceUrl(selectLayer.url);
|
500
|
+
}
|
501
|
+
const rUrl = resultLayer?.url?.toLowerCase();
|
502
|
+
const rSourceUrl = resultLayerSourceUrl?.toLowerCase();
|
503
|
+
const sUrl = selectLayer?.url?.toLowerCase();
|
504
|
+
const sSourceUrl = selectLayerSourceUrl?.toLowerCase();
|
505
|
+
const useOIDs = rUrl && sUrl &&
|
506
|
+
(rUrl === sUrl || rUrl === sSourceUrl || rSourceUrl === sUrl || rSourceUrl === sSourceUrl) &&
|
507
|
+
!isNaN(oid);
|
508
|
+
const oids = useOIDs ? [oid] : undefined;
|
509
|
+
this._workflowType = EWorkflowType.SEARCH;
|
510
|
+
void this._updateLabel();
|
511
|
+
const graphics = [result.feature];
|
512
|
+
this._updateSelection(graphics, useOIDs, oids);
|
513
|
+
this._drawTools.graphics = graphics;
|
514
|
+
this._searchWidget.resultGraphic.visible = false;
|
515
|
+
}
|
516
|
+
else {
|
517
|
+
const clearLabel = this._searchClearLabel();
|
518
|
+
void this._clearResults(false, clearLabel);
|
519
|
+
}
|
520
|
+
}
|
521
|
+
/**
|
522
|
+
* Get the source url for a view. This function supports single source views only.
|
523
|
+
*
|
524
|
+
* @param url the url of the layer view
|
525
|
+
*
|
526
|
+
* @returns the url of the views source
|
527
|
+
* @protected
|
528
|
+
*/
|
529
|
+
async _getViewSourceUrl(url) {
|
530
|
+
let sourceUrl = "";
|
531
|
+
const resultLayerSourcesUrl = `${url}/sources?f=json`;
|
532
|
+
try {
|
533
|
+
const request = await this._esriRequest(resultLayerSourcesUrl, {
|
534
|
+
query: {
|
535
|
+
f: "json"
|
536
|
+
}
|
537
|
+
});
|
538
|
+
if (request?.data?.services?.length === 1) {
|
539
|
+
sourceUrl = request.data.services[0].url;
|
540
|
+
}
|
541
|
+
}
|
542
|
+
catch (error) {
|
543
|
+
console.log(error);
|
544
|
+
}
|
545
|
+
return sourceUrl;
|
546
|
+
}
|
490
547
|
/**
|
491
548
|
* Check if the current label should be cleared
|
492
549
|
*
|
@@ -1283,6 +1283,8 @@ const EditCard = class {
|
|
1283
1283
|
_editor;
|
1284
1284
|
/**
|
1285
1285
|
* esri/layers/FeatureLayer: https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-FeatureLayer.html
|
1286
|
+
* OR
|
1287
|
+
* esri/layers/support/SubtypeSublayer: https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-support-SubtypeSublayer.html
|
1286
1288
|
*/
|
1287
1289
|
_layer;
|
1288
1290
|
/**
|
@@ -1387,7 +1389,9 @@ const EditCard = class {
|
|
1387
1389
|
if (this._layerEditHandle) {
|
1388
1390
|
this._layerEditHandle.remove();
|
1389
1391
|
}
|
1390
|
-
|
1392
|
+
// #896 Editing on sybtype group layer is failing in Manager
|
1393
|
+
const layer = this._layer.type === "subtype-sublayer" ? this._layer.parent : this._layer;
|
1394
|
+
this._layerEditHandle = layer.on("edits", () => {
|
1391
1395
|
this.editsComplete.emit();
|
1392
1396
|
});
|
1393
1397
|
}
|
@@ -1402,7 +1406,7 @@ const EditCard = class {
|
|
1402
1406
|
!this.graphics[0].layer.editingEnabled : true;
|
1403
1407
|
const tableNodeClass = this._editorLoading ? "display-none" : "position-absolute";
|
1404
1408
|
const loadingClass = this._editorLoading ? "" : "display-none";
|
1405
|
-
return (h(Host, { key: '
|
1409
|
+
return (h(Host, { key: '16dd78822ee6d7c4e2da97c4b7ec7c0678b51e68' }, h("div", { key: '8aba2b86c7bf8e7dfbf7567b156e02b23b728f4e', class: "position-absolute" }, editDisabled ? (h("calcite-notice", { kind: "warning", open: true, slot: "content-top", width: "full" }, h("div", { slot: "message" }, this._translations.enableEditing))) : undefined, h("div", { key: '8230d44ec05ff207681e6333b7f08c80748c4f3d', class: "position-absolute" }, h("div", { key: '71792b5737c43a024ebc677ae168d74569349585', class: tableNodeClass, id: "feature-form", ref: (el) => this._editContainer = el }), h("calcite-loader", { key: '47176534c25769af8ae107c3864901c4294b4359', class: loadingClass, label: "", scale: "s" })))));
|
1406
1410
|
}
|
1407
1411
|
//--------------------------------------------------------------------------
|
1408
1412
|
//
|