@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
@@ -8,159 +8,137 @@
8
8
  Object.defineProperty(exports, '__esModule', { value: true });
9
9
 
10
10
  const index = require('./index-b8a649fc.js');
11
+ const locale = require('./locale-1ff119f5.js');
11
12
  const loadModules = require('./loadModules-46d14e81.js');
12
- const locale = require('./locale-9db09b63.js');
13
+ const popupUtils = require('./popupUtils-8d5b6e94.js');
13
14
  require('./esri-loader-a91c0ec1.js');
14
15
  require('./_commonjsHelpers-384729db.js');
15
16
 
16
- const basemapGalleryCss = ":host{display:block}";
17
+ 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}";
17
18
 
18
- const BasemapGallery = class {
19
+ const InfoCard = class {
19
20
  constructor(hostRef) {
20
21
  index.registerInstance(this, hostRef);
22
+ this.popupClosed = index.createEvent(this, "popupClosed", 7);
23
+ this.selectionChanged = index.createEvent(this, "selectionChanged", 7);
24
+ this.graphics = undefined;
25
+ this.isLoading = false;
26
+ this.isMobile = undefined;
21
27
  this.mapView = undefined;
22
- this.basemapConfig = undefined;
23
- this.basemapWidget = undefined;
28
+ this.zoomAndScrollToSelected = undefined;
29
+ this.allowEditing = true;
30
+ this._alertOpen = false;
31
+ this._count = "";
32
+ this._editRecordOpen = false;
33
+ this._mobileTitle = "";
34
+ this._showListView = false;
35
+ this._translations = undefined;
24
36
  }
25
37
  //--------------------------------------------------------------------------
26
38
  //
27
39
  // Watch handlers
28
40
  //
29
41
  //--------------------------------------------------------------------------
30
- async mapViewWatchHandler() {
31
- await this.mapView.when(() => {
32
- void this._initBaseMapGallery(this.mapView);
33
- });
34
- }
35
- //--------------------------------------------------------------------------
36
- //
37
- // Methods (public)
38
- //
39
- //--------------------------------------------------------------------------
40
- //--------------------------------------------------------------------------
41
- //
42
- // Events (public)
43
- //
44
- //--------------------------------------------------------------------------
45
- //--------------------------------------------------------------------------
46
- //
47
- // Functions (lifecycle)
48
- //
49
- //--------------------------------------------------------------------------
50
42
  /**
51
- * StencilJS: Called once just after the component is first connected to the DOM.
43
+ * Watch for changes to the graphic and update the feature widget
52
44
  */
53
- async componentWillLoad() {
54
- return this._initModules();
45
+ async graphicsWatchHandler() {
46
+ await this.setGraphics();
55
47
  }
56
48
  /**
57
- * StencilJS: Renders the component.
49
+ * Watch for changes to the isMobile prop then init the Features widget
50
+ * We need to know if the title should be displayed by the widget (non mobile)
51
+ * or by us (mobile)
58
52
  */
59
- render() {
60
- return (index.h(index.Host, null, index.h("div", { ref: (el) => { this._basemapElement = el; } })));
53
+ async isMobileWatchHandler() {
54
+ await this._initFeaturesWidget();
61
55
  }
62
56
  /**
63
- * StencilJS: Called once just after the component is fully loaded and the first render() occurs.
57
+ * Watch for changes to the mapView and re-init the Feature widget
64
58
  */
65
- async componentDidLoad() {
66
- if (this.mapView) {
67
- await this.mapViewWatchHandler();
68
- }
59
+ async mapViewWatchHandler() {
60
+ return await this._initFeaturesWidget();
69
61
  }
70
62
  //--------------------------------------------------------------------------
71
63
  //
72
- // Functions (protected)
64
+ // Methods (public)
73
65
  //
74
66
  //--------------------------------------------------------------------------
75
67
  /**
76
- * Load esri javascript api modules
77
- *
78
- * @returns Promise resolving when function is done
68
+ * Get the current selected feature from the Features widget
79
69
  *
80
- * @protected
70
+ * @returns Promise resolving with the current feature
81
71
  */
82
- async _initModules() {
83
- const [BasemapGallery, PortalBasemapsSource] = await loadModules.loadModules([
84
- "esri/widgets/BasemapGallery",
85
- "esri/widgets/BasemapGallery/support/PortalBasemapsSource"
86
- ]);
87
- this.BasemapGallery = BasemapGallery;
88
- this.PortalBasemapsSource = PortalBasemapsSource;
72
+ async getSelectedFeature() {
73
+ return this._features.selectedFeature;
89
74
  }
90
75
  /**
91
- * Initialize the basemap gallery or reset the current view if it already exists
76
+ * Respond to and close the edit record display
92
77
  *
93
- * @protected
78
+ * @returns a promise when the operation has completed
94
79
  */
95
- async _initBaseMapGallery(view) {
80
+ async closeEdit() {
81
+ this._editRecordOpen = false;
82
+ }
83
+ /**
84
+ * Reset key properties when the layer selection changes
85
+ */
86
+ async layerSelectionChange() {
96
87
  var _a;
97
- if (this.BasemapGallery) {
98
- if (this.basemapWidget) {
99
- this.basemapWidget.destroy();
100
- }
101
- const source = new this.PortalBasemapsSource({
102
- query: ((_a = this.basemapConfig) === null || _a === void 0 ? void 0 : _a.basemapGroupId) ? `id:${this.basemapConfig.basemapGroupId}` : null,
103
- filterFunction: this.basemapConfig ? (basemap) => {
104
- return !this.basemapConfig.basemapIdsToFilter.includes(basemap.portalItem.id);
105
- } : () => true
106
- });
107
- await source.refresh();
108
- this.basemapWidget = new this.BasemapGallery({
109
- container: this._basemapElement,
110
- view,
111
- source
112
- });
88
+ this._showListView = false;
89
+ if ((_a = this._features) === null || _a === void 0 ? void 0 : _a.viewModel) {
90
+ this._features.viewModel.featureMenuOpen = false;
91
+ this._features.close();
113
92
  }
114
93
  }
115
- get el() { return index.getElement(this); }
116
- static get watchers() { return {
117
- "mapView": ["mapViewWatchHandler"]
118
- }; }
119
- };
120
- BasemapGallery.style = basemapGalleryCss;
121
-
122
- const floorFilterCss = ":host{display:block}";
123
-
124
- const FloorFilter = class {
125
- constructor(hostRef) {
126
- index.registerInstance(this, hostRef);
127
- this.enabled = undefined;
128
- this.floorFilterWidget = undefined;
129
- this.mapView = undefined;
130
- }
131
- //--------------------------------------------------------------------------
132
- //
133
- // Watch handlers
134
- //
135
- //--------------------------------------------------------------------------
136
- async mapViewWatchHandler() {
137
- await this.mapView.when(() => {
138
- this._initFloorFilter(this.mapView);
139
- });
94
+ /**
95
+ * Refresh the info-card graphics
96
+ */
97
+ async refreshGraphics(evt) {
98
+ this.graphics = [...evt.detail];
140
99
  }
141
100
  //--------------------------------------------------------------------------
142
101
  //
143
- // Methods (public)
144
- //
145
- //--------------------------------------------------------------------------
146
- //--------------------------------------------------------------------------
147
- //
148
- // Events (public)
149
- //
150
- //--------------------------------------------------------------------------
151
- //--------------------------------------------------------------------------
152
- //
153
102
  // Functions (lifecycle)
154
103
  //
155
104
  //--------------------------------------------------------------------------
156
105
  /**
157
106
  * StencilJS: Called once just after the component is first connected to the DOM.
107
+ *
108
+ * @returns Promise when complete
158
109
  */
159
110
  async componentWillLoad() {
160
- return this._initModules();
111
+ await this._initModules();
112
+ await this._getTranslations();
113
+ this._popupUtils = new popupUtils.PopupUtils();
114
+ }
115
+ /**
116
+ * StencilJS: Called once just after the component is fully loaded and the first render() occurs.
117
+ * @returns Promise when complete
118
+ */
119
+ async componentDidLoad() {
120
+ var _a;
121
+ if (((_a = this.graphics) === null || _a === void 0 ? void 0 : _a.length) > 0) {
122
+ await this.setGraphics();
123
+ }
161
124
  }
125
+ /**
126
+ * Renders the component.
127
+ */
162
128
  render() {
163
- return (index.h(index.Host, null, index.h("div", { ref: (el) => { this._floorFilterElement = el; } })));
129
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j;
130
+ const loadingClass = this.isLoading ? "" : "display-none";
131
+ const featureNodeClass = this.isLoading || this._editRecordOpen ? "visibility-hidden" : "position-absolute";
132
+ const editClass = !this.isLoading && this._editRecordOpen ? "position-absolute" : "display-none";
133
+ const editButtonClass = (!this.isLoading && this._editRecordOpen) || this._showListView ? "display-none" : "";
134
+ const nextBackDisabled = ((_b = (_a = this._features) === null || _a === void 0 ? void 0 : _a.features) === null || _b === void 0 ? void 0 : _b.length) < 2;
135
+ const nextBackClass = this.isMobile ? "display-none" : "";
136
+ const shellClass = this.isMobile && !this._editRecordOpen ? "padding-top-46" : "";
137
+ const id = (_d = (_c = this._features) === null || _c === void 0 ? void 0 : _c.selectedFeature) === null || _d === void 0 ? void 0 : _d.getObjectId();
138
+ const ids = parseInt(id === null || id === void 0 ? void 0 : id.toString(), 10) > -1 ? [id] : [];
139
+ 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);
140
+ return (index.h(index.Host, null, this.isMobile && !this._editRecordOpen ? (index.h("calcite-panel", null, index.h("calcite-action", { class: "end-border", icon: "chevron-left", iconFlipRtl: true, onClick: () => this._closePopup(), scale: "s", slot: "header-actions-start", text: "" }), index.h("span", { class: "font-bold", slot: "header-content" }, this._mobileTitle))) : undefined, index.h("calcite-shell", { class: shellClass }, index.h("calcite-loader", { class: loadingClass, label: this._translations.fetchingData }), index.h("div", { class: "esri-widget " + featureNodeClass, id: "features-node" }), index.h("div", { class: `${editButtonClass} width-100`, slot: "footer" }, this.allowEditing &&
141
+ index.h("div", { class: "display-flex top-border padding-1-2" }, index.h("calcite-button", { appearance: "solid", id: "solutions-edit", onClick: () => this._openEditRecord(), width: "full" }, this._translations.edit), this.isMobile && deleteEnabled ? (index.h("delete-button", { class: "padding-inline-start-1 width-100", id: "solutions-delete", ids: ids, layer: this._layer, onEditsComplete: () => this._closePopup() })) : undefined, index.h("calcite-tooltip", { label: "", placement: "bottom", "reference-element": "solutions-edit" }, index.h("span", null, this._translations.edit)), this.isMobile ? (index.h("calcite-tooltip", { label: "", placement: "bottom", "reference-element": "solutions-delete" }, index.h("span", null, this._translations.delete))) : undefined), !nextBackDisabled && index.h("div", { class: `display-flex padding-1-2 button-container top-border ${nextBackClass}` }, index.h("div", { class: "min-width-100" }, index.h("calcite-button", { appearance: "outline", disabled: nextBackDisabled, id: "solutions-back", onClick: () => this._back(), width: "full" }, this._translations.back), index.h("calcite-tooltip", { label: "", placement: "top", "reference-element": "solutions-back" }, index.h("span", null, this._translations.back))), index.h("div", null, index.h("calcite-action", { icon: "list", onClick: () => this._toggleListView(), scale: "s", text: this._count, textEnabled: true })), index.h("div", { class: "min-width-100" }, index.h("calcite-button", { appearance: "outline", disabled: nextBackDisabled, id: "solutions-next", onClick: () => this._next(), width: "full" }, this._translations.next), index.h("calcite-tooltip", { label: "", placement: "top", "reference-element": "solutions-next" }, index.h("span", null, this._translations.next))))), index.h("edit-card", { class: editClass, graphicIndex: (_j = this._features) === null || _j === void 0 ? void 0 : _j.selectedFeatureIndex, graphics: this.graphics, mapView: this.mapView, open: this._editRecordOpen }), index.h("calcite-alert", { icon: "layer-broken", kind: "warning", label: "", onCalciteAlertClose: () => this._alertClosed(), open: this._alertOpen, placement: "top" }, index.h("div", { slot: "title" }, this._translations.editDisabled), index.h("div", { slot: "message" }, this._translations.enableEditing)))));
164
142
  }
165
143
  //--------------------------------------------------------------------------
166
144
  //
@@ -175,164 +153,215 @@ const FloorFilter = class {
175
153
  * @protected
176
154
  */
177
155
  async _initModules() {
178
- const [FloorFilter] = await loadModules.loadModules([
179
- "esri/widgets/FloorFilter"
156
+ const [Features, reactiveUtils] = await loadModules.loadModules([
157
+ "esri/widgets/Features",
158
+ "esri/core/reactiveUtils"
180
159
  ]);
181
- this.FloorFilter = FloorFilter;
160
+ this.Features = Features;
161
+ this.reactiveUtils = reactiveUtils;
162
+ }
163
+ /**
164
+ * Initializes the features widget if not created and updates the feature widget and other required states
165
+ *
166
+ * @protected
167
+ */
168
+ async setGraphics() {
169
+ var _a;
170
+ if (!this._features) {
171
+ await this._initFeaturesWidget();
172
+ }
173
+ if (this.graphics.length > 0) {
174
+ this._layer = (_a = this.graphics[0]) === null || _a === void 0 ? void 0 : _a.layer;
175
+ this._editEnabled = this._layer.editingEnabled && this._layer.capabilities.operations.supportsUpdate;
176
+ this._mobileTitle = await this._popupUtils.getPopupTitle(this.graphics[0]);
177
+ this._features.open({
178
+ features: this.graphics
179
+ });
180
+ }
181
+ else {
182
+ this._features.clear();
183
+ this._features.close();
184
+ }
185
+ this._count = this._getCount();
182
186
  }
183
187
  /**
184
- * Initialize the floor filter or reset the current view if it already exists
188
+ * Init the Feature widget so we can display the popup content
189
+ *
190
+ * @returns a promise when the operation has completed
191
+ *
192
+ * @protected
185
193
  */
186
- _initFloorFilter(view) {
194
+ async _initFeaturesWidget() {
187
195
  var _a;
188
- if (view && this.enabled && this.FloorFilter && ((_a = view === null || view === void 0 ? void 0 : view.map) === null || _a === void 0 ? void 0 : _a.floorInfo)) {
189
- if (!this.floorFilterWidget) {
190
- this.floorFilterWidget = new this.FloorFilter({
191
- container: this._floorFilterElement,
192
- view
196
+ return this.isMobile !== undefined ? await ((_a = this.mapView) === null || _a === void 0 ? void 0 : _a.when(() => {
197
+ if (!this._features) {
198
+ this._features = new this.Features({
199
+ view: this.mapView,
200
+ container: "features-node",
201
+ visibleElements: {
202
+ actionBar: false,
203
+ closeButton: false,
204
+ heading: !this.isMobile
205
+ }
206
+ });
207
+ this.reactiveUtils.watch(() => this._features.viewModel.featureMenuOpen, (isOpen) => {
208
+ if (!isOpen) {
209
+ this._showListView = isOpen;
210
+ }
193
211
  });
212
+ if (this.zoomAndScrollToSelected) {
213
+ this.reactiveUtils.watch(() => this._features.selectedFeatureIndex, (i) => {
214
+ if (i > -1) {
215
+ this.selectionChanged.emit([this._features.selectedFeature]);
216
+ }
217
+ });
218
+ }
194
219
  }
195
220
  else {
196
- this.floorFilterWidget.view = view;
221
+ this._features.view = this.mapView;
222
+ this._features.visibleElements.actionBar = false;
223
+ this._features.visibleElements.closeButton = false;
224
+ this._features.visibleElements.heading = !this.isMobile;
197
225
  }
198
- }
226
+ })) : Promise.resolve();
199
227
  }
200
- get el() { return index.getElement(this); }
201
- static get watchers() { return {
202
- "mapView": ["mapViewWatchHandler"]
203
- }; }
204
- };
205
- FloorFilter.style = floorFilterCss;
206
-
207
- const mapFullscreenCss = ":host{display:block}";
208
-
209
- const MapFullscreen = class {
210
- constructor(hostRef) {
211
- index.registerInstance(this, hostRef);
212
- this.fullscreenStateChange = index.createEvent(this, "fullscreenStateChange", 7);
213
- this.mapView = undefined;
214
- this.fullscreenWidget = undefined;
215
- }
216
- //--------------------------------------------------------------------------
217
- //
218
- // Watch handlers
219
- //
220
- //--------------------------------------------------------------------------
221
228
  /**
222
- * Called each time the mapView prop is changed.
223
- *
224
- * @returns Promise when complete
229
+ * Close the popup and emit the selected features
225
230
  */
226
- async mapViewWatchHandler() {
227
- await this.mapView.when(async () => {
228
- await this._initFullscreenWidget();
229
- });
231
+ _closePopup() {
232
+ this.popupClosed.emit();
230
233
  }
231
- //--------------------------------------------------------------------------
232
- //
233
- // Functions (lifecycle)
234
- //
235
- //--------------------------------------------------------------------------
236
234
  /**
237
- * StencilJS: Called once just after the component is first connected to the DOM.
235
+ * Set the alertOpen member to false when the alert is closed
238
236
  */
239
- async componentWillLoad() {
240
- await this._initModules();
237
+ _alertClosed() {
238
+ this._alertOpen = false;
241
239
  }
242
240
  /**
243
- * Renders the component.
241
+ * Open the edit record
244
242
  */
245
- render() {
246
- return (index.h(index.Host, null, index.h("div", { class: "fullscreen-widget", ref: (el) => { this._fullscreenElement = el; } })));
243
+ _openEditRecord() {
244
+ if (this._editEnabled) {
245
+ this._editRecordOpen = true;
246
+ }
247
+ else {
248
+ this._alertOpen = true;
249
+ }
247
250
  }
248
251
  /**
249
- * StencilJS: Called just after the component updates.
250
- * It's never called during the first render().
252
+ * Go to the previous feature in the features widget
251
253
  */
252
- async componentDidUpdate() {
253
- await this._initFullscreenWidget();
254
+ _back() {
255
+ this._features.previous();
256
+ this._count = this._getCount();
254
257
  }
255
258
  /**
256
- * StencilJS: Called once just after the component is fully loaded and the first render() occurs.
259
+ * Go to the next feature in the features widget
257
260
  */
258
- async componentDidLoad() {
259
- await this._initFullscreenWidget();
261
+ _next() {
262
+ this._features.next();
263
+ this._count = this._getCount();
260
264
  }
261
- //--------------------------------------------------------------------------
262
- //
263
- // Functions (protected)
264
- //
265
- //--------------------------------------------------------------------------
266
265
  /**
267
- * Load esri javascript api modules
266
+ * Get the current index of total string
268
267
  *
269
- * @returns Promise resolving when function is done
270
- *
271
- * @protected
268
+ * @returns the index of total string
272
269
  */
273
- async _initModules() {
274
- const [Fullscreen, reactiveUtils] = await loadModules.loadModules([
275
- "esri/widgets/Fullscreen",
276
- "esri/core/reactiveUtils"
277
- ]);
278
- this.Fullscreen = Fullscreen;
279
- this.reactiveUtils = reactiveUtils;
270
+ _getCount() {
271
+ var _a, _b, _c;
272
+ const index = (((_a = this._features) === null || _a === void 0 ? void 0 : _a.viewModel.selectedFeatureIndex) + 1).toString();
273
+ const total = (_c = (_b = this._features) === null || _b === void 0 ? void 0 : _b.features) === null || _c === void 0 ? void 0 : _c.length.toString();
274
+ return this._translations.indexOfTotal
275
+ .replace("{{index}}", index)
276
+ .replace("{{total}}", total);
277
+ }
278
+ /**
279
+ * Toggle the visibility of the features list view
280
+ */
281
+ _toggleListView() {
282
+ this._showListView = !this._showListView;
283
+ const i = this._features.selectedFeatureIndex;
284
+ this._features.open({
285
+ features: this.graphics,
286
+ featureMenuOpen: this._showListView
287
+ });
288
+ this._features.selectedFeatureIndex = i;
280
289
  }
281
290
  /**
282
- * Initialize the search widget
291
+ * Fetches the component's translations
283
292
  *
293
+ * @returns Promise when complete
284
294
  * @protected
285
295
  */
286
- async _initFullscreenWidget() {
287
- if (this.mapView && this._fullscreenElement && !this.fullscreenWidget) {
288
- this.fullscreenWidget = new this.Fullscreen({
289
- view: this.mapView
290
- });
291
- await this.fullscreenWidget.when(() => {
292
- if (this._fullscreenStateChangeHandle) {
293
- this._fullscreenStateChangeHandle.remove();
294
- }
295
- this._fullscreenStateChangeHandle = this.reactiveUtils.watch(() => this.fullscreenWidget.viewModel.state, (state) => this.fullscreenStateChange.emit(state));
296
- });
297
- }
298
- else if (this.fullscreenWidget) {
299
- this.fullscreenWidget.view = this.mapView;
300
- }
296
+ async _getTranslations() {
297
+ const messages = await locale.getLocaleComponentStrings(this.el);
298
+ this._translations = messages[0];
301
299
  }
300
+ get el() { return index.getElement(this); }
302
301
  static get watchers() { return {
302
+ "graphics": ["graphicsWatchHandler"],
303
+ "isMobile": ["isMobileWatchHandler"],
303
304
  "mapView": ["mapViewWatchHandler"]
304
305
  }; }
305
306
  };
306
- MapFullscreen.style = mapFullscreenCss;
307
+ InfoCard.style = infoCardCss;
307
308
 
308
- const mapLegendCss = ":host{display:block}";
309
+ 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}";
309
310
 
310
- const MapLegend = class {
311
+ const MapCard = class {
311
312
  constructor(hostRef) {
312
313
  index.registerInstance(this, hostRef);
314
+ this.mapChanged = index.createEvent(this, "mapChanged", 7);
315
+ this.beforeMapChanged = index.createEvent(this, "beforeMapChanged", 7);
316
+ /**
317
+ * boolean: When true the default map provided via url params has been loaded and should no longer override other maps
318
+ */
319
+ this._defaultWebmapHonored = false;
320
+ /**
321
+ * string: the id of map currently displayed
322
+ */
323
+ this._loadedId = "";
324
+ this.defaultWebmapId = "";
325
+ this.enableHome = undefined;
326
+ this.enableLegend = undefined;
327
+ this.enableFloorFilter = undefined;
328
+ this.enableFullscreen = undefined;
329
+ this.enableSingleExpand = true;
330
+ this.enableSearch = undefined;
331
+ this.enableBasemap = undefined;
332
+ this.basemapConfig = undefined;
333
+ this.hidden = undefined;
334
+ this.homeZoomIndex = 3;
335
+ this.homeZoomPosition = "top-left";
336
+ this.homeZoomToolsSize = "m";
337
+ this.mapInfos = [];
338
+ this.mapWidgetsIndex = 0;
339
+ this.mapWidgetsPosition = "top-right";
340
+ this.mapWidgetsSize = "m";
313
341
  this.mapView = undefined;
314
- this.legendWidget = undefined;
342
+ this.stackTools = true;
343
+ this.theme = undefined;
344
+ this.toolOrder = undefined;
345
+ this._searchConfiguration = undefined;
346
+ this._webMapInfo = undefined;
315
347
  }
316
348
  //--------------------------------------------------------------------------
317
349
  //
318
350
  // Watch handlers
319
351
  //
320
352
  //--------------------------------------------------------------------------
321
- async mapViewWatchHandler() {
322
- await this.mapView.when(() => {
323
- this._initLegend(this.mapView);
324
- });
353
+ /**
354
+ * Add/remove home widget
355
+ */
356
+ enableHomeWatchHandler() {
357
+ this._initHome();
358
+ }
359
+ /**
360
+ * Listen for changes to map info and load the appropriate map
361
+ */
362
+ async mapInfoChange(evt) {
363
+ await this._loadMap(evt.detail);
325
364
  }
326
- //--------------------------------------------------------------------------
327
- //
328
- // Methods (public)
329
- //
330
- //--------------------------------------------------------------------------
331
- //--------------------------------------------------------------------------
332
- //
333
- // Events (public)
334
- //
335
- //--------------------------------------------------------------------------
336
365
  //--------------------------------------------------------------------------
337
366
  //
338
367
  // Functions (lifecycle)
@@ -342,21 +371,18 @@ const MapLegend = class {
342
371
  * StencilJS: Called once just after the component is first connected to the DOM.
343
372
  */
344
373
  async componentWillLoad() {
345
- return this._initModules();
374
+ await this._initModules();
346
375
  }
347
376
  /**
348
- * StencilJS: Renders the component.
377
+ * Renders the component.
349
378
  */
350
379
  render() {
351
- return (index.h(index.Host, null, index.h("div", { ref: (el) => { this._legendElement = el; } })));
352
- }
353
- /**
354
- * StencilJS: Called once just after the component is fully loaded and the first render() occurs.
355
- */
356
- async componentDidLoad() {
357
- if (this.mapView) {
358
- await this.mapViewWatchHandler();
359
- }
380
+ var _a, _b;
381
+ const mapClass = this.hidden ? "visibility-hidden" : "";
382
+ const themeClass = this.theme === "dark" ? "calcite-mode-dark" : "calcite-mode-light";
383
+ const mapPickerClass = ((_a = this.mapInfos) === null || _a === void 0 ? void 0 : _a.length) > 1 ? "" : "display-none";
384
+ const mapHeightClass = ((_b = this.mapInfos) === null || _b === void 0 ? void 0 : _b.length) > 1 ? "map-height" : "height-full";
385
+ return (index.h(index.Host, null, index.h("map-picker", { class: mapPickerClass, mapInfos: this.mapInfos, ref: (el) => this._mapPicker = el }), index.h("div", { class: `${mapHeightClass} ${mapClass}`, ref: (el) => (this._mapDiv = el) }), index.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 })));
360
386
  }
361
387
  //--------------------------------------------------------------------------
362
388
  //
@@ -371,33 +397,91 @@ const MapLegend = class {
371
397
  * @protected
372
398
  */
373
399
  async _initModules() {
374
- const [Legend] = await loadModules.loadModules([
375
- "esri/widgets/Legend"
400
+ const [WebMap, MapView, Home] = await loadModules.loadModules([
401
+ "esri/WebMap",
402
+ "esri/views/MapView",
403
+ "esri/widgets/Home"
376
404
  ]);
377
- this.Legend = Legend;
405
+ this.WebMap = WebMap;
406
+ this.MapView = MapView;
407
+ this.Home = Home;
378
408
  }
379
409
  /**
380
- * Initialize the basemap gallery or reset the current view if it already exists
410
+ * Load the webmap for the provided webMapInfo
411
+ *
412
+ * @param webMapInfo the webmap id and name to load
381
413
  */
382
- _initLegend(view) {
383
- if (view && this.Legend) {
384
- if (!this.legendWidget) {
385
- this.legendWidget = new this.Legend({
386
- container: this._legendElement,
387
- view
414
+ async _loadMap(webMapInfo) {
415
+ var _a;
416
+ // on the first render use the default webmap id if provided otherwise use the first child of the provided mapInfos
417
+ const loadDefaultMap = !this._defaultWebmapHonored && this.defaultWebmapId;
418
+ const defaultMap = (_a = this.mapInfos) === null || _a === void 0 ? void 0 : _a.filter(i => i.id === this.defaultWebmapId);
419
+ const mapConfigChanged = JSON.stringify(webMapInfo) !== JSON.stringify(this._webMapInfo);
420
+ this._webMapInfo = loadDefaultMap && defaultMap ? defaultMap[0] :
421
+ !(webMapInfo === null || webMapInfo === void 0 ? void 0 : webMapInfo.id) && this.mapInfos.length > 0 ? this.mapInfos[0] : webMapInfo;
422
+ const id = this._webMapInfo.id;
423
+ const isDefaultMap = loadDefaultMap && (webMapInfo === null || webMapInfo === void 0 ? void 0 : webMapInfo.id) === this.defaultWebmapId;
424
+ if ((this._loadedId !== id && !loadDefaultMap) || isDefaultMap) {
425
+ const webMap = new this.WebMap({
426
+ portalItem: { id }
427
+ });
428
+ this.mapView = new this.MapView({
429
+ container: this._mapDiv,
430
+ map: webMap,
431
+ resizeAlign: "center"
432
+ });
433
+ this._loadedId = id;
434
+ this._searchConfiguration = this._webMapInfo.searchConfiguration;
435
+ this.beforeMapChanged.emit();
436
+ await this.mapView.when(() => {
437
+ this._initHome();
438
+ this.mapView.ui.add(this._mapTools, { position: this.mapWidgetsPosition, index: this.mapWidgetsIndex });
439
+ this._defaultWebmapHonored = isDefaultMap ? true : this._defaultWebmapHonored;
440
+ this.mapChanged.emit({
441
+ id: id,
442
+ mapView: this.mapView
388
443
  });
389
- }
390
- else {
391
- this.legendWidget.view = view;
392
- }
444
+ });
445
+ }
446
+ else if (loadDefaultMap) {
447
+ this._defaultWebmapHonored = true;
448
+ this._mapPicker.setMapByID(id);
449
+ }
450
+ else if (mapConfigChanged) {
451
+ // Map is the same so no need to reload but we need to update for any changes from the config
452
+ this._searchConfiguration = this._webMapInfo.searchConfiguration;
453
+ this.beforeMapChanged.emit();
454
+ this.mapChanged.emit({
455
+ id: id,
456
+ mapView: this.mapView
457
+ });
458
+ }
459
+ }
460
+ /**
461
+ * Add/remove the home widget base on enableHome prop
462
+ *
463
+ * @protected
464
+ */
465
+ _initHome() {
466
+ if (this.enableHome) {
467
+ this._homeWidget = new this.Home({
468
+ view: this.mapView
469
+ });
470
+ this.mapView.ui.add(this._homeWidget, { position: this.homeZoomPosition, index: this.homeZoomIndex });
471
+ const size = this.homeZoomToolsSize === "s" ? "32px" : this.homeZoomToolsSize === "m" ? "40px" : "48px";
472
+ this._homeWidget.domNode.style.height = size;
473
+ this._homeWidget.domNode.style.width = size;
474
+ }
475
+ else if (this._homeWidget) {
476
+ this.mapView.ui.remove(this._homeWidget);
393
477
  }
394
478
  }
395
479
  get el() { return index.getElement(this); }
396
480
  static get watchers() { return {
397
- "mapView": ["mapViewWatchHandler"]
481
+ "enableHome": ["enableHomeWatchHandler"]
398
482
  }; }
399
483
  };
400
- MapLegend.style = mapLegendCss;
484
+ MapCard.style = mapCardCss;
401
485
 
402
486
  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}";
403
487
 
@@ -557,175 +641,6 @@ const MapPicker = class {
557
641
  };
558
642
  MapPicker.style = mapPickerCss;
559
643
 
560
- const mapSearchCss = ":host{display:block}.search-widget{width:100% !important;border:1px solid var(--calcite-color-border-input)}";
561
-
562
- const MapSearch = class {
563
- constructor(hostRef) {
564
- index.registerInstance(this, hostRef);
565
- this.mapView = undefined;
566
- this.popupEnabled = false;
567
- this.resultGraphicEnabled = false;
568
- this.searchConfiguration = undefined;
569
- this.searchTerm = undefined;
570
- this.searchWidget = undefined;
571
- }
572
- //--------------------------------------------------------------------------
573
- //
574
- // Watch handlers
575
- //
576
- //--------------------------------------------------------------------------
577
- /**
578
- * Called each time the searchConfiguration prop is changed.
579
- *
580
- * @returns Promise when complete
581
- */
582
- async watchSearchConfigurationHandler() {
583
- this._initSearchWidget();
584
- }
585
- /**
586
- * Called each time the mapView prop is changed.
587
- *
588
- * @returns Promise when complete
589
- */
590
- async mapViewWatchHandler() {
591
- await this.mapView.when(() => {
592
- this._initSearchWidget();
593
- });
594
- }
595
- //--------------------------------------------------------------------------
596
- //
597
- // Methods (public)
598
- //
599
- //--------------------------------------------------------------------------
600
- //--------------------------------------------------------------------------
601
- //
602
- // Events (public)
603
- //
604
- //--------------------------------------------------------------------------
605
- //--------------------------------------------------------------------------
606
- //
607
- // Functions (lifecycle)
608
- //
609
- //--------------------------------------------------------------------------
610
- /**
611
- * StencilJS: Called once just after the component is first connected to the DOM.
612
- */
613
- async componentWillLoad() {
614
- await this._initModules();
615
- }
616
- /**
617
- * StencilJS: Called once just after the component is fully loaded and the first render() occurs.
618
- */
619
- async componentDidLoad() {
620
- return this._initSearchWidget();
621
- }
622
- /**
623
- * Renders the component.
624
- */
625
- render() {
626
- return (index.h(index.Host, null, index.h("div", { class: "search-widget", ref: (el) => { this._searchElement = el; } })));
627
- }
628
- //--------------------------------------------------------------------------
629
- //
630
- // Functions (protected)
631
- //
632
- //--------------------------------------------------------------------------
633
- /**
634
- * Load esri javascript api modules
635
- *
636
- * @returns Promise resolving when function is done
637
- *
638
- * @protected
639
- */
640
- async _initModules() {
641
- const [Search, FeatureLayer] = await loadModules.loadModules([
642
- "esri/widgets/Search",
643
- "esri/layers/FeatureLayer"
644
- ]);
645
- this.Search = Search;
646
- this.FeatureLayer = FeatureLayer;
647
- }
648
- /**
649
- * Initialize the search widget
650
- *
651
- * @protected
652
- */
653
- _initSearchWidget() {
654
- if (this.mapView && this._searchElement && !this.searchWidget) {
655
- let searchOptions = {
656
- view: this.mapView,
657
- container: this._searchElement,
658
- searchTerm: this.searchTerm
659
- };
660
- if (this.searchConfiguration) {
661
- const searchConfiguration = this._getSearchConfig(this.searchConfiguration, this.mapView);
662
- searchOptions = Object.assign({}, searchConfiguration);
663
- }
664
- this.searchWidget = new this.Search(searchOptions);
665
- this.searchWidget.popupEnabled = this.popupEnabled;
666
- this.searchWidget.resultGraphicEnabled = this.resultGraphicEnabled;
667
- }
668
- else {
669
- if (this.searchWidget) {
670
- this.searchWidget.view = this.mapView;
671
- }
672
- }
673
- }
674
- /**
675
- * Initialize the search widget based on user defined configuration
676
- *
677
- * @param searchConfiguration search configuration defined by the user
678
- * @param view the current map view
679
- *
680
- * @protected
681
- */
682
- _getSearchConfig(searchConfiguration, view) {
683
- const INCLUDE_DEFAULT_SOURCES = "includeDefaultSources";
684
- const sources = searchConfiguration.sources;
685
- if ((sources === null || sources === void 0 ? void 0 : sources.length) > 0) {
686
- searchConfiguration[INCLUDE_DEFAULT_SOURCES] = false;
687
- sources.forEach((source) => {
688
- var _a, _b;
689
- const isLayerSource = source.hasOwnProperty("layer");
690
- if (isLayerSource) {
691
- const layerSource = source;
692
- const layerId = (_a = layerSource.layer) === null || _a === void 0 ? void 0 : _a.id;
693
- const layerFromMap = layerId ? view.map.findLayerById(layerId) : null;
694
- const layerUrl = (_b = layerSource === null || layerSource === void 0 ? void 0 : layerSource.layer) === null || _b === void 0 ? void 0 : _b.url;
695
- if (layerFromMap) {
696
- layerSource.layer = layerFromMap;
697
- }
698
- else if (layerUrl) {
699
- layerSource.layer = new this.FeatureLayer(layerUrl);
700
- }
701
- }
702
- });
703
- sources === null || sources === void 0 ? void 0 : sources.forEach((source) => {
704
- const isLocatorSource = source.hasOwnProperty("locator");
705
- if (isLocatorSource) {
706
- const locatorSource = source;
707
- if ((locatorSource === null || locatorSource === void 0 ? void 0 : locatorSource.name) === "ArcGIS World Geocoding Service") {
708
- const outFields = locatorSource.outFields || ["Addr_type", "Match_addr", "StAddr", "City"];
709
- locatorSource.outFields = outFields;
710
- locatorSource.singleLineFieldName = "SingleLine";
711
- }
712
- locatorSource.url = locatorSource.url;
713
- delete locatorSource.url;
714
- }
715
- });
716
- }
717
- else {
718
- searchConfiguration = Object.assign(Object.assign({}, searchConfiguration), { includeDefaultSources: true });
719
- }
720
- return searchConfiguration;
721
- }
722
- static get watchers() { return {
723
- "searchConfiguration": ["watchSearchConfigurationHandler"],
724
- "mapView": ["mapViewWatchHandler"]
725
- }; }
726
- };
727
- MapSearch.style = mapSearchCss;
728
-
729
644
  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}";
730
645
 
731
646
  const MapTools = class {
@@ -1083,10 +998,7 @@ const MapTools = class {
1083
998
  };
1084
999
  MapTools.style = mapToolsCss;
1085
1000
 
1086
- exports.basemap_gallery = BasemapGallery;
1087
- exports.floor_filter = FloorFilter;
1088
- exports.map_fullscreen = MapFullscreen;
1089
- exports.map_legend = MapLegend;
1001
+ exports.info_card = InfoCard;
1002
+ exports.map_card = MapCard;
1090
1003
  exports.map_picker = MapPicker;
1091
- exports.map_search = MapSearch;
1092
1004
  exports.map_tools = MapTools;