@esri/solutions-components 0.10.20 → 0.10.22

Sign up to get free protection for your applications and to get access to all the features.
Files changed (32) hide show
  1. package/dist/cjs/calcite-alert_5.cjs.entry.js +6 -2
  2. package/dist/cjs/crowdsource-manager.cjs.entry.js +17 -3
  3. package/dist/cjs/loader.cjs.js +1 -1
  4. package/dist/cjs/map-select-tools_3.cjs.entry.js +78 -21
  5. package/dist/cjs/public-notification.cjs.entry.js +3 -3
  6. package/dist/cjs/solutions-components.cjs.js +1 -1
  7. package/dist/collection/components/crowdsource-manager/crowdsource-manager.js +37 -4
  8. package/dist/collection/components/edit-card/edit-card.js +6 -2
  9. package/dist/collection/components/map-select-tools/map-select-tools.js +78 -21
  10. package/dist/collection/components/public-notification/public-notification.js +5 -5
  11. package/dist/components/crowdsource-manager.js +20 -4
  12. package/dist/components/edit-card2.js +6 -2
  13. package/dist/components/map-select-tools2.js +78 -21
  14. package/dist/components/public-notification.js +3 -3
  15. package/dist/esm/calcite-alert_5.entry.js +6 -2
  16. package/dist/esm/crowdsource-manager.entry.js +17 -3
  17. package/dist/esm/loader.js +1 -1
  18. package/dist/esm/map-select-tools_3.entry.js +78 -21
  19. package/dist/esm/public-notification.entry.js +3 -3
  20. package/dist/esm/solutions-components.js +1 -1
  21. package/dist/solutions-components/{p-4c88578a.entry.js → p-5067d77e.entry.js} +1 -1
  22. package/dist/solutions-components/{p-9fed495d.entry.js → p-a85fd786.entry.js} +1 -1
  23. package/dist/solutions-components/p-bd2278cf.entry.js +6 -0
  24. package/dist/solutions-components/p-cd5a9034.entry.js +6 -0
  25. package/dist/solutions-components/solutions-components.esm.js +1 -1
  26. package/dist/types/components/crowdsource-manager/crowdsource-manager.d.ts +8 -0
  27. package/dist/types/components/edit-card/edit-card.d.ts +3 -1
  28. package/dist/types/components/map-select-tools/map-select-tools.d.ts +22 -0
  29. package/dist/types/components.d.ts +8 -0
  30. package/package.json +1 -1
  31. package/dist/solutions-components/p-5612aa0c.entry.js +0 -6
  32. package/dist/solutions-components/p-bde2619f.entry.js +0 -6
@@ -24,7 +24,7 @@ import { ELayoutMode } from "../../utils/interfaces";
24
24
  import { getLayerOrTable } from "../../utils/mapViewUtils";
25
25
  export class CrowdsourceManager {
26
26
  constructor() {
27
- this.appLayout = 'splitView';
27
+ this.appLayout = undefined;
28
28
  this.appProxies = undefined;
29
29
  this.basemapConfig = undefined;
30
30
  this.coverPageEnabled = undefined;
@@ -47,6 +47,7 @@ export class CrowdsourceManager {
47
47
  this.enableSearch = true;
48
48
  this.enableShare = false;
49
49
  this.enableZoom = true;
50
+ this.hideMapOnLoad = false;
50
51
  this.mapInfos = [];
51
52
  this.onlyShowUpdatableLayers = true;
52
53
  this.popupHeaderColor = undefined;
@@ -135,6 +136,12 @@ export class CrowdsourceManager {
135
136
  enableZoomWatchHandler() {
136
137
  this._initMapZoom();
137
138
  }
139
+ /**
140
+ * When true and no appLayout is defined the map will be hidden on load
141
+ */
142
+ hideMapOnLoadWatchHandler() {
143
+ console.warn("hideMapOnLoad will be removed. Please use appLayout to control layout options.");
144
+ }
138
145
  //--------------------------------------------------------------------------
139
146
  //
140
147
  // Methods (public)
@@ -213,7 +220,7 @@ export class CrowdsourceManager {
213
220
  render() {
214
221
  // only avoid border when we have a header color that is not white
215
222
  const borderClass = this.popupHeaderColor && this.popupHeaderColor !== "#FFFFFF" ? "border-width-0" : "";
216
- return (h(Host, { key: '113737d5d1c315a85d7fd72f2f79aa1ad4acd03d' }, h("calcite-shell", { key: 'b5e9653ecc35019333ed8a7d7f91c7b4c4930fcc', class: "position-relative" }, h("calcite-panel", { key: '45cd232c8ea8706315e9fc15bb35f99698c33467', class: `width-full height-full ${borderClass}` }, this._getBody(this._layoutMode, this._panelOpen, this._hideTable)), this._getFooter()), this._filterModal()));
223
+ return (h(Host, { key: '28614b892c93b83de202a681a756027472d092c2' }, h("calcite-shell", { key: '8f9c57fa9d1c1c88dbac9706376aad6bbd425691', class: "position-relative" }, h("calcite-panel", { key: '3c156df89f396425c2711a39968017cc23910a55', class: `width-full height-full ${borderClass}` }, this._getBody(this._layoutMode, this._panelOpen, this._hideTable)), this._getFooter()), this._filterModal()));
217
224
  }
218
225
  /**
219
226
  * Called after each render
@@ -232,6 +239,12 @@ export class CrowdsourceManager {
232
239
  */
233
240
  async componentDidLoad() {
234
241
  this._resizeObserver.observe(this.el);
242
+ if (this.hideMapOnLoad && !this.appLayout) {
243
+ this.appLayout = 'tableView';
244
+ }
245
+ else if (!this.appLayout) {
246
+ this.appLayout = 'splitView';
247
+ }
235
248
  this._isMapViewOnLoad = this.appLayout === 'mapView';
236
249
  this._setActiveLayout(this.appLayout);
237
250
  }
@@ -706,8 +719,7 @@ export class CrowdsourceManager {
706
719
  "text": "AppLayout: The type of layout the application should use.\r\nValid values: \"mapView\" or \"tableView\" or \"splitView\""
707
720
  },
708
721
  "attribute": "app-layout",
709
- "reflect": false,
710
- "defaultValue": "'splitView'"
722
+ "reflect": false
711
723
  },
712
724
  "appProxies": {
713
725
  "type": "any",
@@ -1105,6 +1117,24 @@ export class CrowdsourceManager {
1105
1117
  "reflect": false,
1106
1118
  "defaultValue": "true"
1107
1119
  },
1120
+ "hideMapOnLoad": {
1121
+ "type": "boolean",
1122
+ "mutable": false,
1123
+ "complexType": {
1124
+ "original": "boolean",
1125
+ "resolved": "boolean",
1126
+ "references": {}
1127
+ },
1128
+ "required": false,
1129
+ "optional": false,
1130
+ "docs": {
1131
+ "tags": [],
1132
+ "text": "boolean: when true the map will be hidden on load"
1133
+ },
1134
+ "attribute": "hide-map-on-load",
1135
+ "reflect": false,
1136
+ "defaultValue": "false"
1137
+ },
1108
1138
  "mapInfos": {
1109
1139
  "type": "unknown",
1110
1140
  "mutable": false,
@@ -1402,6 +1432,9 @@ export class CrowdsourceManager {
1402
1432
  return [{
1403
1433
  "propName": "enableZoom",
1404
1434
  "methodName": "enableZoomWatchHandler"
1435
+ }, {
1436
+ "propName": "hideMapOnLoad",
1437
+ "methodName": "hideMapOnLoadWatchHandler"
1405
1438
  }];
1406
1439
  }
1407
1440
  static get listeners() {
@@ -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
- this._layerEditHandle = this._layer.on("edits", () => {
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: '1520951922ca98ee92ccc8f7119d7fa3666eddfa' }, h("div", { key: 'd436d1660fd46bba90dd5dadc6962c619b99143e', 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: 'cff16539fd7b4a85234e0d15d2170470d95d0ad9', class: "position-absolute" }, h("div", { key: '0b96a2d27a5df344da9192a01d5c42496e057cd1', class: tableNodeClass, id: "feature-form", ref: (el) => this._editContainer = el }), h("calcite-loader", { key: '49cadf3456d1f3289abde18c35b726471ac551cd', class: loadingClass, label: "", scale: "s" })))));
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: 'd9b4042323733785938a45be76688099b8a81b23' }, this._getMapLayerPicker(), h("div", { key: 'd468cd2df9971c02909fd0bc9603603bb213164f', class: "border-bottom" }), h("div", { key: '8cecea0a4387371c3af1ea76bbafd1cf7f205d77', class: "padding-top-sides-1" }, h("div", { key: 'd5364d20f014611ca73bbe1bc5b638aaa8e38738', class: "search-widget", ref: (el) => { this._searchElement = el; } }), h("div", { key: '2c1f16ce050e934e8dbd25a0ef430d8590438ce5', class: mapToolsContainerClass }, h("map-draw-tools", { key: '256ee8262662c1c54cee34bdc084e7555e3985c6', 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: '92859f6a60356d7ddc0b5530a06e181d67f3274b', class: "border-bottom" }), this._getNameInput()));
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
- if (searchResults.result) {
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
  *
@@ -37,9 +37,9 @@ export class PublicNotification {
37
37
  this.defaultExportTitle = "";
38
38
  this.defaultNumLabelsPerPage = 6;
39
39
  this.enableLayerFeatures = true;
40
- this.enableLayerFeaturesOnLoad = true;
40
+ this.enableLayerFeaturesOnLoad = false;
41
41
  this.enableSearchDistance = true;
42
- this.enableSearchDistanceOnLoad = true;
42
+ this.enableSearchDistanceOnLoad = false;
43
43
  this.enableSketchTools = true;
44
44
  this.featureEffect = undefined;
45
45
  this.featureHighlightEnabled = undefined;
@@ -265,7 +265,7 @@ export class PublicNotification {
265
265
  */
266
266
  render() {
267
267
  const headerSlot = this._isMobile ? "footer" : "header";
268
- return (h(Host, { key: '5473fef09cfb2a8870f8e03f263f4d003c6768e4' }, h("calcite-shell", { key: '4ecd592093267c886138b79b2ebb1b4b2e913463' }, h("calcite-action-bar", { key: 'e427d8982bc5e68d9b5430875b9079a0ce43e02b', class: "border-bottom-1 action-bar-size", "expand-disabled": true, layout: "horizontal", slot: headerSlot }, this._getActionGroup("list-check", EPageType.LIST, this._translations.myLists), this.showRefineSelection ? this._getActionGroup("test-data", EPageType.REFINE, this._translations.refineSelection) : null, this._getActionGroup("export", EPageType.EXPORT, this._translations.export)), this._getPage(this._pageType))));
268
+ return (h(Host, { key: '019074cdfaddd8121a6ed255f42dea427aac9440' }, h("calcite-shell", { key: 'ece21e206f6519627bc8f139c35f68838eb701a2' }, h("calcite-action-bar", { key: '92883d5df9fcf43584f3934bf7f61640afed2bdb', class: "border-bottom-1 action-bar-size", "expand-disabled": true, layout: "horizontal", slot: headerSlot }, this._getActionGroup("list-check", EPageType.LIST, this._translations.myLists), this.showRefineSelection ? this._getActionGroup("test-data", EPageType.REFINE, this._translations.refineSelection) : null, this._getActionGroup("export", EPageType.EXPORT, this._translations.export)), this._getPage(this._pageType))));
269
269
  }
270
270
  /**
271
271
  * StencilJS: Called once just after the component is first loaded.
@@ -1254,7 +1254,7 @@ export class PublicNotification {
1254
1254
  },
1255
1255
  "attribute": "enable-layer-features-on-load",
1256
1256
  "reflect": false,
1257
- "defaultValue": "true"
1257
+ "defaultValue": "false"
1258
1258
  },
1259
1259
  "enableSearchDistance": {
1260
1260
  "type": "boolean",
@@ -1290,7 +1290,7 @@ export class PublicNotification {
1290
1290
  },
1291
1291
  "attribute": "enable-search-distance-on-load",
1292
1292
  "reflect": false,
1293
- "defaultValue": "true"
1293
+ "defaultValue": "false"
1294
1294
  },
1295
1295
  "enableSketchTools": {
1296
1296
  "type": "boolean",
@@ -76,7 +76,7 @@ const CrowdsourceManager$1 = /*@__PURE__*/ proxyCustomElement(class CrowdsourceM
76
76
  this.__registerHost();
77
77
  this.showIntroductionWindow = createEvent(this, "showIntroductionWindow", 7);
78
78
  this.showCoverPage = createEvent(this, "showCoverPage", 7);
79
- this.appLayout = 'splitView';
79
+ this.appLayout = undefined;
80
80
  this.appProxies = undefined;
81
81
  this.basemapConfig = undefined;
82
82
  this.coverPageEnabled = undefined;
@@ -99,6 +99,7 @@ const CrowdsourceManager$1 = /*@__PURE__*/ proxyCustomElement(class CrowdsourceM
99
99
  this.enableSearch = true;
100
100
  this.enableShare = false;
101
101
  this.enableZoom = true;
102
+ this.hideMapOnLoad = false;
102
103
  this.mapInfos = [];
103
104
  this.onlyShowUpdatableLayers = true;
104
105
  this.popupHeaderColor = undefined;
@@ -182,6 +183,12 @@ const CrowdsourceManager$1 = /*@__PURE__*/ proxyCustomElement(class CrowdsourceM
182
183
  enableZoomWatchHandler() {
183
184
  this._initMapZoom();
184
185
  }
186
+ /**
187
+ * When true and no appLayout is defined the map will be hidden on load
188
+ */
189
+ hideMapOnLoadWatchHandler() {
190
+ console.warn("hideMapOnLoad will be removed. Please use appLayout to control layout options.");
191
+ }
185
192
  //--------------------------------------------------------------------------
186
193
  //
187
194
  // Methods (public)
@@ -260,7 +267,7 @@ const CrowdsourceManager$1 = /*@__PURE__*/ proxyCustomElement(class CrowdsourceM
260
267
  render() {
261
268
  // only avoid border when we have a header color that is not white
262
269
  const borderClass = this.popupHeaderColor && this.popupHeaderColor !== "#FFFFFF" ? "border-width-0" : "";
263
- return (h(Host, { key: '113737d5d1c315a85d7fd72f2f79aa1ad4acd03d' }, h("calcite-shell", { key: 'b5e9653ecc35019333ed8a7d7f91c7b4c4930fcc', class: "position-relative" }, h("calcite-panel", { key: '45cd232c8ea8706315e9fc15bb35f99698c33467', class: `width-full height-full ${borderClass}` }, this._getBody(this._layoutMode, this._panelOpen, this._hideTable)), this._getFooter()), this._filterModal()));
270
+ return (h(Host, { key: '28614b892c93b83de202a681a756027472d092c2' }, h("calcite-shell", { key: '8f9c57fa9d1c1c88dbac9706376aad6bbd425691', class: "position-relative" }, h("calcite-panel", { key: '3c156df89f396425c2711a39968017cc23910a55', class: `width-full height-full ${borderClass}` }, this._getBody(this._layoutMode, this._panelOpen, this._hideTable)), this._getFooter()), this._filterModal()));
264
271
  }
265
272
  /**
266
273
  * Called after each render
@@ -279,6 +286,12 @@ const CrowdsourceManager$1 = /*@__PURE__*/ proxyCustomElement(class CrowdsourceM
279
286
  */
280
287
  async componentDidLoad() {
281
288
  this._resizeObserver.observe(this.el);
289
+ if (this.hideMapOnLoad && !this.appLayout) {
290
+ this.appLayout = 'tableView';
291
+ }
292
+ else if (!this.appLayout) {
293
+ this.appLayout = 'splitView';
294
+ }
282
295
  this._isMapViewOnLoad = this.appLayout === 'mapView';
283
296
  this._setActiveLayout(this.appLayout);
284
297
  }
@@ -720,7 +733,8 @@ const CrowdsourceManager$1 = /*@__PURE__*/ proxyCustomElement(class CrowdsourceM
720
733
  this._translations = messages[0];
721
734
  }
722
735
  static get watchers() { return {
723
- "enableZoom": ["enableZoomWatchHandler"]
736
+ "enableZoom": ["enableZoomWatchHandler"],
737
+ "hideMapOnLoad": ["hideMapOnLoadWatchHandler"]
724
738
  }; }
725
739
  static get style() { return CrowdsourceManagerStyle0; }
726
740
  }, [0, "crowdsource-manager", {
@@ -747,6 +761,7 @@ const CrowdsourceManager$1 = /*@__PURE__*/ proxyCustomElement(class CrowdsourceM
747
761
  "enableSearch": [4, "enable-search"],
748
762
  "enableShare": [4, "enable-share"],
749
763
  "enableZoom": [4, "enable-zoom"],
764
+ "hideMapOnLoad": [4, "hide-map-on-load"],
750
765
  "mapInfos": [16],
751
766
  "onlyShowUpdatableLayers": [4, "only-show-updatable-layers"],
752
767
  "popupHeaderColor": [1, "popup-header-color"],
@@ -774,7 +789,8 @@ const CrowdsourceManager$1 = /*@__PURE__*/ proxyCustomElement(class CrowdsourceM
774
789
  "_filterOpen": [32],
775
790
  "_showInformationHeader": [32]
776
791
  }, [[8, "featureSelectionChange", "featureSelectionChange"], [8, "popupClosed", "popupClosed"], [8, "layoutChanged", "layoutChanged"], [8, "mapChanged", "mapChanged"], [8, "layerSelectionChange", "layerSelectionChange"]], {
777
- "enableZoom": ["enableZoomWatchHandler"]
792
+ "enableZoom": ["enableZoomWatchHandler"],
793
+ "hideMapOnLoad": ["hideMapOnLoadWatchHandler"]
778
794
  }]);
779
795
  function defineCustomElement$1() {
780
796
  if (typeof customElements === "undefined") {
@@ -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
- this._layerEditHandle = this._layer.on("edits", () => {
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: '1520951922ca98ee92ccc8f7119d7fa3666eddfa' }, h("div", { key: 'd436d1660fd46bba90dd5dadc6962c619b99143e', 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: 'cff16539fd7b4a85234e0d15d2170470d95d0ad9', class: "position-absolute" }, h("div", { key: '0b96a2d27a5df344da9192a01d5c42496e057cd1', class: tableNodeClass, id: "feature-form", ref: (el) => this._editContainer = el }), h("calcite-loader", { key: '49cadf3456d1f3289abde18c35b726471ac551cd', class: loadingClass, label: "", scale: "s" })))));
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: 'd9b4042323733785938a45be76688099b8a81b23' }, this._getMapLayerPicker(), h("div", { key: 'd468cd2df9971c02909fd0bc9603603bb213164f', class: "border-bottom" }), h("div", { key: '8cecea0a4387371c3af1ea76bbafd1cf7f205d77', class: "padding-top-sides-1" }, h("div", { key: 'd5364d20f014611ca73bbe1bc5b638aaa8e38738', class: "search-widget", ref: (el) => { this._searchElement = el; } }), h("div", { key: '2c1f16ce050e934e8dbd25a0ef430d8590438ce5', class: mapToolsContainerClass }, h("map-draw-tools", { key: '256ee8262662c1c54cee34bdc084e7555e3985c6', 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: '92859f6a60356d7ddc0b5530a06e181d67f3274b', class: "border-bottom" }), this._getNameInput()));
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
- if (searchResults.result) {
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
  *
@@ -71,9 +71,9 @@ const PublicNotification$1 = /*@__PURE__*/ proxyCustomElement(class PublicNotifi
71
71
  this.defaultExportTitle = "";
72
72
  this.defaultNumLabelsPerPage = 6;
73
73
  this.enableLayerFeatures = true;
74
- this.enableLayerFeaturesOnLoad = true;
74
+ this.enableLayerFeaturesOnLoad = false;
75
75
  this.enableSearchDistance = true;
76
- this.enableSearchDistanceOnLoad = true;
76
+ this.enableSearchDistanceOnLoad = false;
77
77
  this.enableSketchTools = true;
78
78
  this.featureEffect = undefined;
79
79
  this.featureHighlightEnabled = undefined;
@@ -294,7 +294,7 @@ const PublicNotification$1 = /*@__PURE__*/ proxyCustomElement(class PublicNotifi
294
294
  */
295
295
  render() {
296
296
  const headerSlot = this._isMobile ? "footer" : "header";
297
- return (h(Host, { key: '5473fef09cfb2a8870f8e03f263f4d003c6768e4' }, h("calcite-shell", { key: '4ecd592093267c886138b79b2ebb1b4b2e913463' }, h("calcite-action-bar", { key: 'e427d8982bc5e68d9b5430875b9079a0ce43e02b', class: "border-bottom-1 action-bar-size", "expand-disabled": true, layout: "horizontal", slot: headerSlot }, this._getActionGroup("list-check", EPageType.LIST, this._translations.myLists), this.showRefineSelection ? this._getActionGroup("test-data", EPageType.REFINE, this._translations.refineSelection) : null, this._getActionGroup("export", EPageType.EXPORT, this._translations.export)), this._getPage(this._pageType))));
297
+ return (h(Host, { key: '019074cdfaddd8121a6ed255f42dea427aac9440' }, h("calcite-shell", { key: 'ece21e206f6519627bc8f139c35f68838eb701a2' }, h("calcite-action-bar", { key: '92883d5df9fcf43584f3934bf7f61640afed2bdb', class: "border-bottom-1 action-bar-size", "expand-disabled": true, layout: "horizontal", slot: headerSlot }, this._getActionGroup("list-check", EPageType.LIST, this._translations.myLists), this.showRefineSelection ? this._getActionGroup("test-data", EPageType.REFINE, this._translations.refineSelection) : null, this._getActionGroup("export", EPageType.EXPORT, this._translations.export)), this._getPage(this._pageType))));
298
298
  }
299
299
  /**
300
300
  * StencilJS: Called once just after the component is first loaded.
@@ -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
- this._layerEditHandle = this._layer.on("edits", () => {
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: '1520951922ca98ee92ccc8f7119d7fa3666eddfa' }, h("div", { key: 'd436d1660fd46bba90dd5dadc6962c619b99143e', 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: 'cff16539fd7b4a85234e0d15d2170470d95d0ad9', class: "position-absolute" }, h("div", { key: '0b96a2d27a5df344da9192a01d5c42496e057cd1', class: tableNodeClass, id: "feature-form", ref: (el) => this._editContainer = el }), h("calcite-loader", { key: '49cadf3456d1f3289abde18c35b726471ac551cd', class: loadingClass, label: "", scale: "s" })))));
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
  //