@esri/solutions-components 0.7.22 → 0.7.24

Sign up to get free protection for your applications and to get access to all the features.
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;