@esri/solutions-components 0.8.13 → 0.8.15

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 (392) hide show
  1. package/dist/assets/arcgis-pdf-creator/PDFLabels.d.ts +218 -0
  2. package/dist/assets/t9n/crowdsource-reporter/resources.json +0 -1
  3. package/dist/assets/t9n/crowdsource-reporter/resources_ar.json +15 -7
  4. package/dist/assets/t9n/crowdsource-reporter/resources_bg.json +15 -7
  5. package/dist/assets/t9n/crowdsource-reporter/resources_bs.json +15 -7
  6. package/dist/assets/t9n/crowdsource-reporter/resources_ca.json +15 -7
  7. package/dist/assets/t9n/crowdsource-reporter/resources_cs.json +15 -7
  8. package/dist/assets/t9n/crowdsource-reporter/resources_da.json +15 -7
  9. package/dist/assets/t9n/crowdsource-reporter/resources_de.json +15 -7
  10. package/dist/assets/t9n/crowdsource-reporter/resources_el.json +15 -7
  11. package/dist/assets/t9n/crowdsource-reporter/resources_en.json +0 -1
  12. package/dist/assets/t9n/crowdsource-reporter/resources_es.json +15 -7
  13. package/dist/assets/t9n/crowdsource-reporter/resources_et.json +15 -7
  14. package/dist/assets/t9n/crowdsource-reporter/resources_fi.json +15 -7
  15. package/dist/assets/t9n/crowdsource-reporter/resources_fr.json +15 -7
  16. package/dist/assets/t9n/crowdsource-reporter/resources_he.json +15 -7
  17. package/dist/assets/t9n/crowdsource-reporter/resources_hr.json +15 -7
  18. package/dist/assets/t9n/crowdsource-reporter/resources_hu.json +15 -7
  19. package/dist/assets/t9n/crowdsource-reporter/resources_id.json +15 -7
  20. package/dist/assets/t9n/crowdsource-reporter/resources_it.json +15 -7
  21. package/dist/assets/t9n/crowdsource-reporter/resources_ja.json +15 -7
  22. package/dist/assets/t9n/crowdsource-reporter/resources_ko.json +15 -7
  23. package/dist/assets/t9n/crowdsource-reporter/resources_lt.json +15 -7
  24. package/dist/assets/t9n/crowdsource-reporter/resources_lv.json +15 -7
  25. package/dist/assets/t9n/crowdsource-reporter/resources_nb.json +15 -7
  26. package/dist/assets/t9n/crowdsource-reporter/resources_nl.json +15 -7
  27. package/dist/assets/t9n/crowdsource-reporter/resources_pl.json +15 -7
  28. package/dist/assets/t9n/crowdsource-reporter/resources_pt-BR.json +15 -7
  29. package/dist/assets/t9n/crowdsource-reporter/resources_pt-PT.json +15 -7
  30. package/dist/assets/t9n/crowdsource-reporter/resources_ro.json +15 -7
  31. package/dist/assets/t9n/crowdsource-reporter/resources_ru.json +15 -7
  32. package/dist/assets/t9n/crowdsource-reporter/resources_sk.json +15 -7
  33. package/dist/assets/t9n/crowdsource-reporter/resources_sl.json +15 -7
  34. package/dist/assets/t9n/crowdsource-reporter/resources_sr.json +15 -7
  35. package/dist/assets/t9n/crowdsource-reporter/resources_sv.json +15 -7
  36. package/dist/assets/t9n/crowdsource-reporter/resources_th.json +15 -7
  37. package/dist/assets/t9n/crowdsource-reporter/resources_tr.json +15 -7
  38. package/dist/assets/t9n/crowdsource-reporter/resources_uk.json +15 -7
  39. package/dist/assets/t9n/crowdsource-reporter/resources_vi.json +15 -7
  40. package/dist/assets/t9n/crowdsource-reporter/resources_zh-CN.json +15 -7
  41. package/dist/assets/t9n/crowdsource-reporter/resources_zh-HK.json +15 -7
  42. package/dist/assets/t9n/crowdsource-reporter/resources_zh-TW.json +15 -7
  43. package/dist/assets/t9n/feature-list/resources_ar.json +1 -1
  44. package/dist/assets/t9n/feature-list/resources_bg.json +1 -1
  45. package/dist/assets/t9n/feature-list/resources_bs.json +1 -1
  46. package/dist/assets/t9n/feature-list/resources_ca.json +1 -1
  47. package/dist/assets/t9n/feature-list/resources_cs.json +1 -1
  48. package/dist/assets/t9n/feature-list/resources_da.json +1 -1
  49. package/dist/assets/t9n/feature-list/resources_de.json +1 -1
  50. package/dist/assets/t9n/feature-list/resources_el.json +1 -1
  51. package/dist/assets/t9n/feature-list/resources_es.json +1 -1
  52. package/dist/assets/t9n/feature-list/resources_et.json +1 -1
  53. package/dist/assets/t9n/feature-list/resources_fi.json +1 -1
  54. package/dist/assets/t9n/feature-list/resources_fr.json +1 -1
  55. package/dist/assets/t9n/feature-list/resources_he.json +1 -1
  56. package/dist/assets/t9n/feature-list/resources_hr.json +1 -1
  57. package/dist/assets/t9n/feature-list/resources_hu.json +1 -1
  58. package/dist/assets/t9n/feature-list/resources_id.json +1 -1
  59. package/dist/assets/t9n/feature-list/resources_it.json +1 -1
  60. package/dist/assets/t9n/feature-list/resources_ja.json +1 -1
  61. package/dist/assets/t9n/feature-list/resources_ko.json +1 -1
  62. package/dist/assets/t9n/feature-list/resources_lt.json +1 -1
  63. package/dist/assets/t9n/feature-list/resources_lv.json +1 -1
  64. package/dist/assets/t9n/feature-list/resources_nb.json +1 -1
  65. package/dist/assets/t9n/feature-list/resources_nl.json +1 -1
  66. package/dist/assets/t9n/feature-list/resources_pl.json +1 -1
  67. package/dist/assets/t9n/feature-list/resources_pt-BR.json +1 -1
  68. package/dist/assets/t9n/feature-list/resources_pt-PT.json +1 -1
  69. package/dist/assets/t9n/feature-list/resources_ro.json +1 -1
  70. package/dist/assets/t9n/feature-list/resources_ru.json +1 -1
  71. package/dist/assets/t9n/feature-list/resources_sk.json +1 -1
  72. package/dist/assets/t9n/feature-list/resources_sl.json +1 -1
  73. package/dist/assets/t9n/feature-list/resources_sr.json +1 -1
  74. package/dist/assets/t9n/feature-list/resources_sv.json +1 -1
  75. package/dist/assets/t9n/feature-list/resources_th.json +1 -1
  76. package/dist/assets/t9n/feature-list/resources_tr.json +1 -1
  77. package/dist/assets/t9n/feature-list/resources_uk.json +1 -1
  78. package/dist/assets/t9n/feature-list/resources_vi.json +1 -1
  79. package/dist/assets/t9n/feature-list/resources_zh-CN.json +1 -1
  80. package/dist/assets/t9n/feature-list/resources_zh-HK.json +1 -1
  81. package/dist/assets/t9n/feature-list/resources_zh-TW.json +1 -1
  82. package/dist/assets/t9n/layer-list/resources.json +1 -1
  83. package/dist/assets/t9n/layer-list/resources_en.json +1 -1
  84. package/dist/assets/t9n/media-card/resources.json +1 -3
  85. package/dist/assets/t9n/media-card/resources_ar.json +3 -0
  86. package/dist/assets/t9n/media-card/resources_bg.json +3 -0
  87. package/dist/assets/t9n/media-card/resources_bs.json +3 -0
  88. package/dist/assets/t9n/media-card/resources_ca.json +3 -0
  89. package/dist/assets/t9n/media-card/resources_cs.json +3 -0
  90. package/dist/assets/t9n/media-card/resources_da.json +3 -0
  91. package/dist/assets/t9n/media-card/resources_de.json +3 -0
  92. package/dist/assets/t9n/media-card/resources_el.json +3 -0
  93. package/dist/assets/t9n/media-card/resources_en.json +1 -3
  94. package/dist/assets/t9n/media-card/resources_es.json +3 -0
  95. package/dist/assets/t9n/media-card/resources_et.json +3 -0
  96. package/dist/assets/t9n/media-card/resources_fi.json +3 -0
  97. package/dist/assets/t9n/media-card/resources_fr.json +3 -0
  98. package/dist/assets/t9n/media-card/resources_he.json +3 -0
  99. package/dist/assets/t9n/media-card/resources_hr.json +3 -0
  100. package/dist/assets/t9n/media-card/resources_hu.json +3 -0
  101. package/dist/assets/t9n/media-card/resources_id.json +3 -0
  102. package/dist/assets/t9n/media-card/resources_it.json +3 -0
  103. package/dist/assets/t9n/media-card/resources_ja.json +3 -0
  104. package/dist/assets/t9n/media-card/resources_ko.json +3 -0
  105. package/dist/assets/t9n/media-card/resources_lt.json +3 -0
  106. package/dist/assets/t9n/media-card/resources_lv.json +3 -0
  107. package/dist/assets/t9n/media-card/resources_nb.json +3 -0
  108. package/dist/assets/t9n/media-card/resources_nl.json +3 -0
  109. package/dist/assets/t9n/media-card/resources_pl.json +3 -0
  110. package/dist/assets/t9n/media-card/resources_pt-BR.json +3 -0
  111. package/dist/assets/t9n/media-card/resources_pt-PT.json +3 -0
  112. package/dist/assets/t9n/media-card/resources_ro.json +3 -0
  113. package/dist/assets/t9n/media-card/resources_ru.json +3 -0
  114. package/dist/assets/t9n/media-card/resources_sk.json +3 -0
  115. package/dist/assets/t9n/media-card/resources_sl.json +3 -0
  116. package/dist/assets/t9n/media-card/resources_sr.json +3 -0
  117. package/dist/assets/t9n/media-card/resources_sv.json +3 -0
  118. package/dist/assets/t9n/media-card/resources_th.json +3 -0
  119. package/dist/assets/t9n/media-card/resources_tr.json +3 -0
  120. package/dist/assets/t9n/media-card/resources_uk.json +3 -0
  121. package/dist/assets/t9n/media-card/resources_vi.json +3 -0
  122. package/dist/assets/t9n/media-card/resources_zh-CN.json +3 -0
  123. package/dist/assets/t9n/media-card/resources_zh-HK.json +3 -0
  124. package/dist/assets/t9n/media-card/resources_zh-TW.json +3 -0
  125. package/dist/assets/t9n/public-notification/resources_ar.json +3 -1
  126. package/dist/assets/t9n/public-notification/resources_bg.json +3 -1
  127. package/dist/assets/t9n/public-notification/resources_bs.json +3 -1
  128. package/dist/assets/t9n/public-notification/resources_ca.json +3 -1
  129. package/dist/assets/t9n/public-notification/resources_cs.json +3 -1
  130. package/dist/assets/t9n/public-notification/resources_da.json +3 -1
  131. package/dist/assets/t9n/public-notification/resources_de.json +3 -1
  132. package/dist/assets/t9n/public-notification/resources_el.json +3 -1
  133. package/dist/assets/t9n/public-notification/resources_es.json +3 -1
  134. package/dist/assets/t9n/public-notification/resources_et.json +3 -1
  135. package/dist/assets/t9n/public-notification/resources_fi.json +3 -1
  136. package/dist/assets/t9n/public-notification/resources_fr.json +3 -1
  137. package/dist/assets/t9n/public-notification/resources_he.json +3 -1
  138. package/dist/assets/t9n/public-notification/resources_hr.json +3 -1
  139. package/dist/assets/t9n/public-notification/resources_hu.json +3 -1
  140. package/dist/assets/t9n/public-notification/resources_id.json +3 -1
  141. package/dist/assets/t9n/public-notification/resources_it.json +3 -1
  142. package/dist/assets/t9n/public-notification/resources_ja.json +3 -1
  143. package/dist/assets/t9n/public-notification/resources_ko.json +3 -1
  144. package/dist/assets/t9n/public-notification/resources_lt.json +3 -1
  145. package/dist/assets/t9n/public-notification/resources_lv.json +3 -1
  146. package/dist/assets/t9n/public-notification/resources_nb.json +3 -1
  147. package/dist/assets/t9n/public-notification/resources_nl.json +3 -1
  148. package/dist/assets/t9n/public-notification/resources_pl.json +3 -1
  149. package/dist/assets/t9n/public-notification/resources_pt-BR.json +3 -1
  150. package/dist/assets/t9n/public-notification/resources_pt-PT.json +3 -1
  151. package/dist/assets/t9n/public-notification/resources_ro.json +3 -1
  152. package/dist/assets/t9n/public-notification/resources_ru.json +3 -1
  153. package/dist/assets/t9n/public-notification/resources_sk.json +3 -1
  154. package/dist/assets/t9n/public-notification/resources_sl.json +3 -1
  155. package/dist/assets/t9n/public-notification/resources_sr.json +3 -1
  156. package/dist/assets/t9n/public-notification/resources_sv.json +3 -1
  157. package/dist/assets/t9n/public-notification/resources_th.json +3 -1
  158. package/dist/assets/t9n/public-notification/resources_tr.json +3 -1
  159. package/dist/assets/t9n/public-notification/resources_uk.json +3 -1
  160. package/dist/assets/t9n/public-notification/resources_vi.json +3 -1
  161. package/dist/assets/t9n/public-notification/resources_zh-CN.json +3 -1
  162. package/dist/assets/t9n/public-notification/resources_zh-HK.json +3 -1
  163. package/dist/assets/t9n/public-notification/resources_zh-TW.json +3 -1
  164. package/dist/cjs/basemap-gallery_7.cjs.entry.js +6 -6
  165. package/dist/cjs/buffer-tools_3.cjs.entry.js +1 -1
  166. package/dist/cjs/calcite-alert_4.cjs.entry.js +12 -8
  167. package/dist/cjs/calcite-dropdown_4.cjs.entry.js +2 -2
  168. package/dist/cjs/calcite-flow_6.cjs.entry.js +320 -255
  169. package/dist/cjs/calcite-shell-panel_14.cjs.entry.js +7 -7
  170. package/dist/cjs/card-manager_3.cjs.entry.js +6 -6
  171. package/dist/cjs/crowdsource-manager.cjs.entry.js +2 -2
  172. package/dist/cjs/crowdsource-reporter.cjs.entry.js +181 -54
  173. package/dist/cjs/deduct-calculator.cjs.entry.js +1 -1
  174. package/dist/cjs/{downloadUtils-88c011ad.js → downloadUtils-2e36a300.js} +31 -35
  175. package/dist/cjs/feature-comments.cjs.entry.js +1 -1
  176. package/dist/cjs/feature-form-flow-item.cjs.entry.js +1 -1
  177. package/dist/cjs/feature-list.cjs.entry.js +297 -0
  178. package/dist/cjs/features-flow-item.cjs.entry.js +1 -1
  179. package/dist/cjs/{index.es-1d5ee842.js → index.es-56415e48.js} +2 -2
  180. package/dist/cjs/layout-manager.cjs.entry.js +1 -1
  181. package/dist/cjs/list-flow-item.cjs.entry.js +1 -1
  182. package/dist/cjs/loader.cjs.js +1 -1
  183. package/dist/cjs/location-flow-item.cjs.entry.js +1 -1
  184. package/dist/cjs/map-select-tools_3.cjs.entry.js +5 -5
  185. package/dist/cjs/{mapViewUtils-82018df6.js → mapViewUtils-6e46ba33.js} +16 -0
  186. package/dist/cjs/pci-calculator.cjs.entry.js +1 -1
  187. package/dist/cjs/public-notification.cjs.entry.js +3 -3
  188. package/dist/cjs/refine-results-flow-item.cjs.entry.js +1 -1
  189. package/dist/cjs/share-item.cjs.entry.js +1 -1
  190. package/dist/cjs/solution-configuration.cjs.entry.js +3 -3
  191. package/dist/cjs/solution-contents_3.cjs.entry.js +3 -3
  192. package/dist/cjs/solution-item-icon.cjs.entry.js +1 -1
  193. package/dist/cjs/solutions-components.cjs.js +1 -1
  194. package/dist/cjs/spatial-ref.cjs.entry.js +1 -1
  195. package/dist/collection/collection-manifest.json +1 -0
  196. package/dist/collection/components/create-related-feature/create-related-feature.css +8 -0
  197. package/dist/collection/components/create-related-feature/create-related-feature.js +426 -0
  198. package/dist/collection/components/create-related-feature/test/create-related-feature.e2e.js +14 -0
  199. package/dist/collection/components/create-related-feature/test/create-related-feature.spec.js +22 -0
  200. package/dist/collection/components/crowdsource-manager/crowdsource-manager.js +1 -1
  201. package/dist/collection/components/crowdsource-reporter/crowdsource-reporter.css +1 -0
  202. package/dist/collection/components/crowdsource-reporter/crowdsource-reporter.js +370 -221
  203. package/dist/collection/components/deduct-calculator/deduct-calculator.js +1 -1
  204. package/dist/collection/components/delete-button/delete-button.js +1 -1
  205. package/dist/collection/components/edit-card/edit-card.js +1 -1
  206. package/dist/collection/components/feature-comments/feature-comments.js +1 -1
  207. package/dist/collection/components/feature-details/feature-details.css +6 -3
  208. package/dist/collection/components/feature-details/feature-details.js +95 -9
  209. package/dist/collection/components/feature-form-flow-item/feature-form-flow-item.js +1 -1
  210. package/dist/collection/components/feature-list/feature-list.css +6 -1
  211. package/dist/collection/components/feature-list/feature-list.js +133 -13
  212. package/dist/collection/components/features-flow-item/features-flow-item.js +1 -1
  213. package/dist/collection/components/floor-filter/floor-filter.js +1 -1
  214. package/dist/collection/components/info-card/info-card.js +11 -7
  215. package/dist/collection/components/json-editor/json-editor.js +1 -1
  216. package/dist/collection/components/layer-list/layer-list.js +3 -23
  217. package/dist/collection/components/layer-table/layer-table.css +4 -0
  218. package/dist/collection/components/layer-table/layer-table.js +2 -2
  219. package/dist/collection/components/layout-manager/layout-manager.js +1 -1
  220. package/dist/collection/components/list-flow-item/list-flow-item.js +1 -1
  221. package/dist/collection/components/location-flow-item/location-flow-item.js +1 -1
  222. package/dist/collection/components/map-card/map-card.js +1 -1
  223. package/dist/collection/components/map-draw-tools/map-draw-tools.js +1 -1
  224. package/dist/collection/components/map-fullscreen/map-fullscreen.js +1 -1
  225. package/dist/collection/components/map-layer-picker/map-layer-picker.js +1 -1
  226. package/dist/collection/components/map-legend/map-legend.js +1 -1
  227. package/dist/collection/components/map-picker/map-picker.js +1 -1
  228. package/dist/collection/components/map-search/map-search.js +1 -1
  229. package/dist/collection/components/map-select-tools/map-select-tools.js +1 -1
  230. package/dist/collection/components/map-tools/map-tools.js +1 -1
  231. package/dist/collection/components/pci-calculator/pci-calculator.js +1 -1
  232. package/dist/collection/components/pdf-download/pdf-download.js +1 -1
  233. package/dist/collection/components/public-notification/public-notification.js +1 -1
  234. package/dist/collection/components/refine-results-flow-item/refine-results-flow-item.js +1 -1
  235. package/dist/collection/components/refine-selection/refine-selection.js +1 -1
  236. package/dist/collection/components/share-item/share-item.js +1 -1
  237. package/dist/collection/components/solution-configuration/solution-configuration.js +3 -3
  238. package/dist/collection/components/solution-contents/solution-contents.js +1 -1
  239. package/dist/collection/components/solution-item/solution-item.js +1 -1
  240. package/dist/collection/components/solution-item-details/solution-item-details.js +1 -1
  241. package/dist/collection/components/solution-item-icon/solution-item-icon.js +1 -1
  242. package/dist/collection/components/solution-item-sharing/solution-item-sharing.js +1 -1
  243. package/dist/collection/components/solution-organization-variables/solution-organization-variables.js +1 -1
  244. package/dist/collection/components/solution-resource-item/solution-resource-item.js +1 -1
  245. package/dist/collection/components/solution-spatial-ref/solution-spatial-ref.js +1 -1
  246. package/dist/collection/components/solution-template-data/solution-template-data.js +1 -1
  247. package/dist/collection/components/solution-variables/solution-variables.js +1 -1
  248. package/dist/collection/components/spatial-ref/spatial-ref.js +1 -1
  249. package/dist/collection/demos/crowdsource-manager.html +3 -3
  250. package/dist/collection/utils/downloadUtils.js +0 -1
  251. package/dist/collection/utils/interfaces.ts +5 -0
  252. package/dist/collection/utils/mapViewUtils.js +15 -0
  253. package/dist/collection/utils/mapViewUtils.ts +19 -1
  254. package/dist/collection/utils/pdfUtils.js +29 -34
  255. package/dist/collection/utils/pdfUtils.ts +40 -47
  256. package/dist/components/create-related-feature.d.ts +11 -0
  257. package/dist/components/create-related-feature.js +11 -0
  258. package/dist/components/create-related-feature2.js +274 -0
  259. package/dist/components/crowdsource-manager.js +1 -1
  260. package/dist/components/crowdsource-reporter.js +287 -148
  261. package/dist/components/deduct-calculator2.js +1 -1
  262. package/dist/components/delete-button2.js +1 -1
  263. package/dist/components/downloadUtils.js +29 -33
  264. package/dist/components/edit-card2.js +1 -1
  265. package/dist/components/feature-comments.js +1 -1
  266. package/dist/components/feature-details2.js +163 -40
  267. package/dist/components/feature-form-flow-item.js +1 -1
  268. package/dist/components/feature-list2.js +64 -16
  269. package/dist/components/features-flow-item.js +1 -1
  270. package/dist/components/floor-filter2.js +1 -1
  271. package/dist/components/info-card2.js +9 -5
  272. package/dist/components/json-editor2.js +1 -1
  273. package/dist/components/layer-list2.js +3 -7
  274. package/dist/components/layer-table2.js +3 -3
  275. package/dist/components/layout-manager.js +1 -1
  276. package/dist/components/list-flow-item.js +1 -1
  277. package/dist/components/location-flow-item.js +1 -1
  278. package/dist/components/map-card2.js +1 -1
  279. package/dist/components/map-draw-tools2.js +1 -1
  280. package/dist/components/map-fullscreen2.js +1 -1
  281. package/dist/components/map-layer-picker2.js +1 -1
  282. package/dist/components/map-legend2.js +1 -1
  283. package/dist/components/map-picker2.js +1 -1
  284. package/dist/components/map-search2.js +1 -1
  285. package/dist/components/map-select-tools2.js +1 -1
  286. package/dist/components/map-tools2.js +1 -1
  287. package/dist/components/mapViewUtils.js +16 -1
  288. package/dist/components/pci-calculator.js +1 -1
  289. package/dist/components/pdf-download2.js +1 -1
  290. package/dist/components/public-notification.js +1 -1
  291. package/dist/components/refine-results-flow-item.js +1 -1
  292. package/dist/components/refine-selection2.js +2 -2
  293. package/dist/components/share-item.js +1 -1
  294. package/dist/components/solution-configuration.js +3 -3
  295. package/dist/components/solution-contents2.js +1 -1
  296. package/dist/components/solution-item-details2.js +1 -1
  297. package/dist/components/solution-item-icon2.js +1 -1
  298. package/dist/components/solution-item-sharing2.js +1 -1
  299. package/dist/components/solution-item2.js +1 -1
  300. package/dist/components/solution-organization-variables2.js +1 -1
  301. package/dist/components/solution-resource-item2.js +1 -1
  302. package/dist/components/solution-spatial-ref2.js +1 -1
  303. package/dist/components/solution-template-data2.js +1 -1
  304. package/dist/components/solution-variables2.js +1 -1
  305. package/dist/components/spatial-ref2.js +1 -1
  306. package/dist/esm/basemap-gallery_7.entry.js +6 -6
  307. package/dist/esm/buffer-tools_3.entry.js +1 -1
  308. package/dist/esm/calcite-alert_4.entry.js +12 -8
  309. package/dist/esm/calcite-dropdown_4.entry.js +2 -2
  310. package/dist/esm/calcite-flow_6.entry.js +321 -256
  311. package/dist/esm/calcite-shell-panel_14.entry.js +7 -7
  312. package/dist/esm/card-manager_3.entry.js +6 -6
  313. package/dist/esm/crowdsource-manager.entry.js +2 -2
  314. package/dist/esm/crowdsource-reporter.entry.js +182 -55
  315. package/dist/esm/deduct-calculator.entry.js +1 -1
  316. package/dist/esm/{downloadUtils-fa6e5c37.js → downloadUtils-aab31bfe.js} +31 -35
  317. package/dist/esm/feature-comments.entry.js +1 -1
  318. package/dist/esm/feature-form-flow-item.entry.js +1 -1
  319. package/dist/esm/feature-list.entry.js +293 -0
  320. package/dist/esm/features-flow-item.entry.js +1 -1
  321. package/dist/esm/{index.es-114545fc.js → index.es-43ba3006.js} +2 -2
  322. package/dist/esm/layout-manager.entry.js +1 -1
  323. package/dist/esm/list-flow-item.entry.js +1 -1
  324. package/dist/esm/loader.js +1 -1
  325. package/dist/esm/location-flow-item.entry.js +1 -1
  326. package/dist/esm/map-select-tools_3.entry.js +5 -5
  327. package/dist/esm/{mapViewUtils-c83c03a4.js → mapViewUtils-4618ddb8.js} +16 -1
  328. package/dist/esm/pci-calculator.entry.js +1 -1
  329. package/dist/esm/public-notification.entry.js +3 -3
  330. package/dist/esm/refine-results-flow-item.entry.js +1 -1
  331. package/dist/esm/share-item.entry.js +1 -1
  332. package/dist/esm/solution-configuration.entry.js +3 -3
  333. package/dist/esm/solution-contents_3.entry.js +3 -3
  334. package/dist/esm/solution-item-icon.entry.js +1 -1
  335. package/dist/esm/solutions-components.js +1 -1
  336. package/dist/esm/spatial-ref.entry.js +1 -1
  337. package/dist/solutions-components/demos/crowdsource-manager.html +3 -3
  338. package/dist/solutions-components/{p-afdc6bb2.entry.js → p-102b1f94.entry.js} +1 -1
  339. package/dist/solutions-components/p-22aece81.entry.js +6 -0
  340. package/dist/solutions-components/p-28c6906c.entry.js +6 -0
  341. package/dist/solutions-components/{p-71bdc77f.entry.js → p-33845a79.entry.js} +1 -1
  342. package/dist/solutions-components/{p-16ac309d.entry.js → p-3470c0f7.entry.js} +1 -1
  343. package/dist/solutions-components/p-3750c969.entry.js +6 -0
  344. package/dist/solutions-components/{p-ee457c15.js → p-37fc92db.js} +3 -3
  345. package/dist/solutions-components/{p-59c92ba2.entry.js → p-3a2e0188.entry.js} +1 -1
  346. package/dist/solutions-components/p-3fae9775.entry.js +6 -0
  347. package/dist/solutions-components/{p-0f139e3e.entry.js → p-54324eaa.entry.js} +1 -1
  348. package/dist/solutions-components/{p-d9c89479.js → p-583e5dd0.js} +1 -1
  349. package/dist/solutions-components/{p-69935f68.entry.js → p-667c022f.entry.js} +1 -1
  350. package/dist/solutions-components/{p-247edfb2.js → p-667caa6b.js} +1 -1
  351. package/dist/solutions-components/p-71de367b.entry.js +6 -0
  352. package/dist/solutions-components/{p-32fed174.entry.js → p-84a5d221.entry.js} +1 -1
  353. package/dist/solutions-components/{p-6e8782d1.entry.js → p-88f73319.entry.js} +1 -1
  354. package/dist/solutions-components/p-8a81f3c7.entry.js +6 -0
  355. package/dist/solutions-components/{p-288592d4.entry.js → p-92ed8d5d.entry.js} +1 -1
  356. package/dist/solutions-components/p-aa06f4d1.entry.js +6 -0
  357. package/dist/solutions-components/{p-67ee4afe.entry.js → p-b3160299.entry.js} +4 -4
  358. package/dist/solutions-components/p-b6d47bab.entry.js +17 -0
  359. package/dist/solutions-components/{p-bcf20616.entry.js → p-b76b5310.entry.js} +1 -1
  360. package/dist/solutions-components/{p-62994fb8.entry.js → p-bb0c7be3.entry.js} +3 -3
  361. package/dist/solutions-components/{p-7fdcce90.entry.js → p-bf57dbfd.entry.js} +2 -2
  362. package/dist/solutions-components/p-c047a6fc.entry.js +6 -0
  363. package/dist/solutions-components/{p-83997457.entry.js → p-d84fe0ee.entry.js} +2 -2
  364. package/dist/solutions-components/p-e9176a44.entry.js +6 -0
  365. package/dist/solutions-components/p-e947332f.entry.js +6 -0
  366. package/dist/solutions-components/{p-568c465e.entry.js → p-fc665a1a.entry.js} +1 -1
  367. package/dist/solutions-components/solutions-components.esm.js +1 -1
  368. package/dist/solutions-components/utils/interfaces.ts +5 -0
  369. package/dist/solutions-components/utils/mapViewUtils.ts +19 -1
  370. package/dist/solutions-components/utils/pdfUtils.ts +40 -47
  371. package/dist/types/assets/arcgis-pdf-creator/PDFLabels.d.ts +218 -0
  372. package/dist/types/components/create-related-feature/create-related-feature.d.ts +113 -0
  373. package/dist/types/components/crowdsource-reporter/crowdsource-reporter.d.ts +197 -99
  374. package/dist/types/components/feature-details/feature-details.d.ts +31 -0
  375. package/dist/types/components/feature-list/feature-list.d.ts +31 -2
  376. package/dist/types/components/info-card/info-card.d.ts +6 -2
  377. package/dist/types/components/layer-list/layer-list.d.ts +0 -5
  378. package/dist/types/components.d.ts +131 -12
  379. package/dist/types/preact.d.ts +8 -1
  380. package/dist/types/utils/interfaces.d.ts +4 -0
  381. package/dist/types/utils/mapViewUtils.d.ts +7 -0
  382. package/package.json +1 -1
  383. package/dist/solutions-components/p-28b4b325.entry.js +0 -6
  384. package/dist/solutions-components/p-36d3476c.entry.js +0 -17
  385. package/dist/solutions-components/p-43d0788d.entry.js +0 -6
  386. package/dist/solutions-components/p-452d2d38.entry.js +0 -6
  387. package/dist/solutions-components/p-48b2469f.entry.js +0 -6
  388. package/dist/solutions-components/p-4f0712e2.entry.js +0 -6
  389. package/dist/solutions-components/p-535c103e.entry.js +0 -6
  390. package/dist/solutions-components/p-7ca416ab.entry.js +0 -6
  391. package/dist/solutions-components/p-8e337f80.entry.js +0 -6
  392. package/dist/solutions-components/p-d62b99ff.entry.js +0 -6
@@ -3,48 +3,49 @@
3
3
  * Licensed under the Apache License, Version 2.0
4
4
  * http://www.apache.org/licenses/LICENSE-2.0
5
5
  */
6
- import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';
6
+ import { proxyCustomElement, HTMLElement, createEvent, h, Host, Fragment } from '@stencil/core/internal/client';
7
7
  import { g as getLocaleComponentStrings } from './locale.js';
8
8
  import { l as loadModules } from './loadModules.js';
9
- import { a as getAllLayers, c as getFeatureLayerView, h as highlightFeatures, d as getMapLayerHash, g as getLayerOrTable } from './mapViewUtils.js';
9
+ import { g as getLayerOrTable, a as getAllLayers, f as getAllTables, c as getFeatureLayerView, h as highlightFeatures, d as getMapLayerHash } from './mapViewUtils.js';
10
10
  import { q as queryFeaturesByID } from './queryUtils.js';
11
- import { d as defineCustomElement$K } from './action.js';
12
- import { d as defineCustomElement$J } from './action-menu.js';
13
- import { d as defineCustomElement$I } from './alert.js';
14
- import { d as defineCustomElement$H } from './block.js';
15
- import { d as defineCustomElement$G } from './button.js';
16
- import { d as defineCustomElement$F } from './checkbox.js';
17
- import { d as defineCustomElement$E } from './chip.js';
18
- import { d as defineCustomElement$D } from './combobox.js';
19
- import { d as defineCustomElement$C } from './combobox-item.js';
20
- import { d as defineCustomElement$B } from './date-picker.js';
21
- import { d as defineCustomElement$A } from './date-picker-day.js';
22
- import { d as defineCustomElement$z } from './date-picker-month.js';
23
- import { d as defineCustomElement$y } from './date-picker-month-header.js';
24
- import { d as defineCustomElement$x } from './filter2.js';
25
- import { d as defineCustomElement$w } from './flow.js';
26
- import { d as defineCustomElement$v } from './flow-item.js';
27
- import { d as defineCustomElement$u } from './graph.js';
28
- import { d as defineCustomElement$t } from './handle.js';
29
- import { d as defineCustomElement$s } from './icon.js';
30
- import { d as defineCustomElement$r } from './input.js';
31
- import { d as defineCustomElement$q } from './input-date-picker.js';
32
- import { d as defineCustomElement$p } from './input-text.js';
33
- import { d as defineCustomElement$o } from './list.js';
34
- import { d as defineCustomElement$n } from './list-item.js';
35
- import { d as defineCustomElement$m } from './loader.js';
36
- import { d as defineCustomElement$l } from './modal.js';
37
- import { d as defineCustomElement$k } from './notice.js';
38
- import { d as defineCustomElement$j } from './pagination.js';
39
- import { d as defineCustomElement$i } from './panel.js';
40
- import { d as defineCustomElement$h } from './popover.js';
41
- import { d as defineCustomElement$g } from './progress.js';
42
- import { d as defineCustomElement$f } from './scrim.js';
43
- import { d as defineCustomElement$e } from './shell.js';
44
- import { d as defineCustomElement$d } from './slider.js';
45
- import { d as defineCustomElement$c } from './stack.js';
46
- import { d as defineCustomElement$b } from './tooltip.js';
47
- import { d as defineCustomElement$a } from './create-feature2.js';
11
+ import { d as defineCustomElement$L } from './action.js';
12
+ import { d as defineCustomElement$K } from './action-menu.js';
13
+ import { d as defineCustomElement$J } from './alert.js';
14
+ import { d as defineCustomElement$I } from './block.js';
15
+ import { d as defineCustomElement$H } from './button.js';
16
+ import { d as defineCustomElement$G } from './checkbox.js';
17
+ import { d as defineCustomElement$F } from './chip.js';
18
+ import { d as defineCustomElement$E } from './combobox.js';
19
+ import { d as defineCustomElement$D } from './combobox-item.js';
20
+ import { d as defineCustomElement$C } from './date-picker.js';
21
+ import { d as defineCustomElement$B } from './date-picker-day.js';
22
+ import { d as defineCustomElement$A } from './date-picker-month.js';
23
+ import { d as defineCustomElement$z } from './date-picker-month-header.js';
24
+ import { d as defineCustomElement$y } from './filter2.js';
25
+ import { d as defineCustomElement$x } from './flow.js';
26
+ import { d as defineCustomElement$w } from './flow-item.js';
27
+ import { d as defineCustomElement$v } from './graph.js';
28
+ import { d as defineCustomElement$u } from './handle.js';
29
+ import { d as defineCustomElement$t } from './icon.js';
30
+ import { d as defineCustomElement$s } from './input.js';
31
+ import { d as defineCustomElement$r } from './input-date-picker.js';
32
+ import { d as defineCustomElement$q } from './input-text.js';
33
+ import { d as defineCustomElement$p } from './list.js';
34
+ import { d as defineCustomElement$o } from './list-item.js';
35
+ import { d as defineCustomElement$n } from './loader.js';
36
+ import { d as defineCustomElement$m } from './modal.js';
37
+ import { d as defineCustomElement$l } from './notice.js';
38
+ import { d as defineCustomElement$k } from './pagination.js';
39
+ import { d as defineCustomElement$j } from './panel.js';
40
+ import { d as defineCustomElement$i } from './popover.js';
41
+ import { d as defineCustomElement$h } from './progress.js';
42
+ import { d as defineCustomElement$g } from './scrim.js';
43
+ import { d as defineCustomElement$f } from './shell.js';
44
+ import { d as defineCustomElement$e } from './slider.js';
45
+ import { d as defineCustomElement$d } from './stack.js';
46
+ import { d as defineCustomElement$c } from './tooltip.js';
47
+ import { d as defineCustomElement$b } from './create-feature2.js';
48
+ import { d as defineCustomElement$a } from './create-related-feature2.js';
48
49
  import { d as defineCustomElement$9 } from './delete-button2.js';
49
50
  import { d as defineCustomElement$8 } from './edit-card2.js';
50
51
  import { d as defineCustomElement$7 } from './feature-details2.js';
@@ -54,7 +55,7 @@ import { d as defineCustomElement$4 } from './instant-apps-filter-list2.js';
54
55
  import { d as defineCustomElement$3 } from './instant-apps-social-share2.js';
55
56
  import { d as defineCustomElement$2 } from './layer-list2.js';
56
57
 
57
- const crowdsourceReporterCss = ":host{display:block;--calcite-label-margin-bottom:0px;--solutions-theme-foreground-color:var(--calcite-color-foreground-1)}.width-full{width:100% !important}.width-0{width:0}.height-full{height:100% !important}.height-0{height:0}.overflow-hidden{overflow:hidden}.border{border:1px solid var(--calcite-color-border-3)}.notice-msg{padding:10px;width:calc(100% - 20px)}.progress-bar{padding:12px}.footer-top-button{padding-bottom:7px}.footer-button{height:35px}.feature-pagination{align-items:center;margin:5% 124%;display:flex}.pagination-count{width:32px;color:var(--calcite-color-brand);border-bottom:1px solid var(--calcite-color-brand)}.report-submitted-msg{position:absolute;z-index:1000}";
58
+ const crowdsourceReporterCss = ":host{display:block;--calcite-label-margin-bottom:0px;--solutions-theme-foreground-color:var(--calcite-color-foreground-1)}.width-full{width:100% !important}.width-0{width:0}.height-full{height:100% !important}.height-0{height:0}.overflow-hidden{overflow:hidden}.border{border:1px solid var(--calcite-color-border-3)}.notice-msg{padding:10px;width:calc(100% - 20px)}.progress-bar{padding:12px}.footer-top-button{padding-bottom:7px}.footer-button{height:35px}.feature-pagination{align-items:center;margin:5% 124%;display:flex}.pagination-count{width:32px;color:var(--calcite-color-brand);border-bottom:1px solid var(--calcite-color-brand);font-weight:bold}.report-submitted-msg{position:absolute;z-index:1000}";
58
59
  const CrowdsourceReporterStyle0 = crowdsourceReporterCss;
59
60
 
60
61
  const CrowdsourceReporter$1 = /*@__PURE__*/ proxyCustomElement(class CrowdsourceReporter extends HTMLElement {
@@ -62,48 +63,52 @@ const CrowdsourceReporter$1 = /*@__PURE__*/ proxyCustomElement(class Crowdsource
62
63
  super();
63
64
  this.__registerHost();
64
65
  this.togglePanel = createEvent(this, "togglePanel", 7);
65
- //HARDCODED IN EN
66
- this._noLayerToDisplayErrorMsg = "Web map does not contain any editable layers.";
66
+ this.center = undefined;
67
+ this.coverPageEnabled = undefined;
68
+ this.defaultWebmap = "";
67
69
  this.description = undefined;
68
- this.isMobile = undefined;
69
70
  this.enableAnonymousAccess = undefined;
70
71
  this.enableAnonymousComments = undefined;
71
72
  this.enableComments = undefined;
73
+ this.enableHome = true;
72
74
  this.enableLogin = undefined;
73
75
  this.enableNewReports = undefined;
76
+ this.enableSearch = true;
77
+ this.enableZoom = true;
78
+ this.isMobile = undefined;
79
+ this.layerExpressions = [];
80
+ this.layerId = undefined;
81
+ this.level = undefined;
74
82
  this.loginTitle = undefined;
83
+ this.mapInfos = [];
75
84
  this.mapView = undefined;
76
- this.layerId = undefined;
77
85
  this.objectId = undefined;
78
- this.center = undefined;
79
- this.level = undefined;
80
86
  this.reportButtonText = undefined;
81
- this.reportsHeader = undefined;
82
87
  this.reportingOptions = undefined;
88
+ this.reportsHeader = undefined;
83
89
  this.reportSubmittedMessage = undefined;
84
90
  this.searchConfiguration = undefined;
85
91
  this.showComments = undefined;
86
- this.defaultWebmap = "";
87
- this.enableSearch = true;
88
- this.enableHome = true;
89
- this.mapInfos = [];
90
92
  this.theme = "light";
91
- this.enableZoom = true;
92
93
  this.zoomToScale = undefined;
93
- this.layerExpressions = [];
94
- this._mapInfo = undefined;
94
+ this._featureCreationFailedErrorMsg = undefined;
95
+ this._filterActive = false;
96
+ this._filterOpen = false;
95
97
  this._flowItems = [];
96
- this._sidePanelCollapsed = false;
97
- this._translations = undefined;
98
98
  this._hasValidLayers = false;
99
- this._selectedLayerName = undefined;
99
+ this._loadingFeatureDetails = undefined;
100
+ this._mapInfo = undefined;
100
101
  this._reportSubmitted = false;
102
+ this._selectedLayerName = undefined;
101
103
  this._showSubmitCancelButton = false;
102
- this._loadingFeatureDetails = undefined;
103
- this._featureCreationFailedErrorMsg = undefined;
104
+ this._showLoadingIndicator = false;
105
+ this._sidePanelCollapsed = false;
106
+ this._translations = undefined;
104
107
  this._updatedProgressBarStatus = 0.25;
105
- this._filterOpen = false;
106
- this._filterActive = false;
108
+ this._updatedSorting = undefined;
109
+ this._updatedSortOption = "sortNewest";
110
+ this._commentSubmitted = false;
111
+ this._addingCommentFailed = false;
107
112
  }
108
113
  //--------------------------------------------------------------------------
109
114
  //
@@ -130,10 +135,10 @@ const CrowdsourceReporter$1 = /*@__PURE__*/ proxyCustomElement(class Crowdsource
130
135
  */
131
136
  async selectionChanged(evt) {
132
137
  void this.updatingFeatureDetails(true);
133
- this.setCurrentFeature(evt.detail.selectedFeature[0]);
138
+ await this.setCurrentFeature(evt.detail.selectedFeature[0]);
134
139
  void this.highlightOnMap(evt.detail.selectedFeature[0]);
135
- this.selectedFeatureIndex = evt.detail.selectedFeatureIndex;
136
- //update the feature details to reflect the like dislike values
140
+ this._selectedFeatureIndex = evt.detail.selectedFeatureIndex;
141
+ //update the feature details to reflect the like, dislike and comment values
137
142
  await this._featureDetails.refresh(evt.detail.selectedFeature[0]);
138
143
  }
139
144
  //--------------------------------------------------------------------------
@@ -153,7 +158,7 @@ const CrowdsourceReporter$1 = /*@__PURE__*/ proxyCustomElement(class Crowdsource
153
158
  await this._getTranslations();
154
159
  await ((_a = this.mapView) === null || _a === void 0 ? void 0 : _a.when(async () => {
155
160
  //set configured reporting layers array
156
- this.layers = this.reportingOptions ? Object.keys(this.reportingOptions).filter((layerId) => {
161
+ this._layers = this.reportingOptions ? Object.keys(this.reportingOptions).filter((layerId) => {
157
162
  return this.reportingOptions[layerId].reporting;
158
163
  }) : [];
159
164
  await this.setMapView();
@@ -164,7 +169,7 @@ const CrowdsourceReporter$1 = /*@__PURE__*/ proxyCustomElement(class Crowdsource
164
169
  */
165
170
  render() {
166
171
  const themeClass = this.theme === "dark" ? "calcite-mode-dark" : "calcite-mode-light";
167
- return (h(Host, { key: '197ae2c1b96231124830a044c5a3642107987c85' }, this._reportSubmitted && h("calcite-alert", { key: '2cbdbc22994787e0ac1c204d5043c6c0409503e8', "auto-close": true, class: themeClass + " report-submitted-msg", icon: "check-circle", kind: "success", label: "", onCalciteAlertClose: () => { this._reportSubmitted = false; }, open: true, placement: "top" }, h("div", { key: '88ae73773b51678409fa69e68931714b5fdd951a', slot: "message" }, this.reportSubmittedMessage ? this.reportSubmittedMessage : this._translations.submitMsg)), this._featureCreationFailedErrorMsg && h("calcite-alert", { key: '4b0fa9ae2e597d4a44fe2624debe20b2bbeed037', "auto-close": true, class: themeClass, icon: "x-octagon", kind: "danger", label: "", onCalciteAlertClose: () => { this._featureCreationFailedErrorMsg = ""; }, open: true, placement: "top" }, h("div", { key: '108c6a3b06c3f9c52ff15e158d20a39422bb2ad8', slot: "title" }, this._translations.error), h("div", { key: 'c0e54e5665480a5cbe9e4f4b8a05e3c56c20d825', slot: "message" }, this._featureCreationFailedErrorMsg)), h("div", { key: 'c3417032902e0fc8a6fc33909b2f2eb71ba72650' }, h("calcite-shell", { key: 'e5ac5faedf24bd22aa62f0d0f5a4925b2c5e06d4', "content-behind": true }, this._getReporter())), this.filterModal()));
172
+ return (h(Host, { key: 'b57e18eee85093b3829573a33806b81d8e5b9021' }, this._reportSubmitted && h("calcite-alert", { key: '6f45d4435c53c7fbed850098efebf77346f17c12', "auto-close": true, class: themeClass + " report-submitted-msg", icon: "check-circle", kind: "success", label: "", onCalciteAlertClose: () => { this._reportSubmitted = false; }, open: true, placement: "top" }, h("div", { key: '7eaecb6ba69aa0b6b45b90e7b751fb580e8557b2', slot: "message" }, this.reportSubmittedMessage ? this.reportSubmittedMessage : this._translations.submitMsg)), this._featureCreationFailedErrorMsg && h("calcite-alert", { key: '2997fdcdf9615ef1cea758111f50903740d863d8', "auto-close": true, class: themeClass, icon: "x-octagon", kind: "danger", label: "", onCalciteAlertClose: () => { this._featureCreationFailedErrorMsg = ""; }, open: true, placement: "top" }, h("div", { key: '4e8f89c2e26b37507b6fd7047096e8f68355bbd2', slot: "title" }, this._translations.error), h("div", { key: 'e514439bb6f88f1405d4a1c5618d0579b08210b9', slot: "message" }, this._featureCreationFailedErrorMsg)), this._commentSubmitted && h("calcite-alert", { key: '97a51ea4a07a897f071c9c2c34abcf5332aff76b', "auto-close": true, class: 'report-submitted ' + themeClass, icon: "check-circle", kind: "success", label: "", onCalciteAlertClose: () => { this._commentSubmitted = false; }, open: true, placement: "top" }, h("div", { key: '05f552f67f2d7da099aa317c3e60841570a8dbfc', slot: "message" }, this._translations.commentSubmittedMsg)), this._addingCommentFailed && h("calcite-alert", { key: 'fc78f2f7fb3c501e999c9783e199e732fdb5626d', "auto-close": true, class: themeClass, icon: "x-octagon", kind: "danger", label: "", onCalciteAlertClose: () => { this._addingCommentFailed = false; }, open: true, placement: "top" }, h("div", { key: '617dbf2afc438481409e3a8ca268b95d77969499', slot: "title" }, this._translations.error), h("div", { key: '5da78c288010c03114c88841fbd9fc97c7366de0', slot: "message" }, this._translations.addingCommentFailedMsg)), h("div", { key: 'ded738076efa1f334dc26dc39b3fb57b1ac33de2' }, h("calcite-shell", { key: 'fa2a7c6c3dcd761a7517b9922c255459258fbec9', "content-behind": true }, this._getReporter())), this.filterModal()));
168
173
  }
169
174
  //--------------------------------------------------------------------------
170
175
  //
@@ -189,8 +194,9 @@ const CrowdsourceReporter$1 = /*@__PURE__*/ proxyCustomElement(class Crowdsource
189
194
  * @param layerId string layerId of the selected layer
190
195
  * @param layerName string layerName of the selected layer
191
196
  */
192
- setSelectedLayer(layerId, layerName) {
197
+ async setSelectedLayer(layerId, layerName) {
193
198
  this._selectedLayerId = layerId;
199
+ this._selectedLayer = await getLayerOrTable(this.mapView, layerId);
194
200
  this._selectedLayerName = layerName;
195
201
  //show only current layer on map and hide other valid editable layers
196
202
  //if layerId is empty then show all the layers on map
@@ -221,6 +227,12 @@ const CrowdsourceReporter$1 = /*@__PURE__*/ proxyCustomElement(class Crowdsource
221
227
  case "feature-create":
222
228
  renderLists.push(this.getFeatureCreateFlowItem());
223
229
  break;
230
+ case "comment-details":
231
+ renderLists.push(this.getCommentDetailsFlowItem());
232
+ break;
233
+ case "add-comment":
234
+ renderLists.push(this.getAddCommentFlowItem());
235
+ break;
224
236
  }
225
237
  });
226
238
  const themeClass = this.theme === "dark" ? "calcite-mode-dark" : "calcite-mode-light";
@@ -237,7 +249,7 @@ const CrowdsourceReporter$1 = /*@__PURE__*/ proxyCustomElement(class Crowdsource
237
249
  //get layer expression for current selected layer
238
250
  const currentLayersExpressions = this.layerExpressions ? this.layerExpressions.filter((exp) => exp.id === this._selectedLayerId) : [];
239
251
  return (currentLayersExpressions.length > 0 &&
240
- h("calcite-modal", { "aria-labelledby": "modal-title", class: "modal", kind: "brand", onCalciteModalClose: () => void this._closeFilter(), open: this._filterOpen, widthScale: "s" }, h("div", { class: "display-flex align-center", id: "modal-title", slot: "header" }, (_b = (_a = this._translations) === null || _a === void 0 ? void 0 : _a.filterLayerTitle) === null || _b === void 0 ? void 0 : _b.replace("{{title}}", this._selectedLayerName)), h("div", { slot: "content" }, h("instant-apps-filter-list", { autoUpdateUrl: false, closeBtn: true, closeBtnOnClick: async () => this._closeFilter(), comboboxOverlayPositioning: "fixed", layerExpressions: currentLayersExpressions, onFilterListReset: () => this._handleFilterListReset(), onFilterUpdate: () => this._handleFilterUpdate(), ref: (el) => this._filterList = el, view: this.mapView, zoomBtn: false }))));
252
+ h("calcite-modal", { "aria-labelledby": "modal-title", class: "modal", kind: "brand", onCalciteModalClose: () => void this._closeFilter(), open: this._filterOpen, widthScale: "s" }, h("div", { class: "display-flex align-center", id: "modal-title", slot: "header" }, (_b = (_a = this._translations) === null || _a === void 0 ? void 0 : _a.filterLayerTitle) === null || _b === void 0 ? void 0 : _b.replace("{{title}}", this._selectedLayerName)), h("div", { slot: "content" }, h("instant-apps-filter-list", { autoUpdateUrl: false, closeBtn: true, closeBtnOnClick: () => void this._closeFilter(), comboboxOverlayPositioning: "fixed", layerExpressions: currentLayersExpressions, onFilterListReset: () => this._handleFilterListReset(), onFilterUpdate: () => this._handleFilterUpdate(), ref: (el) => this._filterList = el, view: this.mapView, zoomBtn: false }))));
241
253
  }
242
254
  /**
243
255
  * Close the filter modal
@@ -255,6 +267,28 @@ const CrowdsourceReporter$1 = /*@__PURE__*/ proxyCustomElement(class Crowdsource
255
267
  _toggleFilter() {
256
268
  this._filterOpen = !this._filterOpen;
257
269
  }
270
+ /**
271
+ * On sort option click update the sort field and sort order
272
+ * @param sortField sort field
273
+ * @param sortOrder sort order
274
+ */
275
+ async sortOptionClick(sortField, sortOrder, sortOption) {
276
+ this._updatedSorting = {
277
+ field: sortField,
278
+ order: sortOrder
279
+ };
280
+ this._updatedSortOption = sortOption;
281
+ }
282
+ /**
283
+ * On sort button click, display the sorting options
284
+ * @returns Sort options list
285
+ */
286
+ _toggleSort() {
287
+ const canSortByVotes = this.reportingOptions && this.reportingOptions[this._selectedLayerId] &&
288
+ this.reportingOptions[this._selectedLayerId].like && this.reportingOptions[this._selectedLayerId].likeField;
289
+ return (h("calcite-popover", { autoClose: true, label: "", offsetDistance: 0, placement: this.isMobile ? "leading-start" : "auto", pointerDisabled: true, referenceElement: "sort-popover" }, h("calcite-list", { "selection-mode": "single" }, h("calcite-list-item", { label: this._translations.sortNewest, onCalciteListItemSelect: () => { void this.sortOptionClick(this._selectedLayer.objectIdField, "desc", "sortNewest"); }, selected: this._updatedSortOption === "sortNewest", value: "sortNewest" }), h("calcite-list-item", { label: this._translations.sortOldest, onCalciteListItemSelect: () => { void this.sortOptionClick(this._selectedLayer.objectIdField, "asc", "sortOldest"); }, selected: this._updatedSortOption === "sortOldest", value: "sortOldest" }), canSortByVotes &&
290
+ h(Fragment, null, h("calcite-list-item", { label: this._translations.sortHighestVoted, onCalciteListItemSelect: () => { void this.sortOptionClick(this.reportingOptions[this._selectedLayerId].likeField, "desc", "sortHighestVoted"); }, selected: this._updatedSortOption === "sortHighestVoted", value: "sortHighestVoted" }), h("calcite-list-item", { label: this._translations.sortLowestVoted, onCalciteListItemSelect: () => { void this.sortOptionClick(this.reportingOptions[this._selectedLayerId].likeField, "asc", "sortLowestVoted"); }, selected: this._updatedSortOption === "sortLowestVoted", value: "sortLowestVoted" })))));
291
+ }
258
292
  /**
259
293
  * Reset the filter active prop
260
294
  * @protected
@@ -266,7 +300,7 @@ const CrowdsourceReporter$1 = /*@__PURE__*/ proxyCustomElement(class Crowdsource
266
300
  void this._featureList.refresh();
267
301
  }
268
302
  /**
269
- * Check if the layers definitionExpression has been modified
303
+ * Check if the layers definitionExpression has been modified and update the feature list depending on the applied filters
270
304
  * @protected
271
305
  */
272
306
  _handleFilterUpdate() {
@@ -284,7 +318,7 @@ const CrowdsourceReporter$1 = /*@__PURE__*/ proxyCustomElement(class Crowdsource
284
318
  getLayerListFlowItem() {
285
319
  var _a;
286
320
  return (h("calcite-flow-item", { collapsed: this.isMobile && this._sidePanelCollapsed, heading: this.reportsHeader }, this.isMobile && this.getActionToExpandCollapsePanel(), this._hasValidLayers && this.enableNewReports &&
287
- h("calcite-button", { appearance: "solid", onClick: this.navigateToChooseCategory.bind(this), slot: "footer", width: "full" }, this.reportButtonText ? this.reportButtonText : this._translations.createReportButtonText), h("calcite-panel", { "full-height": true, "full-width": true }, h("layer-list", { class: "height-full", layers: ((_a = this._editableLayerIds) === null || _a === void 0 ? void 0 : _a.length) > 0 ? this._editableLayerIds : this.layers, mapView: this.mapView, noLayerErrorMsg: this._noLayerToDisplayErrorMsg, onLayerSelect: this.displayFeaturesList.bind(this), onLayersListLoaded: this.layerListLoaded.bind(this), ref: el => this._layerList = el, showFeatureCount: true, showNextIcon: true }))));
321
+ h("calcite-button", { appearance: "solid", onClick: this.navigateToChooseCategory.bind(this), slot: "footer", width: "full" }, this.reportButtonText ? this.reportButtonText : this._translations.createReportButtonText), h("calcite-panel", { "full-height": true, "full-width": true }, h("layer-list", { class: "height-full", layers: ((_a = this._editableLayerIds) === null || _a === void 0 ? void 0 : _a.length) > 0 ? this._editableLayerIds : this._layers, mapView: this.mapView, onLayerSelect: this.displayFeaturesList.bind(this), onLayersListLoaded: this.layerListLoaded.bind(this), ref: el => this._layerList = el, showFeatureCount: true, showNextIcon: true }))));
288
322
  }
289
323
  /**
290
324
  * Get the layer list for creating a report
@@ -292,7 +326,7 @@ const CrowdsourceReporter$1 = /*@__PURE__*/ proxyCustomElement(class Crowdsource
292
326
  * @protected
293
327
  */
294
328
  getChooseCategoryFlowItem() {
295
- return (h("calcite-flow-item", { collapsed: this.isMobile && this._sidePanelCollapsed, heading: this.reportButtonText ? this.reportButtonText : this._translations.createReportButtonText, onCalciteFlowItemBack: this.backFromSelectedPanel.bind(this) }, this.isMobile && this.getActionToExpandCollapsePanel(), h("calcite-panel", { "full-height": true, "full-width": true }, h("div", { class: "progress-bar" }, h("calcite-progress", { type: "determinate", value: this._updatedProgressBarStatus })), h("calcite-notice", { class: "notice-msg", icon: "lightbulb", kind: "success", open: true }, h("div", { slot: "message" }, this._translations.chooseCategoryMsg)), h("layer-list", { class: "height-full", layers: this.layers, mapView: this.mapView, noLayerErrorMsg: this._noLayerToDisplayErrorMsg, onLayerSelect: this.navigateToCreateFeature.bind(this), showFeatureCount: false, showNextIcon: false }))));
329
+ return (h("calcite-flow-item", { collapsed: this.isMobile && this._sidePanelCollapsed, heading: this.reportButtonText ? this.reportButtonText : this._translations.createReportButtonText, onCalciteFlowItemBack: this.backFromSelectedPanel.bind(this) }, this.isMobile && this.getActionToExpandCollapsePanel(), h("calcite-panel", { "full-height": true, "full-width": true }, h("div", { class: "progress-bar" }, h("calcite-progress", { type: "determinate", value: this._updatedProgressBarStatus })), h("calcite-notice", { class: "notice-msg", icon: "lightbulb", kind: "success", open: true }, h("div", { slot: "message" }, this._translations.chooseCategoryMsg)), h("layer-list", { class: "height-full", layers: this._layers, mapView: this.mapView, onLayerSelect: this.navigateToCreateFeature.bind(this), showFeatureCount: false, showNextIcon: false }))));
296
330
  }
297
331
  /**
298
332
  * Get Feature create form of the selected feature layer
@@ -300,7 +334,7 @@ const CrowdsourceReporter$1 = /*@__PURE__*/ proxyCustomElement(class Crowdsource
300
334
  * @protected
301
335
  */
302
336
  getFeatureCreateFlowItem() {
303
- return (h("calcite-flow-item", { collapsed: this.isMobile && this._sidePanelCollapsed, heading: this._selectedLayerName, onCalciteFlowItemBack: this.backFromCreateFeaturePanel.bind(this) }, this.isMobile && this.getActionToExpandCollapsePanel(), this._showSubmitCancelButton && h("div", { class: "width-full", slot: "footer" }, h("calcite-button", { appearance: "solid", class: "footer-top-button footer-button", onClick: this.onSubmitButtonClick.bind(this), width: "full" }, this._translations.submit), h("calcite-button", { appearance: "outline", class: "footer-button", onClick: this.backFromCreateFeaturePanel.bind(this), width: "full" }, this._translations.cancel)), h("calcite-panel", { "full-height": true, "full-width": true }, h("div", { class: "progress-bar" }, h("calcite-progress", { type: "determinate", value: this._updatedProgressBarStatus })), h("calcite-notice", { class: "notice-msg", icon: "lightbulb", kind: "success", open: true }, h("div", { slot: "message" }, this._translations.featureEditFormInfoMsg)), h("create-feature", { customizeSubmit: true, mapView: this.mapView, onDrawComplete: this.onDrawComplete.bind(this), onEditingAttachment: this.showSubmitCancelButton.bind(this), onFail: this.createFeatureFailed.bind(this), onProgressStatus: this.updatedProgressStatus.bind(this), onSuccess: this.onReportSubmitted.bind(this), ref: el => this._createFeature = el, searchConfiguration: this.searchConfiguration, selectedLayerId: this._selectedLayerId }))));
337
+ return (h("calcite-flow-item", { collapsed: this.isMobile && this._sidePanelCollapsed, heading: this._selectedLayerName, onCalciteFlowItemBack: this.backFromCreateFeaturePanel.bind(this) }, this.isMobile && this.getActionToExpandCollapsePanel(), this._showSubmitCancelButton && h("div", { class: "width-full", slot: "footer" }, h("calcite-button", { appearance: "solid", class: "footer-top-button footer-button", onClick: this.onCreateFeatureSubmitButtonClick.bind(this), width: "full" }, this._translations.submit), h("calcite-button", { appearance: "outline", class: "footer-button", onClick: this.backFromCreateFeaturePanel.bind(this), width: "full" }, this._translations.cancel)), h("calcite-panel", { "full-height": true, "full-width": true }, h("div", { class: "progress-bar" }, h("calcite-progress", { type: "determinate", value: this._updatedProgressBarStatus })), h("calcite-notice", { class: "notice-msg", icon: "lightbulb", kind: "success", open: true }, h("div", { slot: "message" }, this._translations.featureEditFormInfoMsg)), h("create-feature", { customizeSubmit: true, mapView: this.mapView, onDrawComplete: this.onDrawComplete.bind(this), onEditingAttachment: this.showSubmitCancelButton.bind(this), onFail: this.createFeatureFailed.bind(this), onProgressStatus: this.updatedProgressStatus.bind(this), onSuccess: this.onReportSubmitted.bind(this), ref: el => this._createFeature = el, searchConfiguration: this.searchConfiguration, selectedLayerId: this._selectedLayerId }))));
304
338
  }
305
339
  /**
306
340
  * Update the progress bar status when editor panel changes
@@ -328,7 +362,7 @@ const CrowdsourceReporter$1 = /*@__PURE__*/ proxyCustomElement(class Crowdsource
328
362
  * On back from create feature, call submit editor to destroy the Editor widget instance
329
363
  * @protected
330
364
  */
331
- onSubmitButtonClick() {
365
+ onCreateFeatureSubmitButtonClick() {
332
366
  if (this._createFeature) {
333
367
  void this._createFeature.submit();
334
368
  }
@@ -343,6 +377,26 @@ const CrowdsourceReporter$1 = /*@__PURE__*/ proxyCustomElement(class Crowdsource
343
377
  }
344
378
  this.backFromSelectedPanel();
345
379
  }
380
+ /**
381
+ * On back from create realated feature, call submit editor to destroy the Editor widget instance
382
+ * @protected
383
+ */
384
+ onCreateRelatedFeatureSubmitButtonClick() {
385
+ if (this._createRelatedFeature) {
386
+ void this._createRelatedFeature.submit();
387
+ }
388
+ }
389
+ /**
390
+ * On back from create related feature, call close editor to destroy the Editor widget instance
391
+ * @protected
392
+ */
393
+ backFromCreateRelatedFeaturePanel() {
394
+ if (this._createRelatedFeature) {
395
+ void this._createRelatedFeature.close();
396
+ this._showSubmitCancelButton = false;
397
+ }
398
+ this.backFromSelectedPanel();
399
+ }
346
400
  /**
347
401
  * On creating the feature is failed, show the error message
348
402
  * @param evt Event which has feature failed message
@@ -360,6 +414,29 @@ const CrowdsourceReporter$1 = /*@__PURE__*/ proxyCustomElement(class Crowdsource
360
414
  this._reportSubmitted = true;
361
415
  void this.navigateToHomePage();
362
416
  }
417
+ /**
418
+ * On adding the is failed, show the error message
419
+ * @param evt Event which has comment failed message
420
+ * @protected
421
+ */
422
+ addCommentFailed(evt) {
423
+ console.error(evt.detail);
424
+ this._addingCommentFailed = true;
425
+ }
426
+ /**
427
+ * On submit comment navigate to the feature list and refresh the feature details
428
+ * @protected
429
+ */
430
+ async onCommentSubmitted() {
431
+ this._commentSubmitted = true;
432
+ this.backFromSelectedPanel();
433
+ this._showLoadingIndicator = true;
434
+ //update the feature details to reflect the like, dislike and comment values
435
+ await this._featureDetails.refresh(this._currentFeature);
436
+ setTimeout(() => {
437
+ this._showLoadingIndicator = false;
438
+ }, 300);
439
+ }
363
440
  /**
364
441
  * Navigates to layer-list
365
442
  * @protected
@@ -371,7 +448,7 @@ const CrowdsourceReporter$1 = /*@__PURE__*/ proxyCustomElement(class Crowdsource
371
448
  if (this._layerList) {
372
449
  void this._layerList.refresh();
373
450
  }
374
- this.setSelectedFeatures([]);
451
+ await this.setSelectedFeatures([]);
375
452
  if (this._editableLayerIds.length === 1) {
376
453
  await this._featureList.refresh();
377
454
  this._flowItems = ["feature-list"];
@@ -387,7 +464,7 @@ const CrowdsourceReporter$1 = /*@__PURE__*/ proxyCustomElement(class Crowdsource
387
464
  */
388
465
  async navigateToCreateFeature(evt) {
389
466
  if (evt.detail.layerId && evt.detail.layerName) {
390
- this.setSelectedLayer(evt.detail.layerId, evt.detail.layerName);
467
+ void this.setSelectedLayer(evt.detail.layerId, evt.detail.layerName);
391
468
  }
392
469
  this._showSubmitCancelButton = false;
393
470
  this._flowItems = [...this._flowItems, "feature-create"];
@@ -429,7 +506,13 @@ const CrowdsourceReporter$1 = /*@__PURE__*/ proxyCustomElement(class Crowdsource
429
506
  * @protected
430
507
  */
431
508
  displayFeaturesList(evt) {
432
- this.setSelectedLayer(evt.detail.layerId, evt.detail.layerName);
509
+ this._updatedSorting = {
510
+ field: '',
511
+ order: 'desc'
512
+ };
513
+ this._filterActive = false;
514
+ this._updatedSortOption = "sortNewest";
515
+ void this.setSelectedLayer(evt.detail.layerId, evt.detail.layerName);
433
516
  this._flowItems = [...this._flowItems, "feature-list"];
434
517
  }
435
518
  /**
@@ -439,8 +522,11 @@ const CrowdsourceReporter$1 = /*@__PURE__*/ proxyCustomElement(class Crowdsource
439
522
  backFromSelectedPanel() {
440
523
  this._updatedProgressBarStatus = 0.25;
441
524
  const updatedFlowItems = [...this._flowItems];
525
+ // when coming back from comment details page don't clear the highlighted feature of map
526
+ if (updatedFlowItems[updatedFlowItems.length - 1] !== 'comment-details') {
527
+ this.clearHighlights();
528
+ }
442
529
  updatedFlowItems.pop();
443
- this.clearHighlights();
444
530
  //Back to layer list, and return as the flowItems will be reset in navigateToHomePage
445
531
  if (updatedFlowItems.length === 1 && updatedFlowItems[0] === 'layer-list') {
446
532
  void this.navigateToHomePage();
@@ -461,15 +547,35 @@ const CrowdsourceReporter$1 = /*@__PURE__*/ proxyCustomElement(class Crowdsource
461
547
  * @param evt Event which has details of selected feature
462
548
  */
463
549
  async onFeatureSelectFromList(evt) {
464
- this.setSelectedFeatures([evt.detail]);
550
+ this._showLoadingIndicator = true;
551
+ await this.setSelectedFeatures([evt.detail]);
465
552
  this._flowItems = [...this._flowItems, "feature-details"];
466
553
  }
554
+ /**
555
+ * Gets related table id of the selected feature's layer
556
+ * @protected
557
+ */
558
+ async getRelatedTable() {
559
+ const relatedTableIdFromRelnship = this._currentFeature.layer.relationships[0].relatedTableId;
560
+ const allTables = await getAllTables(this.mapView);
561
+ const relatedTable = allTables.filter((table) => relatedTableIdFromRelnship === table.layerId);
562
+ this._relatedTable = relatedTable[0];
563
+ }
467
564
  /**
468
565
  * Show loading indicator while updating the feature details component
469
566
  * @param isLoading is feature detail component loading
470
567
  */
471
568
  async updatingFeatureDetails(isLoading) {
472
- this._loadingFeatureDetails = isLoading;
569
+ this._showLoadingIndicator = isLoading;
570
+ }
571
+ /**
572
+ * When comment is selected from list store that and show comment details
573
+ * @param evt Event which has details of selected feature
574
+ * @protected
575
+ */
576
+ async onCommentSelectFromList(evt) {
577
+ this._selectedRelatedFeature = [evt.detail];
578
+ this._flowItems = [...this._flowItems, "comment-details"];
473
579
  }
474
580
  /**
475
581
  * Get feature list of the selected feature layer
@@ -481,16 +587,18 @@ const CrowdsourceReporter$1 = /*@__PURE__*/ proxyCustomElement(class Crowdsource
481
587
  getFeatureListFlowItem(layerId, layerName) {
482
588
  var _a;
483
589
  const layerExpressions = (_a = this.layerExpressions) === null || _a === void 0 ? void 0 : _a.filter((exp) => exp.id === this._selectedLayerId);
484
- const showFilterIcon = layerExpressions.length > 0;
485
- return (h("calcite-flow-item", { collapsed: this.isMobile && this._sidePanelCollapsed, heading: layerName, onCalciteFlowItemBack: this.backFromSelectedPanel.bind(this) }, showFilterIcon && h("calcite-action", { icon: "filter", indicator: this._filterActive, onClick: this._toggleFilter.bind(this), slot: this.isMobile ? "header-menu-actions" : "header-actions-end", text: this._translations.filter, "text-enabled": this.isMobile }), this.isMobile && this.getActionToExpandCollapsePanel(), this.enableNewReports &&
486
- h("calcite-button", { appearance: "solid", onClick: this.navigateToCreateFeature.bind(this), slot: "footer", width: "full" }, this.reportButtonText ? this.reportButtonText : this._translations.createReportButtonText), h("calcite-panel", { "full-height": true }, h("feature-list", { class: "height-full", highlightOnHover: true, mapView: this.mapView, noFeaturesFoundMsg: this._translations.featureErrorMsg, onFeatureSelect: this.onFeatureSelectFromList.bind(this), pageSize: 30, ref: el => this._featureList = el, selectedLayerId: layerId }))));
590
+ const showFilterIcon = (layerExpressions === null || layerExpressions === void 0 ? void 0 : layerExpressions.length) > 0;
591
+ return (h("calcite-flow-item", { collapsed: this.isMobile && this._sidePanelCollapsed, heading: layerName, loading: this._showLoadingIndicator, onCalciteFlowItemBack: this.backFromSelectedPanel.bind(this) }, this._toggleSort(), h("calcite-action", { icon: "sort-ascending-arrow", id: "sort-popover", slot: "header-actions-end", text: this._translations.sort, title: this._translations.sort }), showFilterIcon && h("calcite-action", { icon: "filter", indicator: this._filterActive, onClick: this._toggleFilter.bind(this), slot: "header-actions-end", text: this._translations.filter, title: this._translations.filter }), this.isMobile && this.getActionToExpandCollapsePanel(), this.enableNewReports &&
592
+ h("calcite-button", { appearance: "solid", onClick: this.navigateToCreateFeature.bind(this), slot: "footer", width: "full" }, this.reportButtonText ? this.reportButtonText : this._translations.createReportButtonText), h("calcite-panel", { "full-height": true }, h("feature-list", { class: "height-full", highlightOnHover: true, mapView: this.mapView, noFeaturesFoundMsg: this._translations.featureErrorMsg, onFeatureSelect: this.onFeatureSelectFromList.bind(this), pageSize: 30, ref: el => this._featureList = el, selectedLayerId: layerId, sortingInfo: this._updatedSorting }))));
487
593
  }
488
594
  /**
489
595
  * Returns the calcite-flow item for feature details
490
596
  * @returns Node
491
597
  */
492
598
  getFeatureDetailsFlowItem() {
493
- return (h("calcite-flow-item", { collapsed: this.isMobile && this._sidePanelCollapsed, heading: this._selectedLayerName, loading: this._loadingFeatureDetails, onCalciteFlowItemBack: this.backFromSelectedPanel.bind(this) }, this.isMobile && this.getActionToExpandCollapsePanel(), h("instant-apps-social-share", { autoUpdateShareUrl: false, embed: false, popoverButtonIconScale: "s", ref: el => this._shareNode = el, scale: "m", shareButtonColor: "neutral", shareButtonType: "action", slot: "header-actions-end", socialMedia: true, view: this.mapView }), h("calcite-panel", null, this._selectedFeature.length > 1 && this.getFeaturesPagination(), h("feature-details", { class: 'full-height', graphics: this._selectedFeature, mapView: this.mapView, onLoadingStatus: (evt) => { void this.updatingFeatureDetails(evt.detail); }, ref: el => this._featureDetails = el, reportingOptions: this.reportingOptions }))));
599
+ const showCommentBtn = this.reportingOptions[this._currentFeature.layer.id].comment && this._currentFeature.layer.relationships.length > 0;
600
+ return (h("calcite-flow-item", { collapsed: this.isMobile && this._sidePanelCollapsed, heading: this._selectedLayerName, loading: this._showLoadingIndicator, onCalciteFlowItemBack: this.backFromSelectedPanel.bind(this) }, this.isMobile && this.getActionToExpandCollapsePanel(), h("instant-apps-social-share", { autoUpdateShareUrl: false, embed: false, popoverButtonIconScale: "s", ref: el => this._shareNode = el, scale: "m", shareButtonColor: "neutral", shareButtonType: "action", slot: "header-actions-end", socialMedia: true, view: this.mapView }), h("calcite-panel", null, this._selectedFeature.length > 1 && this.getFeaturesPagination(), h("feature-details", { class: 'full-height', graphics: this._selectedFeature, mapView: this.mapView, onFeatureSelect: this.onCommentSelectFromList.bind(this), onLoadingStatus: (evt) => void this.updatingFeatureDetails(evt.detail), ref: el => this._featureDetails = el, reportingOptions: this.reportingOptions }), showCommentBtn &&
601
+ h("calcite-button", { appearance: "solid", onClick: () => this._flowItems = [...this._flowItems, "add-comment"], slot: "footer", width: "full" }, this._translations.comment))));
494
602
  }
495
603
  /**
496
604
  * Returns the pagination for the multiple features
@@ -500,27 +608,47 @@ const CrowdsourceReporter$1 = /*@__PURE__*/ proxyCustomElement(class Crowdsource
500
608
  getFeaturesPagination() {
501
609
  return (h("div", { class: "feature-pagination", slot: "header-actions-start" }, h("div", null, h("calcite-button", { appearance: 'transparent', disabled: false, iconStart: "chevron-left", id: "solutions-back", onClick: () => void this._featureDetails.back(), scale: "s", width: "full" }), h("calcite-tooltip", { label: "", placement: "top", "reference-element": "solutions-back" }, h("span", null, this._translations.back))), h("calcite-button", { appearance: 'transparent', class: 'pagination-action', onClick: () => void this._featureDetails.toggleListView(), scale: "s" }, h("span", { class: "pagination-count" }, this._getCount())), h("div", null, h("calcite-button", { appearance: "transparent", disabled: false, iconStart: "chevron-right", id: "solutions-next", onClick: () => void this._featureDetails.next(), scale: "s", width: "full" }), h("calcite-tooltip", { placement: "top", "reference-element": "solutions-next" }, h("span", null, this._translations.next)))));
502
610
  }
611
+ /**
612
+ * Returns the calcite-flow item for comment details
613
+ * @returns Node
614
+ */
615
+ getCommentDetailsFlowItem() {
616
+ return (h("calcite-flow-item", { collapsed: this.isMobile && this._sidePanelCollapsed, heading: this._relatedTable.title, onCalciteFlowItemBack: this.backFromSelectedPanel.bind(this) }, this.isMobile && this.getActionToExpandCollapsePanel(), h("calcite-panel", { "full-height": true }, h("info-card", { allowEditing: false, graphics: this._selectedRelatedFeature, highlightEnabled: false, isLoading: false, isMobile: false, mapView: this.mapView, paginationEnabled: false, zoomAndScrollToSelected: false }))));
617
+ }
618
+ /**
619
+ * Returns the calcite-flow item for add comment
620
+ * @returns Node
621
+ */
622
+ getAddCommentFlowItem() {
623
+ return (h("calcite-flow-item", { collapsed: this.isMobile && this._sidePanelCollapsed, heading: this._relatedTable.title, onCalciteFlowItemBack: this.backFromCreateRelatedFeaturePanel.bind(this) }, this.isMobile && this.getActionToExpandCollapsePanel(), h("div", { class: "width-full", slot: "footer" }, this._showSubmitCancelButton && h("div", { class: "width-full", slot: "footer" }, h("calcite-button", { appearance: "solid", class: "footer-top-button footer-button", onClick: this.onCreateRelatedFeatureSubmitButtonClick.bind(this), width: "full" }, this._translations.submit), h("calcite-button", { appearance: "outline", class: "footer-button", onClick: this.backFromCreateRelatedFeaturePanel.bind(this), width: "full" }, this._translations.cancel))), h("calcite-panel", null, h("create-related-feature", { customizeSubmit: true, mapView: this.mapView, onFail: this.addCommentFailed.bind(this), onIsActionPending: this.showSubmitCancelButton.bind(this), onSuccess: this.onCommentSubmitted.bind(this), ref: el => this._createRelatedFeature = el, selectedFeature: this._currentFeature, table: this._relatedTable }))));
624
+ }
503
625
  /**
504
626
  * Sets the selected features and updates the first feature as the current selected feature
505
627
  * @param features Graphics array of the features selected
506
628
  */
507
- setSelectedFeatures(features) {
629
+ async setSelectedFeatures(features) {
508
630
  this._selectedFeature = features;
509
- this.setCurrentFeature(this._selectedFeature.length ? this._selectedFeature[0] : null);
631
+ await this.setCurrentFeature(this._selectedFeature.length ? this._selectedFeature[0] : null);
510
632
  }
511
633
  /**
512
634
  * Set the object id of the current selected feature, and also updates the current selected layer details
513
635
  * @param selectedFeature Graphic currently shown in feature details
514
636
  */
515
- setCurrentFeature(selectedFeature) {
637
+ async setCurrentFeature(selectedFeature) {
638
+ this._currentFeature = selectedFeature;
516
639
  if (selectedFeature && selectedFeature.layer) {
517
640
  const layer = selectedFeature.layer;
518
- this.setSelectedLayer(layer.id, layer.title);
641
+ void this.setSelectedLayer(layer.id, layer.title);
519
642
  this._currentFeatureId = selectedFeature.attributes[layer.objectIdField];
643
+ // check if comments are configured and relationship is present then only get the related table
644
+ const isCommentTablePresent = this.reportingOptions[selectedFeature.layer.id].comment && selectedFeature.layer.relationships.length > 0;
645
+ if (isCommentTablePresent) {
646
+ await this.getRelatedTable();
647
+ }
520
648
  }
521
649
  else {
522
650
  if (this._editableLayerIds.length > 1) {
523
- this.setSelectedLayer('', '');
651
+ void this.setSelectedLayer('', '');
524
652
  }
525
653
  this._currentFeatureId = '';
526
654
  }
@@ -624,7 +752,7 @@ const CrowdsourceReporter$1 = /*@__PURE__*/ proxyCustomElement(class Crowdsource
624
752
  // if clicked graphic's layer is one of the reporting layers then show details in layer panel
625
753
  if (reportingLayerGraphics.length > 0) {
626
754
  //update the selectedFeature
627
- this.setSelectedFeatures(reportingLayerGraphics);
755
+ await this.setSelectedFeatures(reportingLayerGraphics);
628
756
  //if featureDetails not open then add it to the list else just reInit flowItems which will update details with newly selected features
629
757
  // eslint-disable-next-line unicorn/prefer-ternary
630
758
  if (this._flowItems.length && this._flowItems[this._flowItems.length - 1] !== "feature-details") {
@@ -653,7 +781,7 @@ const CrowdsourceReporter$1 = /*@__PURE__*/ proxyCustomElement(class Crowdsource
653
781
  * @protected
654
782
  */
655
783
  _getCount() {
656
- const index = (this.selectedFeatureIndex + 1).toString();
784
+ const index = (this._selectedFeatureIndex + 1).toString();
657
785
  const total = this._selectedFeature.length.toString();
658
786
  return this._translations.indexOfTotal
659
787
  .replace("{{index}}", index)
@@ -676,7 +804,7 @@ const CrowdsourceReporter$1 = /*@__PURE__*/ proxyCustomElement(class Crowdsource
676
804
  */
677
805
  reduceToConfiguredLayers(hash) {
678
806
  var _a;
679
- const configuredLayers = ((_a = this.layers) === null || _a === void 0 ? void 0 : _a.length) > 0 ? this.layers : [];
807
+ const configuredLayers = ((_a = this._layers) === null || _a === void 0 ? void 0 : _a.length) > 0 ? this._layers : [];
680
808
  return Object.keys(hash).reduce((prev, cur) => {
681
809
  let showLayer = hash[cur].supportsAdd;
682
810
  if ((configuredLayers === null || configuredLayers === void 0 ? void 0 : configuredLayers.length) > 0) {
@@ -712,7 +840,7 @@ const CrowdsourceReporter$1 = /*@__PURE__*/ proxyCustomElement(class Crowdsource
712
840
  detail: this._editableLayerIds
713
841
  };
714
842
  await this.layerListLoaded(evt);
715
- this.setSelectedLayer(this._validLayers[0].id, this._validLayers[0].title);
843
+ void this.setSelectedLayer(this._validLayers[0].id, this._validLayers[0].title);
716
844
  this._flowItems = ['feature-list'];
717
845
  }
718
846
  /**
@@ -782,46 +910,52 @@ const CrowdsourceReporter$1 = /*@__PURE__*/ proxyCustomElement(class Crowdsource
782
910
  }; }
783
911
  static get style() { return CrowdsourceReporterStyle0; }
784
912
  }, [0, "crowdsource-reporter", {
913
+ "center": [1],
914
+ "coverPageEnabled": [1, "cover-page-enabled"],
915
+ "defaultWebmap": [1, "default-webmap"],
785
916
  "description": [1],
786
- "isMobile": [4, "is-mobile"],
787
917
  "enableAnonymousAccess": [4, "enable-anonymous-access"],
788
918
  "enableAnonymousComments": [4, "enable-anonymous-comments"],
789
919
  "enableComments": [4, "enable-comments"],
920
+ "enableHome": [4, "enable-home"],
790
921
  "enableLogin": [4, "enable-login"],
791
922
  "enableNewReports": [4, "enable-new-reports"],
923
+ "enableSearch": [4, "enable-search"],
924
+ "enableZoom": [4, "enable-zoom"],
925
+ "isMobile": [4, "is-mobile"],
926
+ "layerExpressions": [16],
927
+ "layerId": [1, "layer-id"],
928
+ "level": [1],
792
929
  "loginTitle": [1, "login-title"],
930
+ "mapInfos": [16],
793
931
  "mapView": [16],
794
- "layerId": [1, "layer-id"],
795
932
  "objectId": [1, "object-id"],
796
- "center": [1],
797
- "level": [1],
798
933
  "reportButtonText": [1, "report-button-text"],
799
- "reportsHeader": [1, "reports-header"],
800
934
  "reportingOptions": [16],
935
+ "reportsHeader": [1, "reports-header"],
801
936
  "reportSubmittedMessage": [1, "report-submitted-message"],
802
937
  "searchConfiguration": [16],
803
938
  "showComments": [4, "show-comments"],
804
- "defaultWebmap": [1, "default-webmap"],
805
- "enableSearch": [4, "enable-search"],
806
- "enableHome": [4, "enable-home"],
807
- "mapInfos": [16],
808
939
  "theme": [1],
809
- "enableZoom": [4, "enable-zoom"],
810
940
  "zoomToScale": [2, "zoom-to-scale"],
811
- "layerExpressions": [16],
812
- "_mapInfo": [32],
941
+ "_featureCreationFailedErrorMsg": [32],
942
+ "_filterActive": [32],
943
+ "_filterOpen": [32],
813
944
  "_flowItems": [32],
814
- "_sidePanelCollapsed": [32],
815
- "_translations": [32],
816
945
  "_hasValidLayers": [32],
817
- "_selectedLayerName": [32],
946
+ "_loadingFeatureDetails": [32],
947
+ "_mapInfo": [32],
818
948
  "_reportSubmitted": [32],
949
+ "_selectedLayerName": [32],
819
950
  "_showSubmitCancelButton": [32],
820
- "_loadingFeatureDetails": [32],
821
- "_featureCreationFailedErrorMsg": [32],
951
+ "_showLoadingIndicator": [32],
952
+ "_sidePanelCollapsed": [32],
953
+ "_translations": [32],
822
954
  "_updatedProgressBarStatus": [32],
823
- "_filterOpen": [32],
824
- "_filterActive": [32]
955
+ "_updatedSorting": [32],
956
+ "_updatedSortOption": [32],
957
+ "_commentSubmitted": [32],
958
+ "_addingCommentFailed": [32]
825
959
  }, [[8, "selectionChanged", "selectionChanged"]], {
826
960
  "isMobile": ["isMobileWatchHandler"],
827
961
  "mapView": ["mapViewWatchHandler"]
@@ -830,7 +964,7 @@ function defineCustomElement$1() {
830
964
  if (typeof customElements === "undefined") {
831
965
  return;
832
966
  }
833
- const components = ["crowdsource-reporter", "calcite-action", "calcite-action-menu", "calcite-alert", "calcite-block", "calcite-button", "calcite-checkbox", "calcite-chip", "calcite-combobox", "calcite-combobox-item", "calcite-date-picker", "calcite-date-picker-day", "calcite-date-picker-month", "calcite-date-picker-month-header", "calcite-filter", "calcite-flow", "calcite-flow-item", "calcite-graph", "calcite-handle", "calcite-icon", "calcite-input", "calcite-input-date-picker", "calcite-input-text", "calcite-list", "calcite-list-item", "calcite-loader", "calcite-modal", "calcite-notice", "calcite-pagination", "calcite-panel", "calcite-popover", "calcite-progress", "calcite-scrim", "calcite-shell", "calcite-slider", "calcite-stack", "calcite-tooltip", "create-feature", "delete-button", "edit-card", "feature-details", "feature-list", "info-card", "instant-apps-filter-list", "instant-apps-social-share", "layer-list"];
967
+ const components = ["crowdsource-reporter", "calcite-action", "calcite-action-menu", "calcite-alert", "calcite-block", "calcite-button", "calcite-checkbox", "calcite-chip", "calcite-combobox", "calcite-combobox-item", "calcite-date-picker", "calcite-date-picker-day", "calcite-date-picker-month", "calcite-date-picker-month-header", "calcite-filter", "calcite-flow", "calcite-flow-item", "calcite-graph", "calcite-handle", "calcite-icon", "calcite-input", "calcite-input-date-picker", "calcite-input-text", "calcite-list", "calcite-list-item", "calcite-loader", "calcite-modal", "calcite-notice", "calcite-pagination", "calcite-panel", "calcite-popover", "calcite-progress", "calcite-scrim", "calcite-shell", "calcite-slider", "calcite-stack", "calcite-tooltip", "create-feature", "create-related-feature", "delete-button", "edit-card", "feature-details", "feature-list", "info-card", "instant-apps-filter-list", "instant-apps-social-share", "layer-list"];
834
968
  components.forEach(tagName => { switch (tagName) {
835
969
  case "crowdsource-reporter":
836
970
  if (!customElements.get(tagName)) {
@@ -839,185 +973,190 @@ function defineCustomElement$1() {
839
973
  break;
840
974
  case "calcite-action":
841
975
  if (!customElements.get(tagName)) {
842
- defineCustomElement$K();
976
+ defineCustomElement$L();
843
977
  }
844
978
  break;
845
979
  case "calcite-action-menu":
846
980
  if (!customElements.get(tagName)) {
847
- defineCustomElement$J();
981
+ defineCustomElement$K();
848
982
  }
849
983
  break;
850
984
  case "calcite-alert":
851
985
  if (!customElements.get(tagName)) {
852
- defineCustomElement$I();
986
+ defineCustomElement$J();
853
987
  }
854
988
  break;
855
989
  case "calcite-block":
856
990
  if (!customElements.get(tagName)) {
857
- defineCustomElement$H();
991
+ defineCustomElement$I();
858
992
  }
859
993
  break;
860
994
  case "calcite-button":
861
995
  if (!customElements.get(tagName)) {
862
- defineCustomElement$G();
996
+ defineCustomElement$H();
863
997
  }
864
998
  break;
865
999
  case "calcite-checkbox":
866
1000
  if (!customElements.get(tagName)) {
867
- defineCustomElement$F();
1001
+ defineCustomElement$G();
868
1002
  }
869
1003
  break;
870
1004
  case "calcite-chip":
871
1005
  if (!customElements.get(tagName)) {
872
- defineCustomElement$E();
1006
+ defineCustomElement$F();
873
1007
  }
874
1008
  break;
875
1009
  case "calcite-combobox":
876
1010
  if (!customElements.get(tagName)) {
877
- defineCustomElement$D();
1011
+ defineCustomElement$E();
878
1012
  }
879
1013
  break;
880
1014
  case "calcite-combobox-item":
881
1015
  if (!customElements.get(tagName)) {
882
- defineCustomElement$C();
1016
+ defineCustomElement$D();
883
1017
  }
884
1018
  break;
885
1019
  case "calcite-date-picker":
886
1020
  if (!customElements.get(tagName)) {
887
- defineCustomElement$B();
1021
+ defineCustomElement$C();
888
1022
  }
889
1023
  break;
890
1024
  case "calcite-date-picker-day":
891
1025
  if (!customElements.get(tagName)) {
892
- defineCustomElement$A();
1026
+ defineCustomElement$B();
893
1027
  }
894
1028
  break;
895
1029
  case "calcite-date-picker-month":
896
1030
  if (!customElements.get(tagName)) {
897
- defineCustomElement$z();
1031
+ defineCustomElement$A();
898
1032
  }
899
1033
  break;
900
1034
  case "calcite-date-picker-month-header":
901
1035
  if (!customElements.get(tagName)) {
902
- defineCustomElement$y();
1036
+ defineCustomElement$z();
903
1037
  }
904
1038
  break;
905
1039
  case "calcite-filter":
906
1040
  if (!customElements.get(tagName)) {
907
- defineCustomElement$x();
1041
+ defineCustomElement$y();
908
1042
  }
909
1043
  break;
910
1044
  case "calcite-flow":
911
1045
  if (!customElements.get(tagName)) {
912
- defineCustomElement$w();
1046
+ defineCustomElement$x();
913
1047
  }
914
1048
  break;
915
1049
  case "calcite-flow-item":
916
1050
  if (!customElements.get(tagName)) {
917
- defineCustomElement$v();
1051
+ defineCustomElement$w();
918
1052
  }
919
1053
  break;
920
1054
  case "calcite-graph":
921
1055
  if (!customElements.get(tagName)) {
922
- defineCustomElement$u();
1056
+ defineCustomElement$v();
923
1057
  }
924
1058
  break;
925
1059
  case "calcite-handle":
926
1060
  if (!customElements.get(tagName)) {
927
- defineCustomElement$t();
1061
+ defineCustomElement$u();
928
1062
  }
929
1063
  break;
930
1064
  case "calcite-icon":
931
1065
  if (!customElements.get(tagName)) {
932
- defineCustomElement$s();
1066
+ defineCustomElement$t();
933
1067
  }
934
1068
  break;
935
1069
  case "calcite-input":
936
1070
  if (!customElements.get(tagName)) {
937
- defineCustomElement$r();
1071
+ defineCustomElement$s();
938
1072
  }
939
1073
  break;
940
1074
  case "calcite-input-date-picker":
941
1075
  if (!customElements.get(tagName)) {
942
- defineCustomElement$q();
1076
+ defineCustomElement$r();
943
1077
  }
944
1078
  break;
945
1079
  case "calcite-input-text":
946
1080
  if (!customElements.get(tagName)) {
947
- defineCustomElement$p();
1081
+ defineCustomElement$q();
948
1082
  }
949
1083
  break;
950
1084
  case "calcite-list":
951
1085
  if (!customElements.get(tagName)) {
952
- defineCustomElement$o();
1086
+ defineCustomElement$p();
953
1087
  }
954
1088
  break;
955
1089
  case "calcite-list-item":
956
1090
  if (!customElements.get(tagName)) {
957
- defineCustomElement$n();
1091
+ defineCustomElement$o();
958
1092
  }
959
1093
  break;
960
1094
  case "calcite-loader":
961
1095
  if (!customElements.get(tagName)) {
962
- defineCustomElement$m();
1096
+ defineCustomElement$n();
963
1097
  }
964
1098
  break;
965
1099
  case "calcite-modal":
966
1100
  if (!customElements.get(tagName)) {
967
- defineCustomElement$l();
1101
+ defineCustomElement$m();
968
1102
  }
969
1103
  break;
970
1104
  case "calcite-notice":
971
1105
  if (!customElements.get(tagName)) {
972
- defineCustomElement$k();
1106
+ defineCustomElement$l();
973
1107
  }
974
1108
  break;
975
1109
  case "calcite-pagination":
976
1110
  if (!customElements.get(tagName)) {
977
- defineCustomElement$j();
1111
+ defineCustomElement$k();
978
1112
  }
979
1113
  break;
980
1114
  case "calcite-panel":
981
1115
  if (!customElements.get(tagName)) {
982
- defineCustomElement$i();
1116
+ defineCustomElement$j();
983
1117
  }
984
1118
  break;
985
1119
  case "calcite-popover":
986
1120
  if (!customElements.get(tagName)) {
987
- defineCustomElement$h();
1121
+ defineCustomElement$i();
988
1122
  }
989
1123
  break;
990
1124
  case "calcite-progress":
991
1125
  if (!customElements.get(tagName)) {
992
- defineCustomElement$g();
1126
+ defineCustomElement$h();
993
1127
  }
994
1128
  break;
995
1129
  case "calcite-scrim":
996
1130
  if (!customElements.get(tagName)) {
997
- defineCustomElement$f();
1131
+ defineCustomElement$g();
998
1132
  }
999
1133
  break;
1000
1134
  case "calcite-shell":
1001
1135
  if (!customElements.get(tagName)) {
1002
- defineCustomElement$e();
1136
+ defineCustomElement$f();
1003
1137
  }
1004
1138
  break;
1005
1139
  case "calcite-slider":
1006
1140
  if (!customElements.get(tagName)) {
1007
- defineCustomElement$d();
1141
+ defineCustomElement$e();
1008
1142
  }
1009
1143
  break;
1010
1144
  case "calcite-stack":
1011
1145
  if (!customElements.get(tagName)) {
1012
- defineCustomElement$c();
1146
+ defineCustomElement$d();
1013
1147
  }
1014
1148
  break;
1015
1149
  case "calcite-tooltip":
1016
1150
  if (!customElements.get(tagName)) {
1017
- defineCustomElement$b();
1151
+ defineCustomElement$c();
1018
1152
  }
1019
1153
  break;
1020
1154
  case "create-feature":
1155
+ if (!customElements.get(tagName)) {
1156
+ defineCustomElement$b();
1157
+ }
1158
+ break;
1159
+ case "create-related-feature":
1021
1160
  if (!customElements.get(tagName)) {
1022
1161
  defineCustomElement$a();
1023
1162
  }