@esri/solutions-components 0.10.7 → 0.10.9

Sign up to get free protection for your applications and to get access to all the features.
Files changed (148) hide show
  1. package/dist/cjs/basemap-gallery_7.cjs.entry.js +24 -8
  2. package/dist/cjs/buffer-tools_3.cjs.entry.js +1 -1
  3. package/dist/cjs/calcite-combobox_3.cjs.entry.js +354 -967
  4. package/dist/cjs/calcite-graph_2.cjs.entry.js +1082 -0
  5. package/dist/cjs/calcite-shell-panel_14.cjs.entry.js +6 -6
  6. package/dist/cjs/calcite-tree_3.cjs.entry.js +1 -1
  7. package/dist/cjs/card-manager_3.cjs.entry.js +246 -18
  8. package/dist/cjs/crowdsource-manager.cjs.entry.js +171 -50
  9. package/dist/cjs/loader.cjs.js +1 -1
  10. package/dist/cjs/map-select-tools_3.cjs.entry.js +3 -3
  11. package/dist/cjs/pci-calculator.cjs.entry.js +1 -1
  12. package/dist/cjs/public-notification.cjs.entry.js +1 -1
  13. package/dist/cjs/refine-results-flow-item.cjs.entry.js +1 -1
  14. package/dist/cjs/share-item.cjs.entry.js +1 -1
  15. package/dist/cjs/solution-configuration.cjs.entry.js +3 -3
  16. package/dist/cjs/solution-contents_3.cjs.entry.js +3 -3
  17. package/dist/cjs/solutions-components.cjs.js +1 -1
  18. package/dist/cjs/spatial-ref.cjs.entry.js +1 -1
  19. package/dist/collection/assets/t9n/crowdsource-manager/resources.json +5 -1
  20. package/dist/collection/assets/t9n/crowdsource-manager/resources_en.json +5 -1
  21. package/dist/collection/assets/t9n/layer-table/resources.json +1 -0
  22. package/dist/collection/assets/t9n/layer-table/resources_en.json +1 -0
  23. package/dist/collection/assets/t9n/map-card/resources.json +6 -1
  24. package/dist/collection/assets/t9n/map-card/resources_en.json +6 -1
  25. package/dist/collection/components/card-manager/card-manager.js +34 -8
  26. package/dist/collection/components/crowdsource-manager/crowdsource-manager.js +176 -84
  27. package/dist/collection/components/layer-table/layer-table.js +175 -8
  28. package/dist/collection/components/map-card/map-card.css +4 -0
  29. package/dist/collection/components/map-card/map-card.js +368 -3
  30. package/dist/collection/components/map-draw-tools/map-draw-tools.js +1 -1
  31. package/dist/collection/components/map-fullscreen/map-fullscreen.js +1 -1
  32. package/dist/collection/components/map-layer-picker/map-layer-picker.js +9 -3
  33. package/dist/collection/components/map-legend/map-legend.js +1 -1
  34. package/dist/collection/components/map-picker/map-picker.css +8 -0
  35. package/dist/collection/components/map-picker/map-picker.js +74 -3
  36. package/dist/collection/components/map-search/map-search.js +1 -1
  37. package/dist/collection/components/map-select-tools/map-select-tools.js +1 -1
  38. package/dist/collection/components/map-tools/map-tools.js +1 -1
  39. package/dist/collection/components/pci-calculator/pci-calculator.js +1 -1
  40. package/dist/collection/components/pdf-download/pdf-download.js +1 -1
  41. package/dist/collection/components/public-notification/public-notification.js +1 -1
  42. package/dist/collection/components/refine-results-flow-item/refine-results-flow-item.js +1 -1
  43. package/dist/collection/components/refine-selection/refine-selection.js +1 -1
  44. package/dist/collection/components/share-item/share-item.js +1 -1
  45. package/dist/collection/components/solution-configuration/solution-configuration.js +3 -3
  46. package/dist/collection/components/solution-contents/solution-contents.js +1 -1
  47. package/dist/collection/components/solution-item/solution-item.js +1 -1
  48. package/dist/collection/components/solution-item-details/solution-item-details.js +1 -1
  49. package/dist/collection/components/solution-item-icon/solution-item-icon.js +1 -1
  50. package/dist/collection/components/solution-item-sharing/solution-item-sharing.js +1 -1
  51. package/dist/collection/components/solution-organization-variables/solution-organization-variables.js +1 -1
  52. package/dist/collection/components/solution-resource-item/solution-resource-item.js +1 -1
  53. package/dist/collection/components/solution-spatial-ref/solution-spatial-ref.js +1 -1
  54. package/dist/collection/components/solution-template-data/solution-template-data.js +1 -1
  55. package/dist/collection/components/solution-variables/solution-variables.js +1 -1
  56. package/dist/collection/components/spatial-ref/spatial-ref.js +1 -1
  57. package/dist/collection/demos/crowdsource-manager.html +1 -0
  58. package/dist/components/card-manager2.js +20 -8
  59. package/dist/components/crowdsource-manager.js +175 -55
  60. package/dist/components/layer-table2.js +72 -10
  61. package/dist/components/map-card2.js +288 -47
  62. package/dist/components/map-draw-tools2.js +1 -1
  63. package/dist/components/map-fullscreen2.js +1 -1
  64. package/dist/components/map-layer-picker2.js +9 -3
  65. package/dist/components/map-legend2.js +1 -1
  66. package/dist/components/map-picker2.js +24 -5
  67. package/dist/components/map-search2.js +1 -1
  68. package/dist/components/map-select-tools2.js +1 -1
  69. package/dist/components/map-tools2.js +1 -1
  70. package/dist/components/pci-calculator.js +1 -1
  71. package/dist/components/pdf-download2.js +1 -1
  72. package/dist/components/public-notification.js +1 -1
  73. package/dist/components/refine-results-flow-item.js +1 -1
  74. package/dist/components/refine-selection2.js +1 -1
  75. package/dist/components/share-item.js +1 -1
  76. package/dist/components/solution-configuration.js +3 -3
  77. package/dist/components/solution-contents2.js +1 -1
  78. package/dist/components/solution-item-details2.js +1 -1
  79. package/dist/components/solution-item-icon2.js +1 -1
  80. package/dist/components/solution-item-sharing2.js +1 -1
  81. package/dist/components/solution-item2.js +1 -1
  82. package/dist/components/solution-organization-variables2.js +1 -1
  83. package/dist/components/solution-resource-item2.js +1 -1
  84. package/dist/components/solution-spatial-ref2.js +1 -1
  85. package/dist/components/solution-template-data2.js +1 -1
  86. package/dist/components/solution-variables2.js +1 -1
  87. package/dist/components/spatial-ref.js +1 -1
  88. package/dist/esm/basemap-gallery_7.entry.js +24 -8
  89. package/dist/esm/buffer-tools_3.entry.js +1 -1
  90. package/dist/esm/calcite-combobox_3.entry.js +369 -982
  91. package/dist/esm/calcite-graph_2.entry.js +1077 -0
  92. package/dist/esm/calcite-shell-panel_14.entry.js +6 -6
  93. package/dist/esm/calcite-tree_3.entry.js +1 -1
  94. package/dist/esm/card-manager_3.entry.js +248 -20
  95. package/dist/esm/crowdsource-manager.entry.js +172 -51
  96. package/dist/esm/loader.js +1 -1
  97. package/dist/esm/map-select-tools_3.entry.js +3 -3
  98. package/dist/esm/pci-calculator.entry.js +1 -1
  99. package/dist/esm/public-notification.entry.js +1 -1
  100. package/dist/esm/refine-results-flow-item.entry.js +1 -1
  101. package/dist/esm/share-item.entry.js +1 -1
  102. package/dist/esm/solution-configuration.entry.js +3 -3
  103. package/dist/esm/solution-contents_3.entry.js +3 -3
  104. package/dist/esm/solutions-components.js +1 -1
  105. package/dist/esm/spatial-ref.entry.js +1 -1
  106. package/dist/solutions-components/assets/t9n/crowdsource-manager/resources.json +5 -1
  107. package/dist/solutions-components/assets/t9n/crowdsource-manager/resources_en.json +5 -1
  108. package/dist/solutions-components/assets/t9n/layer-table/resources.json +1 -0
  109. package/dist/solutions-components/assets/t9n/layer-table/resources_en.json +1 -0
  110. package/dist/solutions-components/assets/t9n/map-card/resources.json +6 -1
  111. package/dist/solutions-components/assets/t9n/map-card/resources_en.json +6 -1
  112. package/dist/solutions-components/demos/crowdsource-manager.html +1 -0
  113. package/dist/solutions-components/p-0abc1354.entry.js +6 -0
  114. package/dist/solutions-components/p-0f7b5d36.entry.js +6 -0
  115. package/dist/solutions-components/{p-a9818be2.entry.js → p-20c465e9.entry.js} +1 -1
  116. package/dist/solutions-components/{p-db18bce8.entry.js → p-36b50b5b.entry.js} +1 -1
  117. package/dist/solutions-components/{p-85512ae3.entry.js → p-445213cf.entry.js} +1 -1
  118. package/dist/solutions-components/{p-d49f895d.entry.js → p-4a5f0a97.entry.js} +1 -1
  119. package/dist/solutions-components/{p-002c97df.entry.js → p-5d201016.entry.js} +1 -1
  120. package/dist/solutions-components/{p-b7cec3bd.entry.js → p-618bafec.entry.js} +1 -1
  121. package/dist/solutions-components/p-6a66d5a9.entry.js +6 -0
  122. package/dist/solutions-components/p-71a2d5b8.entry.js +6 -0
  123. package/dist/solutions-components/p-7a64b026.entry.js +17 -0
  124. package/dist/solutions-components/p-7d514d7f.entry.js +6 -0
  125. package/dist/solutions-components/p-85c25564.entry.js +6 -0
  126. package/dist/solutions-components/{p-235bf02e.entry.js → p-913413c3.entry.js} +1 -1
  127. package/dist/solutions-components/{p-49aa2929.entry.js → p-bebd4646.entry.js} +1 -1
  128. package/dist/solutions-components/p-ce454f5a.entry.js +11 -0
  129. package/dist/solutions-components/solutions-components.esm.js +1 -1
  130. package/dist/types/components/card-manager/card-manager.d.ts +11 -0
  131. package/dist/types/components/crowdsource-manager/crowdsource-manager.d.ts +88 -22
  132. package/dist/types/components/layer-table/layer-table.d.ts +30 -0
  133. package/dist/types/components/map-card/map-card.d.ts +124 -0
  134. package/dist/types/components/map-layer-picker/map-layer-picker.d.ts +4 -0
  135. package/dist/types/components/map-picker/map-picker.d.ts +12 -0
  136. package/dist/types/components.d.ts +130 -8
  137. package/dist/types/preact.d.ts +4 -2
  138. package/package.json +5 -5
  139. package/dist/cjs/calcite-dropdown-group_2.cjs.entry.js +0 -453
  140. package/dist/esm/calcite-dropdown-group_2.entry.js +0 -448
  141. package/dist/solutions-components/p-129fd80e.entry.js +0 -6
  142. package/dist/solutions-components/p-3b426576.entry.js +0 -6
  143. package/dist/solutions-components/p-72b217f2.entry.js +0 -6
  144. package/dist/solutions-components/p-8b999a2b.entry.js +0 -6
  145. package/dist/solutions-components/p-973ff7b2.entry.js +0 -23
  146. package/dist/solutions-components/p-a001f9c9.entry.js +0 -6
  147. package/dist/solutions-components/p-c683b3fe.entry.js +0 -6
  148. package/dist/solutions-components/p-e9d049bd.entry.js +0 -6
@@ -2203,7 +2203,7 @@ const SolutionItemDetails = class {
2203
2203
  * Renders the component.
2204
2204
  */
2205
2205
  render() {
2206
- return (h(Host, { key: 'd4443b28db9314e9c6976d97af02e7af14d2a5ff' }, h("div", { key: 'bd2969f299df5fab6bab10a6cd6dbe7c7213aba4', class: "parent-container" }, h("div", { key: 'd7226027bddc89eb4ff89899ee45728534331a5d', class: "inputBottomSeparation" }, h("calcite-input", { key: '9fcd5e9c9d5fe7ac652fff4fa06801fec240380f', id: "item-title", value: this.itemDetails.title })), h("div", { key: '9542faf04236ec293eff1f1abf0667ee4d26ab45', class: "inputBottomSeparation" }, h("input", { key: '9a431fef50c9be4f084b33003c6be4cab65a7da0', accept: ".jpg,.gif,.png,image/jpg,image/gif,image/png", class: "display-none", onChange: (event) => (this._updateThumbnail(event)), ref: (el) => (this.browseForThumbnail = el), type: "file" }), h("button", { key: '9ed82a0e807acd0344bd52bcef653728419d3fc1', class: "font-size--3 btn-link inline-block trailer-quarter", onClick: () => this._getThumbnail() }, h("svg", { key: '230d6a270cd61f4785b7f39e951e996a7b37a1ca', class: "icon-inline icon-inline--on-left", height: "16", viewBox: "0 0 16 16", width: "16" }, h("path", { key: '96a6c77691e152072aa0de03f63d8ec82f1ca051', d: "M14.792 2.666l-1.414-1.413a.965.965 0 0 0-1.385-.03l-1.444 1.444-8.763 8.72L.03 15.481a.371.371 0 0 0 .488.488l4.096-1.756 8.763-8.72-.001-.001.002.002 1.443-1.444a.965.965 0 0 0-.03-1.385zM1.569 14.431l.554-1.293.74.739zm2.338-.924l-1.414-1.414 7.963-7.92 1.414 1.415zm8.67-8.626l-1.413-1.414 1.29-1.29a.306.306 0 0 1 .433 0l.981.98a.306.306 0 0 1 0 .433z" })), this._translations.editThumbnail), h("div", { key: 'de04396607c0a61eb1e13bb56581aae9e939b286', class: "flex" }, h("div", { key: '3df8a6cde94bc275b85db55375aaa351453c46fb', class: "img-container", ref: (el) => (this.thumbnailContainer = el) }, h("img", { key: 'a5084eff2ebee0514c5cac6acf4e1b8dcaaf47d5', class: "scale-down", height: "133", id: "item-thumbnail", ref: (el) => (this.thumbnail = el), width: "200" })), h("div", { key: '73199d7582082575282f36ecb6afed3ee6bd900e', class: "snippet-count-container" }, h("calcite-input", { key: '7aa7c61d42be36c237c6bd9b72e4ec24ef6dc07d', id: "item-snippet", maxLength: 250, type: "textarea", value: this.itemDetails.snippet }), h("label", { key: '9ae2f293b2cb64a475a0969b7e00951a1b55e251', class: "font-size--3", id: "item-snippet-count", ref: (el) => (this.itemSnippetCount = el) })))), h("calcite-label", { key: '98cf6dd0f1f53e15c857baeb4f3a580586935762' }, this._translations.description, h("label", { key: '2f54c0fd6d75e4b08e74cf5b30d9794d0375a267', id: "item-description-label" }, h("calcite-input", { key: '91cf40b10f1bed0cd4bc83a988d9a4151ddec2e6', id: "item-description", type: "textarea", value: this.itemDetails.description }))), h("calcite-label", { key: '4261ff6e21385fb681cb6a52dbaa8e3d75973d8b' }, this._translations.tags, h("label", { key: 'cde48f34fd18fe530dea6be06c8fb5e602048266', id: "item-tags-label" }, h("calcite-input", { key: 'e11931c90df113bd512bab39be092257ffd92e42', id: "item-tags", value: (this.itemDetails.tags && Array.isArray(this.itemDetails.tags) ? this.itemDetails.tags : [this.itemDetails.tags]).join(",") }))), this.itemType !== "Group" ? h("calcite-label", null, this._translations.credits, h("label", { id: "item-credits-label" }, h("calcite-input", { id: "item-credits", value: this.itemDetails.accessInformation }))) : null, this.itemType !== "Group" ? h("calcite-label", null, h("label", { id: "item-terms-label" }, this._translations.termsOfUse, h("calcite-input", { id: "item-terms", type: "textarea", value: this.itemDetails.licenseInfo }))) : null)));
2206
+ return (h(Host, { key: 'f93ee5d1152024c4c9d4b7376d8e19e5a0ebaccd' }, h("div", { key: 'd03106d1566be78c478a8ca798cea04161e835a2', class: "parent-container" }, h("div", { key: '78f52543e511e7deecffdc998808fce766863ef3', class: "inputBottomSeparation" }, h("calcite-input", { key: '70783f0059d5e526f56a4ff2cff18e20348c4c16', id: "item-title", value: this.itemDetails.title })), h("div", { key: 'b2cfc981837ee9fd8549dc62057bc98429f3f50a', class: "inputBottomSeparation" }, h("input", { key: '47bdb6fe76a080c297c01ee8624088a501f31f17', accept: ".jpg,.gif,.png,image/jpg,image/gif,image/png", class: "display-none", onChange: (event) => (this._updateThumbnail(event)), ref: (el) => (this.browseForThumbnail = el), type: "file" }), h("button", { key: '7c2b6882f87d63f97c609c071b60b62474931c93', class: "font-size--3 btn-link inline-block trailer-quarter", onClick: () => this._getThumbnail() }, h("svg", { key: 'b530933142b3aa03de26baa33e4be11ea9f4c806', class: "icon-inline icon-inline--on-left", height: "16", viewBox: "0 0 16 16", width: "16" }, h("path", { key: '57388aa06be3e6c3bed24673ab63386cc433f6c0', d: "M14.792 2.666l-1.414-1.413a.965.965 0 0 0-1.385-.03l-1.444 1.444-8.763 8.72L.03 15.481a.371.371 0 0 0 .488.488l4.096-1.756 8.763-8.72-.001-.001.002.002 1.443-1.444a.965.965 0 0 0-.03-1.385zM1.569 14.431l.554-1.293.74.739zm2.338-.924l-1.414-1.414 7.963-7.92 1.414 1.415zm8.67-8.626l-1.413-1.414 1.29-1.29a.306.306 0 0 1 .433 0l.981.98a.306.306 0 0 1 0 .433z" })), this._translations.editThumbnail), h("div", { key: '3906eeaa6bd72d0c53a0e472c3606f0ab879a3d3', class: "flex" }, h("div", { key: 'fa88b2ea055748202ed7c34ce7df2cfc9a1592a0', class: "img-container", ref: (el) => (this.thumbnailContainer = el) }, h("img", { key: '2b5e960405c8f41a66bdf93f47e669d5eae646ad', class: "scale-down", height: "133", id: "item-thumbnail", ref: (el) => (this.thumbnail = el), width: "200" })), h("div", { key: '7762aca4498ef2ca8d70beb59cfc5906229c3e5d', class: "snippet-count-container" }, h("calcite-input", { key: '1a6e9e299e551f2c7a3f99395a789fd4e1bf1e88', id: "item-snippet", maxLength: 250, type: "textarea", value: this.itemDetails.snippet }), h("label", { key: 'a66a1569c45189e013d230f7d2c11fd315ffaa29', class: "font-size--3", id: "item-snippet-count", ref: (el) => (this.itemSnippetCount = el) })))), h("calcite-label", { key: '1befca128558c7b638d86521f162bcbf44e889a1' }, this._translations.description, h("label", { key: '496939ec6171b926b8f7d6610fa153a0ee63243c', id: "item-description-label" }, h("calcite-input", { key: 'a97b85340d620f4fa909b4b697e058e5398df145', id: "item-description", type: "textarea", value: this.itemDetails.description }))), h("calcite-label", { key: 'eecadd422f35b01124dbf9ac8ce030c561f8b76d' }, this._translations.tags, h("label", { key: 'be9ba3c1c3e4d3bff74bcaf586cef39a8a5c76f2', id: "item-tags-label" }, h("calcite-input", { key: '9772f1e364dcb9810ea81bbf2871ee3c81bb0f92', id: "item-tags", value: (this.itemDetails.tags && Array.isArray(this.itemDetails.tags) ? this.itemDetails.tags : [this.itemDetails.tags]).join(",") }))), this.itemType !== "Group" ? h("calcite-label", null, this._translations.credits, h("label", { id: "item-credits-label" }, h("calcite-input", { id: "item-credits", value: this.itemDetails.accessInformation }))) : null, this.itemType !== "Group" ? h("calcite-label", null, h("label", { id: "item-terms-label" }, this._translations.termsOfUse, h("calcite-input", { id: "item-terms", type: "textarea", value: this.itemDetails.licenseInfo }))) : null)));
2207
2207
  }
2208
2208
  componentDidRender() {
2209
2209
  this._loadThumb();
@@ -2381,7 +2381,7 @@ const SolutionItemSharing = class {
2381
2381
  * Renders the component.
2382
2382
  */
2383
2383
  render() {
2384
- return (h(Host, { key: '7042ab9382712488f9184b305e417dd93379422f' }, h("div", { key: '00baf7fac31f03b249592eb8603a74d6f93f2615', class: "container-border" }, h("calcite-label", { key: '5328280b6ee86819366800e43eda0c44b55ca277' }, this._translations.groupInfo), this._renderItems(this.sharing))));
2384
+ return (h(Host, { key: 'b2086d83295956bff47fd5951056000043a4db72' }, h("div", { key: '1344ce75b7ae023544d0c177d883ba1c6eaed05b', class: "container-border" }, h("calcite-label", { key: 'abbd7a7f1e9dbf94d54ef61a2182b2659d60026e' }, this._translations.groupInfo), this._renderItems(this.sharing))));
2385
2385
  }
2386
2386
  //--------------------------------------------------------------------------
2387
2387
  //
@@ -2500,7 +2500,7 @@ const SolutionOrganizationVariables = class {
2500
2500
  * Renders the component.
2501
2501
  */
2502
2502
  render() {
2503
- return (h(Host, { key: 'a4456905e1abde8eca22dfb6f3da81959d509b75' }, h("div", { key: '8fc37e2a59237ed0cca05b096f901a82da696151' }, h("h4", { key: '7bdd9e95f37297c51778a866542517048622e5ca', class: "org-var-header" }, this._translations.orgVariables)), h("div", { key: '10bfcebd83ddc363f04149a03298b0c5247fd265', class: "container-border" }, h("calcite-tree", { key: '1d168ebbceaf566fb8f4ddea85acba39c08bbd53', id: "variable-label" }, this._renderHierarchy(this._organizationVariables)))));
2503
+ return (h(Host, { key: '387c9a17b83de9f4aa2dc60666e4c45268b7d656' }, h("div", { key: '5181a83dbd700220b8ec55828a37d35fd1406ed1' }, h("h4", { key: '88eea182594f50b86ba873289d84ea0e1b7cc3eb', class: "org-var-header" }, this._translations.orgVariables)), h("div", { key: 'dcbaf3f135d1a6d660e4f17bce722feb6d2fed3e', class: "container-border" }, h("calcite-tree", { key: '4b85c9bd443deb82e570e58ae59c546d8ea9d36d', id: "variable-label" }, this._renderHierarchy(this._organizationVariables)))));
2504
2504
  }
2505
2505
  //--------------------------------------------------------------------------
2506
2506
  //
@@ -2598,7 +2598,7 @@ const SolutionResourceItem = class {
2598
2598
  */
2599
2599
  render() {
2600
2600
  const hasValidResources = this._hasValidResources();
2601
- return (h(Host, { key: 'c36fddfce9c4c97b281281ec11dfa017d496141e' }, h("div", { key: 'e1166173669689e9acee92cc7e53747ebcec0c09', class: "resource-item" }, h("div", { key: '86c8e1d498d7b84e9587cdcf4a3bb971fc1ecaad', class: "margin-bottom-1" }, h("calcite-button", { key: 'f382275e75efeb5beadef582ddd343a283f014e2', appearance: "solid", class: "resource-button", color: "blue", onClick: () => this._addNewResource() }, this._translations.addResource), h("calcite-button", { key: 'c487e618472b047f8db71e8989f849c844682080', appearance: "solid", color: "blue", disabled: !hasValidResources, onClick: () => this._downloadAll() }, this._translations.downloadAll)), h("div", { key: '08733ba234cba9b5ea19455256fa961d23ae933b', class: "resources-container", style: { display: hasValidResources ? "inherit" : "none" } }, this._renderResourceList()))));
2601
+ return (h(Host, { key: '3209042541d0df8440c8ae7b1564ddad9adb4466' }, h("div", { key: '11d0ad8b5ad181a4db7836e9f3f05fa3e79b924b', class: "resource-item" }, h("div", { key: '1b768c980d3679dd8ce0557cd24c18ab397cac16', class: "margin-bottom-1" }, h("calcite-button", { key: '33a827d3df40e68d985a0f6f8c9fdfb89b78ef25', appearance: "solid", class: "resource-button", color: "blue", onClick: () => this._addNewResource() }, this._translations.addResource), h("calcite-button", { key: '22adce285d7eb9c5fb5a189b0bee43cd25eb89a3', appearance: "solid", color: "blue", disabled: !hasValidResources, onClick: () => this._downloadAll() }, this._translations.downloadAll)), h("div", { key: '20b41623ed7ab10202a5ea929b9ddd63b62d0c0e', class: "resources-container", style: { display: hasValidResources ? "inherit" : "none" } }, this._renderResourceList()))));
2602
2602
  }
2603
2603
  _removedResources = {};
2604
2604
  //--------------------------------------------------------------------------
@@ -2880,7 +2880,7 @@ const SolutionTemplateData = class {
2880
2880
  * Renders the component.
2881
2881
  */
2882
2882
  render() {
2883
- return (h(Host, { key: '5a417f81d9b0d98ad28f9139406fee4b37204169' }, h("div", { key: '0dd5d77a961473bf45f7654ccb2e0507b492a6c7', class: "solution-data-container" }, h("calcite-shell", { key: '3b839b36a89f1a9db10a6ad8b3f7d088248770bc', class: "light var-container", dir: "ltr" }, h("calcite-panel", { key: '9f6ce42fdad56cf7a9f6b2f9ccac707eb655f4f1', class: "json-editor" }, h("div", { key: 'a1ba50c8fd13cf6d4934aa72083c0519c317721d', class: "solution-data-child-container calcite-match-height" }, h("json-editor", { key: '8f832aecde35b6b82e16b3d201b738fe202e86a3', class: "solution-data-editor-container", instanceid: this.itemId + "|" + this.instanceid, value: this.value }))), h("calcite-shell-panel", { key: 'c24f19fcc440884123f59842b392063925b5cbf6', "height-scale": "l", position: "end", slot: "contextual-panel", "width-scale": "xs" }, h("div", { key: '8d9c25baada3e2ca03ee192f44121d7bdab85432', class: this.varsOpen ? "solution-data-child-container" : "solution-data-child-container-collapsed" }, h("calcite-button", { key: '247b542336578c5404c7246552424c16030d90a7', appearance: "transparent", class: "collapse-btn", "icon-start": this.varsOpen ? "chevrons-right" : "chevrons-left", id: "collapse-vars", onClick: () => this._toggleVars(), scale: "s", title: this.varsOpen ? this._translations.collapse : this._translations.expand }), h("div", { key: '963c1802c7828557cec5493602c3a1669e21683c', class: this.varsOpen ? "org-vars" : "org-vars display-none", id: "orgVars" }, h("solution-organization-variables", { key: '566f672a97401d77ed7180d5fc7b2367027fcc57', value: this.organizationVariables })), h("div", { key: '79508bfcde2ac8507acd40bbc3edceb944c3e717', class: this.varsOpen ? "sol-vars" : "sol-vars display-none", id: "solVars" }, h("solution-variables", { key: '51756082f8d13c73d7ae1349fc5625994a3354bb', value: this.solutionVariables }))))))));
2883
+ return (h(Host, { key: '2ac01aadffbe8719d947d3258721a24e79c5827a' }, h("div", { key: '8576d2c273b557393ae9c959817c3a1803000ca6', class: "solution-data-container" }, h("calcite-shell", { key: '7962b2da3ebce8428119e95dee13a79fb06a71ca', class: "light var-container", dir: "ltr" }, h("calcite-panel", { key: '49c9e36a219e8f09431f88b7e698bd53bc538e43', class: "json-editor" }, h("div", { key: 'ef96fb9a8d9bced4a36dca4786b7c77f06bd3dc7', class: "solution-data-child-container calcite-match-height" }, h("json-editor", { key: 'f8e1662a22f6b36e0be929aec00c539508527a81', class: "solution-data-editor-container", instanceid: this.itemId + "|" + this.instanceid, value: this.value }))), h("calcite-shell-panel", { key: '853f9c2df14fe53cc305b290cd1e5b9a8f694b4d', "height-scale": "l", position: "end", slot: "contextual-panel", "width-scale": "xs" }, h("div", { key: '0bc3d510ba7dc9d4ca1339bf6d5fa1a52c249723', class: this.varsOpen ? "solution-data-child-container" : "solution-data-child-container-collapsed" }, h("calcite-button", { key: '2c316175ebe7bdbd4911abbdd58c2bcac8c6e39c', appearance: "transparent", class: "collapse-btn", "icon-start": this.varsOpen ? "chevrons-right" : "chevrons-left", id: "collapse-vars", onClick: () => this._toggleVars(), scale: "s", title: this.varsOpen ? this._translations.collapse : this._translations.expand }), h("div", { key: 'e436c6dba30492a9eda496c4da41a7632cc03232', class: this.varsOpen ? "org-vars" : "org-vars display-none", id: "orgVars" }, h("solution-organization-variables", { key: '4956e3bf41676ccf3dd0168f6f4f573f14927110', value: this.organizationVariables })), h("div", { key: '3376d0034d66f01cd78d01adf5653aeeca63b47f', class: this.varsOpen ? "sol-vars" : "sol-vars display-none", id: "solVars" }, h("solution-variables", { key: 'bb3978deedbe0a439d85d1bb7a8d26380e226dd7', value: this.solutionVariables }))))))));
2884
2884
  }
2885
2885
  _initializing = false;
2886
2886
  //--------------------------------------------------------------------------
@@ -2954,7 +2954,7 @@ const SolutionVariables = class {
2954
2954
  * Renders the component.
2955
2955
  */
2956
2956
  render() {
2957
- return (h(Host, { key: '4367694cf20a2063b57679f1a955ef827eea1c05' }, h("div", { key: '875e6e1532e7406ddf6cca804e421980aa23b7cd' }, h("h4", { key: 'b6798506cf71d3c84e2c33a3d12a0729591a73a7', class: "org-var-header" }, this._translations.solVariables)), h("div", { key: '413d3c7ebae5afa05a8cb5c87f766db64f43e106', class: "container-border" }, h("calcite-tree", { key: 'ba5bf27e005ce7536cdfe0c8022c96cd0b4ad920', id: "variable-label" }, this._renderHierarchy(this._solutionVariables)))));
2957
+ return (h(Host, { key: '207eba2b3a7c2ae6958bc253c50a30ba05e4ad53' }, h("div", { key: '258351a67b1ffac4ce9290bdbc7a15fe045e1cf8' }, h("h4", { key: 'e8b6c6ff6b78d2ee885f352069426a79e12a4376', class: "org-var-header" }, this._translations.solVariables)), h("div", { key: 'e68c85b552c5313300250d4e7a29aee50e3d070d', class: "container-border" }, h("calcite-tree", { key: '011383a8abb007bd6d7a59f6a7681f24fc32d3b0', id: "variable-label" }, this._renderHierarchy(this._solutionVariables)))));
2958
2958
  }
2959
2959
  //--------------------------------------------------------------------------
2960
2960
  //
@@ -610,7 +610,7 @@ const SolutionItemIcon = class {
610
610
  * Renders the component.
611
611
  */
612
612
  render() {
613
- return h("div", { key: '3b732e3c889dc83eb649af9d66742304e549d229', title: this.type }, h("img", { key: '262f4891209996264e8c0248c926a60f71b9e674', class: "item-type-icon item-type-icon-margin", height: "16", src: this._getIconUrl(this.type, this.typeKeywords), width: "16" }));
613
+ return h("div", { key: '3a30434531363d13bcc0207dbc90f1ee32454113', title: this.type }, h("img", { key: '8ae2eaaeaa00bb86aed97665036fdb1edd14b6be', class: "item-type-icon item-type-icon-margin", height: "16", src: this._getIconUrl(this.type, this.typeKeywords), width: "16" }));
614
614
  }
615
615
  //--------------------------------------------------------------------------
616
616
  //
@@ -3,9 +3,9 @@
3
3
  * Licensed under the Apache License, Version 2.0
4
4
  * http://www.apache.org/licenses/LICENSE-2.0
5
5
  */
6
- import { r as registerInstance, g as getElement, h, H as Host, c as createEvent } from './index-e3f04fa1.js';
6
+ import { r as registerInstance, g as getElement, h, H as Host, c as createEvent, F as Fragment } from './index-e3f04fa1.js';
7
7
  import { g as getLocaleComponentStrings, l as loadModules } from './locale-7162b55a.js';
8
- import { q as queryFeaturesByID, g as getLayerOrTable, e as goToSelection, f as queryAllIds, i as queryAllOidsWithQueryFeatures, j as queryFeaturesByGlobalID, c as getFeatureLayerView } from './mapViewUtils-3e3d33ea.js';
8
+ import { g as getLayerOrTable, q as queryFeaturesByID, e as goToSelection, f as queryAllIds, i as queryAllOidsWithQueryFeatures, j as queryFeaturesByGlobalID, c as getFeatureLayerView } from './mapViewUtils-3e3d33ea.js';
9
9
  import { d as downloadCSV } from './downloadUtils-16c51b10.js';
10
10
  import './esri-loader-c6842c6b.js';
11
11
  import './_commonjsHelpers-089957fe.js';
@@ -24,6 +24,7 @@ const CardManager = class {
24
24
  this.layer = undefined;
25
25
  this.mapView = undefined;
26
26
  this.zoomAndScrollToSelected = undefined;
27
+ this.selectedFeaturesIds = undefined;
27
28
  this._cardLoading = false;
28
29
  this._graphics = undefined;
29
30
  this._translations = undefined;
@@ -49,12 +50,7 @@ const CardManager = class {
49
50
  */
50
51
  async featureSelectionChange(evt) {
51
52
  const ids = evt.detail;
52
- this._cardLoading = true;
53
- // only query if we have some ids...query with no ids will result in all features being returned
54
- const featureSet = ids.length > 0 ? await queryFeaturesByID(ids, this.layer, [], false, this.mapView.spatialReference) : [];
55
- // https://github.com/Esri/solutions-components/issues/365
56
- this._graphics = featureSet.sort((a, b) => ids.indexOf(a.getObjectId()) - ids.indexOf(b.getObjectId()));
57
- this._cardLoading = false;
53
+ this._graphics = await this._getFeaturesByIds(ids);
58
54
  }
59
55
  /**
60
56
  * Get the layer view for the provided layer id
@@ -75,6 +71,9 @@ const CardManager = class {
75
71
  */
76
72
  async componentWillLoad() {
77
73
  await this._getTranslations();
74
+ if (this.selectedFeaturesIds?.length > 0) {
75
+ this._graphics = await this._getFeaturesByIds(this.selectedFeaturesIds);
76
+ }
78
77
  }
79
78
  /**
80
79
  * Renders the component.
@@ -82,13 +81,25 @@ const CardManager = class {
82
81
  render() {
83
82
  const featuresClass = this._graphics?.length > 0 ? "" : "display-none";
84
83
  const messageClass = this._graphics?.length > 0 ? "display-none" : "";
85
- return (h(Host, { key: 'ff2b82f23cc912a79d4f2d04a3263215e54ff03d' }, h("div", { key: '64a96d7162508794b955dc4b557fa94d18f8ab53', class: "overflow-auto height-full" }, h("calcite-shell", { key: '77b8ad0b9a459d2fb9399ccfebc6d0211147bb01', class: "position-relative " + featuresClass }, h("div", { key: 'e0725835f5c1c32a9164e04d6321ba5853a3892c' }, h("info-card", { key: '6712a077c4746585e7b2474aedd14e1869b37c34', enableEditGeometry: this.enableEditGeometry, graphics: this._graphics, isLoading: this._cardLoading, isMobile: this.isMobile, mapView: this.mapView }))), h("calcite-shell", { key: '38c85dbb72df9b9b1225f1488c3bf384f67d7db4', class: "position-relative " + messageClass }, h("div", { key: '66386d1a0d19fb4a023515e5dc4b41ac73a8c257', class: "padding-1" }, h("calcite-notice", { key: '12a843bede7b688651b436bcb9b7ad9e7f6217e0', icon: "table", open: true }, h("div", { key: '28862f4aa25802ca6b2bdc0ef2af3bcb825267f9', slot: "message" }, this._translations.selectFeaturesToStart)))))));
84
+ return (h(Host, { key: '0309205d485d9c7a5c558b3619a6c5ac03fcb528' }, h("div", { key: 'a5d291f6073b0e0a918573549c6eb29fe1d892dd', class: "overflow-auto height-full" }, h("calcite-shell", { key: '572b9cdf002e0c8c46e6c4bc5e2f1f8494228e93', class: "position-relative " + featuresClass }, h("div", { key: 'f8ba07deb9786d64f3d25011ff66ead43d809bf1' }, h("info-card", { key: '6eda3ab2cfa2e5fb948f5a7ddaeb6b9022aa5543', enableEditGeometry: this.enableEditGeometry, graphics: this._graphics, isLoading: this._cardLoading, isMobile: this.isMobile, mapView: this.mapView }))), h("calcite-shell", { key: 'f32d9cfe3a41bbd7d58cdc732c8abe99b232beb7', class: "position-relative " + messageClass }, h("div", { key: 'b97eb023c5d57a4a8dda09467d8599166da40f3c', class: "padding-1" }, h("calcite-notice", { key: '23a204782bd254909e3ab803a944d10004e4954a', icon: "table", open: true }, h("div", { key: 'ea25078647612b8fa40e26b4474a91c853dae126', slot: "message" }, this._translations.selectFeaturesToStart)))))));
86
85
  }
87
86
  //--------------------------------------------------------------------------
88
87
  //
89
88
  // Functions (protected)
90
89
  //
91
90
  //--------------------------------------------------------------------------
91
+ /**
92
+ * Gets the Feature using its ids
93
+ *
94
+ * @returns Promise when complete
95
+ * @protected
96
+ */
97
+ async _getFeaturesByIds(ids) {
98
+ // only query if we have some ids...query with no ids will result in all features being returned
99
+ const featureSet = ids.length > 0 ? await queryFeaturesByID(ids, this.layer, [], false, this.mapView.spatialReference) : [];
100
+ // https://github.com/Esri/solutions-components/issues/365
101
+ return featureSet.sort((a, b) => ids.indexOf(a.getObjectId()) - ids.indexOf(b.getObjectId()));
102
+ }
92
103
  /**
93
104
  * Fetches the component's translations
94
105
  *
@@ -109,6 +120,7 @@ const LayerTable = class {
109
120
  constructor(hostRef) {
110
121
  registerInstance(this, hostRef);
111
122
  this.featureSelectionChange = createEvent(this, "featureSelectionChange", 7);
123
+ this.toggleFilter = createEvent(this, "toggleFilter", 7);
112
124
  this.defaultGlobalId = undefined;
113
125
  this.defaultLayerId = undefined;
114
126
  this.defaultOid = undefined;
@@ -128,6 +140,7 @@ const LayerTable = class {
128
140
  this.showNewestFirst = undefined;
129
141
  this.zoomAndScrollToSelected = undefined;
130
142
  this.zoomToScale = undefined;
143
+ this.createFilterModal = true;
131
144
  this._allIds = [];
132
145
  this._controlsThatFit = undefined;
133
146
  this._csvExporting = false;
@@ -379,7 +392,9 @@ const LayerTable = class {
379
392
  */
380
393
  async mapInfoWatchHandler() {
381
394
  this._resetColumnTemplates();
382
- this._initLayerExpressions();
395
+ if (this.createFilterModal) {
396
+ this._initLayerExpressions();
397
+ }
383
398
  this._initToolInfos();
384
399
  this._updateToolbar();
385
400
  await this._sortTable();
@@ -409,7 +424,9 @@ const LayerTable = class {
409
424
  this._floorField = this._layer.floorInfo?.floorField;
410
425
  this._updateFloorDefinitionExpression();
411
426
  await this._resetTable();
412
- this._initLayerExpressions();
427
+ if (this.createFilterModal) {
428
+ this._initLayerExpressions();
429
+ }
413
430
  this._updateShareUrl();
414
431
  this._fetchingData = false;
415
432
  });
@@ -433,6 +450,30 @@ const LayerTable = class {
433
450
  // Methods (public)
434
451
  //
435
452
  //--------------------------------------------------------------------------
453
+ /**
454
+ * Reset the filter
455
+ */
456
+ async filterReset() {
457
+ void this._handleFilterListReset();
458
+ }
459
+ /**
460
+ * Updates the filter
461
+ */
462
+ async filterUpdate() {
463
+ this._handleFilterUpdate();
464
+ }
465
+ /**
466
+ * Closes the filter
467
+ */
468
+ async closeFilter() {
469
+ await this._closeFilter();
470
+ }
471
+ /**
472
+ * refresh the feature table
473
+ */
474
+ async refresh() {
475
+ await this._refresh();
476
+ }
436
477
  //--------------------------------------------------------------------------
437
478
  //
438
479
  // Events (public)
@@ -442,6 +483,10 @@ const LayerTable = class {
442
483
  * Emitted on demand when a layer is selected
443
484
  */
444
485
  featureSelectionChange;
486
+ /**
487
+ * Emitted on demand when filter action is clicked
488
+ */
489
+ toggleFilter;
445
490
  /**
446
491
  * Scroll and zoom to the selected feature from the Features widget.
447
492
  *
@@ -473,6 +518,14 @@ const LayerTable = class {
473
518
  }
474
519
  }
475
520
  }
521
+ /**
522
+ * Handles layer selection change to show new table
523
+ *
524
+ * @param evt CustomEvent the id for the current layer
525
+ */
526
+ async layerSelectionChange(evt) {
527
+ await this._layerSelectionChanged(evt);
528
+ }
476
529
  /**
477
530
  * Refresh the table when edits are completed
478
531
  */
@@ -540,9 +593,9 @@ const LayerTable = class {
540
593
  const selected = this.selectedIds.length.toString();
541
594
  const tableHeightClass = this.isMobile ? "height-full" : "height-full-adjusted";
542
595
  this._validateActiveActions();
543
- return (h(Host, { key: '547a08c45cc3a0b0bdb5ab841ee202d2d43018dc' }, h("calcite-shell", { key: '7ac39e863586727df7685eb5c3faffd87c46bf9d' }, this._getTableControlRow("header"), h("div", { key: '322dc4820b17365f3f202ce43d85330d25081eb5', class: `width-full ${tableHeightClass}` }, h("calcite-panel", { key: '764955f3cf9371a5ff554821613fffbc9e0bd705', class: "height-full width-full" }, h("calcite-loader", { key: '031fc6520de11b166111626501f0208f1b69c9ff', class: loadingClass, label: this._translations.fetchingData, scale: "l" }), h("div", { key: '8d62258ee356fdf6bc6c03f88848a32270ce5eed', class: tableNodeClass, ref: this.onTableNodeCreate })), !this.isMobile ? (h("div", { class: "bottom-left text-color height-19" }, this._translations.recordsSelected
596
+ return (h(Host, { key: '17071727cb283d84afb8beab8382bd3623f35920' }, h("calcite-shell", { key: 'f8508d67fd4b100fdc3f52b7db63194714cf216b' }, this._getTableControlRow("header"), h("div", { key: '5c1ebcb0530764a9568dc5dae153632a3d9491c8', class: `width-full ${tableHeightClass}` }, h("calcite-panel", { key: '7a6420894e4e50e2b4cda6e5ebe043134f4c0397', class: "height-full width-full" }, h("calcite-loader", { key: '48d4fe7e27fae877ca0e4caa22555968636f6c33', class: loadingClass, label: this._translations.fetchingData, scale: "l" }), h("div", { key: 'cce71356e8ca141d1a18b32944d4fa03af8aae33', class: tableNodeClass, ref: this.onTableNodeCreate })), !this.isMobile ? (h("div", { class: "bottom-left text-color height-19" }, this._translations.recordsSelected
544
597
  .replace("{{total}}", total)
545
- .replace("{{selected}}", selected))) : undefined)), this._filterModal()));
598
+ .replace("{{selected}}", selected))) : undefined)), this.createFilterModal && this._filterModal()));
546
599
  }
547
600
  /**
548
601
  * Called once after the component is loaded
@@ -611,7 +664,7 @@ const LayerTable = class {
611
664
  _getActionBar() {
612
665
  const containerClass = this.isMobile ? "width-full" : "";
613
666
  const mobileClass = this.isMobile ? "border-top" : "";
614
- return (h("calcite-action-bar", { class: containerClass, expandDisabled: true, expanded: true, id: this._getId("bar"), layout: "horizontal" }, h("div", { class: `border-end ${containerClass} ${mobileClass}`, id: "solutions-map-layer-picker-container" }, h("map-layer-picker", { appearance: "transparent", defaultLayerId: this.defaultLayerId, display: "inline-flex", height: 50, isMobile: this.isMobile, mapView: this.mapView, onLayerSelectionChange: (evt) => void this._layerSelectionChanged(evt), onlyShowUpdatableLayers: this.onlyShowUpdatableLayers, placeholderIcon: "layers", scale: "l", showSingleLayerAsLabel: true, showTables: true, type: "dropdown" })), !this.isMobile ? this._getActions() : undefined));
667
+ return (h("calcite-action-bar", { class: containerClass, expandDisabled: true, expanded: true, id: this._getId("bar"), layout: "horizontal" }, h("div", { class: `border-end ${containerClass} ${mobileClass}`, id: "solutions-map-layer-picker-container" }, h("map-layer-picker", { appearance: "transparent", defaultLayerId: this.defaultLayerId, display: "inline-flex", height: 50, isMobile: this.isMobile, mapView: this.mapView, onlyShowUpdatableLayers: this.onlyShowUpdatableLayers, placeholderIcon: "layers", scale: "l", selectedIds: this._layer ? [this._layer?.id] : [], showSingleLayerAsLabel: true, showTables: true, type: "dropdown" })), !this.isMobile ? this._getActions() : undefined));
615
668
  }
616
669
  /**
617
670
  * Get the actions that are used for various interactions with the table
@@ -656,15 +709,19 @@ const LayerTable = class {
656
709
  */
657
710
  _validateEnabledActions() {
658
711
  const featuresSelected = this._featuresSelected();
712
+ const showMultipleEdits = this.selectedIds.length > 1 && this._layer?.capabilities?.operations?.supportsUpdate;
659
713
  const selectionDependant = [
660
714
  "zoom-to-object",
715
+ "pencil",
661
716
  "trash",
662
717
  "erase",
663
718
  "selected-items-filter"
664
719
  ];
665
720
  this._toolInfos?.forEach(ti => {
666
721
  if (ti && selectionDependant.indexOf(ti.icon) > -1) {
667
- ti.disabled = !featuresSelected;
722
+ // disable the pencil icon if multiple features are not selected
723
+ // For other icons disable them if any feature is not selected
724
+ ti.disabled = ti.icon === "pencil" ? !showMultipleEdits : !featuresSelected;
668
725
  }
669
726
  });
670
727
  }
@@ -698,6 +755,7 @@ const LayerTable = class {
698
755
  */
699
756
  _initToolInfos() {
700
757
  const featuresSelected = this._featuresSelected();
758
+ const showMultipleEdits = this.selectedIds.length > 1 && this._layer?.capabilities?.operations?.supportsUpdate;
701
759
  const featuresEmpty = this._featuresEmpty();
702
760
  const hasFilterExpressions = this._hasFilterExpressions();
703
761
  if (this._translations) {
@@ -716,10 +774,20 @@ const LayerTable = class {
716
774
  icon: "filter",
717
775
  indicator: false,
718
776
  label: this._translations.filters,
719
- func: () => this._toggleFilter(),
777
+ func: () => this.createFilterModal ? this._toggleFilter() : this.toggleFilter.emit(),
720
778
  disabled: false,
721
779
  isOverflow: false
722
780
  } : undefined,
781
+ !this.mapHidden ? {
782
+ active: false,
783
+ icon: "pencil",
784
+ indicator: false,
785
+ label: this._translations.editMultiple,
786
+ func: () => alert(this._translations.editMultiple),
787
+ disabled: !showMultipleEdits,
788
+ isOverflow: false,
789
+ isSublist: false
790
+ } : undefined,
723
791
  this._deleteEnabled ? {
724
792
  active: undefined,
725
793
  icon: "trash",
@@ -904,7 +972,7 @@ const LayerTable = class {
904
972
  _setControlsThatFit(controlsThatFit, skipControls) {
905
973
  let update = JSON.stringify(controlsThatFit) !== JSON.stringify(this._controlsThatFit);
906
974
  const actionbar = document.getElementById("solutions-action-bar");
907
- actionbar.childNodes.forEach((n) => {
975
+ actionbar?.childNodes?.forEach((n) => {
908
976
  if (skipControls.indexOf(n.id) < 0 && !update) {
909
977
  update = this._controlsThatFit.map(c => c.id).indexOf(n.id) < 0;
910
978
  }
@@ -1794,7 +1862,7 @@ function joinAppProxies(map, config, appProxies) {
1794
1862
  return map;
1795
1863
  }
1796
1864
 
1797
- const mapCardCss = ":host{display:block;--calcite-label-margin-bottom:0;--calcite-block-padding:0}.map-height{height:calc(100% - 51px)}.height-full{height:100%}.box-shadow{box-shadow:none !important}.visibility-hidden-1{visibility:hidden;height:1px;}.display-none{display:none}";
1865
+ const mapCardCss = ":host{display:block;--calcite-label-margin-bottom:0;--calcite-block-padding:0}.map-height{height:calc(100% - 51px)}.height-full{height:100%}.height-50-px{height:50px}.box-shadow{box-shadow:none !important}.visibility-hidden-1{visibility:hidden;height:1px;}.display-none{display:none}";
1798
1866
  const MapCardStyle0 = mapCardCss;
1799
1867
 
1800
1868
  const MapCard = class {
@@ -1802,8 +1870,10 @@ const MapCard = class {
1802
1870
  registerInstance(this, hostRef);
1803
1871
  this.mapChanged = createEvent(this, "mapChanged", 7);
1804
1872
  this.beforeMapChanged = createEvent(this, "beforeMapChanged", 7);
1873
+ this.toggleFilter = createEvent(this, "toggleFilter", 7);
1805
1874
  this.appProxies = undefined;
1806
1875
  this.defaultWebmapId = "";
1876
+ this.defaultLayerId = undefined;
1807
1877
  this.enableHome = undefined;
1808
1878
  this.enableLegend = undefined;
1809
1879
  this.enableFloorFilter = undefined;
@@ -1824,8 +1894,17 @@ const MapCard = class {
1824
1894
  this.stackTools = true;
1825
1895
  this.theme = undefined;
1826
1896
  this.toolOrder = undefined;
1897
+ this.isMapLayout = undefined;
1898
+ this.selectedFeaturesIds = undefined;
1899
+ this.selectedLayer = undefined;
1900
+ this.zoomToScale = undefined;
1901
+ this.onlyShowUpdatableLayers = undefined;
1902
+ this.isMobile = undefined;
1903
+ this.mapInfo = undefined;
1904
+ this._translations = undefined;
1827
1905
  this._searchConfiguration = undefined;
1828
1906
  this._webMapInfo = undefined;
1907
+ this._showHideOpen = false;
1829
1908
  }
1830
1909
  get el() { return getElement(this); }
1831
1910
  //--------------------------------------------------------------------------
@@ -1873,6 +1952,22 @@ const MapCard = class {
1873
1952
  * HTMLMapToolsElement: the container div for the map tools
1874
1953
  */
1875
1954
  _mapTools;
1955
+ /**
1956
+ * HTMLCalciteDropdownElement: Dropdown the will support overflow tools that won't fit in the current display
1957
+ */
1958
+ _moreDropdown;
1959
+ /**
1960
+ * boolean: When true the show/hide fields list is forced open
1961
+ */
1962
+ _mapListExpanded = false;
1963
+ /**
1964
+ * boolean: When true an indicator will be shown on the action
1965
+ */
1966
+ _filterActive = false;
1967
+ /**
1968
+ * string: The current layers definition expression
1969
+ */
1970
+ _definitionExpression;
1876
1971
  //--------------------------------------------------------------------------
1877
1972
  //
1878
1973
  // Watch handlers
@@ -1884,11 +1979,31 @@ const MapCard = class {
1884
1979
  enableHomeWatchHandler() {
1885
1980
  this._initHome();
1886
1981
  }
1982
+ /**
1983
+ * watch for changes in layer view and verify if it has editing enabled
1984
+ */
1985
+ async selectedLayerWatchHandler() {
1986
+ await this.selectedLayer?.when(async () => {
1987
+ this._definitionExpression = this.selectedLayer.definitionExpression;
1988
+ });
1989
+ }
1887
1990
  //--------------------------------------------------------------------------
1888
1991
  //
1889
1992
  // Methods (public)
1890
1993
  //
1891
1994
  //--------------------------------------------------------------------------
1995
+ /**
1996
+ * Reset the filter
1997
+ */
1998
+ async filterReset() {
1999
+ this._filterActive = false;
2000
+ }
2001
+ /**
2002
+ * updates the filter
2003
+ */
2004
+ async updateFilter() {
2005
+ this._filterActive = this._definitionExpression !== this.selectedLayer.definitionExpression;
2006
+ }
1892
2007
  //--------------------------------------------------------------------------
1893
2008
  //
1894
2009
  // Events (public)
@@ -1902,12 +2017,23 @@ const MapCard = class {
1902
2017
  * Emitted before a new map is loaded
1903
2018
  */
1904
2019
  beforeMapChanged;
2020
+ /**
2021
+ * Emitted on demand when filter action is clicked
2022
+ */
2023
+ toggleFilter;
1905
2024
  /**
1906
2025
  * Listen for changes to map info and load the appropriate map
1907
2026
  */
1908
2027
  async mapInfoChange(evt) {
1909
2028
  await this._loadMap(evt.detail);
1910
2029
  }
2030
+ /**
2031
+ * Listen for change when mapview doesn't contain any layer
2032
+ */
2033
+ noLayersFound() {
2034
+ this.selectedLayer = undefined;
2035
+ this.selectedFeaturesIds = [];
2036
+ }
1911
2037
  //--------------------------------------------------------------------------
1912
2038
  //
1913
2039
  // Functions (lifecycle)
@@ -1917,17 +2043,28 @@ const MapCard = class {
1917
2043
  * StencilJS: Called once just after the component is first connected to the DOM.
1918
2044
  */
1919
2045
  async componentWillLoad() {
2046
+ await this._getTranslations();
1920
2047
  await this._initModules();
1921
2048
  }
1922
2049
  /**
1923
2050
  * Renders the component.
1924
2051
  */
1925
2052
  render() {
2053
+ const mapContainerClass = this.isMapLayout ? "display-flex height-50-px" : "";
1926
2054
  const mapClass = this.hidden ? "visibility-hidden-1" : "";
1927
2055
  const themeClass = this.theme === "dark" ? "calcite-mode-dark" : "calcite-mode-light";
1928
2056
  const mapPickerClass = this.mapInfos?.length > 1 ? "" : "display-none";
1929
2057
  const mapHeightClass = this.mapInfos?.length > 1 ? "map-height" : "height-full";
1930
- return (h(Host, { key: '4f5c0cd408f92856ceb2ba281a02856064ef6a5a' }, h("map-picker", { key: 'f69742384dc5ba13bbf257592cc8c35de77590f0', class: mapPickerClass, mapInfos: this.mapInfos, ref: (el) => this._mapPicker = el }), h("div", { key: '3ddddf3f674d49ae59fe627af1c67ec59718c9a3', class: `${mapHeightClass} ${mapClass}`, ref: (el) => (this._mapDiv = el) }), h("map-tools", { key: '6cb9518e74af0594ab6b657f0caec3598c250cb2', basemapConfig: this.basemapConfig, class: `box-shadow ${themeClass}`, enableBasemap: this.enableBasemap, enableFloorFilter: this.enableFloorFilter, enableFullscreen: this.enableFullscreen, enableHome: this.enableHome, enableLegend: this.enableLegend, enableSearch: this.enableSearch, enableSingleExpand: this.enableSingleExpand, homeZoomToolsSize: this.homeZoomToolsSize, mapView: this.mapView, mapWidgetsSize: this.mapWidgetsSize, position: this.mapWidgetsPosition, ref: (el) => this._mapTools = el, searchConfiguration: this._searchConfiguration, stackTools: this.stackTools, toolOrder: this.toolOrder })));
2058
+ const containerClass = this.isMobile ? "width-full" : "";
2059
+ const mobileClass = this.isMobile ? "border-top" : "";
2060
+ const headerElements = this.isMapLayout ? "" : "display-none";
2061
+ return (h(Host, { key: '7029e518173a8c1e6e00049b8e68e23bed23d9cb' }, h("div", { key: '2b8d9197dcb68529562728fddeb53d0a7e9cbb86', class: `${mapContainerClass}` }, h("map-picker", { key: '2e50b7c70832f4151fafd06e860846a5efa8f6f1', class: mapPickerClass, isMapLayout: this.isMapLayout, mapInfos: this.mapInfos, ref: (el) => this._mapPicker = el }), h("div", { key: 'bc01ef7fb34400e3ff58151cab6abbabd9fa8a6f', class: `mapView-header display-flex ${headerElements}` }, h("div", { key: '1f1bf6ffb92fbc182be8333b4ae3d70271ea2f1b', class: `border-end ${containerClass} ${mobileClass}`, id: "solutions-map-layer-picker-container" }, this.mapView && h("map-layer-picker", { key: '47320f3794f060262c4ed29ec1400a50d9744a97', appearance: "transparent", defaultLayerId: this.defaultLayerId, display: "inline-flex", height: 50, isMobile: this.isMobile, mapView: this.mapView, onlyShowUpdatableLayers: this.onlyShowUpdatableLayers, placeholderIcon: "layers", scale: "l", selectedIds: this.selectedLayer ? [this.selectedLayer.id] : [], showSingleLayerAsLabel: true, showTables: true, type: "dropdown" })), this._getDropDownItem())), h("div", { key: '7101bfed6c0e0932275b0d28eea0ea5e1603aa8e', class: `${mapHeightClass} ${mapClass}`, ref: (el) => (this._mapDiv = el) }), h("map-tools", { key: '8ca28e50a77a25699cd6c17fe4f31788ca1cb49d', basemapConfig: this.basemapConfig, class: `box-shadow ${themeClass}`, enableBasemap: this.enableBasemap, enableFloorFilter: this.enableFloorFilter, enableFullscreen: this.enableFullscreen, enableHome: this.enableHome, enableLegend: this.enableLegend, enableSearch: this.enableSearch, enableSingleExpand: this.enableSingleExpand, homeZoomToolsSize: this.homeZoomToolsSize, mapView: this.mapView, mapWidgetsSize: this.mapWidgetsSize, position: this.mapWidgetsPosition, ref: (el) => this._mapTools = el, searchConfiguration: this._searchConfiguration, stackTools: this.stackTools, toolOrder: this.toolOrder })));
2062
+ }
2063
+ /**
2064
+ * Called each time after the component is loaded
2065
+ */
2066
+ async componentDidRender() {
2067
+ document.onclick = (e) => this._handleDocumentClick(e);
1931
2068
  }
1932
2069
  //--------------------------------------------------------------------------
1933
2070
  //
@@ -2026,8 +2163,99 @@ const MapCard = class {
2026
2163
  this.mapView.ui.remove(this._homeWidget);
2027
2164
  }
2028
2165
  }
2166
+ /**
2167
+ * Toggle show/hide dropdown
2168
+ */
2169
+ _toggleShowHide() {
2170
+ this._showHideOpen = !this._showHideOpen;
2171
+ }
2172
+ /**
2173
+ * Open show/hide dropdown
2174
+ */
2175
+ _forceShowHide() {
2176
+ if (this._moreDropdown) {
2177
+ this._moreDropdown.open = this._showHideOpen;
2178
+ }
2179
+ }
2180
+ /**
2181
+ * Close show/hide dropdown when the user clicks outside of it
2182
+ */
2183
+ _handleDocumentClick(e) {
2184
+ const id = e.target?.id;
2185
+ if (this._showHideOpen && id !== "solutions-subset-list" && id !== "solutions-more" && id !== "chevron-down") {
2186
+ if (this._moreDropdown) {
2187
+ this._showHideOpen = false;
2188
+ this._moreDropdown.open = false;
2189
+ }
2190
+ }
2191
+ // if clicked on map picker then toggle the dropdown
2192
+ if (e.target.tagName === 'MAP-PICKER') {
2193
+ this._mapListExpanded = !this._mapListExpanded;
2194
+ void this._mapPicker.toggle(this._mapListExpanded);
2195
+ }
2196
+ // if clicked on other place then just close the dropdown
2197
+ if (e.target.tagName !== 'MAP-PICKER') {
2198
+ this._mapListExpanded = false;
2199
+ void this._mapPicker.close();
2200
+ }
2201
+ }
2202
+ /**
2203
+ * Zoom to all selected features
2204
+ *
2205
+ * @returns a promise that will resolve when the operation is complete
2206
+ */
2207
+ async _zoom() {
2208
+ if (this.selectedLayer) {
2209
+ const selectedLayerView = await getFeatureLayerView(this.mapView, this.selectedLayer.id);
2210
+ await goToSelection(this.selectedFeaturesIds, selectedLayerView, this.mapView, true, undefined, this.zoomToScale);
2211
+ }
2212
+ }
2213
+ async _toggleFilter() {
2214
+ this.toggleFilter.emit();
2215
+ }
2216
+ /**
2217
+ * Return true when we have at least 1 layer expression for the current layer
2218
+ *
2219
+ * @returns boolean
2220
+ */
2221
+ _hasFilterExpressions() {
2222
+ let layerExpressions;
2223
+ if (this.mapInfo?.filterConfig?.layerExpressions && this.selectedLayer?.id) {
2224
+ layerExpressions = this.mapInfo.filterConfig.layerExpressions.filter((exp) => exp.id === this.selectedLayer.id);
2225
+ }
2226
+ return layerExpressions?.length > 0;
2227
+ }
2228
+ /**
2229
+ * Get Dropdown action item
2230
+ * @returns Dropdown item
2231
+ */
2232
+ _getDropDownItem() {
2233
+ return (h("calcite-dropdown", { closeOnSelectDisabled: true, disabled: this.selectedLayer === undefined, id: "solutions-more", onCalciteDropdownBeforeClose: () => this._forceShowHide(), ref: (el) => this._moreDropdown = el, widthScale: "l" }, h("calcite-action", { appearance: "solid", id: 'solutions-more', label: "", onClick: () => this._toggleShowHide(), slot: "trigger", text: "" }, h("calcite-button", { appearance: "transparent", iconEnd: this._showHideOpen ? "chevron-up" : "chevron-down", kind: "neutral" }, this._translations.more)), h("calcite-dropdown-group", { selectionMode: "none" }, this._getDropDownItems())));
2234
+ }
2235
+ /**
2236
+ * Gets the dropdown items
2237
+ * @returns dropdown items
2238
+ */
2239
+ _getDropDownItems() {
2240
+ const featureSelected = this.selectedFeaturesIds?.length > 0;
2241
+ const showMultipleEdits = this.selectedFeaturesIds?.length > 1;
2242
+ const hasFilterExpressions = this._hasFilterExpressions();
2243
+ return (h(Fragment, null, h("calcite-dropdown-group", { selectionMode: "none" }, h("calcite-dropdown-item", { disabled: !showMultipleEdits, iconStart: "pencil", id: "solutions-subset-list", onClick: () => alert(this._translations.editMultiple) }, this._translations.editMultiple)), h("calcite-dropdown-group", { selectionMode: "none" }, h("calcite-dropdown-item", { iconStart: "refresh", id: "solutions-subset-list", onClick: () => { this.selectedLayer.refresh(); } }, this._translations.refresh)), h("calcite-dropdown-group", { selectionMode: "none" }, h("calcite-dropdown-item", { disabled: !featureSelected, iconStart: "zoom-to-object", id: "solutions-subset-list", onClick: this._zoom.bind(this) }, this._translations.zoom)), hasFilterExpressions &&
2244
+ h("calcite-dropdown-group", null, h("calcite-dropdown-item", { disabled: false, iconStart: "filter", id: "solutions-subset-list", onClick: this._toggleFilter.bind(this), selected: this._filterActive }, this._translations.filters))));
2245
+ }
2246
+ /**
2247
+ * Fetches the component's translations
2248
+ *
2249
+ * @returns Promise when complete
2250
+ * @protected
2251
+ */
2252
+ async _getTranslations() {
2253
+ const messages = await getLocaleComponentStrings(this.el);
2254
+ this._translations = messages[0];
2255
+ }
2029
2256
  static get watchers() { return {
2030
- "enableHome": ["enableHomeWatchHandler"]
2257
+ "enableHome": ["enableHomeWatchHandler"],
2258
+ "selectedLayer": ["selectedLayerWatchHandler"]
2031
2259
  }; }
2032
2260
  };
2033
2261
  MapCard.style = MapCardStyle0;