@esri/solutions-components 0.7.29 → 0.7.31

Sign up to get free protection for your applications and to get access to all the features.
Files changed (461) hide show
  1. package/dist/assets/t9n/card-manager/resources_ar.json +1 -4
  2. package/dist/assets/t9n/card-manager/resources_bg.json +1 -4
  3. package/dist/assets/t9n/card-manager/resources_bs.json +1 -4
  4. package/dist/assets/t9n/card-manager/resources_ca.json +1 -4
  5. package/dist/assets/t9n/card-manager/resources_cs.json +1 -4
  6. package/dist/assets/t9n/card-manager/resources_da.json +1 -4
  7. package/dist/assets/t9n/card-manager/resources_de.json +1 -4
  8. package/dist/assets/t9n/card-manager/resources_el.json +1 -4
  9. package/dist/assets/t9n/card-manager/resources_es.json +1 -4
  10. package/dist/assets/t9n/card-manager/resources_et.json +1 -4
  11. package/dist/assets/t9n/card-manager/resources_fi.json +1 -4
  12. package/dist/assets/t9n/card-manager/resources_fr.json +1 -4
  13. package/dist/assets/t9n/card-manager/resources_he.json +1 -4
  14. package/dist/assets/t9n/card-manager/resources_hr.json +1 -4
  15. package/dist/assets/t9n/card-manager/resources_hu.json +1 -4
  16. package/dist/assets/t9n/card-manager/resources_id.json +1 -4
  17. package/dist/assets/t9n/card-manager/resources_it.json +1 -4
  18. package/dist/assets/t9n/card-manager/resources_ja.json +1 -4
  19. package/dist/assets/t9n/card-manager/resources_ko.json +1 -4
  20. package/dist/assets/t9n/card-manager/resources_lt.json +1 -4
  21. package/dist/assets/t9n/card-manager/resources_lv.json +1 -4
  22. package/dist/assets/t9n/card-manager/resources_nb.json +1 -4
  23. package/dist/assets/t9n/card-manager/resources_nl.json +1 -4
  24. package/dist/assets/t9n/card-manager/resources_pl.json +1 -4
  25. package/dist/assets/t9n/card-manager/resources_pt-BR.json +1 -4
  26. package/dist/assets/t9n/card-manager/resources_pt-PT.json +1 -4
  27. package/dist/assets/t9n/card-manager/resources_ro.json +1 -4
  28. package/dist/assets/t9n/card-manager/resources_ru.json +1 -4
  29. package/dist/assets/t9n/card-manager/resources_sk.json +1 -4
  30. package/dist/assets/t9n/card-manager/resources_sl.json +1 -4
  31. package/dist/assets/t9n/card-manager/resources_sr.json +1 -4
  32. package/dist/assets/t9n/card-manager/resources_sv.json +1 -4
  33. package/dist/assets/t9n/card-manager/resources_th.json +1 -4
  34. package/dist/assets/t9n/card-manager/resources_tr.json +1 -4
  35. package/dist/assets/t9n/card-manager/resources_uk.json +1 -4
  36. package/dist/assets/t9n/card-manager/resources_vi.json +1 -4
  37. package/dist/assets/t9n/card-manager/resources_zh-CN.json +1 -4
  38. package/dist/assets/t9n/card-manager/resources_zh-HK.json +1 -4
  39. package/dist/assets/t9n/card-manager/resources_zh-TW.json +1 -4
  40. package/dist/assets/t9n/crowdsource-manager/resources_ar.json +2 -2
  41. package/dist/assets/t9n/crowdsource-manager/resources_bg.json +2 -2
  42. package/dist/assets/t9n/crowdsource-manager/resources_bs.json +2 -2
  43. package/dist/assets/t9n/crowdsource-manager/resources_ca.json +2 -2
  44. package/dist/assets/t9n/crowdsource-manager/resources_cs.json +2 -2
  45. package/dist/assets/t9n/crowdsource-manager/resources_da.json +2 -2
  46. package/dist/assets/t9n/crowdsource-manager/resources_de.json +2 -2
  47. package/dist/assets/t9n/crowdsource-manager/resources_el.json +2 -2
  48. package/dist/assets/t9n/crowdsource-manager/resources_es.json +2 -2
  49. package/dist/assets/t9n/crowdsource-manager/resources_et.json +2 -2
  50. package/dist/assets/t9n/crowdsource-manager/resources_fi.json +2 -2
  51. package/dist/assets/t9n/crowdsource-manager/resources_fr.json +2 -2
  52. package/dist/assets/t9n/crowdsource-manager/resources_he.json +2 -2
  53. package/dist/assets/t9n/crowdsource-manager/resources_hr.json +2 -2
  54. package/dist/assets/t9n/crowdsource-manager/resources_hu.json +2 -2
  55. package/dist/assets/t9n/crowdsource-manager/resources_id.json +2 -2
  56. package/dist/assets/t9n/crowdsource-manager/resources_it.json +2 -2
  57. package/dist/assets/t9n/crowdsource-manager/resources_ja.json +2 -2
  58. package/dist/assets/t9n/crowdsource-manager/resources_ko.json +2 -2
  59. package/dist/assets/t9n/crowdsource-manager/resources_lt.json +2 -2
  60. package/dist/assets/t9n/crowdsource-manager/resources_lv.json +2 -2
  61. package/dist/assets/t9n/crowdsource-manager/resources_nb.json +2 -2
  62. package/dist/assets/t9n/crowdsource-manager/resources_nl.json +2 -2
  63. package/dist/assets/t9n/crowdsource-manager/resources_pl.json +2 -2
  64. package/dist/assets/t9n/crowdsource-manager/resources_pt-BR.json +2 -2
  65. package/dist/assets/t9n/crowdsource-manager/resources_pt-PT.json +2 -2
  66. package/dist/assets/t9n/crowdsource-manager/resources_ro.json +2 -2
  67. package/dist/assets/t9n/crowdsource-manager/resources_ru.json +2 -2
  68. package/dist/assets/t9n/crowdsource-manager/resources_sk.json +2 -2
  69. package/dist/assets/t9n/crowdsource-manager/resources_sl.json +2 -2
  70. package/dist/assets/t9n/crowdsource-manager/resources_sr.json +2 -2
  71. package/dist/assets/t9n/crowdsource-manager/resources_sv.json +2 -2
  72. package/dist/assets/t9n/crowdsource-manager/resources_th.json +2 -2
  73. package/dist/assets/t9n/crowdsource-manager/resources_tr.json +2 -2
  74. package/dist/assets/t9n/crowdsource-manager/resources_uk.json +2 -2
  75. package/dist/assets/t9n/crowdsource-manager/resources_vi.json +2 -2
  76. package/dist/assets/t9n/crowdsource-manager/resources_zh-CN.json +2 -2
  77. package/dist/assets/t9n/crowdsource-manager/resources_zh-HK.json +2 -2
  78. package/dist/assets/t9n/crowdsource-manager/resources_zh-TW.json +2 -2
  79. package/dist/assets/t9n/crowdsource-reporter/resources.json +7 -5
  80. package/dist/assets/t9n/crowdsource-reporter/resources_ar.json +20 -0
  81. package/dist/assets/t9n/crowdsource-reporter/resources_bg.json +20 -0
  82. package/dist/assets/t9n/crowdsource-reporter/resources_bs.json +20 -0
  83. package/dist/assets/t9n/crowdsource-reporter/resources_ca.json +20 -0
  84. package/dist/assets/t9n/crowdsource-reporter/resources_cs.json +20 -0
  85. package/dist/assets/t9n/crowdsource-reporter/resources_da.json +20 -0
  86. package/dist/assets/t9n/crowdsource-reporter/resources_de.json +20 -0
  87. package/dist/assets/t9n/crowdsource-reporter/resources_el.json +20 -0
  88. package/dist/assets/t9n/crowdsource-reporter/resources_en.json +7 -5
  89. package/dist/assets/t9n/crowdsource-reporter/resources_es.json +20 -0
  90. package/dist/assets/t9n/crowdsource-reporter/resources_et.json +20 -0
  91. package/dist/assets/t9n/crowdsource-reporter/resources_fi.json +20 -0
  92. package/dist/assets/t9n/crowdsource-reporter/resources_fr.json +20 -0
  93. package/dist/assets/t9n/crowdsource-reporter/resources_he.json +20 -0
  94. package/dist/assets/t9n/crowdsource-reporter/resources_hr.json +20 -0
  95. package/dist/assets/t9n/crowdsource-reporter/resources_hu.json +20 -0
  96. package/dist/assets/t9n/crowdsource-reporter/resources_id.json +20 -0
  97. package/dist/assets/t9n/crowdsource-reporter/resources_it.json +20 -0
  98. package/dist/assets/t9n/crowdsource-reporter/resources_ja.json +20 -0
  99. package/dist/assets/t9n/crowdsource-reporter/resources_ko.json +20 -0
  100. package/dist/assets/t9n/crowdsource-reporter/resources_lt.json +20 -0
  101. package/dist/assets/t9n/crowdsource-reporter/resources_lv.json +20 -0
  102. package/dist/assets/t9n/crowdsource-reporter/resources_nb.json +20 -0
  103. package/dist/assets/t9n/crowdsource-reporter/resources_nl.json +20 -0
  104. package/dist/assets/t9n/crowdsource-reporter/resources_pl.json +20 -0
  105. package/dist/assets/t9n/crowdsource-reporter/resources_pt-BR.json +20 -0
  106. package/dist/assets/t9n/crowdsource-reporter/resources_pt-PT.json +20 -0
  107. package/dist/assets/t9n/crowdsource-reporter/resources_ro.json +20 -0
  108. package/dist/assets/t9n/crowdsource-reporter/resources_ru.json +20 -0
  109. package/dist/assets/t9n/crowdsource-reporter/resources_sk.json +20 -0
  110. package/dist/assets/t9n/crowdsource-reporter/resources_sl.json +20 -0
  111. package/dist/assets/t9n/crowdsource-reporter/resources_sr.json +20 -0
  112. package/dist/assets/t9n/crowdsource-reporter/resources_sv.json +20 -0
  113. package/dist/assets/t9n/crowdsource-reporter/resources_th.json +20 -0
  114. package/dist/assets/t9n/crowdsource-reporter/resources_tr.json +20 -0
  115. package/dist/assets/t9n/crowdsource-reporter/resources_uk.json +20 -0
  116. package/dist/assets/t9n/crowdsource-reporter/resources_vi.json +20 -0
  117. package/dist/assets/t9n/crowdsource-reporter/resources_zh-CN.json +20 -0
  118. package/dist/assets/t9n/crowdsource-reporter/resources_zh-HK.json +20 -0
  119. package/dist/assets/t9n/crowdsource-reporter/resources_zh-TW.json +20 -0
  120. package/dist/assets/t9n/delete-button/resources_ar.json +8 -0
  121. package/dist/assets/t9n/delete-button/resources_bg.json +8 -0
  122. package/dist/assets/t9n/delete-button/resources_bs.json +8 -0
  123. package/dist/assets/t9n/delete-button/resources_ca.json +8 -0
  124. package/dist/assets/t9n/delete-button/resources_cs.json +8 -0
  125. package/dist/assets/t9n/delete-button/resources_da.json +8 -0
  126. package/dist/assets/t9n/delete-button/resources_de.json +8 -0
  127. package/dist/assets/t9n/delete-button/resources_el.json +8 -0
  128. package/dist/assets/t9n/delete-button/resources_es.json +8 -0
  129. package/dist/assets/t9n/delete-button/resources_et.json +8 -0
  130. package/dist/assets/t9n/delete-button/resources_fi.json +8 -0
  131. package/dist/assets/t9n/delete-button/resources_fr.json +8 -0
  132. package/dist/assets/t9n/delete-button/resources_he.json +8 -0
  133. package/dist/assets/t9n/delete-button/resources_hr.json +8 -0
  134. package/dist/assets/t9n/delete-button/resources_hu.json +8 -0
  135. package/dist/assets/t9n/delete-button/resources_id.json +8 -0
  136. package/dist/assets/t9n/delete-button/resources_it.json +8 -0
  137. package/dist/assets/t9n/delete-button/resources_ja.json +8 -0
  138. package/dist/assets/t9n/delete-button/resources_ko.json +8 -0
  139. package/dist/assets/t9n/delete-button/resources_lt.json +8 -0
  140. package/dist/assets/t9n/delete-button/resources_lv.json +8 -0
  141. package/dist/assets/t9n/delete-button/resources_nb.json +8 -0
  142. package/dist/assets/t9n/delete-button/resources_nl.json +8 -0
  143. package/dist/assets/t9n/delete-button/resources_pl.json +8 -0
  144. package/dist/assets/t9n/delete-button/resources_pt-BR.json +8 -0
  145. package/dist/assets/t9n/delete-button/resources_pt-PT.json +8 -0
  146. package/dist/assets/t9n/delete-button/resources_ro.json +8 -0
  147. package/dist/assets/t9n/delete-button/resources_ru.json +8 -0
  148. package/dist/assets/t9n/delete-button/resources_sk.json +8 -0
  149. package/dist/assets/t9n/delete-button/resources_sl.json +8 -0
  150. package/dist/assets/t9n/delete-button/resources_sr.json +8 -0
  151. package/dist/assets/t9n/delete-button/resources_sv.json +8 -0
  152. package/dist/assets/t9n/delete-button/resources_th.json +8 -0
  153. package/dist/assets/t9n/delete-button/resources_tr.json +8 -0
  154. package/dist/assets/t9n/delete-button/resources_uk.json +8 -0
  155. package/dist/assets/t9n/delete-button/resources_vi.json +8 -0
  156. package/dist/assets/t9n/delete-button/resources_zh-CN.json +8 -0
  157. package/dist/assets/t9n/delete-button/resources_zh-HK.json +8 -0
  158. package/dist/assets/t9n/delete-button/resources_zh-TW.json +8 -0
  159. package/dist/assets/t9n/feature-list/resources.json +1 -1
  160. package/dist/assets/t9n/feature-list/resources_ar.json +4 -0
  161. package/dist/assets/t9n/feature-list/resources_bg.json +4 -0
  162. package/dist/assets/t9n/feature-list/resources_bs.json +4 -0
  163. package/dist/assets/t9n/feature-list/resources_ca.json +4 -0
  164. package/dist/assets/t9n/feature-list/resources_cs.json +4 -0
  165. package/dist/assets/t9n/feature-list/resources_da.json +4 -0
  166. package/dist/assets/t9n/feature-list/resources_de.json +4 -0
  167. package/dist/assets/t9n/feature-list/resources_el.json +4 -0
  168. package/dist/assets/t9n/feature-list/resources_en.json +1 -1
  169. package/dist/assets/t9n/feature-list/resources_es.json +4 -0
  170. package/dist/assets/t9n/feature-list/resources_et.json +4 -0
  171. package/dist/assets/t9n/feature-list/resources_fi.json +4 -0
  172. package/dist/assets/t9n/feature-list/resources_fr.json +4 -0
  173. package/dist/assets/t9n/feature-list/resources_he.json +4 -0
  174. package/dist/assets/t9n/feature-list/resources_hr.json +4 -0
  175. package/dist/assets/t9n/feature-list/resources_hu.json +4 -0
  176. package/dist/assets/t9n/feature-list/resources_id.json +4 -0
  177. package/dist/assets/t9n/feature-list/resources_it.json +4 -0
  178. package/dist/assets/t9n/feature-list/resources_ja.json +4 -0
  179. package/dist/assets/t9n/feature-list/resources_ko.json +4 -0
  180. package/dist/assets/t9n/feature-list/resources_lt.json +4 -0
  181. package/dist/assets/t9n/feature-list/resources_lv.json +4 -0
  182. package/dist/assets/t9n/feature-list/resources_nb.json +4 -0
  183. package/dist/assets/t9n/feature-list/resources_nl.json +4 -0
  184. package/dist/assets/t9n/feature-list/resources_pl.json +4 -0
  185. package/dist/assets/t9n/feature-list/resources_pt-BR.json +4 -0
  186. package/dist/assets/t9n/feature-list/resources_pt-PT.json +4 -0
  187. package/dist/assets/t9n/feature-list/resources_ro.json +4 -0
  188. package/dist/assets/t9n/feature-list/resources_ru.json +4 -0
  189. package/dist/assets/t9n/feature-list/resources_sk.json +4 -0
  190. package/dist/assets/t9n/feature-list/resources_sl.json +4 -0
  191. package/dist/assets/t9n/feature-list/resources_sr.json +4 -0
  192. package/dist/assets/t9n/feature-list/resources_sv.json +4 -0
  193. package/dist/assets/t9n/feature-list/resources_th.json +4 -0
  194. package/dist/assets/t9n/feature-list/resources_tr.json +4 -0
  195. package/dist/assets/t9n/feature-list/resources_uk.json +4 -0
  196. package/dist/assets/t9n/feature-list/resources_vi.json +4 -0
  197. package/dist/assets/t9n/feature-list/resources_zh-CN.json +4 -0
  198. package/dist/assets/t9n/feature-list/resources_zh-HK.json +4 -0
  199. package/dist/assets/t9n/feature-list/resources_zh-TW.json +4 -0
  200. package/dist/assets/t9n/info-card/resources_ar.json +2 -1
  201. package/dist/assets/t9n/info-card/resources_bg.json +2 -1
  202. package/dist/assets/t9n/info-card/resources_bs.json +2 -1
  203. package/dist/assets/t9n/info-card/resources_ca.json +2 -1
  204. package/dist/assets/t9n/info-card/resources_cs.json +2 -1
  205. package/dist/assets/t9n/info-card/resources_da.json +2 -1
  206. package/dist/assets/t9n/info-card/resources_de.json +2 -1
  207. package/dist/assets/t9n/info-card/resources_el.json +2 -1
  208. package/dist/assets/t9n/info-card/resources_es.json +2 -1
  209. package/dist/assets/t9n/info-card/resources_et.json +2 -1
  210. package/dist/assets/t9n/info-card/resources_fi.json +2 -1
  211. package/dist/assets/t9n/info-card/resources_fr.json +2 -1
  212. package/dist/assets/t9n/info-card/resources_he.json +2 -1
  213. package/dist/assets/t9n/info-card/resources_hr.json +2 -1
  214. package/dist/assets/t9n/info-card/resources_hu.json +2 -1
  215. package/dist/assets/t9n/info-card/resources_id.json +2 -1
  216. package/dist/assets/t9n/info-card/resources_it.json +2 -1
  217. package/dist/assets/t9n/info-card/resources_ja.json +2 -1
  218. package/dist/assets/t9n/info-card/resources_ko.json +2 -1
  219. package/dist/assets/t9n/info-card/resources_lt.json +2 -1
  220. package/dist/assets/t9n/info-card/resources_lv.json +2 -1
  221. package/dist/assets/t9n/info-card/resources_nb.json +2 -1
  222. package/dist/assets/t9n/info-card/resources_nl.json +2 -1
  223. package/dist/assets/t9n/info-card/resources_pl.json +2 -1
  224. package/dist/assets/t9n/info-card/resources_pt-BR.json +2 -1
  225. package/dist/assets/t9n/info-card/resources_pt-PT.json +2 -1
  226. package/dist/assets/t9n/info-card/resources_ro.json +2 -1
  227. package/dist/assets/t9n/info-card/resources_ru.json +2 -1
  228. package/dist/assets/t9n/info-card/resources_sk.json +2 -1
  229. package/dist/assets/t9n/info-card/resources_sl.json +2 -1
  230. package/dist/assets/t9n/info-card/resources_sr.json +2 -1
  231. package/dist/assets/t9n/info-card/resources_sv.json +2 -1
  232. package/dist/assets/t9n/info-card/resources_th.json +2 -1
  233. package/dist/assets/t9n/info-card/resources_tr.json +2 -1
  234. package/dist/assets/t9n/info-card/resources_uk.json +2 -1
  235. package/dist/assets/t9n/info-card/resources_vi.json +2 -1
  236. package/dist/assets/t9n/info-card/resources_zh-CN.json +2 -1
  237. package/dist/assets/t9n/info-card/resources_zh-HK.json +2 -1
  238. package/dist/assets/t9n/info-card/resources_zh-TW.json +2 -1
  239. package/dist/assets/t9n/layer-list/resources.json +1 -1
  240. package/dist/assets/t9n/layer-list/resources_ar.json +4 -0
  241. package/dist/assets/t9n/layer-list/resources_bg.json +4 -0
  242. package/dist/assets/t9n/layer-list/resources_bs.json +4 -0
  243. package/dist/assets/t9n/layer-list/resources_ca.json +4 -0
  244. package/dist/assets/t9n/layer-list/resources_cs.json +4 -0
  245. package/dist/assets/t9n/layer-list/resources_da.json +4 -0
  246. package/dist/assets/t9n/layer-list/resources_de.json +4 -0
  247. package/dist/assets/t9n/layer-list/resources_el.json +4 -0
  248. package/dist/assets/t9n/layer-list/resources_en.json +1 -1
  249. package/dist/assets/t9n/layer-list/resources_es.json +4 -0
  250. package/dist/assets/t9n/layer-list/resources_et.json +4 -0
  251. package/dist/assets/t9n/layer-list/resources_fi.json +4 -0
  252. package/dist/assets/t9n/layer-list/resources_fr.json +4 -0
  253. package/dist/assets/t9n/layer-list/resources_he.json +4 -0
  254. package/dist/assets/t9n/layer-list/resources_hr.json +4 -0
  255. package/dist/assets/t9n/layer-list/resources_hu.json +4 -0
  256. package/dist/assets/t9n/layer-list/resources_id.json +4 -0
  257. package/dist/assets/t9n/layer-list/resources_it.json +4 -0
  258. package/dist/assets/t9n/layer-list/resources_ja.json +4 -0
  259. package/dist/assets/t9n/layer-list/resources_ko.json +4 -0
  260. package/dist/assets/t9n/layer-list/resources_lt.json +4 -0
  261. package/dist/assets/t9n/layer-list/resources_lv.json +4 -0
  262. package/dist/assets/t9n/layer-list/resources_nb.json +4 -0
  263. package/dist/assets/t9n/layer-list/resources_nl.json +4 -0
  264. package/dist/assets/t9n/layer-list/resources_pl.json +4 -0
  265. package/dist/assets/t9n/layer-list/resources_pt-BR.json +4 -0
  266. package/dist/assets/t9n/layer-list/resources_pt-PT.json +4 -0
  267. package/dist/assets/t9n/layer-list/resources_ro.json +4 -0
  268. package/dist/assets/t9n/layer-list/resources_ru.json +4 -0
  269. package/dist/assets/t9n/layer-list/resources_sk.json +4 -0
  270. package/dist/assets/t9n/layer-list/resources_sl.json +4 -0
  271. package/dist/assets/t9n/layer-list/resources_sr.json +4 -0
  272. package/dist/assets/t9n/layer-list/resources_sv.json +4 -0
  273. package/dist/assets/t9n/layer-list/resources_th.json +4 -0
  274. package/dist/assets/t9n/layer-list/resources_tr.json +4 -0
  275. package/dist/assets/t9n/layer-list/resources_uk.json +4 -0
  276. package/dist/assets/t9n/layer-list/resources_vi.json +4 -0
  277. package/dist/assets/t9n/layer-list/resources_zh-CN.json +4 -0
  278. package/dist/assets/t9n/layer-list/resources_zh-HK.json +4 -0
  279. package/dist/assets/t9n/layer-list/resources_zh-TW.json +4 -0
  280. package/dist/assets/t9n/layer-table/resources_ar.json +5 -9
  281. package/dist/assets/t9n/layer-table/resources_bg.json +5 -9
  282. package/dist/assets/t9n/layer-table/resources_bs.json +5 -9
  283. package/dist/assets/t9n/layer-table/resources_ca.json +5 -9
  284. package/dist/assets/t9n/layer-table/resources_cs.json +5 -9
  285. package/dist/assets/t9n/layer-table/resources_da.json +5 -9
  286. package/dist/assets/t9n/layer-table/resources_de.json +5 -9
  287. package/dist/assets/t9n/layer-table/resources_el.json +5 -9
  288. package/dist/assets/t9n/layer-table/resources_es.json +5 -9
  289. package/dist/assets/t9n/layer-table/resources_et.json +5 -9
  290. package/dist/assets/t9n/layer-table/resources_fi.json +5 -9
  291. package/dist/assets/t9n/layer-table/resources_fr.json +5 -9
  292. package/dist/assets/t9n/layer-table/resources_he.json +5 -9
  293. package/dist/assets/t9n/layer-table/resources_hr.json +5 -9
  294. package/dist/assets/t9n/layer-table/resources_hu.json +5 -9
  295. package/dist/assets/t9n/layer-table/resources_id.json +5 -9
  296. package/dist/assets/t9n/layer-table/resources_it.json +5 -9
  297. package/dist/assets/t9n/layer-table/resources_ja.json +5 -9
  298. package/dist/assets/t9n/layer-table/resources_ko.json +5 -9
  299. package/dist/assets/t9n/layer-table/resources_lt.json +5 -9
  300. package/dist/assets/t9n/layer-table/resources_lv.json +5 -9
  301. package/dist/assets/t9n/layer-table/resources_nb.json +5 -9
  302. package/dist/assets/t9n/layer-table/resources_nl.json +5 -9
  303. package/dist/assets/t9n/layer-table/resources_pl.json +5 -9
  304. package/dist/assets/t9n/layer-table/resources_pt-BR.json +5 -9
  305. package/dist/assets/t9n/layer-table/resources_pt-PT.json +5 -9
  306. package/dist/assets/t9n/layer-table/resources_ro.json +5 -9
  307. package/dist/assets/t9n/layer-table/resources_ru.json +5 -9
  308. package/dist/assets/t9n/layer-table/resources_sk.json +5 -9
  309. package/dist/assets/t9n/layer-table/resources_sl.json +5 -9
  310. package/dist/assets/t9n/layer-table/resources_sr.json +5 -9
  311. package/dist/assets/t9n/layer-table/resources_sv.json +5 -9
  312. package/dist/assets/t9n/layer-table/resources_th.json +5 -9
  313. package/dist/assets/t9n/layer-table/resources_tr.json +5 -9
  314. package/dist/assets/t9n/layer-table/resources_uk.json +5 -9
  315. package/dist/assets/t9n/layer-table/resources_vi.json +5 -9
  316. package/dist/assets/t9n/layer-table/resources_zh-CN.json +5 -9
  317. package/dist/assets/t9n/layer-table/resources_zh-HK.json +5 -9
  318. package/dist/assets/t9n/layer-table/resources_zh-TW.json +5 -9
  319. package/dist/assets/t9n/map-tools/resources_ar.json +2 -2
  320. package/dist/assets/t9n/map-tools/resources_bg.json +2 -2
  321. package/dist/assets/t9n/map-tools/resources_bs.json +2 -2
  322. package/dist/assets/t9n/map-tools/resources_ca.json +2 -2
  323. package/dist/assets/t9n/map-tools/resources_cs.json +2 -2
  324. package/dist/assets/t9n/map-tools/resources_da.json +2 -2
  325. package/dist/assets/t9n/map-tools/resources_de.json +2 -2
  326. package/dist/assets/t9n/map-tools/resources_el.json +2 -2
  327. package/dist/assets/t9n/map-tools/resources_es.json +2 -2
  328. package/dist/assets/t9n/map-tools/resources_et.json +2 -2
  329. package/dist/assets/t9n/map-tools/resources_fi.json +2 -2
  330. package/dist/assets/t9n/map-tools/resources_fr.json +2 -2
  331. package/dist/assets/t9n/map-tools/resources_he.json +2 -2
  332. package/dist/assets/t9n/map-tools/resources_hr.json +2 -2
  333. package/dist/assets/t9n/map-tools/resources_hu.json +2 -2
  334. package/dist/assets/t9n/map-tools/resources_id.json +2 -2
  335. package/dist/assets/t9n/map-tools/resources_it.json +2 -2
  336. package/dist/assets/t9n/map-tools/resources_ja.json +2 -2
  337. package/dist/assets/t9n/map-tools/resources_ko.json +2 -2
  338. package/dist/assets/t9n/map-tools/resources_lt.json +2 -2
  339. package/dist/assets/t9n/map-tools/resources_lv.json +2 -2
  340. package/dist/assets/t9n/map-tools/resources_nb.json +2 -2
  341. package/dist/assets/t9n/map-tools/resources_nl.json +2 -2
  342. package/dist/assets/t9n/map-tools/resources_pl.json +2 -2
  343. package/dist/assets/t9n/map-tools/resources_pt-BR.json +2 -2
  344. package/dist/assets/t9n/map-tools/resources_pt-PT.json +2 -2
  345. package/dist/assets/t9n/map-tools/resources_ro.json +2 -2
  346. package/dist/assets/t9n/map-tools/resources_ru.json +2 -2
  347. package/dist/assets/t9n/map-tools/resources_sk.json +2 -2
  348. package/dist/assets/t9n/map-tools/resources_sl.json +2 -2
  349. package/dist/assets/t9n/map-tools/resources_sr.json +2 -2
  350. package/dist/assets/t9n/map-tools/resources_sv.json +2 -2
  351. package/dist/assets/t9n/map-tools/resources_th.json +2 -2
  352. package/dist/assets/t9n/map-tools/resources_tr.json +2 -2
  353. package/dist/assets/t9n/map-tools/resources_uk.json +2 -2
  354. package/dist/assets/t9n/map-tools/resources_vi.json +2 -2
  355. package/dist/assets/t9n/map-tools/resources_zh-CN.json +2 -2
  356. package/dist/assets/t9n/map-tools/resources_zh-HK.json +2 -2
  357. package/dist/assets/t9n/map-tools/resources_zh-TW.json +2 -2
  358. package/dist/assets/t9n/public-notification/resources_ar.json +2 -2
  359. package/dist/assets/t9n/public-notification/resources_bg.json +2 -2
  360. package/dist/assets/t9n/public-notification/resources_bs.json +2 -2
  361. package/dist/assets/t9n/public-notification/resources_ca.json +2 -2
  362. package/dist/assets/t9n/public-notification/resources_cs.json +2 -2
  363. package/dist/assets/t9n/public-notification/resources_da.json +2 -2
  364. package/dist/assets/t9n/public-notification/resources_de.json +2 -2
  365. package/dist/assets/t9n/public-notification/resources_el.json +2 -2
  366. package/dist/assets/t9n/public-notification/resources_es.json +2 -2
  367. package/dist/assets/t9n/public-notification/resources_et.json +2 -2
  368. package/dist/assets/t9n/public-notification/resources_fi.json +2 -2
  369. package/dist/assets/t9n/public-notification/resources_fr.json +2 -2
  370. package/dist/assets/t9n/public-notification/resources_he.json +2 -2
  371. package/dist/assets/t9n/public-notification/resources_hr.json +2 -2
  372. package/dist/assets/t9n/public-notification/resources_hu.json +2 -2
  373. package/dist/assets/t9n/public-notification/resources_id.json +2 -2
  374. package/dist/assets/t9n/public-notification/resources_it.json +2 -2
  375. package/dist/assets/t9n/public-notification/resources_ja.json +2 -2
  376. package/dist/assets/t9n/public-notification/resources_ko.json +2 -2
  377. package/dist/assets/t9n/public-notification/resources_lt.json +2 -2
  378. package/dist/assets/t9n/public-notification/resources_lv.json +2 -2
  379. package/dist/assets/t9n/public-notification/resources_nb.json +2 -2
  380. package/dist/assets/t9n/public-notification/resources_nl.json +2 -2
  381. package/dist/assets/t9n/public-notification/resources_pl.json +2 -2
  382. package/dist/assets/t9n/public-notification/resources_pt-BR.json +2 -2
  383. package/dist/assets/t9n/public-notification/resources_pt-PT.json +2 -2
  384. package/dist/assets/t9n/public-notification/resources_ro.json +2 -2
  385. package/dist/assets/t9n/public-notification/resources_ru.json +2 -2
  386. package/dist/assets/t9n/public-notification/resources_sk.json +2 -2
  387. package/dist/assets/t9n/public-notification/resources_sl.json +2 -2
  388. package/dist/assets/t9n/public-notification/resources_sr.json +2 -2
  389. package/dist/assets/t9n/public-notification/resources_sv.json +2 -2
  390. package/dist/assets/t9n/public-notification/resources_th.json +2 -2
  391. package/dist/assets/t9n/public-notification/resources_tr.json +2 -2
  392. package/dist/assets/t9n/public-notification/resources_uk.json +2 -2
  393. package/dist/assets/t9n/public-notification/resources_vi.json +2 -2
  394. package/dist/assets/t9n/public-notification/resources_zh-CN.json +2 -2
  395. package/dist/assets/t9n/public-notification/resources_zh-HK.json +2 -2
  396. package/dist/assets/t9n/public-notification/resources_zh-TW.json +2 -2
  397. package/dist/cjs/{calcite-flow_4.cjs.entry.js → calcite-flow_5.cjs.entry.js} +241 -22
  398. package/dist/cjs/card-manager_3.cjs.entry.js +1 -1
  399. package/dist/cjs/crowdsource-reporter.cjs.entry.js +285 -12
  400. package/dist/cjs/{downloadUtils-83c6d3c3.js → downloadUtils-10e0de31.js} +2 -2
  401. package/dist/cjs/{index.es-bd1a93b2.js → index.es-72dc7ab9.js} +1 -1
  402. package/dist/cjs/loader.cjs.js +1 -1
  403. package/dist/cjs/map-select-tools_3.cjs.entry.js +1 -1
  404. package/dist/cjs/public-notification.cjs.entry.js +1 -1
  405. package/dist/cjs/solutions-components.cjs.js +1 -1
  406. package/dist/collection/collection-manifest.json +1 -0
  407. package/dist/collection/components/create-feature/create-feature.css +23 -0
  408. package/dist/collection/components/create-feature/create-feature.js +361 -0
  409. package/dist/collection/components/crowdsource-reporter/crowdsource-reporter.css +10 -1
  410. package/dist/collection/components/crowdsource-reporter/crowdsource-reporter.js +324 -12
  411. package/dist/collection/components/feature-list/feature-list.js +2 -0
  412. package/dist/collection/components/layer-list/layer-list.css +4 -0
  413. package/dist/collection/components/layer-list/layer-list.js +100 -18
  414. package/dist/collection/demos/crowdsource-reporter.html +30 -15
  415. package/dist/collection/demos/feature-list.html +1 -1
  416. package/dist/collection/utils/downloadUtils.js +1 -1
  417. package/dist/collection/utils/downloadUtils.ts +1 -1
  418. package/dist/components/create-feature.d.ts +11 -0
  419. package/dist/components/create-feature.js +11 -0
  420. package/dist/components/create-feature2.js +226 -0
  421. package/dist/components/crowdsource-reporter.js +361 -69
  422. package/dist/components/downloadUtils.js +1 -1
  423. package/dist/components/feature-list2.js +2 -0
  424. package/dist/components/layer-list2.js +45 -20
  425. package/dist/esm/calcite-alert_4.entry.js +1 -1
  426. package/dist/esm/calcite-combobox_6.entry.js +1 -1
  427. package/dist/esm/{calcite-flow_4.entry.js → calcite-flow_5.entry.js} +241 -23
  428. package/dist/esm/card-manager_3.entry.js +2 -2
  429. package/dist/esm/crowdsource-manager.entry.js +1 -1
  430. package/dist/esm/crowdsource-reporter.entry.js +286 -13
  431. package/dist/esm/{downloadUtils-a301c193.js → downloadUtils-d297078f.js} +3 -3
  432. package/dist/esm/{index.es-37a9907e.js → index.es-3b4fa9d0.js} +2 -2
  433. package/dist/esm/loader.js +1 -1
  434. package/dist/esm/map-select-tools_3.entry.js +2 -2
  435. package/dist/esm/{mapViewUtils-6daedef8.js → mapViewUtils-cf05e880.js} +1 -1
  436. package/dist/esm/public-notification.entry.js +2 -2
  437. package/dist/esm/solutions-components.js +1 -1
  438. package/dist/solutions-components/demos/crowdsource-reporter.html +30 -15
  439. package/dist/solutions-components/demos/feature-list.html +1 -1
  440. package/dist/solutions-components/{p-78e720cc.entry.js → p-09ec8c8f.entry.js} +1 -1
  441. package/dist/solutions-components/{p-a603e673.js → p-103c5318.js} +3 -3
  442. package/dist/solutions-components/{p-4566438a.js → p-2c382841.js} +1 -1
  443. package/dist/solutions-components/{p-fe295e9d.entry.js → p-57d49d15.entry.js} +1 -1
  444. package/dist/solutions-components/{p-12de822a.entry.js → p-6b2b8b41.entry.js} +1 -1
  445. package/dist/solutions-components/{p-dbe62aaf.entry.js → p-802acc51.entry.js} +1 -1
  446. package/dist/solutions-components/{p-0587972d.js → p-8ec25bf4.js} +1 -1
  447. package/dist/solutions-components/{p-b37ec1f3.entry.js → p-921f21d5.entry.js} +1 -1
  448. package/dist/solutions-components/p-b4e2cac4.entry.js +17 -0
  449. package/dist/solutions-components/{p-643e7ee1.entry.js → p-b699637f.entry.js} +1 -1
  450. package/dist/solutions-components/p-bb6562ab.entry.js +6 -0
  451. package/dist/solutions-components/solutions-components.esm.js +1 -1
  452. package/dist/solutions-components/utils/downloadUtils.ts +1 -1
  453. package/dist/types/components/create-feature/create-feature.d.ts +107 -0
  454. package/dist/types/components/crowdsource-reporter/crowdsource-reporter.d.ts +165 -8
  455. package/dist/types/components/feature-list/feature-list.d.ts +2 -0
  456. package/dist/types/components/layer-list/layer-list.d.ts +16 -2
  457. package/dist/types/components.d.ts +105 -0
  458. package/dist/types/preact.d.ts +6 -0
  459. package/package.json +1 -1
  460. package/dist/solutions-components/p-6a452a84.entry.js +0 -17
  461. package/dist/solutions-components/p-8756eebb.entry.js +0 -6
@@ -20,6 +20,9 @@
20
20
  */
21
21
  import { Host, h } from "@stencil/core";
22
22
  import { getLocaleComponentStrings } from "../../utils/locale";
23
+ import { loadModules } from "../../utils/loadModules";
24
+ import { getAllLayers, getLayerOrTable } from "../../utils/mapViewUtils";
25
+ import { queryFeaturesByID } from "../../utils/queryUtils";
23
26
  export class CrowdsourceReporter {
24
27
  constructor() {
25
28
  this.description = undefined;
@@ -32,6 +35,8 @@ export class CrowdsourceReporter {
32
35
  this.layers = undefined;
33
36
  this.loginTitle = undefined;
34
37
  this.mapView = undefined;
38
+ this.layerId = undefined;
39
+ this.objectId = undefined;
35
40
  this.reportButtonText = undefined;
36
41
  this.reportsHeader = undefined;
37
42
  this.reportSubmittedMessage = undefined;
@@ -48,6 +53,10 @@ export class CrowdsourceReporter {
48
53
  this._sidePanelCollapsed = false;
49
54
  this._translations = undefined;
50
55
  this._hasValidLayers = false;
56
+ this._selectedLayerName = undefined;
57
+ this._reportSubmitted = false;
58
+ this._showSubmitCancelButton = false;
59
+ this._featureCreationFailedErrorMsg = undefined;
51
60
  }
52
61
  //--------------------------------------------------------------------------
53
62
  //
@@ -79,19 +88,43 @@ export class CrowdsourceReporter {
79
88
  * @returns Promise when complete
80
89
  */
81
90
  async componentWillLoad() {
91
+ await this._initModules();
82
92
  await this._getTranslations();
83
93
  }
84
94
  /**
85
95
  * Renders the component.
86
96
  */
87
97
  render() {
88
- return (h(Host, null, h("div", null, h("calcite-shell", { "content-behind": true }, this._getReporter()))));
98
+ const themeClass = this.theme === "dark" ? "calcite-mode-dark" : "calcite-mode-light";
99
+ return (h(Host, null, this._reportSubmitted && h("calcite-alert", { "auto-close": true, class: themeClass, closable: true, icon: "check-circle", kind: "success", onCalciteAlertClose: () => { this._reportSubmitted = false; }, open: true, placement: "top" }, h("div", { slot: "title" }, this._translations.reportSubmit), h("div", { slot: "message" }, this._translations.submitMsg)), this._featureCreationFailedErrorMsg && h("calcite-alert", { "auto-close": true, class: themeClass, closable: true, icon: "x-octagon", kind: "danger", onCalciteAlertClose: () => { this._featureCreationFailedErrorMsg = ""; }, open: true, placement: "top" }, h("div", { slot: "title" }, this._translations.error), h("div", { slot: "message" }, this._featureCreationFailedErrorMsg)), h("div", null, h("calcite-shell", { "content-behind": true }, this._getReporter()))));
89
100
  }
90
101
  //--------------------------------------------------------------------------
91
102
  //
92
103
  // Functions (protected)
93
104
  //
94
105
  //--------------------------------------------------------------------------
106
+ /**
107
+ * Load esri javascript api modules
108
+ *
109
+ * @returns Promise resolving when function is done
110
+ *
111
+ * @protected
112
+ */
113
+ async _initModules() {
114
+ const [reactiveUtils] = await loadModules([
115
+ "esri/core/reactiveUtils"
116
+ ]);
117
+ this.reactiveUtils = reactiveUtils;
118
+ }
119
+ /**
120
+ * Set the selected layer id and layer name
121
+ * @param layerId string layerId of the selected layer
122
+ * @param layerName string layerName of the selected layer
123
+ */
124
+ setSelectedLayer(layerId, layerName) {
125
+ this._selectedLayerId = layerId;
126
+ this._selectedLayerName = layerName;
127
+ }
95
128
  /**
96
129
  * Get the reporter app functionality
97
130
  * @protected
@@ -109,6 +142,12 @@ export class CrowdsourceReporter {
109
142
  case "feature-details":
110
143
  renderLists.push(this.getFeatureDetailsFlowItem());
111
144
  break;
145
+ case "reporting-layer-list":
146
+ renderLists.push(this.getChooseCategoryFlowItem());
147
+ break;
148
+ case "feature-create":
149
+ renderLists.push(this.getFeatureCreateFlowItem());
150
+ break;
112
151
  }
113
152
  });
114
153
  const themeClass = this.theme === "dark" ? "calcite-mode-dark" : "calcite-mode-light";
@@ -125,33 +164,135 @@ export class CrowdsourceReporter {
125
164
  return (h("calcite-flow-item", { collapsed: this.isMobile && this._sidePanelCollapsed, heading: this.reportsHeader }, this._hasValidLayers &&
126
165
  h("calcite-action", { icon: "sort-ascending-arrow", slot: this.isMobile ? "header-menu-actions" : "header-actions-end", text: this._translations.sort, "text-enabled": this.isMobile }), this._hasValidLayers &&
127
166
  h("calcite-action", { icon: "filter", slot: this.isMobile ? "header-menu-actions" : "header-actions-end", text: this._translations.filter, "text-enabled": this.isMobile }), this.isMobile && this.getActionToExpandCollapsePanel(), this._hasValidLayers && this.enableNewReports &&
128
- h("calcite-button", { appearance: "secondary", slot: "footer", width: "full" }, this.reportButtonText), h("calcite-panel", { "full-height": true, "full-width": true }, h("layer-list", { class: "height-full", layers: this.layers, mapView: this.mapView, noLayerErrorMsg: this._translations.noLayerToDisplayErrorMsg, onLayerSelect: this.displayFeaturesList.bind(this), onLayersListLoaded: this.layerListLoaded.bind(this) }))));
167
+ h("calcite-button", { appearance: "secondary", onClick: this.navigateToChooseCategory.bind(this), slot: "footer", width: "full" }, this.reportButtonText), h("calcite-panel", { "full-height": true, "full-width": true }, h("layer-list", { class: "height-full", layers: this.layers, mapView: this.mapView, noLayerErrorMsg: this._translations.noLayerToDisplayErrorMsg, onLayerSelect: this.displayFeaturesList.bind(this), onLayersListLoaded: this.layerListLoaded.bind(this), ref: el => this._layerList = el, showFeatureCount: true, showNextIcon: true }))));
168
+ }
169
+ /**
170
+ * Get the layer list for creating a report
171
+ * @returns Choose category flow item
172
+ * @protected
173
+ */
174
+ getChooseCategoryFlowItem() {
175
+ return (h("calcite-flow-item", { collapsed: this.isMobile && this._sidePanelCollapsed, heading: this._translations.createReportHeader, onCalciteFlowItemBack: this.backFromSelectedPanel.bind(this) }, this.isMobile && this.getActionToExpandCollapsePanel(), h("div", { class: "width-full", slot: "footer" }, h("calcite-button", { appearance: "secondary", class: "footer-top-button footer-button", disabled: !this._selectedLayerId, onClick: this.navigateToCreateFeature.bind(this), width: "full" }, this._translations.next), h("calcite-button", { appearance: "outline", class: "footer-button", onClick: this.backFromSelectedPanel.bind(this), width: "full" }, this._translations.cancel)), h("calcite-panel", { "full-height": true, "full-width": true }, h("calcite-notice", { class: "notice-msg", icon: "lightbulb", kind: "success", open: true }, h("div", { slot: "message" }, this._translations.chooseCategoryMsg)), h("layer-list", { class: "height-full", layers: this.layers, mapView: this.mapView, noLayerErrorMsg: this._translations.noLayerToDisplayErrorMsg, onLayerSelect: this.highlightSelectedLayer.bind(this), showFeatureCount: false, showNextIcon: false }))));
176
+ }
177
+ /**
178
+ * Get Feature create form of the selected feature layer
179
+ * @returns feature create form
180
+ * @protected
181
+ */
182
+ getFeatureCreateFlowItem() {
183
+ return (h("calcite-flow-item", { collapsed: this.isMobile && this._sidePanelCollapsed, heading: this._selectedLayerName, onCalciteFlowItemBack: this.backFromCreateFeaturePanel.bind(this) }, this.isMobile && this.getActionToExpandCollapsePanel(), this._showSubmitCancelButton && h("div", { class: "width-full", slot: "footer" }, h("calcite-button", { appearance: "secondary", class: "footer-top-button footer-button", onClick: this.onSubmitButtonClick.bind(this), width: "full" }, this._translations.submit), h("calcite-button", { appearance: "outline", class: "footer-button", onClick: this.backFromCreateFeaturePanel.bind(this), width: "full" }, this._translations.cancel)), h("calcite-panel", { "full-height": true, "full-width": true }, h("calcite-notice", { class: "notice-msg", icon: "lightbulb", kind: "success", open: true }, h("div", { slot: "message" }, this._translations.featureEditFormInfoMsg)), h("create-feature", { mapView: this.mapView, onDrawComplete: this.showSubmitCancelButton.bind(this), onFail: this.createFeatureFailed.bind(this), onSuccess: this.navigateHomePage.bind(this), ref: el => this._createFeature = el, selectedLayerId: this._selectedLayerId }))));
184
+ }
185
+ /**
186
+ * When drawing of incident location completed on map show the submit and cancel button
187
+ * @protected
188
+ */
189
+ showSubmitCancelButton() {
190
+ this._showSubmitCancelButton = true;
191
+ }
192
+ /**
193
+ * On back from create feature, call submit editor to destroy the Editor widget instance
194
+ * @protected
195
+ */
196
+ onSubmitButtonClick() {
197
+ if (this._createFeature) {
198
+ this._createFeature.submit();
199
+ }
200
+ }
201
+ /**
202
+ * On back from create feature, call close editor to destroy the Editor widget instance
203
+ * @protected
204
+ */
205
+ backFromCreateFeaturePanel() {
206
+ if (this._createFeature) {
207
+ this._createFeature.close();
208
+ }
209
+ this.backFromSelectedPanel();
210
+ }
211
+ /**
212
+ * On creating the feature is failed, show the error message
213
+ * @param evt Event which has feature failed message
214
+ * @protected
215
+ */
216
+ createFeatureFailed(evt) {
217
+ console.error(evt.detail);
218
+ this._featureCreationFailedErrorMsg = evt.detail.message;
219
+ }
220
+ /**
221
+ * On submit report navigate to the layer list home page and refresh the layer list
222
+ * @protected
223
+ */
224
+ navigateHomePage() {
225
+ this._reportSubmitted = true;
226
+ if (this._layerList) {
227
+ this._layerList.refresh();
228
+ }
229
+ this._flowItems = ["layer-list"];
230
+ }
231
+ /**
232
+ * Update the selected layer id and name
233
+ * @param evt Event which has details of selected layerId and layerName
234
+ * @protected
235
+ */
236
+ highlightSelectedLayer(evt) {
237
+ this.setSelectedLayer(evt.detail.layerId, evt.detail.layerName);
238
+ }
239
+ /**
240
+ * On next button click open the feature create flow item
241
+ * @protected
242
+ */
243
+ async navigateToCreateFeature() {
244
+ this._showSubmitCancelButton = false;
245
+ this._flowItems = [...this._flowItems, "feature-create"];
246
+ }
247
+ /**
248
+ * On report an incident button click open the create a report panel with the layer list
249
+ * @protected
250
+ */
251
+ navigateToChooseCategory() {
252
+ this._flowItems = [...this._flowItems, "reporting-layer-list"];
129
253
  }
130
254
  /**
131
255
  * When layer list is loaded, we will receive the list of layers, if its means we don't have any valid layer to be listed
132
256
  * @param evt Event which has list of layers
133
257
  * @protected
134
258
  */
135
- layerListLoaded(evt) {
259
+ async layerListLoaded(evt) {
136
260
  const layersListed = evt.detail;
261
+ //consider only the layers listed in the layer-list component
262
+ const allMapLayers = await getAllLayers(this.mapView);
263
+ this._validLayers = [];
264
+ allMapLayers.forEach((eachLayer) => {
265
+ if (layersListed.includes(eachLayer.id)) {
266
+ this._validLayers.push(eachLayer);
267
+ }
268
+ });
269
+ //handleMap click on layer list loaded
270
+ this.handleMapClick();
271
+ //update the has valid layer state
137
272
  this._hasValidLayers = layersListed.length > 0;
273
+ //navigate to the feature details if URL params found
274
+ await this.loadFeatureFromURLParams();
138
275
  }
139
276
  /**On click of layer list item show feature list
140
277
  * @param evt Event which has details of selected layerId and layerName
141
278
  * @protected
142
279
  */
143
280
  displayFeaturesList(evt) {
144
- this._selectedLayerId = evt.detail.layerId;
145
- this._selectedLayerName = evt.detail.layerName;
281
+ this.setSelectedLayer(evt.detail.layerId, evt.detail.layerName);
146
282
  this._flowItems = [...this._flowItems, "feature-list"];
147
283
  }
148
284
  /**
149
- * On back from feature list navigate to the Layer list panel
285
+ * On back from selected panel navigate to the previous panel
150
286
  * @protected
151
287
  */
152
- backFromFeatureList() {
288
+ backFromSelectedPanel() {
153
289
  const updatedFlowItems = [...this._flowItems];
154
290
  updatedFlowItems.pop();
291
+ //clear the selected layer and feature when back to layer list
292
+ if (updatedFlowItems.length === 1) {
293
+ this.setSelectedLayer('', '');
294
+ this.setSelectedFeatures([]);
295
+ }
155
296
  this._flowItems = [...updatedFlowItems];
156
297
  }
157
298
  /**
@@ -167,28 +308,61 @@ export class CrowdsourceReporter {
167
308
  * @param evt Event which has details of selected feature
168
309
  */
169
310
  async onFeatureSelectFromList(evt) {
170
- this._selectedFeature = [evt.detail];
311
+ this.setSelectedFeatures([evt.detail]);
171
312
  this._flowItems = [...this._flowItems, "feature-details"];
172
313
  }
173
314
  /**
174
315
  * Get feature list of the selected feature layer
175
316
  * @param layerId Layer id
317
+ * @param layerName Layer name
176
318
  * @returns feature list node
177
319
  * @protected
178
320
  */
179
321
  getFeatureListFlowItem(layerId, layerName) {
180
- return (h("calcite-flow-item", { collapsed: this.isMobile && this._sidePanelCollapsed, heading: layerName, onCalciteFlowItemBack: this.backFromFeatureList.bind(this) }, h("calcite-action", { icon: "sort-ascending-arrow", slot: this.isMobile ? "header-menu-actions" : "header-actions-end", text: this._translations.sort, "text-enabled": this.isMobile }), h("calcite-action", { icon: "filter", slot: this.isMobile ? "header-menu-actions" : "header-actions-end", text: this._translations.filter, "text-enabled": this.isMobile }), this.isMobile && this.getActionToExpandCollapsePanel(), this.enableNewReports &&
181
- h("calcite-button", { appearance: "secondary", slot: "footer", width: "full" }, this.reportButtonText), h("calcite-panel", { "full-height": true }, h("feature-list", { class: "height-full", highlightOnMap: true, mapView: this.mapView, noFeaturesFoundMsg: this._translations.featureErrorMsg, onFeatureSelect: this.onFeatureSelectFromList.bind(this), pageSize: 30, selectedLayerId: layerId }))));
322
+ return (h("calcite-flow-item", { collapsed: this.isMobile && this._sidePanelCollapsed, heading: layerName, onCalciteFlowItemBack: this.backFromSelectedPanel.bind(this) }, h("calcite-action", { icon: "sort-ascending-arrow", slot: this.isMobile ? "header-menu-actions" : "header-actions-end", text: this._translations.sort, "text-enabled": this.isMobile }), h("calcite-action", { icon: "filter", slot: this.isMobile ? "header-menu-actions" : "header-actions-end", text: this._translations.filter, "text-enabled": this.isMobile }), this.isMobile && this.getActionToExpandCollapsePanel(), this.enableNewReports &&
323
+ h("calcite-button", { appearance: "secondary", onClick: this.navigateToCreateFeature.bind(this), slot: "footer", width: "full" }, this.reportButtonText), h("calcite-panel", { "full-height": true }, h("feature-list", { class: "height-full", highlightOnMap: true, mapView: this.mapView, noFeaturesFoundMsg: this._translations.featureErrorMsg, onFeatureSelect: this.onFeatureSelectFromList.bind(this), pageSize: 30, selectedLayerId: layerId }))));
182
324
  }
183
325
  /**
184
326
  * Returns the calcite-flow item for feature details
185
327
  * @returns Node
186
328
  */
187
329
  getFeatureDetailsFlowItem() {
188
- return (h("calcite-flow-item", { collapsed: this.isMobile && this._sidePanelCollapsed, heading: this._selectedLayerName, onCalciteFlowItemBack: this.backFromFeatureList.bind(this) }, this.isMobile && this.getActionToExpandCollapsePanel(), h("calcite-action", { icon: "share", slot: "header-actions-end", text: this._translations.share }), h("calcite-panel", { "full-height": true }, h("info-card", { allowEditing: false, graphics: this._selectedFeature, isLoading: false, isMobile: false, mapView: this.mapView, zoomAndScrollToSelected: true }))));
330
+ return (h("calcite-flow-item", { collapsed: this.isMobile && this._sidePanelCollapsed, heading: this._selectedLayerName, onCalciteFlowItemBack: this.backFromSelectedPanel.bind(this) }, this.isMobile && this.getActionToExpandCollapsePanel(), h("instant-apps-social-share", { autoUpdateShareUrl: false, embed: false, popoverButtonIconScale: "s", ref: el => this._shareNode = el, scale: "m", shareButtonColor: "neutral", shareButtonType: "action", slot: "header-actions-end", socialMedia: true, view: this.mapView }), h("calcite-panel", { "full-height": true }, h("info-card", { allowEditing: false, graphics: this._selectedFeature, isLoading: false, isMobile: false, mapView: this.mapView, onSelectionChanged: this.featureDetailsChanged.bind(this), zoomAndScrollToSelected: true }))));
331
+ }
332
+ /**
333
+ * Sets the selected features and updates the first feature as the current selected feature
334
+ * @param features Graphics array of the features selected
335
+ */
336
+ setSelectedFeatures(features) {
337
+ this._selectedFeature = features;
338
+ this.setCurrentFeature(this._selectedFeature.length ? this._selectedFeature[0] : null);
339
+ }
340
+ /**
341
+ * Set the object id of the current selected feature, and also updates the current selected layer details
342
+ * @param selectedFeature Graphic currently shown in feature details
343
+ */
344
+ setCurrentFeature(selectedFeature) {
345
+ if (selectedFeature && selectedFeature.layer) {
346
+ const layer = selectedFeature.layer;
347
+ this.setSelectedLayer(layer.id, layer.title);
348
+ this._currentFeatureId = selectedFeature.attributes[layer.objectIdField];
349
+ }
350
+ else {
351
+ this.setSelectedLayer('', '');
352
+ this._currentFeatureId = '';
353
+ }
354
+ this._updateShareURL();
355
+ }
356
+ /**
357
+ * On Feature details change update the Layer title and the current selected layer id
358
+ * @param evt Event hold the details of current feature graphic in the info-card
359
+ */
360
+ featureDetailsChanged(evt) {
361
+ this.setCurrentFeature(evt.detail[0]);
189
362
  }
190
363
  /**
191
364
  * Returns the action button to Expand/Collapse side panel in mobile mode
365
+ * @protected
192
366
  */
193
367
  getActionToExpandCollapsePanel() {
194
368
  return (h("calcite-action", { icon: this._sidePanelCollapsed ? "chevrons-up" : "chevrons-down", onClick: this.toggleSidePanel.bind(this), slot: "header-actions-end", text: this._sidePanelCollapsed ? this._translations.expand : this._translations.collapse }));
@@ -208,6 +382,53 @@ export class CrowdsourceReporter {
208
382
  this._defaultLevel = undefined;
209
383
  }
210
384
  }
385
+ /**
386
+ * Handle map click event
387
+ * @param layers Array of layerIds
388
+ *
389
+ * @protected
390
+ */
391
+ handleMapClick() {
392
+ if (this._mapClickHandle) {
393
+ this._mapClickHandle.remove();
394
+ }
395
+ this._mapClickHandle = this.reactiveUtils.on(() => this.mapView, "click", this.onMapClick.bind(this));
396
+ }
397
+ /**
398
+ * On map click do hitTest and get the clicked graphics of valid layers and show feature details
399
+ * @param event IMapClick map click event details
400
+ *
401
+ * @protected
402
+ */
403
+ async onMapClick(event) {
404
+ //disable map popup
405
+ this.mapView.popupEnabled = false;
406
+ // only include graphics from valid layers listed in the layer list widget
407
+ const opts = {
408
+ include: this._validLayers
409
+ };
410
+ // Perform a hitTest on the View
411
+ const hitTest = await this.mapView.hitTest(event, opts);
412
+ if (hitTest.results.length > 0) {
413
+ const clickedGraphics = [];
414
+ hitTest.results.forEach(function (result) {
415
+ // check if the result type is graphic
416
+ if (result.type === 'graphic') {
417
+ clickedGraphics.push(result.graphic);
418
+ }
419
+ });
420
+ //update the selectedFeature
421
+ this.setSelectedFeatures(clickedGraphics);
422
+ //if featureDetails not open then add it to the list else just reInit flowItems which will update details with newly selected features
423
+ // eslint-disable-next-line unicorn/prefer-ternary
424
+ if (this._flowItems.length && this._flowItems[this._flowItems.length - 1] !== "feature-details") {
425
+ this._flowItems = [...this._flowItems, "feature-details"];
426
+ }
427
+ else {
428
+ this._flowItems = [...this._flowItems];
429
+ }
430
+ }
431
+ }
211
432
  /**
212
433
  * Fetches the component's translations
213
434
  * @returns Promise when complete
@@ -217,6 +438,59 @@ export class CrowdsourceReporter {
217
438
  const messages = await getLocaleComponentStrings(this.el);
218
439
  this._translations = messages[0];
219
440
  }
441
+ /**
442
+ * Updates the share url for current selected feature
443
+ * @returns
444
+ * @protected
445
+ */
446
+ _updateShareURL() {
447
+ var _a, _b;
448
+ const url = (_a = this._shareNode) === null || _a === void 0 ? void 0 : _a.shareUrl;
449
+ if (!url) {
450
+ return;
451
+ }
452
+ const urlObj = new URL(url);
453
+ //set the selected layers id
454
+ if (this._selectedLayerId) {
455
+ urlObj.searchParams.set("layerid", this._selectedLayerId);
456
+ }
457
+ else {
458
+ urlObj.searchParams.delete("layerid");
459
+ }
460
+ //Set the selected features objectid
461
+ if ((_b = this._selectedFeature) === null || _b === void 0 ? void 0 : _b.length) {
462
+ urlObj.searchParams.set("oid", this._currentFeatureId);
463
+ }
464
+ else {
465
+ urlObj.searchParams.delete("oid");
466
+ }
467
+ //update the url in share component
468
+ this._shareNode.shareUrl = urlObj.href;
469
+ }
470
+ /**
471
+ * Navigates to selected features detail based on the URL params
472
+ */
473
+ async loadFeatureFromURLParams() {
474
+ if (this.layerId && this.objectId) {
475
+ const layer = await getLayerOrTable(this.mapView, this.layerId);
476
+ if (layer) {
477
+ // only query if we have some ids...query with no ids will result in all features being returned
478
+ const featureSet = await queryFeaturesByID([Number(this.objectId)], layer, [], false, this.mapView.spatialReference);
479
+ if (featureSet.length) {
480
+ //update the selectedFeature
481
+ this._selectedFeature = featureSet;
482
+ //if featureDetails not open then add it to the list else just reInit flowItems which will update details with newly selected features
483
+ // eslint-disable-next-line unicorn/prefer-ternary
484
+ if (this._flowItems.length && this._flowItems[this._flowItems.length - 1] !== "feature-details") {
485
+ this._flowItems = [...this._flowItems, "feature-details"];
486
+ }
487
+ else {
488
+ this._flowItems = [...this._flowItems];
489
+ }
490
+ }
491
+ }
492
+ }
493
+ }
220
494
  static get is() { return "crowdsource-reporter"; }
221
495
  static get originalStyleUrls() {
222
496
  return {
@@ -401,6 +675,40 @@ export class CrowdsourceReporter {
401
675
  "text": "esri/views/MapView: https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html"
402
676
  }
403
677
  },
678
+ "layerId": {
679
+ "type": "string",
680
+ "mutable": false,
681
+ "complexType": {
682
+ "original": "string",
683
+ "resolved": "string",
684
+ "references": {}
685
+ },
686
+ "required": false,
687
+ "optional": false,
688
+ "docs": {
689
+ "tags": [],
690
+ "text": "string: Layer id of the feature from URL params"
691
+ },
692
+ "attribute": "layer-id",
693
+ "reflect": false
694
+ },
695
+ "objectId": {
696
+ "type": "string",
697
+ "mutable": false,
698
+ "complexType": {
699
+ "original": "string",
700
+ "resolved": "string",
701
+ "references": {}
702
+ },
703
+ "required": false,
704
+ "optional": false,
705
+ "docs": {
706
+ "tags": [],
707
+ "text": "string: Object id of the feature from URL params"
708
+ },
709
+ "attribute": "object-id",
710
+ "reflect": false
711
+ },
404
712
  "reportButtonText": {
405
713
  "type": "string",
406
714
  "mutable": false,
@@ -616,7 +924,11 @@ export class CrowdsourceReporter {
616
924
  "_flowItems": {},
617
925
  "_sidePanelCollapsed": {},
618
926
  "_translations": {},
619
- "_hasValidLayers": {}
927
+ "_hasValidLayers": {},
928
+ "_selectedLayerName": {},
929
+ "_reportSubmitted": {},
930
+ "_showSubmitCancelButton": {},
931
+ "_featureCreationFailedErrorMsg": {}
620
932
  };
621
933
  }
622
934
  static get events() {
@@ -84,6 +84,7 @@ export class FeatureList {
84
84
  //--------------------------------------------------------------------------
85
85
  /**
86
86
  * Initialize the features list using the selected layer
87
+ * @protected
87
88
  */
88
89
  async initializeFeatureItems() {
89
90
  if (this._selectedLayer) {
@@ -111,6 +112,7 @@ export class FeatureList {
111
112
  /**
112
113
  * On feature click in feature list highlight the feature on the map
113
114
  * @param event feature clicked event
115
+ * @param selectedFeature selected feature graphic
114
116
  * @protected
115
117
  */
116
118
  async featureClicked(event, selectedFeature) {
@@ -26,3 +26,7 @@
26
26
  font-weight: 500;
27
27
  padding: 10px 12px;
28
28
  }
29
+
30
+ .feature-count {
31
+ padding-right: 12px;
32
+ }
@@ -27,6 +27,8 @@ export class LayerList {
27
27
  this.mapView = undefined;
28
28
  this.layers = undefined;
29
29
  this.noLayerErrorMsg = undefined;
30
+ this.showFeatureCount = true;
31
+ this.showNextIcon = false;
30
32
  this._noLayersToDisplay = false;
31
33
  this._mapLayerIds = [];
32
34
  this._isLoading = false;
@@ -34,6 +36,23 @@ export class LayerList {
34
36
  }
35
37
  //--------------------------------------------------------------------------
36
38
  //
39
+ // Watch handlers
40
+ //
41
+ //--------------------------------------------------------------------------
42
+ //--------------------------------------------------------------------------
43
+ //
44
+ // Methods (public)
45
+ //
46
+ //--------------------------------------------------------------------------
47
+ /**
48
+ * Refresh the layer list which will fetch the latest layer count and update the list
49
+ * @returns Promise that resolves when the operation is complete
50
+ */
51
+ async refresh() {
52
+ await this.setLayers();
53
+ }
54
+ //--------------------------------------------------------------------------
55
+ //
37
56
  // Functions (lifecycle)
38
57
  //
39
58
  //--------------------------------------------------------------------------
@@ -58,7 +77,7 @@ export class LayerList {
58
77
  render() {
59
78
  return (h(Fragment, null, this._isLoading && h("calcite-loader", { scale: "m" }), !this._isLoading && this.mapView && this._noLayersToDisplay &&
60
79
  h("calcite-notice", { class: "error-msg", icon: "layers-reference", kind: "danger", open: true }, h("div", { slot: "title" }, this._translations.error), h("div", { slot: "message" }, this.noLayerErrorMsg ? this.noLayerErrorMsg : this._translations.noLayerToDisplayErrorMsg)), !this._isLoading && this.mapView &&
61
- h("calcite-list", null, this.renderLayerList())));
80
+ h("calcite-list", { "selection-appearance": "border", "selection-mode": this.showNextIcon ? "none" : "single-persist" }, this.renderLayerList())));
62
81
  }
63
82
  //--------------------------------------------------------------------------
64
83
  //
@@ -88,18 +107,21 @@ export class LayerList {
88
107
  allMapLayers.forEach(async (eachLayer) => {
89
108
  var _a, _b;
90
109
  //TODO: checking editable condition could be configurable
91
- if ((eachLayer === null || eachLayer === void 0 ? void 0 : eachLayer.type) === "feature" && (eachLayer === null || eachLayer === void 0 ? void 0 : eachLayer.editingEnabled) && ((_b = (_a = eachLayer === null || eachLayer === void 0 ? void 0 : eachLayer.capabilities) === null || _a === void 0 ? void 0 : _a.operations) === null || _b === void 0 ? void 0 : _b.supportsUpdate)) {
92
- const q = eachLayer.createQuery();
93
- const result = eachLayer.queryFeatureCount(q);
94
- def.push(result);
95
- void result.then(async (resCount) => {
96
- const formattedCount = !isNaN(resCount) ? await formatNumber(resCount, {
97
- places: 0,
98
- api: 4,
99
- type: "decimal"
100
- }) : "";
101
- this._layerItemsHash[eachLayer.id].formattedFeatureCount = formattedCount;
102
- });
110
+ if ((eachLayer === null || eachLayer === void 0 ? void 0 : eachLayer.type) === "feature" && (eachLayer === null || eachLayer === void 0 ? void 0 : eachLayer.editingEnabled) && ((_b = (_a = eachLayer === null || eachLayer === void 0 ? void 0 : eachLayer.capabilities) === null || _a === void 0 ? void 0 : _a.operations) === null || _b === void 0 ? void 0 : _b.supportsAdd)) {
111
+ this._layerItemsHash[eachLayer.id].supportsAdd = true;
112
+ if (this.showFeatureCount) {
113
+ const q = eachLayer.createQuery();
114
+ const result = eachLayer.queryFeatureCount(q);
115
+ def.push(result);
116
+ void result.then(async (resCount) => {
117
+ const formattedCount = !isNaN(resCount) ? await formatNumber(resCount, {
118
+ places: 0,
119
+ api: 4,
120
+ type: "decimal"
121
+ }) : "";
122
+ this._layerItemsHash[eachLayer.id].formattedFeatureCount = formattedCount;
123
+ });
124
+ }
103
125
  }
104
126
  });
105
127
  await Promise.all(def).then(() => {
@@ -127,9 +149,9 @@ export class LayerList {
127
149
  var _a;
128
150
  const configuredLayers = ((_a = this.layers) === null || _a === void 0 ? void 0 : _a.length) > 0 ? this.layers : [];
129
151
  return Object.keys(hash).reduce((prev, cur) => {
130
- let showLayer = hash[cur].supportsUpdate;
152
+ let showLayer = hash[cur].supportsAdd;
131
153
  if ((configuredLayers === null || configuredLayers === void 0 ? void 0 : configuredLayers.length) > 0) {
132
- showLayer = configuredLayers.indexOf(cur) > -1 ? hash[cur].supportsUpdate : false;
154
+ showLayer = configuredLayers.indexOf(cur) > -1 ? hash[cur].supportsAdd : false;
133
155
  }
134
156
  if (showLayer) {
135
157
  prev.push(cur);
@@ -159,13 +181,13 @@ export class LayerList {
159
181
  getLayerListItem(layerId) {
160
182
  const layerName = this._layerItemsHash[layerId].name;
161
183
  const featureCount = this._layerItemsHash[layerId].formattedFeatureCount;
162
- return (h("calcite-list-item", { onCalciteListItemSelect: () => { this.showFeaturesList(layerId); } }, h("div", { class: "layer-name", slot: "content-start" }, layerName), featureCount !== "" && h("div", { slot: "content-end" }, "(" + featureCount + ")"), h("calcite-icon", { icon: "chevron-right", scale: "s", slot: "content-end" })));
184
+ return (h("calcite-list-item", { onCalciteListItemSelect: () => { this.onLayerItemSelected(layerId); } }, h("div", { class: "layer-name", slot: "content-start" }, layerName), this.showFeatureCount && featureCount !== undefined && featureCount !== "" && h("div", { class: !this.showNextIcon ? "feature-count" : "", slot: "content-end" }, "(" + featureCount + ")"), this.showNextIcon && h("calcite-icon", { icon: "chevron-right", scale: "s", slot: "content-end" })));
163
185
  }
164
- /**On click of layer list item show feature list
186
+ /**On click of layer list item emit the event along with the selected layerId and layerName
165
187
  * @param layerId Layer id
166
188
  * @protected
167
189
  */
168
- showFeaturesList(layerId) {
190
+ onLayerItemSelected(layerId) {
169
191
  this.layerSelect.emit({ layerId, layerName: this._layerItemsHash[layerId].name });
170
192
  }
171
193
  /**
@@ -241,6 +263,42 @@ export class LayerList {
241
263
  },
242
264
  "attribute": "no-layer-error-msg",
243
265
  "reflect": false
266
+ },
267
+ "showFeatureCount": {
268
+ "type": "boolean",
269
+ "mutable": false,
270
+ "complexType": {
271
+ "original": "boolean",
272
+ "resolved": "boolean",
273
+ "references": {}
274
+ },
275
+ "required": false,
276
+ "optional": true,
277
+ "docs": {
278
+ "tags": [],
279
+ "text": "boolean: if true display's feature count for each layer"
280
+ },
281
+ "attribute": "show-feature-count",
282
+ "reflect": false,
283
+ "defaultValue": "true"
284
+ },
285
+ "showNextIcon": {
286
+ "type": "boolean",
287
+ "mutable": false,
288
+ "complexType": {
289
+ "original": "boolean",
290
+ "resolved": "boolean",
291
+ "references": {}
292
+ },
293
+ "required": false,
294
+ "optional": true,
295
+ "docs": {
296
+ "tags": [],
297
+ "text": "boolean: If true display's arrow icon on each layer item"
298
+ },
299
+ "attribute": "show-next-icon",
300
+ "reflect": false,
301
+ "defaultValue": "false"
244
302
  }
245
303
  };
246
304
  }
@@ -285,5 +343,29 @@ export class LayerList {
285
343
  }
286
344
  }];
287
345
  }
346
+ static get methods() {
347
+ return {
348
+ "refresh": {
349
+ "complexType": {
350
+ "signature": "() => Promise<void>",
351
+ "parameters": [],
352
+ "references": {
353
+ "Promise": {
354
+ "location": "global",
355
+ "id": "global::Promise"
356
+ }
357
+ },
358
+ "return": "Promise<void>"
359
+ },
360
+ "docs": {
361
+ "text": "Refresh the layer list which will fetch the latest layer count and update the list",
362
+ "tags": [{
363
+ "name": "returns",
364
+ "text": "Promise that resolves when the operation is complete"
365
+ }]
366
+ }
367
+ }
368
+ };
369
+ }
288
370
  static get elementRef() { return "el"; }
289
371
  }