@esri/solutions-components 0.8.14 → 0.8.15

Sign up to get free protection for your applications and to get access to all the features.
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 +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 +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-3750c969.entry.js +6 -0
  342. package/dist/solutions-components/{p-ee457c15.js → p-37fc92db.js} +3 -3
  343. package/dist/solutions-components/{p-59c92ba2.entry.js → p-3a2e0188.entry.js} +1 -1
  344. package/dist/solutions-components/p-3fae9775.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;