@esri/solutions-components 0.7.48 → 0.7.50

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.
Files changed (38) hide show
  1. package/dist/cjs/calcite-input-date-picker_3.cjs.entry.js +5 -5
  2. package/dist/cjs/card-manager_3.cjs.entry.js +71 -51
  3. package/dist/cjs/crowdsource-manager.cjs.entry.js +18 -45
  4. package/dist/cjs/instant-apps-export.cjs.entry.js +5 -5
  5. package/dist/cjs/instant-apps-interactive-legend-classic.cjs.entry.js +16 -1
  6. package/dist/cjs/loader.cjs.js +1 -1
  7. package/dist/cjs/solutions-components.cjs.js +1 -1
  8. package/dist/collection/components/crowdsource-manager/crowdsource-manager.js +18 -73
  9. package/dist/collection/components/layer-table/layer-table.js +75 -72
  10. package/dist/components/crowdsource-manager.js +18 -51
  11. package/dist/components/instant-apps-export.js +5 -5
  12. package/dist/components/instant-apps-filter-list2.js +3 -3
  13. package/dist/components/instant-apps-interactive-legend-classic2.js +16 -1
  14. package/dist/components/instant-apps-social-share2.js +2 -2
  15. package/dist/components/layer-table2.js +73 -52
  16. package/dist/esm/calcite-input-date-picker_3.entry.js +5 -5
  17. package/dist/esm/card-manager_3.entry.js +71 -51
  18. package/dist/esm/crowdsource-manager.entry.js +18 -45
  19. package/dist/esm/instant-apps-export.entry.js +5 -5
  20. package/dist/esm/instant-apps-interactive-legend-classic.entry.js +16 -1
  21. package/dist/esm/loader.js +1 -1
  22. package/dist/esm/solutions-components.js +1 -1
  23. package/dist/node_modules/@esri/instant-apps-components/dist/collection/components/instant-apps-filter-list/instant-apps-filter-list.css +2 -4
  24. package/dist/node_modules/@esri/instant-apps-components/dist/collection/components/instant-apps-social-share/instant-apps-social-share.css +5 -0
  25. package/dist/solutions-components/p-21bc3c8a.entry.js +6 -0
  26. package/dist/solutions-components/p-8595b4aa.entry.js +17 -0
  27. package/dist/solutions-components/p-a5fd812c.entry.js +6 -0
  28. package/dist/solutions-components/p-ce4eed51.entry.js +6 -0
  29. package/dist/solutions-components/{p-f5b259f3.entry.js → p-de459c0a.entry.js} +1 -1
  30. package/dist/solutions-components/solutions-components.esm.js +1 -1
  31. package/dist/types/components/crowdsource-manager/crowdsource-manager.d.ts +2 -45
  32. package/dist/types/components/layer-table/layer-table.d.ts +16 -5
  33. package/dist/types/components.d.ts +0 -18
  34. package/package.json +2 -2
  35. package/dist/solutions-components/p-704c9ba1.entry.js +0 -17
  36. package/dist/solutions-components/p-766c0b57.entry.js +0 -6
  37. package/dist/solutions-components/p-ac2799f6.entry.js +0 -6
  38. package/dist/solutions-components/p-fec03ab3.entry.js +0 -6
@@ -20,8 +20,9 @@ const CrowdsourceManager = class {
20
20
  * MapView.when is not fired when mapView is not currently visible
21
21
  */
22
22
  this._shouldSetMapView = false;
23
+ this._defaultCenterHonored = false;
24
+ this._defaultLevelHonored = false;
23
25
  this.defaultCenter = "";
24
- this.defaultFilter = "";
25
26
  this.defaultGlobalId = "";
26
27
  this.defaultLayer = "";
27
28
  this.defaultLevel = "";
@@ -66,39 +67,6 @@ const CrowdsourceManager = class {
66
67
  // Watch handlers
67
68
  //
68
69
  //--------------------------------------------------------------------------
69
- /**
70
- * Watch for center url param to be set
71
- */
72
- defaultCenterWatchHandler() {
73
- this._defaultCenter = !this.defaultCenter ? undefined :
74
- this.defaultCenter.split(";").map(v => parseFloat(v));
75
- }
76
- /**
77
- * Watch for filter url param to be set
78
- */
79
- defaultFilterWatchHandler() {
80
- this._defaultFilter = JSON.parse(this.defaultFilter);
81
- }
82
- /**
83
- * Watch for globalid url param to be set
84
- */
85
- defaultGlobalIdWatchHandler() {
86
- this._defaultGlobalId = !this.defaultGlobalId ? undefined :
87
- this.defaultGlobalId.indexOf(",") > -1 ? this.defaultGlobalId.split(",") : [this.defaultGlobalId];
88
- }
89
- /**
90
- * Watch for oid url param to be set
91
- */
92
- defaultOidWatchHandler() {
93
- this._defaultOid = !this.defaultOid ? undefined :
94
- this.defaultOid.indexOf(",") > -1 ? this.defaultOid.split(",").map(o => parseInt(o, 10)) : [parseInt(this.defaultOid, 10)];
95
- }
96
- /**
97
- * Watch for zoom level param to be set
98
- */
99
- defaultLevelWatchHandler() {
100
- this._defaultLevel = !this.defaultLevel ? undefined : parseInt(this.defaultLevel, 10);
101
- }
102
70
  /**
103
71
  * When true the map zoom tools will be available
104
72
  */
@@ -390,6 +358,7 @@ const CrowdsourceManager = class {
390
358
  * @protected
391
359
  */
392
360
  _getTable(layoutMode, panelOpen, hideTable) {
361
+ var _a, _b;
393
362
  const tableClass = hideTable && this._isMobile ? "visibility-hidden" : "";
394
363
  const tableSizeClass = this._getTableSizeClass(layoutMode, panelOpen);
395
364
  const icon = this._getDividerIcon(layoutMode, panelOpen);
@@ -398,7 +367,11 @@ const CrowdsourceManager = class {
398
367
  const toggleLayout = layoutMode === ELayoutMode.HORIZONTAL ? "horizontal" : "vertical";
399
368
  const toggleSlot = layoutMode === ELayoutMode.HORIZONTAL ? "header" : "panel-start";
400
369
  const hasMapAndLayer = this.defaultWebmap && this.defaultLayer;
401
- return (h("calcite-shell", { class: `${tableSizeClass} ${tableClass} border-bottom` }, !this._isMobile ? (h("calcite-action-bar", { class: "border-sides", expandDisabled: true, layout: toggleLayout, slot: toggleSlot }, h("calcite-action", { class: "toggle-node", icon: icon, id: id, onClick: () => this._toggleLayout(), text: "" }), h("calcite-tooltip", { label: tooltip, placement: "bottom", "reference-element": id }, h("span", null, tooltip)))) : undefined, h("div", { class: `width-full height-full position-relative` }, h("layer-table", { defaultFilter: hasMapAndLayer ? this._defaultFilter : undefined, defaultGlobalId: hasMapAndLayer ? this._defaultGlobalId : undefined, defaultLayerId: hasMapAndLayer ? this.defaultLayer : "", defaultOid: hasMapAndLayer && !this.defaultGlobalId ? this._defaultOid : undefined, enableAutoRefresh: this.enableAutoRefresh, enableCSV: this.enableCSV, enableColumnReorder: this.enableColumnReorder, enableInlineEdit: this.enableInlineEdit, enableShare: this.enableShare, isMobile: this._isMobile, mapInfo: this._mapInfo, mapView: this === null || this === void 0 ? void 0 : this._mapView, onlyShowUpdatableLayers: this.onlyShowUpdatableLayers, ref: (el) => this._layerTable = el, shareIncludeEmbed: this.shareIncludeEmbed, shareIncludeSocial: this.shareIncludeSocial, showNewestFirst: this.showNewestFirst, zoomAndScrollToSelected: this.zoomAndScrollToSelected }))));
370
+ const globalId = !this.defaultGlobalId ? undefined :
371
+ ((_a = this.defaultGlobalId) === null || _a === void 0 ? void 0 : _a.indexOf(",")) > -1 ? this.defaultGlobalId.split(",") : [this.defaultGlobalId];
372
+ const defaultOid = !this.defaultOid ? undefined :
373
+ ((_b = this.defaultOid) === null || _b === void 0 ? void 0 : _b.indexOf(",")) > -1 ? this.defaultOid.split(",").map(o => parseInt(o, 10)) : [parseInt(this.defaultOid, 10)];
374
+ return (h("calcite-shell", { class: `${tableSizeClass} ${tableClass} border-bottom` }, !this._isMobile ? (h("calcite-action-bar", { class: "border-sides", expandDisabled: true, layout: toggleLayout, slot: toggleSlot }, h("calcite-action", { class: "toggle-node", icon: icon, id: id, onClick: () => this._toggleLayout(), text: "" }), h("calcite-tooltip", { label: tooltip, placement: "bottom", "reference-element": id }, h("span", null, tooltip)))) : undefined, h("div", { class: `width-full height-full position-relative` }, h("layer-table", { defaultGlobalId: hasMapAndLayer ? globalId : undefined, defaultLayerId: hasMapAndLayer ? this.defaultLayer : "", defaultOid: hasMapAndLayer && !globalId ? defaultOid : undefined, enableAutoRefresh: this.enableAutoRefresh, enableCSV: this.enableCSV, enableColumnReorder: this.enableColumnReorder, enableInlineEdit: this.enableInlineEdit, enableShare: this.enableShare, isMobile: this._isMobile, mapInfo: this._mapInfo, mapView: this === null || this === void 0 ? void 0 : this._mapView, onlyShowUpdatableLayers: this.onlyShowUpdatableLayers, ref: (el) => this._layerTable = el, shareIncludeEmbed: this.shareIncludeEmbed, shareIncludeSocial: this.shareIncludeSocial, showNewestFirst: this.showNewestFirst, zoomAndScrollToSelected: this.zoomAndScrollToSelected }))));
402
375
  }
403
376
  /**
404
377
  * Update the component layout when its size changes
@@ -451,17 +424,22 @@ const CrowdsourceManager = class {
451
424
  * @protected
452
425
  */
453
426
  async _setMapView() {
427
+ var _a;
454
428
  this._mapInfo = this._getMapInfo(this._mapChange.id);
455
429
  this._mapView = this._mapChange.mapView;
456
430
  this._initMapZoom();
457
431
  this._mapView.popupEnabled = false;
458
- if (this._defaultCenter && this._defaultLevel) {
432
+ const center = !this.defaultCenter || this._defaultCenterHonored ?
433
+ undefined : (_a = this.defaultCenter) === null || _a === void 0 ? void 0 : _a.split(";").map(v => parseFloat(v));
434
+ const zoom = !this.defaultLevel || this._defaultLevelHonored ?
435
+ undefined : parseInt(this.defaultLevel, 10);
436
+ if (center && zoom) {
459
437
  await this._mapView.goTo({
460
- center: this._defaultCenter,
461
- zoom: this._defaultLevel
438
+ center,
439
+ zoom
462
440
  });
463
- this._defaultCenter = undefined;
464
- this._defaultLevel = undefined;
441
+ this._defaultCenterHonored = true;
442
+ this._defaultLevelHonored = true;
465
443
  }
466
444
  }
467
445
  /**
@@ -493,11 +471,6 @@ const CrowdsourceManager = class {
493
471
  }
494
472
  get el() { return getElement(this); }
495
473
  static get watchers() { return {
496
- "defaultCenter": ["defaultCenterWatchHandler"],
497
- "defaultFilter": ["defaultFilterWatchHandler"],
498
- "defaultGlobalId": ["defaultGlobalIdWatchHandler"],
499
- "defaultOid": ["defaultOidWatchHandler"],
500
- "defaultLevel": ["defaultLevelWatchHandler"],
501
474
  "enableZoom": ["enableZoomWatchHandler"]
502
475
  }; }
503
476
  };
@@ -655,13 +655,13 @@ const InstantAppsExport = class {
655
655
  });
656
656
  }
657
657
  updateScaleBar() {
658
- var _a, _b, _c;
659
- if (this.scaleBarContainerEl) {
658
+ if (this.scaleBarContainerEl && this.view != null) {
660
659
  this.scaleBarContainerEl.innerHTML = '';
661
660
  if (this.showScaleBar) {
662
- const scaleBar = (_c = (_b = (_a = this.view) === null || _a === void 0 ? void 0 : _a.container) === null || _b === void 0 ? void 0 : _b.querySelector('.esri-scale-bar.esri-widget')) === null || _c === void 0 ? void 0 : _c.cloneNode(true);
663
- if (scaleBar != null) {
664
- this.scaleBarContainerEl.append(scaleBar);
661
+ const widgets = this.view.ui.getComponents();
662
+ const scaleBar = widgets === null || widgets === void 0 ? void 0 : widgets.find(({ container }) => { var _a; return (_a = container === null || container === void 0 ? void 0 : container.className) === null || _a === void 0 ? void 0 : _a.includes('esri-scale-bar'); });
663
+ if ((scaleBar === null || scaleBar === void 0 ? void 0 : scaleBar.container) != null && typeof scaleBar.container !== 'string') {
664
+ this.scaleBarContainerEl.append(scaleBar.container.cloneNode(true));
665
665
  }
666
666
  }
667
667
  }
@@ -1188,11 +1188,26 @@ const InstantAppsInteractiveLegendClassic = class {
1188
1188
  var _a, _b, _c, _d;
1189
1189
  try {
1190
1190
  // Initial data setup
1191
+ // Loads map/basemap
1191
1192
  const map = await ((_c = (_b = (_a = this.legendvm) === null || _a === void 0 ? void 0 : _a.view) === null || _b === void 0 ? void 0 : _b.map) === null || _c === void 0 ? void 0 : _c.load());
1192
1193
  await ((_d = map === null || map === void 0 ? void 0 : map.basemap) === null || _d === void 0 ? void 0 : _d.load());
1194
+ // Loads all layers in webmap and waits until all settled promises
1193
1195
  const allLayers = map === null || map === void 0 ? void 0 : map.allLayers;
1194
1196
  const promises = allLayers === null || allLayers === void 0 ? void 0 : allLayers.map(layer => layer.load());
1195
- await Promise.allSettled(promises);
1197
+ const settled = await Promise.allSettled(promises);
1198
+ const settledLayerPromises = settled
1199
+ .map(settledLayer => ((settledLayer === null || settledLayer === void 0 ? void 0 : settledLayer.status) === 'fulfilled' && (settledLayer === null || settledLayer === void 0 ? void 0 : settledLayer.value) ? settledLayer.value : null))
1200
+ .filter(layer => !!layer);
1201
+ // Wait until all layer views are settled/available
1202
+ const lvPromises = [];
1203
+ settledLayerPromises.forEach(layer => {
1204
+ var _a;
1205
+ if ((_a = this.legendvm) === null || _a === void 0 ? void 0 : _a.view) {
1206
+ lvPromises.push(this.legendvm.view.whenLayerView(layer));
1207
+ }
1208
+ });
1209
+ await Promise.allSettled(lvPromises);
1210
+ // Generate data once all layers/layer views are complete
1196
1211
  const data = await generateData(this.legendvm, this.reactiveUtils);
1197
1212
  store.set('data', Object.assign(Object.assign({}, interactiveLegendState.data), data));
1198
1213
  this.isLoading = false;