@esri/solutions-components 0.7.18 → 0.7.19

Sign up to get free protection for your applications and to get access to all the features.
Files changed (70) hide show
  1. package/dist/cjs/calcite-alert_3.cjs.entry.js +93 -6
  2. package/dist/cjs/calcite-combobox_6.cjs.entry.js +1 -1
  3. package/dist/cjs/calcite-shell-panel_14.cjs.entry.js +1 -1
  4. package/dist/cjs/card-manager_3.cjs.entry.js +12 -5
  5. package/dist/cjs/crowdsource-manager.cjs.entry.js +4 -3
  6. package/dist/cjs/{downloadUtils-8f50633d.js → downloadUtils-9a13c6ac.js} +19 -14
  7. package/dist/cjs/{index.es-140aa937.js → index.es-284a020c.js} +2 -2
  8. package/dist/cjs/map-select-tools_3.cjs.entry.js +2 -2
  9. package/dist/cjs/{mapViewUtils-569e9644.js → mapViewUtils-8aa325de.js} +4 -1
  10. package/dist/cjs/public-notification.cjs.entry.js +2 -2
  11. package/dist/cjs/solution-contents_3.cjs.entry.js +4 -4
  12. package/dist/collection/components/crowdsource-manager/crowdsource-manager.css +4 -1
  13. package/dist/collection/components/crowdsource-manager/crowdsource-manager.js +3 -2
  14. package/dist/collection/components/edit-card/edit-card.js +1 -2
  15. package/dist/collection/components/info-card/info-card.js +3 -3
  16. package/dist/collection/components/layer-table/layer-table.css +4 -0
  17. package/dist/collection/components/layer-table/layer-table.js +9 -2
  18. package/dist/collection/components/solution-item-sharing/solution-item-sharing.js +1 -1
  19. package/dist/collection/components/solution-spatial-ref/solution-spatial-ref.js +4 -4
  20. package/dist/collection/utils/downloadUtils.js +17 -12
  21. package/dist/collection/utils/downloadUtils.ts +20 -12
  22. package/dist/collection/utils/interfaces.ts +5 -0
  23. package/dist/collection/utils/popupUtils.js +94 -0
  24. package/dist/collection/utils/popupUtils.ts +104 -0
  25. package/dist/collection/utils/queryUtils.js +4 -1
  26. package/dist/collection/utils/queryUtils.ts +5 -1
  27. package/dist/components/crowdsource-manager.js +4 -3
  28. package/dist/components/downloadUtils.js +17 -12
  29. package/dist/components/edit-card2.js +1 -2
  30. package/dist/components/info-card2.js +91 -3
  31. package/dist/components/layer-table2.js +10 -3
  32. package/dist/components/queryUtils.js +4 -1
  33. package/dist/components/solution-item-sharing2.js +1 -1
  34. package/dist/components/solution-spatial-ref2.js +4 -4
  35. package/dist/esm/calcite-alert_3.entry.js +93 -6
  36. package/dist/esm/calcite-combobox_6.entry.js +1 -1
  37. package/dist/esm/calcite-shell-panel_14.entry.js +1 -1
  38. package/dist/esm/card-manager_3.entry.js +12 -5
  39. package/dist/esm/crowdsource-manager.entry.js +4 -3
  40. package/dist/esm/{downloadUtils-9dee8bc0.js → downloadUtils-a4bbdb1d.js} +19 -14
  41. package/dist/esm/{index.es-54e86c8e.js → index.es-48fdb288.js} +2 -2
  42. package/dist/esm/map-select-tools_3.entry.js +2 -2
  43. package/dist/esm/{mapViewUtils-066602d5.js → mapViewUtils-8fe70944.js} +4 -1
  44. package/dist/esm/public-notification.entry.js +2 -2
  45. package/dist/esm/solution-contents_3.entry.js +4 -4
  46. package/dist/solutions-components/{p-d0c4572d.entry.js → p-1d56804c.entry.js} +18 -2
  47. package/dist/solutions-components/p-24b3ad7d.entry.js +6 -0
  48. package/dist/solutions-components/{p-6656c53e.entry.js → p-2abc02a1.entry.js} +1 -1
  49. package/dist/solutions-components/{p-825c045a.entry.js → p-2ddd9cf8.entry.js} +1 -1
  50. package/dist/solutions-components/{p-e8011829.entry.js → p-48a5ae32.entry.js} +1 -1
  51. package/dist/solutions-components/{p-dfdb8411.js → p-72dbfa77.js} +1 -1
  52. package/dist/solutions-components/{p-683cded6.entry.js → p-b1422b00.entry.js} +1 -1
  53. package/dist/solutions-components/p-b5d1b979.js +36 -0
  54. package/dist/solutions-components/{p-e405f393.entry.js → p-cf24ce53.entry.js} +1 -1
  55. package/dist/solutions-components/{p-1bdd64a0.js → p-d4afcf86.js} +4 -4
  56. package/dist/solutions-components/{p-f486c86d.entry.js → p-fdb1ace8.entry.js} +1 -1
  57. package/dist/solutions-components/solutions-components.css +1 -1
  58. package/dist/solutions-components/solutions-components.esm.js +1 -1
  59. package/dist/solutions-components/utils/downloadUtils.ts +20 -12
  60. package/dist/solutions-components/utils/interfaces.ts +5 -0
  61. package/dist/solutions-components/utils/popupUtils.ts +104 -0
  62. package/dist/solutions-components/utils/queryUtils.ts +5 -1
  63. package/dist/types/components/info-card/info-card.d.ts +5 -0
  64. package/dist/types/utils/downloadUtils.d.ts +3 -3
  65. package/dist/types/utils/interfaces.d.ts +4 -0
  66. package/dist/types/utils/popupUtils.d.ts +46 -0
  67. package/dist/types/utils/queryUtils.d.ts +1 -1
  68. package/package.json +1 -1
  69. package/dist/solutions-components/p-531d91d6.js +0 -36
  70. package/dist/solutions-components/p-8ca5d651.entry.js +0 -6
@@ -17,7 +17,7 @@ const t9n = require('./t9n-0556abcb.js');
17
17
  const resources = require('./resources-222ad22c.js');
18
18
  const loadModules = require('./loadModules-46d14e81.js');
19
19
  const locale$1 = require('./locale-9db09b63.js');
20
- const mapViewUtils = require('./mapViewUtils-569e9644.js');
20
+ const mapViewUtils = require('./mapViewUtils-8aa325de.js');
21
21
  require('./guid-1a466ca6.js');
22
22
  require('./resources-6c60363a.js');
23
23
  require('./key-b8c05387.js');
@@ -445,8 +445,7 @@ const EditCard = class {
445
445
  view: this.mapView,
446
446
  layerInfos,
447
447
  visibleElements: {
448
- snappingControls: false,
449
- sketchTooltipControls: false
448
+ snappingControls: false
450
449
  },
451
450
  container
452
451
  });
@@ -511,6 +510,95 @@ const EditCard = class {
511
510
  };
512
511
  EditCard.style = editCardCss;
513
512
 
513
+ /** @license
514
+ * Copyright 2022 Esri
515
+ *
516
+ * Licensed under the Apache License, Version 2.0 (the "License");
517
+ * you may not use this file except in compliance with the License.
518
+ * You may obtain a copy of the License at
519
+ *
520
+ * http://www.apache.org/licenses/LICENSE-2.0
521
+ *
522
+ * Unless required by applicable law or agreed to in writing, software
523
+ * distributed under the License is distributed on an "AS IS" BASIS,
524
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
525
+ * See the License for the specific language governing permissions and
526
+ * limitations under the License.
527
+ */
528
+ class PopupUtils {
529
+ /**
530
+ * Get the popup title that honors arcade expressions
531
+ *
532
+ * @returns Promise resolving with the popup title
533
+ *
534
+ * @protected
535
+ */
536
+ async getPopupTitle(graphic) {
537
+ var _a, _b, _c;
538
+ if (!this.arcade) {
539
+ await this._initModules();
540
+ }
541
+ let attributes = {};
542
+ for (const [key, value] of Object.entries(graphic.attributes)) {
543
+ attributes = Object.assign(Object.assign({}, attributes), { [`{${key.toUpperCase()}}`]: value });
544
+ }
545
+ const layer = graphic.layer;
546
+ const popupTitle = this._removeTags((_a = layer === null || layer === void 0 ? void 0 : layer.popupTemplate) === null || _a === void 0 ? void 0 : _a.title);
547
+ if (popupTitle.includes("{expression/expr") && ((_b = layer === null || layer === void 0 ? void 0 : layer.popupTemplate) === null || _b === void 0 ? void 0 : _b.expressionInfos) != null) {
548
+ for (let i = 0; i < ((_c = layer.popupTemplate) === null || _c === void 0 ? void 0 : _c.expressionInfos.length); i++) {
549
+ const info = layer.popupTemplate.expressionInfos[i];
550
+ const profile = {
551
+ variables: [
552
+ {
553
+ name: "$feature",
554
+ type: "feature"
555
+ }
556
+ ]
557
+ };
558
+ try {
559
+ const arcadeExecutor = await this.arcade.createArcadeExecutor(info.expression, profile);
560
+ const arcadeTitle = arcadeExecutor.execute({ $feature: graphic });
561
+ if (arcadeTitle != null || arcadeTitle !== "") {
562
+ attributes[`{expression/${info.name}}`.toUpperCase()] = arcadeTitle;
563
+ }
564
+ }
565
+ catch (_d) {
566
+ continue;
567
+ }
568
+ }
569
+ }
570
+ return popupTitle === null || popupTitle === void 0 ? void 0 : popupTitle.replace(/{.*?}/g, (placeholder) => {
571
+ return attributes[placeholder.toUpperCase()] != null ? attributes[placeholder.toUpperCase()] : "";
572
+ });
573
+ }
574
+ /**
575
+ * Remove any tags from the title
576
+ *
577
+ * @returns title string without tags
578
+ *
579
+ * @protected
580
+ */
581
+ _removeTags(str) {
582
+ if (str == null || str === "") {
583
+ return "";
584
+ }
585
+ return str.toString().replace(/(<([^>]+)>)/gi, "");
586
+ }
587
+ /**
588
+ * Load esri javascript api modules
589
+ *
590
+ * @returns Promise resolving when function is done
591
+ *
592
+ * @protected
593
+ */
594
+ async _initModules() {
595
+ const [arcade] = await loadModules.loadModules([
596
+ "esri/arcade"
597
+ ]);
598
+ this.arcade = arcade;
599
+ }
600
+ }
601
+
514
602
  const infoCardCss = ":host{display:block;--calcite-label-margin-bottom:0}.padding-1-2{padding:0.5rem}.display-none{display:none !important}.display-flex{display:flex}.position-absolute{position:absolute;top:0;right:0;bottom:0;left:0;overflow:auto}.esri-features__footer{display:none !important}.button-container{justify-content:space-between;align-items:center}.top-border{border-top:1px solid var(--calcite-color-border-1)}.min-width-100{min-width:100px}.width-100{width:100%}.esri-features__container{padding:0.5rem !important;background-color:var(--calcite-color-foreground-1) !important;height:100% !important}.overflow-hidden{overflow:hidden}.height-40{height:40px}.padding-top-46{padding-top:46px}.end-border{border-inline-end:1px solid var(--calcite-color-border-1)}.font-bold{font-weight:bold}.visibility-hidden{visibility:hidden;height:0px}.padding-inline-start-1{padding-inline-start:1rem}";
515
603
 
516
604
  const InfoCard = class {
@@ -546,6 +634,7 @@ const InfoCard = class {
546
634
  if (this.graphics.length > 0) {
547
635
  const featureLayer = (_a = this.graphics[0]) === null || _a === void 0 ? void 0 : _a.layer;
548
636
  this._editEnabled = featureLayer.editingEnabled && featureLayer.capabilities.operations.supportsUpdate;
637
+ this._mobileTitle = await this._popupUtils.getPopupTitle(this.graphics[0]);
549
638
  this._features.open({
550
639
  features: this.graphics
551
640
  });
@@ -609,6 +698,7 @@ const InfoCard = class {
609
698
  async componentWillLoad() {
610
699
  await this._initModules();
611
700
  await this._getTranslations();
701
+ this._popupUtils = new PopupUtils();
612
702
  }
613
703
  /**
614
704
  * Renders the component.
@@ -669,9 +759,6 @@ const InfoCard = class {
669
759
  this._showListView = isOpen;
670
760
  }
671
761
  });
672
- this.reactiveUtils.watch(() => this._features.viewModel.title, (title) => {
673
- this._mobileTitle = title;
674
- });
675
762
  if (this.zoomAndScrollToSelected) {
676
763
  this.reactiveUtils.watch(() => this._features.selectedFeatureIndex, (i) => {
677
764
  if (i > -1) {
@@ -26,7 +26,7 @@ const debounce = require('./debounce-30afab47.js');
26
26
  const conditionalSlot = require('./conditionalSlot-63e11cba.js');
27
27
  const key = require('./key-b8c05387.js');
28
28
  const locale$1 = require('./locale-9db09b63.js');
29
- const mapViewUtils = require('./mapViewUtils-569e9644.js');
29
+ const mapViewUtils = require('./mapViewUtils-8aa325de.js');
30
30
  const publicNotificationStore = require('./publicNotificationStore-3a17c2f4.js');
31
31
  require('./resources-6c60363a.js');
32
32
  require('./browser-9a43b900.js');
@@ -2271,7 +2271,7 @@ const SolutionItemSharing = class {
2271
2271
  this.sharing = this.sharing.map((itemShare) => {
2272
2272
  if (itemShare.id === id) {
2273
2273
  // update the item
2274
- itemShare.shareItem = event.detail.switched;
2274
+ itemShare.shareItem = event.target.checked;
2275
2275
  // update the item in the store
2276
2276
  const itemEdit = solutionStore.state.getItemInfo(id);
2277
2277
  if (itemShare.shareItem) {
@@ -9,9 +9,9 @@ Object.defineProperty(exports, '__esModule', { value: true });
9
9
 
10
10
  const index = require('./index-b8a649fc.js');
11
11
  const locale = require('./locale-9db09b63.js');
12
- const mapViewUtils = require('./mapViewUtils-569e9644.js');
12
+ const mapViewUtils = require('./mapViewUtils-8aa325de.js');
13
13
  const loadModules = require('./loadModules-46d14e81.js');
14
- const downloadUtils = require('./downloadUtils-8f50633d.js');
14
+ const downloadUtils = require('./downloadUtils-9a13c6ac.js');
15
15
  require('./esri-loader-a91c0ec1.js');
16
16
  require('./_commonjsHelpers-384729db.js');
17
17
  require('./interfaces-7cd0a48a.js');
@@ -107,7 +107,7 @@ const CardManager = class {
107
107
  };
108
108
  CardManager.style = cardManagerCss;
109
109
 
110
- const layerTableCss = ":host{display:block}.height-full{height:100%}.height-full-adjusted{height:calc(100% - 20px)}.width-full{width:100%}.display-flex{display:flex}.table-border{border:1px solid var(--calcite-color-border-2)}.border-end{border-inline-end:1px solid var(--calcite-color-border-2)}.border-bottom{border-bottom:1px solid var(--calcite-color-border-2)}.padding-5{padding:5px}.padding-end-1{padding-inline-end:1rem}.height-51{height:51px}.height-50-px{height:50px}.bottom-left{position:absolute;left:0;bottom:0;padding-left:5px}html[dir=\"rtl\"] .bottom-left{position:absolute;right:0;bottom:0;padding-right:5px}.height-19{height:19px}.background{background-color:var(--calcite-color-background)}.text-color{color:var(--calcite-color-text-1)}.align-center{align-items:center}.danger-color{color:var(--calcite-color-status-danger)}.esri-feature-table vaadin-grid{border:none !important}vaadin-grid-cell-content{font-size:14px !important;color:var(--calcite-color-text-3) !important}.share-action{position:absolute;right:0}html[dir=\"rtl\"] .share-action{left:0}.disabled{cursor:default !important;-webkit-user-select:none;-moz-user-select:none;user-select:none;opacity:var(--calcite-opacity-disabled);pointer-events:none}.instant-app-share{height:50px !important;display:inline-flex}.border-top{border-top:1px solid var(--calcite-color-border-2)}";
110
+ const layerTableCss = ":host{display:block}.height-full{height:100%}.height-full-adjusted{height:calc(100% - 20px)}.width-full{width:100%}.display-flex{display:flex}.table-border{border:1px solid var(--calcite-color-border-2)}.border-end{border-inline-end:1px solid var(--calcite-color-border-2)}.border-bottom{border-bottom:1px solid var(--calcite-color-border-2)}.padding-5{padding:5px}.padding-end-1{padding-inline-end:1rem}.height-51{height:51px}.height-50-px{height:50px}.bottom-left{position:absolute;left:0;bottom:0;padding-left:5px}html[dir=\"rtl\"] .bottom-left{position:absolute;right:0;bottom:0;padding-right:5px}.height-19{height:19px}.background{background-color:var(--calcite-color-background)}.text-color{color:var(--calcite-color-text-1)}.align-center{align-items:center}.danger-color{color:var(--calcite-color-status-danger)}.esri-feature-table vaadin-grid{border:none !important}vaadin-grid-cell-content{font-size:14px !important;color:var(--calcite-color-text-3) !important}.share-action{position:absolute;right:0}html[dir=\"rtl\"] .share-action{left:0}.disabled{cursor:default !important;-webkit-user-select:none;-moz-user-select:none;user-select:none;opacity:var(--calcite-opacity-disabled);pointer-events:none}.instant-app-share{height:50px !important;display:inline-flex}.border-top{border-top:1px solid var(--calcite-color-border-2)}.modal{--calcite-modal-content-padding:0}";
111
111
 
112
112
  const LayerTable = class {
113
113
  constructor(hostRef) {
@@ -1137,7 +1137,7 @@ const LayerTable = class {
1137
1137
  */
1138
1138
  _filterModal() {
1139
1139
  var _a, _b, _c;
1140
- return (index.h("calcite-modal", { "aria-labelledby": "modal-title", kind: "brand", onCalciteModalClose: async () => this._closeFilter(), open: this._filterOpen, widthScale: "s" }, index.h("div", { class: "display-flex align-center", id: "modal-title", slot: "header" }, (_b = (_a = this._translations) === null || _a === void 0 ? void 0 : _a.filter) === null || _b === void 0 ? void 0 : _b.replace("{{title}}", (_c = this._layer) === null || _c === void 0 ? void 0 : _c.title)), index.h("div", { slot: "content" }, index.h("instant-apps-filter-list", { autoUpdateUrl: false, closeBtn: true, closeBtnOnClick: async () => this._closeFilter(), layerExpressions: this._layerExpressions, onFilterListReset: () => this._handleFilterListReset(), onFilterUpdate: () => this._handleFilterUpdate(), ref: (el) => this._filterList = el, view: this.mapView }))));
1140
+ return (index.h("calcite-modal", { "aria-labelledby": "modal-title", class: "modal", kind: "brand", onCalciteModalClose: async () => this._closeFilter(), open: this._filterOpen, widthScale: "s" }, index.h("div", { class: "display-flex align-center", id: "modal-title", slot: "header" }, (_b = (_a = this._translations) === null || _a === void 0 ? void 0 : _a.filter) === null || _b === void 0 ? void 0 : _b.replace("{{title}}", (_c = this._layer) === null || _c === void 0 ? void 0 : _c.title)), index.h("div", { slot: "content" }, index.h("instant-apps-filter-list", { autoUpdateUrl: false, closeBtn: true, closeBtnOnClick: async () => this._closeFilter(), layerExpressions: this._layerExpressions, onFilterListReset: () => this._handleFilterListReset(), onFilterUpdate: () => this._handleFilterUpdate(), ref: (el) => this._filterList = el, view: this.mapView }))));
1141
1141
  }
1142
1142
  /**
1143
1143
  * Reset the filter active prop
@@ -1296,10 +1296,17 @@ const LayerTable = class {
1296
1296
  ids,
1297
1297
  layer: this._layer
1298
1298
  };
1299
+ const fields = this._table.columns.toArray().reduce((prev, cur) => {
1300
+ if (!cur.hidden) {
1301
+ prev.push(cur.name.toLocaleLowerCase());
1302
+ }
1303
+ return prev;
1304
+ }, []);
1299
1305
  void downloadUtils.downloadCSV(null, //???
1300
1306
  exportInfos, false, // formatUsingLayerPopup
1301
1307
  false, // removeDuplicates
1302
- true);
1308
+ true, // addColumnTitle
1309
+ fields);
1303
1310
  }
1304
1311
  /**
1305
1312
  * Refreshes the table and maintains the curent scroll position
@@ -13,7 +13,7 @@ const interfaces = require('./interfaces-7cd0a48a.js');
13
13
  require('./esri-loader-a91c0ec1.js');
14
14
  require('./_commonjsHelpers-384729db.js');
15
15
 
16
- const crowdsourceManagerCss = ":host{display:block;--calcite-label-margin-bottom:0px;--solutions-theme-foreground-color:var(--calcite-color-foreground-1)}.padding-1-2{padding:0.5rem}.display-flex{display:flex}.width-full{width:100%}.width-1-2{position:relative;width:50%}.width-1-3{position:relative;width:33.33%}.width-2-3{position:relative;width:66.66%}.width-0{width:0}.height-full{height:100%}.height-1-2{position:relative;height:50%}.height-0{height:0}.toggle-node{width:51px;height:51px}.overflow-hidden{overflow:hidden}.flex-column{flex-direction:column}.border{border:1px solid var(--calcite-color-border-3)}.border-bottom{border-bottom:1px solid var(--calcite-color-border-3)}.border-sides{border-left:1px solid var(--calcite-color-border-3);border-right:1px solid var(--calcite-color-border-3)}.position-relative{position:relative}.height-50{height:50%}.adjusted-height-50{height:calc(50% - 25px)}.adjusted-height-100{height:calc(100% - 50px)}.adjusted-height-100-50{height:calc(100% - 50px)}.display-none{display:none}.height-53{height:53px}.position-absolute-53{position:absolute;top:53px}.display-grid{display:grid}.height-50-px{height:50px}.padding-inline-start-75{padding-inline-start:0.75rem}.align-items-center{align-items:center}.esri-floor-filter__close-levels-button{width:40px !important;height:40px !important}.esri-floor-filter__level-button{width:40px !important;height:40px !important}.esri-floor-filter__browse-button{width:40px !important;height:40px !important}.position-absolute-50{position:absolute;top:50px;bottom:0px;left:0px;right:0px}.position-absolute-0{position:absolute;top:0px;bottom:0px;left:0px;right:0px}.visibility-hidden{visibility:hidden;height:0px}";
16
+ const crowdsourceManagerCss = ":host{display:block;--calcite-label-margin-bottom:0px;--solutions-theme-foreground-color:var(--calcite-color-foreground-1)}.padding-1-2{padding:0.5rem}.display-flex{display:flex}.width-full{width:100%}.width-1-2{position:relative;width:50%}.width-1-3{position:relative;width:33.33%}.width-2-3{position:relative;width:66.66%}.width-0{width:0}.height-full{height:100%}.height-1-2{position:relative;height:50%}.height-0{height:0}.toggle-node{width:51px;height:51px}.overflow-hidden{overflow:hidden}.flex-column{flex-direction:column}.border{border:1px solid var(--calcite-color-border-3)}.border-bottom{border-bottom:1px solid var(--calcite-color-border-3)}.border-sides{border-left:1px solid var(--calcite-color-border-3);border-right:1px solid var(--calcite-color-border-3)}.position-relative{position:relative}.height-50{height:50%}.adjusted-height-50{height:calc(50% - 25px)}.adjusted-height-100{height:calc(100% - 50px)}.adjusted-height-100-50{height:calc(100% - 50px)}.display-none{display:none}.height-53{height:53px}.position-absolute-53{position:absolute;top:53px}.display-grid{display:grid}.height-50-px{height:50px}.padding-inline-start-75{padding-inline-start:0.75rem}.align-items-center{align-items:center}.esri-floor-filter__close-levels-button{width:40px !important;height:40px !important}.esri-floor-filter__level-button{width:40px !important;height:40px !important}.esri-floor-filter__browse-button{width:40px !important;height:40px !important}.position-absolute-50{position:absolute;top:50px;bottom:0px;left:0px;right:0px}.position-absolute-0{position:absolute;top:0px;bottom:0px;left:0px;right:0px}.visibility-hidden{visibility:hidden;height:0px}.position-fixed{position:fixed}";
17
17
 
18
18
  const CrowdsourceManager = class {
19
19
  constructor(hostRef) {
@@ -262,7 +262,7 @@ const CrowdsourceManager = class {
262
262
  let sizeClass = "";
263
263
  switch (layoutMode) {
264
264
  case interfaces.ELayoutMode.HORIZONTAL:
265
- sizeClass = `${this._isMobile && this._hideTable ? "height-full" : panelOpen ? "height-1-2" : "height-0"} width-full position-relative`;
265
+ sizeClass = `${this._isMobile && this.hideMap ? "height-0 " : panelOpen ? "height-1-2 display-grid" : "height-0"} width-full position-relative`;
266
266
  break;
267
267
  case interfaces.ELayoutMode.GRID:
268
268
  sizeClass = this.classicGrid ? `${panelOpen ? "position-relative" : "position-absolute-53"} height-full width-full display-flex` :
@@ -362,7 +362,8 @@ const CrowdsourceManager = class {
362
362
  const popupNodeClass = !this._expandPopup ? "height-full" : ((_a = this.mapInfos) === null || _a === void 0 ? void 0 : _a.length) === 1 || this._isMobile ? "position-absolute-0" : "position-absolute-50";
363
363
  const headerClass = this._isMobile ? "display-none height-0" : "";
364
364
  const headerTheme = !this._isMobile ? "calcite-mode-dark" : "calcite-mode-light";
365
- return (index.h("div", { class: `${headerTheme} ${popupNodeClass}` }, index.h("calcite-panel", null, !this._isMobile ? (index.h("div", { class: `display-flex align-items-center ${headerClass}`, slot: "header-content" }, index.h("calcite-icon", { icon: "information", scale: "s" }), index.h("div", { class: "padding-inline-start-75" }, this._translations.information))) : undefined, index.h("calcite-action", { class: headerClass, disabled: this._tableOnly, icon: icon, id: id, onClick: () => this._togglePopup(), slot: "header-actions-end", text: "" }), !this._tableOnly ? index.h("calcite-tooltip", { class: themeClass, label: "", placement: "bottom", "reference-element": id }, index.h("span", null, tooltip)) : undefined, this._getCardNode())));
365
+ const containerClass = this._isMobile && this._hideTable && this.hideMap ? "position-fixed width-full height-full" : this._isMobile ? "display-none height-0" : "";
366
+ return (index.h("div", { class: `${headerTheme} ${popupNodeClass} ${containerClass}` }, index.h("calcite-panel", null, !this._isMobile ? (index.h("div", { class: `display-flex align-items-center ${headerClass}`, slot: "header-content" }, index.h("calcite-icon", { icon: "information", scale: "s" }), index.h("div", { class: "padding-inline-start-75" }, this._translations.information))) : undefined, index.h("calcite-action", { class: headerClass, disabled: this._tableOnly, icon: icon, id: id, onClick: () => this._togglePopup(), slot: "header-actions-end", text: "" }), !this._tableOnly ? index.h("calcite-tooltip", { class: themeClass, label: "", placement: "bottom", "reference-element": id }, index.h("span", null, tooltip)) : undefined, this._getCardNode())));
366
367
  }
367
368
  /**
368
369
  * Toggle the popup information
@@ -8,7 +8,7 @@
8
8
  const _commonjsHelpers = require('./_commonjsHelpers-384729db.js');
9
9
  const index = require('./index-b8a649fc.js');
10
10
  const loadModules = require('./loadModules-46d14e81.js');
11
- const mapViewUtils = require('./mapViewUtils-569e9644.js');
11
+ const mapViewUtils = require('./mapViewUtils-8aa325de.js');
12
12
  require('./solution-resource-abec7452.js');
13
13
  require('./index-f64944ad.js');
14
14
  const restHelpersGet = require('./restHelpersGet-e0737480.js');
@@ -1510,7 +1510,7 @@ function(t){var e=function(t){for(var e=t.length,r=new Uint8Array(e),n=0;n<e;n++
1510
1510
  * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
1511
1511
  * ====================================================================
1512
1512
  */
1513
- function(t){function e(){return (n.canvg?Promise.resolve(n.canvg):Promise.resolve().then(function () { return require('./index.es-140aa937.js'); })).catch((function(t){return Promise.reject(new Error("Could not load canvg: "+t))})).then((function(t){return t.default?t.default:t}))}E.API.addSvgAsImage=function(t,r,n,i,o,s,c,u){if(isNaN(r)||isNaN(n))throw a.error("jsPDF.addSvgAsImage: Invalid coordinates",arguments),new Error("Invalid coordinates passed to jsPDF.addSvgAsImage");if(isNaN(i)||isNaN(o))throw a.error("jsPDF.addSvgAsImage: Invalid measurements",arguments),new Error("Invalid measurements (width and/or height) passed to jsPDF.addSvgAsImage");var h=document.createElement("canvas");h.width=i,h.height=o;var l=h.getContext("2d");l.fillStyle="#fff",l.fillRect(0,0,h.width,h.height);var f={ignoreMouse:!0,ignoreAnimation:!0,ignoreDimensions:!0},d=this;return e().then((function(e){return e.fromString(l,t,f)}),(function(){return Promise.reject(new Error("Could not load canvg."))})).then((function(t){return t.render(f)})).then((function(){d.addImage(h.toDataURL("image/jpeg",1),r,n,i,o,c,u);}))};}(),E.API.putTotalPages=function(t){var e,r=0;parseInt(this.internal.getFont().id.substr(1),10)<15?(e=new RegExp(t,"g"),r=this.internal.getNumberOfPages()):(e=new RegExp(this.pdfEscape16(t,this.internal.getFont()),"g"),r=this.pdfEscape16(this.internal.getNumberOfPages()+"",this.internal.getFont()));for(var n=1;n<=this.internal.getNumberOfPages();n++)for(var i=0;i<this.internal.pages[n].length;i++)this.internal.pages[n][i]=this.internal.pages[n][i].replace(e,r);return this},E.API.viewerPreferences=function(e,r){var n;e=e||{},r=r||!1;var i,a,o,s={HideToolbar:{defaultValue:!1,value:!1,type:"boolean",explicitSet:!1,valueSet:[!0,!1],pdfVersion:1.3},HideMenubar:{defaultValue:!1,value:!1,type:"boolean",explicitSet:!1,valueSet:[!0,!1],pdfVersion:1.3},HideWindowUI:{defaultValue:!1,value:!1,type:"boolean",explicitSet:!1,valueSet:[!0,!1],pdfVersion:1.3},FitWindow:{defaultValue:!1,value:!1,type:"boolean",explicitSet:!1,valueSet:[!0,!1],pdfVersion:1.3},CenterWindow:{defaultValue:!1,value:!1,type:"boolean",explicitSet:!1,valueSet:[!0,!1],pdfVersion:1.3},DisplayDocTitle:{defaultValue:!1,value:!1,type:"boolean",explicitSet:!1,valueSet:[!0,!1],pdfVersion:1.4},NonFullScreenPageMode:{defaultValue:"UseNone",value:"UseNone",type:"name",explicitSet:!1,valueSet:["UseNone","UseOutlines","UseThumbs","UseOC"],pdfVersion:1.3},Direction:{defaultValue:"L2R",value:"L2R",type:"name",explicitSet:!1,valueSet:["L2R","R2L"],pdfVersion:1.3},ViewArea:{defaultValue:"CropBox",value:"CropBox",type:"name",explicitSet:!1,valueSet:["MediaBox","CropBox","TrimBox","BleedBox","ArtBox"],pdfVersion:1.4},ViewClip:{defaultValue:"CropBox",value:"CropBox",type:"name",explicitSet:!1,valueSet:["MediaBox","CropBox","TrimBox","BleedBox","ArtBox"],pdfVersion:1.4},PrintArea:{defaultValue:"CropBox",value:"CropBox",type:"name",explicitSet:!1,valueSet:["MediaBox","CropBox","TrimBox","BleedBox","ArtBox"],pdfVersion:1.4},PrintClip:{defaultValue:"CropBox",value:"CropBox",type:"name",explicitSet:!1,valueSet:["MediaBox","CropBox","TrimBox","BleedBox","ArtBox"],pdfVersion:1.4},PrintScaling:{defaultValue:"AppDefault",value:"AppDefault",type:"name",explicitSet:!1,valueSet:["AppDefault","None"],pdfVersion:1.6},Duplex:{defaultValue:"",value:"none",type:"name",explicitSet:!1,valueSet:["Simplex","DuplexFlipShortEdge","DuplexFlipLongEdge","none"],pdfVersion:1.7},PickTrayByPDFSize:{defaultValue:!1,value:!1,type:"boolean",explicitSet:!1,valueSet:[!0,!1],pdfVersion:1.7},PrintPageRange:{defaultValue:"",value:"",type:"array",explicitSet:!1,valueSet:null,pdfVersion:1.7},NumCopies:{defaultValue:1,value:1,type:"integer",explicitSet:!1,valueSet:null,pdfVersion:1.7}},c=Object.keys(s),u=[],h=0,l=0,f=0;function d(t,e){var r,n=!1;for(r=0;r<t.length;r+=1)t[r]===e&&(n=!0);return n}if(void 0===this.internal.viewerpreferences&&(this.internal.viewerpreferences={},this.internal.viewerpreferences.configuration=JSON.parse(JSON.stringify(s)),this.internal.viewerpreferences.isSubscribed=!1),n=this.internal.viewerpreferences.configuration,"reset"===e||!0===r){var p=c.length;for(f=0;f<p;f+=1)n[c[f]].value=n[c[f]].defaultValue,n[c[f]].explicitSet=!1;}if("object"===t(e))for(a in e)if(o=e[a],d(c,a)&&void 0!==o){if("boolean"===n[a].type&&"boolean"==typeof o)n[a].value=o;else if("name"===n[a].type&&d(n[a].valueSet,o))n[a].value=o;else if("integer"===n[a].type&&Number.isInteger(o))n[a].value=o;else if("array"===n[a].type){for(h=0;h<o.length;h+=1)if(i=!0,1===o[h].length&&"number"==typeof o[h][0])u.push(String(o[h]-1));else if(o[h].length>1){for(l=0;l<o[h].length;l+=1)"number"!=typeof o[h][l]&&(i=!1);!0===i&&u.push([o[h][0]-1,o[h][1]-1].join(" "));}n[a].value="["+u.join(" ")+"]";}else n[a].value=n[a].defaultValue;n[a].explicitSet=!0;}return !1===this.internal.viewerpreferences.isSubscribed&&(this.internal.events.subscribe("putCatalog",(function(){var t,e=[];for(t in n)!0===n[t].explicitSet&&("name"===n[t].type?e.push("/"+t+" /"+n[t].value):e.push("/"+t+" "+n[t].value));0!==e.length&&this.internal.write("/ViewerPreferences\n<<\n"+e.join("\n")+"\n>>");})),this.internal.viewerpreferences.isSubscribed=!0),this.internal.viewerpreferences.configuration=n,this},
1513
+ function(t){function e(){return (n.canvg?Promise.resolve(n.canvg):Promise.resolve().then(function () { return require('./index.es-284a020c.js'); })).catch((function(t){return Promise.reject(new Error("Could not load canvg: "+t))})).then((function(t){return t.default?t.default:t}))}E.API.addSvgAsImage=function(t,r,n,i,o,s,c,u){if(isNaN(r)||isNaN(n))throw a.error("jsPDF.addSvgAsImage: Invalid coordinates",arguments),new Error("Invalid coordinates passed to jsPDF.addSvgAsImage");if(isNaN(i)||isNaN(o))throw a.error("jsPDF.addSvgAsImage: Invalid measurements",arguments),new Error("Invalid measurements (width and/or height) passed to jsPDF.addSvgAsImage");var h=document.createElement("canvas");h.width=i,h.height=o;var l=h.getContext("2d");l.fillStyle="#fff",l.fillRect(0,0,h.width,h.height);var f={ignoreMouse:!0,ignoreAnimation:!0,ignoreDimensions:!0},d=this;return e().then((function(e){return e.fromString(l,t,f)}),(function(){return Promise.reject(new Error("Could not load canvg."))})).then((function(t){return t.render(f)})).then((function(){d.addImage(h.toDataURL("image/jpeg",1),r,n,i,o,c,u);}))};}(),E.API.putTotalPages=function(t){var e,r=0;parseInt(this.internal.getFont().id.substr(1),10)<15?(e=new RegExp(t,"g"),r=this.internal.getNumberOfPages()):(e=new RegExp(this.pdfEscape16(t,this.internal.getFont()),"g"),r=this.pdfEscape16(this.internal.getNumberOfPages()+"",this.internal.getFont()));for(var n=1;n<=this.internal.getNumberOfPages();n++)for(var i=0;i<this.internal.pages[n].length;i++)this.internal.pages[n][i]=this.internal.pages[n][i].replace(e,r);return this},E.API.viewerPreferences=function(e,r){var n;e=e||{},r=r||!1;var i,a,o,s={HideToolbar:{defaultValue:!1,value:!1,type:"boolean",explicitSet:!1,valueSet:[!0,!1],pdfVersion:1.3},HideMenubar:{defaultValue:!1,value:!1,type:"boolean",explicitSet:!1,valueSet:[!0,!1],pdfVersion:1.3},HideWindowUI:{defaultValue:!1,value:!1,type:"boolean",explicitSet:!1,valueSet:[!0,!1],pdfVersion:1.3},FitWindow:{defaultValue:!1,value:!1,type:"boolean",explicitSet:!1,valueSet:[!0,!1],pdfVersion:1.3},CenterWindow:{defaultValue:!1,value:!1,type:"boolean",explicitSet:!1,valueSet:[!0,!1],pdfVersion:1.3},DisplayDocTitle:{defaultValue:!1,value:!1,type:"boolean",explicitSet:!1,valueSet:[!0,!1],pdfVersion:1.4},NonFullScreenPageMode:{defaultValue:"UseNone",value:"UseNone",type:"name",explicitSet:!1,valueSet:["UseNone","UseOutlines","UseThumbs","UseOC"],pdfVersion:1.3},Direction:{defaultValue:"L2R",value:"L2R",type:"name",explicitSet:!1,valueSet:["L2R","R2L"],pdfVersion:1.3},ViewArea:{defaultValue:"CropBox",value:"CropBox",type:"name",explicitSet:!1,valueSet:["MediaBox","CropBox","TrimBox","BleedBox","ArtBox"],pdfVersion:1.4},ViewClip:{defaultValue:"CropBox",value:"CropBox",type:"name",explicitSet:!1,valueSet:["MediaBox","CropBox","TrimBox","BleedBox","ArtBox"],pdfVersion:1.4},PrintArea:{defaultValue:"CropBox",value:"CropBox",type:"name",explicitSet:!1,valueSet:["MediaBox","CropBox","TrimBox","BleedBox","ArtBox"],pdfVersion:1.4},PrintClip:{defaultValue:"CropBox",value:"CropBox",type:"name",explicitSet:!1,valueSet:["MediaBox","CropBox","TrimBox","BleedBox","ArtBox"],pdfVersion:1.4},PrintScaling:{defaultValue:"AppDefault",value:"AppDefault",type:"name",explicitSet:!1,valueSet:["AppDefault","None"],pdfVersion:1.6},Duplex:{defaultValue:"",value:"none",type:"name",explicitSet:!1,valueSet:["Simplex","DuplexFlipShortEdge","DuplexFlipLongEdge","none"],pdfVersion:1.7},PickTrayByPDFSize:{defaultValue:!1,value:!1,type:"boolean",explicitSet:!1,valueSet:[!0,!1],pdfVersion:1.7},PrintPageRange:{defaultValue:"",value:"",type:"array",explicitSet:!1,valueSet:null,pdfVersion:1.7},NumCopies:{defaultValue:1,value:1,type:"integer",explicitSet:!1,valueSet:null,pdfVersion:1.7}},c=Object.keys(s),u=[],h=0,l=0,f=0;function d(t,e){var r,n=!1;for(r=0;r<t.length;r+=1)t[r]===e&&(n=!0);return n}if(void 0===this.internal.viewerpreferences&&(this.internal.viewerpreferences={},this.internal.viewerpreferences.configuration=JSON.parse(JSON.stringify(s)),this.internal.viewerpreferences.isSubscribed=!1),n=this.internal.viewerpreferences.configuration,"reset"===e||!0===r){var p=c.length;for(f=0;f<p;f+=1)n[c[f]].value=n[c[f]].defaultValue,n[c[f]].explicitSet=!1;}if("object"===t(e))for(a in e)if(o=e[a],d(c,a)&&void 0!==o){if("boolean"===n[a].type&&"boolean"==typeof o)n[a].value=o;else if("name"===n[a].type&&d(n[a].valueSet,o))n[a].value=o;else if("integer"===n[a].type&&Number.isInteger(o))n[a].value=o;else if("array"===n[a].type){for(h=0;h<o.length;h+=1)if(i=!0,1===o[h].length&&"number"==typeof o[h][0])u.push(String(o[h]-1));else if(o[h].length>1){for(l=0;l<o[h].length;l+=1)"number"!=typeof o[h][l]&&(i=!1);!0===i&&u.push([o[h][0]-1,o[h][1]-1].join(" "));}n[a].value="["+u.join(" ")+"]";}else n[a].value=n[a].defaultValue;n[a].explicitSet=!0;}return !1===this.internal.viewerpreferences.isSubscribed&&(this.internal.events.subscribe("putCatalog",(function(){var t,e=[];for(t in n)!0===n[t].explicitSet&&("name"===n[t].type?e.push("/"+t+" /"+n[t].value):e.push("/"+t+" "+n[t].value));0!==e.length&&this.internal.write("/ViewerPreferences\n<<\n"+e.join("\n")+"\n>>");})),this.internal.viewerpreferences.isSubscribed=!0),this.internal.viewerpreferences.configuration=n,this},
1514
1514
  /** ====================================================================
1515
1515
  * @license
1516
1516
  * jsPDF XMP metadata plugin
@@ -2362,12 +2362,12 @@ const lineSeparatorChar = "|";
2362
2362
  * @param includeHeaderNames Add the label format at the front of the list of generated labels
2363
2363
  * @returns selectionSetNames that will be used for export filenames
2364
2364
  */
2365
- async function consolidateLabels(webmap, exportInfos, formatUsingLayerPopup = true, includeHeaderNames = false, isCSVExport = false) {
2365
+ async function consolidateLabels(webmap, exportInfos, formatUsingLayerPopup = true, includeHeaderNames = false, isCSVExport = false, fields = []) {
2366
2366
  const labelRequests = [];
2367
2367
  Object.keys(exportInfos).forEach(k => {
2368
2368
  var _a;
2369
2369
  const labelInfo = exportInfos[k];
2370
- labelRequests.push(_prepareLabels(webmap, ((_a = labelInfo.layerView) === null || _a === void 0 ? void 0 : _a.layer) || labelInfo.layer, labelInfo.ids, formatUsingLayerPopup, includeHeaderNames));
2370
+ labelRequests.push(_prepareLabels(webmap, ((_a = labelInfo.layerView) === null || _a === void 0 ? void 0 : _a.layer) || labelInfo.layer, labelInfo.ids, formatUsingLayerPopup, includeHeaderNames, fields));
2371
2371
  if (isCSVExport) {
2372
2372
  // add the layer id as a temp value separator that we can use to split values for CSV export
2373
2373
  labelRequests.push(Promise.resolve([[k]]));
@@ -2387,8 +2387,8 @@ async function consolidateLabels(webmap, exportInfos, formatUsingLayerPopup = tr
2387
2387
  * @param addColumnTitle Indicates if column headings should be included in output
2388
2388
  * @returns Promise resolving when function is done
2389
2389
  */
2390
- async function downloadCSV(webmap, exportInfos, formatUsingLayerPopup, removeDuplicates = false, addColumnTitle = false) {
2391
- let labels = await consolidateLabels(webmap, exportInfos, formatUsingLayerPopup, addColumnTitle, true);
2390
+ async function downloadCSV(webmap, exportInfos, formatUsingLayerPopup, removeDuplicates = false, addColumnTitle = false, fields = []) {
2391
+ let labels = await consolidateLabels(webmap, exportInfos, formatUsingLayerPopup, addColumnTitle, true, fields);
2392
2392
  labels = removeDuplicates ? removeDuplicateLabels(labels) : labels;
2393
2393
  const layerIds = Object.keys(exportInfos);
2394
2394
  let layerLabels = [];
@@ -2924,7 +2924,7 @@ function _prepareAttributeValue(attributeValue, attributeType, attributeDomain,
2924
2924
  * @param includeHeaderNames Add the label format at the front of the list of generated labels
2925
2925
  * @returns Promise resolving when function is done
2926
2926
  */
2927
- async function _prepareLabels(webmap, layer, ids, formatUsingLayerPopup = true, includeHeaderNames = false) {
2927
+ async function _prepareLabels(webmap, layer, ids, formatUsingLayerPopup = true, includeHeaderNames = false, fields = []) {
2928
2928
  // Get the label formatting, if any
2929
2929
  const labelFormatProps = await _getLabelFormat(webmap, layer, formatUsingLayerPopup);
2930
2930
  // Because the label may actually come from a related layer, we'll use the layer that comes back from _getLabelFormat.
@@ -2983,7 +2983,8 @@ async function _prepareLabels(webmap, layer, ids, formatUsingLayerPopup = true,
2983
2983
  }
2984
2984
  else {
2985
2985
  // Get the features to export
2986
- featureSet = await mapViewUtils.queryFeaturesByID(ids, featureLayer, [], false);
2986
+ const outFields = fields.length > 0 ? fields : undefined;
2987
+ featureSet = await mapViewUtils.queryFeaturesByID(ids, featureLayer, [], false, undefined, outFields);
2987
2988
  }
2988
2989
  // Get field data types. Do we have any domain-based fields?
2989
2990
  const attributeOrigNames = {};
@@ -2991,17 +2992,21 @@ async function _prepareLabels(webmap, layer, ids, formatUsingLayerPopup = true,
2991
2992
  const attributeDomains = {};
2992
2993
  if (featureLayer.fields) {
2993
2994
  featureLayer.fields.forEach(field => {
2994
- const lowercaseFieldname = field.name.toLowerCase();
2995
- attributeOrigNames[lowercaseFieldname] = field.name;
2996
- attributeDomains[lowercaseFieldname] = field.domain;
2997
- attributeTypes[lowercaseFieldname] = field.type;
2995
+ if (fields.indexOf(field.name.toLowerCase()) > -1) {
2996
+ const lowercaseFieldname = field.name.toLowerCase();
2997
+ attributeOrigNames[lowercaseFieldname] = field.name;
2998
+ attributeDomains[lowercaseFieldname] = field.domain;
2999
+ attributeTypes[lowercaseFieldname] = field.type;
3000
+ }
2998
3001
  });
2999
3002
  }
3000
3003
  else {
3001
3004
  // Feature layer is missing fields, so get info from first feature
3002
3005
  Object.keys(featureSet[0]).forEach(fieldName => {
3003
- const lowercaseFieldname = fieldName.toLowerCase();
3004
- attributeOrigNames[lowercaseFieldname] = fieldName;
3006
+ if (fields.indexOf(fieldName.toLowerCase()) > -1) {
3007
+ const lowercaseFieldname = fieldName.toLowerCase();
3008
+ attributeOrigNames[lowercaseFieldname] = fieldName;
3009
+ }
3005
3010
  });
3006
3011
  }
3007
3012
  // Apply the label format
@@ -6,11 +6,11 @@
6
6
  'use strict';
7
7
 
8
8
  const _commonjsHelpers = require('./_commonjsHelpers-384729db.js');
9
- const downloadUtils = require('./downloadUtils-8f50633d.js');
9
+ const downloadUtils = require('./downloadUtils-9a13c6ac.js');
10
10
  require('./index-b8a649fc.js');
11
11
  require('./loadModules-46d14e81.js');
12
12
  require('./esri-loader-a91c0ec1.js');
13
- require('./mapViewUtils-569e9644.js');
13
+ require('./mapViewUtils-8aa325de.js');
14
14
  require('./interfaces-7cd0a48a.js');
15
15
  require('./solution-resource-abec7452.js');
16
16
  require('./index-f64944ad.js');
@@ -9,11 +9,11 @@ Object.defineProperty(exports, '__esModule', { value: true });
9
9
 
10
10
  const index = require('./index-b8a649fc.js');
11
11
  const loadModules = require('./loadModules-46d14e81.js');
12
- const mapViewUtils = require('./mapViewUtils-569e9644.js');
12
+ const mapViewUtils = require('./mapViewUtils-8aa325de.js');
13
13
  const interfaces = require('./interfaces-7cd0a48a.js');
14
14
  const publicNotificationStore = require('./publicNotificationStore-3a17c2f4.js');
15
15
  const locale = require('./locale-9db09b63.js');
16
- const downloadUtils = require('./downloadUtils-8f50633d.js');
16
+ const downloadUtils = require('./downloadUtils-9a13c6ac.js');
17
17
  require('./esri-loader-a91c0ec1.js');
18
18
  require('./_commonjsHelpers-384729db.js');
19
19
  require('./index-22bb61da.js');
@@ -63,7 +63,7 @@ async function queryObjectIds(geometries, layer) {
63
63
  *
64
64
  * @returns Promise with the featureSet from the layer that match the provided ids
65
65
  */
66
- async function queryFeaturesByID(ids, layer, graphics, returnGeometry, outSpatialReference) {
66
+ async function queryFeaturesByID(ids, layer, graphics, returnGeometry, outSpatialReference, fields) {
67
67
  var _a;
68
68
  const num = (_a = layer.capabilities) === null || _a === void 0 ? void 0 : _a.query.maxRecordCount;
69
69
  const start = 0;
@@ -77,6 +77,9 @@ async function queryFeaturesByID(ids, layer, graphics, returnGeometry, outSpatia
77
77
  if (outSpatialReference) {
78
78
  q.outSpatialReference = outSpatialReference;
79
79
  }
80
+ if (fields) {
81
+ q.outFields = fields;
82
+ }
80
83
  const result = await layer.queryFeatures(q);
81
84
  graphics = graphics.concat(result.features);
82
85
  const remainingIds = ids.slice(num, ids.length);
@@ -10,10 +10,10 @@ Object.defineProperty(exports, '__esModule', { value: true });
10
10
  const index = require('./index-b8a649fc.js');
11
11
  const interfaces = require('./interfaces-7cd0a48a.js');
12
12
  const loadModules = require('./loadModules-46d14e81.js');
13
- const mapViewUtils = require('./mapViewUtils-569e9644.js');
13
+ const mapViewUtils = require('./mapViewUtils-8aa325de.js');
14
14
  const publicNotificationStore = require('./publicNotificationStore-3a17c2f4.js');
15
15
  const locale = require('./locale-9db09b63.js');
16
- const downloadUtils = require('./downloadUtils-8f50633d.js');
16
+ const downloadUtils = require('./downloadUtils-9a13c6ac.js');
17
17
  require('./esri-loader-a91c0ec1.js');
18
18
  require('./_commonjsHelpers-384729db.js');
19
19
  require('./index-22bb61da.js');
@@ -227,12 +227,12 @@ const SolutionSpatialRef = class {
227
227
  * Toggles the ability to set the default spatial reference.
228
228
  */
229
229
  _updateLocked(event) {
230
- this.locked = !event.detail.switched;
230
+ this.locked = !event.target.checked;
231
231
  this._updateStore();
232
232
  if (!this.loaded) {
233
233
  // when this is switched on when loading we have reloaded a solution that
234
234
  // has a custom wkid param and we should honor the settings they already have in the templates
235
- if (event.detail.switched) {
235
+ if (event.target.checked) {
236
236
  // By default enable all Feature Services on first load
237
237
  this._setFeatureServiceDefaults(this.services);
238
238
  }
@@ -279,11 +279,11 @@ const SolutionSpatialRef = class {
279
279
  */
280
280
  _updateEnabledServices(event, name) {
281
281
  const spatialReferenceInfo = solutionStore.state.getStoreInfo("spatialReferenceInfo");
282
- spatialReferenceInfo.services[name] = event.detail.switched;
282
+ spatialReferenceInfo.services[name] = event.target.checked;
283
283
  solutionStore.state.setStoreInfo("spatialReferenceInfo", spatialReferenceInfo);
284
284
  this.featureServiceSpatialReferenceChange.emit({
285
285
  name,
286
- enabled: event.detail.switched
286
+ enabled: event.target.checked
287
287
  });
288
288
  }
289
289
  /**
@@ -110,7 +110,6 @@
110
110
  height: calc(100% - 50px);
111
111
  }
112
112
 
113
-
114
113
  .display-none {
115
114
  display: none;
116
115
  }
@@ -175,3 +174,7 @@
175
174
  visibility: hidden;
176
175
  height: 0px;
177
176
  }
177
+
178
+ .position-fixed {
179
+ position: fixed;
180
+ }
@@ -267,7 +267,7 @@ export class CrowdsourceManager {
267
267
  let sizeClass = "";
268
268
  switch (layoutMode) {
269
269
  case ELayoutMode.HORIZONTAL:
270
- sizeClass = `${this._isMobile && this._hideTable ? "height-full" : panelOpen ? "height-1-2" : "height-0"} width-full position-relative`;
270
+ sizeClass = `${this._isMobile && this.hideMap ? "height-0 " : panelOpen ? "height-1-2 display-grid" : "height-0"} width-full position-relative`;
271
271
  break;
272
272
  case ELayoutMode.GRID:
273
273
  sizeClass = this.classicGrid ? `${panelOpen ? "position-relative" : "position-absolute-53"} height-full width-full display-flex` :
@@ -367,7 +367,8 @@ export class CrowdsourceManager {
367
367
  const popupNodeClass = !this._expandPopup ? "height-full" : ((_a = this.mapInfos) === null || _a === void 0 ? void 0 : _a.length) === 1 || this._isMobile ? "position-absolute-0" : "position-absolute-50";
368
368
  const headerClass = this._isMobile ? "display-none height-0" : "";
369
369
  const headerTheme = !this._isMobile ? "calcite-mode-dark" : "calcite-mode-light";
370
- return (h("div", { class: `${headerTheme} ${popupNodeClass}` }, h("calcite-panel", null, !this._isMobile ? (h("div", { class: `display-flex align-items-center ${headerClass}`, slot: "header-content" }, h("calcite-icon", { icon: "information", scale: "s" }), h("div", { class: "padding-inline-start-75" }, this._translations.information))) : undefined, h("calcite-action", { class: headerClass, disabled: this._tableOnly, icon: icon, id: id, onClick: () => this._togglePopup(), slot: "header-actions-end", text: "" }), !this._tableOnly ? h("calcite-tooltip", { class: themeClass, label: "", placement: "bottom", "reference-element": id }, h("span", null, tooltip)) : undefined, this._getCardNode())));
370
+ const containerClass = this._isMobile && this._hideTable && this.hideMap ? "position-fixed width-full height-full" : this._isMobile ? "display-none height-0" : "";
371
+ return (h("div", { class: `${headerTheme} ${popupNodeClass} ${containerClass}` }, h("calcite-panel", null, !this._isMobile ? (h("div", { class: `display-flex align-items-center ${headerClass}`, slot: "header-content" }, h("calcite-icon", { icon: "information", scale: "s" }), h("div", { class: "padding-inline-start-75" }, this._translations.information))) : undefined, h("calcite-action", { class: headerClass, disabled: this._tableOnly, icon: icon, id: id, onClick: () => this._togglePopup(), slot: "header-actions-end", text: "" }), !this._tableOnly ? h("calcite-tooltip", { class: themeClass, label: "", placement: "bottom", "reference-element": id }, h("span", null, tooltip)) : undefined, this._getCardNode())));
371
372
  }
372
373
  /**
373
374
  * Toggle the popup information
@@ -150,8 +150,7 @@ export class EditCard {
150
150
  view: this.mapView,
151
151
  layerInfos,
152
152
  visibleElements: {
153
- snappingControls: false,
154
- sketchTooltipControls: false
153
+ snappingControls: false
155
154
  },
156
155
  container
157
156
  });
@@ -21,6 +21,7 @@
21
21
  import { Host, h } from "@stencil/core";
22
22
  import { getLocaleComponentStrings } from "../../utils/locale";
23
23
  import { loadModules } from "../../utils/loadModules";
24
+ import { PopupUtils } from "../../utils/popupUtils";
24
25
  export class InfoCard {
25
26
  constructor() {
26
27
  this.graphics = undefined;
@@ -51,6 +52,7 @@ export class InfoCard {
51
52
  if (this.graphics.length > 0) {
52
53
  const featureLayer = (_a = this.graphics[0]) === null || _a === void 0 ? void 0 : _a.layer;
53
54
  this._editEnabled = featureLayer.editingEnabled && featureLayer.capabilities.operations.supportsUpdate;
55
+ this._mobileTitle = await this._popupUtils.getPopupTitle(this.graphics[0]);
54
56
  this._features.open({
55
57
  features: this.graphics
56
58
  });
@@ -114,6 +116,7 @@ export class InfoCard {
114
116
  async componentWillLoad() {
115
117
  await this._initModules();
116
118
  await this._getTranslations();
119
+ this._popupUtils = new PopupUtils();
117
120
  }
118
121
  /**
119
122
  * Renders the component.
@@ -174,9 +177,6 @@ export class InfoCard {
174
177
  this._showListView = isOpen;
175
178
  }
176
179
  });
177
- this.reactiveUtils.watch(() => this._features.viewModel.title, (title) => {
178
- this._mobileTitle = title;
179
- });
180
180
  if (this.zoomAndScrollToSelected) {
181
181
  this.reactiveUtils.watch(() => this._features.selectedFeatureIndex, (i) => {
182
182
  if (i > -1) {
@@ -131,3 +131,7 @@ html[dir="rtl"] .share-action {
131
131
  .border-top {
132
132
  border-top: 1px solid var(--calcite-color-border-2);
133
133
  }
134
+
135
+ .modal {
136
+ --calcite-modal-content-padding: 0;
137
+ }
@@ -1051,7 +1051,7 @@ export class LayerTable {
1051
1051
  */
1052
1052
  _filterModal() {
1053
1053
  var _a, _b, _c;
1054
- return (h("calcite-modal", { "aria-labelledby": "modal-title", kind: "brand", onCalciteModalClose: async () => this._closeFilter(), open: this._filterOpen, widthScale: "s" }, h("div", { class: "display-flex align-center", id: "modal-title", slot: "header" }, (_b = (_a = this._translations) === null || _a === void 0 ? void 0 : _a.filter) === null || _b === void 0 ? void 0 : _b.replace("{{title}}", (_c = this._layer) === null || _c === void 0 ? void 0 : _c.title)), h("div", { slot: "content" }, h("instant-apps-filter-list", { autoUpdateUrl: false, closeBtn: true, closeBtnOnClick: async () => this._closeFilter(), layerExpressions: this._layerExpressions, onFilterListReset: () => this._handleFilterListReset(), onFilterUpdate: () => this._handleFilterUpdate(), ref: (el) => this._filterList = el, view: this.mapView }))));
1054
+ return (h("calcite-modal", { "aria-labelledby": "modal-title", class: "modal", kind: "brand", onCalciteModalClose: async () => this._closeFilter(), open: this._filterOpen, widthScale: "s" }, h("div", { class: "display-flex align-center", id: "modal-title", slot: "header" }, (_b = (_a = this._translations) === null || _a === void 0 ? void 0 : _a.filter) === null || _b === void 0 ? void 0 : _b.replace("{{title}}", (_c = this._layer) === null || _c === void 0 ? void 0 : _c.title)), h("div", { slot: "content" }, h("instant-apps-filter-list", { autoUpdateUrl: false, closeBtn: true, closeBtnOnClick: async () => this._closeFilter(), layerExpressions: this._layerExpressions, onFilterListReset: () => this._handleFilterListReset(), onFilterUpdate: () => this._handleFilterUpdate(), ref: (el) => this._filterList = el, view: this.mapView }))));
1055
1055
  }
1056
1056
  /**
1057
1057
  * Reset the filter active prop
@@ -1210,10 +1210,17 @@ export class LayerTable {
1210
1210
  ids,
1211
1211
  layer: this._layer
1212
1212
  };
1213
+ const fields = this._table.columns.toArray().reduce((prev, cur) => {
1214
+ if (!cur.hidden) {
1215
+ prev.push(cur.name.toLocaleLowerCase());
1216
+ }
1217
+ return prev;
1218
+ }, []);
1213
1219
  void downloadUtils.downloadCSV(null, //???
1214
1220
  exportInfos, false, // formatUsingLayerPopup
1215
1221
  false, // removeDuplicates
1216
- true);
1222
+ true, // addColumnTitle
1223
+ fields);
1217
1224
  }
1218
1225
  /**
1219
1226
  * Refreshes the table and maintains the curent scroll position
@@ -94,7 +94,7 @@ export class SolutionItemSharing {
94
94
  this.sharing = this.sharing.map((itemShare) => {
95
95
  if (itemShare.id === id) {
96
96
  // update the item
97
- itemShare.shareItem = event.detail.switched;
97
+ itemShare.shareItem = event.target.checked;
98
98
  // update the item in the store
99
99
  const itemEdit = state.getItemInfo(id);
100
100
  if (itemShare.shareItem) {
@@ -70,12 +70,12 @@ export class SolutionSpatialRef {
70
70
  * Toggles the ability to set the default spatial reference.
71
71
  */
72
72
  _updateLocked(event) {
73
- this.locked = !event.detail.switched;
73
+ this.locked = !event.target.checked;
74
74
  this._updateStore();
75
75
  if (!this.loaded) {
76
76
  // when this is switched on when loading we have reloaded a solution that
77
77
  // has a custom wkid param and we should honor the settings they already have in the templates
78
- if (event.detail.switched) {
78
+ if (event.target.checked) {
79
79
  // By default enable all Feature Services on first load
80
80
  this._setFeatureServiceDefaults(this.services);
81
81
  }
@@ -122,11 +122,11 @@ export class SolutionSpatialRef {
122
122
  */
123
123
  _updateEnabledServices(event, name) {
124
124
  const spatialReferenceInfo = state.getStoreInfo("spatialReferenceInfo");
125
- spatialReferenceInfo.services[name] = event.detail.switched;
125
+ spatialReferenceInfo.services[name] = event.target.checked;
126
126
  state.setStoreInfo("spatialReferenceInfo", spatialReferenceInfo);
127
127
  this.featureServiceSpatialReferenceChange.emit({
128
128
  name,
129
- enabled: event.detail.switched
129
+ enabled: event.target.checked
130
130
  });
131
131
  }
132
132
  /**