@esri/solutions-components 0.8.14 → 0.8.16

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 (390) 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 +5 -5
  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 +367 -218
  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 +1 -1
  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/utils/downloadUtils.js +0 -1
  250. package/dist/collection/utils/interfaces.ts +5 -0
  251. package/dist/collection/utils/mapViewUtils.js +15 -0
  252. package/dist/collection/utils/mapViewUtils.ts +19 -1
  253. package/dist/collection/utils/pdfUtils.js +29 -34
  254. package/dist/collection/utils/pdfUtils.ts +40 -47
  255. package/dist/components/create-related-feature.d.ts +11 -0
  256. package/dist/components/create-related-feature.js +11 -0
  257. package/dist/components/create-related-feature2.js +274 -0
  258. package/dist/components/crowdsource-manager.js +1 -1
  259. package/dist/components/crowdsource-reporter.js +287 -148
  260. package/dist/components/deduct-calculator2.js +1 -1
  261. package/dist/components/delete-button2.js +1 -1
  262. package/dist/components/downloadUtils.js +29 -33
  263. package/dist/components/edit-card2.js +1 -1
  264. package/dist/components/feature-comments.js +1 -1
  265. package/dist/components/feature-details2.js +163 -40
  266. package/dist/components/feature-form-flow-item.js +1 -1
  267. package/dist/components/feature-list2.js +64 -16
  268. package/dist/components/features-flow-item.js +1 -1
  269. package/dist/components/floor-filter2.js +1 -1
  270. package/dist/components/info-card2.js +9 -5
  271. package/dist/components/json-editor2.js +1 -1
  272. package/dist/components/layer-list2.js +3 -7
  273. package/dist/components/layer-table2.js +2 -2
  274. package/dist/components/layout-manager.js +1 -1
  275. package/dist/components/list-flow-item.js +1 -1
  276. package/dist/components/location-flow-item.js +1 -1
  277. package/dist/components/map-card2.js +1 -1
  278. package/dist/components/map-draw-tools2.js +1 -1
  279. package/dist/components/map-fullscreen2.js +1 -1
  280. package/dist/components/map-layer-picker2.js +1 -1
  281. package/dist/components/map-legend2.js +1 -1
  282. package/dist/components/map-picker2.js +1 -1
  283. package/dist/components/map-search2.js +1 -1
  284. package/dist/components/map-select-tools2.js +1 -1
  285. package/dist/components/map-tools2.js +1 -1
  286. package/dist/components/mapViewUtils.js +16 -1
  287. package/dist/components/pci-calculator.js +1 -1
  288. package/dist/components/pdf-download2.js +1 -1
  289. package/dist/components/public-notification.js +1 -1
  290. package/dist/components/refine-results-flow-item.js +1 -1
  291. package/dist/components/refine-selection2.js +2 -2
  292. package/dist/components/share-item.js +1 -1
  293. package/dist/components/solution-configuration.js +3 -3
  294. package/dist/components/solution-contents2.js +1 -1
  295. package/dist/components/solution-item-details2.js +1 -1
  296. package/dist/components/solution-item-icon2.js +1 -1
  297. package/dist/components/solution-item-sharing2.js +1 -1
  298. package/dist/components/solution-item2.js +1 -1
  299. package/dist/components/solution-organization-variables2.js +1 -1
  300. package/dist/components/solution-resource-item2.js +1 -1
  301. package/dist/components/solution-spatial-ref2.js +1 -1
  302. package/dist/components/solution-template-data2.js +1 -1
  303. package/dist/components/solution-variables2.js +1 -1
  304. package/dist/components/spatial-ref2.js +1 -1
  305. package/dist/esm/basemap-gallery_7.entry.js +6 -6
  306. package/dist/esm/buffer-tools_3.entry.js +1 -1
  307. package/dist/esm/calcite-alert_4.entry.js +12 -8
  308. package/dist/esm/calcite-dropdown_4.entry.js +2 -2
  309. package/dist/esm/calcite-flow_6.entry.js +321 -256
  310. package/dist/esm/calcite-shell-panel_14.entry.js +7 -7
  311. package/dist/esm/card-manager_3.entry.js +5 -5
  312. package/dist/esm/crowdsource-manager.entry.js +2 -2
  313. package/dist/esm/crowdsource-reporter.entry.js +182 -55
  314. package/dist/esm/deduct-calculator.entry.js +1 -1
  315. package/dist/esm/{downloadUtils-fa6e5c37.js → downloadUtils-aab31bfe.js} +31 -35
  316. package/dist/esm/feature-comments.entry.js +1 -1
  317. package/dist/esm/feature-form-flow-item.entry.js +1 -1
  318. package/dist/esm/feature-list.entry.js +293 -0
  319. package/dist/esm/features-flow-item.entry.js +1 -1
  320. package/dist/esm/{index.es-114545fc.js → index.es-43ba3006.js} +2 -2
  321. package/dist/esm/layout-manager.entry.js +1 -1
  322. package/dist/esm/list-flow-item.entry.js +1 -1
  323. package/dist/esm/loader.js +1 -1
  324. package/dist/esm/location-flow-item.entry.js +1 -1
  325. package/dist/esm/map-select-tools_3.entry.js +5 -5
  326. package/dist/esm/{mapViewUtils-c83c03a4.js → mapViewUtils-4618ddb8.js} +16 -1
  327. package/dist/esm/pci-calculator.entry.js +1 -1
  328. package/dist/esm/public-notification.entry.js +3 -3
  329. package/dist/esm/refine-results-flow-item.entry.js +1 -1
  330. package/dist/esm/share-item.entry.js +1 -1
  331. package/dist/esm/solution-configuration.entry.js +3 -3
  332. package/dist/esm/solution-contents_3.entry.js +3 -3
  333. package/dist/esm/solution-item-icon.entry.js +1 -1
  334. package/dist/esm/solutions-components.js +1 -1
  335. package/dist/esm/spatial-ref.entry.js +1 -1
  336. package/dist/solutions-components/{p-afdc6bb2.entry.js → p-102b1f94.entry.js} +1 -1
  337. package/dist/solutions-components/p-22aece81.entry.js +6 -0
  338. package/dist/solutions-components/p-28c6906c.entry.js +6 -0
  339. package/dist/solutions-components/{p-71bdc77f.entry.js → p-33845a79.entry.js} +1 -1
  340. package/dist/solutions-components/{p-16ac309d.entry.js → p-3470c0f7.entry.js} +1 -1
  341. package/dist/solutions-components/{p-ee457c15.js → p-37fc92db.js} +3 -3
  342. package/dist/solutions-components/{p-59c92ba2.entry.js → p-3a2e0188.entry.js} +1 -1
  343. package/dist/solutions-components/p-3fae9775.entry.js +6 -0
  344. package/dist/solutions-components/p-4830649e.entry.js +6 -0
  345. package/dist/solutions-components/{p-0f139e3e.entry.js → p-54324eaa.entry.js} +1 -1
  346. package/dist/solutions-components/{p-d9c89479.js → p-583e5dd0.js} +1 -1
  347. package/dist/solutions-components/{p-69935f68.entry.js → p-667c022f.entry.js} +1 -1
  348. package/dist/solutions-components/{p-247edfb2.js → p-667caa6b.js} +1 -1
  349. package/dist/solutions-components/p-71de367b.entry.js +6 -0
  350. package/dist/solutions-components/{p-32fed174.entry.js → p-84a5d221.entry.js} +1 -1
  351. package/dist/solutions-components/{p-6e8782d1.entry.js → p-88f73319.entry.js} +1 -1
  352. package/dist/solutions-components/p-8a81f3c7.entry.js +6 -0
  353. package/dist/solutions-components/{p-288592d4.entry.js → p-92ed8d5d.entry.js} +1 -1
  354. package/dist/solutions-components/p-aa06f4d1.entry.js +6 -0
  355. package/dist/solutions-components/{p-67ee4afe.entry.js → p-b3160299.entry.js} +4 -4
  356. package/dist/solutions-components/p-b6d47bab.entry.js +17 -0
  357. package/dist/solutions-components/{p-bcf20616.entry.js → p-b76b5310.entry.js} +1 -1
  358. package/dist/solutions-components/{p-62994fb8.entry.js → p-bb0c7be3.entry.js} +3 -3
  359. package/dist/solutions-components/{p-7fdcce90.entry.js → p-bf57dbfd.entry.js} +2 -2
  360. package/dist/solutions-components/p-c047a6fc.entry.js +6 -0
  361. package/dist/solutions-components/{p-83997457.entry.js → p-d84fe0ee.entry.js} +2 -2
  362. package/dist/solutions-components/p-e9176a44.entry.js +6 -0
  363. package/dist/solutions-components/p-e947332f.entry.js +6 -0
  364. package/dist/solutions-components/{p-568c465e.entry.js → p-fc665a1a.entry.js} +1 -1
  365. package/dist/solutions-components/solutions-components.esm.js +1 -1
  366. package/dist/solutions-components/utils/interfaces.ts +5 -0
  367. package/dist/solutions-components/utils/mapViewUtils.ts +19 -1
  368. package/dist/solutions-components/utils/pdfUtils.ts +40 -47
  369. package/dist/types/assets/arcgis-pdf-creator/PDFLabels.d.ts +218 -0
  370. package/dist/types/components/create-related-feature/create-related-feature.d.ts +113 -0
  371. package/dist/types/components/crowdsource-reporter/crowdsource-reporter.d.ts +197 -99
  372. package/dist/types/components/feature-details/feature-details.d.ts +31 -0
  373. package/dist/types/components/feature-list/feature-list.d.ts +31 -2
  374. package/dist/types/components/info-card/info-card.d.ts +6 -2
  375. package/dist/types/components/layer-list/layer-list.d.ts +0 -5
  376. package/dist/types/components.d.ts +131 -12
  377. package/dist/types/preact.d.ts +8 -1
  378. package/dist/types/utils/interfaces.d.ts +4 -0
  379. package/dist/types/utils/mapViewUtils.d.ts +7 -0
  380. package/package.json +1 -1
  381. package/dist/solutions-components/p-28b4b325.entry.js +0 -6
  382. package/dist/solutions-components/p-36d3476c.entry.js +0 -17
  383. package/dist/solutions-components/p-452d2d38.entry.js +0 -6
  384. package/dist/solutions-components/p-48b2469f.entry.js +0 -6
  385. package/dist/solutions-components/p-4f0712e2.entry.js +0 -6
  386. package/dist/solutions-components/p-535c103e.entry.js +0 -6
  387. package/dist/solutions-components/p-7ca416ab.entry.js +0 -6
  388. package/dist/solutions-components/p-8e337f80.entry.js +0 -6
  389. package/dist/solutions-components/p-d13f6b3a.entry.js +0 -6
  390. package/dist/solutions-components/p-d62b99ff.entry.js +0 -6
@@ -16,8 +16,7 @@ const locale = require('./locale-5efdf085.js');
16
16
  const t9n = require('./t9n-9d199056.js');
17
17
  const resources = require('./resources-cb14bafc.js');
18
18
  const locale$1 = require('./locale-48d76c59.js');
19
- const mapViewUtils = require('./mapViewUtils-82018df6.js');
20
- const popupUtils = require('./popupUtils-500c1544.js');
19
+ const mapViewUtils = require('./mapViewUtils-6e46ba33.js');
21
20
  require('./guid-a7528dfa.js');
22
21
  require('./resources-1c0e54c1.js');
23
22
  require('./browser-a96d0614.js');
@@ -693,13 +692,255 @@ const CreateFeature = class {
693
692
  };
694
693
  CreateFeature.style = CreateFeatureStyle0;
695
694
 
696
- 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}";
695
+ const createRelatedFeatureCss = ":host{display:block}.esri-editor__panel-toolbar{display:none !important}";
696
+ const CreateRelatedFeatureStyle0 = createRelatedFeatureCss;
697
+
698
+ const CreateRelatedFeature = class {
699
+ constructor(hostRef) {
700
+ index.registerInstance(this, hostRef);
701
+ this.success = index.createEvent(this, "success", 7);
702
+ this.fail = index.createEvent(this, "fail", 7);
703
+ this.isActionPending = index.createEvent(this, "isActionPending", 7);
704
+ this.mapView = undefined;
705
+ this.table = undefined;
706
+ this.selectedFeature = undefined;
707
+ this.customizeSubmit = false;
708
+ }
709
+ //--------------------------------------------------------------------------
710
+ //
711
+ // Watch handlers
712
+ //
713
+ //--------------------------------------------------------------------------
714
+ /**
715
+ * Called each time the mapView prop is changed.
716
+ */
717
+ async mapViewWatchHandler() {
718
+ await this.mapView.when(async () => {
719
+ await this.init();
720
+ });
721
+ }
722
+ //--------------------------------------------------------------------------
723
+ //
724
+ // Methods (public)
725
+ //
726
+ //--------------------------------------------------------------------------
727
+ /**
728
+ * Destroy the Editor widget instance
729
+ */
730
+ async close() {
731
+ if (this._editor) {
732
+ this._editor.destroy();
733
+ }
734
+ }
735
+ /**
736
+ * Submit the comment
737
+ */
738
+ async submit() {
739
+ if (this._editor) {
740
+ this._editor.viewModel.featureFormViewModel.submit();
741
+ }
742
+ }
743
+ //--------------------------------------------------------------------------
744
+ //
745
+ // Functions (lifecycle)
746
+ //
747
+ //--------------------------------------------------------------------------
748
+ /**
749
+ * StencilJS: Called once just after the component is first connected to the DOM.
750
+ * @returns Promise when complete
751
+ */
752
+ async componentWillLoad() {
753
+ await this.initModules();
754
+ }
755
+ /**
756
+ * Init Editor widget and starts the create workflow
757
+ */
758
+ async init() {
759
+ if (this.mapView) {
760
+ await this.createEditorWidget();
761
+ }
762
+ }
763
+ /**
764
+ * Load esri javascript api modules
765
+ * @returns Promise resolving when function is done
766
+ * @protected
767
+ */
768
+ async initModules() {
769
+ const [Editor, reactiveUtils] = await locale$1.loadModules([
770
+ "esri/widgets/Editor",
771
+ "esri/core/reactiveUtils"
772
+ ]);
773
+ this.Editor = Editor;
774
+ this.reactiveUtils = reactiveUtils;
775
+ }
776
+ render() {
777
+ return (index.h(index.Host, { key: '383e8fac89d037f77241d856013202d1e04b28ba' }));
778
+ }
779
+ /**
780
+ * StencilJS: Called once just after the component is fully loaded and the first render() occurs.
781
+ */
782
+ async componentDidLoad() {
783
+ await this.init();
784
+ }
785
+ /**
786
+ * Display editor widget to create the new feature
787
+ * @protected
788
+ */
789
+ async createEditorWidget() {
790
+ if (this._editor) {
791
+ this._editor.destroy();
792
+ }
793
+ const container = document.createElement("div");
794
+ this._editor = new this.Editor({
795
+ view: this.mapView,
796
+ visibleElements: {
797
+ snappingControls: false
798
+ },
799
+ container
800
+ });
801
+ this.el.appendChild(container);
802
+ //Add handle to watch featureFormViewModel ready state and hide the editor elements
803
+ const hideElementHandle = this.reactiveUtils.watch(() => { var _a; return (_a = this._editor.viewModel.featureFormViewModel) === null || _a === void 0 ? void 0 : _a.state; }, (state) => {
804
+ if (state === 'ready') {
805
+ this.hideEditorsElements();
806
+ }
807
+ });
808
+ this._editor.viewModel.addHandles(hideElementHandle);
809
+ //Add handle to watch featureTemplatesViewModel ready state and then start the creation
810
+ const handle = this.reactiveUtils.watch(() => this._editor.viewModel.featureTemplatesViewModel.state, (state) => {
811
+ if (state === 'ready') {
812
+ void this.startCreate();
813
+ }
814
+ });
815
+ this._editor.viewModel.addHandles(handle);
816
+ // Add handle to watch if attachments are added/edited
817
+ const attachmentHandle = this.reactiveUtils.watch(() => this._editor.viewModel.state, (state) => {
818
+ if (state === 'adding-attachment' || state === 'editing-attachment') {
819
+ this._addingAttachment = true;
820
+ this.isActionPending.emit(true);
821
+ }
822
+ else {
823
+ if (this._addingAttachment) {
824
+ this.isActionPending.emit(false);
825
+ this._addingAttachment = false;
826
+ }
827
+ }
828
+ });
829
+ this._editor.viewModel.addHandles(attachmentHandle);
830
+ }
831
+ /**
832
+ * Start creating the feature feature form
833
+ * @protected
834
+ */
835
+ async startCreate() {
836
+ const parentLayer = this.selectedFeature.layer;
837
+ const childTable = this.table;
838
+ const parentRelationship = parentLayer.relationships[0];
839
+ const childRelationship = childTable.relationships.find((rel) => parentLayer.layerId === rel.relatedTableId);
840
+ const queryResult = await parentLayer.queryFeatures({
841
+ objectIds: [this.selectedFeature.getObjectId()],
842
+ outFields: [parentLayer.objectIdField, parentRelationship.keyField],
843
+ });
844
+ const parentFeature = queryResult.features[0];
845
+ const template = childTable.templates[0];
846
+ const attributeOverrides = this.makeAttributesForRelatedFeature(parentFeature, parentRelationship, childRelationship);
847
+ const creationInfo = {
848
+ attributeOverrides,
849
+ layer: childTable,
850
+ template,
851
+ };
852
+ await this._editor.startCreateFeaturesWorkflowAtFeatureCreation(creationInfo);
853
+ // Emit an event to show submit cancel buttons
854
+ this.isActionPending.emit(false);
855
+ this._editor.viewModel.featureFormViewModel.on('submit', this.submitted.bind(this));
856
+ }
857
+ /**
858
+ * Hides the elements of editor widget
859
+ * @protected
860
+ */
861
+ hideEditorsElements() {
862
+ if (!this.customizeSubmit) {
863
+ return;
864
+ }
865
+ setTimeout(() => {
866
+ var _a;
867
+ //hides the header and footer on the featureForm
868
+ (_a = this.el.querySelector('.esri-editor').querySelectorAll('calcite-flow-item')) === null || _a === void 0 ? void 0 : _a.forEach((flowItem) => {
869
+ var _a, _b, _c, _d, _e;
870
+ 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');
871
+ //hide the header
872
+ (_d = article === null || article === void 0 ? void 0 : article.querySelector('header')) === null || _d === void 0 ? void 0 : _d.setAttribute('style', 'display: none');
873
+ //hide the footer
874
+ (_e = article === null || article === void 0 ? void 0 : article.querySelector('footer')) === null || _e === void 0 ? void 0 : _e.setAttribute('style', 'display: none');
875
+ });
876
+ }, 700);
877
+ }
878
+ /**
879
+ * Makes attributes for related feature
880
+ * @param parentFeature Parent feature
881
+ * @param parentRelationship Parent relationship
882
+ * @param childRelationship Child relationship
883
+ * @returns Attributes for related feature
884
+ */
885
+ makeAttributesForRelatedFeature(parentFeature, parentRelationship, childRelationship) {
886
+ const parentKeyField = parentRelationship.keyField;
887
+ const parentKeyValue = parentFeature.getAttribute(parentKeyField);
888
+ let childKeyField = childRelationship.keyField;
889
+ // get the field from table which name is same as childKeyField and use that field name as childKeyField
890
+ const field = this.table.fields.find((field) => field.name.toLocaleLowerCase() === childKeyField.toLocaleLowerCase());
891
+ childKeyField = field.name;
892
+ const childAttributes = {
893
+ [childKeyField]: parentKeyValue,
894
+ };
895
+ return childAttributes;
896
+ }
897
+ /**
898
+ * On creation of feature emit the event that the feature is created
899
+ * @param evt feature submit event
900
+ * @protected
901
+ */
902
+ async submitted(evt) {
903
+ var _a;
904
+ //return if any attribute is invalid , focus will be shifted to the invalid attribute in feature form
905
+ if (evt.invalid.length) {
906
+ return;
907
+ }
908
+ //Submit only when valid attributes
909
+ //emit success or fail based on the result
910
+ if (evt.valid.length) {
911
+ try {
912
+ await this._editor.activeWorkflow.commit();
913
+ //throw errors if any failures
914
+ if ((_a = this._editor.viewModel.failures) === null || _a === void 0 ? void 0 : _a.length) {
915
+ this._editor.viewModel.failures.some((failure) => {
916
+ if (failure.error) {
917
+ throw (failure.error);
918
+ }
919
+ });
920
+ }
921
+ }
922
+ catch (e) {
923
+ this.fail.emit(e);
924
+ return;
925
+ }
926
+ this.success.emit();
927
+ }
928
+ }
929
+ get el() { return index.getElement(this); }
930
+ static get watchers() { return {
931
+ "mapView": ["mapViewWatchHandler"]
932
+ }; }
933
+ };
934
+ CreateRelatedFeature.style = CreateRelatedFeatureStyle0;
935
+
936
+ 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}";
697
937
  const FeatureDetailsStyle0 = featureDetailsCss;
698
938
 
699
939
  const FeatureDetails = class {
700
940
  constructor(hostRef) {
701
941
  index.registerInstance(this, hostRef);
702
942
  this.loadingStatus = index.createEvent(this, "loadingStatus", 7);
943
+ this.featureSelect = index.createEvent(this, "featureSelect", 7);
703
944
  /**
704
945
  * string[]: Valid field types for like and dislike
705
946
  */
@@ -711,8 +952,10 @@ const FeatureDetails = class {
711
952
  this._likeCount = 0;
712
953
  this._disLikeCount = 0;
713
954
  this._dislikeFieldAvailable = false;
955
+ this._commentsAvailable = false;
714
956
  this._isLikeBtnClicked = false;
715
957
  this._isDislikeBtnClicked = false;
958
+ this._relatedFeaturesOIDs = undefined;
716
959
  }
717
960
  //--------------------------------------------------------------------------
718
961
  //
@@ -725,19 +968,23 @@ const FeatureDetails = class {
725
968
  async graphicsWatchHandler() {
726
969
  await this.getCompleteGraphic(this.graphics[0]);
727
970
  this.checkLikeDislikeFields();
971
+ await this.processComments();
728
972
  }
729
973
  //--------------------------------------------------------------------------
730
974
  //
731
975
  // Methods (public)
976
+ //
977
+ //--------------------------------------------------------------------------
732
978
  /**
733
979
  * Refresh the features comments which will fetch like, dislike and update the component
734
980
  * @returns Promise that resolves when the operation is complete
735
981
  */
736
982
  async refresh(graphic) {
983
+ await this.getCompleteGraphic(graphic);
984
+ await this.processComments();
737
985
  if (this.isLikeDislikeConfigured(graphic.layer)) {
738
986
  // in case of multiple features selected fetch complete feature and update like dislike for current feature
739
987
  if (graphic && this.graphics.length > 1) {
740
- await this.getCompleteGraphic(graphic);
741
988
  this.checkLikeDislikeFields();
742
989
  }
743
990
  }
@@ -771,15 +1018,21 @@ const FeatureDetails = class {
771
1018
  */
772
1019
  async componentWillLoad() {
773
1020
  await this._initModules();
1021
+ //Apply query to get complete graphic with complete attributes
774
1022
  await this.getCompleteGraphic(this.graphics[0]);
775
1023
  this.checkLikeDislikeFields();
1024
+ await this.processComments();
776
1025
  }
777
1026
  render() {
778
- var _a, _b, _c, _d;
779
- return (index.h("calcite-panel", { key: 'c37e61727e2d94fb11c1c82b68de90b63a68385c', "full-height": true }, index.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) &&
780
- index.h("div", { key: '3a48acd141dbdcb921b2b24296587b130c4e0fcb', class: 'buttons' }, this._likeFieldAvailable &&
781
- index.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 &&
782
- index.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))));
1027
+ var _a, _b, _c, _d, _e;
1028
+ //When related features found show comments list of only those features else comments list will be empty
1029
+ const commentsListWhereClause = ((_a = this._relatedFeaturesOIDs) === null || _a === void 0 ? void 0 : _a.length) > 0 ? `objectId in(${this._relatedFeaturesOIDs})` : '1=0';
1030
+ return (index.h("calcite-panel", { key: 'c39c0eec021627b920972f7d4bce0d45bfe0a9c2', "full-height": true }, index.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) &&
1031
+ index.h("div", { key: 'ecfdf111612c92eacfd97dae7bb3080b7ad50e96', class: "buttons-container" }, this._commentsAvailable &&
1032
+ index.h("div", { key: '07a8213e11585041fb1c5f56254447a720033f04', class: "comment-btn" }, index.h("span", { key: 'f4071fbd03372a0e88857962e9c31530e2dc693a' }, this._relatedFeaturesOIDs.length), index.h("calcite-icon", { key: '30258e1daae5f1e00d18dd4ec052861de46b45bf', icon: "speech-bubble", scale: 's' })), this._likeFieldAvailable &&
1033
+ index.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 &&
1034
+ index.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 &&
1035
+ index.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 })));
783
1036
  }
784
1037
  /**
785
1038
  * Load esri javascript api modules
@@ -789,9 +1042,11 @@ const FeatureDetails = class {
789
1042
  * @protected
790
1043
  */
791
1044
  async _initModules() {
792
- const [Graphic] = await locale$1.loadModules([
1045
+ const [RelationshipQuery, Graphic] = await locale$1.loadModules([
1046
+ "esri/rest/support/RelationshipQuery",
793
1047
  "esri/Graphic"
794
1048
  ]);
1049
+ this.RelationshipQuery = RelationshipQuery;
795
1050
  this.Graphic = Graphic;
796
1051
  }
797
1052
  /**
@@ -806,6 +1061,56 @@ const FeatureDetails = class {
806
1061
  const completeGraphic = await layer.queryFeatures(query);
807
1062
  this._selectedGraphic = completeGraphic.features[0];
808
1063
  }
1064
+ /**
1065
+ * Process the comments functionality.
1066
+ * If comments are configured, fetches the related comments ans creates the input for comments list
1067
+ * @protected
1068
+ */
1069
+ async processComments() {
1070
+ var _a;
1071
+ const selectedLayer = this._selectedGraphic.layer;
1072
+ const commentsConfigured = this.reportingOptions[selectedLayer.id].comment && ((_a = selectedLayer.relationships) === null || _a === void 0 ? void 0 : _a.length) > 0;
1073
+ if (commentsConfigured) {
1074
+ //Get comments table id from map
1075
+ const relatedTableIdFromRelnship = selectedLayer.relationships[0].relatedTableId;
1076
+ const allTables = await mapViewUtils.getAllTables(this.mapView);
1077
+ const relatedTable = allTables.filter((table) => relatedTableIdFromRelnship === table.layerId);
1078
+ this.relatedTableId = (relatedTable === null || relatedTable === void 0 ? void 0 : relatedTable.length) > 0 ? relatedTable[0].id : '';
1079
+ //**Get the related records for the current selected feature**
1080
+ if (this.relatedTableId) {
1081
+ //current selected feature's objectId
1082
+ const objectId = this._selectedGraphic.attributes[selectedLayer.objectIdField];
1083
+ //create relationship query to get all the related records with the current selected feature
1084
+ const relationshipQuery = new this.RelationshipQuery({
1085
+ objectIds: [objectId],
1086
+ outFields: ['*'],
1087
+ relationshipId: selectedLayer.relationships[0].id
1088
+ });
1089
+ const result = await selectedLayer.queryRelatedFeatures(relationshipQuery).catch((e) => {
1090
+ console.error(e);
1091
+ });
1092
+ const relatedOIDs = [];
1093
+ if (result[objectId]) {
1094
+ result[objectId].features.forEach((feature) => {
1095
+ relatedOIDs.push(feature.attributes.OBJECTID);
1096
+ });
1097
+ }
1098
+ // Store the objectid's of the related features, this will be used to show the comments and its count
1099
+ this._relatedFeaturesOIDs = relatedOIDs;
1100
+ //Set comments available or not
1101
+ this._commentsAvailable = true;
1102
+ }
1103
+ else {
1104
+ this._relatedFeaturesOIDs = [];
1105
+ this._commentsAvailable = false;
1106
+ }
1107
+ }
1108
+ else {
1109
+ this._relatedFeaturesOIDs = [];
1110
+ this._commentsAvailable = false;
1111
+ this.relatedTableId = '';
1112
+ }
1113
+ }
809
1114
  /**
810
1115
  * Checks if the layers is configured for like dislike or not
811
1116
  * @param selectedLayer Feature layer
@@ -827,6 +1132,7 @@ const FeatureDetails = class {
827
1132
  if (!likeField && !dislikeField) {
828
1133
  return false;
829
1134
  }
1135
+ //Check if selected layer have the configured like and dislike field and it is of integer types
830
1136
  selectedLayer.fields.forEach((eachField) => {
831
1137
  if (this._validFieldTypes.indexOf(eachField.type) > -1) {
832
1138
  if (eachField.name === likeField && this.reportingOptions[selectedLayer.id].like) {
@@ -1001,244 +1307,6 @@ const FeatureDetails = class {
1001
1307
  };
1002
1308
  FeatureDetails.style = FeatureDetailsStyle0;
1003
1309
 
1004
- 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}";
1005
- const FeatureListStyle0 = featureListCss;
1006
-
1007
- const FeatureList = class {
1008
- constructor(hostRef) {
1009
- index.registerInstance(this, hostRef);
1010
- this.featureSelect = index.createEvent(this, "featureSelect", 7);
1011
- this.selectedLayerId = undefined;
1012
- this.mapView = undefined;
1013
- this.noFeaturesFoundMsg = undefined;
1014
- this.pageSize = 100;
1015
- this.highlightOnMap = false;
1016
- this.highlightOnHover = false;
1017
- this._featureItems = [];
1018
- this._featuresCount = 0;
1019
- this._isLoading = false;
1020
- this._translations = undefined;
1021
- }
1022
- //--------------------------------------------------------------------------
1023
- //
1024
- // Watch handlers
1025
- //
1026
- //--------------------------------------------------------------------------
1027
- /**
1028
- * Watch for selectedLayerId change and update layer instance and features list for new layerId
1029
- */
1030
- async selectedLayerWatchHandler() {
1031
- this._selectedLayer = await mapViewUtils.getLayerOrTable(this.mapView, this.selectedLayerId);
1032
- await this.initializeFeatureItems();
1033
- }
1034
- //--------------------------------------------------------------------------
1035
- //
1036
- // Methods (public)
1037
- /**
1038
- * Refresh the feature list which will fetch the latest features and update the features list
1039
- * @returns Promise that resolves when the operation is complete
1040
- */
1041
- async refresh() {
1042
- await this.initializeFeatureItems();
1043
- }
1044
- //--------------------------------------------------------------------------
1045
- //
1046
- // Functions (lifecycle)
1047
- //
1048
- //--------------------------------------------------------------------------
1049
- /**
1050
- * StencilJS: Called once just after the component is first connected to the DOM.
1051
- * @returns Promise when complete
1052
- */
1053
- async componentWillLoad() {
1054
- await this.initModules();
1055
- await this._getTranslations();
1056
- this._isLoading = true;
1057
- this._popupUtils = new popupUtils.PopupUtils();
1058
- if (this.mapView && this.selectedLayerId) {
1059
- this._selectedLayer = await mapViewUtils.getLayerOrTable(this.mapView, this.selectedLayerId);
1060
- }
1061
- }
1062
- /**
1063
- * StencilJS: Called once just after the component is fully loaded and the first render() occurs.
1064
- */
1065
- async componentDidLoad() {
1066
- await this.initializeFeatureItems();
1067
- }
1068
- /**
1069
- * Renders the component.
1070
- */
1071
- render() {
1072
- return (index.h("calcite-panel", { key: '4cb73ad53f9ce1cced4c6001d45001523cb19c4a', "full-height": true, "full-width": true }, this._isLoading && index.h("calcite-loader", { key: 'c88ac531c61ece3284c474a334f281507e69dad0', label: "", scale: "m" }), this._featureItems.length === 0 && !this._isLoading &&
1073
- index.h("calcite-notice", { key: '70dafc90052736c5b450f9c9c87ae5627f068b92', class: "error-msg", icon: "feature-details", kind: "info", open: true }, index.h("div", { key: 'a0b9b2aafbdb12f945d87242e29271ca0ff732fc', slot: "message" }, this.noFeaturesFoundMsg ? this.noFeaturesFoundMsg : this._translations.featureErrorMsg)), index.h("calcite-list", { key: 'a5dd1674092e74bedb06e32b739d14a949b92bea', "selection-appearance": "border", "selection-mode": "none" }, !this._isLoading && this._featureItems.length > 0 && this._featureItems), this._featuresCount > this.pageSize &&
1074
- index.h("div", { key: '35dc472ed2aa2bd8e83ca42cf12db0469c967505', class: "width-full", slot: "footer" }, index.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 }))));
1075
- }
1076
- //--------------------------------------------------------------------------
1077
- //
1078
- // Functions (protected)
1079
- //
1080
- //--------------------------------------------------------------------------
1081
- /**
1082
- * Load esri javascript api modules
1083
- * @returns Promise resolving when function is done
1084
- * @protected
1085
- */
1086
- async initModules() {
1087
- const [Color] = await locale$1.loadModules([
1088
- "esri/Color"
1089
- ]);
1090
- this.Color = Color;
1091
- }
1092
- /**
1093
- * Initialize the features list using the selected layer
1094
- * @protected
1095
- */
1096
- async initializeFeatureItems() {
1097
- if (this._selectedLayer) {
1098
- this._isLoading = true;
1099
- this._featureItems = await this.queryPage(0);
1100
- this._featuresCount = await this._selectedLayer.queryFeatureCount();
1101
- this._isLoading = false;
1102
- }
1103
- }
1104
- /**
1105
- * On page change get the next updated feature list
1106
- * @param event page change event
1107
- * @protected
1108
- */
1109
- async pageChanged(event) {
1110
- this._isLoading = true;
1111
- if (this._highlightHandle) {
1112
- this._highlightHandle.remove();
1113
- this._highlightHandle = null;
1114
- }
1115
- const page = event.target.startItem - 1;
1116
- this._featureItems = await this.queryPage(page);
1117
- this._isLoading = false;
1118
- }
1119
- /**
1120
- * On feature click in feature list highlight the feature on the map
1121
- * @param event feature clicked event
1122
- * @param selectedFeature selected feature graphic
1123
- * @protected
1124
- */
1125
- async featureClicked(event, selectedFeature) {
1126
- //clear previous highlight and remove the highlightHandle
1127
- this.clearHighlights();
1128
- //highlight on map only if it is selected item
1129
- if (this.highlightOnMap) {
1130
- const selectedFeatureObjectId = Number(event.target.value);
1131
- const selectedLayerView = await mapViewUtils.getFeatureLayerView(this.mapView, this.selectedLayerId);
1132
- this._highlightHandle = await mapViewUtils.highlightFeatures([selectedFeatureObjectId], selectedLayerView, this.mapView, true);
1133
- }
1134
- await this.emitSelectedFeature(selectedFeature);
1135
- }
1136
- /**
1137
- * Emit selected feature with its complete graphics and attributes
1138
- * @param graphic selected feature graphic
1139
- * @protected
1140
- */
1141
- async emitSelectedFeature(graphic) {
1142
- const layer = graphic.layer;
1143
- const query = layer.createQuery();
1144
- query.returnGeometry = true;
1145
- query.objectIds = [graphic.getObjectId()];
1146
- const completeGraphic = await layer.queryFeatures(query);
1147
- this.featureSelect.emit(completeGraphic.features[0]);
1148
- }
1149
- /**
1150
- * On feature hover in feature list highlight the feature on the map
1151
- * @param selectedFeature mouseovered feature graphic
1152
- * @protected
1153
- */
1154
- async onFeatureHover(selectedFeature) {
1155
- //clear previous highlight and remove the highlightHandle
1156
- this.clearHighlights();
1157
- if (this.highlightOnHover) {
1158
- const oId = selectedFeature.getObjectId();
1159
- const selectedLayerView = await mapViewUtils.getFeatureLayerView(this.mapView, this.selectedLayerId);
1160
- selectedLayerView.highlightOptions = { color: new this.Color("#FFFF00") };
1161
- this._highlightHandle = selectedLayerView.highlight([oId]);
1162
- }
1163
- }
1164
- /**
1165
- * Clears the highlight
1166
- * @protected
1167
- */
1168
- clearHighlights() {
1169
- //if a feature is already highlighted, then remove the highlight
1170
- if (this._highlightHandle) {
1171
- this._highlightHandle.remove();
1172
- }
1173
- }
1174
- /**
1175
- * Query the selected feature layer, in descending order of object id's
1176
- * @param page 0th page number in the pagination item
1177
- * @returns List of features items to be rendered
1178
- * @protected
1179
- */
1180
- async queryPage(page) {
1181
- const featureLayer = this._selectedLayer;
1182
- const objectIdField = featureLayer.objectIdField;
1183
- const query = {
1184
- start: page,
1185
- num: this.pageSize,
1186
- outFields: ["*"],
1187
- returnGeometry: true,
1188
- where: featureLayer.definitionExpression,
1189
- outSpatialReference: this.mapView.spatialReference.toJSON()
1190
- };
1191
- //sort only when objectId field is found
1192
- if (objectIdField) {
1193
- query.orderByFields = [objectIdField.toString() + " DESC"];
1194
- }
1195
- const featureSet = await featureLayer.queryFeatures(query);
1196
- return await this.createFeatureItem(featureSet);
1197
- }
1198
- /**
1199
- * Creates list of items using the popup titles
1200
- * @param featureSet Queried FeatureSet
1201
- * @returns List of features items to be rendered
1202
- * @protected
1203
- */
1204
- async createFeatureItem(featureSet) {
1205
- const currentFeatures = featureSet === null || featureSet === void 0 ? void 0 : featureSet.features;
1206
- const items = currentFeatures.map(async (feature) => {
1207
- const popupTitle = await this._popupUtils.getPopupTitle(feature, this.mapView.map);
1208
- return this.getFeatureItem(feature, popupTitle);
1209
- });
1210
- return Promise.all(items);
1211
- }
1212
- /**
1213
- * Get each feature item
1214
- * @param selectedFeature Each individual feature instance to be listed
1215
- * @param popupTitle feature popup title
1216
- * @returns individual feature item to be rendered
1217
- * @protected
1218
- */
1219
- getFeatureItem(selectedFeature, popupTitle) {
1220
- //get the object id value of the feature
1221
- const oId = selectedFeature.attributes[this._selectedLayer.objectIdField].toString();
1222
- //use object id if popupTitle is null or undefined
1223
- popupTitle = popupTitle !== null && popupTitle !== void 0 ? popupTitle : oId;
1224
- return (index.h("calcite-list-item", { onCalciteListItemSelect: (e) => { void this.featureClicked(e, selectedFeature); }, onMouseLeave: () => { void this.clearHighlights(); }, onMouseOver: () => { void this.onFeatureHover(selectedFeature); }, value: oId }, index.h("div", { class: "popup-title", slot: "content-start" }, popupTitle), index.h("calcite-icon", { icon: "chevron-right", scale: "s", slot: "content-end" })));
1225
- }
1226
- /**
1227
- * Fetches the component's translations
1228
- * @returns Promise when complete
1229
- * @protected
1230
- */
1231
- async _getTranslations() {
1232
- const messages = await locale$1.getLocaleComponentStrings(this.el);
1233
- this._translations = messages[0];
1234
- }
1235
- get el() { return index.getElement(this); }
1236
- static get watchers() { return {
1237
- "selectedLayerId": ["selectedLayerWatchHandler"]
1238
- }; }
1239
- };
1240
- FeatureList.style = FeatureListStyle0;
1241
-
1242
1310
  const layerListCss = ":host{display:block}.error-msg{padding:10px}.layer-name{font-weight:500;padding:10px 12px}.feature-count{padding-right:12px}";
1243
1311
  const LayerListStyle0 = layerListCss;
1244
1312
 
@@ -1247,11 +1315,8 @@ const LayerList = class {
1247
1315
  index.registerInstance(this, hostRef);
1248
1316
  this.layerSelect = index.createEvent(this, "layerSelect", 7);
1249
1317
  this.layersListLoaded = index.createEvent(this, "layersListLoaded", 7);
1250
- //HARDCODED IN EN
1251
- this._noLayerToDisplayErrorMsg = "Web map does not contain any editable layers.";
1252
1318
  this.mapView = undefined;
1253
1319
  this.layers = undefined;
1254
- this.noLayerErrorMsg = undefined;
1255
1320
  this.showFeatureCount = true;
1256
1321
  this.showNextIcon = false;
1257
1322
  this._noLayersToDisplay = false;
@@ -1300,9 +1365,9 @@ const LayerList = class {
1300
1365
  * Renders the component.
1301
1366
  */
1302
1367
  render() {
1303
- return (index.h(index.Fragment, { key: '33fe25a29aac6e4eaa429b1a8f58431b66d44d46' }, this._isLoading && index.h("calcite-loader", { key: 'f5b3c6a90f850db50a3e2b6af9745936802903dc', label: "", scale: "m" }), !this._isLoading && this.mapView && this._noLayersToDisplay &&
1304
- index.h("calcite-notice", { key: 'a40c96db6ecf36097aacb652156cbd863f6f9a3b', class: "error-msg", icon: "layers-reference", kind: "danger", open: true }, index.h("div", { key: '83c3b2982f750a8e69101501aa39b99a8636514f', slot: "title" }, this._translations.error), index.h("div", { key: '190eb16ca7991773c784c8d77bca9be064064028', slot: "message" }, this.noLayerErrorMsg ? this.noLayerErrorMsg : this._noLayerToDisplayErrorMsg)), !this._isLoading && this.mapView &&
1305
- index.h("calcite-list", { key: '980f20cec107d8e54af0c57448036eac3f342b71', "selection-appearance": "border", "selection-mode": "none" }, this.renderLayerList())));
1368
+ return (index.h(index.Fragment, { key: 'c73bf36c13fed8120273d8a5321dd60fe4d4b5f4' }, this._isLoading && index.h("calcite-loader", { key: 'e748d9cc7d1855d3a2da34702ba853d35d1a2cde', label: "", scale: "m" }), !this._isLoading && this.mapView && this._noLayersToDisplay &&
1369
+ index.h("calcite-notice", { key: '4a06b7694fd91456ee5cdc51d33e4ac633d416b2', class: "error-msg", icon: "layers-reference", kind: "danger", open: true }, index.h("div", { key: '63b09f02312aba71826957c5b2c04a7750bdfca1', slot: "title" }, this._translations.error), index.h("div", { key: '5a19dfe527a6c66a5477a4c6a14f4686cde73bb3', slot: "message" }, this._translations.noLayerToDisplayErrorMsg)), !this._isLoading && this.mapView &&
1370
+ index.h("calcite-list", { key: 'e8a6170a55f4ba6ea35a1397690c3e365b814886', "selection-appearance": "border", "selection-mode": "none" }, this.renderLayerList())));
1306
1371
  }
1307
1372
  //--------------------------------------------------------------------------
1308
1373
  //
@@ -1431,6 +1496,6 @@ LayerList.style = LayerListStyle0;
1431
1496
  exports.calcite_flow = Flow;
1432
1497
  exports.calcite_flow_item = FlowItem;
1433
1498
  exports.create_feature = CreateFeature;
1499
+ exports.create_related_feature = CreateRelatedFeature;
1434
1500
  exports.feature_details = FeatureDetails;
1435
- exports.feature_list = FeatureList;
1436
1501
  exports.layer_list = LayerList;