@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
@@ -11,9 +11,8 @@ import { c as connectInteractive, u as updateHostInteraction, d as disconnectInt
11
11
  import { c as connectLocalized, d as disconnectLocalized } from './locale-353c1c36.js';
12
12
  import { c as connectMessages, s as setUpMessages, d as disconnectMessages, u as updateMessages } from './t9n-165900a5.js';
13
13
  import { S as SLOTS$1 } from './resources-810e7513.js';
14
- import { l as loadModules, g as getLocaleComponentStrings, f as formatNumber } from './locale-a490c4f6.js';
15
- import { a as getAllLayers, g as getLayerOrTable, b as getFeatureLayerView, h as highlightFeatures, c as getMapLayerHash } from './mapViewUtils-c83c03a4.js';
16
- import { P as PopupUtils } from './popupUtils-2cc3c366.js';
14
+ import { l as loadModules, f as formatNumber, g as getLocaleComponentStrings } from './locale-a490c4f6.js';
15
+ import { a as getAllLayers, g as getLayerOrTable, b as getAllTables, d as getMapLayerHash } from './mapViewUtils-4618ddb8.js';
17
16
  import './guid-f05d01d5.js';
18
17
  import './resources-1febf4c6.js';
19
18
  import './browser-9897260d.js';
@@ -689,13 +688,255 @@ const CreateFeature = class {
689
688
  };
690
689
  CreateFeature.style = CreateFeatureStyle0;
691
690
 
692
- const featureDetailsCss = ":host{display:block}.buttons{align-items:center;background-color:white;display:flex;padding:10px 0 10px 15px;border-block-start:1px solid var(--calcite-color-border-3);border-block-end:1px solid var(--calcite-color-border-3)}.comment-btn{display:flex;gap:5px;width:35px}";
691
+ const createRelatedFeatureCss = ":host{display:block}.esri-editor__panel-toolbar{display:none !important}";
692
+ const CreateRelatedFeatureStyle0 = createRelatedFeatureCss;
693
+
694
+ const CreateRelatedFeature = class {
695
+ constructor(hostRef) {
696
+ registerInstance(this, hostRef);
697
+ this.success = createEvent(this, "success", 7);
698
+ this.fail = createEvent(this, "fail", 7);
699
+ this.isActionPending = createEvent(this, "isActionPending", 7);
700
+ this.mapView = undefined;
701
+ this.table = undefined;
702
+ this.selectedFeature = undefined;
703
+ this.customizeSubmit = false;
704
+ }
705
+ //--------------------------------------------------------------------------
706
+ //
707
+ // Watch handlers
708
+ //
709
+ //--------------------------------------------------------------------------
710
+ /**
711
+ * Called each time the mapView prop is changed.
712
+ */
713
+ async mapViewWatchHandler() {
714
+ await this.mapView.when(async () => {
715
+ await this.init();
716
+ });
717
+ }
718
+ //--------------------------------------------------------------------------
719
+ //
720
+ // Methods (public)
721
+ //
722
+ //--------------------------------------------------------------------------
723
+ /**
724
+ * Destroy the Editor widget instance
725
+ */
726
+ async close() {
727
+ if (this._editor) {
728
+ this._editor.destroy();
729
+ }
730
+ }
731
+ /**
732
+ * Submit the comment
733
+ */
734
+ async submit() {
735
+ if (this._editor) {
736
+ this._editor.viewModel.featureFormViewModel.submit();
737
+ }
738
+ }
739
+ //--------------------------------------------------------------------------
740
+ //
741
+ // Functions (lifecycle)
742
+ //
743
+ //--------------------------------------------------------------------------
744
+ /**
745
+ * StencilJS: Called once just after the component is first connected to the DOM.
746
+ * @returns Promise when complete
747
+ */
748
+ async componentWillLoad() {
749
+ await this.initModules();
750
+ }
751
+ /**
752
+ * Init Editor widget and starts the create workflow
753
+ */
754
+ async init() {
755
+ if (this.mapView) {
756
+ await this.createEditorWidget();
757
+ }
758
+ }
759
+ /**
760
+ * Load esri javascript api modules
761
+ * @returns Promise resolving when function is done
762
+ * @protected
763
+ */
764
+ async initModules() {
765
+ const [Editor, reactiveUtils] = await loadModules([
766
+ "esri/widgets/Editor",
767
+ "esri/core/reactiveUtils"
768
+ ]);
769
+ this.Editor = Editor;
770
+ this.reactiveUtils = reactiveUtils;
771
+ }
772
+ render() {
773
+ return (h(Host, { key: '383e8fac89d037f77241d856013202d1e04b28ba' }));
774
+ }
775
+ /**
776
+ * StencilJS: Called once just after the component is fully loaded and the first render() occurs.
777
+ */
778
+ async componentDidLoad() {
779
+ await this.init();
780
+ }
781
+ /**
782
+ * Display editor widget to create the new feature
783
+ * @protected
784
+ */
785
+ async createEditorWidget() {
786
+ if (this._editor) {
787
+ this._editor.destroy();
788
+ }
789
+ const container = document.createElement("div");
790
+ this._editor = new this.Editor({
791
+ view: this.mapView,
792
+ visibleElements: {
793
+ snappingControls: false
794
+ },
795
+ container
796
+ });
797
+ this.el.appendChild(container);
798
+ //Add handle to watch featureFormViewModel ready state and hide the editor elements
799
+ const hideElementHandle = this.reactiveUtils.watch(() => { var _a; return (_a = this._editor.viewModel.featureFormViewModel) === null || _a === void 0 ? void 0 : _a.state; }, (state) => {
800
+ if (state === 'ready') {
801
+ this.hideEditorsElements();
802
+ }
803
+ });
804
+ this._editor.viewModel.addHandles(hideElementHandle);
805
+ //Add handle to watch featureTemplatesViewModel ready state and then start the creation
806
+ const handle = this.reactiveUtils.watch(() => this._editor.viewModel.featureTemplatesViewModel.state, (state) => {
807
+ if (state === 'ready') {
808
+ void this.startCreate();
809
+ }
810
+ });
811
+ this._editor.viewModel.addHandles(handle);
812
+ // Add handle to watch if attachments are added/edited
813
+ const attachmentHandle = this.reactiveUtils.watch(() => this._editor.viewModel.state, (state) => {
814
+ if (state === 'adding-attachment' || state === 'editing-attachment') {
815
+ this._addingAttachment = true;
816
+ this.isActionPending.emit(true);
817
+ }
818
+ else {
819
+ if (this._addingAttachment) {
820
+ this.isActionPending.emit(false);
821
+ this._addingAttachment = false;
822
+ }
823
+ }
824
+ });
825
+ this._editor.viewModel.addHandles(attachmentHandle);
826
+ }
827
+ /**
828
+ * Start creating the feature feature form
829
+ * @protected
830
+ */
831
+ async startCreate() {
832
+ const parentLayer = this.selectedFeature.layer;
833
+ const childTable = this.table;
834
+ const parentRelationship = parentLayer.relationships[0];
835
+ const childRelationship = childTable.relationships.find((rel) => parentLayer.layerId === rel.relatedTableId);
836
+ const queryResult = await parentLayer.queryFeatures({
837
+ objectIds: [this.selectedFeature.getObjectId()],
838
+ outFields: [parentLayer.objectIdField, parentRelationship.keyField],
839
+ });
840
+ const parentFeature = queryResult.features[0];
841
+ const template = childTable.templates[0];
842
+ const attributeOverrides = this.makeAttributesForRelatedFeature(parentFeature, parentRelationship, childRelationship);
843
+ const creationInfo = {
844
+ attributeOverrides,
845
+ layer: childTable,
846
+ template,
847
+ };
848
+ await this._editor.startCreateFeaturesWorkflowAtFeatureCreation(creationInfo);
849
+ // Emit an event to show submit cancel buttons
850
+ this.isActionPending.emit(false);
851
+ this._editor.viewModel.featureFormViewModel.on('submit', this.submitted.bind(this));
852
+ }
853
+ /**
854
+ * Hides the elements of editor widget
855
+ * @protected
856
+ */
857
+ hideEditorsElements() {
858
+ if (!this.customizeSubmit) {
859
+ return;
860
+ }
861
+ setTimeout(() => {
862
+ var _a;
863
+ //hides the header and footer on the featureForm
864
+ (_a = this.el.querySelector('.esri-editor').querySelectorAll('calcite-flow-item')) === null || _a === void 0 ? void 0 : _a.forEach((flowItem) => {
865
+ var _a, _b, _c, _d, _e;
866
+ const article = (_c = (_b = (_a = flowItem.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('calcite-panel')) === null || _b === void 0 ? void 0 : _b.shadowRoot) === null || _c === void 0 ? void 0 : _c.querySelector('article');
867
+ //hide the header
868
+ (_d = article === null || article === void 0 ? void 0 : article.querySelector('header')) === null || _d === void 0 ? void 0 : _d.setAttribute('style', 'display: none');
869
+ //hide the footer
870
+ (_e = article === null || article === void 0 ? void 0 : article.querySelector('footer')) === null || _e === void 0 ? void 0 : _e.setAttribute('style', 'display: none');
871
+ });
872
+ }, 700);
873
+ }
874
+ /**
875
+ * Makes attributes for related feature
876
+ * @param parentFeature Parent feature
877
+ * @param parentRelationship Parent relationship
878
+ * @param childRelationship Child relationship
879
+ * @returns Attributes for related feature
880
+ */
881
+ makeAttributesForRelatedFeature(parentFeature, parentRelationship, childRelationship) {
882
+ const parentKeyField = parentRelationship.keyField;
883
+ const parentKeyValue = parentFeature.getAttribute(parentKeyField);
884
+ let childKeyField = childRelationship.keyField;
885
+ // get the field from table which name is same as childKeyField and use that field name as childKeyField
886
+ const field = this.table.fields.find((field) => field.name.toLocaleLowerCase() === childKeyField.toLocaleLowerCase());
887
+ childKeyField = field.name;
888
+ const childAttributes = {
889
+ [childKeyField]: parentKeyValue,
890
+ };
891
+ return childAttributes;
892
+ }
893
+ /**
894
+ * On creation of feature emit the event that the feature is created
895
+ * @param evt feature submit event
896
+ * @protected
897
+ */
898
+ async submitted(evt) {
899
+ var _a;
900
+ //return if any attribute is invalid , focus will be shifted to the invalid attribute in feature form
901
+ if (evt.invalid.length) {
902
+ return;
903
+ }
904
+ //Submit only when valid attributes
905
+ //emit success or fail based on the result
906
+ if (evt.valid.length) {
907
+ try {
908
+ await this._editor.activeWorkflow.commit();
909
+ //throw errors if any failures
910
+ if ((_a = this._editor.viewModel.failures) === null || _a === void 0 ? void 0 : _a.length) {
911
+ this._editor.viewModel.failures.some((failure) => {
912
+ if (failure.error) {
913
+ throw (failure.error);
914
+ }
915
+ });
916
+ }
917
+ }
918
+ catch (e) {
919
+ this.fail.emit(e);
920
+ return;
921
+ }
922
+ this.success.emit();
923
+ }
924
+ }
925
+ get el() { return getElement(this); }
926
+ static get watchers() { return {
927
+ "mapView": ["mapViewWatchHandler"]
928
+ }; }
929
+ };
930
+ CreateRelatedFeature.style = CreateRelatedFeatureStyle0;
931
+
932
+ const featureDetailsCss = ":host{display:block}.buttons-container{align-items:center;display:flex;padding:10px 0 10px 15px;color:var(--calcite-color-text-1) !important;background-color:var(--calcite-color-foreground-1) !important;border-block-start:1px solid var(--calcite-color-border-3);border-block-end:1px solid var(--calcite-color-border-3)}.comment-btn{display:flex;gap:5px;width:37px;font-size:var(--calcite-font-size--2);align-items:center}";
693
933
  const FeatureDetailsStyle0 = featureDetailsCss;
694
934
 
695
935
  const FeatureDetails = class {
696
936
  constructor(hostRef) {
697
937
  registerInstance(this, hostRef);
698
938
  this.loadingStatus = createEvent(this, "loadingStatus", 7);
939
+ this.featureSelect = createEvent(this, "featureSelect", 7);
699
940
  /**
700
941
  * string[]: Valid field types for like and dislike
701
942
  */
@@ -707,8 +948,10 @@ const FeatureDetails = class {
707
948
  this._likeCount = 0;
708
949
  this._disLikeCount = 0;
709
950
  this._dislikeFieldAvailable = false;
951
+ this._commentsAvailable = false;
710
952
  this._isLikeBtnClicked = false;
711
953
  this._isDislikeBtnClicked = false;
954
+ this._relatedFeaturesOIDs = undefined;
712
955
  }
713
956
  //--------------------------------------------------------------------------
714
957
  //
@@ -721,19 +964,23 @@ const FeatureDetails = class {
721
964
  async graphicsWatchHandler() {
722
965
  await this.getCompleteGraphic(this.graphics[0]);
723
966
  this.checkLikeDislikeFields();
967
+ await this.processComments();
724
968
  }
725
969
  //--------------------------------------------------------------------------
726
970
  //
727
971
  // Methods (public)
972
+ //
973
+ //--------------------------------------------------------------------------
728
974
  /**
729
975
  * Refresh the features comments which will fetch like, dislike and update the component
730
976
  * @returns Promise that resolves when the operation is complete
731
977
  */
732
978
  async refresh(graphic) {
979
+ await this.getCompleteGraphic(graphic);
980
+ await this.processComments();
733
981
  if (this.isLikeDislikeConfigured(graphic.layer)) {
734
982
  // in case of multiple features selected fetch complete feature and update like dislike for current feature
735
983
  if (graphic && this.graphics.length > 1) {
736
- await this.getCompleteGraphic(graphic);
737
984
  this.checkLikeDislikeFields();
738
985
  }
739
986
  }
@@ -767,15 +1014,21 @@ const FeatureDetails = class {
767
1014
  */
768
1015
  async componentWillLoad() {
769
1016
  await this._initModules();
1017
+ //Apply query to get complete graphic with complete attributes
770
1018
  await this.getCompleteGraphic(this.graphics[0]);
771
1019
  this.checkLikeDislikeFields();
1020
+ await this.processComments();
772
1021
  }
773
1022
  render() {
774
- var _a, _b, _c, _d;
775
- return (h("calcite-panel", { key: 'c37e61727e2d94fb11c1c82b68de90b63a68385c', "full-height": true }, h("info-card", { key: 'b8ee6ec6705ec1903800f42f9009d92e0ff41fcc', allowEditing: false, graphics: this.graphics, highlightEnabled: false, isLoading: false, isMobile: false, mapView: this.mapView, paginationEnabled: false, position: "relative", ref: el => this._infoCard = el, zoomAndScrollToSelected: true }), (this._likeFieldAvailable || this._dislikeFieldAvailable) &&
776
- h("div", { key: '3a48acd141dbdcb921b2b24296587b130c4e0fcb', class: 'buttons' }, this._likeFieldAvailable &&
777
- h("calcite-button", { key: 'cfde8c0825109ec48beb61348c1846596994f6d2', appearance: "transparent", iconEnd: "thumbs-up", kind: this._isLikeBtnClicked ? "brand" : "neutral", onClick: this.onLikeButtonClick.bind(this), scale: 's' }, (_b = (_a = this._likeCount) !== null && _a !== void 0 ? _a : this._selectedGraphic.attributes[this._likeField]) !== null && _b !== void 0 ? _b : 0), this._dislikeFieldAvailable &&
778
- h("calcite-button", { key: 'e5e69fefa92a0189b955c4869b7755d0e68436c9', appearance: "transparent", iconEnd: "thumbs-down", kind: this._isDislikeBtnClicked ? "brand" : "neutral", onClick: this.onDislikeButtonClick.bind(this), scale: 's' }, (_d = (_c = this._disLikeCount) !== null && _c !== void 0 ? _c : this._selectedGraphic.attributes[this._dislikeField]) !== null && _d !== void 0 ? _d : 0))));
1023
+ var _a, _b, _c, _d, _e;
1024
+ //When related features found show comments list of only those features else comments list will be empty
1025
+ const commentsListWhereClause = ((_a = this._relatedFeaturesOIDs) === null || _a === void 0 ? void 0 : _a.length) > 0 ? `objectId in(${this._relatedFeaturesOIDs})` : '1=0';
1026
+ return (h("calcite-panel", { key: 'c39c0eec021627b920972f7d4bce0d45bfe0a9c2', "full-height": true }, h("info-card", { key: 'e90cb427a1f874216afcfdf0a33804bf14fb6a2c', allowEditing: false, graphics: this.graphics, highlightEnabled: false, isLoading: false, isMobile: false, mapView: this.mapView, paginationEnabled: false, position: "relative", ref: el => this._infoCard = el, zoomAndScrollToSelected: true }), (this._likeFieldAvailable || this._dislikeFieldAvailable || this._commentsAvailable) &&
1027
+ h("div", { key: 'ecfdf111612c92eacfd97dae7bb3080b7ad50e96', class: "buttons-container" }, this._commentsAvailable &&
1028
+ h("div", { key: '07a8213e11585041fb1c5f56254447a720033f04', class: "comment-btn" }, h("span", { key: 'f4071fbd03372a0e88857962e9c31530e2dc693a' }, this._relatedFeaturesOIDs.length), h("calcite-icon", { key: '30258e1daae5f1e00d18dd4ec052861de46b45bf', icon: "speech-bubble", scale: 's' })), this._likeFieldAvailable &&
1029
+ h("calcite-button", { key: 'fa76245789a29e49be06482fd8cd0244f44d19ab', appearance: "transparent", iconEnd: "thumbs-up", kind: this._isLikeBtnClicked ? "brand" : "neutral", onClick: this.onLikeButtonClick.bind(this), scale: 's' }, (_c = (_b = this._likeCount) !== null && _b !== void 0 ? _b : this._selectedGraphic.attributes[this._likeField]) !== null && _c !== void 0 ? _c : 0), this._dislikeFieldAvailable &&
1030
+ h("calcite-button", { key: 'ac9adc799a93f08319b2f0b797cd5d4773b1a6cb', appearance: "transparent", iconEnd: "thumbs-down", kind: this._isDislikeBtnClicked ? "brand" : "neutral", onClick: this.onDislikeButtonClick.bind(this), scale: 's' }, (_e = (_d = this._disLikeCount) !== null && _d !== void 0 ? _d : this._selectedGraphic.attributes[this._dislikeField]) !== null && _e !== void 0 ? _e : 0)), this.relatedTableId && this._commentsAvailable &&
1031
+ h("feature-list", { key: '165b2ac0af65cbbab945a0dfd4ac878cc41af56c', class: "height-full", mapView: this.mapView, pageSize: 5, ref: el => this._commentsList = el, selectedLayerId: this.relatedTableId, showInitialLoading: false, textSize: "small", whereClause: commentsListWhereClause })));
779
1032
  }
780
1033
  /**
781
1034
  * Load esri javascript api modules
@@ -785,9 +1038,11 @@ const FeatureDetails = class {
785
1038
  * @protected
786
1039
  */
787
1040
  async _initModules() {
788
- const [Graphic] = await loadModules([
1041
+ const [RelationshipQuery, Graphic] = await loadModules([
1042
+ "esri/rest/support/RelationshipQuery",
789
1043
  "esri/Graphic"
790
1044
  ]);
1045
+ this.RelationshipQuery = RelationshipQuery;
791
1046
  this.Graphic = Graphic;
792
1047
  }
793
1048
  /**
@@ -802,6 +1057,56 @@ const FeatureDetails = class {
802
1057
  const completeGraphic = await layer.queryFeatures(query);
803
1058
  this._selectedGraphic = completeGraphic.features[0];
804
1059
  }
1060
+ /**
1061
+ * Process the comments functionality.
1062
+ * If comments are configured, fetches the related comments ans creates the input for comments list
1063
+ * @protected
1064
+ */
1065
+ async processComments() {
1066
+ var _a;
1067
+ const selectedLayer = this._selectedGraphic.layer;
1068
+ const commentsConfigured = this.reportingOptions[selectedLayer.id].comment && ((_a = selectedLayer.relationships) === null || _a === void 0 ? void 0 : _a.length) > 0;
1069
+ if (commentsConfigured) {
1070
+ //Get comments table id from map
1071
+ const relatedTableIdFromRelnship = selectedLayer.relationships[0].relatedTableId;
1072
+ const allTables = await getAllTables(this.mapView);
1073
+ const relatedTable = allTables.filter((table) => relatedTableIdFromRelnship === table.layerId);
1074
+ this.relatedTableId = (relatedTable === null || relatedTable === void 0 ? void 0 : relatedTable.length) > 0 ? relatedTable[0].id : '';
1075
+ //**Get the related records for the current selected feature**
1076
+ if (this.relatedTableId) {
1077
+ //current selected feature's objectId
1078
+ const objectId = this._selectedGraphic.attributes[selectedLayer.objectIdField];
1079
+ //create relationship query to get all the related records with the current selected feature
1080
+ const relationshipQuery = new this.RelationshipQuery({
1081
+ objectIds: [objectId],
1082
+ outFields: ['*'],
1083
+ relationshipId: selectedLayer.relationships[0].id
1084
+ });
1085
+ const result = await selectedLayer.queryRelatedFeatures(relationshipQuery).catch((e) => {
1086
+ console.error(e);
1087
+ });
1088
+ const relatedOIDs = [];
1089
+ if (result[objectId]) {
1090
+ result[objectId].features.forEach((feature) => {
1091
+ relatedOIDs.push(feature.attributes.OBJECTID);
1092
+ });
1093
+ }
1094
+ // Store the objectid's of the related features, this will be used to show the comments and its count
1095
+ this._relatedFeaturesOIDs = relatedOIDs;
1096
+ //Set comments available or not
1097
+ this._commentsAvailable = true;
1098
+ }
1099
+ else {
1100
+ this._relatedFeaturesOIDs = [];
1101
+ this._commentsAvailable = false;
1102
+ }
1103
+ }
1104
+ else {
1105
+ this._relatedFeaturesOIDs = [];
1106
+ this._commentsAvailable = false;
1107
+ this.relatedTableId = '';
1108
+ }
1109
+ }
805
1110
  /**
806
1111
  * Checks if the layers is configured for like dislike or not
807
1112
  * @param selectedLayer Feature layer
@@ -823,6 +1128,7 @@ const FeatureDetails = class {
823
1128
  if (!likeField && !dislikeField) {
824
1129
  return false;
825
1130
  }
1131
+ //Check if selected layer have the configured like and dislike field and it is of integer types
826
1132
  selectedLayer.fields.forEach((eachField) => {
827
1133
  if (this._validFieldTypes.indexOf(eachField.type) > -1) {
828
1134
  if (eachField.name === likeField && this.reportingOptions[selectedLayer.id].like) {
@@ -997,244 +1303,6 @@ const FeatureDetails = class {
997
1303
  };
998
1304
  FeatureDetails.style = FeatureDetailsStyle0;
999
1305
 
1000
- const featureListCss = ":host{display:block}.width-full{width:100%}.pagination{display:flex;justify-content:center}.error-msg{padding:10px;width:calc(100% - 20px)}.popup-title{font-weight:500;padding:10px 12px}";
1001
- const FeatureListStyle0 = featureListCss;
1002
-
1003
- const FeatureList = class {
1004
- constructor(hostRef) {
1005
- registerInstance(this, hostRef);
1006
- this.featureSelect = createEvent(this, "featureSelect", 7);
1007
- this.selectedLayerId = undefined;
1008
- this.mapView = undefined;
1009
- this.noFeaturesFoundMsg = undefined;
1010
- this.pageSize = 100;
1011
- this.highlightOnMap = false;
1012
- this.highlightOnHover = false;
1013
- this._featureItems = [];
1014
- this._featuresCount = 0;
1015
- this._isLoading = false;
1016
- this._translations = undefined;
1017
- }
1018
- //--------------------------------------------------------------------------
1019
- //
1020
- // Watch handlers
1021
- //
1022
- //--------------------------------------------------------------------------
1023
- /**
1024
- * Watch for selectedLayerId change and update layer instance and features list for new layerId
1025
- */
1026
- async selectedLayerWatchHandler() {
1027
- this._selectedLayer = await getLayerOrTable(this.mapView, this.selectedLayerId);
1028
- await this.initializeFeatureItems();
1029
- }
1030
- //--------------------------------------------------------------------------
1031
- //
1032
- // Methods (public)
1033
- /**
1034
- * Refresh the feature list which will fetch the latest features and update the features list
1035
- * @returns Promise that resolves when the operation is complete
1036
- */
1037
- async refresh() {
1038
- await this.initializeFeatureItems();
1039
- }
1040
- //--------------------------------------------------------------------------
1041
- //
1042
- // Functions (lifecycle)
1043
- //
1044
- //--------------------------------------------------------------------------
1045
- /**
1046
- * StencilJS: Called once just after the component is first connected to the DOM.
1047
- * @returns Promise when complete
1048
- */
1049
- async componentWillLoad() {
1050
- await this.initModules();
1051
- await this._getTranslations();
1052
- this._isLoading = true;
1053
- this._popupUtils = new PopupUtils();
1054
- if (this.mapView && this.selectedLayerId) {
1055
- this._selectedLayer = await getLayerOrTable(this.mapView, this.selectedLayerId);
1056
- }
1057
- }
1058
- /**
1059
- * StencilJS: Called once just after the component is fully loaded and the first render() occurs.
1060
- */
1061
- async componentDidLoad() {
1062
- await this.initializeFeatureItems();
1063
- }
1064
- /**
1065
- * Renders the component.
1066
- */
1067
- render() {
1068
- return (h("calcite-panel", { key: '4cb73ad53f9ce1cced4c6001d45001523cb19c4a', "full-height": true, "full-width": true }, this._isLoading && h("calcite-loader", { key: 'c88ac531c61ece3284c474a334f281507e69dad0', label: "", scale: "m" }), this._featureItems.length === 0 && !this._isLoading &&
1069
- h("calcite-notice", { key: '70dafc90052736c5b450f9c9c87ae5627f068b92', class: "error-msg", icon: "feature-details", kind: "info", open: true }, h("div", { key: 'a0b9b2aafbdb12f945d87242e29271ca0ff732fc', slot: "message" }, this.noFeaturesFoundMsg ? this.noFeaturesFoundMsg : this._translations.featureErrorMsg)), h("calcite-list", { key: 'a5dd1674092e74bedb06e32b739d14a949b92bea', "selection-appearance": "border", "selection-mode": "none" }, !this._isLoading && this._featureItems.length > 0 && this._featureItems), this._featuresCount > this.pageSize &&
1070
- h("div", { key: '35dc472ed2aa2bd8e83ca42cf12db0469c967505', class: "width-full", slot: "footer" }, h("calcite-pagination", { key: 'da3acc4616f040d350b198ef759a3d081d06deee', class: "pagination", "full-width": true, onCalcitePaginationChange: this.pageChanged.bind(this), "page-size": this.pageSize, "start-item": "1", "total-items": this._featuresCount }))));
1071
- }
1072
- //--------------------------------------------------------------------------
1073
- //
1074
- // Functions (protected)
1075
- //
1076
- //--------------------------------------------------------------------------
1077
- /**
1078
- * Load esri javascript api modules
1079
- * @returns Promise resolving when function is done
1080
- * @protected
1081
- */
1082
- async initModules() {
1083
- const [Color] = await loadModules([
1084
- "esri/Color"
1085
- ]);
1086
- this.Color = Color;
1087
- }
1088
- /**
1089
- * Initialize the features list using the selected layer
1090
- * @protected
1091
- */
1092
- async initializeFeatureItems() {
1093
- if (this._selectedLayer) {
1094
- this._isLoading = true;
1095
- this._featureItems = await this.queryPage(0);
1096
- this._featuresCount = await this._selectedLayer.queryFeatureCount();
1097
- this._isLoading = false;
1098
- }
1099
- }
1100
- /**
1101
- * On page change get the next updated feature list
1102
- * @param event page change event
1103
- * @protected
1104
- */
1105
- async pageChanged(event) {
1106
- this._isLoading = true;
1107
- if (this._highlightHandle) {
1108
- this._highlightHandle.remove();
1109
- this._highlightHandle = null;
1110
- }
1111
- const page = event.target.startItem - 1;
1112
- this._featureItems = await this.queryPage(page);
1113
- this._isLoading = false;
1114
- }
1115
- /**
1116
- * On feature click in feature list highlight the feature on the map
1117
- * @param event feature clicked event
1118
- * @param selectedFeature selected feature graphic
1119
- * @protected
1120
- */
1121
- async featureClicked(event, selectedFeature) {
1122
- //clear previous highlight and remove the highlightHandle
1123
- this.clearHighlights();
1124
- //highlight on map only if it is selected item
1125
- if (this.highlightOnMap) {
1126
- const selectedFeatureObjectId = Number(event.target.value);
1127
- const selectedLayerView = await getFeatureLayerView(this.mapView, this.selectedLayerId);
1128
- this._highlightHandle = await highlightFeatures([selectedFeatureObjectId], selectedLayerView, this.mapView, true);
1129
- }
1130
- await this.emitSelectedFeature(selectedFeature);
1131
- }
1132
- /**
1133
- * Emit selected feature with its complete graphics and attributes
1134
- * @param graphic selected feature graphic
1135
- * @protected
1136
- */
1137
- async emitSelectedFeature(graphic) {
1138
- const layer = graphic.layer;
1139
- const query = layer.createQuery();
1140
- query.returnGeometry = true;
1141
- query.objectIds = [graphic.getObjectId()];
1142
- const completeGraphic = await layer.queryFeatures(query);
1143
- this.featureSelect.emit(completeGraphic.features[0]);
1144
- }
1145
- /**
1146
- * On feature hover in feature list highlight the feature on the map
1147
- * @param selectedFeature mouseovered feature graphic
1148
- * @protected
1149
- */
1150
- async onFeatureHover(selectedFeature) {
1151
- //clear previous highlight and remove the highlightHandle
1152
- this.clearHighlights();
1153
- if (this.highlightOnHover) {
1154
- const oId = selectedFeature.getObjectId();
1155
- const selectedLayerView = await getFeatureLayerView(this.mapView, this.selectedLayerId);
1156
- selectedLayerView.highlightOptions = { color: new this.Color("#FFFF00") };
1157
- this._highlightHandle = selectedLayerView.highlight([oId]);
1158
- }
1159
- }
1160
- /**
1161
- * Clears the highlight
1162
- * @protected
1163
- */
1164
- clearHighlights() {
1165
- //if a feature is already highlighted, then remove the highlight
1166
- if (this._highlightHandle) {
1167
- this._highlightHandle.remove();
1168
- }
1169
- }
1170
- /**
1171
- * Query the selected feature layer, in descending order of object id's
1172
- * @param page 0th page number in the pagination item
1173
- * @returns List of features items to be rendered
1174
- * @protected
1175
- */
1176
- async queryPage(page) {
1177
- const featureLayer = this._selectedLayer;
1178
- const objectIdField = featureLayer.objectIdField;
1179
- const query = {
1180
- start: page,
1181
- num: this.pageSize,
1182
- outFields: ["*"],
1183
- returnGeometry: true,
1184
- where: featureLayer.definitionExpression,
1185
- outSpatialReference: this.mapView.spatialReference.toJSON()
1186
- };
1187
- //sort only when objectId field is found
1188
- if (objectIdField) {
1189
- query.orderByFields = [objectIdField.toString() + " DESC"];
1190
- }
1191
- const featureSet = await featureLayer.queryFeatures(query);
1192
- return await this.createFeatureItem(featureSet);
1193
- }
1194
- /**
1195
- * Creates list of items using the popup titles
1196
- * @param featureSet Queried FeatureSet
1197
- * @returns List of features items to be rendered
1198
- * @protected
1199
- */
1200
- async createFeatureItem(featureSet) {
1201
- const currentFeatures = featureSet === null || featureSet === void 0 ? void 0 : featureSet.features;
1202
- const items = currentFeatures.map(async (feature) => {
1203
- const popupTitle = await this._popupUtils.getPopupTitle(feature, this.mapView.map);
1204
- return this.getFeatureItem(feature, popupTitle);
1205
- });
1206
- return Promise.all(items);
1207
- }
1208
- /**
1209
- * Get each feature item
1210
- * @param selectedFeature Each individual feature instance to be listed
1211
- * @param popupTitle feature popup title
1212
- * @returns individual feature item to be rendered
1213
- * @protected
1214
- */
1215
- getFeatureItem(selectedFeature, popupTitle) {
1216
- //get the object id value of the feature
1217
- const oId = selectedFeature.attributes[this._selectedLayer.objectIdField].toString();
1218
- //use object id if popupTitle is null or undefined
1219
- popupTitle = popupTitle !== null && popupTitle !== void 0 ? popupTitle : oId;
1220
- return (h("calcite-list-item", { onCalciteListItemSelect: (e) => { void this.featureClicked(e, selectedFeature); }, onMouseLeave: () => { void this.clearHighlights(); }, onMouseOver: () => { void this.onFeatureHover(selectedFeature); }, value: oId }, h("div", { class: "popup-title", slot: "content-start" }, popupTitle), h("calcite-icon", { icon: "chevron-right", scale: "s", slot: "content-end" })));
1221
- }
1222
- /**
1223
- * Fetches the component's translations
1224
- * @returns Promise when complete
1225
- * @protected
1226
- */
1227
- async _getTranslations() {
1228
- const messages = await getLocaleComponentStrings(this.el);
1229
- this._translations = messages[0];
1230
- }
1231
- get el() { return getElement(this); }
1232
- static get watchers() { return {
1233
- "selectedLayerId": ["selectedLayerWatchHandler"]
1234
- }; }
1235
- };
1236
- FeatureList.style = FeatureListStyle0;
1237
-
1238
1306
  const layerListCss = ":host{display:block}.error-msg{padding:10px}.layer-name{font-weight:500;padding:10px 12px}.feature-count{padding-right:12px}";
1239
1307
  const LayerListStyle0 = layerListCss;
1240
1308
 
@@ -1243,11 +1311,8 @@ const LayerList = class {
1243
1311
  registerInstance(this, hostRef);
1244
1312
  this.layerSelect = createEvent(this, "layerSelect", 7);
1245
1313
  this.layersListLoaded = createEvent(this, "layersListLoaded", 7);
1246
- //HARDCODED IN EN
1247
- this._noLayerToDisplayErrorMsg = "Web map does not contain any editable layers.";
1248
1314
  this.mapView = undefined;
1249
1315
  this.layers = undefined;
1250
- this.noLayerErrorMsg = undefined;
1251
1316
  this.showFeatureCount = true;
1252
1317
  this.showNextIcon = false;
1253
1318
  this._noLayersToDisplay = false;
@@ -1296,9 +1361,9 @@ const LayerList = class {
1296
1361
  * Renders the component.
1297
1362
  */
1298
1363
  render() {
1299
- return (h(Fragment, { key: '33fe25a29aac6e4eaa429b1a8f58431b66d44d46' }, this._isLoading && h("calcite-loader", { key: 'f5b3c6a90f850db50a3e2b6af9745936802903dc', label: "", scale: "m" }), !this._isLoading && this.mapView && this._noLayersToDisplay &&
1300
- h("calcite-notice", { key: 'a40c96db6ecf36097aacb652156cbd863f6f9a3b', class: "error-msg", icon: "layers-reference", kind: "danger", open: true }, h("div", { key: '83c3b2982f750a8e69101501aa39b99a8636514f', slot: "title" }, this._translations.error), h("div", { key: '190eb16ca7991773c784c8d77bca9be064064028', slot: "message" }, this.noLayerErrorMsg ? this.noLayerErrorMsg : this._noLayerToDisplayErrorMsg)), !this._isLoading && this.mapView &&
1301
- h("calcite-list", { key: '980f20cec107d8e54af0c57448036eac3f342b71', "selection-appearance": "border", "selection-mode": "none" }, this.renderLayerList())));
1364
+ return (h(Fragment, { key: 'c73bf36c13fed8120273d8a5321dd60fe4d4b5f4' }, this._isLoading && h("calcite-loader", { key: 'e748d9cc7d1855d3a2da34702ba853d35d1a2cde', label: "", scale: "m" }), !this._isLoading && this.mapView && this._noLayersToDisplay &&
1365
+ h("calcite-notice", { key: '4a06b7694fd91456ee5cdc51d33e4ac633d416b2', class: "error-msg", icon: "layers-reference", kind: "danger", open: true }, h("div", { key: '63b09f02312aba71826957c5b2c04a7750bdfca1', slot: "title" }, this._translations.error), h("div", { key: '5a19dfe527a6c66a5477a4c6a14f4686cde73bb3', slot: "message" }, this._translations.noLayerToDisplayErrorMsg)), !this._isLoading && this.mapView &&
1366
+ h("calcite-list", { key: 'e8a6170a55f4ba6ea35a1397690c3e365b814886', "selection-appearance": "border", "selection-mode": "none" }, this.renderLayerList())));
1302
1367
  }
1303
1368
  //--------------------------------------------------------------------------
1304
1369
  //
@@ -1424,4 +1489,4 @@ const LayerList = class {
1424
1489
  };
1425
1490
  LayerList.style = LayerListStyle0;
1426
1491
 
1427
- export { Flow as calcite_flow, FlowItem as calcite_flow_item, CreateFeature as create_feature, FeatureDetails as feature_details, FeatureList as feature_list, LayerList as layer_list };
1492
+ export { Flow as calcite_flow, FlowItem as calcite_flow_item, CreateFeature as create_feature, CreateRelatedFeature as create_related_feature, FeatureDetails as feature_details, LayerList as layer_list };