@esri/solutions-components 0.7.22 → 0.7.24

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (451) hide show
  1. package/dist/assets/t9n/crowdsource-manager/resources.json +1 -3
  2. package/dist/assets/t9n/crowdsource-manager/resources_en.json +1 -3
  3. package/dist/assets/t9n/crowdsource-reporter/resources.json +18 -1
  4. package/dist/assets/t9n/crowdsource-reporter/resources_en.json +18 -1
  5. package/dist/assets/t9n/delete-button/resources.json +8 -0
  6. package/dist/assets/t9n/delete-button/resources_en.json +8 -0
  7. package/dist/assets/t9n/feature-list/resources.json +4 -0
  8. package/dist/assets/t9n/feature-list/resources_en.json +4 -0
  9. package/dist/assets/t9n/info-card/resources.json +1 -1
  10. package/dist/assets/t9n/info-card/resources_en.json +1 -1
  11. package/dist/assets/t9n/layer-list/resources.json +4 -0
  12. package/dist/assets/t9n/layer-list/resources_en.json +4 -0
  13. package/dist/assets/t9n/layer-table/resources.json +0 -9
  14. package/dist/assets/t9n/layer-table/resources_en.json +0 -9
  15. package/dist/assets/t9n/public-notification/resources.json +2 -3
  16. package/dist/assets/t9n/public-notification/resources_en.json +2 -3
  17. package/dist/cjs/basemap-gallery_5.cjs.entry.js +573 -0
  18. package/dist/cjs/buffer-tools_3.cjs.entry.js +1 -1
  19. package/dist/cjs/calcite-action-bar.cjs.entry.js +255 -0
  20. package/dist/cjs/calcite-alert_3.cjs.entry.js +159 -370
  21. package/dist/cjs/calcite-combobox_6.cjs.entry.js +2 -1
  22. package/dist/cjs/{calcite-action-bar_3.cjs.entry.js → calcite-filter_5.cjs.entry.js} +333 -172
  23. package/dist/cjs/calcite-flow_4.cjs.entry.js +658 -0
  24. package/dist/cjs/calcite-input-date-picker_3.cjs.entry.js +22 -11
  25. package/dist/cjs/calcite-shell-panel_14.cjs.entry.js +2 -1
  26. package/dist/cjs/{card-manager_3.cjs.entry.js → card-manager_2.cjs.entry.js} +69 -271
  27. package/dist/cjs/crowdsource-manager.cjs.entry.js +18 -3
  28. package/dist/cjs/crowdsource-reporter.cjs.entry.js +215 -36
  29. package/dist/cjs/{basemap-gallery_7.cjs.entry.js → info-card_4.cjs.entry.js} +325 -413
  30. package/dist/cjs/instant-apps-export.cjs.entry.js +1 -1
  31. package/dist/cjs/instant-apps-language-translator.cjs.entry.js +41 -1
  32. package/dist/cjs/layout-manager.cjs.entry.js +2 -1
  33. package/dist/cjs/loader.cjs.js +1 -1
  34. package/dist/cjs/{locale-9db09b63.js → locale-1ff119f5.js} +19 -1
  35. package/dist/cjs/map-select-tools_3.cjs.entry.js +1 -1
  36. package/dist/cjs/popupUtils-8d5b6e94.js +99 -0
  37. package/dist/cjs/public-notification.cjs.entry.js +2 -2
  38. package/dist/cjs/solution-configuration.cjs.entry.js +2 -1
  39. package/dist/cjs/solution-contents_3.cjs.entry.js +16 -2
  40. package/dist/cjs/solutions-components.cjs.js +1 -1
  41. package/dist/cjs/spatial-ref.cjs.entry.js +2 -1
  42. package/dist/collection/collection-manifest.json +3 -0
  43. package/dist/collection/components/crowdsource-manager/crowdsource-manager.js +23 -2
  44. package/dist/collection/components/crowdsource-reporter/crowdsource-reporter.css +73 -0
  45. package/dist/collection/components/crowdsource-reporter/crowdsource-reporter.js +349 -56
  46. package/dist/collection/components/delete-button/delete-button.css +19 -0
  47. package/dist/collection/components/delete-button/delete-button.js +299 -0
  48. package/dist/collection/components/delete-button/test/delete-button.e2e.js +29 -0
  49. package/dist/collection/components/delete-button/test/delete-button.spec.js +37 -0
  50. package/dist/collection/components/edit-card/edit-card.js +23 -13
  51. package/dist/collection/components/feature-list/feature-list.css +38 -0
  52. package/dist/collection/components/feature-list/feature-list.js +303 -0
  53. package/dist/collection/components/floor-filter/floor-filter.js +28 -12
  54. package/dist/collection/components/info-card/info-card.js +65 -21
  55. package/dist/collection/components/layer-list/layer-list.css +28 -0
  56. package/dist/collection/components/layer-list/layer-list.js +288 -0
  57. package/dist/collection/components/layer-table/layer-table.js +90 -119
  58. package/dist/collection/components/public-notification/public-notification.js +1 -1
  59. package/dist/collection/components/solution-spatial-ref/solution-spatial-ref.js +31 -1
  60. package/dist/collection/demos/crowdsource-manager.html +13 -0
  61. package/dist/collection/demos/crowdsource-reporter.html +42 -70
  62. package/dist/collection/demos/feature-list.html +43 -0
  63. package/dist/collection/demos/layer-list.html +43 -0
  64. package/dist/collection/utils/interfaces.ts +4 -0
  65. package/dist/components/calcite-flow-item.js +1 -261
  66. package/dist/components/calcite-flow.js +1 -165
  67. package/dist/components/card-manager2.js +38 -26
  68. package/dist/components/crowdsource-manager.js +110 -89
  69. package/dist/components/crowdsource-reporter.js +463 -42
  70. package/dist/components/delete-button.d.ts +11 -0
  71. package/dist/components/delete-button.js +11 -0
  72. package/dist/components/delete-button2.js +209 -0
  73. package/dist/components/edit-card2.js +23 -13
  74. package/dist/components/feature-list.d.ts +11 -0
  75. package/dist/components/feature-list.js +11 -0
  76. package/dist/components/feature-list2.js +281 -0
  77. package/dist/components/floor-filter2.js +12 -13
  78. package/dist/{esm/calcite-flow-item.entry.js → components/flow-item.js} +94 -19
  79. package/dist/{esm/calcite-flow.entry.js → components/flow.js} +33 -10
  80. package/dist/components/info-card2.js +87 -136
  81. package/dist/components/instant-apps-export.js +1 -1
  82. package/dist/components/instant-apps-filter-list2.js +22 -11
  83. package/dist/components/instant-apps-language-translator2.js +48 -4
  84. package/dist/components/layer-list.d.ts +11 -0
  85. package/dist/components/layer-list.js +11 -0
  86. package/dist/components/layer-list2.js +268 -0
  87. package/dist/components/layer-table2.js +148 -169
  88. package/dist/components/locale.js +19 -2
  89. package/dist/components/popupUtils.js +97 -0
  90. package/dist/components/public-notification.js +1 -1
  91. package/dist/components/queryUtils.js +1 -1
  92. package/dist/components/solution-spatial-ref2.js +17 -2
  93. package/dist/esm/{ExpandToggle-540998b5.js → ExpandToggle-96688cda.js} +1 -1
  94. package/dist/esm/{ar-35006b74.js → ar-29711364.js} +8 -8
  95. package/dist/esm/basemap-gallery_5.entry.js +565 -0
  96. package/dist/esm/{bg-c289978f.js → bg-c0f5033b.js} +8 -8
  97. package/dist/esm/{bs-6f9fb44a.js → bs-60479ce5.js} +8 -8
  98. package/dist/esm/buffer-tools_3.entry.js +3 -3
  99. package/dist/esm/{ca-7962c8b7.js → ca-4317b986.js} +8 -8
  100. package/dist/esm/calcite-accordion-item.entry.js +1 -1
  101. package/dist/esm/calcite-action-bar.entry.js +251 -0
  102. package/dist/esm/calcite-action-group.entry.js +3 -3
  103. package/dist/esm/calcite-action-menu_2.entry.js +5 -5
  104. package/dist/esm/calcite-action-pad_2.entry.js +4 -4
  105. package/dist/esm/calcite-action_2.entry.js +3 -3
  106. package/dist/esm/calcite-alert_3.entry.js +164 -375
  107. package/dist/esm/calcite-avatar.entry.js +1 -1
  108. package/dist/esm/calcite-block-section.entry.js +3 -3
  109. package/dist/esm/calcite-block_2.entry.js +5 -5
  110. package/dist/esm/calcite-button.entry.js +5 -5
  111. package/dist/esm/calcite-card.entry.js +3 -3
  112. package/dist/esm/calcite-checkbox.entry.js +3 -3
  113. package/dist/esm/calcite-chip-group.entry.js +1 -1
  114. package/dist/esm/calcite-chip.entry.js +3 -3
  115. package/dist/esm/calcite-color-picker-hex-input_2.entry.js +1 -1
  116. package/dist/esm/calcite-color-picker.entry.js +3 -3
  117. package/dist/esm/calcite-combobox-item-group.entry.js +2 -2
  118. package/dist/esm/calcite-combobox_6.entry.js +11 -10
  119. package/dist/esm/calcite-date-picker-day_3.entry.js +3 -3
  120. package/dist/esm/calcite-fab.entry.js +1 -1
  121. package/dist/esm/{calcite-action-bar_3.entry.js → calcite-filter_5.entry.js} +363 -204
  122. package/dist/esm/calcite-flow_4.entry.js +651 -0
  123. package/dist/esm/calcite-graph_2.entry.js +4 -4
  124. package/dist/esm/calcite-icon.entry.js +1 -1
  125. package/dist/esm/calcite-inline-editable.entry.js +4 -4
  126. package/dist/esm/calcite-input-date-picker_3.entry.js +31 -20
  127. package/dist/esm/calcite-input-number.entry.js +5 -5
  128. package/dist/esm/calcite-input-text.entry.js +5 -5
  129. package/dist/esm/{calcite-input-time-picker-63439178.js → calcite-input-time-picker-2e1b2157.js} +55 -55
  130. package/dist/esm/calcite-input-time-picker.entry.js +8 -8
  131. package/dist/esm/calcite-input-time-zone.entry.js +5 -5
  132. package/dist/esm/calcite-input_2.entry.js +5 -5
  133. package/dist/esm/calcite-label.entry.js +2 -2
  134. package/dist/esm/calcite-link.entry.js +1 -1
  135. package/dist/esm/calcite-menu-item.entry.js +3 -3
  136. package/dist/esm/calcite-menu.entry.js +3 -3
  137. package/dist/esm/calcite-meter.entry.js +3 -3
  138. package/dist/esm/calcite-modal.entry.js +4 -4
  139. package/dist/esm/calcite-navigation.entry.js +1 -1
  140. package/dist/esm/calcite-notice.entry.js +3 -3
  141. package/dist/esm/calcite-option_2.entry.js +3 -3
  142. package/dist/esm/calcite-pagination.entry.js +3 -3
  143. package/dist/esm/calcite-panel_2.entry.js +3 -3
  144. package/dist/esm/calcite-pick-list-group.entry.js +1 -1
  145. package/dist/esm/calcite-pick-list-item.entry.js +3 -3
  146. package/dist/esm/calcite-pick-list.entry.js +2 -2
  147. package/dist/esm/calcite-radio-button.entry.js +3 -3
  148. package/dist/esm/calcite-rating.entry.js +5 -5
  149. package/dist/esm/calcite-scrim.entry.js +3 -3
  150. package/dist/esm/calcite-segmented-control_2.entry.js +3 -3
  151. package/dist/esm/calcite-sheet.entry.js +2 -2
  152. package/dist/esm/calcite-shell-center-row.entry.js +1 -1
  153. package/dist/esm/calcite-shell-panel_14.entry.js +8 -7
  154. package/dist/esm/calcite-sortable-list.entry.js +1 -1
  155. package/dist/esm/calcite-stepper-item.entry.js +3 -3
  156. package/dist/esm/calcite-stepper.entry.js +3 -3
  157. package/dist/esm/calcite-switch.entry.js +3 -3
  158. package/dist/esm/calcite-table-cell_2.entry.js +3 -3
  159. package/dist/esm/calcite-table-row.entry.js +1 -1
  160. package/dist/esm/calcite-table.entry.js +3 -3
  161. package/dist/esm/calcite-text-area.entry.js +5 -5
  162. package/dist/esm/calcite-tile.entry.js +1 -1
  163. package/dist/esm/calcite-time-picker.entry.js +4 -4
  164. package/dist/esm/calcite-tip-manager.entry.js +3 -3
  165. package/dist/esm/calcite-tip.entry.js +3 -3
  166. package/dist/esm/calcite-tooltip.entry.js +2 -2
  167. package/dist/esm/calcite-tree_2.entry.js +1 -1
  168. package/dist/esm/{card-manager_3.entry.js → card-manager_2.entry.js} +72 -273
  169. package/dist/esm/{common-2cf42ac2.js → common-d04ccc0d.js} +1 -1
  170. package/dist/esm/crowdsource-manager.entry.js +19 -4
  171. package/dist/esm/crowdsource-reporter.entry.js +215 -36
  172. package/dist/esm/{cs-6d13069b.js → cs-da404a04.js} +8 -8
  173. package/dist/esm/{da-14097e6c.js → da-1afac3fa.js} +8 -8
  174. package/dist/esm/{date-1743b515.js → date-8b4a8f33.js} +1 -1
  175. package/dist/esm/{de-dff2571b.js → de-98f3129e.js} +8 -8
  176. package/dist/esm/{de-at-b733db65.js → de-at-ed4817af.js} +8 -8
  177. package/dist/esm/{de-ch-5ad0cb74.js → de-ch-556c82c8.js} +8 -8
  178. package/dist/esm/{dom-492b1b24.js → dom-8f926f33.js} +1 -1
  179. package/dist/esm/{downloadUtils-13579d93.js → downloadUtils-067dc2ff.js} +2 -2
  180. package/dist/esm/{el-688e05ba.js → el-394dfd74.js} +8 -8
  181. package/dist/esm/{en-au-357e70d8.js → en-au-6dde1e7e.js} +8 -8
  182. package/dist/esm/{en-ca-1e0b6b47.js → en-ca-420be416.js} +8 -8
  183. package/dist/esm/{en-gb-861a17f2.js → en-gb-0a7caa85.js} +8 -8
  184. package/dist/esm/{es-291ab4bd.js → es-2e1beb99.js} +8 -8
  185. package/dist/esm/{es-mx-0a7283a7.js → es-mx-ef132a24.js} +8 -8
  186. package/dist/esm/{et-addd2617.js → et-83d139c1.js} +8 -8
  187. package/dist/esm/{fi-469884d5.js → fi-8b81ed94.js} +8 -8
  188. package/dist/esm/{floating-ui-03eb4c82.js → floating-ui-c397f653.js} +1 -1
  189. package/dist/esm/{focusTrapComponent-2e7de651.js → focusTrapComponent-14368766.js} +1 -1
  190. package/dist/esm/{form-9bccaf85.js → form-133b00c7.js} +1 -1
  191. package/dist/esm/{fr-f5cb34ca.js → fr-c47c114a.js} +8 -8
  192. package/dist/esm/{fr-ch-115d3fda.js → fr-ch-97635343.js} +8 -8
  193. package/dist/esm/{he-6e5f5c56.js → he-ed2a12b9.js} +8 -8
  194. package/dist/esm/{hi-503240c2.js → hi-a05727ac.js} +8 -8
  195. package/dist/esm/{hr-cc08d6fc.js → hr-d01671ca.js} +8 -8
  196. package/dist/esm/{hu-69ac240d.js → hu-16506ca7.js} +8 -8
  197. package/dist/esm/{id-99547746.js → id-e9367e87.js} +8 -8
  198. package/dist/esm/{index.es-04d2e63e.js → index.es-92e46d8b.js} +3 -3
  199. package/dist/esm/{basemap-gallery_7.entry.js → info-card_4.entry.js} +325 -410
  200. package/dist/esm/instant-apps-export.entry.js +1 -1
  201. package/dist/esm/instant-apps-language-translator.entry.js +42 -2
  202. package/dist/esm/{interfaces-341e3ab3.js → interfaces-586e863c.js} +1 -1
  203. package/dist/esm/{it-dbb6ea7d.js → it-14246b4a.js} +8 -8
  204. package/dist/esm/{it-ch-a83801f6.js → it-ch-a877e111.js} +8 -8
  205. package/dist/esm/{ja-79dbb02f.js → ja-67a0cfa0.js} +8 -8
  206. package/dist/esm/{ko-31ebe067.js → ko-35b0b83a.js} +8 -8
  207. package/dist/esm/{label-14301f4d.js → label-cd393c81.js} +1 -1
  208. package/dist/esm/layout-manager.entry.js +3 -2
  209. package/dist/esm/loader.js +1 -1
  210. package/dist/esm/{locale-834c52c6.js → locale-13e3c96c.js} +19 -2
  211. package/dist/esm/{locale-8cfa3086.js → locale-6107ef11.js} +1 -1
  212. package/dist/esm/{lt-94d3f4b8.js → lt-71014faf.js} +8 -8
  213. package/dist/esm/{lv-d770ed0d.js → lv-def9df38.js} +8 -8
  214. package/dist/esm/map-select-tools_3.entry.js +4 -4
  215. package/dist/esm/{mapViewUtils-8fe70944.js → mapViewUtils-6daedef8.js} +2 -2
  216. package/dist/esm/{mk-1046d60a.js → mk-bfeac49e.js} +8 -8
  217. package/dist/esm/{nb-dad0b4b9.js → nb-0723b461.js} +8 -8
  218. package/dist/esm/{nl-a968c4b7.js → nl-89663165.js} +8 -8
  219. package/dist/esm/{pl-a0037bd3.js → pl-0157c37c.js} +8 -8
  220. package/dist/esm/popupUtils-b71f30fc.js +97 -0
  221. package/dist/esm/{pt-e3d9370c.js → pt-80d1520c.js} +8 -8
  222. package/dist/esm/{pt-br-44c11565.js → pt-br-ee5003c7.js} +8 -8
  223. package/dist/esm/public-notification.entry.js +5 -5
  224. package/dist/esm/{ro-290e025d.js → ro-eff987f8.js} +8 -8
  225. package/dist/esm/{ru-38ff91f1.js → ru-62839398.js} +8 -8
  226. package/dist/esm/{shared-list-render-89e4bcff.js → shared-list-render-a2ab63e8.js} +1 -1
  227. package/dist/esm/{sk-9622a24b.js → sk-c2f4bd58.js} +8 -8
  228. package/dist/esm/{sl-6bc83a24.js → sl-328ff1db.js} +8 -8
  229. package/dist/esm/solution-configuration.entry.js +4 -3
  230. package/dist/esm/solution-contents_3.entry.js +19 -5
  231. package/dist/esm/{solution-store-b08696f7.js → solution-store-19f7825b.js} +1 -1
  232. package/dist/esm/solutions-components.js +1 -1
  233. package/dist/esm/spatial-ref.entry.js +4 -3
  234. package/dist/esm/{sr-35e575d8.js → sr-75a3ad46.js} +8 -8
  235. package/dist/esm/{sv-d80fa359.js → sv-10da5ef2.js} +8 -8
  236. package/dist/esm/{t9n-3c5e55ab.js → t9n-f16911e7.js} +1 -1
  237. package/dist/esm/{th-23e71d40.js → th-aa112042.js} +8 -8
  238. package/dist/esm/{time-d956a7c8.js → time-855b3426.js} +1 -1
  239. package/dist/esm/{tr-961fd2f3.js → tr-5925a2f5.js} +8 -8
  240. package/dist/esm/{uk-4e8a425a.js → uk-c40eeb9f.js} +8 -8
  241. package/dist/esm/{utils-56206ec2.js → utils-93fd55c4.js} +2 -2
  242. package/dist/esm/{utils-8287806a.js → utils-c3509713.js} +1 -1
  243. package/dist/esm/{vi-ad983882.js → vi-27922b93.js} +8 -8
  244. package/dist/esm/{zh-cn-5b6fd039.js → zh-cn-38a2e1d3.js} +8 -8
  245. package/dist/esm/{zh-hk-7439b11d.js → zh-hk-e0217bd1.js} +8 -8
  246. package/dist/esm/{zh-tw-cf384663.js → zh-tw-31f0447c.js} +8 -8
  247. package/dist/node_modules/@esri/instant-apps-components/dist/collection/components/instant-apps-filter-list/instant-apps-filter-list.css +0 -1
  248. package/dist/solutions-components/demos/crowdsource-manager.html +13 -0
  249. package/dist/solutions-components/demos/crowdsource-reporter.html +42 -70
  250. package/dist/solutions-components/demos/feature-list.html +43 -0
  251. package/dist/solutions-components/demos/layer-list.html +43 -0
  252. package/dist/solutions-components/{p-a40a1eab.entry.js → p-01032eec.entry.js} +2 -18
  253. package/dist/solutions-components/{p-e7951fcb.js → p-0392679d.js} +1 -1
  254. package/dist/solutions-components/{p-3022da2d.js → p-05f702ae.js} +1 -1
  255. package/dist/solutions-components/{p-4da72ee8.entry.js → p-068f5a8c.entry.js} +1 -1
  256. package/dist/solutions-components/{p-4f71a1a0.js → p-0d774e41.js} +1 -1
  257. package/dist/solutions-components/{p-0e723ffc.js → p-0f6b58b2.js} +1 -1
  258. package/dist/solutions-components/{p-ec8f042e.entry.js → p-10410f92.entry.js} +1 -1
  259. package/dist/solutions-components/{p-6a4b1e48.entry.js → p-10f2d6b0.entry.js} +2 -2
  260. package/dist/solutions-components/{p-5d2ccc75.entry.js → p-13be5cf5.entry.js} +1 -1
  261. package/dist/solutions-components/{p-58054bc2.js → p-14548a83.js} +1 -1
  262. package/dist/solutions-components/{p-c9f87acb.js → p-14ff1465.js} +2 -2
  263. package/dist/solutions-components/{p-026b1345.js → p-17668cb7.js} +3 -3
  264. package/dist/solutions-components/{p-5e530f8c.js → p-1c75bb3d.js} +1 -1
  265. package/dist/solutions-components/p-1f7046e9.entry.js +6 -0
  266. package/dist/solutions-components/{p-121a5dac.entry.js → p-234a8293.entry.js} +1 -1
  267. package/dist/solutions-components/{p-355249fc.js → p-2447b332.js} +1 -1
  268. package/dist/solutions-components/{p-48828002.entry.js → p-24c699b0.entry.js} +1 -1
  269. package/dist/solutions-components/{p-9bcbc1cc.js → p-2592e0dd.js} +1 -1
  270. package/dist/solutions-components/{p-b78a1c21.js → p-28b33708.js} +1 -1
  271. package/dist/solutions-components/{p-fa6ef970.js → p-2d68a6fd.js} +1 -1
  272. package/dist/solutions-components/{p-6437fee1.entry.js → p-2e2d01de.entry.js} +1 -1
  273. package/dist/solutions-components/{p-5e9b05c0.entry.js → p-2f425700.entry.js} +1 -1
  274. package/dist/solutions-components/p-3606c4b8.entry.js +6 -0
  275. package/dist/solutions-components/{p-6c3cdd09.entry.js → p-364486d1.entry.js} +1 -1
  276. package/dist/solutions-components/{p-85a89f1d.entry.js → p-368cbb2c.entry.js} +1 -1
  277. package/dist/solutions-components/{p-c68a6d4f.js → p-36cbf14f.js} +1 -1
  278. package/dist/solutions-components/{p-52ad6ff9.entry.js → p-36f247db.entry.js} +1 -1
  279. package/dist/solutions-components/{p-080249de.js → p-38544b17.js} +1 -1
  280. package/dist/solutions-components/{p-a0be72b6.entry.js → p-3a73ee38.entry.js} +1 -1
  281. package/dist/solutions-components/{p-532b7378.entry.js → p-3ad4426b.entry.js} +1 -1
  282. package/dist/solutions-components/{p-5752785e.entry.js → p-3c10901a.entry.js} +1 -1
  283. package/dist/solutions-components/{p-6e406a7b.js → p-3c7d0eb9.js} +1 -1
  284. package/dist/solutions-components/{p-bf23173c.js → p-411b73a7.js} +1 -1
  285. package/dist/solutions-components/{p-76d60881.entry.js → p-429e1284.entry.js} +1 -1
  286. package/dist/solutions-components/{p-f3d277c2.entry.js → p-42f0e1fa.entry.js} +1 -1
  287. package/dist/solutions-components/{p-1fc220c7.js → p-4416d288.js} +1 -1
  288. package/dist/solutions-components/{p-663a433a.entry.js → p-451b16b3.entry.js} +2 -2
  289. package/dist/solutions-components/{p-b5d1b979.js → p-4566438a.js} +3 -3
  290. package/dist/solutions-components/{p-7a06dcdf.js → p-4647b2a6.js} +1 -1
  291. package/dist/solutions-components/{p-75fbe76c.js → p-480d0789.js} +1 -1
  292. package/dist/solutions-components/p-49b02dda.entry.js +6 -0
  293. package/dist/solutions-components/{p-722ae773.js → p-49fb1bfa.js} +2 -2
  294. package/dist/solutions-components/{p-17183100.js → p-4abf1c34.js} +1 -1
  295. package/dist/solutions-components/p-4ae36626.js +6 -0
  296. package/dist/solutions-components/{p-5c3fd315.entry.js → p-4bff69aa.entry.js} +1 -1
  297. package/dist/solutions-components/{p-f8f18a94.entry.js → p-4ccdac24.entry.js} +1 -1
  298. package/dist/solutions-components/{p-a3a64af2.entry.js → p-4d402bcf.entry.js} +1 -1
  299. package/dist/solutions-components/{p-7e82a730.js → p-4d8fc031.js} +1 -1
  300. package/dist/solutions-components/{p-1c720ed5.entry.js → p-4d99cb49.entry.js} +1 -1
  301. package/dist/solutions-components/p-4fbadb84.entry.js +6 -0
  302. package/dist/solutions-components/{p-e0276e26.entry.js → p-5268d845.entry.js} +2 -2
  303. package/dist/solutions-components/{p-f3f09834.js → p-5e12026e.js} +1 -1
  304. package/dist/solutions-components/p-5e832d65.entry.js +6 -0
  305. package/dist/solutions-components/{p-ffee4847.entry.js → p-5fe99315.entry.js} +1 -1
  306. package/dist/solutions-components/{p-d6208a47.js → p-6105d57c.js} +1 -1
  307. package/dist/solutions-components/{p-f3dfb34f.entry.js → p-613315a7.entry.js} +1 -1
  308. package/dist/solutions-components/{p-0d97c2c5.entry.js → p-62eba559.entry.js} +1 -1
  309. package/dist/solutions-components/{p-40235cb7.entry.js → p-63fa7791.entry.js} +1 -1
  310. package/dist/solutions-components/{p-cfccae7c.js → p-6604ac77.js} +1 -1
  311. package/dist/solutions-components/{p-9b1766ef.entry.js → p-674be06c.entry.js} +1 -1
  312. package/dist/solutions-components/{p-a4aef40c.entry.js → p-67ff8e9a.entry.js} +1 -1
  313. package/dist/solutions-components/{p-16df3a9e.entry.js → p-685257d1.entry.js} +1 -1
  314. package/dist/solutions-components/{p-4647c429.js → p-68e0adcf.js} +1 -1
  315. package/dist/solutions-components/{p-fc8338c6.entry.js → p-68e84199.entry.js} +1 -1
  316. package/dist/solutions-components/{p-aa3092cf.js → p-69763854.js} +1 -1
  317. package/dist/solutions-components/{p-e31754c8.js → p-6ae45648.js} +1 -1
  318. package/dist/solutions-components/{p-98013072.entry.js → p-6cce7009.entry.js} +1 -1
  319. package/dist/solutions-components/{p-34cacf32.js → p-6d511162.js} +1 -1
  320. package/dist/solutions-components/{p-337acb3c.js → p-727596e6.js} +1 -1
  321. package/dist/solutions-components/{p-b170916e.js → p-73100e79.js} +2 -2
  322. package/dist/solutions-components/{p-23662977.entry.js → p-734bc1b0.entry.js} +2 -2
  323. package/dist/solutions-components/{p-f3626331.entry.js → p-752ece4a.entry.js} +2 -2
  324. package/dist/solutions-components/{p-ecdd587c.entry.js → p-75e2a322.entry.js} +3 -3
  325. package/dist/solutions-components/{p-ca33fa09.entry.js → p-787203af.entry.js} +1 -1
  326. package/dist/solutions-components/{p-a9fc934d.js → p-79110824.js} +1 -1
  327. package/dist/solutions-components/{p-b82179c0.js → p-793cad54.js} +1 -1
  328. package/dist/solutions-components/{p-0250dec5.js → p-797aa505.js} +1 -1
  329. package/dist/solutions-components/{p-133de052.entry.js → p-7ebd34df.entry.js} +1 -1
  330. package/dist/solutions-components/{p-8934e858.entry.js → p-809b7e47.entry.js} +2 -2
  331. package/dist/solutions-components/{p-ca97465b.js → p-83fd31d5.js} +1 -1
  332. package/dist/solutions-components/{p-2e1f7c0e.entry.js → p-84378c8d.entry.js} +2 -2
  333. package/dist/solutions-components/p-864b1d72.entry.js +6 -0
  334. package/dist/solutions-components/{p-50ea26de.entry.js → p-8b47b607.entry.js} +1 -1
  335. package/dist/solutions-components/{p-f4e91113.js → p-8d49a084.js} +1 -1
  336. package/dist/solutions-components/{p-f84848b0.entry.js → p-8fabb8a4.entry.js} +1 -1
  337. package/dist/solutions-components/p-8fc072ca.entry.js +6 -0
  338. package/dist/solutions-components/{p-29602eff.entry.js → p-96c2ed64.entry.js} +1 -1
  339. package/dist/solutions-components/{p-b42bde59.entry.js → p-978d936a.entry.js} +1 -1
  340. package/dist/solutions-components/{p-79ba73cb.js → p-981e9549.js} +1 -1
  341. package/dist/solutions-components/{p-02714171.entry.js → p-98308b13.entry.js} +2 -2
  342. package/dist/solutions-components/p-99c5701d.entry.js +6 -0
  343. package/dist/solutions-components/{p-fe68d502.js → p-9cbfd8cd.js} +1 -1
  344. package/dist/solutions-components/{p-8f8fe5d0.entry.js → p-a09c8edf.entry.js} +1 -1
  345. package/dist/solutions-components/p-a2d3df14.entry.js +6 -0
  346. package/dist/solutions-components/{p-ac6a3e13.js → p-a5272d7e.js} +1 -1
  347. package/dist/solutions-components/p-a5c5b24d.js +6 -0
  348. package/dist/solutions-components/{p-5d9ad152.entry.js → p-a5e93c7e.entry.js} +1 -1
  349. package/dist/solutions-components/{p-07b31dc9.js → p-a6bb4148.js} +1 -1
  350. package/dist/solutions-components/{p-11b59592.entry.js → p-a8c9ac0b.entry.js} +2 -2
  351. package/dist/solutions-components/{p-41f7bc94.entry.js → p-a9bd945b.entry.js} +1 -1
  352. package/dist/solutions-components/p-ab006ace.js +21 -0
  353. package/dist/solutions-components/{p-634835fe.js → p-abdd289e.js} +1 -1
  354. package/dist/solutions-components/{p-43e67b3c.entry.js → p-aca29f67.entry.js} +2 -2
  355. package/dist/solutions-components/{p-8118146c.entry.js → p-ad96cd8b.entry.js} +1 -1
  356. package/dist/solutions-components/{p-8772a573.js → p-af1bb992.js} +1 -1
  357. package/dist/solutions-components/{p-36eb8399.js → p-b1b768f7.js} +4 -4
  358. package/dist/solutions-components/{p-dd37c504.js → p-b29677ca.js} +1 -1
  359. package/dist/solutions-components/{p-82b4ab94.js → p-b2c5e62b.js} +1 -1
  360. package/dist/solutions-components/{p-db436a77.entry.js → p-b326b592.entry.js} +1 -1
  361. package/dist/solutions-components/{p-a4772574.js → p-b7285bd5.js} +1 -1
  362. package/dist/solutions-components/{p-8b5b4662.js → p-b8959537.js} +1 -1
  363. package/dist/solutions-components/p-ba56035f.entry.js +6 -0
  364. package/dist/solutions-components/{p-c21f578f.js → p-baf4cb37.js} +1 -1
  365. package/dist/solutions-components/{p-799c3f19.js → p-bfebff0e.js} +1 -1
  366. package/dist/solutions-components/p-c0ed2b83.entry.js +6 -0
  367. package/dist/solutions-components/p-c0f97ed2.entry.js +6 -0
  368. package/dist/solutions-components/{p-4af32c75.js → p-c1cf3ebc.js} +1 -1
  369. package/dist/solutions-components/{p-cfb83693.js → p-c3190f85.js} +1 -1
  370. package/dist/solutions-components/{p-0511c98c.js → p-c4ebb5d1.js} +1 -1
  371. package/dist/solutions-components/p-c56fd16c.entry.js +11 -0
  372. package/dist/solutions-components/{p-2d1b8cfa.js → p-c6b9a129.js} +1 -1
  373. package/dist/solutions-components/{p-1cb4c542.entry.js → p-c7e7da9a.entry.js} +1 -1
  374. package/dist/solutions-components/{p-d8b3d156.entry.js → p-ca4023f4.entry.js} +1 -1
  375. package/dist/solutions-components/p-cb1d29d4.entry.js +17 -0
  376. package/dist/solutions-components/p-cc88bb42.entry.js +6 -0
  377. package/dist/solutions-components/{p-034d43fb.js → p-cdee3846.js} +1 -1
  378. package/dist/solutions-components/{p-c5cb8804.js → p-cfb3d66a.js} +1 -1
  379. package/dist/solutions-components/{p-ebbeec9f.entry.js → p-d2d7d6b4.entry.js} +2 -2
  380. package/dist/solutions-components/{p-dd071507.js → p-d44e2fd7.js} +1 -1
  381. package/dist/solutions-components/{p-48a5ae32.entry.js → p-d50f34c4.entry.js} +1 -1
  382. package/dist/solutions-components/{p-5953ebe8.entry.js → p-d9061e5d.entry.js} +1 -1
  383. package/dist/solutions-components/{p-414240b2.js → p-d9a59fcc.js} +1 -1
  384. package/dist/solutions-components/{p-24286e8c.entry.js → p-db69f4ba.entry.js} +1 -1
  385. package/dist/solutions-components/{p-ede84883.js → p-de281b08.js} +2 -2
  386. package/dist/solutions-components/{p-a11fca14.js → p-df118036.js} +1 -1
  387. package/dist/solutions-components/p-e274f3b0.entry.js +23 -0
  388. package/dist/solutions-components/p-e3061220.entry.js +6 -0
  389. package/dist/solutions-components/{p-4613e205.js → p-e6d4bdce.js} +1 -1
  390. package/dist/solutions-components/{p-3c5d3b4a.js → p-e6dfc80f.js} +1 -1
  391. package/dist/solutions-components/{p-92ea9e81.js → p-e834d132.js} +1 -1
  392. package/dist/solutions-components/{p-f9eb2f2d.js → p-ee4e5212.js} +1 -1
  393. package/dist/solutions-components/{p-efce2e85.js → p-ef05dea5.js} +1 -1
  394. package/dist/solutions-components/{p-5fd1eb64.js → p-f0d68a3f.js} +2 -2
  395. package/dist/solutions-components/p-f17941f1.entry.js +6 -0
  396. package/dist/solutions-components/{p-9e3b8632.entry.js → p-f1e6ce96.entry.js} +1 -1
  397. package/dist/solutions-components/p-f54f3719.entry.js +17 -0
  398. package/dist/solutions-components/{p-fdb1ace8.entry.js → p-fb1c6811.entry.js} +2 -2
  399. package/dist/solutions-components/p-fec77450.js +21 -0
  400. package/dist/solutions-components/{p-50764143.entry.js → p-ff460d05.entry.js} +3 -3
  401. package/dist/solutions-components/{p-d1ca57f3.entry.js → p-ff7c9bc3.entry.js} +1 -1
  402. package/dist/solutions-components/{p-0b47b407.js → p-ffa2c430.js} +1 -1
  403. package/dist/solutions-components/{p-89520d31.entry.js → p-ffbed9b2.entry.js} +1 -1
  404. package/dist/solutions-components/solutions-components.esm.js +1 -1
  405. package/dist/solutions-components/utils/interfaces.ts +4 -0
  406. package/dist/types/components/crowdsource-manager/crowdsource-manager.d.ts +8 -0
  407. package/dist/types/components/crowdsource-reporter/crowdsource-reporter.d.ts +159 -11
  408. package/dist/types/components/delete-button/delete-button.d.ts +120 -0
  409. package/dist/types/components/edit-card/edit-card.d.ts +2 -1
  410. package/dist/types/components/feature-list/feature-list.d.ts +128 -0
  411. package/dist/types/components/floor-filter/floor-filter.d.ts +13 -0
  412. package/dist/types/components/info-card/info-card.d.ts +19 -0
  413. package/dist/types/components/layer-list/layer-list.d.ts +133 -0
  414. package/dist/types/components/layer-table/layer-table.d.ts +31 -43
  415. package/dist/types/components/solution-spatial-ref/solution-spatial-ref.d.ts +5 -1
  416. package/dist/types/components.d.ts +288 -11
  417. package/dist/types/preact.d.ts +18 -2
  418. package/dist/types/utils/interfaces.d.ts +2 -0
  419. package/package.json +3 -3
  420. package/dist/cjs/calcite-filter_2.cjs.entry.js +0 -237
  421. package/dist/cjs/calcite-flow-item.cjs.entry.js +0 -197
  422. package/dist/cjs/calcite-flow.cjs.entry.js +0 -153
  423. package/dist/cjs/calcite-handle.cjs.entry.js +0 -184
  424. package/dist/cjs/resources-55ba2752.js +0 -29
  425. package/dist/esm/calcite-filter_2.entry.js +0 -232
  426. package/dist/esm/calcite-handle.entry.js +0 -180
  427. package/dist/esm/resources-221791b0.js +0 -26
  428. package/dist/solutions-components/p-0200864c.entry.js +0 -11
  429. package/dist/solutions-components/p-02fad071.entry.js +0 -6
  430. package/dist/solutions-components/p-166d5bcc.entry.js +0 -6
  431. package/dist/solutions-components/p-1711c535.entry.js +0 -6
  432. package/dist/solutions-components/p-1f88a556.entry.js +0 -6
  433. package/dist/solutions-components/p-2ddd9cf8.entry.js +0 -6
  434. package/dist/solutions-components/p-3cf20613.entry.js +0 -17
  435. package/dist/solutions-components/p-43546966.entry.js +0 -6
  436. package/dist/solutions-components/p-630e274b.entry.js +0 -6
  437. package/dist/solutions-components/p-6b943f52.js +0 -21
  438. package/dist/solutions-components/p-704da348.entry.js +0 -6
  439. package/dist/solutions-components/p-79f95735.entry.js +0 -11
  440. package/dist/solutions-components/p-7f333e23.js +0 -11
  441. package/dist/solutions-components/p-897037f0.entry.js +0 -6
  442. package/dist/solutions-components/p-8c7fc78f.entry.js +0 -11
  443. package/dist/solutions-components/p-941ab8c0.js +0 -6
  444. package/dist/solutions-components/p-96974e5f.js +0 -6
  445. package/dist/solutions-components/p-a32b61ee.entry.js +0 -6
  446. package/dist/solutions-components/p-ad9fbb2a.entry.js +0 -6
  447. package/dist/solutions-components/p-c252997f.entry.js +0 -17
  448. package/dist/solutions-components/p-c5db42ad.entry.js +0 -6
  449. package/dist/solutions-components/p-d3085b7a.entry.js +0 -6
  450. package/dist/solutions-components/p-e89c5860.entry.js +0 -6
  451. package/dist/solutions-components/p-eb9b003a.entry.js +0 -11
@@ -3,160 +3,138 @@
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, h, H as Host, g as getElement, c as createEvent } from './index-7183ce4a.js';
6
+ import { r as registerInstance, c as createEvent, h, H as Host, g as getElement } from './index-7183ce4a.js';
7
+ import { g as getLocaleComponentStrings } from './locale-13e3c96c.js';
7
8
  import { l as loadModules } from './loadModules-cea493da.js';
8
- import { g as getLocaleComponentStrings } from './locale-834c52c6.js';
9
+ import { P as PopupUtils } from './popupUtils-b71f30fc.js';
9
10
  import './esri-loader-eda07632.js';
10
11
  import './_commonjsHelpers-d5f9d613.js';
11
12
 
12
- const basemapGalleryCss = ":host{display:block}";
13
+ 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}";
13
14
 
14
- const BasemapGallery = class {
15
+ const InfoCard = class {
15
16
  constructor(hostRef) {
16
17
  registerInstance(this, hostRef);
18
+ this.popupClosed = createEvent(this, "popupClosed", 7);
19
+ this.selectionChanged = createEvent(this, "selectionChanged", 7);
20
+ this.graphics = undefined;
21
+ this.isLoading = false;
22
+ this.isMobile = undefined;
17
23
  this.mapView = undefined;
18
- this.basemapConfig = undefined;
19
- this.basemapWidget = undefined;
24
+ this.zoomAndScrollToSelected = undefined;
25
+ this.allowEditing = true;
26
+ this._alertOpen = false;
27
+ this._count = "";
28
+ this._editRecordOpen = false;
29
+ this._mobileTitle = "";
30
+ this._showListView = false;
31
+ this._translations = undefined;
20
32
  }
21
33
  //--------------------------------------------------------------------------
22
34
  //
23
35
  // Watch handlers
24
36
  //
25
37
  //--------------------------------------------------------------------------
26
- async mapViewWatchHandler() {
27
- await this.mapView.when(() => {
28
- void this._initBaseMapGallery(this.mapView);
29
- });
30
- }
31
- //--------------------------------------------------------------------------
32
- //
33
- // Methods (public)
34
- //
35
- //--------------------------------------------------------------------------
36
- //--------------------------------------------------------------------------
37
- //
38
- // Events (public)
39
- //
40
- //--------------------------------------------------------------------------
41
- //--------------------------------------------------------------------------
42
- //
43
- // Functions (lifecycle)
44
- //
45
- //--------------------------------------------------------------------------
46
38
  /**
47
- * StencilJS: Called once just after the component is first connected to the DOM.
39
+ * Watch for changes to the graphic and update the feature widget
48
40
  */
49
- async componentWillLoad() {
50
- return this._initModules();
41
+ async graphicsWatchHandler() {
42
+ await this.setGraphics();
51
43
  }
52
44
  /**
53
- * StencilJS: Renders the component.
45
+ * Watch for changes to the isMobile prop then init the Features widget
46
+ * We need to know if the title should be displayed by the widget (non mobile)
47
+ * or by us (mobile)
54
48
  */
55
- render() {
56
- return (h(Host, null, h("div", { ref: (el) => { this._basemapElement = el; } })));
49
+ async isMobileWatchHandler() {
50
+ await this._initFeaturesWidget();
57
51
  }
58
52
  /**
59
- * StencilJS: Called once just after the component is fully loaded and the first render() occurs.
53
+ * Watch for changes to the mapView and re-init the Feature widget
60
54
  */
61
- async componentDidLoad() {
62
- if (this.mapView) {
63
- await this.mapViewWatchHandler();
64
- }
55
+ async mapViewWatchHandler() {
56
+ return await this._initFeaturesWidget();
65
57
  }
66
58
  //--------------------------------------------------------------------------
67
59
  //
68
- // Functions (protected)
60
+ // Methods (public)
69
61
  //
70
62
  //--------------------------------------------------------------------------
71
63
  /**
72
- * Load esri javascript api modules
73
- *
74
- * @returns Promise resolving when function is done
64
+ * Get the current selected feature from the Features widget
75
65
  *
76
- * @protected
66
+ * @returns Promise resolving with the current feature
77
67
  */
78
- async _initModules() {
79
- const [BasemapGallery, PortalBasemapsSource] = await loadModules([
80
- "esri/widgets/BasemapGallery",
81
- "esri/widgets/BasemapGallery/support/PortalBasemapsSource"
82
- ]);
83
- this.BasemapGallery = BasemapGallery;
84
- this.PortalBasemapsSource = PortalBasemapsSource;
68
+ async getSelectedFeature() {
69
+ return this._features.selectedFeature;
85
70
  }
86
71
  /**
87
- * Initialize the basemap gallery or reset the current view if it already exists
72
+ * Respond to and close the edit record display
88
73
  *
89
- * @protected
74
+ * @returns a promise when the operation has completed
90
75
  */
91
- async _initBaseMapGallery(view) {
76
+ async closeEdit() {
77
+ this._editRecordOpen = false;
78
+ }
79
+ /**
80
+ * Reset key properties when the layer selection changes
81
+ */
82
+ async layerSelectionChange() {
92
83
  var _a;
93
- if (this.BasemapGallery) {
94
- if (this.basemapWidget) {
95
- this.basemapWidget.destroy();
96
- }
97
- const source = new this.PortalBasemapsSource({
98
- query: ((_a = this.basemapConfig) === null || _a === void 0 ? void 0 : _a.basemapGroupId) ? `id:${this.basemapConfig.basemapGroupId}` : null,
99
- filterFunction: this.basemapConfig ? (basemap) => {
100
- return !this.basemapConfig.basemapIdsToFilter.includes(basemap.portalItem.id);
101
- } : () => true
102
- });
103
- await source.refresh();
104
- this.basemapWidget = new this.BasemapGallery({
105
- container: this._basemapElement,
106
- view,
107
- source
108
- });
84
+ this._showListView = false;
85
+ if ((_a = this._features) === null || _a === void 0 ? void 0 : _a.viewModel) {
86
+ this._features.viewModel.featureMenuOpen = false;
87
+ this._features.close();
109
88
  }
110
89
  }
111
- get el() { return getElement(this); }
112
- static get watchers() { return {
113
- "mapView": ["mapViewWatchHandler"]
114
- }; }
115
- };
116
- BasemapGallery.style = basemapGalleryCss;
117
-
118
- const floorFilterCss = ":host{display:block}";
119
-
120
- const FloorFilter = class {
121
- constructor(hostRef) {
122
- registerInstance(this, hostRef);
123
- this.enabled = undefined;
124
- this.floorFilterWidget = undefined;
125
- this.mapView = undefined;
126
- }
127
- //--------------------------------------------------------------------------
128
- //
129
- // Watch handlers
130
- //
131
- //--------------------------------------------------------------------------
132
- async mapViewWatchHandler() {
133
- await this.mapView.when(() => {
134
- this._initFloorFilter(this.mapView);
135
- });
90
+ /**
91
+ * Refresh the info-card graphics
92
+ */
93
+ async refreshGraphics(evt) {
94
+ this.graphics = [...evt.detail];
136
95
  }
137
96
  //--------------------------------------------------------------------------
138
97
  //
139
- // Methods (public)
140
- //
141
- //--------------------------------------------------------------------------
142
- //--------------------------------------------------------------------------
143
- //
144
- // Events (public)
145
- //
146
- //--------------------------------------------------------------------------
147
- //--------------------------------------------------------------------------
148
- //
149
98
  // Functions (lifecycle)
150
99
  //
151
100
  //--------------------------------------------------------------------------
152
101
  /**
153
102
  * StencilJS: Called once just after the component is first connected to the DOM.
103
+ *
104
+ * @returns Promise when complete
154
105
  */
155
106
  async componentWillLoad() {
156
- return this._initModules();
107
+ await this._initModules();
108
+ await this._getTranslations();
109
+ this._popupUtils = new PopupUtils();
110
+ }
111
+ /**
112
+ * StencilJS: Called once just after the component is fully loaded and the first render() occurs.
113
+ * @returns Promise when complete
114
+ */
115
+ async componentDidLoad() {
116
+ var _a;
117
+ if (((_a = this.graphics) === null || _a === void 0 ? void 0 : _a.length) > 0) {
118
+ await this.setGraphics();
119
+ }
157
120
  }
121
+ /**
122
+ * Renders the component.
123
+ */
158
124
  render() {
159
- return (h(Host, null, h("div", { ref: (el) => { this._floorFilterElement = el; } })));
125
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j;
126
+ const loadingClass = this.isLoading ? "" : "display-none";
127
+ const featureNodeClass = this.isLoading || this._editRecordOpen ? "visibility-hidden" : "position-absolute";
128
+ const editClass = !this.isLoading && this._editRecordOpen ? "position-absolute" : "display-none";
129
+ const editButtonClass = (!this.isLoading && this._editRecordOpen) || this._showListView ? "display-none" : "";
130
+ const nextBackDisabled = ((_b = (_a = this._features) === null || _a === void 0 ? void 0 : _a.features) === null || _b === void 0 ? void 0 : _b.length) < 2;
131
+ const nextBackClass = this.isMobile ? "display-none" : "";
132
+ const shellClass = this.isMobile && !this._editRecordOpen ? "padding-top-46" : "";
133
+ const id = (_d = (_c = this._features) === null || _c === void 0 ? void 0 : _c.selectedFeature) === null || _d === void 0 ? void 0 : _d.getObjectId();
134
+ const ids = parseInt(id === null || id === void 0 ? void 0 : id.toString(), 10) > -1 ? [id] : [];
135
+ 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);
136
+ return (h(Host, null, this.isMobile && !this._editRecordOpen ? (h("calcite-panel", null, h("calcite-action", { class: "end-border", icon: "chevron-left", iconFlipRtl: true, onClick: () => this._closePopup(), scale: "s", slot: "header-actions-start", text: "" }), h("span", { class: "font-bold", slot: "header-content" }, this._mobileTitle))) : undefined, h("calcite-shell", { class: shellClass }, h("calcite-loader", { class: loadingClass, label: this._translations.fetchingData }), h("div", { class: "esri-widget " + featureNodeClass, id: "features-node" }), h("div", { class: `${editButtonClass} width-100`, slot: "footer" }, this.allowEditing &&
137
+ h("div", { class: "display-flex top-border padding-1-2" }, h("calcite-button", { appearance: "solid", id: "solutions-edit", onClick: () => this._openEditRecord(), width: "full" }, this._translations.edit), this.isMobile && deleteEnabled ? (h("delete-button", { class: "padding-inline-start-1 width-100", id: "solutions-delete", ids: ids, layer: this._layer, onEditsComplete: () => this._closePopup() })) : undefined, h("calcite-tooltip", { label: "", placement: "bottom", "reference-element": "solutions-edit" }, h("span", null, this._translations.edit)), this.isMobile ? (h("calcite-tooltip", { label: "", placement: "bottom", "reference-element": "solutions-delete" }, h("span", null, this._translations.delete))) : undefined), !nextBackDisabled && h("div", { class: `display-flex padding-1-2 button-container top-border ${nextBackClass}` }, h("div", { class: "min-width-100" }, h("calcite-button", { appearance: "outline", disabled: nextBackDisabled, id: "solutions-back", onClick: () => this._back(), width: "full" }, this._translations.back), h("calcite-tooltip", { label: "", placement: "top", "reference-element": "solutions-back" }, h("span", null, this._translations.back))), h("div", null, h("calcite-action", { icon: "list", onClick: () => this._toggleListView(), scale: "s", text: this._count, textEnabled: true })), h("div", { class: "min-width-100" }, h("calcite-button", { appearance: "outline", disabled: nextBackDisabled, id: "solutions-next", onClick: () => this._next(), width: "full" }, this._translations.next), h("calcite-tooltip", { label: "", placement: "top", "reference-element": "solutions-next" }, h("span", null, this._translations.next))))), 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 }), h("calcite-alert", { icon: "layer-broken", kind: "warning", label: "", onCalciteAlertClose: () => this._alertClosed(), open: this._alertOpen, placement: "top" }, h("div", { slot: "title" }, this._translations.editDisabled), h("div", { slot: "message" }, this._translations.enableEditing)))));
160
138
  }
161
139
  //--------------------------------------------------------------------------
162
140
  //
@@ -171,164 +149,215 @@ const FloorFilter = class {
171
149
  * @protected
172
150
  */
173
151
  async _initModules() {
174
- const [FloorFilter] = await loadModules([
175
- "esri/widgets/FloorFilter"
152
+ const [Features, reactiveUtils] = await loadModules([
153
+ "esri/widgets/Features",
154
+ "esri/core/reactiveUtils"
176
155
  ]);
177
- this.FloorFilter = FloorFilter;
156
+ this.Features = Features;
157
+ this.reactiveUtils = reactiveUtils;
158
+ }
159
+ /**
160
+ * Initializes the features widget if not created and updates the feature widget and other required states
161
+ *
162
+ * @protected
163
+ */
164
+ async setGraphics() {
165
+ var _a;
166
+ if (!this._features) {
167
+ await this._initFeaturesWidget();
168
+ }
169
+ if (this.graphics.length > 0) {
170
+ this._layer = (_a = this.graphics[0]) === null || _a === void 0 ? void 0 : _a.layer;
171
+ this._editEnabled = this._layer.editingEnabled && this._layer.capabilities.operations.supportsUpdate;
172
+ this._mobileTitle = await this._popupUtils.getPopupTitle(this.graphics[0]);
173
+ this._features.open({
174
+ features: this.graphics
175
+ });
176
+ }
177
+ else {
178
+ this._features.clear();
179
+ this._features.close();
180
+ }
181
+ this._count = this._getCount();
178
182
  }
179
183
  /**
180
- * Initialize the floor filter or reset the current view if it already exists
184
+ * Init the Feature widget so we can display the popup content
185
+ *
186
+ * @returns a promise when the operation has completed
187
+ *
188
+ * @protected
181
189
  */
182
- _initFloorFilter(view) {
190
+ async _initFeaturesWidget() {
183
191
  var _a;
184
- if (view && this.enabled && this.FloorFilter && ((_a = view === null || view === void 0 ? void 0 : view.map) === null || _a === void 0 ? void 0 : _a.floorInfo)) {
185
- if (!this.floorFilterWidget) {
186
- this.floorFilterWidget = new this.FloorFilter({
187
- container: this._floorFilterElement,
188
- view
192
+ return this.isMobile !== undefined ? await ((_a = this.mapView) === null || _a === void 0 ? void 0 : _a.when(() => {
193
+ if (!this._features) {
194
+ this._features = new this.Features({
195
+ view: this.mapView,
196
+ container: "features-node",
197
+ visibleElements: {
198
+ actionBar: false,
199
+ closeButton: false,
200
+ heading: !this.isMobile
201
+ }
202
+ });
203
+ this.reactiveUtils.watch(() => this._features.viewModel.featureMenuOpen, (isOpen) => {
204
+ if (!isOpen) {
205
+ this._showListView = isOpen;
206
+ }
189
207
  });
208
+ if (this.zoomAndScrollToSelected) {
209
+ this.reactiveUtils.watch(() => this._features.selectedFeatureIndex, (i) => {
210
+ if (i > -1) {
211
+ this.selectionChanged.emit([this._features.selectedFeature]);
212
+ }
213
+ });
214
+ }
190
215
  }
191
216
  else {
192
- this.floorFilterWidget.view = view;
217
+ this._features.view = this.mapView;
218
+ this._features.visibleElements.actionBar = false;
219
+ this._features.visibleElements.closeButton = false;
220
+ this._features.visibleElements.heading = !this.isMobile;
193
221
  }
194
- }
222
+ })) : Promise.resolve();
195
223
  }
196
- get el() { return getElement(this); }
197
- static get watchers() { return {
198
- "mapView": ["mapViewWatchHandler"]
199
- }; }
200
- };
201
- FloorFilter.style = floorFilterCss;
202
-
203
- const mapFullscreenCss = ":host{display:block}";
204
-
205
- const MapFullscreen = class {
206
- constructor(hostRef) {
207
- registerInstance(this, hostRef);
208
- this.fullscreenStateChange = createEvent(this, "fullscreenStateChange", 7);
209
- this.mapView = undefined;
210
- this.fullscreenWidget = undefined;
211
- }
212
- //--------------------------------------------------------------------------
213
- //
214
- // Watch handlers
215
- //
216
- //--------------------------------------------------------------------------
217
224
  /**
218
- * Called each time the mapView prop is changed.
219
- *
220
- * @returns Promise when complete
225
+ * Close the popup and emit the selected features
221
226
  */
222
- async mapViewWatchHandler() {
223
- await this.mapView.when(async () => {
224
- await this._initFullscreenWidget();
225
- });
227
+ _closePopup() {
228
+ this.popupClosed.emit();
226
229
  }
227
- //--------------------------------------------------------------------------
228
- //
229
- // Functions (lifecycle)
230
- //
231
- //--------------------------------------------------------------------------
232
230
  /**
233
- * StencilJS: Called once just after the component is first connected to the DOM.
231
+ * Set the alertOpen member to false when the alert is closed
234
232
  */
235
- async componentWillLoad() {
236
- await this._initModules();
233
+ _alertClosed() {
234
+ this._alertOpen = false;
237
235
  }
238
236
  /**
239
- * Renders the component.
237
+ * Open the edit record
240
238
  */
241
- render() {
242
- return (h(Host, null, h("div", { class: "fullscreen-widget", ref: (el) => { this._fullscreenElement = el; } })));
239
+ _openEditRecord() {
240
+ if (this._editEnabled) {
241
+ this._editRecordOpen = true;
242
+ }
243
+ else {
244
+ this._alertOpen = true;
245
+ }
243
246
  }
244
247
  /**
245
- * StencilJS: Called just after the component updates.
246
- * It's never called during the first render().
248
+ * Go to the previous feature in the features widget
247
249
  */
248
- async componentDidUpdate() {
249
- await this._initFullscreenWidget();
250
+ _back() {
251
+ this._features.previous();
252
+ this._count = this._getCount();
250
253
  }
251
254
  /**
252
- * StencilJS: Called once just after the component is fully loaded and the first render() occurs.
255
+ * Go to the next feature in the features widget
253
256
  */
254
- async componentDidLoad() {
255
- await this._initFullscreenWidget();
257
+ _next() {
258
+ this._features.next();
259
+ this._count = this._getCount();
256
260
  }
257
- //--------------------------------------------------------------------------
258
- //
259
- // Functions (protected)
260
- //
261
- //--------------------------------------------------------------------------
262
261
  /**
263
- * Load esri javascript api modules
262
+ * Get the current index of total string
264
263
  *
265
- * @returns Promise resolving when function is done
266
- *
267
- * @protected
264
+ * @returns the index of total string
268
265
  */
269
- async _initModules() {
270
- const [Fullscreen, reactiveUtils] = await loadModules([
271
- "esri/widgets/Fullscreen",
272
- "esri/core/reactiveUtils"
273
- ]);
274
- this.Fullscreen = Fullscreen;
275
- this.reactiveUtils = reactiveUtils;
266
+ _getCount() {
267
+ var _a, _b, _c;
268
+ const index = (((_a = this._features) === null || _a === void 0 ? void 0 : _a.viewModel.selectedFeatureIndex) + 1).toString();
269
+ const total = (_c = (_b = this._features) === null || _b === void 0 ? void 0 : _b.features) === null || _c === void 0 ? void 0 : _c.length.toString();
270
+ return this._translations.indexOfTotal
271
+ .replace("{{index}}", index)
272
+ .replace("{{total}}", total);
273
+ }
274
+ /**
275
+ * Toggle the visibility of the features list view
276
+ */
277
+ _toggleListView() {
278
+ this._showListView = !this._showListView;
279
+ const i = this._features.selectedFeatureIndex;
280
+ this._features.open({
281
+ features: this.graphics,
282
+ featureMenuOpen: this._showListView
283
+ });
284
+ this._features.selectedFeatureIndex = i;
276
285
  }
277
286
  /**
278
- * Initialize the search widget
287
+ * Fetches the component's translations
279
288
  *
289
+ * @returns Promise when complete
280
290
  * @protected
281
291
  */
282
- async _initFullscreenWidget() {
283
- if (this.mapView && this._fullscreenElement && !this.fullscreenWidget) {
284
- this.fullscreenWidget = new this.Fullscreen({
285
- view: this.mapView
286
- });
287
- await this.fullscreenWidget.when(() => {
288
- if (this._fullscreenStateChangeHandle) {
289
- this._fullscreenStateChangeHandle.remove();
290
- }
291
- this._fullscreenStateChangeHandle = this.reactiveUtils.watch(() => this.fullscreenWidget.viewModel.state, (state) => this.fullscreenStateChange.emit(state));
292
- });
293
- }
294
- else if (this.fullscreenWidget) {
295
- this.fullscreenWidget.view = this.mapView;
296
- }
292
+ async _getTranslations() {
293
+ const messages = await getLocaleComponentStrings(this.el);
294
+ this._translations = messages[0];
297
295
  }
296
+ get el() { return getElement(this); }
298
297
  static get watchers() { return {
298
+ "graphics": ["graphicsWatchHandler"],
299
+ "isMobile": ["isMobileWatchHandler"],
299
300
  "mapView": ["mapViewWatchHandler"]
300
301
  }; }
301
302
  };
302
- MapFullscreen.style = mapFullscreenCss;
303
+ InfoCard.style = infoCardCss;
303
304
 
304
- const mapLegendCss = ":host{display:block}";
305
+ 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{visibility:hidden}.display-none{display:none}";
305
306
 
306
- const MapLegend = class {
307
+ const MapCard = class {
307
308
  constructor(hostRef) {
308
309
  registerInstance(this, hostRef);
310
+ this.mapChanged = createEvent(this, "mapChanged", 7);
311
+ this.beforeMapChanged = createEvent(this, "beforeMapChanged", 7);
312
+ /**
313
+ * boolean: When true the default map provided via url params has been loaded and should no longer override other maps
314
+ */
315
+ this._defaultWebmapHonored = false;
316
+ /**
317
+ * string: the id of map currently displayed
318
+ */
319
+ this._loadedId = "";
320
+ this.defaultWebmapId = "";
321
+ this.enableHome = undefined;
322
+ this.enableLegend = undefined;
323
+ this.enableFloorFilter = undefined;
324
+ this.enableFullscreen = undefined;
325
+ this.enableSingleExpand = true;
326
+ this.enableSearch = undefined;
327
+ this.enableBasemap = undefined;
328
+ this.basemapConfig = undefined;
329
+ this.hidden = undefined;
330
+ this.homeZoomIndex = 3;
331
+ this.homeZoomPosition = "top-left";
332
+ this.homeZoomToolsSize = "m";
333
+ this.mapInfos = [];
334
+ this.mapWidgetsIndex = 0;
335
+ this.mapWidgetsPosition = "top-right";
336
+ this.mapWidgetsSize = "m";
309
337
  this.mapView = undefined;
310
- this.legendWidget = undefined;
338
+ this.stackTools = true;
339
+ this.theme = undefined;
340
+ this.toolOrder = undefined;
341
+ this._searchConfiguration = undefined;
342
+ this._webMapInfo = undefined;
311
343
  }
312
344
  //--------------------------------------------------------------------------
313
345
  //
314
346
  // Watch handlers
315
347
  //
316
348
  //--------------------------------------------------------------------------
317
- async mapViewWatchHandler() {
318
- await this.mapView.when(() => {
319
- this._initLegend(this.mapView);
320
- });
349
+ /**
350
+ * Add/remove home widget
351
+ */
352
+ enableHomeWatchHandler() {
353
+ this._initHome();
354
+ }
355
+ /**
356
+ * Listen for changes to map info and load the appropriate map
357
+ */
358
+ async mapInfoChange(evt) {
359
+ await this._loadMap(evt.detail);
321
360
  }
322
- //--------------------------------------------------------------------------
323
- //
324
- // Methods (public)
325
- //
326
- //--------------------------------------------------------------------------
327
- //--------------------------------------------------------------------------
328
- //
329
- // Events (public)
330
- //
331
- //--------------------------------------------------------------------------
332
361
  //--------------------------------------------------------------------------
333
362
  //
334
363
  // Functions (lifecycle)
@@ -338,21 +367,18 @@ const MapLegend = class {
338
367
  * StencilJS: Called once just after the component is first connected to the DOM.
339
368
  */
340
369
  async componentWillLoad() {
341
- return this._initModules();
370
+ await this._initModules();
342
371
  }
343
372
  /**
344
- * StencilJS: Renders the component.
373
+ * Renders the component.
345
374
  */
346
375
  render() {
347
- return (h(Host, null, h("div", { ref: (el) => { this._legendElement = el; } })));
348
- }
349
- /**
350
- * StencilJS: Called once just after the component is fully loaded and the first render() occurs.
351
- */
352
- async componentDidLoad() {
353
- if (this.mapView) {
354
- await this.mapViewWatchHandler();
355
- }
376
+ var _a, _b;
377
+ const mapClass = this.hidden ? "visibility-hidden" : "";
378
+ const themeClass = this.theme === "dark" ? "calcite-mode-dark" : "calcite-mode-light";
379
+ const mapPickerClass = ((_a = this.mapInfos) === null || _a === void 0 ? void 0 : _a.length) > 1 ? "" : "display-none";
380
+ const mapHeightClass = ((_b = this.mapInfos) === null || _b === void 0 ? void 0 : _b.length) > 1 ? "map-height" : "height-full";
381
+ return (h(Host, null, h("map-picker", { class: mapPickerClass, mapInfos: this.mapInfos, ref: (el) => this._mapPicker = el }), h("div", { class: `${mapHeightClass} ${mapClass}`, ref: (el) => (this._mapDiv = el) }), h("map-tools", { 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 })));
356
382
  }
357
383
  //--------------------------------------------------------------------------
358
384
  //
@@ -367,33 +393,91 @@ const MapLegend = class {
367
393
  * @protected
368
394
  */
369
395
  async _initModules() {
370
- const [Legend] = await loadModules([
371
- "esri/widgets/Legend"
396
+ const [WebMap, MapView, Home] = await loadModules([
397
+ "esri/WebMap",
398
+ "esri/views/MapView",
399
+ "esri/widgets/Home"
372
400
  ]);
373
- this.Legend = Legend;
401
+ this.WebMap = WebMap;
402
+ this.MapView = MapView;
403
+ this.Home = Home;
374
404
  }
375
405
  /**
376
- * Initialize the basemap gallery or reset the current view if it already exists
406
+ * Load the webmap for the provided webMapInfo
407
+ *
408
+ * @param webMapInfo the webmap id and name to load
377
409
  */
378
- _initLegend(view) {
379
- if (view && this.Legend) {
380
- if (!this.legendWidget) {
381
- this.legendWidget = new this.Legend({
382
- container: this._legendElement,
383
- view
410
+ async _loadMap(webMapInfo) {
411
+ var _a;
412
+ // on the first render use the default webmap id if provided otherwise use the first child of the provided mapInfos
413
+ const loadDefaultMap = !this._defaultWebmapHonored && this.defaultWebmapId;
414
+ const defaultMap = (_a = this.mapInfos) === null || _a === void 0 ? void 0 : _a.filter(i => i.id === this.defaultWebmapId);
415
+ const mapConfigChanged = JSON.stringify(webMapInfo) !== JSON.stringify(this._webMapInfo);
416
+ this._webMapInfo = loadDefaultMap && defaultMap ? defaultMap[0] :
417
+ !(webMapInfo === null || webMapInfo === void 0 ? void 0 : webMapInfo.id) && this.mapInfos.length > 0 ? this.mapInfos[0] : webMapInfo;
418
+ const id = this._webMapInfo.id;
419
+ const isDefaultMap = loadDefaultMap && (webMapInfo === null || webMapInfo === void 0 ? void 0 : webMapInfo.id) === this.defaultWebmapId;
420
+ if ((this._loadedId !== id && !loadDefaultMap) || isDefaultMap) {
421
+ const webMap = new this.WebMap({
422
+ portalItem: { id }
423
+ });
424
+ this.mapView = new this.MapView({
425
+ container: this._mapDiv,
426
+ map: webMap,
427
+ resizeAlign: "center"
428
+ });
429
+ this._loadedId = id;
430
+ this._searchConfiguration = this._webMapInfo.searchConfiguration;
431
+ this.beforeMapChanged.emit();
432
+ await this.mapView.when(() => {
433
+ this._initHome();
434
+ this.mapView.ui.add(this._mapTools, { position: this.mapWidgetsPosition, index: this.mapWidgetsIndex });
435
+ this._defaultWebmapHonored = isDefaultMap ? true : this._defaultWebmapHonored;
436
+ this.mapChanged.emit({
437
+ id: id,
438
+ mapView: this.mapView
384
439
  });
385
- }
386
- else {
387
- this.legendWidget.view = view;
388
- }
440
+ });
441
+ }
442
+ else if (loadDefaultMap) {
443
+ this._defaultWebmapHonored = true;
444
+ this._mapPicker.setMapByID(id);
445
+ }
446
+ else if (mapConfigChanged) {
447
+ // Map is the same so no need to reload but we need to update for any changes from the config
448
+ this._searchConfiguration = this._webMapInfo.searchConfiguration;
449
+ this.beforeMapChanged.emit();
450
+ this.mapChanged.emit({
451
+ id: id,
452
+ mapView: this.mapView
453
+ });
454
+ }
455
+ }
456
+ /**
457
+ * Add/remove the home widget base on enableHome prop
458
+ *
459
+ * @protected
460
+ */
461
+ _initHome() {
462
+ if (this.enableHome) {
463
+ this._homeWidget = new this.Home({
464
+ view: this.mapView
465
+ });
466
+ this.mapView.ui.add(this._homeWidget, { position: this.homeZoomPosition, index: this.homeZoomIndex });
467
+ const size = this.homeZoomToolsSize === "s" ? "32px" : this.homeZoomToolsSize === "m" ? "40px" : "48px";
468
+ this._homeWidget.domNode.style.height = size;
469
+ this._homeWidget.domNode.style.width = size;
470
+ }
471
+ else if (this._homeWidget) {
472
+ this.mapView.ui.remove(this._homeWidget);
389
473
  }
390
474
  }
391
475
  get el() { return getElement(this); }
392
476
  static get watchers() { return {
393
- "mapView": ["mapViewWatchHandler"]
477
+ "enableHome": ["enableHomeWatchHandler"]
394
478
  }; }
395
479
  };
396
- MapLegend.style = mapLegendCss;
480
+ MapCard.style = mapCardCss;
397
481
 
398
482
  const mapPickerCss = ":host{display:block;--solutions-theme-foreground-color:var(--calcite-color-foreground-1)}.width-full{width:100%}.height-full{height:100%}.display-flex{display:flex}.border-bottom-1{border-width:0px;border-bottom-width:1px;border-style:solid;border-color:var(--calcite-color-border-3)}.action-bar-size{height:51px;width:100%}.map-list{position:absolute;display:flex;flex-direction:column;overflow:hidden;animation:calcite-scrim-fade-in var(--calcite-internal-animation-timing-medium) ease-in-out;background-color:var(--calcite-color-background);z-index:1000;width:100%;height:-moz-fit-content;height:fit-content}.display-none{display:none}.align-center{align-items:center}";
399
483
 
@@ -553,175 +637,6 @@ const MapPicker = class {
553
637
  };
554
638
  MapPicker.style = mapPickerCss;
555
639
 
556
- const mapSearchCss = ":host{display:block}.search-widget{width:100% !important;border:1px solid var(--calcite-color-border-input)}";
557
-
558
- const MapSearch = class {
559
- constructor(hostRef) {
560
- registerInstance(this, hostRef);
561
- this.mapView = undefined;
562
- this.popupEnabled = false;
563
- this.resultGraphicEnabled = false;
564
- this.searchConfiguration = undefined;
565
- this.searchTerm = undefined;
566
- this.searchWidget = undefined;
567
- }
568
- //--------------------------------------------------------------------------
569
- //
570
- // Watch handlers
571
- //
572
- //--------------------------------------------------------------------------
573
- /**
574
- * Called each time the searchConfiguration prop is changed.
575
- *
576
- * @returns Promise when complete
577
- */
578
- async watchSearchConfigurationHandler() {
579
- this._initSearchWidget();
580
- }
581
- /**
582
- * Called each time the mapView prop is changed.
583
- *
584
- * @returns Promise when complete
585
- */
586
- async mapViewWatchHandler() {
587
- await this.mapView.when(() => {
588
- this._initSearchWidget();
589
- });
590
- }
591
- //--------------------------------------------------------------------------
592
- //
593
- // Methods (public)
594
- //
595
- //--------------------------------------------------------------------------
596
- //--------------------------------------------------------------------------
597
- //
598
- // Events (public)
599
- //
600
- //--------------------------------------------------------------------------
601
- //--------------------------------------------------------------------------
602
- //
603
- // Functions (lifecycle)
604
- //
605
- //--------------------------------------------------------------------------
606
- /**
607
- * StencilJS: Called once just after the component is first connected to the DOM.
608
- */
609
- async componentWillLoad() {
610
- await this._initModules();
611
- }
612
- /**
613
- * StencilJS: Called once just after the component is fully loaded and the first render() occurs.
614
- */
615
- async componentDidLoad() {
616
- return this._initSearchWidget();
617
- }
618
- /**
619
- * Renders the component.
620
- */
621
- render() {
622
- return (h(Host, null, h("div", { class: "search-widget", ref: (el) => { this._searchElement = el; } })));
623
- }
624
- //--------------------------------------------------------------------------
625
- //
626
- // Functions (protected)
627
- //
628
- //--------------------------------------------------------------------------
629
- /**
630
- * Load esri javascript api modules
631
- *
632
- * @returns Promise resolving when function is done
633
- *
634
- * @protected
635
- */
636
- async _initModules() {
637
- const [Search, FeatureLayer] = await loadModules([
638
- "esri/widgets/Search",
639
- "esri/layers/FeatureLayer"
640
- ]);
641
- this.Search = Search;
642
- this.FeatureLayer = FeatureLayer;
643
- }
644
- /**
645
- * Initialize the search widget
646
- *
647
- * @protected
648
- */
649
- _initSearchWidget() {
650
- if (this.mapView && this._searchElement && !this.searchWidget) {
651
- let searchOptions = {
652
- view: this.mapView,
653
- container: this._searchElement,
654
- searchTerm: this.searchTerm
655
- };
656
- if (this.searchConfiguration) {
657
- const searchConfiguration = this._getSearchConfig(this.searchConfiguration, this.mapView);
658
- searchOptions = Object.assign({}, searchConfiguration);
659
- }
660
- this.searchWidget = new this.Search(searchOptions);
661
- this.searchWidget.popupEnabled = this.popupEnabled;
662
- this.searchWidget.resultGraphicEnabled = this.resultGraphicEnabled;
663
- }
664
- else {
665
- if (this.searchWidget) {
666
- this.searchWidget.view = this.mapView;
667
- }
668
- }
669
- }
670
- /**
671
- * Initialize the search widget based on user defined configuration
672
- *
673
- * @param searchConfiguration search configuration defined by the user
674
- * @param view the current map view
675
- *
676
- * @protected
677
- */
678
- _getSearchConfig(searchConfiguration, view) {
679
- const INCLUDE_DEFAULT_SOURCES = "includeDefaultSources";
680
- const sources = searchConfiguration.sources;
681
- if ((sources === null || sources === void 0 ? void 0 : sources.length) > 0) {
682
- searchConfiguration[INCLUDE_DEFAULT_SOURCES] = false;
683
- sources.forEach((source) => {
684
- var _a, _b;
685
- const isLayerSource = source.hasOwnProperty("layer");
686
- if (isLayerSource) {
687
- const layerSource = source;
688
- const layerId = (_a = layerSource.layer) === null || _a === void 0 ? void 0 : _a.id;
689
- const layerFromMap = layerId ? view.map.findLayerById(layerId) : null;
690
- const layerUrl = (_b = layerSource === null || layerSource === void 0 ? void 0 : layerSource.layer) === null || _b === void 0 ? void 0 : _b.url;
691
- if (layerFromMap) {
692
- layerSource.layer = layerFromMap;
693
- }
694
- else if (layerUrl) {
695
- layerSource.layer = new this.FeatureLayer(layerUrl);
696
- }
697
- }
698
- });
699
- sources === null || sources === void 0 ? void 0 : sources.forEach((source) => {
700
- const isLocatorSource = source.hasOwnProperty("locator");
701
- if (isLocatorSource) {
702
- const locatorSource = source;
703
- if ((locatorSource === null || locatorSource === void 0 ? void 0 : locatorSource.name) === "ArcGIS World Geocoding Service") {
704
- const outFields = locatorSource.outFields || ["Addr_type", "Match_addr", "StAddr", "City"];
705
- locatorSource.outFields = outFields;
706
- locatorSource.singleLineFieldName = "SingleLine";
707
- }
708
- locatorSource.url = locatorSource.url;
709
- delete locatorSource.url;
710
- }
711
- });
712
- }
713
- else {
714
- searchConfiguration = Object.assign(Object.assign({}, searchConfiguration), { includeDefaultSources: true });
715
- }
716
- return searchConfiguration;
717
- }
718
- static get watchers() { return {
719
- "searchConfiguration": ["watchSearchConfigurationHandler"],
720
- "mapView": ["mapViewWatchHandler"]
721
- }; }
722
- };
723
- MapSearch.style = mapSearchCss;
724
-
725
640
  const mapToolsCss = ":host{display:block}.display-none{display:none}.margin-top-1-2{margin-top:0.5rem}.square-32{width:32px;height:32px}.square-40{width:40px;height:40px}.square-48{width:48px;height:48px}.width-40{width:40px}.square-40-41{width:40px;height:41px}.border-bottom{border-bottom:1px solid var(--calcite-color-border-3)}.box-shadow{box-shadow:0 1px 2px rgba(0, 0, 0, 0.3)}.margin-bottom-1-2{margin-bottom:0.5rem}";
726
641
 
727
642
  const MapTools = class {
@@ -1079,4 +994,4 @@ const MapTools = class {
1079
994
  };
1080
995
  MapTools.style = mapToolsCss;
1081
996
 
1082
- export { BasemapGallery as basemap_gallery, FloorFilter as floor_filter, MapFullscreen as map_fullscreen, MapLegend as map_legend, MapPicker as map_picker, MapSearch as map_search, MapTools as map_tools };
997
+ export { InfoCard as info_card, MapCard as map_card, MapPicker as map_picker, MapTools as map_tools };