@esri/solutions-components 0.8.8 → 0.8.10

Sign up to get free protection for your applications and to get access to all the features.
Files changed (121) hide show
  1. package/dist/assets/t9n/crowdsource-reporter/resources.json +11 -2
  2. package/dist/assets/t9n/crowdsource-reporter/resources_en.json +11 -2
  3. package/dist/cjs/{calcite-action-menu_2.cjs.entry.js → calcite-action-menu_3.cjs.entry.js} +114 -7
  4. package/dist/cjs/calcite-alert_4.cjs.entry.js +47 -5
  5. package/dist/cjs/{calcite-input-date-picker_3.cjs.entry.js → calcite-block_5.cjs.entry.js} +691 -13
  6. package/dist/cjs/{calcite-combobox_5.cjs.entry.js → calcite-combobox_3.cjs.entry.js} +876 -844
  7. package/dist/cjs/calcite-dropdown_4.cjs.entry.js +1023 -0
  8. package/dist/cjs/{calcite-flow_5.cjs.entry.js → calcite-flow_6.cjs.entry.js} +327 -2
  9. package/dist/cjs/card-manager_3.cjs.entry.js +5 -5
  10. package/dist/cjs/crowdsource-manager.cjs.entry.js +25 -17
  11. package/dist/cjs/crowdsource-reporter.cjs.entry.js +122 -21
  12. package/dist/cjs/{downloadUtils-8b05d7cc.js → downloadUtils-dd787ddf.js} +2 -2
  13. package/dist/cjs/{index.es-e7587227.js → index.es-29fa176d.js} +2 -2
  14. package/dist/cjs/loader.cjs.js +1 -1
  15. package/dist/cjs/map-select-tools_3.cjs.entry.js +8 -8
  16. package/dist/cjs/{mapViewUtils-3e0fa457.js → mapViewUtils-82018df6.js} +12 -6
  17. package/dist/cjs/public-notification.cjs.entry.js +2 -2
  18. package/dist/cjs/solutions-components.cjs.js +1 -1
  19. package/dist/collection/collection-manifest.json +1 -0
  20. package/dist/collection/components/create-feature/create-feature.js +18 -0
  21. package/dist/collection/components/crowdsource-manager/crowdsource-manager.css +15 -0
  22. package/dist/collection/components/crowdsource-manager/crowdsource-manager.js +48 -16
  23. package/dist/collection/components/crowdsource-reporter/crowdsource-reporter.css +16 -0
  24. package/dist/collection/components/crowdsource-reporter/crowdsource-reporter.js +155 -35
  25. package/dist/collection/components/feature-details/feature-details.css +18 -0
  26. package/dist/collection/components/feature-details/feature-details.js +500 -0
  27. package/dist/collection/components/feature-details/test/feature-details.e2e.js +14 -0
  28. package/dist/collection/components/feature-details/test/feature-details.spec.js +22 -0
  29. package/dist/collection/components/feature-list/feature-list.js +14 -1
  30. package/dist/collection/components/info-card/info-card.css +15 -5
  31. package/dist/collection/components/info-card/info-card.js +179 -5
  32. package/dist/collection/components/layer-table/layer-table.js +2 -2
  33. package/dist/collection/components/map-card/map-card.js +1 -1
  34. package/dist/collection/components/map-select-tools/map-select-tools.js +5 -5
  35. package/dist/collection/components/refine-selection/refine-selection.js +1 -1
  36. package/dist/collection/demos/crowdsource-manager.html +7 -2
  37. package/dist/collection/demos/crowdsource-reporter.html +115 -1
  38. package/dist/collection/utils/mapViewUtils.js +12 -6
  39. package/dist/collection/utils/mapViewUtils.ts +14 -6
  40. package/dist/components/create-feature2.js +4 -0
  41. package/dist/components/crowdsource-manager.js +26 -18
  42. package/dist/components/crowdsource-reporter.js +270 -81
  43. package/dist/components/feature-details.d.ts +11 -0
  44. package/dist/components/feature-details.js +11 -0
  45. package/dist/components/feature-details2.js +449 -0
  46. package/dist/components/feature-list2.js +14 -1
  47. package/dist/components/info-card2.js +54 -5
  48. package/dist/components/layer-table2.js +2 -2
  49. package/dist/components/map-card2.js +1 -1
  50. package/dist/components/map-select-tools2.js +5 -5
  51. package/dist/components/mapViewUtils.js +12 -6
  52. package/dist/components/refine-selection2.js +1 -1
  53. package/dist/esm/{calcite-action-menu_2.entry.js → calcite-action-menu_3.entry.js} +118 -12
  54. package/dist/esm/calcite-alert_4.entry.js +47 -5
  55. package/dist/esm/{calcite-input-date-picker_3.entry.js → calcite-block_5.entry.js} +688 -12
  56. package/dist/esm/{calcite-combobox_5.entry.js → calcite-combobox_3.entry.js} +878 -844
  57. package/dist/esm/calcite-date-picker-day_3.entry.js +1 -1
  58. package/dist/esm/calcite-dropdown_4.entry.js +1016 -0
  59. package/dist/esm/{calcite-flow_5.entry.js → calcite-flow_6.entry.js} +327 -3
  60. package/dist/esm/card-manager_3.entry.js +5 -5
  61. package/dist/esm/crowdsource-manager.entry.js +26 -18
  62. package/dist/esm/crowdsource-reporter.entry.js +122 -21
  63. package/dist/esm/{date-5630530d.js → date-0c026a8b.js} +1 -1
  64. package/dist/esm/{downloadUtils-0c1e4d7b.js → downloadUtils-25aa808f.js} +2 -2
  65. package/dist/esm/{index.es-286e3cfa.js → index.es-a16c9db4.js} +2 -2
  66. package/dist/esm/loader.js +1 -1
  67. package/dist/esm/map-select-tools_3.entry.js +8 -8
  68. package/dist/esm/{mapViewUtils-253178f1.js → mapViewUtils-c83c03a4.js} +12 -6
  69. package/dist/esm/public-notification.entry.js +2 -2
  70. package/dist/esm/solutions-components.js +1 -1
  71. package/dist/solutions-components/demos/crowdsource-manager.html +7 -2
  72. package/dist/solutions-components/demos/crowdsource-reporter.html +115 -1
  73. package/dist/solutions-components/p-2f687975.entry.js +17 -0
  74. package/dist/solutions-components/{p-813fd8a4.entry.js → p-3e5085ae.entry.js} +2 -2
  75. package/dist/solutions-components/p-40039b84.entry.js +6 -0
  76. package/dist/solutions-components/p-511b1c91.entry.js +23 -0
  77. package/dist/solutions-components/{p-94de9279.js → p-5817d78c.js} +1 -1
  78. package/dist/solutions-components/{p-15f9624a.entry.js → p-58997cc1.entry.js} +1 -1
  79. package/dist/solutions-components/p-82e398cb.entry.js +17 -0
  80. package/dist/solutions-components/p-ae75d7d7.entry.js +6 -0
  81. package/dist/solutions-components/{p-331b5d1e.js → p-b1376c75.js} +2 -2
  82. package/dist/solutions-components/p-b5acfcd8.entry.js +6 -0
  83. package/dist/solutions-components/{p-212b02e7.js → p-bdd77f17.js} +1 -1
  84. package/dist/solutions-components/{p-038fcd93.entry.js → p-c273ab7a.entry.js} +1 -1
  85. package/dist/solutions-components/p-d742b915.entry.js +29 -0
  86. package/dist/solutions-components/p-d9c89479.js +36 -0
  87. package/dist/solutions-components/p-dfad61a8.entry.js +24 -0
  88. package/dist/solutions-components/p-fffc9e08.entry.js +6 -0
  89. package/dist/solutions-components/solutions-components.esm.js +1 -1
  90. package/dist/solutions-components/utils/mapViewUtils.ts +14 -6
  91. package/dist/types/components/create-feature/create-feature.d.ts +4 -4
  92. package/dist/types/components/crowdsource-manager/crowdsource-manager.d.ts +13 -1
  93. package/dist/types/components/crowdsource-reporter/crowdsource-reporter.d.ts +91 -10
  94. package/dist/types/components/feature-details/feature-details.d.ts +151 -0
  95. package/dist/types/components/feature-list/feature-list.d.ts +6 -0
  96. package/dist/types/components/info-card/info-card.d.ts +33 -1
  97. package/dist/types/components.d.ts +148 -12
  98. package/dist/types/preact.d.ts +9 -2
  99. package/dist/types/utils/mapViewUtils.d.ts +5 -3
  100. package/package.json +1 -1
  101. package/dist/cjs/calcite-block_2.cjs.entry.js +0 -652
  102. package/dist/cjs/calcite-graph_2.cjs.entry.js +0 -1055
  103. package/dist/cjs/calcite-scrim.cjs.entry.js +0 -125
  104. package/dist/cjs/utils-7bc7f595.js +0 -64
  105. package/dist/esm/calcite-block_2.entry.js +0 -647
  106. package/dist/esm/calcite-graph_2.entry.js +0 -1050
  107. package/dist/esm/calcite-scrim.entry.js +0 -121
  108. package/dist/esm/utils-9fb4104a.js +0 -61
  109. package/dist/solutions-components/p-04c37d69.entry.js +0 -17
  110. package/dist/solutions-components/p-0b92e4b1.entry.js +0 -11
  111. package/dist/solutions-components/p-13ca3b00.entry.js +0 -6
  112. package/dist/solutions-components/p-238d3b5f.entry.js +0 -6
  113. package/dist/solutions-components/p-3af79063.js +0 -36
  114. package/dist/solutions-components/p-80b11ec1.entry.js +0 -17
  115. package/dist/solutions-components/p-a3a11749.entry.js +0 -6
  116. package/dist/solutions-components/p-aec06ce4.entry.js +0 -18
  117. package/dist/solutions-components/p-bfdf89c2.js +0 -11
  118. package/dist/solutions-components/p-c4ff3b52.entry.js +0 -17
  119. package/dist/solutions-components/p-ced067bd.entry.js +0 -17
  120. package/dist/solutions-components/p-d136eab0.entry.js +0 -23
  121. package/dist/solutions-components/p-e0446d5b.entry.js +0 -6
@@ -12,10 +12,19 @@
12
12
  "error": "Error",
13
13
  "invalidConfigurationErrorMsg": "Invalid configuration",
14
14
  "noLayerToDisplayErrorMsg": "Configured web map don't have any editable feature layer.",
15
- "chooseCategoryMsg": "Please choose a category.",
15
+ "chooseCategoryMsg": "Make a selection from the list below.",
16
16
  "featureErrorMsg": "No records found.",
17
17
  "featureEditFormInfoMsg": "Please provide the details.",
18
18
  "currentLocationMsg": "Use my current location",
19
19
  "addLocationMsg": "Please add a location.",
20
- "submitMsg": "Thank you! Your report was successfully submitted."
20
+ "submitMsg": "Thank you! Your report was successfully submitted.",
21
+ "filterLayerTitle": "Filter: {{title}}",
22
+ "indexOfTotal": "{{index}} of {{total}}",
23
+ "comment": "Comment",
24
+ "commentSubmittedMsg": "Comment submitted",
25
+ "addingCommentFailedMsg": "Comment not submitted",
26
+ "sortNewest": "Newest",
27
+ "sortOldest": "Oldest",
28
+ "sortHighestVoted": "Highest voted",
29
+ "sortLowestVoted": "Lowest voted"
21
30
  }
@@ -12,10 +12,19 @@
12
12
  "error": "Error",
13
13
  "invalidConfigurationErrorMsg": "Invalid configuration",
14
14
  "noLayerToDisplayErrorMsg": "Configured web map don't have any editable feature layer.",
15
- "chooseCategoryMsg": "Please choose a category.",
15
+ "chooseCategoryMsg": "Make a selection from the list below.",
16
16
  "featureErrorMsg": "No records found.",
17
17
  "featureEditFormInfoMsg": "Please provide the details.",
18
18
  "currentLocationMsg": "Use my current location",
19
19
  "addLocationMsg": "Please add a location.",
20
- "submitMsg": "Thank you! Your report was successfully submitted."
20
+ "submitMsg": "Thank you! Your report was successfully submitted.",
21
+ "filterLayerTitle": "Filter: {{title}}",
22
+ "indexOfTotal": "{{index}} of {{total}}",
23
+ "comment": "Comment",
24
+ "commentSubmittedMsg": "Comment submitted",
25
+ "addingCommentFailedMsg": "Comment not submitted",
26
+ "sortNewest": "Newest",
27
+ "sortOldest": "Oldest",
28
+ "sortHighestVoted": "Highest voted",
29
+ "sortLowestVoted": "Lowest voted"
21
30
  }
@@ -307,7 +307,7 @@ ActionMenu.style = actionMenuCss;
307
307
  * See https://github.com/Esri/calcite-design-system/blob/main/LICENSE.md for details.
308
308
  * v2.4.0
309
309
  */
310
- const CSS = {
310
+ const CSS$1 = {
311
311
  container: "container",
312
312
  imageContainer: "image-container",
313
313
  closeButtonContainer: "close-button-container",
@@ -650,14 +650,14 @@ const Popover = class {
650
650
  // --------------------------------------------------------------------------
651
651
  renderCloseButton() {
652
652
  const { messages, closable } = this;
653
- return closable ? (index.h("div", { class: CSS.closeButtonContainer, key: CSS.closeButtonContainer }, index.h("calcite-action", { appearance: "transparent", class: CSS.closeButton, onClick: this.hide, scale: this.scale, text: messages.close,
653
+ return closable ? (index.h("div", { class: CSS$1.closeButtonContainer, key: CSS$1.closeButtonContainer }, index.h("calcite-action", { appearance: "transparent", class: CSS$1.closeButton, onClick: this.hide, scale: this.scale, text: messages.close,
654
654
  // eslint-disable-next-line react/jsx-sort-props -- ref should be last so node attrs/props are in sync (see https://github.com/Esri/calcite-design-system/pull/6530)
655
655
  ref: (closeButtonEl) => (this.closeButtonEl = closeButtonEl) }, index.h("calcite-icon", { icon: "x", scale: component.getIconScale(this.scale) })))) : null;
656
656
  }
657
657
  renderHeader() {
658
658
  const { heading, headingLevel } = this;
659
- const headingNode = heading ? (index.h(Heading.Heading, { class: CSS.heading, level: headingLevel }, heading)) : null;
660
- return headingNode ? (index.h("div", { class: CSS.header, key: CSS.header }, headingNode, this.renderCloseButton())) : null;
659
+ const headingNode = heading ? (index.h(Heading.Heading, { class: CSS$1.heading, level: headingLevel }, heading)) : null;
660
+ return headingNode ? (index.h("div", { class: CSS$1.header, key: CSS$1.header }, headingNode, this.renderCloseButton())) : null;
661
661
  }
662
662
  render() {
663
663
  const { effectiveReferenceElement, heading, label, open, pointerDisabled, floatingLayout } = this;
@@ -672,9 +672,9 @@ const Popover = class {
672
672
  },
673
673
  // eslint-disable-next-line react/jsx-sort-props -- ref should be last so node attrs/props are in sync (see https://github.com/Esri/calcite-design-system/pull/6530)
674
674
  ref: this.setTransitionEl }, arrowNode, index.h("div", { class: {
675
- [CSS.hasHeader]: !!heading,
676
- [CSS.container]: true,
677
- } }, this.renderHeader(), index.h("div", { class: CSS.content }, index.h("slot", null)), !heading ? this.renderCloseButton() : null))));
675
+ [CSS$1.hasHeader]: !!heading,
676
+ [CSS$1.container]: true,
677
+ } }, this.renderHeader(), index.h("div", { class: CSS$1.content }, index.h("slot", null)), !heading ? this.renderCloseButton() : null))));
678
678
  }
679
679
  static get assetsDirs() { return ["assets"]; }
680
680
  get el() { return index.getElement(this); }
@@ -693,5 +693,112 @@ const Popover = class {
693
693
  };
694
694
  Popover.style = popoverCss;
695
695
 
696
+ /*!
697
+ * All material copyright ESRI, All Rights Reserved, unless otherwise specified.
698
+ * See https://github.com/Esri/calcite-design-system/blob/main/LICENSE.md for details.
699
+ * v2.4.0
700
+ */
701
+ const CSS = {
702
+ scrim: "scrim",
703
+ content: "content",
704
+ };
705
+ const BREAKPOINTS = {
706
+ s: 72,
707
+ // medium is assumed default.
708
+ l: 480, // Greater than or equal to 480px.
709
+ };
710
+
711
+ const scrimCss = ":host{--calcite-scrim-background:var(--calcite-color-transparent-scrim);position:absolute;inset:0px;z-index:var(--calcite-z-index-overlay);display:flex;block-size:100%;inline-size:100%;flex-direction:column;align-items:stretch}@keyframes calcite-scrim-fade-in{0%{--tw-bg-opacity:0}100%{--tw-text-opacity:1}}.scrim{position:absolute;inset:0px;display:flex;flex-direction:column;align-content:center;align-items:center;justify-content:center;overflow:hidden;animation:calcite-scrim-fade-in var(--calcite-internal-animation-timing-medium) ease-in-out;background-color:var(--calcite-scrim-background, var(--calcite-color-transparent-scrim))}.content{padding:1rem}:host([hidden]){display:none}[hidden]{display:none}";
712
+
713
+ const Scrim = class {
714
+ constructor(hostRef) {
715
+ index.registerInstance(this, hostRef);
716
+ this.resizeObserver = observers.createObserver("resize", () => this.handleResize());
717
+ // --------------------------------------------------------------------------
718
+ //
719
+ // Private Methods
720
+ //
721
+ // --------------------------------------------------------------------------
722
+ this.handleDefaultSlotChange = (event) => {
723
+ this.hasContent = dom.slotChangeHasContent(event);
724
+ };
725
+ this.storeLoaderEl = (el) => {
726
+ this.loaderEl = el;
727
+ this.handleResize();
728
+ };
729
+ this.loading = false;
730
+ this.messages = undefined;
731
+ this.messageOverrides = undefined;
732
+ this.loaderScale = undefined;
733
+ this.defaultMessages = undefined;
734
+ this.effectiveLocale = "";
735
+ this.hasContent = false;
736
+ }
737
+ onMessagesChange() {
738
+ /* wired up by t9n util */
739
+ }
740
+ effectiveLocaleChange() {
741
+ t9n.updateMessages(this, this.effectiveLocale);
742
+ }
743
+ //--------------------------------------------------------------------------
744
+ //
745
+ // Lifecycle
746
+ //
747
+ //--------------------------------------------------------------------------
748
+ connectedCallback() {
749
+ var _a;
750
+ locale.connectLocalized(this);
751
+ t9n.connectMessages(this);
752
+ (_a = this.resizeObserver) === null || _a === void 0 ? void 0 : _a.observe(this.el);
753
+ }
754
+ async componentWillLoad() {
755
+ await t9n.setUpMessages(this);
756
+ }
757
+ disconnectedCallback() {
758
+ var _a;
759
+ locale.disconnectLocalized(this);
760
+ t9n.disconnectMessages(this);
761
+ (_a = this.resizeObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
762
+ }
763
+ // --------------------------------------------------------------------------
764
+ //
765
+ // Render Method
766
+ //
767
+ // --------------------------------------------------------------------------
768
+ render() {
769
+ const { hasContent, loading, messages } = this;
770
+ return (index.h("div", { class: CSS.scrim }, loading ? (index.h("calcite-loader", { label: messages.loading, scale: this.loaderScale,
771
+ // eslint-disable-next-line react/jsx-sort-props -- ref should be last so node attrs/props are in sync (see https://github.com/Esri/calcite-design-system/pull/6530)
772
+ ref: this.storeLoaderEl })) : null, index.h("div", { class: CSS.content, hidden: !hasContent }, index.h("slot", { onSlotchange: this.handleDefaultSlotChange }))));
773
+ }
774
+ getScale(size) {
775
+ if (size < BREAKPOINTS.s) {
776
+ return "s";
777
+ }
778
+ else if (size >= BREAKPOINTS.l) {
779
+ return "l";
780
+ }
781
+ else {
782
+ return "m";
783
+ }
784
+ }
785
+ handleResize() {
786
+ var _a;
787
+ const { loaderEl, el } = this;
788
+ if (!loaderEl) {
789
+ return;
790
+ }
791
+ this.loaderScale = this.getScale((_a = Math.min(el.clientHeight, el.clientWidth)) !== null && _a !== void 0 ? _a : 0);
792
+ }
793
+ static get assetsDirs() { return ["assets"]; }
794
+ get el() { return index.getElement(this); }
795
+ static get watchers() { return {
796
+ "messageOverrides": ["onMessagesChange"],
797
+ "effectiveLocale": ["effectiveLocaleChange"]
798
+ }; }
799
+ };
800
+ Scrim.style = scrimCss;
801
+
696
802
  exports.calcite_action_menu = ActionMenu;
697
803
  exports.calcite_popover = Popover;
804
+ exports.calcite_scrim = Scrim;
@@ -16,7 +16,7 @@ const openCloseComponent = require('./openCloseComponent-19a769d0.js');
16
16
  const t9n = require('./t9n-993a84de.js');
17
17
  const resources = require('./resources-dd8ff1b4.js');
18
18
  const locale$1 = require('./locale-3d0a4bc2.js');
19
- const mapViewUtils = require('./mapViewUtils-3e0fa457.js');
19
+ const mapViewUtils = require('./mapViewUtils-82018df6.js');
20
20
  const popupUtils = require('./popupUtils-6be3588c.js');
21
21
  require('./guid-ae73cd27.js');
22
22
  require('./resources-9447c777.js');
@@ -668,7 +668,7 @@ const EditCard = class {
668
668
  };
669
669
  EditCard.style = editCardCss;
670
670
 
671
- 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}.feature-node .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}.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}.border-width-0{border-width:0px}";
671
+ 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}.feature-node{position:relative !important}.feature-node .esri-features__footer{display:none !important}.button-container{justify-content:center;align-items:center}.top-border{border-top:1px solid var(--calcite-color-border-1)}.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}.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}.border-width-0{border-width:0px}.pagination-action{position:relative;left:3px}.pagination-count{color:var(--calcite-color-brand);border-bottom:1px solid var(--calcite-color-brand)}";
672
672
 
673
673
  const InfoCard = class {
674
674
  constructor(hostRef) {
@@ -682,6 +682,8 @@ const InfoCard = class {
682
682
  this.zoomAndScrollToSelected = undefined;
683
683
  this.allowEditing = true;
684
684
  this.highlightEnabled = true;
685
+ this.paginationEnabled = true;
686
+ this.position = 'absolute';
685
687
  this._alertOpen = false;
686
688
  this._count = "";
687
689
  this._editRecordOpen = false;
@@ -727,6 +729,45 @@ const InfoCard = class {
727
729
  async getSelectedFeature() {
728
730
  return this._features.selectedFeature;
729
731
  }
732
+ /**
733
+ * Get the current selected feature from the Features widget
734
+ * @returns Promise resolving with the current feature
735
+ */
736
+ async refresh() {
737
+ await this.setGraphics();
738
+ }
739
+ /**
740
+ * Go to the previous feature in the features widget
741
+ */
742
+ async back() {
743
+ this._features.previous();
744
+ this._count = this._getCount();
745
+ }
746
+ /**
747
+ * Go to the next feature in the features widget
748
+ */
749
+ async next() {
750
+ this._features.next();
751
+ this._count = this._getCount();
752
+ }
753
+ /**
754
+ * Toggle the visibility of the features list view
755
+ */
756
+ async toggleListView() {
757
+ this._showListView = !this._showListView;
758
+ const i = this._features.selectedFeatureIndex;
759
+ this._features.open({
760
+ features: this.graphics,
761
+ featureMenuOpen: this._showListView
762
+ });
763
+ this._features.selectedFeatureIndex = i;
764
+ }
765
+ /**
766
+ * update the current graphics to the features widget
767
+ */
768
+ async updateCurrentGraphic(selectedGraphic) {
769
+ this._features.selectedFeatureWidget.graphic = selectedGraphic;
770
+ }
730
771
  /**
731
772
  * Respond to and close the edit record display
732
773
  *
@@ -791,8 +832,8 @@ const InfoCard = class {
791
832
  const id = (_d = (_c = this._features) === null || _c === void 0 ? void 0 : _c.selectedFeature) === null || _d === void 0 ? void 0 : _d.getObjectId();
792
833
  const ids = parseInt(id === null || id === void 0 ? void 0 : id.toString(), 10) > -1 ? [id] : [];
793
834
  const deleteEnabled = ((_e = this._layer) === null || _e === void 0 ? void 0 : _e.editingEnabled) && ((_h = (_g = (_f = this._layer) === null || _f === void 0 ? void 0 : _f.capabilities) === null || _g === void 0 ? void 0 : _g.operations) === null || _h === void 0 ? void 0 : _h.supportsDelete);
794
- return (index.h(index.Host, null, index.h("calcite-shell", null, this._getHeader(), index.h("calcite-loader", { class: loadingClass, label: this._translations.fetchingData }), index.h("div", { class: "esri-widget feature-node " + featureNodeClass, id: "features-node" }), index.h("div", { class: `${editButtonClass} width-100`, slot: "footer" }, this.allowEditing &&
795
- index.h("div", { class: "display-flex top-border padding-1-2" }, index.h("calcite-button", { appearance: "solid", id: "solutions-edit", onClick: () => this._openEditRecord(), width: "full" }, this._translations.edit), this.isMobile && deleteEnabled ? (index.h("delete-button", { class: "padding-inline-start-1 width-100", id: "solutions-delete", ids: ids, layer: this._layer, onEditsComplete: () => this._closePopup() })) : undefined, index.h("calcite-tooltip", { label: "", placement: "bottom", "reference-element": "solutions-edit" }, index.h("span", null, this._translations.edit)), this.isMobile ? (index.h("calcite-tooltip", { label: "", placement: "bottom", "reference-element": "solutions-delete" }, index.h("span", null, this._translations.delete))) : undefined), !nextBackDisabled && index.h("div", { class: `display-flex padding-1-2 button-container top-border ${nextBackClass}` }, index.h("div", { class: "min-width-100" }, index.h("calcite-button", { appearance: "outline", disabled: nextBackDisabled, id: "solutions-back", onClick: () => this._back(), width: "full" }, this._translations.back), index.h("calcite-tooltip", { label: "", placement: "top", "reference-element": "solutions-back" }, index.h("span", null, this._translations.back))), index.h("div", null, index.h("calcite-action", { icon: "list", onClick: () => this._toggleListView(), scale: "s", text: this._count, textEnabled: true })), index.h("div", { class: "min-width-100" }, index.h("calcite-button", { appearance: "outline", disabled: nextBackDisabled, id: "solutions-next", onClick: () => this._next(), width: "full" }, this._translations.next), index.h("calcite-tooltip", { label: "", placement: "top", "reference-element": "solutions-next" }, index.h("span", null, this._translations.next))))), index.h("edit-card", { class: editClass, graphicIndex: (_j = this._features) === null || _j === void 0 ? void 0 : _j.selectedFeatureIndex, graphics: this.graphics, mapView: this.mapView, open: this._editRecordOpen }), index.h("calcite-alert", { icon: "layer-broken", kind: "warning", label: "", onCalciteAlertClose: () => this._alertClosed(), open: this._alertOpen, placement: "top" }, index.h("div", { slot: "title" }, this._translations.editDisabled), index.h("div", { slot: "message" }, this._translations.enableEditing)))));
835
+ return (index.h(index.Host, null, index.h("calcite-shell", { style: { position: this.position } }, this._getHeader(), index.h("calcite-loader", { class: loadingClass, label: this._translations.fetchingData }), index.h("div", { class: "esri-widget feature-node " + featureNodeClass, id: "features-node" }), index.h("div", { class: `${editButtonClass} width-100`, slot: "footer" }, this.allowEditing &&
836
+ index.h("div", { class: "display-flex top-border padding-1-2" }, index.h("calcite-button", { appearance: "solid", id: "solutions-edit", onClick: () => this._openEditRecord(), width: "full" }, this._translations.edit), this.isMobile && deleteEnabled ? (index.h("delete-button", { class: "padding-inline-start-1 width-100", id: "solutions-delete", ids: ids, layer: this._layer, onEditsComplete: () => this._closePopup() })) : undefined, index.h("calcite-tooltip", { placement: "bottom", "reference-element": "solutions-edit" }, index.h("span", null, this._translations.edit)), this.isMobile ? (index.h("calcite-tooltip", { placement: "bottom", "reference-element": "solutions-delete" }, index.h("span", null, this._translations.delete))) : undefined), this.paginationEnabled && !nextBackDisabled && index.h("div", { class: `display-flex padding-1-2 button-container top-border ${nextBackClass}` }, index.h("div", null, index.h("calcite-button", { appearance: 'transparent', disabled: nextBackDisabled, iconStart: "chevron-left", id: "solutions-back", onClick: () => this._back(), width: "full" }), index.h("calcite-tooltip", { placement: "top", "reference-element": "solutions-back" }, index.h("span", null, this._translations.back))), index.h("calcite-action", { class: 'pagination-action', onClick: () => this._toggleListView(), scale: "s", text: "", textEnabled: true }, index.h("span", { class: "pagination-count" }, this._count)), index.h("div", null, index.h("calcite-button", { appearance: "transparent", disabled: nextBackDisabled, iconStart: "chevron-right", id: "solutions-next", onClick: () => this._next(), width: "full" }), index.h("calcite-tooltip", { placement: "top", "reference-element": "solutions-next" }, index.h("span", null, this._translations.next))))), index.h("edit-card", { class: editClass, graphicIndex: (_j = this._features) === null || _j === void 0 ? void 0 : _j.selectedFeatureIndex, graphics: this.graphics, mapView: this.mapView, open: this._editRecordOpen }), index.h("calcite-alert", { icon: "layer-broken", kind: "warning", label: "", onCalciteAlertClose: () => this._alertClosed(), open: this._alertOpen, placement: "top" }, index.h("div", { slot: "title" }, this._translations.editDisabled), index.h("div", { slot: "message" }, this._translations.enableEditing)))));
796
837
  }
797
838
  //--------------------------------------------------------------------------
798
839
  //
@@ -860,6 +901,7 @@ const InfoCard = class {
860
901
  });
861
902
  this._features.viewModel.highlightEnabled = this.highlightEnabled;
862
903
  this.reactiveUtils.watch(() => this._features.viewModel.featureMenuOpen, (isOpen) => {
904
+ this._count = this._getCount();
863
905
  if (!isOpen) {
864
906
  this._showListView = isOpen;
865
907
  }
@@ -867,7 +909,7 @@ const InfoCard = class {
867
909
  if (this.zoomAndScrollToSelected) {
868
910
  this.reactiveUtils.watch(() => this._features.selectedFeatureIndex, (i) => {
869
911
  if (i > -1) {
870
- this.selectionChanged.emit([this._features.selectedFeature]);
912
+ this.selectionChanged.emit({ selectedFeature: [this._features.selectedFeature], selectedFeatureIndex: this._features.selectedFeatureIndex });
871
913
  }
872
914
  });
873
915
  }