@esri/solutions-components 0.8.13 → 0.8.15

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