@arcgis/portal-components 5.2.0-next.14 → 5.2.0-next.141

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1501) hide show
  1. package/LICENSE.md +4 -2
  2. package/README.md +2 -2
  3. package/dist/cdn/23X56P4K.js +2 -0
  4. package/dist/cdn/25XJ66JO.js +2 -0
  5. package/dist/cdn/2GBRZSEC.js +2 -0
  6. package/dist/cdn/2I5SLQC5.js +2 -0
  7. package/dist/cdn/3R4PPD5N.js +2 -0
  8. package/dist/cdn/3SO52LKS.js +2 -0
  9. package/dist/cdn/456JKNCU.js +2 -0
  10. package/dist/cdn/4SHXR62X.js +2 -0
  11. package/dist/cdn/4TQWZ2KF.js +9 -0
  12. package/dist/cdn/4ZTWQN6Q.js +2 -0
  13. package/dist/cdn/55FL7WQV.js +2 -0
  14. package/dist/cdn/5EFYJYWM.js +2 -0
  15. package/dist/cdn/5FDUO7J4.js +2 -0
  16. package/dist/cdn/5FOWUL6I.js +2 -0
  17. package/dist/cdn/5YDITHQA.js +3 -0
  18. package/dist/cdn/6BMWSGLA.js +2 -0
  19. package/dist/cdn/6EY5GHKE.js +2 -0
  20. package/dist/cdn/6KVA4AKM.js +2 -0
  21. package/dist/cdn/6LST5YZY.js +2 -0
  22. package/dist/cdn/6MWSS5YF.js +2 -0
  23. package/dist/cdn/6TO2BYXU.js +2 -0
  24. package/dist/cdn/7NK6UF47.js +2 -0
  25. package/dist/cdn/7NQY5QJK.js +2 -0
  26. package/dist/cdn/7TGCBYRK.js +2 -0
  27. package/dist/cdn/ADZAKBOJ.js +2 -0
  28. package/dist/cdn/AE574B3G.js +2 -0
  29. package/dist/cdn/AWCYG2JJ.js +2 -0
  30. package/dist/cdn/B3NVWHCS.js +2 -0
  31. package/dist/cdn/B4YHTYJB.js +2 -0
  32. package/dist/cdn/BEAUY47J.js +2 -0
  33. package/dist/cdn/BIXJGL7B.js +2 -0
  34. package/dist/cdn/BRJE3G3H.js +2 -0
  35. package/dist/cdn/C5U7YKVI.js +2 -0
  36. package/dist/cdn/C5VUNN4M.js +2 -0
  37. package/dist/cdn/CFBSBZSS.js +2 -0
  38. package/dist/cdn/CJHR4UK5.js +2 -0
  39. package/dist/cdn/CVOWIH4J.js +2 -0
  40. package/dist/cdn/CWSEBETE.js +4 -0
  41. package/dist/cdn/D6QHNXEH.js +2 -0
  42. package/dist/cdn/{HIRM34QB.js → D7LRCAK4.js} +1 -1
  43. package/dist/cdn/DF5GVVDW.js +2 -0
  44. package/dist/cdn/DIKRXF22.js +2 -0
  45. package/dist/cdn/DKIYHE4A.js +2 -0
  46. package/dist/cdn/E3FQ4QWE.js +2 -0
  47. package/dist/cdn/F3ODJVJC.js +2 -0
  48. package/dist/cdn/FFLIAQOL.js +2 -0
  49. package/dist/cdn/FQOOFBPI.js +2 -0
  50. package/dist/cdn/FQYC25GN.js +2 -0
  51. package/dist/cdn/FSACXOM3.js +68 -0
  52. package/dist/cdn/FTKD53UG.js +209 -0
  53. package/dist/cdn/G6WPLOLV.js +2 -0
  54. package/dist/cdn/GEZH4D32.js +2 -0
  55. package/dist/cdn/GTZ4LKEQ.js +2 -0
  56. package/dist/cdn/ILDTKRON.js +2 -0
  57. package/dist/cdn/J537SBGI.js +2 -0
  58. package/dist/cdn/JUDF3TYJ.js +2 -0
  59. package/dist/cdn/KC4FTTKP.js +2 -0
  60. package/dist/cdn/{QJ2UHWPU.js → KIKEE2KY.js} +1 -1
  61. package/dist/cdn/KOLH76KG.js +2 -0
  62. package/dist/cdn/KYNL256E.js +2 -0
  63. package/dist/cdn/LCO2BWDK.js +2 -0
  64. package/dist/cdn/LNWWUPFK.js +2 -0
  65. package/dist/cdn/LP4IB3PV.js +2 -0
  66. package/dist/cdn/LRHPL6B5.js +2 -0
  67. package/dist/cdn/LYOR4B2O.js +2 -0
  68. package/dist/cdn/MCX22B23.js +2 -0
  69. package/dist/cdn/MHNYLHFR.js +2 -0
  70. package/dist/cdn/MQISQ7P3.js +2 -0
  71. package/dist/cdn/MY7AYBBR.js +2 -0
  72. package/dist/cdn/NDRCB2K3.js +2 -0
  73. package/dist/cdn/NICTB76A.js +2 -0
  74. package/dist/cdn/NXFE6R2N.js +2 -0
  75. package/dist/cdn/O5LFDRK2.js +2 -0
  76. package/dist/cdn/OJNU7H3F.js +2 -0
  77. package/dist/cdn/OKUI3HQ4.js +2 -0
  78. package/dist/cdn/{DBKSQGEI.js → OQGUCK3G.js} +1 -1
  79. package/dist/cdn/OUFIJDIW.js +2 -0
  80. package/dist/cdn/OV5O7YP4.js +2 -0
  81. package/dist/cdn/QBV7VDQK.js +2 -0
  82. package/dist/cdn/QCOJMMT3.js +2 -0
  83. package/dist/cdn/QDWOQBO3.js +3 -0
  84. package/dist/cdn/QKBGX2OY.js +2 -0
  85. package/dist/cdn/QKK6N2AN.js +2 -0
  86. package/dist/cdn/QNCMFQSA.js +2 -0
  87. package/dist/cdn/QS3GXAIH.js +2 -0
  88. package/dist/cdn/QSAZVVVL.js +2 -0
  89. package/dist/cdn/QUOPWSRC.js +2 -0
  90. package/dist/cdn/QYMSY57N.js +2 -0
  91. package/dist/cdn/R3QN5WF2.js +2 -0
  92. package/dist/cdn/R74ZHFA6.js +2 -0
  93. package/dist/cdn/RBGARTND.js +2 -0
  94. package/dist/cdn/RUB2GDBE.js +2 -0
  95. package/dist/cdn/SG7Z5VLB.js +2 -0
  96. package/dist/cdn/T2HQNZ36.js +2 -0
  97. package/dist/cdn/T3RJKB2A.js +2 -0
  98. package/dist/cdn/TJYPEMON.js +2 -0
  99. package/dist/cdn/UGRFT75G.js +2 -0
  100. package/dist/cdn/UKHCSMA4.js +2 -0
  101. package/dist/cdn/UQKT5JQZ.js +2 -0
  102. package/dist/cdn/USGROSML.js +2 -0
  103. package/dist/cdn/UTA2UBBS.js +2 -0
  104. package/dist/cdn/UZCHLKLO.js +2 -0
  105. package/dist/cdn/UZLQALHY.js +2 -0
  106. package/dist/cdn/V5YXPHYD.js +2 -0
  107. package/dist/cdn/VMQIDO4Z.js +2 -0
  108. package/dist/cdn/WDMNL6PJ.js +2 -0
  109. package/dist/cdn/X4G32AIG.js +2 -0
  110. package/dist/cdn/XEK22IDA.js +2 -0
  111. package/dist/cdn/XKC6SPS4.js +2 -0
  112. package/dist/cdn/XOFCMJBQ.js +150 -0
  113. package/dist/cdn/XROCYFKH.js +2 -0
  114. package/dist/cdn/{5VHBNEN3.js → XUPYBBRI.js} +1 -1
  115. package/dist/cdn/Y3YIMI2Z.js +463 -0
  116. package/dist/cdn/YG5VQATB.js +2 -0
  117. package/dist/cdn/YUQFNMEZ.js +2 -0
  118. package/dist/cdn/YVKSTDL6.js +2 -0
  119. package/dist/cdn/ZAIRH5DL.js +2 -0
  120. package/dist/cdn/ZSILF72K.js +2 -0
  121. package/dist/cdn/assets/portal-account-switcher/t9n/messages.ar.json +1 -0
  122. package/dist/cdn/assets/portal-account-switcher/t9n/messages.bg.json +1 -0
  123. package/dist/cdn/assets/portal-account-switcher/t9n/messages.bs.json +1 -0
  124. package/dist/cdn/assets/portal-account-switcher/t9n/messages.ca.json +1 -0
  125. package/dist/cdn/assets/portal-account-switcher/t9n/messages.cs.json +1 -0
  126. package/dist/cdn/assets/portal-account-switcher/t9n/messages.da.json +1 -0
  127. package/dist/cdn/assets/portal-account-switcher/t9n/messages.de.json +1 -0
  128. package/dist/cdn/assets/portal-account-switcher/t9n/messages.el.json +1 -0
  129. package/dist/cdn/assets/portal-account-switcher/t9n/messages.en.json +1 -0
  130. package/dist/cdn/assets/portal-account-switcher/t9n/messages.es.json +1 -0
  131. package/dist/cdn/assets/portal-account-switcher/t9n/messages.et.json +1 -0
  132. package/dist/cdn/assets/portal-account-switcher/t9n/messages.fi.json +1 -0
  133. package/dist/cdn/assets/portal-account-switcher/t9n/messages.fr.json +1 -0
  134. package/dist/cdn/assets/portal-account-switcher/t9n/messages.he.json +1 -0
  135. package/dist/cdn/assets/portal-account-switcher/t9n/messages.hr.json +1 -0
  136. package/dist/cdn/assets/portal-account-switcher/t9n/messages.hu.json +1 -0
  137. package/dist/cdn/assets/portal-account-switcher/t9n/messages.id.json +1 -0
  138. package/dist/cdn/assets/portal-account-switcher/t9n/messages.it.json +1 -0
  139. package/dist/cdn/assets/portal-account-switcher/t9n/messages.ja.json +1 -0
  140. package/dist/cdn/assets/portal-account-switcher/t9n/messages.ko.json +1 -0
  141. package/dist/cdn/assets/portal-account-switcher/t9n/messages.lt.json +1 -0
  142. package/dist/cdn/assets/portal-account-switcher/t9n/messages.lv.json +1 -0
  143. package/dist/cdn/assets/portal-account-switcher/t9n/messages.nl.json +1 -0
  144. package/dist/cdn/assets/portal-account-switcher/t9n/messages.no.json +1 -0
  145. package/dist/cdn/assets/portal-account-switcher/t9n/messages.pl.json +1 -0
  146. package/dist/cdn/assets/portal-account-switcher/t9n/messages.pt-BR.json +1 -0
  147. package/dist/cdn/assets/portal-account-switcher/t9n/messages.pt-PT.json +1 -0
  148. package/dist/cdn/assets/portal-account-switcher/t9n/messages.ro.json +1 -0
  149. package/dist/cdn/assets/portal-account-switcher/t9n/messages.ru.json +1 -0
  150. package/dist/cdn/assets/portal-account-switcher/t9n/messages.sk.json +1 -0
  151. package/dist/cdn/assets/portal-account-switcher/t9n/messages.sl.json +1 -0
  152. package/dist/cdn/assets/portal-account-switcher/t9n/messages.sr.json +1 -0
  153. package/dist/cdn/assets/portal-account-switcher/t9n/messages.sv.json +1 -0
  154. package/dist/cdn/assets/portal-account-switcher/t9n/messages.th.json +1 -0
  155. package/dist/cdn/assets/portal-account-switcher/t9n/messages.tr.json +1 -0
  156. package/dist/cdn/assets/portal-account-switcher/t9n/messages.uk.json +1 -0
  157. package/dist/cdn/assets/portal-account-switcher/t9n/messages.vi.json +1 -0
  158. package/dist/cdn/assets/portal-account-switcher/t9n/messages.zh-CN.json +1 -0
  159. package/dist/cdn/assets/portal-account-switcher/t9n/messages.zh-HK.json +1 -0
  160. package/dist/cdn/assets/portal-account-switcher/t9n/messages.zh-TW.json +1 -0
  161. package/dist/cdn/assets/portal-add-gps-metadata/t9n/messages.ar.json +1 -0
  162. package/dist/cdn/assets/portal-add-gps-metadata/t9n/messages.bg.json +1 -0
  163. package/dist/cdn/assets/portal-add-gps-metadata/t9n/messages.bs.json +1 -0
  164. package/dist/cdn/assets/portal-add-gps-metadata/t9n/messages.ca.json +1 -0
  165. package/dist/cdn/assets/portal-add-gps-metadata/t9n/messages.cs.json +1 -0
  166. package/dist/cdn/assets/portal-add-gps-metadata/t9n/messages.da.json +1 -0
  167. package/dist/cdn/assets/portal-add-gps-metadata/t9n/messages.de.json +1 -0
  168. package/dist/cdn/assets/portal-add-gps-metadata/t9n/messages.el.json +1 -0
  169. package/dist/cdn/assets/portal-add-gps-metadata/t9n/messages.en.json +1 -0
  170. package/dist/cdn/assets/portal-add-gps-metadata/t9n/messages.es.json +1 -0
  171. package/dist/cdn/assets/portal-add-gps-metadata/t9n/messages.et.json +1 -0
  172. package/dist/cdn/assets/portal-add-gps-metadata/t9n/messages.fi.json +1 -0
  173. package/dist/cdn/assets/portal-add-gps-metadata/t9n/messages.fr.json +1 -0
  174. package/dist/cdn/assets/portal-add-gps-metadata/t9n/messages.he.json +1 -0
  175. package/dist/cdn/assets/portal-add-gps-metadata/t9n/messages.hr.json +1 -0
  176. package/dist/cdn/assets/portal-add-gps-metadata/t9n/messages.hu.json +1 -0
  177. package/dist/cdn/assets/portal-add-gps-metadata/t9n/messages.id.json +1 -0
  178. package/dist/cdn/assets/portal-add-gps-metadata/t9n/messages.it.json +1 -0
  179. package/dist/cdn/assets/portal-add-gps-metadata/t9n/messages.ja.json +1 -0
  180. package/dist/cdn/assets/portal-add-gps-metadata/t9n/messages.ko.json +1 -0
  181. package/dist/cdn/assets/portal-add-gps-metadata/t9n/messages.lt.json +1 -0
  182. package/dist/cdn/assets/portal-add-gps-metadata/t9n/messages.lv.json +1 -0
  183. package/dist/cdn/assets/portal-add-gps-metadata/t9n/messages.nl.json +1 -0
  184. package/dist/cdn/assets/portal-add-gps-metadata/t9n/messages.no.json +1 -0
  185. package/dist/cdn/assets/portal-add-gps-metadata/t9n/messages.pl.json +1 -0
  186. package/dist/cdn/assets/portal-add-gps-metadata/t9n/messages.pt-BR.json +1 -0
  187. package/dist/cdn/assets/portal-add-gps-metadata/t9n/messages.pt-PT.json +1 -0
  188. package/dist/cdn/assets/portal-add-gps-metadata/t9n/messages.ro.json +1 -0
  189. package/dist/cdn/assets/portal-add-gps-metadata/t9n/messages.ru.json +1 -0
  190. package/dist/cdn/assets/portal-add-gps-metadata/t9n/messages.sk.json +1 -0
  191. package/dist/cdn/assets/portal-add-gps-metadata/t9n/messages.sl.json +1 -0
  192. package/dist/cdn/assets/portal-add-gps-metadata/t9n/messages.sr.json +1 -0
  193. package/dist/cdn/assets/portal-add-gps-metadata/t9n/messages.sv.json +1 -0
  194. package/dist/cdn/assets/portal-add-gps-metadata/t9n/messages.th.json +1 -0
  195. package/dist/cdn/assets/portal-add-gps-metadata/t9n/messages.tr.json +1 -0
  196. package/dist/cdn/assets/portal-add-gps-metadata/t9n/messages.uk.json +1 -0
  197. package/dist/cdn/assets/portal-add-gps-metadata/t9n/messages.vi.json +1 -0
  198. package/dist/cdn/assets/portal-add-gps-metadata/t9n/messages.zh-CN.json +1 -0
  199. package/dist/cdn/assets/portal-add-gps-metadata/t9n/messages.zh-HK.json +1 -0
  200. package/dist/cdn/assets/portal-add-gps-metadata/t9n/messages.zh-TW.json +1 -0
  201. package/dist/cdn/assets/portal-ai-assistant/t9n/messages.ar.json +1 -1
  202. package/dist/cdn/assets/portal-ai-assistant/t9n/messages.bg.json +1 -1
  203. package/dist/cdn/assets/portal-ai-assistant/t9n/messages.bs.json +1 -1
  204. package/dist/cdn/assets/portal-ai-assistant/t9n/messages.ca.json +1 -1
  205. package/dist/cdn/assets/portal-ai-assistant/t9n/messages.cs.json +1 -1
  206. package/dist/cdn/assets/portal-ai-assistant/t9n/messages.da.json +1 -1
  207. package/dist/cdn/assets/portal-ai-assistant/t9n/messages.de.json +1 -1
  208. package/dist/cdn/assets/portal-ai-assistant/t9n/messages.el.json +1 -1
  209. package/dist/cdn/assets/portal-ai-assistant/t9n/messages.en.json +1 -1
  210. package/dist/cdn/assets/portal-ai-assistant/t9n/messages.es.json +1 -1
  211. package/dist/cdn/assets/portal-ai-assistant/t9n/messages.et.json +1 -1
  212. package/dist/cdn/assets/portal-ai-assistant/t9n/messages.fi.json +1 -1
  213. package/dist/cdn/assets/portal-ai-assistant/t9n/messages.fr.json +1 -1
  214. package/dist/cdn/assets/portal-ai-assistant/t9n/messages.he.json +1 -1
  215. package/dist/cdn/assets/portal-ai-assistant/t9n/messages.hr.json +1 -1
  216. package/dist/cdn/assets/portal-ai-assistant/t9n/messages.hu.json +1 -1
  217. package/dist/cdn/assets/portal-ai-assistant/t9n/messages.id.json +1 -1
  218. package/dist/cdn/assets/portal-ai-assistant/t9n/messages.it.json +1 -1
  219. package/dist/cdn/assets/portal-ai-assistant/t9n/messages.ja.json +1 -1
  220. package/dist/cdn/assets/portal-ai-assistant/t9n/messages.ko.json +1 -1
  221. package/dist/cdn/assets/portal-ai-assistant/t9n/messages.lt.json +1 -1
  222. package/dist/cdn/assets/portal-ai-assistant/t9n/messages.lv.json +1 -1
  223. package/dist/cdn/assets/portal-ai-assistant/t9n/messages.nl.json +1 -1
  224. package/dist/cdn/assets/portal-ai-assistant/t9n/messages.no.json +1 -1
  225. package/dist/cdn/assets/portal-ai-assistant/t9n/messages.pl.json +1 -1
  226. package/dist/cdn/assets/portal-ai-assistant/t9n/messages.pt-BR.json +1 -1
  227. package/dist/cdn/assets/portal-ai-assistant/t9n/messages.pt-PT.json +1 -1
  228. package/dist/cdn/assets/portal-ai-assistant/t9n/messages.ro.json +1 -1
  229. package/dist/cdn/assets/portal-ai-assistant/t9n/messages.ru.json +1 -1
  230. package/dist/cdn/assets/portal-ai-assistant/t9n/messages.sk.json +1 -1
  231. package/dist/cdn/assets/portal-ai-assistant/t9n/messages.sl.json +1 -1
  232. package/dist/cdn/assets/portal-ai-assistant/t9n/messages.sr.json +1 -1
  233. package/dist/cdn/assets/portal-ai-assistant/t9n/messages.sv.json +1 -1
  234. package/dist/cdn/assets/portal-ai-assistant/t9n/messages.th.json +1 -1
  235. package/dist/cdn/assets/portal-ai-assistant/t9n/messages.tr.json +1 -1
  236. package/dist/cdn/assets/portal-ai-assistant/t9n/messages.uk.json +1 -1
  237. package/dist/cdn/assets/portal-ai-assistant/t9n/messages.vi.json +1 -1
  238. package/dist/cdn/assets/portal-ai-assistant/t9n/messages.zh-CN.json +1 -1
  239. package/dist/cdn/assets/portal-ai-assistant/t9n/messages.zh-HK.json +1 -1
  240. package/dist/cdn/assets/portal-ai-assistant/t9n/messages.zh-TW.json +1 -1
  241. package/dist/cdn/assets/portal-ai-assistant-interrupt/t9n/messages.ar.json +1 -1
  242. package/dist/cdn/assets/portal-ai-assistant-interrupt/t9n/messages.bg.json +1 -1
  243. package/dist/cdn/assets/portal-ai-assistant-interrupt/t9n/messages.bs.json +1 -1
  244. package/dist/cdn/assets/portal-ai-assistant-interrupt/t9n/messages.ca.json +1 -1
  245. package/dist/cdn/assets/portal-ai-assistant-interrupt/t9n/messages.cs.json +1 -1
  246. package/dist/cdn/assets/portal-ai-assistant-interrupt/t9n/messages.da.json +1 -1
  247. package/dist/cdn/assets/portal-ai-assistant-interrupt/t9n/messages.de.json +1 -1
  248. package/dist/cdn/assets/portal-ai-assistant-interrupt/t9n/messages.el.json +1 -1
  249. package/dist/cdn/assets/portal-ai-assistant-interrupt/t9n/messages.es.json +1 -1
  250. package/dist/cdn/assets/portal-ai-assistant-interrupt/t9n/messages.et.json +1 -1
  251. package/dist/cdn/assets/portal-ai-assistant-interrupt/t9n/messages.fi.json +1 -1
  252. package/dist/cdn/assets/portal-ai-assistant-interrupt/t9n/messages.fr.json +1 -1
  253. package/dist/cdn/assets/portal-ai-assistant-interrupt/t9n/messages.he.json +1 -1
  254. package/dist/cdn/assets/portal-ai-assistant-interrupt/t9n/messages.hr.json +1 -1
  255. package/dist/cdn/assets/portal-ai-assistant-interrupt/t9n/messages.hu.json +1 -1
  256. package/dist/cdn/assets/portal-ai-assistant-interrupt/t9n/messages.id.json +1 -1
  257. package/dist/cdn/assets/portal-ai-assistant-interrupt/t9n/messages.it.json +1 -1
  258. package/dist/cdn/assets/portal-ai-assistant-interrupt/t9n/messages.ja.json +1 -1
  259. package/dist/cdn/assets/portal-ai-assistant-interrupt/t9n/messages.ko.json +1 -1
  260. package/dist/cdn/assets/portal-ai-assistant-interrupt/t9n/messages.lt.json +1 -1
  261. package/dist/cdn/assets/portal-ai-assistant-interrupt/t9n/messages.lv.json +1 -1
  262. package/dist/cdn/assets/portal-ai-assistant-interrupt/t9n/messages.nl.json +1 -1
  263. package/dist/cdn/assets/portal-ai-assistant-interrupt/t9n/messages.no.json +1 -1
  264. package/dist/cdn/assets/portal-ai-assistant-interrupt/t9n/messages.pl.json +1 -1
  265. package/dist/cdn/assets/portal-ai-assistant-interrupt/t9n/messages.pt-BR.json +1 -1
  266. package/dist/cdn/assets/portal-ai-assistant-interrupt/t9n/messages.pt-PT.json +1 -1
  267. package/dist/cdn/assets/portal-ai-assistant-interrupt/t9n/messages.ro.json +1 -1
  268. package/dist/cdn/assets/portal-ai-assistant-interrupt/t9n/messages.ru.json +1 -1
  269. package/dist/cdn/assets/portal-ai-assistant-interrupt/t9n/messages.sk.json +1 -1
  270. package/dist/cdn/assets/portal-ai-assistant-interrupt/t9n/messages.sl.json +1 -1
  271. package/dist/cdn/assets/portal-ai-assistant-interrupt/t9n/messages.sr.json +1 -1
  272. package/dist/cdn/assets/portal-ai-assistant-interrupt/t9n/messages.sv.json +1 -1
  273. package/dist/cdn/assets/portal-ai-assistant-interrupt/t9n/messages.th.json +1 -1
  274. package/dist/cdn/assets/portal-ai-assistant-interrupt/t9n/messages.tr.json +1 -1
  275. package/dist/cdn/assets/portal-ai-assistant-interrupt/t9n/messages.uk.json +1 -1
  276. package/dist/cdn/assets/portal-ai-assistant-interrupt/t9n/messages.vi.json +1 -1
  277. package/dist/cdn/assets/portal-ai-assistant-interrupt/t9n/messages.zh-CN.json +1 -1
  278. package/dist/cdn/assets/portal-ai-assistant-interrupt/t9n/messages.zh-HK.json +1 -1
  279. package/dist/cdn/assets/portal-ai-assistant-interrupt/t9n/messages.zh-TW.json +1 -1
  280. package/dist/cdn/assets/portal-browser/t9n/messages.ar.json +1 -0
  281. package/dist/cdn/assets/portal-browser/t9n/messages.bg.json +1 -0
  282. package/dist/cdn/assets/portal-browser/t9n/messages.bs.json +1 -0
  283. package/dist/cdn/assets/portal-browser/t9n/messages.ca.json +1 -0
  284. package/dist/cdn/assets/portal-browser/t9n/messages.cs.json +1 -0
  285. package/dist/cdn/assets/portal-browser/t9n/messages.da.json +1 -0
  286. package/dist/cdn/assets/portal-browser/t9n/messages.de.json +1 -0
  287. package/dist/cdn/assets/portal-browser/t9n/messages.el.json +1 -0
  288. package/dist/cdn/assets/portal-browser/t9n/messages.en.json +1 -0
  289. package/dist/cdn/assets/portal-browser/t9n/messages.es.json +1 -0
  290. package/dist/cdn/assets/portal-browser/t9n/messages.et.json +1 -0
  291. package/dist/cdn/assets/portal-browser/t9n/messages.fi.json +1 -0
  292. package/dist/cdn/assets/portal-browser/t9n/messages.fr.json +1 -0
  293. package/dist/cdn/assets/portal-browser/t9n/messages.he.json +1 -0
  294. package/dist/cdn/assets/portal-browser/t9n/messages.hr.json +1 -0
  295. package/dist/cdn/assets/portal-browser/t9n/messages.hu.json +1 -0
  296. package/dist/cdn/assets/portal-browser/t9n/messages.id.json +1 -0
  297. package/dist/cdn/assets/portal-browser/t9n/messages.it.json +1 -0
  298. package/dist/cdn/assets/portal-browser/t9n/messages.ja.json +1 -0
  299. package/dist/cdn/assets/portal-browser/t9n/messages.ko.json +1 -0
  300. package/dist/cdn/assets/portal-browser/t9n/messages.lt.json +1 -0
  301. package/dist/cdn/assets/portal-browser/t9n/messages.lv.json +1 -0
  302. package/dist/cdn/assets/portal-browser/t9n/messages.nl.json +1 -0
  303. package/dist/cdn/assets/portal-browser/t9n/messages.no.json +1 -0
  304. package/dist/cdn/assets/portal-browser/t9n/messages.pl.json +1 -0
  305. package/dist/cdn/assets/portal-browser/t9n/messages.pt-BR.json +1 -0
  306. package/dist/cdn/assets/portal-browser/t9n/messages.pt-PT.json +1 -0
  307. package/dist/cdn/assets/portal-browser/t9n/messages.ro.json +1 -0
  308. package/dist/cdn/assets/portal-browser/t9n/messages.ru.json +1 -0
  309. package/dist/cdn/assets/portal-browser/t9n/messages.sk.json +1 -0
  310. package/dist/cdn/assets/portal-browser/t9n/messages.sl.json +1 -0
  311. package/dist/cdn/assets/portal-browser/t9n/messages.sr.json +1 -0
  312. package/dist/cdn/assets/portal-browser/t9n/messages.sv.json +1 -0
  313. package/dist/cdn/assets/portal-browser/t9n/messages.th.json +1 -0
  314. package/dist/cdn/assets/portal-browser/t9n/messages.tr.json +1 -0
  315. package/dist/cdn/assets/portal-browser/t9n/messages.uk.json +1 -0
  316. package/dist/cdn/assets/portal-browser/t9n/messages.vi.json +1 -0
  317. package/dist/cdn/assets/portal-browser/t9n/messages.zh-CN.json +1 -0
  318. package/dist/cdn/assets/portal-browser/t9n/messages.zh-HK.json +1 -0
  319. package/dist/cdn/assets/portal-browser/t9n/messages.zh-TW.json +1 -0
  320. package/dist/cdn/assets/portal-delete-items/t9n/messages.ar.json +1 -0
  321. package/dist/cdn/assets/portal-delete-items/t9n/messages.bg.json +1 -0
  322. package/dist/cdn/assets/portal-delete-items/t9n/messages.ca.json +1 -0
  323. package/dist/cdn/assets/portal-delete-items/t9n/messages.cs.json +1 -0
  324. package/dist/cdn/assets/portal-delete-items/t9n/messages.da.json +1 -0
  325. package/dist/cdn/assets/portal-delete-items/t9n/messages.de.json +1 -0
  326. package/dist/cdn/assets/portal-delete-items/t9n/messages.el.json +1 -0
  327. package/dist/cdn/assets/portal-delete-items/t9n/messages.en.json +1 -0
  328. package/dist/cdn/assets/portal-delete-items/t9n/messages.es.json +1 -0
  329. package/dist/cdn/assets/portal-delete-items/t9n/messages.et.json +1 -0
  330. package/dist/cdn/assets/portal-delete-items/t9n/messages.fi.json +1 -0
  331. package/dist/cdn/assets/portal-delete-items/t9n/messages.fr.json +1 -0
  332. package/dist/cdn/assets/portal-delete-items/t9n/messages.he.json +1 -0
  333. package/dist/cdn/assets/portal-delete-items/t9n/messages.hr.json +1 -0
  334. package/dist/cdn/assets/portal-delete-items/t9n/messages.hu.json +1 -0
  335. package/dist/cdn/assets/portal-delete-items/t9n/messages.id.json +1 -0
  336. package/dist/cdn/assets/portal-delete-items/t9n/messages.it.json +1 -0
  337. package/dist/cdn/assets/portal-delete-items/t9n/messages.ja.json +1 -0
  338. package/dist/cdn/assets/portal-delete-items/t9n/messages.ko.json +1 -0
  339. package/dist/cdn/assets/portal-delete-items/t9n/messages.lt.json +1 -0
  340. package/dist/cdn/assets/portal-delete-items/t9n/messages.lv.json +1 -0
  341. package/dist/cdn/assets/portal-delete-items/t9n/messages.nl.json +1 -0
  342. package/dist/cdn/assets/portal-delete-items/t9n/messages.no.json +1 -0
  343. package/dist/cdn/assets/portal-delete-items/t9n/messages.pl.json +1 -0
  344. package/dist/cdn/assets/portal-delete-items/t9n/messages.pt-BR.json +1 -0
  345. package/dist/cdn/assets/portal-delete-items/t9n/messages.pt-PT.json +1 -0
  346. package/dist/cdn/assets/portal-delete-items/t9n/messages.ro.json +1 -0
  347. package/dist/cdn/assets/portal-delete-items/t9n/messages.ru.json +1 -0
  348. package/dist/cdn/assets/portal-delete-items/t9n/messages.sk.json +1 -0
  349. package/dist/cdn/assets/portal-delete-items/t9n/messages.sl.json +1 -0
  350. package/dist/cdn/assets/portal-delete-items/t9n/messages.sr.json +1 -0
  351. package/dist/cdn/assets/portal-delete-items/t9n/messages.sv.json +1 -0
  352. package/dist/cdn/assets/portal-delete-items/t9n/messages.th.json +1 -0
  353. package/dist/cdn/assets/portal-delete-items/t9n/messages.tr.json +1 -0
  354. package/dist/cdn/assets/portal-delete-items/t9n/messages.uk.json +1 -0
  355. package/dist/cdn/assets/portal-delete-items/t9n/messages.vi.json +1 -0
  356. package/dist/cdn/assets/portal-delete-items/t9n/messages.zh-CN.json +1 -0
  357. package/dist/cdn/assets/portal-delete-items/t9n/messages.zh-TW.json +1 -0
  358. package/dist/cdn/assets/portal-delete-items-review/t9n/messages.ar.json +1 -0
  359. package/dist/cdn/assets/portal-delete-items-review/t9n/messages.bg.json +1 -0
  360. package/dist/cdn/assets/portal-delete-items-review/t9n/messages.ca.json +1 -0
  361. package/dist/cdn/assets/portal-delete-items-review/t9n/messages.cs.json +1 -0
  362. package/dist/cdn/assets/portal-delete-items-review/t9n/messages.da.json +1 -0
  363. package/dist/cdn/assets/portal-delete-items-review/t9n/messages.de.json +1 -0
  364. package/dist/cdn/assets/portal-delete-items-review/t9n/messages.el.json +1 -0
  365. package/dist/cdn/assets/portal-delete-items-review/t9n/messages.en.json +1 -0
  366. package/dist/cdn/assets/portal-delete-items-review/t9n/messages.es.json +1 -0
  367. package/dist/cdn/assets/portal-delete-items-review/t9n/messages.et.json +1 -0
  368. package/dist/cdn/assets/portal-delete-items-review/t9n/messages.fi.json +1 -0
  369. package/dist/cdn/assets/portal-delete-items-review/t9n/messages.fr.json +1 -0
  370. package/dist/cdn/assets/portal-delete-items-review/t9n/messages.he.json +1 -0
  371. package/dist/cdn/assets/portal-delete-items-review/t9n/messages.hr.json +1 -0
  372. package/dist/cdn/assets/portal-delete-items-review/t9n/messages.hu.json +1 -0
  373. package/dist/cdn/assets/portal-delete-items-review/t9n/messages.id.json +1 -0
  374. package/dist/cdn/assets/portal-delete-items-review/t9n/messages.it.json +1 -0
  375. package/dist/cdn/assets/portal-delete-items-review/t9n/messages.ja.json +1 -0
  376. package/dist/cdn/assets/portal-delete-items-review/t9n/messages.ko.json +1 -0
  377. package/dist/cdn/assets/portal-delete-items-review/t9n/messages.lt.json +1 -0
  378. package/dist/cdn/assets/portal-delete-items-review/t9n/messages.lv.json +1 -0
  379. package/dist/cdn/assets/portal-delete-items-review/t9n/messages.nl.json +1 -0
  380. package/dist/cdn/assets/portal-delete-items-review/t9n/messages.no.json +1 -0
  381. package/dist/cdn/assets/portal-delete-items-review/t9n/messages.pl.json +1 -0
  382. package/dist/cdn/assets/portal-delete-items-review/t9n/messages.pt-BR.json +1 -0
  383. package/dist/cdn/assets/portal-delete-items-review/t9n/messages.pt-PT.json +1 -0
  384. package/dist/cdn/assets/portal-delete-items-review/t9n/messages.ro.json +1 -0
  385. package/dist/cdn/assets/portal-delete-items-review/t9n/messages.ru.json +1 -0
  386. package/dist/cdn/assets/portal-delete-items-review/t9n/messages.sk.json +1 -0
  387. package/dist/cdn/assets/portal-delete-items-review/t9n/messages.sl.json +1 -0
  388. package/dist/cdn/assets/portal-delete-items-review/t9n/messages.sr.json +1 -0
  389. package/dist/cdn/assets/portal-delete-items-review/t9n/messages.sv.json +1 -0
  390. package/dist/cdn/assets/portal-delete-items-review/t9n/messages.th.json +1 -0
  391. package/dist/cdn/assets/portal-delete-items-review/t9n/messages.tr.json +1 -0
  392. package/dist/cdn/assets/portal-delete-items-review/t9n/messages.uk.json +1 -0
  393. package/dist/cdn/assets/portal-delete-items-review/t9n/messages.vi.json +1 -0
  394. package/dist/cdn/assets/portal-delete-items-review/t9n/messages.zh-CN.json +1 -0
  395. package/dist/cdn/assets/portal-delete-items-review/t9n/messages.zh-TW.json +1 -0
  396. package/dist/cdn/assets/portal-entity-picker/t9n/messages.ar.json +1 -0
  397. package/dist/cdn/assets/portal-entity-picker/t9n/messages.bg.json +1 -0
  398. package/dist/cdn/assets/portal-entity-picker/t9n/messages.ca.json +1 -0
  399. package/dist/cdn/assets/portal-entity-picker/t9n/messages.cs.json +1 -0
  400. package/dist/cdn/assets/portal-entity-picker/t9n/messages.da.json +1 -0
  401. package/dist/cdn/assets/portal-entity-picker/t9n/messages.de.json +1 -0
  402. package/dist/cdn/assets/portal-entity-picker/t9n/messages.el.json +1 -0
  403. package/dist/cdn/assets/portal-entity-picker/t9n/messages.en.json +1 -0
  404. package/dist/cdn/assets/portal-entity-picker/t9n/messages.es.json +1 -0
  405. package/dist/cdn/assets/portal-entity-picker/t9n/messages.et.json +1 -0
  406. package/dist/cdn/assets/portal-entity-picker/t9n/messages.fi.json +1 -0
  407. package/dist/cdn/assets/portal-entity-picker/t9n/messages.fr.json +1 -0
  408. package/dist/cdn/assets/portal-entity-picker/t9n/messages.he.json +1 -0
  409. package/dist/cdn/assets/portal-entity-picker/t9n/messages.hr.json +1 -0
  410. package/dist/cdn/assets/portal-entity-picker/t9n/messages.hu.json +1 -0
  411. package/dist/cdn/assets/portal-entity-picker/t9n/messages.id.json +1 -0
  412. package/dist/cdn/assets/portal-entity-picker/t9n/messages.it.json +1 -0
  413. package/dist/cdn/assets/portal-entity-picker/t9n/messages.ja.json +1 -0
  414. package/dist/cdn/assets/portal-entity-picker/t9n/messages.ko.json +1 -0
  415. package/dist/cdn/assets/portal-entity-picker/t9n/messages.lt.json +1 -0
  416. package/dist/cdn/assets/portal-entity-picker/t9n/messages.lv.json +1 -0
  417. package/dist/cdn/assets/portal-entity-picker/t9n/messages.nl.json +1 -0
  418. package/dist/cdn/assets/portal-entity-picker/t9n/messages.no.json +1 -0
  419. package/dist/cdn/assets/portal-entity-picker/t9n/messages.pl.json +1 -0
  420. package/dist/cdn/assets/portal-entity-picker/t9n/messages.pt-BR.json +1 -0
  421. package/dist/cdn/assets/portal-entity-picker/t9n/messages.pt-PT.json +1 -0
  422. package/dist/cdn/assets/portal-entity-picker/t9n/messages.ro.json +1 -0
  423. package/dist/cdn/assets/portal-entity-picker/t9n/messages.ru.json +1 -0
  424. package/dist/cdn/assets/portal-entity-picker/t9n/messages.sk.json +1 -0
  425. package/dist/cdn/assets/portal-entity-picker/t9n/messages.sl.json +1 -0
  426. package/dist/cdn/assets/portal-entity-picker/t9n/messages.sr.json +1 -0
  427. package/dist/cdn/assets/portal-entity-picker/t9n/messages.sv.json +1 -0
  428. package/dist/cdn/assets/portal-entity-picker/t9n/messages.th.json +1 -0
  429. package/dist/cdn/assets/portal-entity-picker/t9n/messages.tr.json +1 -0
  430. package/dist/cdn/assets/portal-entity-picker/t9n/messages.uk.json +1 -0
  431. package/dist/cdn/assets/portal-entity-picker/t9n/messages.vi.json +1 -0
  432. package/dist/cdn/assets/portal-entity-picker/t9n/messages.zh-CN.json +1 -0
  433. package/dist/cdn/assets/portal-entity-picker/t9n/messages.zh-TW.json +1 -0
  434. package/dist/cdn/assets/portal-group-badges/t9n/messages.ar.json +1 -0
  435. package/dist/cdn/assets/portal-group-badges/t9n/messages.bg.json +1 -0
  436. package/dist/cdn/assets/portal-group-badges/t9n/messages.bs.json +1 -0
  437. package/dist/cdn/assets/portal-group-badges/t9n/messages.ca.json +1 -0
  438. package/dist/cdn/assets/portal-group-badges/t9n/messages.cs.json +1 -0
  439. package/dist/cdn/assets/portal-group-badges/t9n/messages.da.json +1 -0
  440. package/dist/cdn/assets/portal-group-badges/t9n/messages.de.json +1 -0
  441. package/dist/cdn/assets/portal-group-badges/t9n/messages.el.json +1 -0
  442. package/dist/cdn/assets/portal-group-badges/t9n/messages.es.json +1 -0
  443. package/dist/cdn/assets/portal-group-badges/t9n/messages.et.json +1 -0
  444. package/dist/cdn/assets/portal-group-badges/t9n/messages.fi.json +1 -0
  445. package/dist/cdn/assets/portal-group-badges/t9n/messages.fr.json +1 -0
  446. package/dist/cdn/assets/portal-group-badges/t9n/messages.he.json +1 -0
  447. package/dist/cdn/assets/portal-group-badges/t9n/messages.hr.json +1 -0
  448. package/dist/cdn/assets/portal-group-badges/t9n/messages.hu.json +1 -0
  449. package/dist/cdn/assets/portal-group-badges/t9n/messages.id.json +1 -0
  450. package/dist/cdn/assets/portal-group-badges/t9n/messages.it.json +1 -0
  451. package/dist/cdn/assets/portal-group-badges/t9n/messages.ja.json +1 -0
  452. package/dist/cdn/assets/portal-group-badges/t9n/messages.ko.json +1 -0
  453. package/dist/cdn/assets/portal-group-badges/t9n/messages.lt.json +1 -0
  454. package/dist/cdn/assets/portal-group-badges/t9n/messages.lv.json +1 -0
  455. package/dist/cdn/assets/portal-group-badges/t9n/messages.nl.json +1 -0
  456. package/dist/cdn/assets/portal-group-badges/t9n/messages.no.json +1 -0
  457. package/dist/cdn/assets/portal-group-badges/t9n/messages.pl.json +1 -0
  458. package/dist/cdn/assets/portal-group-badges/t9n/messages.pt-BR.json +1 -0
  459. package/dist/cdn/assets/portal-group-badges/t9n/messages.pt-PT.json +1 -0
  460. package/dist/cdn/assets/portal-group-badges/t9n/messages.ro.json +1 -0
  461. package/dist/cdn/assets/portal-group-badges/t9n/messages.ru.json +1 -0
  462. package/dist/cdn/assets/portal-group-badges/t9n/messages.sk.json +1 -0
  463. package/dist/cdn/assets/portal-group-badges/t9n/messages.sl.json +1 -0
  464. package/dist/cdn/assets/portal-group-badges/t9n/messages.sr.json +1 -0
  465. package/dist/cdn/assets/portal-group-badges/t9n/messages.sv.json +1 -0
  466. package/dist/cdn/assets/portal-group-badges/t9n/messages.th.json +1 -0
  467. package/dist/cdn/assets/portal-group-badges/t9n/messages.tr.json +1 -0
  468. package/dist/cdn/assets/portal-group-badges/t9n/messages.uk.json +1 -0
  469. package/dist/cdn/assets/portal-group-badges/t9n/messages.vi.json +1 -0
  470. package/dist/cdn/assets/portal-group-badges/t9n/messages.zh-CN.json +1 -0
  471. package/dist/cdn/assets/portal-group-badges/t9n/messages.zh-HK.json +1 -0
  472. package/dist/cdn/assets/portal-group-badges/t9n/messages.zh-TW.json +1 -0
  473. package/dist/cdn/assets/portal-group-browser/t9n/messages.ar.json +1 -0
  474. package/dist/cdn/assets/portal-group-browser/t9n/messages.bg.json +1 -0
  475. package/dist/cdn/assets/portal-group-browser/t9n/messages.bs.json +1 -0
  476. package/dist/cdn/assets/portal-group-browser/t9n/messages.ca.json +1 -0
  477. package/dist/cdn/assets/portal-group-browser/t9n/messages.cs.json +1 -0
  478. package/dist/cdn/assets/portal-group-browser/t9n/messages.da.json +1 -0
  479. package/dist/cdn/assets/portal-group-browser/t9n/messages.de.json +1 -0
  480. package/dist/cdn/assets/portal-group-browser/t9n/messages.el.json +1 -0
  481. package/dist/cdn/assets/portal-group-browser/t9n/messages.en.json +1 -0
  482. package/dist/cdn/assets/portal-group-browser/t9n/messages.es.json +1 -0
  483. package/dist/cdn/assets/portal-group-browser/t9n/messages.et.json +1 -0
  484. package/dist/cdn/assets/portal-group-browser/t9n/messages.fi.json +1 -0
  485. package/dist/cdn/assets/portal-group-browser/t9n/messages.fr.json +1 -0
  486. package/dist/cdn/assets/portal-group-browser/t9n/messages.he.json +1 -0
  487. package/dist/cdn/assets/portal-group-browser/t9n/messages.hr.json +1 -0
  488. package/dist/cdn/assets/portal-group-browser/t9n/messages.hu.json +1 -0
  489. package/dist/cdn/assets/portal-group-browser/t9n/messages.id.json +1 -0
  490. package/dist/cdn/assets/portal-group-browser/t9n/messages.it.json +1 -0
  491. package/dist/cdn/assets/portal-group-browser/t9n/messages.ja.json +1 -0
  492. package/dist/cdn/assets/portal-group-browser/t9n/messages.ko.json +1 -0
  493. package/dist/cdn/assets/portal-group-browser/t9n/messages.lt.json +1 -0
  494. package/dist/cdn/assets/portal-group-browser/t9n/messages.lv.json +1 -0
  495. package/dist/cdn/assets/portal-group-browser/t9n/messages.nl.json +1 -0
  496. package/dist/cdn/assets/portal-group-browser/t9n/messages.no.json +1 -0
  497. package/dist/cdn/assets/portal-group-browser/t9n/messages.pl.json +1 -0
  498. package/dist/cdn/assets/portal-group-browser/t9n/messages.pt-BR.json +1 -0
  499. package/dist/cdn/assets/portal-group-browser/t9n/messages.pt-PT.json +1 -0
  500. package/dist/cdn/assets/portal-group-browser/t9n/messages.ro.json +1 -0
  501. package/dist/cdn/assets/portal-group-browser/t9n/messages.ru.json +1 -0
  502. package/dist/cdn/assets/portal-group-browser/t9n/messages.sk.json +1 -0
  503. package/dist/cdn/assets/portal-group-browser/t9n/messages.sl.json +1 -0
  504. package/dist/cdn/assets/portal-group-browser/t9n/messages.sr.json +1 -0
  505. package/dist/cdn/assets/portal-group-browser/t9n/messages.sv.json +1 -0
  506. package/dist/cdn/assets/portal-group-browser/t9n/messages.th.json +1 -0
  507. package/dist/cdn/assets/portal-group-browser/t9n/messages.tr.json +1 -0
  508. package/dist/cdn/assets/portal-group-browser/t9n/messages.uk.json +1 -0
  509. package/dist/cdn/assets/portal-group-browser/t9n/messages.vi.json +1 -0
  510. package/dist/cdn/assets/portal-group-browser/t9n/messages.zh-CN.json +1 -0
  511. package/dist/cdn/assets/portal-group-browser/t9n/messages.zh-HK.json +1 -0
  512. package/dist/cdn/assets/portal-group-browser/t9n/messages.zh-TW.json +1 -0
  513. package/dist/cdn/assets/portal-group-card/t9n/messages.ar.json +1 -0
  514. package/dist/cdn/assets/portal-group-card/t9n/messages.bg.json +1 -0
  515. package/dist/cdn/assets/portal-group-card/t9n/messages.bs.json +1 -0
  516. package/dist/cdn/assets/portal-group-card/t9n/messages.ca.json +1 -0
  517. package/dist/cdn/assets/portal-group-card/t9n/messages.cs.json +1 -0
  518. package/dist/cdn/assets/portal-group-card/t9n/messages.da.json +1 -0
  519. package/dist/cdn/assets/portal-group-card/t9n/messages.de.json +1 -0
  520. package/dist/cdn/assets/portal-group-card/t9n/messages.el.json +1 -0
  521. package/dist/cdn/assets/portal-group-card/t9n/messages.en.json +1 -1
  522. package/dist/cdn/assets/portal-group-card/t9n/messages.es.json +1 -0
  523. package/dist/cdn/assets/portal-group-card/t9n/messages.et.json +1 -0
  524. package/dist/cdn/assets/portal-group-card/t9n/messages.fi.json +1 -0
  525. package/dist/cdn/assets/portal-group-card/t9n/messages.fr.json +1 -0
  526. package/dist/cdn/assets/portal-group-card/t9n/messages.he.json +1 -0
  527. package/dist/cdn/assets/portal-group-card/t9n/messages.hr.json +1 -0
  528. package/dist/cdn/assets/portal-group-card/t9n/messages.hu.json +1 -0
  529. package/dist/cdn/assets/portal-group-card/t9n/messages.id.json +1 -0
  530. package/dist/cdn/assets/portal-group-card/t9n/messages.it.json +1 -0
  531. package/dist/cdn/assets/portal-group-card/t9n/messages.ja.json +1 -0
  532. package/dist/cdn/assets/portal-group-card/t9n/messages.ko.json +1 -0
  533. package/dist/cdn/assets/portal-group-card/t9n/messages.lt.json +1 -0
  534. package/dist/cdn/assets/portal-group-card/t9n/messages.lv.json +1 -0
  535. package/dist/cdn/assets/portal-group-card/t9n/messages.nl.json +1 -0
  536. package/dist/cdn/assets/portal-group-card/t9n/messages.no.json +1 -0
  537. package/dist/cdn/assets/portal-group-card/t9n/messages.pl.json +1 -0
  538. package/dist/cdn/assets/portal-group-card/t9n/messages.pt-BR.json +1 -0
  539. package/dist/cdn/assets/portal-group-card/t9n/messages.pt-PT.json +1 -0
  540. package/dist/cdn/assets/portal-group-card/t9n/messages.ro.json +1 -0
  541. package/dist/cdn/assets/portal-group-card/t9n/messages.ru.json +1 -0
  542. package/dist/cdn/assets/portal-group-card/t9n/messages.sk.json +1 -0
  543. package/dist/cdn/assets/portal-group-card/t9n/messages.sl.json +1 -0
  544. package/dist/cdn/assets/portal-group-card/t9n/messages.sr.json +1 -0
  545. package/dist/cdn/assets/portal-group-card/t9n/messages.sv.json +1 -0
  546. package/dist/cdn/assets/portal-group-card/t9n/messages.th.json +1 -0
  547. package/dist/cdn/assets/portal-group-card/t9n/messages.tr.json +1 -0
  548. package/dist/cdn/assets/portal-group-card/t9n/messages.uk.json +1 -0
  549. package/dist/cdn/assets/portal-group-card/t9n/messages.vi.json +1 -0
  550. package/dist/cdn/assets/portal-group-card/t9n/messages.zh-CN.json +1 -0
  551. package/dist/cdn/assets/portal-group-card/t9n/messages.zh-HK.json +1 -0
  552. package/dist/cdn/assets/portal-group-card/t9n/messages.zh-TW.json +1 -0
  553. package/dist/cdn/assets/portal-item-badges/t9n/messages.ar.json +1 -0
  554. package/dist/cdn/assets/portal-item-badges/t9n/messages.bg.json +1 -0
  555. package/dist/cdn/assets/portal-item-badges/t9n/messages.bs.json +1 -0
  556. package/dist/cdn/assets/portal-item-badges/t9n/messages.ca.json +1 -0
  557. package/dist/cdn/assets/portal-item-badges/t9n/messages.cs.json +1 -0
  558. package/dist/cdn/assets/portal-item-badges/t9n/messages.da.json +1 -0
  559. package/dist/cdn/assets/portal-item-badges/t9n/messages.de.json +1 -0
  560. package/dist/cdn/assets/portal-item-badges/t9n/messages.el.json +1 -0
  561. package/dist/cdn/assets/portal-item-badges/t9n/messages.en.json +1 -0
  562. package/dist/cdn/assets/portal-item-badges/t9n/messages.es.json +1 -0
  563. package/dist/cdn/assets/portal-item-badges/t9n/messages.et.json +1 -0
  564. package/dist/cdn/assets/portal-item-badges/t9n/messages.fi.json +1 -0
  565. package/dist/cdn/assets/portal-item-badges/t9n/messages.fr.json +1 -0
  566. package/dist/cdn/assets/portal-item-badges/t9n/messages.he.json +1 -0
  567. package/dist/cdn/assets/portal-item-badges/t9n/messages.hr.json +1 -0
  568. package/dist/cdn/assets/portal-item-badges/t9n/messages.hu.json +1 -0
  569. package/dist/cdn/assets/portal-item-badges/t9n/messages.id.json +1 -0
  570. package/dist/cdn/assets/portal-item-badges/t9n/messages.it.json +1 -0
  571. package/dist/cdn/assets/portal-item-badges/t9n/messages.ja.json +1 -0
  572. package/dist/cdn/assets/portal-item-badges/t9n/messages.ko.json +1 -0
  573. package/dist/cdn/assets/portal-item-badges/t9n/messages.lt.json +1 -0
  574. package/dist/cdn/assets/portal-item-badges/t9n/messages.lv.json +1 -0
  575. package/dist/cdn/assets/portal-item-badges/t9n/messages.nl.json +1 -0
  576. package/dist/cdn/assets/portal-item-badges/t9n/messages.no.json +1 -0
  577. package/dist/cdn/assets/portal-item-badges/t9n/messages.pl.json +1 -0
  578. package/dist/cdn/assets/portal-item-badges/t9n/messages.pt-BR.json +1 -0
  579. package/dist/cdn/assets/portal-item-badges/t9n/messages.pt-PT.json +1 -0
  580. package/dist/cdn/assets/portal-item-badges/t9n/messages.ro.json +1 -0
  581. package/dist/cdn/assets/portal-item-badges/t9n/messages.ru.json +1 -0
  582. package/dist/cdn/assets/portal-item-badges/t9n/messages.sk.json +1 -0
  583. package/dist/cdn/assets/portal-item-badges/t9n/messages.sl.json +1 -0
  584. package/dist/cdn/assets/portal-item-badges/t9n/messages.sr.json +1 -0
  585. package/dist/cdn/assets/portal-item-badges/t9n/messages.sv.json +1 -0
  586. package/dist/cdn/assets/portal-item-badges/t9n/messages.th.json +1 -0
  587. package/dist/cdn/assets/portal-item-badges/t9n/messages.tr.json +1 -0
  588. package/dist/cdn/assets/portal-item-badges/t9n/messages.uk.json +1 -0
  589. package/dist/cdn/assets/portal-item-badges/t9n/messages.vi.json +1 -0
  590. package/dist/cdn/assets/portal-item-badges/t9n/messages.zh-CN.json +1 -0
  591. package/dist/cdn/assets/portal-item-badges/t9n/messages.zh-HK.json +1 -0
  592. package/dist/cdn/assets/portal-item-badges/t9n/messages.zh-TW.json +1 -0
  593. package/dist/cdn/assets/portal-item-card/t9n/messages.ar.json +1 -0
  594. package/dist/cdn/assets/portal-item-card/t9n/messages.bg.json +1 -0
  595. package/dist/cdn/assets/portal-item-card/t9n/messages.bs.json +1 -0
  596. package/dist/cdn/assets/portal-item-card/t9n/messages.ca.json +1 -0
  597. package/dist/cdn/assets/portal-item-card/t9n/messages.cs.json +1 -0
  598. package/dist/cdn/assets/portal-item-card/t9n/messages.da.json +1 -0
  599. package/dist/cdn/assets/portal-item-card/t9n/messages.de.json +1 -0
  600. package/dist/cdn/assets/portal-item-card/t9n/messages.el.json +1 -0
  601. package/dist/cdn/assets/portal-item-card/t9n/messages.en.json +1 -0
  602. package/dist/cdn/assets/portal-item-card/t9n/messages.es.json +1 -0
  603. package/dist/cdn/assets/portal-item-card/t9n/messages.et.json +1 -0
  604. package/dist/cdn/assets/portal-item-card/t9n/messages.fi.json +1 -0
  605. package/dist/cdn/assets/portal-item-card/t9n/messages.fr.json +1 -0
  606. package/dist/cdn/assets/portal-item-card/t9n/messages.he.json +1 -0
  607. package/dist/cdn/assets/portal-item-card/t9n/messages.hr.json +1 -0
  608. package/dist/cdn/assets/portal-item-card/t9n/messages.hu.json +1 -0
  609. package/dist/cdn/assets/portal-item-card/t9n/messages.id.json +1 -0
  610. package/dist/cdn/assets/portal-item-card/t9n/messages.it.json +1 -0
  611. package/dist/cdn/assets/portal-item-card/t9n/messages.ja.json +1 -0
  612. package/dist/cdn/assets/portal-item-card/t9n/messages.ko.json +1 -0
  613. package/dist/cdn/assets/portal-item-card/t9n/messages.lt.json +1 -0
  614. package/dist/cdn/assets/portal-item-card/t9n/messages.lv.json +1 -0
  615. package/dist/cdn/assets/portal-item-card/t9n/messages.nl.json +1 -0
  616. package/dist/cdn/assets/portal-item-card/t9n/messages.no.json +1 -0
  617. package/dist/cdn/assets/portal-item-card/t9n/messages.pl.json +1 -0
  618. package/dist/cdn/assets/portal-item-card/t9n/messages.pt-BR.json +1 -0
  619. package/dist/cdn/assets/portal-item-card/t9n/messages.pt-PT.json +1 -0
  620. package/dist/cdn/assets/portal-item-card/t9n/messages.ro.json +1 -0
  621. package/dist/cdn/assets/portal-item-card/t9n/messages.ru.json +1 -0
  622. package/dist/cdn/assets/portal-item-card/t9n/messages.sk.json +1 -0
  623. package/dist/cdn/assets/portal-item-card/t9n/messages.sl.json +1 -0
  624. package/dist/cdn/assets/portal-item-card/t9n/messages.sr.json +1 -0
  625. package/dist/cdn/assets/portal-item-card/t9n/messages.sv.json +1 -0
  626. package/dist/cdn/assets/portal-item-card/t9n/messages.th.json +1 -0
  627. package/dist/cdn/assets/portal-item-card/t9n/messages.tr.json +1 -0
  628. package/dist/cdn/assets/portal-item-card/t9n/messages.uk.json +1 -0
  629. package/dist/cdn/assets/portal-item-card/t9n/messages.vi.json +1 -0
  630. package/dist/cdn/assets/portal-item-card/t9n/messages.zh-CN.json +1 -0
  631. package/dist/cdn/assets/portal-item-card/t9n/messages.zh-HK.json +1 -0
  632. package/dist/cdn/assets/portal-item-card/t9n/messages.zh-TW.json +1 -0
  633. package/dist/cdn/assets/portal-item-favorite/t9n/messages.ar.json +1 -0
  634. package/dist/cdn/assets/portal-item-favorite/t9n/messages.bg.json +1 -0
  635. package/dist/cdn/assets/portal-item-favorite/t9n/messages.bs.json +1 -0
  636. package/dist/cdn/assets/portal-item-favorite/t9n/messages.ca.json +1 -0
  637. package/dist/cdn/assets/portal-item-favorite/t9n/messages.cs.json +1 -0
  638. package/dist/cdn/assets/portal-item-favorite/t9n/messages.da.json +1 -0
  639. package/dist/cdn/assets/portal-item-favorite/t9n/messages.de.json +1 -0
  640. package/dist/cdn/assets/portal-item-favorite/t9n/messages.el.json +1 -0
  641. package/dist/cdn/assets/portal-item-favorite/t9n/messages.en.json +1 -0
  642. package/dist/cdn/assets/portal-item-favorite/t9n/messages.es.json +1 -0
  643. package/dist/cdn/assets/portal-item-favorite/t9n/messages.et.json +1 -0
  644. package/dist/cdn/assets/portal-item-favorite/t9n/messages.fi.json +1 -0
  645. package/dist/cdn/assets/portal-item-favorite/t9n/messages.fr.json +1 -0
  646. package/dist/cdn/assets/portal-item-favorite/t9n/messages.he.json +1 -0
  647. package/dist/cdn/assets/portal-item-favorite/t9n/messages.hr.json +1 -0
  648. package/dist/cdn/assets/portal-item-favorite/t9n/messages.hu.json +1 -0
  649. package/dist/cdn/assets/portal-item-favorite/t9n/messages.id.json +1 -0
  650. package/dist/cdn/assets/portal-item-favorite/t9n/messages.it.json +1 -0
  651. package/dist/cdn/assets/portal-item-favorite/t9n/messages.ja.json +1 -0
  652. package/dist/cdn/assets/portal-item-favorite/t9n/messages.ko.json +1 -0
  653. package/dist/cdn/assets/portal-item-favorite/t9n/messages.lt.json +1 -0
  654. package/dist/cdn/assets/portal-item-favorite/t9n/messages.lv.json +1 -0
  655. package/dist/cdn/assets/portal-item-favorite/t9n/messages.nl.json +1 -0
  656. package/dist/cdn/assets/portal-item-favorite/t9n/messages.no.json +1 -0
  657. package/dist/cdn/assets/portal-item-favorite/t9n/messages.pl.json +1 -0
  658. package/dist/cdn/assets/portal-item-favorite/t9n/messages.pt-BR.json +1 -0
  659. package/dist/cdn/assets/portal-item-favorite/t9n/messages.pt-PT.json +1 -0
  660. package/dist/cdn/assets/portal-item-favorite/t9n/messages.ro.json +1 -0
  661. package/dist/cdn/assets/portal-item-favorite/t9n/messages.ru.json +1 -0
  662. package/dist/cdn/assets/portal-item-favorite/t9n/messages.sk.json +1 -0
  663. package/dist/cdn/assets/portal-item-favorite/t9n/messages.sl.json +1 -0
  664. package/dist/cdn/assets/portal-item-favorite/t9n/messages.sr.json +1 -0
  665. package/dist/cdn/assets/portal-item-favorite/t9n/messages.sv.json +1 -0
  666. package/dist/cdn/assets/portal-item-favorite/t9n/messages.th.json +1 -0
  667. package/dist/cdn/assets/portal-item-favorite/t9n/messages.tr.json +1 -0
  668. package/dist/cdn/assets/portal-item-favorite/t9n/messages.uk.json +1 -0
  669. package/dist/cdn/assets/portal-item-favorite/t9n/messages.vi.json +1 -0
  670. package/dist/cdn/assets/portal-item-favorite/t9n/messages.zh-CN.json +1 -0
  671. package/dist/cdn/assets/portal-item-favorite/t9n/messages.zh-HK.json +1 -0
  672. package/dist/cdn/assets/portal-item-favorite/t9n/messages.zh-TW.json +1 -0
  673. package/dist/cdn/assets/portal-item-thumbnail/administrativereport.avif +0 -0
  674. package/dist/cdn/assets/portal-item-thumbnail/analysismodel.avif +0 -0
  675. package/dist/cdn/assets/portal-item-thumbnail/apacheparquet.avif +0 -0
  676. package/dist/cdn/assets/portal-item-thumbnail/apikey.avif +0 -0
  677. package/dist/cdn/assets/portal-item-thumbnail/applicationtheme.avif +0 -0
  678. package/dist/cdn/assets/portal-item-thumbnail/bigdataanalytic.avif +0 -0
  679. package/dist/cdn/assets/portal-item-thumbnail/classificationschema.avif +0 -0
  680. package/dist/cdn/assets/portal-item-thumbnail/classifierdefinition.avif +0 -0
  681. package/dist/cdn/assets/portal-item-thumbnail/dashboards.avif +0 -0
  682. package/dist/cdn/assets/portal-item-thumbnail/dataengineeringmodel.avif +0 -0
  683. package/dist/cdn/assets/portal-item-thumbnail/dataengineeringworkbook.avif +0 -0
  684. package/dist/cdn/assets/portal-item-thumbnail/datapipeline.avif +0 -0
  685. package/dist/cdn/assets/portal-item-thumbnail/deeplearningpackage.avif +0 -0
  686. package/dist/cdn/assets/portal-item-thumbnail/deeplearningstudioproject.avif +0 -0
  687. package/dist/cdn/assets/portal-item-thumbnail/default.avif +0 -0
  688. package/dist/cdn/assets/portal-item-thumbnail/dictionarystyle.avif +0 -0
  689. package/dist/cdn/assets/portal-item-thumbnail/discussion.avif +0 -0
  690. package/dist/cdn/assets/portal-item-thumbnail/earthconfiguration.avif +0 -0
  691. package/dist/cdn/assets/portal-item-thumbnail/excaliburimageryproject.avif +0 -0
  692. package/dist/cdn/assets/portal-item-thumbnail/experiencebuilderwidget.avif +0 -0
  693. package/dist/cdn/assets/portal-item-thumbnail/experiencebuilderwidgetpackage.avif +0 -0
  694. package/dist/cdn/assets/portal-item-thumbnail/feed.avif +0 -0
  695. package/dist/cdn/assets/portal-item-thumbnail/gaussiansplatlayer.avif +0 -0
  696. package/dist/cdn/assets/portal-item-thumbnail/geodataservice.avif +0 -0
  697. package/dist/cdn/assets/portal-item-thumbnail/hubevent.avif +0 -0
  698. package/dist/cdn/assets/portal-item-thumbnail/hubinitiative.avif +0 -0
  699. package/dist/cdn/assets/portal-item-thumbnail/hubinitiativetemplate.avif +0 -0
  700. package/dist/cdn/assets/portal-item-thumbnail/hubpage.avif +0 -0
  701. package/dist/cdn/assets/portal-item-thumbnail/hubproject.avif +0 -0
  702. package/dist/cdn/assets/portal-item-thumbnail/hubsite.avif +0 -0
  703. package/dist/cdn/assets/portal-item-thumbnail/imagerylayer.avif +0 -0
  704. package/dist/cdn/assets/portal-item-thumbnail/indoor-positioning-data-service.avif +0 -0
  705. package/dist/cdn/assets/portal-item-thumbnail/insightsscript.avif +0 -0
  706. package/dist/cdn/assets/portal-item-thumbnail/insightstheme.avif +0 -0
  707. package/dist/cdn/assets/portal-item-thumbnail/insightsworkbookpackage.avif +0 -0
  708. package/dist/cdn/assets/portal-item-thumbnail/investigation.avif +0 -0
  709. package/dist/cdn/assets/portal-item-thumbnail/kernelgatewayconnection.avif +0 -0
  710. package/dist/cdn/assets/portal-item-thumbnail/knowledgegraph.avif +0 -0
  711. package/dist/cdn/assets/portal-item-thumbnail/knowledgegraphconfiguration.avif +0 -0
  712. package/dist/cdn/assets/portal-item-thumbnail/knowledgegraphlayer.avif +0 -0
  713. package/dist/cdn/assets/portal-item-thumbnail/knowledgestudio.avif +0 -0
  714. package/dist/cdn/assets/portal-item-thumbnail/linkchart.avif +0 -0
  715. package/dist/cdn/assets/portal-item-thumbnail/locationtrackingservice.avif +0 -0
  716. package/dist/cdn/assets/portal-item-thumbnail/mapshowcase.avif +0 -0
  717. package/dist/cdn/assets/portal-item-thumbnail/mediaservice.avif +0 -0
  718. package/dist/cdn/assets/portal-item-thumbnail/mission.avif +0 -0
  719. package/dist/cdn/assets/portal-item-thumbnail/missionreport.avif +0 -0
  720. package/dist/cdn/assets/portal-item-thumbnail/missiontemplate.avif +0 -0
  721. package/dist/cdn/assets/portal-item-thumbnail/mobileapp.avif +0 -0
  722. package/dist/cdn/assets/portal-item-thumbnail/mobilescenepackage.avif +0 -0
  723. package/dist/cdn/assets/portal-item-thumbnail/notebook.avif +0 -0
  724. package/dist/cdn/assets/portal-item-thumbnail/notebookcodesnippets.avif +0 -0
  725. package/dist/cdn/assets/portal-item-thumbnail/notebookwebtool.avif +0 -0
  726. package/dist/cdn/assets/portal-item-thumbnail/opsdashboard.avif +0 -0
  727. package/dist/cdn/assets/portal-item-thumbnail/orthomappingproject.avif +0 -0
  728. package/dist/cdn/assets/portal-item-thumbnail/orthomappingtemplate.avif +0 -0
  729. package/dist/cdn/assets/portal-item-thumbnail/pro-presentation.avif +0 -0
  730. package/dist/cdn/assets/portal-item-thumbnail/propackage.avif +0 -0
  731. package/dist/cdn/assets/portal-item-thumbnail/proreport.avif +0 -0
  732. package/dist/cdn/assets/portal-item-thumbnail/proreporttemplate.avif +0 -0
  733. package/dist/cdn/assets/portal-item-thumbnail/quickcaptureproject.avif +0 -0
  734. package/dist/cdn/assets/portal-item-thumbnail/rasterfunctiontemplate.avif +0 -0
  735. package/dist/cdn/assets/portal-item-thumbnail/realitymappingproject.avif +0 -0
  736. package/dist/cdn/assets/portal-item-thumbnail/realtimeanalytic.avif +0 -0
  737. package/dist/cdn/assets/portal-item-thumbnail/scene.avif +0 -0
  738. package/dist/cdn/assets/portal-item-thumbnail/serviceconnection.avif +0 -0
  739. package/dist/cdn/assets/portal-item-thumbnail/solution.avif +0 -0
  740. package/dist/cdn/assets/portal-item-thumbnail/spectrallibrary.avif +0 -0
  741. package/dist/cdn/assets/portal-item-thumbnail/storymap.avif +0 -0
  742. package/dist/cdn/assets/portal-item-thumbnail/storymapcollection.avif +0 -0
  743. package/dist/cdn/assets/portal-item-thumbnail/storymaptheme.avif +0 -0
  744. package/dist/cdn/assets/portal-item-thumbnail/style.avif +0 -0
  745. package/dist/cdn/assets/portal-item-thumbnail/suitabilitymodel.avif +0 -0
  746. package/dist/cdn/assets/portal-item-thumbnail/survey123addin.avif +0 -0
  747. package/dist/cdn/assets/portal-item-thumbnail/tiledimagerylayer.avif +0 -0
  748. package/dist/cdn/assets/portal-item-thumbnail/urbanmodel.avif +0 -0
  749. package/dist/cdn/assets/portal-item-thumbnail/urbanproject.avif +0 -0
  750. package/dist/cdn/assets/portal-item-thumbnail/webapp.avif +0 -0
  751. package/dist/cdn/assets/portal-item-thumbnail/webexperience.avif +0 -0
  752. package/dist/cdn/assets/portal-item-thumbnail/webexperiencetemplate.avif +0 -0
  753. package/dist/cdn/assets/portal-item-thumbnail/webtool.avif +0 -0
  754. package/dist/cdn/assets/portal-item-thumbnail/workflow.avif +0 -0
  755. package/dist/cdn/assets/portal-item-thumbnail/workforceproject.avif +0 -0
  756. package/dist/cdn/assets/portal-item-thumbnail/xrexperience.avif +0 -0
  757. package/dist/cdn/assets/portal-item-type/icons/360vr16.svg +0 -0
  758. package/dist/cdn/assets/portal-item-type/icons/360vr32.svg +0 -0
  759. package/dist/cdn/assets/portal-item-type/icons/applicationtheme16.svg +1 -0
  760. package/dist/cdn/assets/portal-item-type/icons/applicationtheme32.svg +1 -0
  761. package/dist/cdn/assets/portal-item-type/icons/insightstheme16.svg +0 -0
  762. package/dist/cdn/assets/portal-item-type/icons/insightstheme32.svg +0 -0
  763. package/dist/cdn/assets/portal-item-type/icons/knowledgegraphconfiguration16.svg +1 -0
  764. package/dist/cdn/assets/portal-item-type/icons/knowledgegraphconfiguration32.svg +1 -0
  765. package/dist/cdn/assets/portal-item-type/icons/knowledgegraphlayer16.svg +0 -0
  766. package/dist/cdn/assets/portal-item-type/icons/knowledgegraphlayer32.svg +0 -0
  767. package/dist/cdn/assets/portal-item-type/icons/layout16.svg +1 -0
  768. package/dist/cdn/assets/portal-item-type/icons/layout32.svg +1 -0
  769. package/dist/cdn/assets/portal-item-type/icons/missiontemplate16.svg +0 -0
  770. package/dist/cdn/assets/portal-item-type/icons/missiontemplate32.svg +0 -0
  771. package/dist/cdn/assets/portal-item-type/icons/propresentation16.svg +0 -0
  772. package/dist/cdn/assets/portal-item-type/icons/propresentation32.svg +0 -0
  773. package/dist/cdn/assets/portal-item-type/t9n/messages.ar.json +1 -1
  774. package/dist/cdn/assets/portal-item-type/t9n/messages.bg.json +1 -1
  775. package/dist/cdn/assets/portal-item-type/t9n/messages.bs.json +1 -1
  776. package/dist/cdn/assets/portal-item-type/t9n/messages.ca.json +1 -1
  777. package/dist/cdn/assets/portal-item-type/t9n/messages.cs.json +1 -1
  778. package/dist/cdn/assets/portal-item-type/t9n/messages.da.json +1 -1
  779. package/dist/cdn/assets/portal-item-type/t9n/messages.de.json +1 -1
  780. package/dist/cdn/assets/portal-item-type/t9n/messages.el.json +1 -1
  781. package/dist/cdn/assets/portal-item-type/t9n/messages.es.json +1 -1
  782. package/dist/cdn/assets/portal-item-type/t9n/messages.et.json +1 -1
  783. package/dist/cdn/assets/portal-item-type/t9n/messages.fi.json +1 -1
  784. package/dist/cdn/assets/portal-item-type/t9n/messages.fr.json +1 -1
  785. package/dist/cdn/assets/portal-item-type/t9n/messages.he.json +1 -1
  786. package/dist/cdn/assets/portal-item-type/t9n/messages.hr.json +1 -1
  787. package/dist/cdn/assets/portal-item-type/t9n/messages.hu.json +1 -1
  788. package/dist/cdn/assets/portal-item-type/t9n/messages.id.json +1 -1
  789. package/dist/cdn/assets/portal-item-type/t9n/messages.it.json +1 -1
  790. package/dist/cdn/assets/portal-item-type/t9n/messages.ja.json +1 -1
  791. package/dist/cdn/assets/portal-item-type/t9n/messages.ko.json +1 -1
  792. package/dist/cdn/assets/portal-item-type/t9n/messages.lt.json +1 -1
  793. package/dist/cdn/assets/portal-item-type/t9n/messages.lv.json +1 -1
  794. package/dist/cdn/assets/portal-item-type/t9n/messages.nl.json +1 -1
  795. package/dist/cdn/assets/portal-item-type/t9n/messages.no.json +1 -1
  796. package/dist/cdn/assets/portal-item-type/t9n/messages.pl.json +1 -1
  797. package/dist/cdn/assets/portal-item-type/t9n/messages.pt-BR.json +1 -1
  798. package/dist/cdn/assets/portal-item-type/t9n/messages.pt-PT.json +1 -1
  799. package/dist/cdn/assets/portal-item-type/t9n/messages.ro.json +1 -1
  800. package/dist/cdn/assets/portal-item-type/t9n/messages.ru.json +1 -1
  801. package/dist/cdn/assets/portal-item-type/t9n/messages.sk.json +1 -1
  802. package/dist/cdn/assets/portal-item-type/t9n/messages.sl.json +1 -1
  803. package/dist/cdn/assets/portal-item-type/t9n/messages.sr.json +1 -1
  804. package/dist/cdn/assets/portal-item-type/t9n/messages.sv.json +1 -1
  805. package/dist/cdn/assets/portal-item-type/t9n/messages.th.json +1 -1
  806. package/dist/cdn/assets/portal-item-type/t9n/messages.tr.json +1 -1
  807. package/dist/cdn/assets/portal-item-type/t9n/messages.uk.json +1 -1
  808. package/dist/cdn/assets/portal-item-type/t9n/messages.vi.json +1 -1
  809. package/dist/cdn/assets/portal-item-type/t9n/messages.zh-CN.json +1 -1
  810. package/dist/cdn/assets/portal-item-type/t9n/messages.zh-HK.json +1 -1
  811. package/dist/cdn/assets/portal-item-type/t9n/messages.zh-TW.json +1 -1
  812. package/dist/cdn/assets/portal-navigation/apps/api-for-python.avif +0 -0
  813. package/dist/cdn/assets/portal-navigation/apps/appstudio.avif +0 -0
  814. package/dist/cdn/assets/portal-navigation/apps/arcade.avif +0 -0
  815. package/dist/cdn/assets/portal-navigation/apps/arcgis-360-vr.avif +0 -0
  816. package/dist/cdn/assets/portal-navigation/apps/arcgis-earth.avif +0 -0
  817. package/dist/cdn/assets/portal-navigation/apps/arcgis-enterprise.avif +0 -0
  818. package/dist/cdn/assets/portal-navigation/apps/arcgis-experience-builder.avif +0 -0
  819. package/dist/cdn/assets/portal-navigation/apps/arcgis-geoanalytics.avif +0 -0
  820. package/dist/cdn/assets/portal-navigation/apps/arcgis-hub.avif +0 -0
  821. package/dist/cdn/assets/portal-navigation/apps/arcgis-online.avif +0 -0
  822. package/dist/cdn/assets/portal-navigation/apps/arcgis-pro.avif +0 -0
  823. package/dist/cdn/assets/portal-navigation/apps/arcgis-reality-studio.avif +0 -0
  824. package/dist/cdn/assets/portal-navigation/apps/arcgis-urban.avif +0 -0
  825. package/dist/cdn/assets/portal-navigation/apps/blank.avif +0 -0
  826. package/dist/cdn/assets/portal-navigation/apps/business-analyst.avif +0 -0
  827. package/dist/cdn/assets/portal-navigation/apps/city-engine.avif +0 -0
  828. package/dist/cdn/assets/portal-navigation/apps/collector.avif +0 -0
  829. package/dist/cdn/assets/portal-navigation/apps/community-analyst.avif +0 -0
  830. package/dist/cdn/assets/portal-navigation/apps/configurable-apps.avif +0 -0
  831. package/dist/cdn/assets/portal-navigation/apps/dashboards-beta.avif +0 -0
  832. package/dist/cdn/assets/portal-navigation/apps/dashboards-classic.avif +0 -0
  833. package/dist/cdn/assets/portal-navigation/apps/data-pipelines.avif +0 -0
  834. package/dist/cdn/assets/portal-navigation/apps/deeplearningstudio.avif +0 -0
  835. package/dist/cdn/assets/portal-navigation/apps/demographics.avif +0 -0
  836. package/dist/cdn/assets/portal-navigation/apps/drone2map.avif +0 -0
  837. package/dist/cdn/assets/portal-navigation/apps/esri-events.avif +0 -0
  838. package/dist/cdn/assets/portal-navigation/apps/essential-apps.avif +0 -0
  839. package/dist/cdn/assets/portal-navigation/apps/excalibur.avif +0 -0
  840. package/dist/cdn/assets/portal-navigation/apps/explorer.avif +0 -0
  841. package/dist/cdn/assets/portal-navigation/apps/field-apps.avif +0 -0
  842. package/dist/cdn/assets/portal-navigation/apps/fieldmaps-beta.avif +0 -0
  843. package/dist/cdn/assets/portal-navigation/apps/fieldmaps-ea.avif +0 -0
  844. package/dist/cdn/assets/portal-navigation/apps/fieldmaps.avif +0 -0
  845. package/dist/cdn/assets/portal-navigation/apps/generic-app.avif +0 -0
  846. package/dist/cdn/assets/portal-navigation/apps/geobim.avif +0 -0
  847. package/dist/cdn/assets/portal-navigation/apps/geoplanner.avif +0 -0
  848. package/dist/cdn/assets/portal-navigation/apps/grid-view-9.avif +0 -0
  849. package/dist/cdn/assets/portal-navigation/apps/indoor.avif +0 -0
  850. package/dist/cdn/assets/portal-navigation/apps/indoors.avif +0 -0
  851. package/dist/cdn/assets/portal-navigation/apps/insights.avif +0 -0
  852. package/dist/cdn/assets/portal-navigation/apps/instant-apps.avif +0 -0
  853. package/dist/cdn/assets/portal-navigation/apps/ips.avif +0 -0
  854. package/dist/cdn/assets/portal-navigation/apps/knowledge-studio.avif +0 -0
  855. package/dist/cdn/assets/portal-navigation/apps/living-atlas.avif +0 -0
  856. package/dist/cdn/assets/portal-navigation/apps/location-platform.avif +0 -0
  857. package/dist/cdn/assets/portal-navigation/apps/map-maker.avif +0 -0
  858. package/dist/cdn/assets/portal-navigation/apps/map-viewer-beta.avif +0 -0
  859. package/dist/cdn/assets/portal-navigation/apps/map-viewer-classic.avif +0 -0
  860. package/dist/cdn/assets/portal-navigation/apps/map-viewer.avif +0 -0
  861. package/dist/cdn/assets/portal-navigation/apps/maps-adobe-cloud.avif +0 -0
  862. package/dist/cdn/assets/portal-navigation/apps/maps-for-office.avif +0 -0
  863. package/dist/cdn/assets/portal-navigation/apps/maps-for-power-bi.avif +0 -0
  864. package/dist/cdn/assets/portal-navigation/apps/maps-for-sharepoint.avif +0 -0
  865. package/dist/cdn/assets/portal-navigation/apps/marketplace.avif +0 -0
  866. package/dist/cdn/assets/portal-navigation/apps/mission.avif +0 -0
  867. package/dist/cdn/assets/portal-navigation/apps/monitor.avif +0 -0
  868. package/dist/cdn/assets/portal-navigation/apps/navigator.avif +0 -0
  869. package/dist/cdn/assets/portal-navigation/apps/notebook.avif +0 -0
  870. package/dist/cdn/assets/portal-navigation/apps/office-apps.avif +0 -0
  871. package/dist/cdn/assets/portal-navigation/apps/open-data.avif +0 -0
  872. package/dist/cdn/assets/portal-navigation/apps/operations-dashboard.avif +0 -0
  873. package/dist/cdn/assets/portal-navigation/apps/ortho-maker.avif +0 -0
  874. package/dist/cdn/assets/portal-navigation/apps/pro-extension.avif +0 -0
  875. package/dist/cdn/assets/portal-navigation/apps/quick-capture.avif +0 -0
  876. package/dist/cdn/assets/portal-navigation/apps/redistricting.avif +0 -0
  877. package/dist/cdn/assets/portal-navigation/apps/runtime.avif +0 -0
  878. package/dist/cdn/assets/portal-navigation/apps/scene-viewer.avif +0 -0
  879. package/dist/cdn/assets/portal-navigation/apps/sites.avif +0 -0
  880. package/dist/cdn/assets/portal-navigation/apps/solutions.avif +0 -0
  881. package/dist/cdn/assets/portal-navigation/apps/story-maps.avif +0 -0
  882. package/dist/cdn/assets/portal-navigation/apps/streetmap-premium.avif +0 -0
  883. package/dist/cdn/assets/portal-navigation/apps/survey123.avif +0 -0
  884. package/dist/cdn/assets/portal-navigation/apps/svg-app-circle.svg +1 -0
  885. package/dist/cdn/assets/portal-navigation/apps/svg-app-icon.svg +1 -0
  886. package/dist/cdn/assets/portal-navigation/apps/track-viewer.avif +0 -0
  887. package/dist/cdn/assets/portal-navigation/apps/user-type-extension-online.avif +0 -0
  888. package/dist/cdn/assets/portal-navigation/apps/user-type-extension.avif +0 -0
  889. package/dist/cdn/assets/portal-navigation/apps/vector-tile-style-editor.avif +0 -0
  890. package/dist/cdn/assets/portal-navigation/apps/velocity.avif +0 -0
  891. package/dist/cdn/assets/portal-navigation/apps/web-app-builder.avif +0 -0
  892. package/dist/cdn/assets/portal-navigation/apps/web-editor.avif +0 -0
  893. package/dist/cdn/assets/portal-navigation/apps/web-mapping.avif +0 -0
  894. package/dist/cdn/assets/portal-navigation/apps/workflow-manager-beta.avif +0 -0
  895. package/dist/cdn/assets/portal-navigation/apps/workflow-manager.avif +0 -0
  896. package/dist/cdn/assets/portal-navigation/apps/workforce.avif +0 -0
  897. package/dist/cdn/assets/portal-navigation/product-logos/advanced-editing-user-type-extension-glyph-32.svg +1 -0
  898. package/dist/cdn/assets/portal-navigation/product-logos/arc-hydro-glyph-32.svg +1 -0
  899. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-360-vr-glyph-32.svg +1 -0
  900. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-api-for-python-glyph-32.svg +1 -0
  901. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-appstudio-glyph-32.svg +1 -0
  902. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-arcade-expression-language-glyph-32.svg +1 -0
  903. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-business-analyst-glyph-32.svg +1 -0
  904. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-cityengine-glyph-32.svg +1 -0
  905. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-collector-glyph-32.svg +1 -0
  906. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-community-analyst-glyph-32.svg +1 -0
  907. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-connectors-for-power-automate-glyph-32.svg +1 -0
  908. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-dashboards-glyph-32.svg +1 -0
  909. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-data-interoperability-glyph-32.svg +1 -0
  910. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-data-pipelines-glyph-32.svg +1 -0
  911. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-data-reviewer-glyph-32.svg +1 -0
  912. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-deep-learning-studio-glyph-32.svg +1 -0
  913. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-drone2map-glyph-32.svg +1 -0
  914. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-earth-glyph-32.svg +1 -0
  915. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-enterprise-glyph-32.svg +1 -0
  916. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-excalibur-glyph-32.svg +1 -0
  917. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-excalibur-gray-glyph-32.svg +1 -0
  918. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-experience-builder-glyph-32.svg +1 -0
  919. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-explorer-glyph-32.svg +1 -0
  920. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-field-maps-designer-ea-glyph-32.svg +1 -0
  921. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-field-maps-glyph-32.svg +1 -0
  922. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-flight-glyph-32.svg +1 -0
  923. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-for-autocad-glyph-32.svg +1 -0
  924. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-for-autodesk-forma-glyph-32.svg +1 -0
  925. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-for-developers-glyph-32.svg +1 -0
  926. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-for-excel-glyph-32.svg +1 -0
  927. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-for-microsoft-365-glyph-32.svg +1 -0
  928. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-for-power-apps-glyph-32.svg +1 -0
  929. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-for-teams-glyph-32.svg +1 -0
  930. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-geoanalytics-engine-glyph-32.svg +1 -0
  931. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-geobim-glyph-32.svg +1 -0
  932. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-geoplanner-glyph-32.svg +1 -0
  933. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-hub-glyph-32.svg +1 -0
  934. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-image-glyph-32.svg +1 -0
  935. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-indoors-glyph-32.svg +1 -0
  936. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-insights-glyph-32.svg +1 -0
  937. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-instant-apps-glyph-32.svg +1 -0
  938. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-knowledge-glyph-32.svg +1 -0
  939. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-living-atlas-of-the-world-glyph-32.svg +1 -0
  940. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-location-platform-glyph-32.svg +1 -0
  941. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-logo-glyph-32.svg +76 -0
  942. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-maps-for-adobe-creative-cloud-glyph-32.svg +1 -0
  943. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-maps-for-power-bi-glyph-32.svg +1 -0
  944. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-maps-for-sharepoint-glyph-32.svg +1 -0
  945. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-maps-sdk-for-javascript-glyph-32.svg +1 -0
  946. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-maps-sdks-for-game-engines-glyph-32.svg +1 -0
  947. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-maps-sdks-for-native-apps-glyph-32.svg +1 -0
  948. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-maritime-glyph-32.svg +1 -0
  949. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-marketplace-glyph-32.svg +1 -0
  950. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-mission-glyph-32.svg +1 -0
  951. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-monitor-glyph-32.svg +1 -0
  952. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-monitor-white-glyph-32.svg +1 -0
  953. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-navigator-glyph-32.svg +1 -0
  954. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-notebooks-glyph-32.svg +1 -0
  955. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-online-glyph-32.svg +1 -0
  956. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-open-data-glyph-32.svg +1 -0
  957. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-open-source-apps-glyph-32.svg +1 -0
  958. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-ortho-maker-glyph-32.svg +1 -0
  959. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-parcel-fabric-glyph-32.svg +1 -0
  960. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-pipeline-referencing-glyph-32.svg +1 -0
  961. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-pro-for-intelligence-glyph-32.svg +1 -0
  962. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-pro-glyph-32.svg +1 -0
  963. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-quickcapture-glyph-32.svg +1 -0
  964. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-reality-studio-glyph-32.svg +1 -0
  965. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-roads-and-highways-glyph-32.svg +1 -0
  966. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-sites-glyph-32.svg +1 -0
  967. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-solutions-glyph-32.svg +1 -0
  968. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-storymaps-glyph-32.svg +1 -0
  969. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-streetmap-premium-glyph-32.svg +1 -0
  970. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-survey123-connect-glyph-32.svg +1 -0
  971. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-survey123-glyph-32.svg +1 -0
  972. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-tracker-glyph-32.svg +1 -0
  973. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-urban-glyph-32.svg +1 -0
  974. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-utility-network-management-glyph-32.svg +1 -0
  975. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-velocity-glyph-32.svg +6 -0
  976. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-web-appbuilder-glyph-32.svg +1 -0
  977. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-web-editor-glyph-32.svg +1 -0
  978. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-workflow-manager-glyph-32.svg +1 -0
  979. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-workforce-glyph-32.svg +1 -0
  980. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-world-geocoder-glyph-32.svg +1 -0
  981. package/dist/cdn/assets/portal-navigation/product-logos/calcite-design-system-glyph-32.svg +1 -0
  982. package/dist/cdn/assets/portal-navigation/product-logos/esri-community-glyph-32.svg +1 -0
  983. package/dist/cdn/assets/portal-navigation/product-logos/esri-demographics-glyph-32.svg +1 -0
  984. package/dist/cdn/assets/portal-navigation/product-logos/esri-events-glyph-32.svg +1 -0
  985. package/dist/cdn/assets/portal-navigation/product-logos/esri-offline-documentation-center--glyph-32.svg +1 -0
  986. package/dist/cdn/assets/portal-navigation/product-logos/esri-redistricting-glyph-32.svg +1 -0
  987. package/dist/cdn/assets/portal-navigation/product-logos/esri-reports-glyph-32.svg +1 -0
  988. package/dist/cdn/assets/portal-navigation/product-logos/esri-support-glyph-32.svg +1 -0
  989. package/dist/cdn/assets/portal-navigation/product-logos/map-viewer-glyph-32.svg +1 -0
  990. package/dist/cdn/assets/portal-navigation/product-logos/sceneviewer-glyph-32.svg +1 -0
  991. package/dist/cdn/assets/portal-navigation/product-logos/site-scan-for-arcgis-glyph-32.svg +1 -0
  992. package/dist/cdn/assets/portal-navigation/product-logos/site-scan-for-arcgis-le-glyph-32.svg +1 -0
  993. package/dist/cdn/assets/portal-navigation/product-logos/vector-tile-style-editor-glyph-32.svg +1 -0
  994. package/dist/cdn/assets/portal-navigation/product-logos/xr-viewer-glyph-32.svg +1 -0
  995. package/dist/cdn/assets/portal-navigation/t9n/messages.ar.json +1 -0
  996. package/dist/cdn/assets/portal-navigation/t9n/messages.bg.json +1 -0
  997. package/dist/cdn/assets/portal-navigation/t9n/messages.bs.json +1 -0
  998. package/dist/cdn/assets/portal-navigation/t9n/messages.ca.json +1 -0
  999. package/dist/cdn/assets/portal-navigation/t9n/messages.cs.json +1 -0
  1000. package/dist/cdn/assets/portal-navigation/t9n/messages.da.json +1 -0
  1001. package/dist/cdn/assets/portal-navigation/t9n/messages.de.json +1 -0
  1002. package/dist/cdn/assets/portal-navigation/t9n/messages.el.json +1 -0
  1003. package/dist/cdn/assets/portal-navigation/t9n/messages.en.json +1 -0
  1004. package/dist/cdn/assets/portal-navigation/t9n/messages.es.json +1 -0
  1005. package/dist/cdn/assets/portal-navigation/t9n/messages.et.json +1 -0
  1006. package/dist/cdn/assets/portal-navigation/t9n/messages.fi.json +1 -0
  1007. package/dist/cdn/assets/portal-navigation/t9n/messages.fr.json +1 -0
  1008. package/dist/cdn/assets/portal-navigation/t9n/messages.he.json +1 -0
  1009. package/dist/cdn/assets/portal-navigation/t9n/messages.hr.json +1 -0
  1010. package/dist/cdn/assets/portal-navigation/t9n/messages.hu.json +1 -0
  1011. package/dist/cdn/assets/portal-navigation/t9n/messages.id.json +1 -0
  1012. package/dist/cdn/assets/portal-navigation/t9n/messages.it.json +1 -0
  1013. package/dist/cdn/assets/portal-navigation/t9n/messages.ja.json +1 -0
  1014. package/dist/cdn/assets/portal-navigation/t9n/messages.ko.json +1 -0
  1015. package/dist/cdn/assets/portal-navigation/t9n/messages.lt.json +1 -0
  1016. package/dist/cdn/assets/portal-navigation/t9n/messages.lv.json +1 -0
  1017. package/dist/cdn/assets/portal-navigation/t9n/messages.nl.json +1 -0
  1018. package/dist/cdn/assets/portal-navigation/t9n/messages.no.json +1 -0
  1019. package/dist/cdn/assets/portal-navigation/t9n/messages.pl.json +1 -0
  1020. package/dist/cdn/assets/portal-navigation/t9n/messages.pt-BR.json +1 -0
  1021. package/dist/cdn/assets/portal-navigation/t9n/messages.pt-PT.json +1 -0
  1022. package/dist/cdn/assets/portal-navigation/t9n/messages.ro.json +1 -0
  1023. package/dist/cdn/assets/portal-navigation/t9n/messages.ru.json +1 -0
  1024. package/dist/cdn/assets/portal-navigation/t9n/messages.sk.json +1 -0
  1025. package/dist/cdn/assets/portal-navigation/t9n/messages.sl.json +1 -0
  1026. package/dist/cdn/assets/portal-navigation/t9n/messages.sr.json +1 -0
  1027. package/dist/cdn/assets/portal-navigation/t9n/messages.sv.json +1 -0
  1028. package/dist/cdn/assets/portal-navigation/t9n/messages.th.json +1 -0
  1029. package/dist/cdn/assets/portal-navigation/t9n/messages.tr.json +1 -0
  1030. package/dist/cdn/assets/portal-navigation/t9n/messages.uk.json +1 -0
  1031. package/dist/cdn/assets/portal-navigation/t9n/messages.vi.json +1 -0
  1032. package/dist/cdn/assets/portal-navigation/t9n/messages.zh-CN.json +1 -0
  1033. package/dist/cdn/assets/portal-navigation/t9n/messages.zh-HK.json +1 -0
  1034. package/dist/cdn/assets/portal-navigation/t9n/messages.zh-TW.json +1 -0
  1035. package/dist/cdn/assets/portal-related-items-list-item/t9n/messages.ar.json +1 -0
  1036. package/dist/cdn/assets/portal-related-items-list-item/t9n/messages.bg.json +1 -0
  1037. package/dist/cdn/assets/portal-related-items-list-item/t9n/messages.ca.json +1 -0
  1038. package/dist/cdn/assets/portal-related-items-list-item/t9n/messages.cs.json +1 -0
  1039. package/dist/cdn/assets/portal-related-items-list-item/t9n/messages.da.json +1 -0
  1040. package/dist/cdn/assets/portal-related-items-list-item/t9n/messages.de.json +1 -0
  1041. package/dist/cdn/assets/portal-related-items-list-item/t9n/messages.el.json +1 -0
  1042. package/dist/cdn/assets/portal-related-items-list-item/t9n/messages.en.json +1 -0
  1043. package/dist/cdn/assets/portal-related-items-list-item/t9n/messages.es.json +1 -0
  1044. package/dist/cdn/assets/portal-related-items-list-item/t9n/messages.et.json +1 -0
  1045. package/dist/cdn/assets/portal-related-items-list-item/t9n/messages.fi.json +1 -0
  1046. package/dist/cdn/assets/portal-related-items-list-item/t9n/messages.fr.json +1 -0
  1047. package/dist/cdn/assets/portal-related-items-list-item/t9n/messages.he.json +1 -0
  1048. package/dist/cdn/assets/portal-related-items-list-item/t9n/messages.hr.json +1 -0
  1049. package/dist/cdn/assets/portal-related-items-list-item/t9n/messages.hu.json +1 -0
  1050. package/dist/cdn/assets/portal-related-items-list-item/t9n/messages.id.json +1 -0
  1051. package/dist/cdn/assets/portal-related-items-list-item/t9n/messages.it.json +1 -0
  1052. package/dist/cdn/assets/portal-related-items-list-item/t9n/messages.ja.json +1 -0
  1053. package/dist/cdn/assets/portal-related-items-list-item/t9n/messages.ko.json +1 -0
  1054. package/dist/cdn/assets/portal-related-items-list-item/t9n/messages.lt.json +1 -0
  1055. package/dist/cdn/assets/portal-related-items-list-item/t9n/messages.lv.json +1 -0
  1056. package/dist/cdn/assets/portal-related-items-list-item/t9n/messages.nl.json +1 -0
  1057. package/dist/cdn/assets/portal-related-items-list-item/t9n/messages.no.json +1 -0
  1058. package/dist/cdn/assets/portal-related-items-list-item/t9n/messages.pl.json +1 -0
  1059. package/dist/cdn/assets/portal-related-items-list-item/t9n/messages.pt-BR.json +1 -0
  1060. package/dist/cdn/assets/portal-related-items-list-item/t9n/messages.pt-PT.json +1 -0
  1061. package/dist/cdn/assets/portal-related-items-list-item/t9n/messages.ro.json +1 -0
  1062. package/dist/cdn/assets/portal-related-items-list-item/t9n/messages.ru.json +1 -0
  1063. package/dist/cdn/assets/portal-related-items-list-item/t9n/messages.sk.json +1 -0
  1064. package/dist/cdn/assets/portal-related-items-list-item/t9n/messages.sl.json +1 -0
  1065. package/dist/cdn/assets/portal-related-items-list-item/t9n/messages.sr.json +1 -0
  1066. package/dist/cdn/assets/portal-related-items-list-item/t9n/messages.sv.json +1 -0
  1067. package/dist/cdn/assets/portal-related-items-list-item/t9n/messages.th.json +1 -0
  1068. package/dist/cdn/assets/portal-related-items-list-item/t9n/messages.tr.json +1 -0
  1069. package/dist/cdn/assets/portal-related-items-list-item/t9n/messages.uk.json +1 -0
  1070. package/dist/cdn/assets/portal-related-items-list-item/t9n/messages.vi.json +1 -0
  1071. package/dist/cdn/assets/portal-related-items-list-item/t9n/messages.zh-CN.json +1 -0
  1072. package/dist/cdn/assets/portal-related-items-list-item/t9n/messages.zh-TW.json +1 -0
  1073. package/dist/cdn/assets/portal-replacement-item-redirect/t9n/messages.bg.json +1 -1
  1074. package/dist/cdn/assets/portal-replacement-item-redirect/t9n/messages.cs.json +1 -1
  1075. package/dist/cdn/assets/portal-replacement-item-redirect/t9n/messages.de.json +1 -1
  1076. package/dist/cdn/assets/portal-replacement-item-redirect/t9n/messages.el.json +1 -1
  1077. package/dist/cdn/assets/portal-replacement-item-redirect/t9n/messages.et.json +1 -1
  1078. package/dist/cdn/assets/portal-replacement-item-redirect/t9n/messages.fi.json +1 -1
  1079. package/dist/cdn/assets/portal-replacement-item-redirect/t9n/messages.he.json +1 -1
  1080. package/dist/cdn/assets/portal-replacement-item-redirect/t9n/messages.hu.json +1 -1
  1081. package/dist/cdn/assets/portal-replacement-item-redirect/t9n/messages.it.json +1 -1
  1082. package/dist/cdn/assets/portal-replacement-item-redirect/t9n/messages.ja.json +1 -1
  1083. package/dist/cdn/assets/portal-replacement-item-redirect/t9n/messages.lt.json +1 -1
  1084. package/dist/cdn/assets/portal-replacement-item-redirect/t9n/messages.nl.json +1 -1
  1085. package/dist/cdn/assets/portal-replacement-item-redirect/t9n/messages.no.json +1 -1
  1086. package/dist/cdn/assets/portal-replacement-item-redirect/t9n/messages.pt-BR.json +1 -1
  1087. package/dist/cdn/assets/portal-replacement-item-redirect/t9n/messages.sk.json +1 -1
  1088. package/dist/cdn/assets/portal-replacement-item-redirect/t9n/messages.sv.json +1 -1
  1089. package/dist/cdn/assets/portal-replacement-item-redirect/t9n/messages.vi.json +1 -1
  1090. package/dist/cdn/assets/portal-replacement-item-redirect/t9n/messages.zh-CN.json +1 -1
  1091. package/dist/cdn/assets/portal-review-related-items/t9n/messages.ar.json +1 -0
  1092. package/dist/cdn/assets/portal-review-related-items/t9n/messages.bg.json +1 -0
  1093. package/dist/cdn/assets/portal-review-related-items/t9n/messages.ca.json +1 -0
  1094. package/dist/cdn/assets/portal-review-related-items/t9n/messages.cs.json +1 -0
  1095. package/dist/cdn/assets/portal-review-related-items/t9n/messages.da.json +1 -0
  1096. package/dist/cdn/assets/portal-review-related-items/t9n/messages.de.json +1 -0
  1097. package/dist/cdn/assets/portal-review-related-items/t9n/messages.el.json +1 -0
  1098. package/dist/cdn/assets/portal-review-related-items/t9n/messages.en.json +1 -0
  1099. package/dist/cdn/assets/portal-review-related-items/t9n/messages.es.json +1 -0
  1100. package/dist/cdn/assets/portal-review-related-items/t9n/messages.et.json +1 -0
  1101. package/dist/cdn/assets/portal-review-related-items/t9n/messages.fi.json +1 -0
  1102. package/dist/cdn/assets/portal-review-related-items/t9n/messages.fr.json +1 -0
  1103. package/dist/cdn/assets/portal-review-related-items/t9n/messages.he.json +1 -0
  1104. package/dist/cdn/assets/portal-review-related-items/t9n/messages.hr.json +1 -0
  1105. package/dist/cdn/assets/portal-review-related-items/t9n/messages.hu.json +1 -0
  1106. package/dist/cdn/assets/portal-review-related-items/t9n/messages.id.json +1 -0
  1107. package/dist/cdn/assets/portal-review-related-items/t9n/messages.it.json +1 -0
  1108. package/dist/cdn/assets/portal-review-related-items/t9n/messages.ja.json +1 -0
  1109. package/dist/cdn/assets/portal-review-related-items/t9n/messages.ko.json +1 -0
  1110. package/dist/cdn/assets/portal-review-related-items/t9n/messages.lt.json +1 -0
  1111. package/dist/cdn/assets/portal-review-related-items/t9n/messages.lv.json +1 -0
  1112. package/dist/cdn/assets/portal-review-related-items/t9n/messages.nl.json +1 -0
  1113. package/dist/cdn/assets/portal-review-related-items/t9n/messages.no.json +1 -0
  1114. package/dist/cdn/assets/portal-review-related-items/t9n/messages.pl.json +1 -0
  1115. package/dist/cdn/assets/portal-review-related-items/t9n/messages.pt-BR.json +1 -0
  1116. package/dist/cdn/assets/portal-review-related-items/t9n/messages.pt-PT.json +1 -0
  1117. package/dist/cdn/assets/portal-review-related-items/t9n/messages.ro.json +1 -0
  1118. package/dist/cdn/assets/portal-review-related-items/t9n/messages.ru.json +1 -0
  1119. package/dist/cdn/assets/portal-review-related-items/t9n/messages.sk.json +1 -0
  1120. package/dist/cdn/assets/portal-review-related-items/t9n/messages.sl.json +1 -0
  1121. package/dist/cdn/assets/portal-review-related-items/t9n/messages.sr.json +1 -0
  1122. package/dist/cdn/assets/portal-review-related-items/t9n/messages.sv.json +1 -0
  1123. package/dist/cdn/assets/portal-review-related-items/t9n/messages.th.json +1 -0
  1124. package/dist/cdn/assets/portal-review-related-items/t9n/messages.tr.json +1 -0
  1125. package/dist/cdn/assets/portal-review-related-items/t9n/messages.uk.json +1 -0
  1126. package/dist/cdn/assets/portal-review-related-items/t9n/messages.vi.json +1 -0
  1127. package/dist/cdn/assets/portal-review-related-items/t9n/messages.zh-CN.json +1 -0
  1128. package/dist/cdn/assets/portal-review-related-items/t9n/messages.zh-TW.json +1 -0
  1129. package/dist/cdn/assets/portal-sublayer-type/t9n/messages.ar.json +1 -0
  1130. package/dist/cdn/assets/portal-sublayer-type/t9n/messages.bg.json +1 -0
  1131. package/dist/cdn/assets/portal-sublayer-type/t9n/messages.bs.json +1 -0
  1132. package/dist/cdn/assets/portal-sublayer-type/t9n/messages.ca.json +1 -0
  1133. package/dist/cdn/assets/portal-sublayer-type/t9n/messages.cs.json +1 -0
  1134. package/dist/cdn/assets/portal-sublayer-type/t9n/messages.da.json +1 -0
  1135. package/dist/cdn/assets/portal-sublayer-type/t9n/messages.de.json +1 -0
  1136. package/dist/cdn/assets/portal-sublayer-type/t9n/messages.el.json +1 -0
  1137. package/dist/cdn/assets/portal-sublayer-type/t9n/messages.en.json +1 -0
  1138. package/dist/cdn/assets/portal-sublayer-type/t9n/messages.es.json +1 -0
  1139. package/dist/cdn/assets/portal-sublayer-type/t9n/messages.et.json +1 -0
  1140. package/dist/cdn/assets/portal-sublayer-type/t9n/messages.fi.json +1 -0
  1141. package/dist/cdn/assets/portal-sublayer-type/t9n/messages.fr.json +1 -0
  1142. package/dist/cdn/assets/portal-sublayer-type/t9n/messages.he.json +1 -0
  1143. package/dist/cdn/assets/portal-sublayer-type/t9n/messages.hr.json +1 -0
  1144. package/dist/cdn/assets/portal-sublayer-type/t9n/messages.hu.json +1 -0
  1145. package/dist/cdn/assets/portal-sublayer-type/t9n/messages.id.json +1 -0
  1146. package/dist/cdn/assets/portal-sublayer-type/t9n/messages.it.json +1 -0
  1147. package/dist/cdn/assets/portal-sublayer-type/t9n/messages.ja.json +1 -0
  1148. package/dist/cdn/assets/portal-sublayer-type/t9n/messages.ko.json +1 -0
  1149. package/dist/cdn/assets/portal-sublayer-type/t9n/messages.lt.json +1 -0
  1150. package/dist/cdn/assets/portal-sublayer-type/t9n/messages.lv.json +1 -0
  1151. package/dist/cdn/assets/portal-sublayer-type/t9n/messages.nl.json +1 -0
  1152. package/dist/cdn/assets/portal-sublayer-type/t9n/messages.no.json +1 -0
  1153. package/dist/cdn/assets/portal-sublayer-type/t9n/messages.pl.json +1 -0
  1154. package/dist/cdn/assets/portal-sublayer-type/t9n/messages.pt-BR.json +1 -0
  1155. package/dist/cdn/assets/portal-sublayer-type/t9n/messages.pt-PT.json +1 -0
  1156. package/dist/cdn/assets/portal-sublayer-type/t9n/messages.ro.json +1 -0
  1157. package/dist/cdn/assets/portal-sublayer-type/t9n/messages.ru.json +1 -0
  1158. package/dist/cdn/assets/portal-sublayer-type/t9n/messages.sk.json +1 -0
  1159. package/dist/cdn/assets/portal-sublayer-type/t9n/messages.sl.json +1 -0
  1160. package/dist/cdn/assets/portal-sublayer-type/t9n/messages.sr.json +1 -0
  1161. package/dist/cdn/assets/portal-sublayer-type/t9n/messages.sv.json +1 -0
  1162. package/dist/cdn/assets/portal-sublayer-type/t9n/messages.th.json +1 -0
  1163. package/dist/cdn/assets/portal-sublayer-type/t9n/messages.tr.json +1 -0
  1164. package/dist/cdn/assets/portal-sublayer-type/t9n/messages.uk.json +1 -0
  1165. package/dist/cdn/assets/portal-sublayer-type/t9n/messages.vi.json +1 -0
  1166. package/dist/cdn/assets/portal-sublayer-type/t9n/messages.zh-CN.json +1 -0
  1167. package/dist/cdn/assets/portal-sublayer-type/t9n/messages.zh-HK.json +1 -0
  1168. package/dist/cdn/assets/portal-sublayer-type/t9n/messages.zh-TW.json +1 -0
  1169. package/dist/cdn/assets/portal-user-popup/t9n/messages.ar.json +1 -0
  1170. package/dist/cdn/assets/portal-user-popup/t9n/messages.bg.json +1 -0
  1171. package/dist/cdn/assets/portal-user-popup/t9n/messages.bs.json +1 -0
  1172. package/dist/cdn/assets/portal-user-popup/t9n/messages.ca.json +1 -0
  1173. package/dist/cdn/assets/portal-user-popup/t9n/messages.cs.json +1 -0
  1174. package/dist/cdn/assets/portal-user-popup/t9n/messages.da.json +1 -0
  1175. package/dist/cdn/assets/portal-user-popup/t9n/messages.de.json +1 -0
  1176. package/dist/cdn/assets/portal-user-popup/t9n/messages.el.json +1 -0
  1177. package/dist/cdn/assets/portal-user-popup/t9n/messages.es.json +1 -0
  1178. package/dist/cdn/assets/portal-user-popup/t9n/messages.et.json +1 -0
  1179. package/dist/cdn/assets/portal-user-popup/t9n/messages.fi.json +1 -0
  1180. package/dist/cdn/assets/portal-user-popup/t9n/messages.fr.json +1 -0
  1181. package/dist/cdn/assets/portal-user-popup/t9n/messages.he.json +1 -0
  1182. package/dist/cdn/assets/portal-user-popup/t9n/messages.hr.json +1 -0
  1183. package/dist/cdn/assets/portal-user-popup/t9n/messages.hu.json +1 -0
  1184. package/dist/cdn/assets/portal-user-popup/t9n/messages.id.json +1 -0
  1185. package/dist/cdn/assets/portal-user-popup/t9n/messages.it.json +1 -0
  1186. package/dist/cdn/assets/portal-user-popup/t9n/messages.ja.json +1 -0
  1187. package/dist/cdn/assets/portal-user-popup/t9n/messages.ko.json +1 -0
  1188. package/dist/cdn/assets/portal-user-popup/t9n/messages.lt.json +1 -0
  1189. package/dist/cdn/assets/portal-user-popup/t9n/messages.lv.json +1 -0
  1190. package/dist/cdn/assets/portal-user-popup/t9n/messages.nl.json +1 -0
  1191. package/dist/cdn/assets/portal-user-popup/t9n/messages.no.json +1 -0
  1192. package/dist/cdn/assets/portal-user-popup/t9n/messages.pl.json +1 -0
  1193. package/dist/cdn/assets/portal-user-popup/t9n/messages.pt-BR.json +1 -0
  1194. package/dist/cdn/assets/portal-user-popup/t9n/messages.pt-PT.json +1 -0
  1195. package/dist/cdn/assets/portal-user-popup/t9n/messages.ro.json +1 -0
  1196. package/dist/cdn/assets/portal-user-popup/t9n/messages.ru.json +1 -0
  1197. package/dist/cdn/assets/portal-user-popup/t9n/messages.sk.json +1 -0
  1198. package/dist/cdn/assets/portal-user-popup/t9n/messages.sl.json +1 -0
  1199. package/dist/cdn/assets/portal-user-popup/t9n/messages.sr.json +1 -0
  1200. package/dist/cdn/assets/portal-user-popup/t9n/messages.sv.json +1 -0
  1201. package/dist/cdn/assets/portal-user-popup/t9n/messages.th.json +1 -0
  1202. package/dist/cdn/assets/portal-user-popup/t9n/messages.tr.json +1 -0
  1203. package/dist/cdn/assets/portal-user-popup/t9n/messages.uk.json +1 -0
  1204. package/dist/cdn/assets/portal-user-popup/t9n/messages.vi.json +1 -0
  1205. package/dist/cdn/assets/portal-user-popup/t9n/messages.zh-CN.json +1 -0
  1206. package/dist/cdn/assets/portal-user-popup/t9n/messages.zh-HK.json +1 -0
  1207. package/dist/cdn/assets/portal-user-popup/t9n/messages.zh-TW.json +1 -0
  1208. package/dist/cdn/index.js +1 -1
  1209. package/dist/cdn/main.css +1 -1
  1210. package/dist/chunks/dom.js +41 -0
  1211. package/dist/chunks/fieldAddDelete.js +2 -2
  1212. package/dist/chunks/functional.js +9 -0
  1213. package/dist/chunks/functionalities.js +6 -4
  1214. package/dist/chunks/groups.js +61 -7
  1215. package/dist/chunks/groups2.js +11 -0
  1216. package/dist/chunks/icons.js +11 -0
  1217. package/dist/chunks/info.js +179 -0
  1218. package/dist/chunks/item.js +33 -123
  1219. package/dist/chunks/item2.js +124 -78
  1220. package/dist/chunks/itemThumbnail.js +193 -0
  1221. package/dist/chunks/items.js +16 -0
  1222. package/dist/chunks/loadClassificationData.js +20 -20
  1223. package/dist/chunks/portal-account-switcher.js +6 -0
  1224. package/dist/chunks/portal-browser-filter-date.js +63 -0
  1225. package/dist/chunks/portal-browser.js +220 -0
  1226. package/dist/chunks/portal-delete-items-review.js +58 -0
  1227. package/dist/chunks/portal-item-badge.js +352 -0
  1228. package/dist/chunks/portal-related-items-list-item.js +6 -0
  1229. package/dist/chunks/portal.js +66 -23
  1230. package/dist/chunks/portal2.js +59 -0
  1231. package/dist/chunks/query.js +159 -0
  1232. package/dist/chunks/request.js +87 -0
  1233. package/dist/chunks/requests.js +92 -44
  1234. package/dist/chunks/services.js +17 -0
  1235. package/dist/chunks/store.js +18 -0
  1236. package/dist/chunks/string.js +42 -0
  1237. package/dist/chunks/ui.js +9 -0
  1238. package/dist/chunks/url.js +17 -0
  1239. package/dist/chunks/user.js +99 -4
  1240. package/dist/chunks/user2.js +13 -107
  1241. package/dist/chunks/users.js +7 -0
  1242. package/dist/chunks/utils.js +33 -0
  1243. package/dist/chunks/utils2.js +88 -0
  1244. package/dist/chunks/utils3.js +664 -0
  1245. package/dist/chunks/verified.js +40 -0
  1246. package/dist/components/arcgis-portal-account-switcher/customElement.d.ts +159 -0
  1247. package/dist/components/arcgis-portal-account-switcher/customElement.js +416 -0
  1248. package/dist/components/arcgis-portal-account-switcher/index.d.ts +1 -0
  1249. package/dist/components/arcgis-portal-account-switcher/index.js +11 -0
  1250. package/dist/components/arcgis-portal-account-switcher/types.d.ts +26 -0
  1251. package/dist/components/arcgis-portal-account-switcher-accounts/customElement.d.ts +144 -0
  1252. package/dist/components/arcgis-portal-account-switcher-accounts/customElement.js +31 -0
  1253. package/dist/components/arcgis-portal-account-switcher-accounts/index.d.ts +1 -0
  1254. package/dist/components/arcgis-portal-account-switcher-accounts/index.js +5 -0
  1255. package/dist/components/arcgis-portal-account-switcher-list/customElement.d.ts +149 -0
  1256. package/dist/components/arcgis-portal-account-switcher-list/customElement.js +100 -0
  1257. package/dist/components/arcgis-portal-account-switcher-list/index.d.ts +1 -0
  1258. package/dist/components/arcgis-portal-account-switcher-list/index.js +6 -0
  1259. package/dist/components/arcgis-portal-account-switcher-signout/customElement.d.ts +146 -0
  1260. package/dist/components/arcgis-portal-account-switcher-signout/customElement.js +29 -0
  1261. package/dist/components/arcgis-portal-account-switcher-signout/index.d.ts +1 -0
  1262. package/dist/components/arcgis-portal-account-switcher-signout/index.js +6 -0
  1263. package/dist/components/arcgis-portal-add-gps-metadata/customElement.d.ts +58 -0
  1264. package/dist/components/arcgis-portal-add-gps-metadata/customElement.js +1330 -0
  1265. package/dist/components/arcgis-portal-add-gps-metadata/index.d.ts +1 -0
  1266. package/dist/components/arcgis-portal-add-gps-metadata/index.js +7 -0
  1267. package/dist/components/arcgis-portal-ai-assistant/agents/portalRouteKeys.d.ts +41 -0
  1268. package/dist/components/arcgis-portal-ai-assistant/agents/types.d.ts +85 -9
  1269. package/dist/components/arcgis-portal-ai-assistant/customElement.d.ts +61 -1
  1270. package/dist/components/arcgis-portal-ai-assistant/customElement.js +2092 -716
  1271. package/dist/components/arcgis-portal-ai-assistant/data/capability-registries/types.d.ts +45 -0
  1272. package/dist/components/arcgis-portal-ai-assistant/index.js +0 -1
  1273. package/dist/components/arcgis-portal-browser/customElement.d.ts +238 -0
  1274. package/dist/components/arcgis-portal-browser/customElement.js +16 -0
  1275. package/dist/components/arcgis-portal-browser/index.d.ts +1 -0
  1276. package/dist/components/arcgis-portal-browser/index.js +6 -0
  1277. package/dist/components/arcgis-portal-browser/utils/store.d.ts +35 -0
  1278. package/dist/components/arcgis-portal-browser/utils/types.d.ts +24 -0
  1279. package/dist/components/arcgis-portal-browser-actions/customElement.d.ts +185 -0
  1280. package/dist/components/arcgis-portal-browser-actions/customElement.js +73 -0
  1281. package/dist/components/arcgis-portal-browser-actions/index.d.ts +1 -0
  1282. package/dist/components/arcgis-portal-browser-actions/index.js +6 -0
  1283. package/dist/components/arcgis-portal-browser-actions/types.d.ts +9 -0
  1284. package/dist/components/arcgis-portal-browser-filter-status/customElement.d.ts +193 -0
  1285. package/dist/components/arcgis-portal-browser-filter-status/customElement.js +56 -0
  1286. package/dist/components/arcgis-portal-browser-filter-status/index.d.ts +1 -0
  1287. package/dist/components/arcgis-portal-browser-filter-status/index.js +5 -0
  1288. package/dist/components/arcgis-portal-browser-pagination/customElement.d.ts +194 -0
  1289. package/dist/components/arcgis-portal-browser-pagination/customElement.js +49 -0
  1290. package/dist/components/arcgis-portal-browser-pagination/index.d.ts +1 -0
  1291. package/dist/components/arcgis-portal-browser-pagination/index.js +2 -0
  1292. package/dist/components/arcgis-portal-browser-search/customElement.d.ts +195 -0
  1293. package/dist/components/arcgis-portal-browser-search/customElement.js +62 -0
  1294. package/dist/components/arcgis-portal-browser-search/index.d.ts +1 -0
  1295. package/dist/components/arcgis-portal-browser-search/index.js +3 -0
  1296. package/dist/components/arcgis-portal-browser-sort/customElement.d.ts +196 -0
  1297. package/dist/components/arcgis-portal-browser-sort/customElement.js +93 -0
  1298. package/dist/components/arcgis-portal-browser-sort/index.d.ts +1 -0
  1299. package/dist/components/arcgis-portal-browser-sort/index.js +9 -0
  1300. package/dist/components/arcgis-portal-browser-sort/utils.d.ts +3 -0
  1301. package/dist/components/arcgis-portal-browser-top-bar/customElement.d.ts +190 -0
  1302. package/dist/components/arcgis-portal-browser-top-bar/customElement.js +50 -0
  1303. package/dist/components/arcgis-portal-browser-top-bar/index.d.ts +1 -0
  1304. package/dist/components/arcgis-portal-browser-top-bar/index.js +3 -0
  1305. package/dist/components/arcgis-portal-browser-view/customElement.d.ts +21 -0
  1306. package/dist/components/arcgis-portal-browser-view/customElement.js +30 -0
  1307. package/dist/components/arcgis-portal-browser-view/index.d.ts +1 -0
  1308. package/dist/components/arcgis-portal-browser-view/index.js +5 -0
  1309. package/dist/components/arcgis-portal-classification-config/customElement.js +74 -74
  1310. package/dist/components/arcgis-portal-classification-favorite/customElement.js +1 -1
  1311. package/dist/components/arcgis-portal-delete-items/customElement.d.ts +214 -0
  1312. package/dist/components/arcgis-portal-delete-items/customElement.js +586 -0
  1313. package/dist/components/arcgis-portal-delete-items/index.d.ts +1 -0
  1314. package/dist/components/arcgis-portal-delete-items/index.js +17 -0
  1315. package/dist/components/arcgis-portal-delete-items/services.d.ts +7 -0
  1316. package/dist/components/arcgis-portal-delete-items/types.d.ts +19 -0
  1317. package/dist/components/arcgis-portal-delete-items-review/customElement.d.ts +40 -0
  1318. package/dist/components/arcgis-portal-delete-items-review/customElement.js +12 -0
  1319. package/dist/components/arcgis-portal-delete-items-review/index.d.ts +1 -0
  1320. package/dist/components/arcgis-portal-delete-items-review/index.js +3 -0
  1321. package/dist/components/arcgis-portal-entity-picker/customElement.d.ts +87 -0
  1322. package/dist/components/arcgis-portal-entity-picker/customElement.js +247 -0
  1323. package/dist/components/arcgis-portal-entity-picker/index.d.ts +1 -0
  1324. package/dist/components/arcgis-portal-entity-picker/index.js +11 -0
  1325. package/dist/components/arcgis-portal-extent-picker/customElement.js +285 -243
  1326. package/dist/components/arcgis-portal-extent-picker/index.js +3 -0
  1327. package/dist/components/arcgis-portal-extent-picker-coord-field/customElement.js +8 -8
  1328. package/dist/components/arcgis-portal-field-delete/customElement.js +217 -126
  1329. package/dist/components/arcgis-portal-group-badges/customElement.d.ts +0 -1
  1330. package/dist/components/arcgis-portal-group-badges/customElement.js +22 -21
  1331. package/dist/components/arcgis-portal-group-browser/customElement.d.ts +492 -0
  1332. package/dist/components/arcgis-portal-group-browser/customElement.js +805 -0
  1333. package/dist/components/arcgis-portal-group-browser/index.d.ts +1 -0
  1334. package/dist/components/arcgis-portal-group-browser/index.js +6 -0
  1335. package/dist/components/arcgis-portal-group-browser/types.d.ts +225 -0
  1336. package/dist/components/arcgis-portal-group-browser-card/customElement.d.ts +30 -0
  1337. package/dist/components/arcgis-portal-group-browser-card/customElement.js +41 -0
  1338. package/dist/components/arcgis-portal-group-browser-card/index.d.ts +1 -0
  1339. package/dist/components/arcgis-portal-group-browser-card/index.js +2 -0
  1340. package/dist/components/arcgis-portal-group-browser-preview/customElement.d.ts +227 -0
  1341. package/dist/components/arcgis-portal-group-browser-preview/customElement.js +150 -0
  1342. package/dist/components/arcgis-portal-group-browser-preview/index.d.ts +1 -0
  1343. package/dist/components/arcgis-portal-group-browser-preview/index.js +12 -0
  1344. package/dist/components/arcgis-portal-group-browser-preview-card/customElement.d.ts +82 -0
  1345. package/dist/components/arcgis-portal-group-browser-preview-card/customElement.js +93 -0
  1346. package/dist/components/arcgis-portal-group-browser-preview-card/index.d.ts +1 -0
  1347. package/dist/components/arcgis-portal-group-browser-preview-card/index.js +6 -0
  1348. package/dist/components/arcgis-portal-group-card/customElement.d.ts +30 -30
  1349. package/dist/components/arcgis-portal-group-card/customElement.js +110 -100
  1350. package/dist/components/arcgis-portal-group-card/index.js +3 -3
  1351. package/dist/components/arcgis-portal-group-card/types.d.ts +8 -0
  1352. package/dist/components/arcgis-portal-group-picker/customElement.d.ts +20 -0
  1353. package/dist/components/arcgis-portal-group-picker/customElement.js +15 -0
  1354. package/dist/components/arcgis-portal-group-picker/index.d.ts +1 -0
  1355. package/dist/components/arcgis-portal-group-picker/index.js +2 -0
  1356. package/dist/components/arcgis-portal-group-thumbnail/customElement.js +1 -1
  1357. package/dist/components/arcgis-portal-info-banner/customElement.d.ts +14 -0
  1358. package/dist/components/arcgis-portal-info-banner/customElement.js +31 -0
  1359. package/dist/components/arcgis-portal-info-banner/index.d.ts +1 -0
  1360. package/dist/components/arcgis-portal-info-banner/index.js +1 -0
  1361. package/dist/components/arcgis-portal-item-actions/customElement.d.ts +74 -0
  1362. package/dist/components/arcgis-portal-item-actions/customElement.js +89 -0
  1363. package/dist/components/arcgis-portal-item-actions/index.d.ts +1 -0
  1364. package/dist/components/arcgis-portal-item-actions/index.js +5 -0
  1365. package/dist/components/arcgis-portal-item-badge/customElement.d.ts +260 -0
  1366. package/dist/components/arcgis-portal-item-badge/customElement.js +9 -0
  1367. package/dist/components/arcgis-portal-item-badge/index.d.ts +1 -0
  1368. package/dist/components/arcgis-portal-item-badge/index.js +5 -0
  1369. package/dist/components/arcgis-portal-item-badges/customElement.d.ts +48 -0
  1370. package/dist/components/arcgis-portal-item-badges/customElement.js +35 -0
  1371. package/dist/components/arcgis-portal-item-badges/index.d.ts +1 -0
  1372. package/dist/components/arcgis-portal-item-badges/index.js +2 -0
  1373. package/dist/components/arcgis-portal-item-badges/types.d.ts +1 -0
  1374. package/dist/components/arcgis-portal-item-card/customElement.d.ts +215 -0
  1375. package/dist/components/arcgis-portal-item-card/customElement.js +183 -0
  1376. package/dist/components/arcgis-portal-item-card/index.d.ts +1 -0
  1377. package/dist/components/arcgis-portal-item-card/index.js +11 -0
  1378. package/dist/components/arcgis-portal-item-favorite/customElement.d.ts +36 -0
  1379. package/dist/components/arcgis-portal-item-favorite/customElement.js +66 -0
  1380. package/dist/components/arcgis-portal-item-favorite/index.d.ts +1 -0
  1381. package/dist/components/arcgis-portal-item-favorite/index.js +3 -0
  1382. package/dist/components/arcgis-portal-item-favorite/utils.d.ts +4 -0
  1383. package/dist/components/arcgis-portal-item-picker/customElement.d.ts +20 -0
  1384. package/dist/components/arcgis-portal-item-picker/customElement.js +15 -0
  1385. package/dist/components/arcgis-portal-item-picker/index.d.ts +1 -0
  1386. package/dist/components/arcgis-portal-item-picker/index.js +2 -0
  1387. package/dist/components/arcgis-portal-item-thumbnail/customElement.d.ts +43 -0
  1388. package/dist/components/arcgis-portal-item-thumbnail/customElement.js +309 -0
  1389. package/dist/components/arcgis-portal-item-thumbnail/index.d.ts +1 -0
  1390. package/dist/components/arcgis-portal-item-thumbnail/index.js +1 -0
  1391. package/dist/components/arcgis-portal-item-type/customElement.d.ts +1 -1
  1392. package/dist/components/arcgis-portal-item-type/customElement.js +22 -659
  1393. package/dist/components/arcgis-portal-mentionable-text-area/customElement.js +72 -96
  1394. package/dist/components/arcgis-portal-navigation/customElement.d.ts +560 -0
  1395. package/dist/components/arcgis-portal-navigation/customElement.js +1911 -0
  1396. package/dist/components/arcgis-portal-navigation/index.d.ts +1 -0
  1397. package/dist/components/arcgis-portal-navigation/index.js +31 -0
  1398. package/dist/components/arcgis-portal-navigation/types.d.ts +44 -0
  1399. package/dist/components/arcgis-portal-replacement-item-redirect/customElement.js +54 -422
  1400. package/dist/components/arcgis-portal-review-related-items/customElement.d.ts +27 -0
  1401. package/dist/components/arcgis-portal-review-related-items/customElement.js +30 -0
  1402. package/dist/components/arcgis-portal-review-related-items/index.d.ts +1 -0
  1403. package/dist/components/arcgis-portal-review-related-items/index.js +2 -0
  1404. package/dist/components/arcgis-portal-sublayer-type/customElement.d.ts +76 -0
  1405. package/dist/components/arcgis-portal-sublayer-type/customElement.js +121 -0
  1406. package/dist/components/arcgis-portal-sublayer-type/index.d.ts +1 -0
  1407. package/dist/components/arcgis-portal-sublayer-type/index.js +2 -0
  1408. package/dist/components/arcgis-portal-sublayer-type/utils.d.ts +30 -0
  1409. package/dist/components/arcgis-portal-user-avatar/customElement.d.ts +9 -0
  1410. package/dist/components/arcgis-portal-user-avatar/customElement.js +26 -37
  1411. package/dist/components/arcgis-portal-user-picker/customElement.d.ts +20 -0
  1412. package/dist/components/arcgis-portal-user-picker/customElement.js +15 -0
  1413. package/dist/components/arcgis-portal-user-picker/index.d.ts +1 -0
  1414. package/dist/components/arcgis-portal-user-picker/index.js +2 -0
  1415. package/dist/components/arcgis-portal-user-popup/customElement.d.ts +5 -2
  1416. package/dist/components/arcgis-portal-user-popup/customElement.js +84 -142
  1417. package/dist/components/portal-browser/components/portal-browser-filter/customElement.js +14 -0
  1418. package/dist/components/portal-browser/components/portal-browser-filter/index.js +3 -0
  1419. package/dist/components/portal-browser/components/portal-browser-filter-date/customElement.js +9 -0
  1420. package/dist/components/portal-browser/components/portal-browser-filter-date/index.js +4 -0
  1421. package/dist/components/portal-browser/components/portal-browser-filters/customElement.js +11 -0
  1422. package/dist/components/portal-browser/components/portal-browser-filters/index.js +2 -0
  1423. package/dist/components/portal-group-browser-filters/customElement.js +132 -0
  1424. package/dist/components/portal-group-browser-filters/index.js +5 -0
  1425. package/dist/components/portal-group-browser-pagination/customElement.js +13 -0
  1426. package/dist/components/portal-group-browser-pagination/index.js +2 -0
  1427. package/dist/components/portal-group-browser-sort/customElement.js +16 -0
  1428. package/dist/components/portal-group-browser-sort/index.js +2 -0
  1429. package/dist/components/portal-related-items-list-item/customElement.js +20 -0
  1430. package/dist/components/portal-related-items-list-item/index.js +5 -0
  1431. package/dist/docs/api.json +1 -1
  1432. package/dist/docs/docs.json +1 -1
  1433. package/dist/docs/vscode.css-custom-data.json +1 -1
  1434. package/dist/docs/vscode.html-custom-data.json +1 -1
  1435. package/dist/docs/web-types.json +1 -1
  1436. package/dist/index.d.ts +288 -0
  1437. package/dist/loader.js +38 -5
  1438. package/dist/services/thumbnail/ags.d.ts +5 -0
  1439. package/dist/types/app-switcher.d.ts +71 -0
  1440. package/dist/types/geometry.d.ts +8 -0
  1441. package/dist/types/group.d.ts +14 -16
  1442. package/dist/types/item.d.ts +80 -1
  1443. package/dist/types/lumina.d.ts +229 -2
  1444. package/dist/types/portal.d.ts +6 -0
  1445. package/dist/types/portalEntityPicker.d.ts +18 -0
  1446. package/dist/types/preact.d.ts +262 -2
  1447. package/dist/types/react.d.ts +295 -2
  1448. package/dist/types/search.d.ts +30 -0
  1449. package/dist/types/services.d.ts +9 -0
  1450. package/dist/types/stencil.d.ts +231 -4
  1451. package/dist/types/user.d.ts +16 -3
  1452. package/package.json +13 -12
  1453. package/dist/cdn/2RGMWFHB.js +0 -2
  1454. package/dist/cdn/35SKVD6F.js +0 -2
  1455. package/dist/cdn/3KS5IDT2.js +0 -2
  1456. package/dist/cdn/3MQIRMUM.js +0 -77
  1457. package/dist/cdn/3PAHY5KA.js +0 -98
  1458. package/dist/cdn/47NPIL2S.js +0 -2
  1459. package/dist/cdn/6AGZRMJC.js +0 -2
  1460. package/dist/cdn/6W2IHKCA.js +0 -2
  1461. package/dist/cdn/72N3KAXN.js +0 -2
  1462. package/dist/cdn/74XFARCV.js +0 -109
  1463. package/dist/cdn/7WZHZP6U.js +0 -43
  1464. package/dist/cdn/ANPXRYLV.js +0 -5
  1465. package/dist/cdn/B7633S2A.js +0 -422
  1466. package/dist/cdn/CMPGO4XS.js +0 -2
  1467. package/dist/cdn/DFTUMKSN.js +0 -3
  1468. package/dist/cdn/DKBTJJMW.js +0 -122
  1469. package/dist/cdn/DXCPWJU4.js +0 -3
  1470. package/dist/cdn/EETBNQU2.js +0 -2
  1471. package/dist/cdn/EHRAFAEA.js +0 -65
  1472. package/dist/cdn/EKO6SVAF.js +0 -2
  1473. package/dist/cdn/EVDOPN3G.js +0 -54
  1474. package/dist/cdn/F6V7MLPY.js +0 -36
  1475. package/dist/cdn/FI45QCN2.js +0 -2
  1476. package/dist/cdn/GAHILDQF.js +0 -45
  1477. package/dist/cdn/GEIZTD7F.js +0 -2
  1478. package/dist/cdn/GQFWFZXP.js +0 -69
  1479. package/dist/cdn/HGSK6OFA.js +0 -2
  1480. package/dist/cdn/HJEFXVHY.js +0 -616
  1481. package/dist/cdn/HMBSJR37.js +0 -2
  1482. package/dist/cdn/KT7PE6UE.js +0 -2
  1483. package/dist/cdn/KY7Q7DH3.js +0 -2
  1484. package/dist/cdn/KZWW4BWJ.js +0 -2
  1485. package/dist/cdn/MLTQECPL.js +0 -2
  1486. package/dist/cdn/O3KBWLGU.js +0 -2
  1487. package/dist/cdn/OKRYML2G.js +0 -2
  1488. package/dist/cdn/PDL3DPMG.js +0 -2
  1489. package/dist/cdn/RR4BIAPA.js +0 -56
  1490. package/dist/cdn/SXZRHHXC.js +0 -2
  1491. package/dist/cdn/SYJSVUUR.js +0 -31
  1492. package/dist/cdn/TBYTYYJJ.js +0 -136
  1493. package/dist/cdn/V2EOXGK2.js +0 -2
  1494. package/dist/cdn/VRXKORTR.js +0 -146
  1495. package/dist/cdn/VXCB2YBR.js +0 -3
  1496. package/dist/cdn/WJ2NMHDE.js +0 -4
  1497. package/dist/cdn/WSNLUGEP.js +0 -2
  1498. package/dist/cdn/YECI7XG3.js +0 -2
  1499. package/dist/cdn/YIMNOUTF.js +0 -2
  1500. package/dist/cdn/YL7PGYWC.js +0 -5
  1501. package/dist/cdn/ZDLFZJBT.js +0 -2
@@ -1,268 +1,254 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import { c as ut } from "../../chunks/runtime.js";
3
- import { LitElement as lt, createEvent as ct } from "@arcgis/lumina";
4
- import { css as mt, render as dt, html as G } from "lit";
5
- import { createRef as M, ref as A } from "lit/directives/ref.js";
6
- import { u as pt } from "../../chunks/useT9n.js";
7
- import { a as T, t as gt } from "../../chunks/functionalities.js";
8
- import { NodeInterrupt as K, Annotation as f, StateGraph as C, START as P, END as h } from "@langchain/langgraph/web";
9
- import { sendTraceMessage as g, invokeStructuredPrompt as b, sendUXSuggestion as E, createAgentRuntimeStateWithSharedState as N, createChatModel as D } from "@arcgis/ai-components/utils/index.js";
10
- import o from "zod";
11
- import { a as ft, c as ht, q as yt, s as wt, g as bt } from "../../chunks/item2.js";
12
- import It from "@arcgis/core/identity/IdentityManager.js";
13
- import j from "@arcgis/core/request.js";
14
- import { ChatPromptTemplate as z } from "@langchain/core/prompts";
15
- import { createAgent as U } from "langchain";
16
- import { tool as W } from "@langchain/core/tools";
17
- import { Annotation as xt } from "@langchain/langgraph";
18
- import { c as vt, d as St, i as Gt, b as Mt, g as At } from "../../chunks/groups.js";
19
- const Y = (e) => {
20
- const { portal: t, user: s } = e ?? {};
21
- return !!e && !!t && !!s;
2
+ import { c as Ve } from "../../chunks/runtime.js";
3
+ import { LitElement as Be, createEvent as Qe } from "@arcgis/lumina";
4
+ import { css as We, render as Je, html as I } from "lit";
5
+ import { createRef as E, ref as z } from "lit/directives/ref.js";
6
+ import { u as _e } from "../../chunks/useT9n.js";
7
+ import { NodeInterrupt as _, Annotation as h, StateGraph as P, START as G, END as w } from "@langchain/langgraph/web";
8
+ import { invokeStructuredPrompt as b } from "@arcgis/ai-components/orchestrator/models/prompts.js";
9
+ import { sendTraceMessage as p, sendUXSuggestion as Y } from "@arcgis/ai-components/orchestrator/signals.js";
10
+ import i from "zod";
11
+ import { a as Ye, c as He, q as Xe } from "../../chunks/groups.js";
12
+ import { createAgentRuntimeState as q } from "@arcgis/ai-components/orchestrator/state/runtime.js";
13
+ import te from "@arcgis/core/identity/IdentityManager.js";
14
+ import ae from "@arcgis/core/request.js";
15
+ import { a as F, t as Ze, b as W } from "../../chunks/functionalities.js";
16
+ import { createChatModel as H } from "@arcgis/ai-components/orchestrator/models/chatModel.js";
17
+ import { ChatPromptTemplate as X } from "@langchain/core/prompts";
18
+ import { tool as Te } from "@langchain/core/tools";
19
+ import { s as et, a as tt } from "../../chunks/item.js";
20
+ import { g as at, e as nt, i as ot, c as rt, a as it } from "../../chunks/groups2.js";
21
+ import { getEmbeddings as st } from "@arcgis/ai-components/orchestrator/embeddings/getEmbeddings.js";
22
+ import ct from "@arcgis/core/portal/Portal.js";
23
+ const Ae = (t) => {
24
+ const { portal: e, user: a } = t ?? {};
25
+ return !!t && !!e && !!a;
22
26
  };
23
- function I(e) {
24
- if (!Y(e))
27
+ function x(t) {
28
+ if (!Ae(t))
25
29
  throw new Error("Invalid context: PortalAssistantContext with portal and user is required.");
26
30
  }
27
- const Tt = (e) => e.map((t) => `"${t}"`).join(", "), Ct = o.object({
28
- successMessage: o.string().default("")
29
- }), O = "portal-group-creation", V = "approveAddMembers", Pt = async (e, t) => {
30
- if (e.intentParams.intent !== "addMembers")
31
+ const lt = `
32
+ Write a concise, friendly success message for adding members to a group.
33
+
34
+ Rules:
35
+ - Keep it to 1-2 short sentences.
36
+ - Use plain text only.
37
+ - If there is no notAddedMembers, confirm that all requested members were added successfully.
38
+ - If there are notAddedMembers, acknowledge that some members could not be added and list the added and not added members separately then mention why based on the context
39
+ - Make sure to bold the usernames
40
+
41
+ Added members:
42
+ {addedMembers}
43
+
44
+ Not added members:
45
+ {notAddedMembers}
46
+ `, ut = (t) => t.map((e) => `"${e}"`).join(", "), dt = i.object({
47
+ successMessage: i.string().default("")
48
+ }), ne = "portal-group-creation", oe = "approveAddMembers", pt = async (t, e) => {
49
+ if (t.intentParams.intent !== "addMembers")
31
50
  return {
32
51
  status: "success",
33
52
  outputMessage: "Use @mention usernames for the members you want to add."
34
53
  };
35
- const s = e.agentExecutionContext.sharedState.createdGroupId?.value;
36
- if (!s)
54
+ const a = t.agentExecutionContext.sharedState.createdGroupId?.value;
55
+ if (!a)
37
56
  return {
38
57
  status: "success",
39
58
  outputMessage: "Create a group first, then add members using @mention usernames."
40
59
  };
41
- const a = e.intentParams.memberInfo.memberIdentifiers.map((d) => d.trim()).filter(Boolean);
42
- if (!a.length)
60
+ const n = t.intentParams.memberInfo.memberIdentifiers.map((g) => g.trim()).filter(Boolean);
61
+ if (!n.length)
43
62
  return {
44
63
  status: "success",
45
64
  outputMessage: "Use @mention usernames for the members you want to add."
46
65
  };
47
- const i = `The following member(s) will be added to the newly created group:
66
+ const r = `The following member(s) will be added to the newly created group:
48
67
 
49
- ${a.map((d) => `- **@${d}**`).join(`
68
+ ${n.map((g) => `- **@${g}**`).join(`
50
69
  `)}
51
70
 
52
- Do you want to continue?`, { hitlResponse: l } = t?.configurable ?? {};
53
- if (l?.agentId !== O || l.id !== V) {
54
- const d = {
55
- agentId: O,
56
- id: V,
71
+ Do you want to continue?`, { hitlResponse: s } = e?.configurable ?? {};
72
+ if (s?.agentId !== ne || s.id !== oe) {
73
+ const g = {
74
+ agentId: ne,
75
+ id: oe,
57
76
  kind: "booleanChoice",
58
- message: i,
77
+ message: r,
59
78
  metadata: {
60
79
  action: "addMembers",
61
- groupId: s,
62
- members: [...a]
80
+ groupId: a,
81
+ members: [...n]
63
82
  }
64
83
  };
65
- throw new K(d);
84
+ throw new _(g);
66
85
  }
67
- if (l.payload !== !0)
86
+ if (s.payload !== !0)
68
87
  return {
69
88
  status: "success",
70
89
  outputMessage: "Okay, I cancelled adding members to the group."
71
90
  };
72
- await g(
73
- { text: `Adding members ${Tt(a)}...`, agentName: "group-creation" },
74
- t
91
+ await p(
92
+ { text: `Adding members ${ut(n)}...`, agentName: "group-creation" },
93
+ e
75
94
  );
76
- const u = t?.configurable?.context;
77
- I(u);
78
- const { result: c, error: n } = await ft(u.portal, s, a);
79
- if (n || !c)
95
+ const c = e?.configurable?.context;
96
+ x(c);
97
+ const { result: l, error: d } = await Ye(c.portal, a, n);
98
+ if (d || !l)
80
99
  return {
81
100
  status: "success",
82
101
  outputMessage: "I could not add members to that group. Please confirm group access and user accounts, then try again."
83
102
  };
84
- const { addedUsernames: m, notAddedUsers: p } = c;
103
+ const { addedUsernames: u, notAddedUsers: m } = l;
85
104
  try {
86
- const y = (await b({
87
- promptText: Nt,
88
- schema: Ct,
105
+ const f = (await b({
106
+ promptText: lt,
107
+ schema: dt,
89
108
  modelTier: "fast",
90
109
  inputVariables: {
91
- addedMembers: m.join(", "),
110
+ addedMembers: u.join(", "),
92
111
  notAddedMembers: JSON.stringify(
93
- p.map((v) => ({ username: v.username, reason: v.error.message }))
112
+ m.map((y) => ({ username: y.username, reason: y.error.message }))
94
113
  )
95
114
  }
96
115
  })).successMessage;
97
- if (y)
98
- return { status: "success", outputMessage: y };
99
- } catch (d) {
100
- console.error("Error generating add-members success message:", d);
116
+ if (f)
117
+ return { status: "success", outputMessage: f };
118
+ } catch (g) {
119
+ console.error("Error generating add-members success message:", g);
101
120
  }
102
121
  return {};
103
- }, Nt = `
104
- Write a concise, friendly success message for adding members to a group.
122
+ }, mt = `
123
+ Write a concise, friendly success message after creating a portal group.
124
+
125
+ Rules:
126
+ - Mention that the group was created successfully.
127
+ - Mention that the user can add members by using @mention usernames.
128
+ - Keep it to 1-2 short sentences.
129
+ - Make sure to bold the group title in the message.
130
+
131
+ Group title:
132
+ {groupTitle}
133
+ `, gt = `
134
+ Write a concise, friendly failure message after an attempt to create a portal group.
105
135
 
106
136
  Rules:
107
137
  - Keep it to 1-2 short sentences.
108
138
  - Use plain text only.
109
- - If there is no notAddedMembers, confirm that all requested members were added successfully.
110
- - If there are notAddedMembers, acknowledge that some members could not be added and list the added and not added members separately then mention why based on the context
111
- - Make sure to bold the usernames
139
+ - Mention that group creation failed.
140
+ - Include the failure reason in user-friendly language.
141
+ - End with a clear next step the user can try.
112
142
 
113
- Added members:
114
- {addedMembers}
143
+ Group title:
144
+ {groupTitle}
115
145
 
116
- Not added members:
117
- {notAddedMembers}
118
- `, B = "portal-group-creation", Q = "approveCreateGroup", qt = o.object({
119
- successMessage: o.string().default("")
120
- }), $t = o.object({
121
- failureMessage: o.string().default("")
122
- }), kt = async (e, t) => {
123
- if (e.intentParams.intent !== "create")
146
+ Failure reason:
147
+ {failureReason}
148
+ `, re = "portal-group-creation", ie = "approveCreateGroup", ht = i.object({
149
+ successMessage: i.string().default("")
150
+ }), ft = i.object({
151
+ failureMessage: i.string().default("")
152
+ }), yt = async (t, e) => {
153
+ if (t.intentParams.intent !== "create")
124
154
  return {
125
155
  status: "success",
126
156
  outputMessage: "Tell me the group title you want to use."
127
157
  };
128
- const s = e.intentParams.title.trim();
129
- if (!s)
158
+ const a = t.intentParams.title.trim();
159
+ if (!a)
130
160
  return {
131
161
  status: "success",
132
162
  outputMessage: "What title would you like for the new group?"
133
163
  };
134
- const a = `A group with the title **${s}** will be created. Do you want to continue?`, { hitlResponse: r } = t?.configurable;
135
- if (r?.agentId !== B || r.id !== Q) {
136
- const n = {
137
- agentId: B,
138
- id: Q,
164
+ const n = `A group with the title **${a}** will be created. Do you want to continue?`, { hitlResponse: o } = e?.configurable;
165
+ if (o?.agentId !== re || o.id !== ie) {
166
+ const d = {
167
+ agentId: re,
168
+ id: ie,
139
169
  kind: "booleanChoice",
140
- message: a,
170
+ message: n,
141
171
  metadata: {
142
172
  action: "createGroup",
143
- title: s,
173
+ title: a,
144
174
  access: "private"
145
175
  }
146
176
  };
147
- throw new K(n);
177
+ throw new _(d);
148
178
  }
149
- if (r.payload !== !0)
179
+ if (o.payload !== !0)
150
180
  return {
151
181
  status: "success",
152
- outputMessage: `Okay, I cancelled creating **${s}**.`
182
+ outputMessage: `Okay, I cancelled creating **${a}**.`
153
183
  };
154
- await g({ text: `Creating group "${s}"...`, agentName: "group-creation" }, t);
155
- const i = t?.configurable?.context;
156
- I(i);
157
- const { result: l, error: u } = await ht(i.portal, {
158
- title: s,
184
+ await p({ text: `Creating group "${a}"...`, agentName: "group-creation" }, e);
185
+ const r = e?.configurable?.context;
186
+ x(r);
187
+ const { result: s, error: c } = await He(r.portal, {
188
+ title: a,
159
189
  access: "private"
160
190
  });
161
- if (u || !l) {
162
- const n = u?.message?.trim() || "No additional details were provided.";
191
+ if (c || !s) {
192
+ const d = c?.message?.trim() || "No additional details were provided.";
163
193
  try {
164
- const p = (await b({
165
- promptText: Dt,
166
- schema: $t,
194
+ const m = (await b({
195
+ promptText: gt,
196
+ schema: ft,
167
197
  modelTier: "fast",
168
198
  inputVariables: {
169
- groupTitle: s,
170
- failureReason: n
199
+ groupTitle: a,
200
+ failureReason: d
171
201
  }
172
202
  })).failureMessage.trim();
173
- if (p)
203
+ if (m)
174
204
  return {
175
205
  status: "success",
176
- outputMessage: p
206
+ outputMessage: m
177
207
  };
178
- } catch (m) {
179
- console.error("Error generating create-group failure message:", m);
208
+ } catch (u) {
209
+ console.error("Error generating create-group failure message:", u);
180
210
  }
181
211
  return {
182
212
  status: "success",
183
213
  outputMessage: "I could not create that group. Please confirm your permissions and try again with the group title."
184
214
  };
185
215
  }
186
- const c = l.id;
216
+ const l = s.id;
187
217
  try {
188
- const m = (await b({
189
- promptText: Et,
190
- schema: qt,
218
+ const u = (await b({
219
+ promptText: mt,
220
+ schema: ht,
191
221
  modelTier: "fast",
192
222
  inputVariables: {
193
- groupTitle: s
223
+ groupTitle: a
194
224
  }
195
225
  })).successMessage.trim();
196
- if (m)
226
+ if (u)
197
227
  return {
198
228
  status: "success",
199
- outputMessage: m,
200
- sharedStatePatch: { createdGroupId: { value: c } },
201
- createdGroupId: c
229
+ outputMessage: u,
230
+ sharedStatePatch: { createdGroupId: { value: l } },
231
+ createdGroupId: l
202
232
  };
203
- } catch (n) {
204
- console.error("Error generating create-group success message:", n);
233
+ } catch (d) {
234
+ console.error("Error generating create-group success message:", d);
205
235
  }
206
236
  return {};
207
- }, Et = `
208
- Write a concise, friendly success message after creating a portal group.
209
-
210
- Rules:
211
- - Mention that the group was created successfully.
212
- - Mention that the user can add members by using @mention usernames.
213
- - Keep it to 1-2 short sentences.
214
- - Make sure to bold the group title in the message.
215
-
216
- Group title:
217
- {groupTitle}
218
- `, Dt = `
219
- Write a concise, friendly failure message after an attempt to create a portal group.
220
-
221
- Rules:
222
- - Keep it to 1-2 short sentences.
223
- - Use plain text only.
224
- - Mention that group creation failed.
225
- - Include the failure reason in user-friendly language.
226
- - End with a clear next step the user can try.
227
-
228
- Group title:
229
- {groupTitle}
230
-
231
- Failure reason:
232
- {failureReason}
233
- `, x = (e) => {
234
- for (let t = e.length - 1; t >= 0; t -= 1) {
235
- const s = e[t];
236
- if (s.type !== "human")
237
+ }, v = (t) => {
238
+ for (let e = t.length - 1; e >= 0; e -= 1) {
239
+ const a = t[e];
240
+ if (a.type !== "human")
237
241
  continue;
238
- const a = s.content;
239
- if (typeof a == "string")
240
- return a;
241
- if (Array.isArray(a))
242
- return a.map(
243
- (r) => typeof r == "string" ? r : "text" in r && typeof r.text == "string" ? r.text : ""
242
+ const n = a.content;
243
+ if (typeof n == "string")
244
+ return n;
245
+ if (Array.isArray(n))
246
+ return n.map(
247
+ (o) => typeof o == "string" ? o : "text" in o && typeof o.text == "string" ? o.text : ""
244
248
  ).join(" ").trim();
245
249
  }
246
250
  return "";
247
- }, zt = o.object({
248
- intent: o.enum(["clarify", "create", "addMembers"]).default("clarify"),
249
- title: o.string().default(""),
250
- memberIdentifiers: o.array(o.string()).default([]),
251
- clarifyMessage: o.string().default("")
252
- }), Ut = async (e, t) => {
253
- await g({ text: "Thinking about groups...", agentName: "group-creation" }, t);
254
- const s = x(e.agentExecutionContext.messages).trim(), a = await b({
255
- promptText: Rt,
256
- schema: zt,
257
- modelTier: "default",
258
- inputVariables: { userMessage: s }
259
- }), r = a.title.trim(), i = a.memberIdentifiers.filter(Boolean), l = a.clarifyMessage.trim(), u = a.intent === "create" && !!r, c = a.intent === "addMembers" && i.length > 0;
260
- return {
261
- intentParams: u ? { intent: "create", title: r } : c ? { intent: "addMembers", memberInfo: { memberIdentifiers: i } } : { intent: "clarify" },
262
- status: "success",
263
- outputMessage: !u && !c ? l : ""
264
- };
265
- }, Rt = `
251
+ }, wt = `
266
252
  You classify whether a user is asking to create a new ArcGIS Portal group or add members to an existing group.
267
253
 
268
254
  Rules:
@@ -288,326 +274,1064 @@ Examples:
288
274
 
289
275
  User message:
290
276
  {userMessage}
291
- `, Ft = o.discriminatedUnion("destinationType", [
292
- o.object({
293
- destinationType: o.literal("portal-content")
294
- }),
295
- o.object({
296
- destinationType: o.literal("portal-groups")
297
- }),
298
- o.object({
299
- destinationType: o.literal("portal-item"),
300
- itemId: o.string().trim().min(1)
301
- }),
302
- o.object({
303
- destinationType: o.literal("portal-group"),
304
- groupId: o.string().trim().min(1)
305
- })
306
- ]), _ = "portal-navigation", R = async (e, t) => {
307
- const s = t?.configurable?.context;
308
- !Y(s) || !s.navigationTargetMap?.[e.destinationType] || await E({ type: _, data: { ...e } }, t);
309
- }, jt = async (e, t) => {
310
- const s = e.createdGroupId ?? e.agentExecutionContext.sharedState.createdGroupId?.value;
311
- return s ? (await g({ text: "Preparing navigation...", agentName: "group-creation" }, t), await R({ destinationType: "portal-group", groupId: s }, t), {}) : {};
312
- }, L = (e, t) => t ?? e, H = f.Root({
313
- ...N(),
277
+ `, bt = i.object({
278
+ intent: i.enum(["clarify", "create", "addMembers"]).default("clarify"),
279
+ title: i.string().default(""),
280
+ memberIdentifiers: i.array(i.string()).default([]),
281
+ clarifyMessage: i.string().default("")
282
+ }), vt = async (t, e) => {
283
+ await p({ text: "Thinking about groups...", agentName: "group-creation" }, e);
284
+ const a = v(t.agentExecutionContext.messages).trim(), n = await b({
285
+ promptText: wt,
286
+ schema: bt,
287
+ modelTier: "default",
288
+ inputVariables: { userMessage: a }
289
+ }), o = n.title.trim(), r = n.memberIdentifiers.filter(Boolean), s = n.clarifyMessage.trim(), c = n.intent === "create" && !!o, l = n.intent === "addMembers" && r.length > 0;
290
+ return {
291
+ intentParams: c ? { intent: "create", title: o } : l ? { intent: "addMembers", memberInfo: { memberIdentifiers: r } } : { intent: "clarify" },
292
+ status: "success",
293
+ outputMessage: !c && !l ? s : ""
294
+ };
295
+ }, It = [
296
+ "general",
297
+ "about",
298
+ "homePage",
299
+ "gallery",
300
+ "aiAssistants",
301
+ "map",
302
+ "items",
303
+ "groups",
304
+ "webhooks",
305
+ "utilityServices",
306
+ "agol",
307
+ "esriContent",
308
+ "livingAtlas",
309
+ "servers",
310
+ "memberRoles",
311
+ "newMemberDefaults",
312
+ "marketplace",
313
+ "collaborations",
314
+ "credits",
315
+ "security",
316
+ "openData",
317
+ "hub",
318
+ "orgExtensions"
319
+ ], St = [
320
+ "newItem",
321
+ "createLayer",
322
+ "developerCredentials",
323
+ "url",
324
+ "application",
325
+ "tileLayer",
326
+ "sceneLayer",
327
+ "locator",
328
+ "dataStore"
329
+ ], xt = ["favorites", "group", "living-atlas", "org"], Ct = ["featured", "my", "organization"], Mt = ["overview", "content", "members", "settings"], Tt = ["licenses", "members", "overview", "reports", "settings", "status"], At = i.object({
330
+ destinationType: i.literal("portal-content"),
331
+ hash: i.enum(xt).optional(),
332
+ queryParams: i.object({
333
+ newItem: i.enum(St).optional()
334
+ }).optional()
335
+ }), Nt = i.object({
336
+ destinationType: i.literal("portal-groups"),
337
+ hash: i.enum(Ct).optional()
338
+ }), Pt = i.object({
339
+ destinationType: i.literal("portal-org"),
340
+ hash: i.enum(Tt).optional(),
341
+ queryParams: i.object({
342
+ tab: i.enum(It).optional(),
343
+ section: i.string().optional(),
344
+ subsection: i.string().optional(),
345
+ period: i.string().optional(),
346
+ startTime: i.string().optional(),
347
+ endTime: i.string().optional()
348
+ }).optional()
349
+ }), Gt = i.object({
350
+ destinationType: i.literal("portal-item"),
351
+ itemId: i.string().trim().min(1)
352
+ }), qt = i.object({
353
+ destinationType: i.literal("portal-group"),
354
+ groupId: i.string().trim().min(1),
355
+ hash: i.enum(Mt).optional(),
356
+ queryParams: i.record(i.string(), i.string()).optional()
357
+ }), kt = i.union([
358
+ At,
359
+ i.object({ destinationType: i.literal("portal-gallery") }),
360
+ qt,
361
+ Nt,
362
+ Gt,
363
+ i.object({ destinationType: i.literal("portal-map-viewer") }),
364
+ i.object({ destinationType: i.literal("portal-notebooks") }),
365
+ Pt,
366
+ i.object({ destinationType: i.literal("portal-scene-viewer") })
367
+ ]), Ne = "portal-navigation", O = async (t, e) => {
368
+ const a = e?.configurable?.context;
369
+ !Ae(a) || !a.navigationTargetMap?.[t.destinationType] || await Y({ type: Ne, data: { ...t } }, e);
370
+ }, Et = async (t, e) => {
371
+ const a = t.createdGroupId ?? t.agentExecutionContext.sharedState.createdGroupId?.value;
372
+ return a ? (await p({ text: "Preparing navigation...", agentName: "group-creation" }, e), await O({ destinationType: "portal-group", groupId: a }, e), {}) : {};
373
+ }, se = (t, e) => e ?? t, Pe = h.Root({
374
+ ...q(),
314
375
  // * Shared state between nodes (but not persisted to the agent execution context)
315
376
  /** Parameters related to the user's intent for group creation actions */
316
- intentParams: f({ reducer: L, default: () => ({ intent: "clarify" }) }),
377
+ intentParams: h({ reducer: se, default: () => ({ intent: "clarify" }) }),
317
378
  /** The ID of the group that was created
318
379
  * even though we already have this in the shared state
319
380
  * we still need it here to also share between nodes
320
381
  */
321
- createdGroupId: f({ reducer: L, default: () => "" })
322
- }), Ot = () => new C(H).addNode("detectGroupCreationIntent", Ut).addNode("createPortalGroup", kt).addNode("addMembersToPortalGroup", Pt).addNode("suggestCreatedGroupNavigation", jt).addEdge(P, "detectGroupCreationIntent").addConditionalEdges("detectGroupCreationIntent", (t) => {
323
- switch (t.intentParams.intent) {
382
+ createdGroupId: h({ reducer: se, default: () => "" })
383
+ }), zt = () => new P(Pe).addNode("detectGroupCreationIntent", vt).addNode("createPortalGroup", yt).addNode("addMembersToPortalGroup", pt).addNode("suggestCreatedGroupNavigation", Et).addEdge(G, "detectGroupCreationIntent").addConditionalEdges("detectGroupCreationIntent", (e) => {
384
+ switch (e.intentParams.intent) {
324
385
  case "create":
325
386
  return "createPortalGroup";
326
387
  case "addMembers":
327
388
  return "addMembersToPortalGroup";
328
389
  default:
329
- return h;
390
+ return w;
330
391
  }
331
- }).addEdge("createPortalGroup", "suggestCreatedGroupNavigation").addEdge("addMembersToPortalGroup", "suggestCreatedGroupNavigation").addEdge("suggestCreatedGroupNavigation", h), Vt = String.raw`- **portal-group-creation** - Portal group creation assistant:
392
+ }).addEdge("createPortalGroup", "suggestCreatedGroupNavigation").addEdge("addMembersToPortalGroup", "suggestCreatedGroupNavigation").addEdge("suggestCreatedGroupNavigation", w), Rt = String.raw`- **portal-group-creation** - Portal group creation assistant:
332
393
  - creates a new ArcGIS Portal group for the signed-in user
333
394
  - adds users to the newly created group using @mention usernames
334
- `, Bt = {
395
+ `, Dt = {
335
396
  id: "portal-group-creation",
336
397
  name: "Portal Group Creation",
337
- description: Vt,
338
- createGraph: Ot,
339
- workspace: H
340
- }, X = "portalDocAssistantMemory", Qt = () => ({ conversationId: "" }), Lt = (e) => {
341
- const t = e?.[X]?.value;
342
- if (!t || typeof t != "object")
343
- return Qt();
344
- const s = t;
398
+ description: Rt,
399
+ createGraph: zt,
400
+ workspace: Pe
401
+ }, Ge = "portalDocAssistantMemory", $t = () => ({ conversationId: "" }), Ut = (t) => {
402
+ const e = t?.[Ge]?.value;
403
+ if (!e || typeof e != "object")
404
+ return $t();
405
+ const a = e;
345
406
  return {
346
- conversationId: typeof s.conversationId == "string" ? s.conversationId : ""
407
+ conversationId: typeof a.conversationId == "string" ? a.conversationId : ""
347
408
  };
348
- }, Jt = (e) => ({
349
- [X]: { value: e }
350
- });
409
+ }, Ft = (t) => ({
410
+ [Ge]: { value: t }
411
+ }), Ot = {
412
+ pipeline: {
413
+ follow_up: { allow: !1 }
414
+ }
415
+ };
416
+ function Lt(t) {
417
+ return {
418
+ kind: "DocAIAssistantRequest",
419
+ filters: {
420
+ ...Ot,
421
+ persona: { persona: t }
422
+ }
423
+ };
424
+ }
425
+ const jt = "https://www.arcgis.com/sharing/rest";
351
426
  async function Kt({
352
- portal: e,
353
- question: t,
354
- persona: s,
355
- previousConversationId: a,
427
+ portal: t,
428
+ question: e,
429
+ persona: a,
430
+ previousConversationId: n,
431
+ useProdDocAssistant: o,
356
432
  signal: r,
357
- skillId: i
433
+ skillId: s
358
434
  }) {
359
- i ??= "doc_ai_assistant";
360
- const u = await Wt({
361
- portal: e,
362
- skillId: i,
363
- message: t,
364
- options: { context: {
365
- kind: "DocAIAssistantRequest",
366
- filters: { persona: { persona: s } }
367
- }, previousConversationId: a, signal: r }
435
+ s ??= "doc_ai_assistant";
436
+ const c = Lt(a), l = await Vt({
437
+ portal: t,
438
+ skillId: s,
439
+ message: e,
440
+ options: { context: c, previousConversationId: n, useProdDocAssistant: o, signal: r }
368
441
  });
369
442
  return {
370
- reply: Yt(u, i),
371
- conversationId: u[0]?.conversationId ?? ""
443
+ reply: Bt(l, s),
444
+ conversationId: l[0]?.conversationId ?? ""
372
445
  };
373
446
  }
374
- async function Wt({
375
- portal: e,
376
- skillId: t,
377
- message: s,
378
- options: a
447
+ async function Vt({
448
+ portal: t,
449
+ skillId: e,
450
+ message: a,
451
+ options: n
379
452
  }) {
380
- const i = `${e.helperServices.aiAssistantServices.url}/skills/${t}/chat`, l = {
453
+ const o = t.helperServices.aiAssistantServices.url, s = `${n.useProdDocAssistant ? "https://aiservices-beta.arcgis.com" : o}/skills/${e}/chat`, l = {
381
454
  "Content-Type": "application/json",
382
- token: It.findCredential(e.url)?.token ?? ""
383
- }, u = await j(i, {
455
+ token: n.useProdDocAssistant ? (await te.getCredential(jt, { oAuthPopupConfirmation: !1 })).token : te.findCredential(t.url)?.token ?? ""
456
+ }, d = await ae(s, {
384
457
  method: "post",
385
458
  body: JSON.stringify({
386
- message: s,
387
- context: a.context,
388
- conversationId: a.previousConversationId
459
+ message: a,
460
+ context: n.context,
461
+ conversationId: n.previousConversationId
389
462
  }),
390
463
  headers: l,
391
- signal: a.signal
464
+ signal: n.signal
392
465
  });
393
- if (u.httpStatus !== 200)
394
- throw new Error(`Doc assistant chat failed (${u.httpStatus})`, {
395
- cause: u.data
466
+ if (d.httpStatus !== 200)
467
+ throw new Error(`Doc assistant chat failed (${d.httpStatus})`, {
468
+ cause: d.data
396
469
  });
397
- const c = u.data, n = [c], { conversationId: m, inquiryId: p } = c, d = async (y, v) => {
398
- if (!v)
470
+ const u = d.data, m = [u], { conversationId: g, inquiryId: f } = u, y = async (M, k) => {
471
+ if (!k)
399
472
  return;
400
- await gt(1e3);
401
- const w = await j(i, {
473
+ await Ze(500);
474
+ const C = await ae(s, {
402
475
  method: "post",
403
- body: JSON.stringify({ conversationId: m, inquiryId: p, ackSequenceNumber: y }),
476
+ body: JSON.stringify({ conversationId: g, inquiryId: f, ackSequenceNumber: M }),
404
477
  headers: l,
405
- signal: a.signal
478
+ signal: n.signal
406
479
  });
407
- if (w.httpStatus !== 200)
408
- throw new Error(`Doc assistant poll failed (${w.httpStatus})`, {
409
- cause: w.data
480
+ if (C.httpStatus !== 200)
481
+ throw new Error(`Doc assistant poll failed (${C.httpStatus})`, {
482
+ cause: C.data
410
483
  });
411
- const S = w.data;
412
- n.push(S), await d(S.sequenceNumber, S.hasMore);
484
+ const T = C.data;
485
+ m.push(T), await y(T.sequenceNumber, T.hasMore);
413
486
  };
414
- return c.hasMore && await d(c.sequenceNumber, c.hasMore), n;
487
+ return u.hasMore && await y(u.sequenceNumber, u.hasMore), m;
415
488
  }
416
- function Yt(e, t) {
417
- switch (t) {
489
+ function Bt(t, e) {
490
+ switch (e) {
418
491
  case "doc_chat":
419
- return e.find((s) => s.message != null)?.message ?? "";
492
+ return t.find((a) => a.message != null)?.message ?? "";
420
493
  case "doc_ai_assistant":
421
- for (let s = e.length - 1; s >= 0; s -= 1) {
422
- const a = e[s];
423
- if (a.context?.kind === "DocAIAssistantContext") {
424
- const r = a.context.results?.[0]?.reply;
425
- if (r)
426
- return r;
494
+ for (let a = t.length - 1; a >= 0; a -= 1) {
495
+ const n = t[a];
496
+ if (n.context?.kind === "DocAIAssistantContext") {
497
+ const o = n.context.results?.[0]?.reply;
498
+ if (o)
499
+ return o;
427
500
  }
428
501
  }
429
502
  return "";
430
503
  default:
431
- return T(t);
504
+ return F(e);
432
505
  }
433
506
  }
434
- const _t = async (e, t) => {
435
- await g({ text: "Asking documentation assistant...", agentName: "doc-assistant" }, t);
436
- const s = x(e.agentExecutionContext.messages).trim();
437
- if (!s)
507
+ const Qt = async (t, e) => {
508
+ const a = performance.now();
509
+ try {
510
+ await p({ text: "Asking documentation assistant...", agentName: "doc-assistant" }, e);
511
+ const n = v(t.agentExecutionContext.messages).trim();
512
+ if (!n)
513
+ return {
514
+ status: "success",
515
+ outputMessage: "Please share your question and I can help with ArcGIS and Portal documentation."
516
+ };
517
+ const o = e?.configurable?.context;
518
+ x(o);
519
+ const r = Ut(t.agentExecutionContext.sharedState), { reply: s, conversationId: c } = await Kt({
520
+ portal: o.portal,
521
+ question: n,
522
+ previousConversationId: r.conversationId || void 0,
523
+ skillId: "doc_ai_assistant",
524
+ persona: "doc-online",
525
+ useProdDocAssistant: o.useProdDocAssistant
526
+ });
438
527
  return {
439
528
  status: "success",
440
- outputMessage: "Please share your question and I can help with ArcGIS and Portal documentation."
529
+ outputMessage: s.trim() || "I could not retrieve a response from the documentation assistant.",
530
+ sharedStatePatch: Ft({
531
+ conversationId: c || r.conversationId
532
+ })
441
533
  };
442
- const a = t?.configurable?.context;
443
- I(a);
444
- const r = Lt(e.agentExecutionContext.sharedState), { reply: i, conversationId: l } = await Kt({
445
- portal: a.portal,
446
- question: s,
447
- previousConversationId: r.conversationId || void 0,
448
- skillId: "doc_ai_assistant",
449
- persona: "developers"
450
- });
451
- return {
452
- status: "success",
453
- outputMessage: i.trim() || "I could not retrieve a response from the documentation assistant.",
454
- sharedStatePatch: Jt({
455
- conversationId: l || r.conversationId
456
- })
457
- };
458
- }, Z = W(
459
- async ({ groupTitle: e }, t) => {
460
- const s = e.trim();
461
- if (!s)
534
+ } finally {
535
+ console.info("[arcgis-portal-ai-assistant] node timing", {
536
+ agent: "portal-doc-assistant",
537
+ node: "answerDocQuestion",
538
+ durationMs: Number((performance.now() - a).toFixed(1))
539
+ });
540
+ }
541
+ }, Wt = {
542
+ schemaVersion: "1.0",
543
+ capabilities: [
544
+ {
545
+ id: "portal-content",
546
+ title: "My content",
547
+ description: "Browse, discover, search, and filter ArcGIS content—including maps, apps, datasets, and other items—that you own or can access.",
548
+ hints: ["view my content", "show my content", "my content"],
549
+ platforms: ["online", "enterprise"],
550
+ resolutions: {
551
+ navigate: {
552
+ routeKey: "content"
553
+ }
554
+ }
555
+ },
556
+ {
557
+ id: "portal-content-new-item-feature-layer",
558
+ title: "Create feature layer",
559
+ description: "Generate an editable feature layer by copying fields from templates or existing layers.",
560
+ hints: ["add a feature layer", "make a feature layer", "generate a feature layer"],
561
+ platforms: ["online", "enterprise"],
562
+ resolutions: {
563
+ navigate: {
564
+ routeKey: "content",
565
+ queryParams: {
566
+ newItem: "createLayer"
567
+ }
568
+ }
569
+ }
570
+ },
571
+ {
572
+ id: "portal-content-new-item",
573
+ title: "New item",
574
+ description: "Open My Content with the New Item flow ready to start.",
575
+ hints: ["new item", "create new item", "upload a new item"],
576
+ platforms: ["online", "enterprise"],
577
+ buttonLabel: "Create new item",
578
+ resolutions: {
579
+ navigate: {
580
+ routeKey: "content",
581
+ queryParams: {
582
+ newItem: "newItem"
583
+ }
584
+ }
585
+ }
586
+ },
587
+ {
588
+ id: "portal-content-new-item-developer-credentials",
589
+ title: "Create developer credentials",
590
+ description: "Open My Content with the New Item flow set to developer credentials.",
591
+ hints: ["developer credentials", "new developer credentials", "create api key"],
592
+ platforms: ["online", "enterprise"],
593
+ buttonLabel: "Create developer credentials",
594
+ resolutions: {
595
+ navigate: {
596
+ routeKey: "content",
597
+ queryParams: {
598
+ newItem: "developerCredentials"
599
+ }
600
+ }
601
+ }
602
+ },
603
+ {
604
+ id: "portal-content-new-item-url",
605
+ title: "Add item from URL",
606
+ description: "Open My Content with the New Item flow set to add a URL-based item, such as a service endpoint.",
607
+ hints: ["add item from url", "url item", "register service url"],
608
+ platforms: ["online", "enterprise"],
609
+ buttonLabel: "Add item from URL",
610
+ resolutions: {
611
+ navigate: {
612
+ routeKey: "content",
613
+ queryParams: {
614
+ newItem: "url"
615
+ }
616
+ }
617
+ }
618
+ },
619
+ {
620
+ id: "portal-content-new-item-application",
621
+ title: "Create application item",
622
+ description: "Open My Content with the New Item flow set to create an application item in content.",
623
+ hints: ["create application item", "register app item", "new application item"],
624
+ platforms: ["online", "enterprise"],
625
+ buttonLabel: "Create application item",
626
+ resolutions: {
627
+ navigate: {
628
+ routeKey: "content",
629
+ queryParams: {
630
+ newItem: "application"
631
+ }
632
+ }
633
+ }
634
+ },
635
+ {
636
+ id: "portal-content-new-item-tile-layer",
637
+ title: "Create tile layer",
638
+ description: "Open My Content with the New Item flow set to publish a hosted tile layer.",
639
+ hints: ["create hosted tile layer", "publish tile layer", "new tile layer"],
640
+ platforms: ["online", "enterprise"],
641
+ buttonLabel: "Create tile layer",
642
+ resolutions: {
643
+ navigate: {
644
+ routeKey: "content",
645
+ queryParams: {
646
+ newItem: "tileLayer"
647
+ }
648
+ }
649
+ }
650
+ },
651
+ {
652
+ id: "portal-content-new-item-scene-layer",
653
+ title: "Create scene layer",
654
+ description: "Open My Content with the New Item flow set to publish a hosted scene layer.",
655
+ hints: ["create hosted scene layer", "publish scene layer", "new scene layer"],
656
+ platforms: ["online", "enterprise"],
657
+ buttonLabel: "Create scene layer",
658
+ resolutions: {
659
+ navigate: {
660
+ routeKey: "content",
661
+ queryParams: {
662
+ newItem: "sceneLayer"
663
+ }
664
+ }
665
+ }
666
+ },
667
+ {
668
+ id: "portal-content-new-item-locator",
669
+ title: "Create locator",
670
+ description: "Open My Content with the New Item flow set to create or publish a locator for geocoding.",
671
+ hints: ["create locator", "publish locator", "geocoding locator"],
672
+ platforms: ["online", "enterprise"],
673
+ buttonLabel: "Create locator",
674
+ resolutions: {
675
+ navigate: {
676
+ routeKey: "content",
677
+ queryParams: {
678
+ newItem: "locator"
679
+ }
680
+ }
681
+ }
682
+ },
683
+ {
684
+ id: "portal-content-new-item-data-store",
685
+ title: "Create data store item",
686
+ description: "Open My Content with the New Item flow set to register a data store connection.",
687
+ hints: ["register data store", "data store connection", "new data store item"],
688
+ platforms: ["online", "enterprise"],
689
+ buttonLabel: "Create data store item",
690
+ resolutions: {
691
+ navigate: {
692
+ routeKey: "content",
693
+ queryParams: {
694
+ newItem: "dataStore"
695
+ }
696
+ }
697
+ }
698
+ },
699
+ {
700
+ id: "create-folder",
701
+ title: "Create folder",
702
+ description: "Create a new folder in your ArcGIS content to organize your items.",
703
+ hints: ["create a folder", "make a folder", "set up a folder", "new folder"],
704
+ platforms: ["online", "enterprise"],
705
+ resolutions: {
706
+ navigate: {
707
+ routeKey: "content"
708
+ }
709
+ }
710
+ }
711
+ ]
712
+ }, Jt = {
713
+ schemaVersion: "1.0",
714
+ capabilities: [
715
+ {
716
+ id: "portal-groups-my",
717
+ title: "My groups",
718
+ description: "Browse, discover, search, and filter ArcGIS content collections—including maps, apps, datasets, and other items—that you own, belong to, or can access.",
719
+ hints: ["view my groups", "show my groups", "my groups"],
720
+ platforms: ["online", "enterprise"],
721
+ resolutions: {
722
+ navigate: {
723
+ routeKey: "groups"
724
+ }
725
+ }
726
+ },
727
+ {
728
+ id: "create-group",
729
+ title: "Create group",
730
+ description: "Create a new ArcGIS Portal group owned by the signed-in user.",
731
+ hints: ["create a group", "make a group", "set up a group", "new group"],
732
+ platforms: ["online", "enterprise"],
733
+ resolutions: {
734
+ navigate: {
735
+ routeKey: "groups"
736
+ }
737
+ }
738
+ },
739
+ {
740
+ id: "portal-groups-featured",
741
+ title: "Featured groups",
742
+ description: "Browse, discover, search, and filter ArcGIS content collections—including maps, apps, datasets, and other items—that organization administrators choose to highlight in ArcGIS.",
743
+ hints: ["view featured groups", "show featured groups", "highlighted groups", "top groups"],
744
+ platforms: ["online", "enterprise"],
745
+ resolutions: {
746
+ navigate: {
747
+ routeKey: "groups",
748
+ hash: "featured"
749
+ }
750
+ }
751
+ },
752
+ {
753
+ id: "portal-groups-organization",
754
+ title: "Organization groups",
755
+ description: "Browse, discover, search, and filter ArcGIS content collections—including maps, apps, datasets, and other items—that are specific to your organization in ArcGIS.",
756
+ hints: ["view organization groups", "show organization groups"],
757
+ platforms: ["online", "enterprise"],
758
+ resolutions: {
759
+ navigate: {
760
+ routeKey: "groups",
761
+ hash: "organization"
762
+ }
763
+ }
764
+ }
765
+ ]
766
+ }, _t = {
767
+ schemaVersion: "1.0",
768
+ capabilities: [
769
+ {
770
+ id: "portal-org-security-multifactor-auth",
771
+ title: "Multifactor Authentication (MFA)",
772
+ description: "Configure organization-level multifactor authentication (MFA) settings. Administrators can enable MFA for ArcGIS logins, allow recovery codes for members, view MFA adoption status, enforce MFA requirements for all members, manage the MFA exemption list, and designate administrators who can troubleshoot MFA issues.",
773
+ hints: ["config MFA", "set up MFA"],
774
+ platforms: ["online", "enterprise"],
775
+ resolutions: {
776
+ navigate: {
777
+ routeKey: "organization",
778
+ queryParams: {
779
+ tab: "security",
780
+ subsection: "multiFactorAuthSection"
781
+ },
782
+ hash: "settings"
783
+ }
784
+ }
785
+ },
786
+ {
787
+ id: "portal-org-security-logins",
788
+ title: "Security - Logins",
789
+ description: "Manage the sign-in methods available for the organization.",
790
+ hints: ["set up SAML single sign-on", "add OpenID Connect login", "sign in with Okta"],
791
+ platforms: ["online", "enterprise"],
792
+ buttonLabel: "Configure logins",
793
+ resolutions: {
794
+ navigate: {
795
+ routeKey: "organization",
796
+ hash: "settings",
797
+ queryParams: {
798
+ tab: "security",
799
+ subsection: "loginsSection"
800
+ }
801
+ }
802
+ }
803
+ },
804
+ {
805
+ id: "portal-org-security-custom-sign-in",
806
+ title: "Security - Custom sign-in",
807
+ description: "Customize how sign-in options are presented for the organization.",
808
+ hints: ["custom sign in", "brand the sign-in page", "hide the ArcGIS login option"],
809
+ platforms: ["online", "enterprise"],
810
+ buttonLabel: "Configure custom sign-in",
811
+ resolutions: {
812
+ navigate: {
813
+ routeKey: "organization",
814
+ hash: "settings",
815
+ queryParams: {
816
+ tab: "security",
817
+ subsection: "customSignInSection"
818
+ }
819
+ }
820
+ }
821
+ },
822
+ {
823
+ id: "portal-org-security-change-login-provider",
824
+ title: "Security - Logins - Member login management",
825
+ description: "Change the login provider used by an existing organization member.",
826
+ hints: ["change login provider", "switch a member to SAML", "migrate a user to SSO"],
827
+ platforms: ["online", "enterprise"],
828
+ buttonLabel: "Configure member login management",
829
+ resolutions: {
830
+ navigate: {
831
+ routeKey: "organization",
832
+ hash: "settings",
833
+ queryParams: {
834
+ tab: "security",
835
+ subsection: "changeLoginProviderSection"
836
+ }
837
+ }
838
+ }
839
+ },
840
+ {
841
+ id: "portal-org-security-multifactor-enforcement",
842
+ title: "Security - Multifactor authentication - MFA enforcement",
843
+ description: "Require multifactor authentication for all members with ArcGIS logins.",
844
+ hints: ["make MFA required", "force all members to use MFA", "MFA exemption list"],
845
+ platforms: ["online", "enterprise"],
846
+ buttonLabel: "Configure MFA enforcement",
847
+ resolutions: {
848
+ navigate: {
849
+ routeKey: "organization",
850
+ hash: "settings",
851
+ queryParams: {
852
+ tab: "security",
853
+ subsection: "multifactorEnforcementSection"
854
+ }
855
+ }
856
+ }
857
+ },
858
+ {
859
+ id: "portal-org-security-multifactor-designated-admins",
860
+ title: "Security - Multifactor authentication - Designated administrators",
861
+ description: "Choose which administrators receive and handle member MFA assistance requests.",
862
+ hints: ["designated MFA admins", "who receives MFA help requests", "MFA support administrators"],
863
+ platforms: ["online", "enterprise"],
864
+ buttonLabel: "Configure designated administrators",
865
+ resolutions: {
866
+ navigate: {
867
+ routeKey: "organization",
868
+ hash: "settings",
869
+ queryParams: {
870
+ tab: "security",
871
+ subsection: "multifactorDesignatedAdminsSection"
872
+ }
873
+ }
874
+ }
875
+ }
876
+ ]
877
+ }, Yt = {
878
+ "contentRouteRegistry.ts": Wt,
879
+ "groupsRouteRegistry.ts": Jt,
880
+ "orgSettingsRouteRegistry.ts": _t
881
+ };
882
+ function ce(t) {
883
+ const e = [], a = /* @__PURE__ */ new Set();
884
+ for (const [n, o] of Object.entries(t))
885
+ for (const r of o.capabilities) {
886
+ if (a.has(r.id))
887
+ throw new Error(`${n}: duplicate capability id "${r.id}" across registries`);
888
+ a.add(r.id), e.push(r);
889
+ }
890
+ return e;
891
+ }
892
+ let R;
893
+ function S(t) {
894
+ return t ? R = ce({ customCapabilities: t }) : R || (R = ce(Yt)), R;
895
+ }
896
+ const Ht = {
897
+ gallery: "portal-gallery",
898
+ "map-viewer": "portal-map-viewer",
899
+ notebooks: "portal-notebooks",
900
+ "scene-viewer": "portal-scene-viewer"
901
+ };
902
+ function A({
903
+ capabilityId: t,
904
+ navigate: e,
905
+ buttonLabel: a
906
+ }) {
907
+ const { routeKey: n } = e;
908
+ switch (n) {
909
+ case "content":
910
+ return {
911
+ destinationType: "portal-content",
912
+ hash: e.hash,
913
+ queryParams: e.queryParams,
914
+ ...a ? { buttonLabel: a } : {}
915
+ };
916
+ case "organization":
917
+ return {
918
+ destinationType: "portal-org",
919
+ hash: e.hash,
920
+ queryParams: e.queryParams,
921
+ ...a ? { buttonLabel: a } : {}
922
+ };
923
+ case "groups":
924
+ const { hash: o } = e;
925
+ return o === "featured" ? { destinationType: "portal-groups", hash: "featured", ...a ? { buttonLabel: a } : {} } : o === "organization" ? { destinationType: "portal-groups", hash: "organization", ...a ? { buttonLabel: a } : {} } : t === "portal-groups-my" ? { destinationType: "portal-groups", hash: "my", ...a ? { buttonLabel: a } : {} } : { destinationType: "portal-groups", ...a ? { buttonLabel: a } : {} };
926
+ case "gallery":
927
+ case "map-viewer":
928
+ case "notebooks":
929
+ case "scene-viewer":
930
+ return { destinationType: Ht[n], ...a ? { buttonLabel: a } : {} };
931
+ default:
932
+ return;
933
+ }
934
+ }
935
+ const qe = Te(
936
+ async ({ groupTitle: t }, e) => {
937
+ const a = t.trim();
938
+ if (!a)
462
939
  return null;
463
- const a = t?.configurable?.context;
464
- I(a);
940
+ const n = e?.configurable?.context;
941
+ x(n);
465
942
  try {
466
- return (await yt(a.portal, { query: `title:${s}`, num: 1 }))?.results[0]?.id || null;
467
- } catch (r) {
468
- return console.error("Error searching for portal group by title:", r), null;
943
+ return (await Xe(n.portal, { query: `title:${a}`, num: 1 }))?.results[0]?.id || null;
944
+ } catch (o) {
945
+ return console.error("Error searching for portal group by title:", o), null;
469
946
  }
470
947
  },
471
948
  {
472
949
  name: "resolvePortalGroupIdByTitle",
473
950
  description: "Resolves an ArcGIS Portal group title to the best-match group id. Use this when a user references a group by title instead of an explicit group id.",
474
- schema: o.object({
475
- groupTitle: o.string().describe("The portal group title to resolve to a group id.")
951
+ schema: i.object({
952
+ groupTitle: i.string().describe("The portal group title to resolve to a group id.")
476
953
  })
477
954
  }
478
- ), tt = W(
479
- async ({ itemTitle: e }, t) => {
480
- const s = e.trim();
481
- if (!s)
955
+ ), ke = Te(
956
+ async ({ itemTitle: t }, e) => {
957
+ const a = t.trim();
958
+ if (!a)
482
959
  return null;
483
- const a = t?.configurable?.context;
484
- I(a);
485
- const { result: r, error: i } = await wt(a.portal, s, { num: 1 });
486
- return i && console.error("Error searching for portal item by title:", i), r?.results[0]?.id || null;
960
+ const n = e?.configurable?.context;
961
+ x(n);
962
+ const { result: o, error: r } = await et(n.portal, a, { num: 1 });
963
+ return r && console.error("Error searching for portal item by title:", r), o?.results[0]?.id || null;
487
964
  },
488
965
  {
489
966
  name: "resolvePortalItemIdByTitle",
490
967
  description: 'Resolves an ArcGIS Portal item title to the best-match item id. Use this when a user references an item by title (including hash mentions like #title or #"title with spaces") instead of an explicit item id.',
491
- schema: o.object({
492
- itemTitle: o.string().describe("The portal item title to resolve to an item id.")
968
+ schema: i.object({
969
+ itemTitle: i.string().describe("The portal item title to resolve to an item id.")
493
970
  })
494
971
  }
495
- ), J = o.object({
496
- shouldSuggestNavigation: o.boolean().default(!1),
497
- destinationType: o.enum(["none", "portal-content", "portal-item", "portal-groups", "portal-group"]).default("none"),
498
- itemId: o.string().default(""),
499
- groupId: o.string().default("")
500
- }), Ht = async (e, t) => {
501
- await g({ text: "Extracting navigation intent...", agentName: "doc-assistant" }, t);
502
- const s = e.outputMessage.trim();
503
- if (!s)
504
- return {};
505
- const a = x(e.agentExecutionContext.messages).trim(), r = await z.fromTemplate(Zt).format({
506
- question: a,
507
- response: s
508
- }), l = await U({
509
- model: await D({ modelTier: "default" }),
510
- tools: [tt, Z],
511
- systemPrompt: r,
512
- responseFormat: J,
513
- checkpointer: !0
514
- }).invoke({ messages: e.agentExecutionContext.messages }, t), u = J.parse(l.structuredResponse ?? {});
515
- if (!u.shouldSuggestNavigation || u.destinationType === "none")
516
- return {};
517
- const c = Xt(u);
518
- return c ? (await R(c, t), {}) : {};
519
- };
520
- function Xt({
521
- destinationType: e,
522
- itemId: t,
523
- groupId: s
524
- }) {
525
- switch (e) {
526
- case "portal-content":
527
- return { destinationType: "portal-content" };
528
- case "portal-groups":
529
- return { destinationType: "portal-groups" };
530
- case "portal-item":
531
- return t ? { destinationType: "portal-item", itemId: t } : null;
532
- case "portal-group":
533
- return s ? { destinationType: "portal-group", groupId: s } : null;
534
- case "none":
535
- return null;
536
- default:
537
- return T(e);
538
- }
972
+ );
973
+ function N(t, e = "#") {
974
+ const a = t.match(new RegExp(`\\${e}"([^"]+)"`, "u"));
975
+ if (a?.[1])
976
+ return a[1].trim();
977
+ const n = t.match(new RegExp(`\\${e}([^\\s"']+)`, "u"));
978
+ return n?.[1] ? n[1].trim() : null;
979
+ }
980
+ function Xt(t) {
981
+ const e = W(t).flatMap((a) => {
982
+ const n = a, o = t[a], r = [
983
+ n,
984
+ {
985
+ description: o.description,
986
+ hints: o.hints
987
+ }
988
+ ], s = o.sections ? W(o.sections).map((c) => {
989
+ const l = o.sections?.[c];
990
+ return [`${n}-${c}`, l];
991
+ }) : [];
992
+ return [r, ...s];
993
+ });
994
+ return Object.fromEntries(e);
539
995
  }
540
- const Zt = `
996
+ function Zt(t) {
997
+ return Object.entries(t).map(([e, { description: a, hints: n }]) => ` - ${e}: ${a} (hints: ${n.join(", ")})`).join(`
998
+ `);
999
+ }
1000
+ const ea = {
1001
+ // Example prompt: "Take me to my content"
1002
+ "portal-content": {
1003
+ description: "The main content page of the portal.",
1004
+ hints: ["My content", "Content"]
1005
+ },
1006
+ // Example prompt: "Show my content favorites"
1007
+ "portal-content-favorites": {
1008
+ description: "The Favorites view under Content in the portal.",
1009
+ hints: ["My favorites", "Favorites", "Content favorites"]
1010
+ },
1011
+ // Example prompt: "Open group content"
1012
+ "portal-content-group": {
1013
+ description: "The Groups view under Content in the portal.",
1014
+ hints: ["Content groups", "Group content", "My groups content"]
1015
+ },
1016
+ // Example prompt: "Browse Living Atlas content"
1017
+ "portal-content-living-atlas": {
1018
+ description: "The Living Atlas view under Content in the portal.",
1019
+ hints: ["Living Atlas", "Content living atlas"]
1020
+ },
1021
+ // Example prompt: "Show my organization's content"
1022
+ "portal-content-organization": {
1023
+ description: "The Organization view under Content in the portal.",
1024
+ hints: ["Organization content", "Content organization", "My organization content"]
1025
+ },
1026
+ // Example prompt: "Open the gallery"
1027
+ "portal-gallery": {
1028
+ description: "The gallery page of the portal.",
1029
+ hints: ["Gallery", "Featured content", "Maps and apps"]
1030
+ },
1031
+ // Example prompt: "Go to the group called #Urban Planning"
1032
+ "portal-group": {
1033
+ description: "A specific group page in the portal.",
1034
+ hints: ["Group", "group page"]
1035
+ },
1036
+ // Example prompt: "Browse groups"
1037
+ "portal-groups": {
1038
+ description: "The groups listing page of the portal.",
1039
+ hints: ["Groups", "Browse groups"]
1040
+ },
1041
+ // Example prompt: "Show featured groups"
1042
+ "portal-groups-featured": {
1043
+ description: "The Featured groups view under Groups in the portal.",
1044
+ hints: ["Featured groups", "Groups featured"]
1045
+ },
1046
+ // Example prompt: "Show my groups"
1047
+ "portal-groups-my": {
1048
+ description: "The My groups view under Groups in the portal.",
1049
+ hints: ["My groups", "Groups my"]
1050
+ },
1051
+ // Example prompt: "Show organization groups"
1052
+ "portal-groups-organization": {
1053
+ description: "The Organization groups view under Groups in the portal.",
1054
+ hints: ["Organization groups", "Groups organization", "My organization groups"]
1055
+ },
1056
+ // Example prompt: "Open item #Road Closures Map"
1057
+ "portal-item": {
1058
+ description: "A specific item page in the portal.",
1059
+ hints: ["Item", "item page"]
1060
+ },
1061
+ // Example prompt: "Open Map Viewer"
1062
+ "portal-map-viewer": {
1063
+ description: "The Map Viewer app of the portal.",
1064
+ hints: ["Map Viewer", "Map", "Open map"]
1065
+ },
1066
+ // Example prompt: "Take me to notebooks"
1067
+ "portal-notebooks": {
1068
+ description: "The Notebooks home page of the portal.",
1069
+ hints: ["Notebooks", "Notebook home", "My notebooks"]
1070
+ },
1071
+ // Example prompt: "Open Scene Viewer"
1072
+ "portal-scene-viewer": {
1073
+ description: "The Scene Viewer app of the portal.",
1074
+ hints: ["Scene Viewer", "Scene", "3D scene"]
1075
+ },
1076
+ // Example prompt: "Open organization security settings"
1077
+ "portal-org-security": {
1078
+ description: "The Organization > Settings > Security page of the portal.",
1079
+ hints: ["Organization settings", "Security", "Organization > Settings > Security"],
1080
+ sections: {
1081
+ // Example prompt: "How do I set up custom sign in?"
1082
+ "custom-sign-in": {
1083
+ description: "The Organization > Settings > Security > Custom Sign In section of the portal.",
1084
+ hints: ["Custom Sign In", "Organization > Settings > Security > Custom Sign In"]
1085
+ },
1086
+ // Example prompt: "How do I configure login options?"
1087
+ logins: {
1088
+ description: "The Organization > Settings > Security > Logins section of the portal.",
1089
+ hints: ["Logins", "Organization > Settings > Security > Logins"]
1090
+ },
1091
+ // Example prompt: "How do I change our login provider?"
1092
+ "change-login-provider": {
1093
+ description: "The Organization > Settings > Security > Change Login Provider section of the portal.",
1094
+ hints: ["Change Login Provider", "Organization > Settings > Security > Change Login Provider"]
1095
+ },
1096
+ // Example prompt: "How do I configure MFA?"
1097
+ "multifactor-auth": {
1098
+ description: "The Organization > Settings > Security > Multifactor Authentication section of the portal.",
1099
+ hints: ["MFA", "Multifactor Authentication", "Organization > Settings > Security > MFA"]
1100
+ },
1101
+ // Example prompt: "How do I configure Enforce MFA?"
1102
+ "multifactor-enforcement": {
1103
+ description: "The Organization > Settings > Security > Enforce MFA section of the portal.",
1104
+ hints: ["Enforce MFA", "MFA enforcement", "Organization > Settings > Security > Enforce MFA"]
1105
+ },
1106
+ // Example prompt: "How do I set designated admins for MFA?"
1107
+ "multifactor-designated-admins": {
1108
+ description: "The Organization > Settings > Security > Designated Admins section of the portal.",
1109
+ hints: ["Designated admins", "MFA designated admins", "Organization > Settings > Security > Designated Admins"]
1110
+ }
1111
+ }
1112
+ },
1113
+ // Example prompt: "I want to add a new item"
1114
+ "portal-content-new-item": {
1115
+ description: "The Content page with the New Item flow opened.",
1116
+ hints: ["New item", "Create new item", "Content > My Content > New Item"],
1117
+ sections: {
1118
+ // Example prompt: "Create a new feature layer"
1119
+ "feature-layer": {
1120
+ description: "The Content page with New Item flow set to Feature Layer as the starting step.",
1121
+ hints: ["Feature Layer", "New Feature Layer", "Content > My Content > New Item > Feature Layer"]
1122
+ },
1123
+ // Example prompt: "Create developer credentials"
1124
+ "developer-credentials": {
1125
+ description: "The Content page with New Item flow set to Developer Credentials as the starting step.",
1126
+ hints: [
1127
+ "Developer Credentials",
1128
+ "New developer credentials",
1129
+ "Content > My Content > New Item > Developer Credentials"
1130
+ ]
1131
+ },
1132
+ // Example prompt: "Add an item from a URL"
1133
+ url: {
1134
+ description: "The Content page with New Item flow set to URL as the starting step for adding a URL-based item, such as a service endpoint.",
1135
+ hints: ["URL item", "Add item from URL", "Register service URL", "Content > My Content > New Item > URL"]
1136
+ },
1137
+ // Example prompt: "Create a new application item"
1138
+ application: {
1139
+ description: "The Content page with New Item flow set to Application as the starting step for creating an application item in content.",
1140
+ hints: [
1141
+ "Application item",
1142
+ "Create application item",
1143
+ "Register app item",
1144
+ "Content > My Content > New Item > Application"
1145
+ ]
1146
+ },
1147
+ // Example prompt: "Create a hosted tile layer"
1148
+ "tile-layer": {
1149
+ description: "The Content page with New Item flow set to Tile Layer as the starting step for publishing a hosted tile layer.",
1150
+ hints: [
1151
+ "Tile Layer",
1152
+ "Create hosted tile layer",
1153
+ "Publish tile layer",
1154
+ "Content > My Content > New Item > Tile Layer"
1155
+ ]
1156
+ },
1157
+ // Example prompt: "Create a hosted scene layer"
1158
+ "scene-layer": {
1159
+ description: "The Content page with New Item flow set to Scene Layer as the starting step for publishing a hosted scene layer.",
1160
+ hints: [
1161
+ "Scene Layer",
1162
+ "Create hosted scene layer",
1163
+ "Publish scene layer",
1164
+ "Content > My Content > New Item > Scene Layer"
1165
+ ]
1166
+ },
1167
+ // Example prompt: "Create a new locator"
1168
+ locator: {
1169
+ description: "The Content page with New Item flow set to Locator as the starting step for creating or publishing a locator used for geocoding.",
1170
+ hints: ["Locator", "Create locator", "Publish locator", "Content > My Content > New Item > Locator"]
1171
+ },
1172
+ // Example prompt: "Create a data store item"
1173
+ "data-store": {
1174
+ description: "The Content page with New Item flow set to Data Store as the starting step for registering a data store connection.",
1175
+ hints: [
1176
+ "Data Store",
1177
+ "Register data store",
1178
+ "Data store connection",
1179
+ "Content > My Content > New Item > Data Store"
1180
+ ]
1181
+ }
1182
+ }
1183
+ }
1184
+ }, Ee = Xt(ea), ta = W(Ee), aa = Zt(Ee), na = `
541
1185
  You decide whether the assistant response should include a navigation action to ArcGIS Portal.
542
1186
 
543
1187
  Given the user question and assistant response:
544
1188
  - Decide if a navigation action would help the user complete the task.
545
- - If yes, choose one destination type:
546
- - portal-content: portal content page
547
- - portal-groups: groups listing page
548
- - portal-item: specific item page (requires itemId)
549
- - portal-group: specific group page (requires groupId)
1189
+ - If yes, choose one destinationType:
1190
+ ${aa}
550
1191
 
551
1192
  Rules:
1193
+ - Only suggest navigation when you are highly confident the destination will help complete the user's task.
1194
+ - If confidence is below 0.85, set shouldSuggestNavigation=false and destinationType=none.
1195
+ - If there is no clear destination from the allowed types, set shouldSuggestNavigation=false and destinationType=none.
552
1196
  - If no navigation is useful, set shouldSuggestNavigation=false and destinationType=none.
553
- - If destinationType is portal-item and user references an item by title (for example #title, #"title with spaces", or plain quoted title), call resolvePortalItemIdByTitle and set itemId from the tool result.
554
- - If destinationType is portal-group and user references a group by title (for example $title, $"title with spaces", or plain quoted group title), call resolvePortalGroupIdByTitle and set groupId from the tool result.
555
- - Do not invent itemId.
556
- - Do not invent groupId.
557
- - Prefer destinationType=portal-content for generic "go to content" guidance.
1197
+ - Prefer the most specific destination that is clearly supported by the question and response.
1198
+ - Use entity-level destinations over collection/root destinations when both could apply and the entity target is explicit.
1199
+ - Use collection/root destinations only for generic browsing intent with no specific entity target.
1200
+ - If a chosen destination requires parameters, include all required parameters.
1201
+ - If required parameters are missing or uncertain, set shouldSuggestNavigation=false and destinationType=none.
1202
+ - Do not invent required parameters.
1203
+ - Always include a confidence score from 0 to 1 in the output.
1204
+ - Confidence means confidence that a navigation suggestion should be shown to the user.
1205
+ - If shouldSuggestNavigation=false or destinationType=none, confidence must be <= 0.5.
1206
+ - Use confidence >= 0.85 only when shouldSuggestNavigation=true and destinationType is not none.
558
1207
 
559
1208
  User question:
560
1209
  {question}
561
1210
 
562
1211
  Assistant response:
563
1212
  {response}
564
- `, et = xt.Root({
565
- ...N()
566
- }), te = () => new C(et).addNode("answerDocQuestion", _t).addNode("extractNavigationIntent", Ht).addEdge(P, "answerDocQuestion").addEdge("answerDocQuestion", "extractNavigationIntent").addEdge("extractNavigationIntent", h), ee = String.raw`- **portal-doc-assistant** - General ArcGIS documentation and Portal help assistant:
1213
+ `, le = i.object({
1214
+ shouldSuggestNavigation: i.boolean().default(!1),
1215
+ destinationType: i.enum(["none", ...ta]).default("none"),
1216
+ itemId: i.string().default(""),
1217
+ groupId: i.string().default(""),
1218
+ confidence: i.number().min(0).max(1).default(0)
1219
+ });
1220
+ let ue;
1221
+ async function oa() {
1222
+ return ue ??= H({ modelTier: "fast" }), await ue;
1223
+ }
1224
+ const ra = async (t, e) => {
1225
+ const a = performance.now();
1226
+ try {
1227
+ await p({ text: "Extracting navigation intent...", agentName: "doc-assistant" }, e);
1228
+ const n = t.outputMessage.trim();
1229
+ if (!n)
1230
+ return {};
1231
+ const o = v(t.agentExecutionContext.messages).trim(), r = await X.fromTemplate(na).format({
1232
+ question: o,
1233
+ response: n
1234
+ }), c = (await oa()).withStructuredOutput(le), l = le.parse(await c.invoke(r));
1235
+ if (!l.shouldSuggestNavigation || l.destinationType === "none")
1236
+ return {};
1237
+ if (l.destinationType === "portal-item" && !l.itemId) {
1238
+ const u = N(o, "#");
1239
+ u && (l.itemId = await ke.invoke({ itemTitle: u }, e) ?? "");
1240
+ }
1241
+ if (l.destinationType === "portal-group" && !l.groupId) {
1242
+ const u = N(o, "$") ?? N(o, "#");
1243
+ u && (l.groupId = await qe.invoke({ groupTitle: u }, e) ?? "");
1244
+ }
1245
+ const d = ia(l);
1246
+ return d ? (await O(d, e), {}) : {};
1247
+ } finally {
1248
+ console.info("[arcgis-portal-ai-assistant] node timing", {
1249
+ agent: "portal-doc-assistant",
1250
+ node: "extractNavigationIntent",
1251
+ durationMs: Number((performance.now() - a).toFixed(1))
1252
+ });
1253
+ }
1254
+ };
1255
+ function ia({
1256
+ destinationType: t,
1257
+ itemId: e,
1258
+ groupId: a
1259
+ }) {
1260
+ const n = S().find((o) => o.id === t);
1261
+ if (n)
1262
+ return A({
1263
+ navigate: n.resolutions.navigate,
1264
+ buttonLabel: n.buttonLabel,
1265
+ capabilityId: n.id
1266
+ });
1267
+ switch (t) {
1268
+ case "portal-gallery":
1269
+ case "portal-map-viewer":
1270
+ case "portal-notebooks":
1271
+ case "portal-scene-viewer":
1272
+ return { destinationType: t };
1273
+ case "portal-item":
1274
+ return e ? { destinationType: t, itemId: e } : void 0;
1275
+ case "portal-group":
1276
+ return a ? { destinationType: t, groupId: a } : void 0;
1277
+ case "none":
1278
+ return;
1279
+ default:
1280
+ switch (t) {
1281
+ case "portal-groups":
1282
+ return A({ navigate: { routeKey: "groups" } });
1283
+ case "portal-content-favorites":
1284
+ case "portal-content-group":
1285
+ case "portal-content-living-atlas":
1286
+ case "portal-content-organization":
1287
+ return A({ navigate: { routeKey: "content", hash: (() => {
1288
+ switch (t) {
1289
+ case "portal-content-favorites":
1290
+ return "favorites";
1291
+ case "portal-content-group":
1292
+ return "group";
1293
+ case "portal-content-living-atlas":
1294
+ return "living-atlas";
1295
+ case "portal-content-organization":
1296
+ return "org";
1297
+ default:
1298
+ return F(t);
1299
+ }
1300
+ })() } });
1301
+ case "portal-org-security":
1302
+ return A({
1303
+ navigate: { routeKey: "organization", hash: "settings", queryParams: { tab: "security" } }
1304
+ });
1305
+ default:
1306
+ return;
1307
+ }
1308
+ }
1309
+ }
1310
+ const ze = h.Root({
1311
+ ...q()
1312
+ }), sa = () => new P(ze).addNode("answerDocQuestion", Qt).addNode("extractNavigationIntent", ra).addEdge(G, "answerDocQuestion").addEdge("answerDocQuestion", "extractNavigationIntent").addEdge("extractNavigationIntent", w), ca = String.raw`- **portal-doc-assistant** - General ArcGIS documentation and Portal help assistant:
567
1313
  - answers general ArcGIS, Portal, Enterprise, and JavaScript SDK questions
568
1314
  - acts as a fallback when specialized agents are not applicable
569
- `, se = {
1315
+ `, la = {
570
1316
  id: "portal-doc-assistant",
571
1317
  name: "Portal Doc Assistant",
572
- description: ee,
573
- createGraph: te,
574
- workspace: et
575
- }, st = `
1318
+ description: ca,
1319
+ createGraph: sa,
1320
+ workspace: ze
1321
+ }, ua = () => ({ latestGroupId: null, memory: {} }), L = (t) => {
1322
+ const e = t?.agentExecutionContext.sharedState.portalGroupSummaryMemory?.value;
1323
+ return e ? { latestGroupId: e.latestGroupId, memory: e.memory } : ua();
1324
+ }, Re = `
576
1325
  Shared markdown formatting rules:
577
1326
  - Use clear markdown headings (##) to separate sections.
578
1327
  - Use concise bullet points for lists of facts, counts, or signals.
579
1328
  - Emphasize key metrics with bold labels (for example: **Recent items:** 4).
580
1329
  - Keep wording direct and analytical; avoid filler language but make sure the language is friendly.
581
1330
  - Do not include raw internal IDs unless explicitly requested.
582
- `, ae = () => ({ latestGroupId: null, memory: {} }), q = (e) => {
583
- const t = e?.agentExecutionContext.sharedState.portalGroupSummaryMemory?.value;
584
- return t ? { latestGroupId: t.latestGroupId, memory: t.memory } : ae();
585
- }, re = async (e, t) => {
586
- await g({ text: "Answering group follow-up...", agentName: "group-analytics" }, t);
587
- const s = q(e), a = e.groupSummaryGroupId ?? s.latestGroupId, r = a ? s.memory[a] : void 0, i = e.groupSummaryQuestion || x(e.agentExecutionContext.messages);
588
- return r ? {
589
- status: "success",
590
- outputMessage: (await b({
591
- promptText: ne,
592
- schema: oe,
593
- modelTier: "default",
594
- inputVariables: {
595
- summary: r.summary,
596
- question: i,
597
- fullContext: JSON.stringify(r.fullContext)
598
- }
599
- })).answer
600
- } : {
601
- status: "success",
602
- outputMessage: "I do not have group analytics context yet. Ask me to analyze a group first with analyze group <group id>."
603
- };
604
- }, oe = o.object({
605
- answer: o.string(),
606
- isRelevant: o.boolean()
607
- }), ne = `
1331
+ `, da = `
608
1332
  You answer follow-up questions about ArcGIS group analytics.
609
1333
 
610
- ${st}
1334
+ ${Re}
611
1335
 
612
1336
  Ground your answer in the provided group analytics summary and context.
613
1337
  If the answer is not available from the provided context, state that clearly and suggest what to check next.
@@ -629,30 +1353,29 @@ Group full context:
629
1353
 
630
1354
  Question:
631
1355
  {question}
632
- `, ie = async (e, t) => {
633
- await g({ text: "Analyzing group-analytics intent...", agentName: "group-analytics" }, t);
634
- const s = x(e.agentExecutionContext.messages), a = !!q(e).latestGroupId, r = await z.fromTemplate(le).format({
635
- userMessage: s,
636
- hasAnalyticsContext: String(a)
637
- }), l = await U({
638
- model: await D({ modelTier: "fast" }),
639
- tools: [Z],
640
- systemPrompt: r,
641
- responseFormat: ue,
642
- checkpointer: !0
643
- }).invoke({ messages: e.agentExecutionContext.messages }, t), { intent: u, groupId: c, question: n } = l.structuredResponse, m = u === "summarize" && !c, p = u === "followUp" && !(n ?? "").trim(), d = u === "clarify" || m || p;
644
- return {
645
- groupSummaryIntent: d ? "clarify" : u,
646
- groupSummaryGroupId: c || null,
647
- groupSummaryQuestion: n || "",
1356
+ `, pa = async (t, e) => {
1357
+ await p({ text: "Answering group follow-up...", agentName: "group-analytics" }, e);
1358
+ const a = L(t), n = t.groupSummaryGroupId ?? a.latestGroupId, o = n ? a.memory[n] : void 0, r = t.groupSummaryQuestion || v(t.agentExecutionContext.messages);
1359
+ return o ? {
648
1360
  status: "success",
649
- outputMessage: d ? "Please clarify with a group id or title" : ""
1361
+ outputMessage: (await b({
1362
+ promptText: da,
1363
+ schema: ma,
1364
+ modelTier: "default",
1365
+ inputVariables: {
1366
+ summary: o.summary,
1367
+ question: r,
1368
+ fullContext: JSON.stringify(o.fullContext)
1369
+ }
1370
+ })).answer
1371
+ } : {
1372
+ status: "success",
1373
+ outputMessage: "I do not have group analytics context yet. Ask me to analyze a group first with analyze group <group id>."
650
1374
  };
651
- }, ue = o.object({
652
- intent: o.enum(["summarize", "followUp", "navigation", "clarify"]),
653
- groupId: o.string().default(""),
654
- question: o.string().default("")
655
- }), le = `
1375
+ }, ma = i.object({
1376
+ answer: i.string(),
1377
+ isRelevant: i.boolean()
1378
+ }), ga = `
656
1379
  Classify the user's request for ArcGIS Portal group analytics.
657
1380
 
658
1381
  Rules:
@@ -681,142 +1404,121 @@ hasAnalyticsContext:
681
1404
 
682
1405
  User message:
683
1406
  {userMessage}
684
- `, ce = async (e, t) => {
685
- const s = q(e), a = e.groupSummaryGroupId ?? s.latestGroupId;
686
- return await g({ text: "Preparing navigation...", agentName: "group-analytics" }, t), await R(
687
- a ? { destinationType: "portal-group", groupId: a } : { destinationType: "portal-groups" },
688
- t
1407
+ `, ha = async (t, e) => {
1408
+ await p({ text: "Analyzing group-analytics intent...", agentName: "group-analytics" }, e);
1409
+ const a = v(t.agentExecutionContext.messages), n = !!L(t).latestGroupId, o = await X.fromTemplate(ga).format({
1410
+ userMessage: a,
1411
+ hasAnalyticsContext: String(n)
1412
+ }), s = (await H({ modelTier: "fast" })).withStructuredOutput(de), c = de.parse(await s.invoke(o));
1413
+ let l = c.groupId;
1414
+ if ((c.intent === "summarize" || c.intent === "navigation") && !l) {
1415
+ const y = N(a, "$");
1416
+ y && (l = await qe.invoke({ groupTitle: y }, e) ?? "");
1417
+ }
1418
+ const { intent: d, question: u } = c, m = d === "summarize" && !l, g = d === "followUp" && !(u ?? "").trim(), f = d === "clarify" || m || g;
1419
+ return {
1420
+ groupSummaryIntent: f ? "clarify" : d,
1421
+ groupSummaryGroupId: l || null,
1422
+ groupSummaryQuestion: u || "",
1423
+ status: "success",
1424
+ outputMessage: f ? "Please clarify with a group id or title" : ""
1425
+ };
1426
+ }, de = i.object({
1427
+ intent: i.enum(["summarize", "followUp", "navigation", "clarify"]),
1428
+ groupId: i.string().default(""),
1429
+ question: i.string().default("")
1430
+ }), fa = async (t, e) => {
1431
+ const a = L(t), n = t.groupSummaryGroupId ?? a.latestGroupId;
1432
+ return await p({ text: "Preparing navigation...", agentName: "group-analytics" }, e), await O(
1433
+ n ? { destinationType: "portal-group", groupId: n } : { destinationType: "portal-groups" },
1434
+ e
689
1435
  ), { status: "success" };
690
1436
  };
691
- function at({ timestamp: e, now: t, windowMs: s }) {
692
- return e ? t - e <= s : !1;
1437
+ function De({ timestamp: t, now: e, windowMs: a }) {
1438
+ return t ? e - t <= a : !1;
693
1439
  }
694
- const me = 720 * 60 * 60 * 1e3;
695
- function de(e) {
696
- const t = vt(e);
1440
+ const ya = 720 * 60 * 60 * 1e3;
1441
+ function wa(t) {
1442
+ const e = at(t);
697
1443
  return {
698
- id: e.id ?? "",
699
- title: e.title ?? "",
700
- description: e.description ?? "",
701
- snippet: e.snippet ?? "",
702
- access: e.access ?? null,
703
- owner: e.owner ?? "",
704
- tags: e.tags ?? [],
705
- created: e.created?.getTime(),
706
- modified: e.modified?.getTime(),
707
- isInvitationOnly: e.isInvitationOnly,
1444
+ id: t.id ?? "",
1445
+ title: t.title ?? "",
1446
+ description: t.description ?? "",
1447
+ snippet: t.snippet ?? "",
1448
+ access: t.access ?? null,
1449
+ owner: t.owner ?? "",
1450
+ tags: t.tags ?? [],
1451
+ created: t.created?.getTime(),
1452
+ modified: t.modified?.getTime(),
1453
+ isInvitationOnly: t.isInvitationOnly,
708
1454
  sourceSignals: {
709
- capabilities: At(e),
710
- membershipAccess: Mt(e),
711
- isOpenData: Gt(e),
712
- isDistributedCollaborationGroup: St(e),
713
- orgId: t.orgId,
714
- hiddenMembers: t.hiddenMembers,
715
- isViewOnly: t.isViewOnly,
716
- isReadOnly: t.isReadOnly,
717
- leavingDisallowed: t.leavingDisallowed
1455
+ capabilities: it(t),
1456
+ membershipAccess: rt(t),
1457
+ isOpenData: ot(t),
1458
+ isDistributedCollaborationGroup: nt(t),
1459
+ orgId: e.orgId,
1460
+ hiddenMembers: e.hiddenMembers,
1461
+ isViewOnly: e.isViewOnly,
1462
+ isReadOnly: e.isReadOnly,
1463
+ leavingDisallowed: e.leavingDisallowed
718
1464
  }
719
1465
  };
720
1466
  }
721
- async function pe(e) {
722
- const t = { owner: e.owner ?? "", admins: [], users: [] };
1467
+ async function ba(t) {
1468
+ const e = { owner: t.owner ?? "", admins: [], users: [] };
723
1469
  try {
724
- return await e.fetchMembers();
725
- } catch (s) {
726
- return console.warn("Unable to fetch group members for analytics context", s), t;
1470
+ return await t.fetchMembers();
1471
+ } catch (a) {
1472
+ return console.warn("Unable to fetch group members for analytics context", a), e;
727
1473
  }
728
1474
  }
729
- function ge(e) {
730
- return e.map((t) => ({
731
- id: t.id ?? "",
732
- title: t.title ?? "Untitled",
733
- type: t.type ?? "Unknown",
734
- owner: t.owner ?? "",
735
- created: t.created?.getTime(),
736
- modified: t.modified?.getTime()
1475
+ function va(t) {
1476
+ return t.map((e) => ({
1477
+ id: e.id ?? "",
1478
+ title: e.title ?? "Untitled",
1479
+ type: e.type ?? "Unknown",
1480
+ owner: e.owner ?? "",
1481
+ created: e.created?.getTime(),
1482
+ modified: e.modified?.getTime()
737
1483
  }));
738
1484
  }
739
- function fe(e, t) {
740
- return e.filter(
741
- (s) => s.modified ? at({ timestamp: s.modified, now: t, windowMs: me }) : !1
1485
+ function Ia(t, e) {
1486
+ return t.filter(
1487
+ (a) => a.modified ? De({ timestamp: a.modified, now: e, windowMs: ya }) : !1
742
1488
  );
743
1489
  }
744
- function he(e) {
745
- const t = /* @__PURE__ */ new Map();
746
- for (const s of e)
747
- t.set(s.type, (t.get(s.type) ?? 0) + 1);
748
- return [...t.entries()].sort((s, a) => a[1] - s[1] || s[0].localeCompare(a[0])).slice(0, 6).map(([s, a]) => ({ type: s, count: a }));
1490
+ function Sa(t) {
1491
+ const e = /* @__PURE__ */ new Map();
1492
+ for (const a of t)
1493
+ e.set(a.type, (e.get(a.type) ?? 0) + 1);
1494
+ return [...e.entries()].sort((a, n) => n[1] - a[1] || a[0].localeCompare(n[0])).slice(0, 6).map(([a, n]) => ({ type: a, count: n }));
749
1495
  }
750
- async function ye(e) {
751
- const t = await e.queryItems({ num: 20, sortField: "modified", sortOrder: "desc" }), s = ge(t.results), a = Date.now();
1496
+ async function xa(t) {
1497
+ const e = await t.queryItems({ num: 20, sortField: "modified", sortOrder: "desc" }), a = va(e.results), n = Date.now();
752
1498
  return {
753
- total: t.total,
754
- topItems: s,
755
- recentlyModifiedItems: fe(s, a),
756
- topItemTypes: he(s)
1499
+ total: e.total,
1500
+ topItems: a,
1501
+ recentlyModifiedItems: Ia(a, n),
1502
+ topItemTypes: Sa(a)
757
1503
  };
758
1504
  }
759
- async function we(e, t) {
760
- if (!t)
1505
+ async function Ca(t, e) {
1506
+ if (!e)
761
1507
  return { error: { code: "missingGroupId", message: "Group id is required." } };
762
1508
  try {
763
- const a = (await e.queryGroups({ query: `id:${t}`, num: 1 })).results[0];
764
- if (!a)
765
- return { error: { code: "groupNotFound", message: `No group found for id: ${t}` } };
766
- const r = de(a), i = await pe(a), l = await ye(a);
767
- return { result: { group: r, members: i, items: l } };
768
- } catch (s) {
769
- return console.error("Error fetching portal group analytics context:", s), { error: { code: "unhandledError" } };
1509
+ const n = (await t.queryGroups({ query: `id:${e}`, num: 1 })).results[0];
1510
+ if (!n)
1511
+ return { error: { code: "groupNotFound", message: `No group found for id: ${e}` } };
1512
+ const o = wa(n), r = await ba(n), s = await xa(n);
1513
+ return { result: { group: o, members: r, items: s } };
1514
+ } catch (a) {
1515
+ return console.error("Error fetching portal group analytics context:", a), { error: { code: "unhandledError" } };
770
1516
  }
771
1517
  }
772
- const be = 2160 * 60 * 60 * 1e3, Ie = async (e, t) => {
773
- const s = e.groupSummaryGroupId;
774
- if (!s)
775
- return {
776
- status: "success",
777
- outputMessage: 'Please clarify with analyze group <group id>, analyze group $<title>, or analyze group $"<title with spaces>".'
778
- };
779
- await g({ text: `Analyzing group ${s}...`, agentName: "group-analytics" }, t);
780
- const a = t?.configurable?.context;
781
- I(a);
782
- const { result: r, error: i } = await we(a.portal, s);
783
- if (i || !r)
784
- return await g({ text: "Failed to fetch group context", agentName: "group-analytics" }, t), {
785
- status: "success",
786
- outputMessage: "Unable to retrieve group context for analytics."
787
- };
788
- const { group: l, items: u } = r, c = Date.now(), n = l.modified, m = n ? at({ timestamp: n, now: c, windowMs: be }) : !1, p = u.recentlyModifiedItems.length, d = p > 0, y = m || d, v = await b({
789
- promptText: ve,
790
- schema: xe,
791
- modelTier: "default",
792
- inputVariables: {
793
- context: JSON.stringify(r),
794
- deterministicSignals: JSON.stringify({
795
- isGroupActive: y,
796
- isGroupRecentlyModified: m,
797
- hasRecentlyAddedOrUpdatedContent: d,
798
- recentItemCount: p
799
- })
800
- }
801
- }), { followUpQuestions: w, summary: S } = v, nt = q(e), it = {
802
- latestGroupId: s,
803
- memory: {
804
- ...nt.memory,
805
- [s]: { summary: S, followUpQuestions: w, fullContext: r }
806
- }
807
- };
808
- return w.length && await E({ type: "suggested-prompts", data: { prompts: w } }, t), {
809
- status: "success",
810
- outputMessage: S,
811
- sharedStatePatch: { portalGroupSummaryMemory: { value: it } }
812
- };
813
- }, xe = o.object({
814
- summary: o.string(),
815
- followUpQuestions: o.array(o.string()).default([])
816
- }), ve = `
1518
+ const Ma = `
817
1519
  You summarize ArcGIS Portal groups based on structured context and deterministic activity signals.
818
1520
 
819
- ${st}
1521
+ ${Re}
820
1522
 
821
1523
  Output format requirements:
822
1524
  - Return concise markdown with clear sections in this order:
@@ -852,57 +1554,82 @@ Group context:
852
1554
 
853
1555
  Deterministic signals:
854
1556
  {deterministicSignals}
855
- `, $ = (e, t) => t ?? e, rt = f.Root({
856
- ...N(),
857
- groupSummaryIntent: f({
858
- reducer: $,
1557
+ `, Ta = 2160 * 60 * 60 * 1e3, Aa = async (t, e) => {
1558
+ const a = t.groupSummaryGroupId;
1559
+ if (!a)
1560
+ return {
1561
+ status: "success",
1562
+ outputMessage: 'Please clarify with analyze group <group id>, analyze group $<title>, or analyze group $"<title with spaces>".'
1563
+ };
1564
+ await p({ text: `Analyzing group ${a}...`, agentName: "group-analytics" }, e);
1565
+ const n = e?.configurable?.context;
1566
+ x(n);
1567
+ const { result: o, error: r } = await Ca(n.portal, a);
1568
+ if (r || !o)
1569
+ return await p({ text: "Failed to fetch group context", agentName: "group-analytics" }, e), {
1570
+ status: "success",
1571
+ outputMessage: "Unable to retrieve group context for analytics."
1572
+ };
1573
+ const { group: s, items: c } = o, l = Date.now(), d = s.modified, u = d ? De({ timestamp: d, now: l, windowMs: Ta }) : !1, m = c.recentlyModifiedItems.length, g = m > 0, f = u || g, y = await b({
1574
+ promptText: Ma,
1575
+ schema: Na,
1576
+ modelTier: "default",
1577
+ inputVariables: {
1578
+ context: JSON.stringify(o),
1579
+ deterministicSignals: JSON.stringify({
1580
+ isGroupActive: f,
1581
+ isGroupRecentlyModified: u,
1582
+ hasRecentlyAddedOrUpdatedContent: g,
1583
+ recentItemCount: m
1584
+ })
1585
+ }
1586
+ }), { followUpQuestions: M, summary: k } = y, C = L(t), T = {
1587
+ latestGroupId: a,
1588
+ memory: {
1589
+ ...C.memory,
1590
+ [a]: { summary: k, followUpQuestions: M, fullContext: o }
1591
+ }
1592
+ };
1593
+ return M.length && await Y({ type: "suggested-prompts", data: { prompts: M } }, e), {
1594
+ status: "success",
1595
+ outputMessage: k,
1596
+ sharedStatePatch: { portalGroupSummaryMemory: { value: T } }
1597
+ };
1598
+ }, Na = i.object({
1599
+ summary: i.string(),
1600
+ followUpQuestions: i.array(i.string()).default([])
1601
+ }), j = (t, e) => e ?? t, $e = h.Root({
1602
+ ...q(),
1603
+ groupSummaryIntent: h({
1604
+ reducer: j,
859
1605
  default: () => "clarify"
860
1606
  }),
861
- groupSummaryGroupId: f({
862
- reducer: $,
1607
+ groupSummaryGroupId: h({
1608
+ reducer: j,
863
1609
  default: () => null
864
1610
  }),
865
- groupSummaryQuestion: f({
866
- reducer: $,
1611
+ groupSummaryQuestion: h({
1612
+ reducer: j,
867
1613
  default: () => ""
868
1614
  })
869
- }), Se = () => new C(rt).addNode("detectGroupSummaryIntent", ie).addNode("summarizePortalGroup", Ie).addNode("answerGroupSummaryFollowUp", re).addNode("suggestGroupSummaryNavigation", ce).addEdge(P, "detectGroupSummaryIntent").addConditionalEdges("detectGroupSummaryIntent", (t) => t.groupSummaryIntent === "summarize" ? "summarizePortalGroup" : t.groupSummaryIntent === "followUp" ? "answerGroupSummaryFollowUp" : t.groupSummaryIntent === "navigation" ? "suggestGroupSummaryNavigation" : h).addEdge("summarizePortalGroup", h).addEdge("answerGroupSummaryFollowUp", h).addEdge("suggestGroupSummaryNavigation", h), Ge = String.raw`- **portal-group-analytics** - Portal group analytics assistant:
1615
+ }), Pa = () => new P($e).addNode("detectGroupSummaryIntent", ha).addNode("summarizePortalGroup", Aa).addNode("answerGroupSummaryFollowUp", pa).addNode("suggestGroupSummaryNavigation", fa).addEdge(G, "detectGroupSummaryIntent").addConditionalEdges("detectGroupSummaryIntent", (e) => e.groupSummaryIntent === "summarize" ? "summarizePortalGroup" : e.groupSummaryIntent === "followUp" ? "answerGroupSummaryFollowUp" : e.groupSummaryIntent === "navigation" ? "suggestGroupSummaryNavigation" : w).addEdge("summarizePortalGroup", w).addEdge("answerGroupSummaryFollowUp", w).addEdge("suggestGroupSummaryNavigation", w), Ga = String.raw`- **portal-group-analytics** - Portal group analytics assistant:
870
1616
  - summarizes ArcGIS portal groups from group context and sourceJSON details
871
1617
  - answers follow-up questions grounded in the summarized group
872
1618
  - suggests navigation to groups when relevant
873
- `, Me = {
1619
+ `, qa = {
874
1620
  id: "portal-group-analytics",
875
1621
  name: "Portal Group Analytics",
876
- description: Ge,
877
- createGraph: Se,
878
- workspace: rt
879
- }, Ae = () => ({ latestItemId: null, memory: {} }), F = (e) => {
880
- const t = e?.agentExecutionContext.sharedState.portalItemAnalyticsSummaryMemory?.value;
881
- return t ? { latestItemId: t.latestItemId, memory: t.memory } : Ae();
882
- }, Te = o.object({
883
- intent: o.enum(["summarize", "followUp", "clarify"]),
884
- itemId: o.string().default(""),
885
- question: o.string().default("")
886
- }), Ce = o.object({ summary: o.string(), followUpQuestions: o.array(o.string()).default([]) }), Pe = o.object({ answer: o.string(), isRelevant: o.boolean() }), Ne = async (e, t) => {
887
- await g({ text: "Answering follow-up...", agentName: "analytics" }, t);
888
- const s = F(e), a = e.analyticsItemId ?? s.latestItemId, r = a ? s.memory[a] : void 0, i = e.analyticsQuestion || x(e.agentExecutionContext.messages);
889
- return r ? {
890
- status: "success",
891
- outputMessage: (await b({
892
- promptText: qe,
893
- schema: Pe,
894
- modelTier: "default",
895
- inputVariables: {
896
- summary: r.summary,
897
- question: i,
898
- fullContext: JSON.stringify(r.fullContext)
899
- }
900
- })).answer
901
- } : {
902
- status: "success",
903
- outputMessage: "I don't have enough information yet. Please ask me to summarize the item first using summarize item <item id>."
904
- };
905
- }, qe = `
1622
+ description: Ga,
1623
+ createGraph: Pa,
1624
+ workspace: $e
1625
+ }, ka = () => ({ latestItemId: null, memory: {} }), Z = (t) => {
1626
+ const e = t?.agentExecutionContext.sharedState.portalItemAnalyticsSummaryMemory?.value;
1627
+ return e ? { latestItemId: e.latestItemId, memory: e.memory } : ka();
1628
+ }, pe = i.object({
1629
+ intent: i.enum(["summarize", "followUp", "clarify"]),
1630
+ itemId: i.string().default(""),
1631
+ question: i.string().default("")
1632
+ }), Ea = i.object({ summary: i.string(), followUpQuestions: i.array(i.string()).default([]) }), za = i.object({ answer: i.string(), isRelevant: i.boolean() }), Ra = `
906
1633
  You answer follow-up questions about an ArcGIS item.
907
1634
 
908
1635
  Ground your answer in the provided item context.
@@ -922,27 +1649,26 @@ Item full context
922
1649
 
923
1650
  Question:
924
1651
  {question}
925
- `, $e = async (e, t) => {
926
- await g({ text: "Analyzing intent...", agentName: "analytics" }, t);
927
- const s = x(e.agentExecutionContext.messages), a = !!F(e).latestItemId, r = await z.fromTemplate(ke).format({
928
- userMessage: s,
929
- hasSummaryContext: String(a)
930
- }), l = await U({
931
- model: await D({ modelTier: "fast" }),
932
- tools: [tt],
933
- systemPrompt: r,
934
- responseFormat: Te,
935
- checkpointer: !0
936
- }).invoke({ messages: e.agentExecutionContext.messages }, t), { intent: u, itemId: c, question: n } = l.structuredResponse, d = u === "clarify" || u === "summarize" && !c || u === "followUp" && !n;
937
- return {
938
- agentExecutionContext: { ...e.agentExecutionContext },
939
- analyticsIntent: d ? "clarify" : u,
940
- analyticsItemId: c || null,
941
- analyticsQuestion: n || "",
1652
+ `, Da = async (t, e) => {
1653
+ await p({ text: "Answering follow-up...", agentName: "analytics" }, e);
1654
+ const a = Z(t), n = t.analyticsItemId ?? a.latestItemId, o = n ? a.memory[n] : void 0, r = t.analyticsQuestion || v(t.agentExecutionContext.messages);
1655
+ return o ? {
942
1656
  status: "success",
943
- outputMessage: d ? 'Please clarify with summarize item <item id>, summarize item #<title>, or summarize item #"<title with spaces>".' : ""
1657
+ outputMessage: (await b({
1658
+ promptText: Ra,
1659
+ schema: za,
1660
+ modelTier: "default",
1661
+ inputVariables: {
1662
+ summary: o.summary,
1663
+ question: r,
1664
+ fullContext: JSON.stringify(o.fullContext)
1665
+ }
1666
+ })).answer
1667
+ } : {
1668
+ status: "success",
1669
+ outputMessage: "I don't have enough information yet. Please ask me to summarize the item first using summarize item <item id>."
944
1670
  };
945
- }, ke = `
1671
+ }, $a = `
946
1672
  Classify the user analytics request.
947
1673
 
948
1674
  Rules:
@@ -972,40 +1698,27 @@ hasSummaryContext:
972
1698
 
973
1699
  User message:
974
1700
  {userMessage}
975
- `, Ee = async (e, t) => {
976
- const s = e.analyticsItemId;
977
- if (!s)
978
- return {
979
- status: "success",
980
- outputMessage: 'Please clarify with summarize item <item id>, summarize item #<title>, or summarize item #"<title with spaces>".'
981
- };
982
- await g({ text: `Summarizing item ${s}...`, agentName: "analytics" }, t);
983
- const a = t?.configurable?.context;
984
- I(a);
985
- const { portal: r, user: i } = a, { result: l, error: u } = await bt(i, r, s);
986
- if (u || !l)
987
- return await g({ text: "Failed to get item context for summarization", agentName: "analytics" }, t), {
988
- status: "success",
989
- outputMessage: "Unable to retrieve item context for summarization."
990
- };
991
- const { context: c } = l, n = await b({
992
- promptText: De,
993
- schema: Ce,
994
- modelTier: "default",
995
- inputVariables: { context: JSON.stringify(c) }
996
- }), { followUpQuestions: m, summary: p } = n, d = F(e), y = {
997
- latestItemId: s,
998
- memory: {
999
- ...d.memory,
1000
- [s]: { summary: p, followUpQuestions: m, fullContext: c }
1001
- }
1002
- };
1003
- return m.length && await E({ type: "suggested-prompts", data: { prompts: m } }, t), {
1701
+ `, Ua = async (t, e) => {
1702
+ await p({ text: "Analyzing intent...", agentName: "analytics" }, e);
1703
+ const a = v(t.agentExecutionContext.messages), n = !!Z(t).latestItemId, o = await X.fromTemplate($a).format({
1704
+ userMessage: a,
1705
+ hasSummaryContext: String(n)
1706
+ }), s = (await H({ modelTier: "fast" })).withStructuredOutput(pe), c = pe.parse(await s.invoke(o));
1707
+ let l = c.itemId;
1708
+ if (c.intent === "summarize" && !l) {
1709
+ const y = N(a, "#");
1710
+ y && (l = await ke.invoke({ itemTitle: y }, e) ?? "");
1711
+ }
1712
+ const { intent: d, question: u } = c, f = d === "clarify" || d === "summarize" && !l || d === "followUp" && !u;
1713
+ return {
1714
+ agentExecutionContext: { ...t.agentExecutionContext },
1715
+ analyticsIntent: f ? "clarify" : d,
1716
+ analyticsItemId: l || null,
1717
+ analyticsQuestion: u || "",
1004
1718
  status: "success",
1005
- outputMessage: p,
1006
- sharedStatePatch: { portalItemAnalyticsSummaryMemory: { value: y } }
1719
+ outputMessage: f ? 'Please clarify with summarize item <item id>, summarize item #<title>, or summarize item #"<title with spaces>".' : ""
1007
1720
  };
1008
- }, De = `
1721
+ }, Fa = `
1009
1722
  You are a item summary tool for ArcGIS. Your job is to summarize an item's info based on the provided context.
1010
1723
  Summary rules:
1011
1724
  - The summary should be concise markdown, make sure to format the output nicely so it's easy to read.
@@ -1020,144 +1733,807 @@ Do not include internal identifiers.
1020
1733
  If the user asks for a detailed summary, you may expand the response up to 300 words.
1021
1734
  Item context:
1022
1735
  {context}
1023
- `, k = (e, t) => t ?? e, ot = f.Root({
1024
- ...N(),
1736
+ `, Oa = async (t, e) => {
1737
+ const a = t.analyticsItemId;
1738
+ if (!a)
1739
+ return {
1740
+ status: "success",
1741
+ outputMessage: 'Please clarify with summarize item <item id>, summarize item #<title>, or summarize item #"<title with spaces>".'
1742
+ };
1743
+ await p({ text: `Summarizing item ${a}...`, agentName: "analytics" }, e);
1744
+ const n = e?.configurable?.context;
1745
+ x(n);
1746
+ const { portal: o, user: r } = n, { result: s, error: c } = await tt(r, o, a);
1747
+ if (c || !s)
1748
+ return await p({ text: "Failed to get item context for summarization", agentName: "analytics" }, e), {
1749
+ status: "success",
1750
+ outputMessage: "Unable to retrieve item context for summarization."
1751
+ };
1752
+ const { context: l } = s, d = await b({
1753
+ promptText: Fa,
1754
+ schema: Ea,
1755
+ modelTier: "default",
1756
+ inputVariables: { context: JSON.stringify(l) }
1757
+ }), { followUpQuestions: u, summary: m } = d, g = Z(t), f = {
1758
+ latestItemId: a,
1759
+ memory: {
1760
+ ...g.memory,
1761
+ [a]: { summary: m, followUpQuestions: u, fullContext: l }
1762
+ }
1763
+ };
1764
+ return u.length && await Y({ type: "suggested-prompts", data: { prompts: u } }, e), {
1765
+ status: "success",
1766
+ outputMessage: m,
1767
+ sharedStatePatch: { portalItemAnalyticsSummaryMemory: { value: f } }
1768
+ };
1769
+ }, K = (t, e) => e ?? t, Ue = h.Root({
1770
+ ...q(),
1025
1771
  // States shared only across nodes in the graph, not between invocations
1026
- analyticsIntent: f({
1027
- reducer: k,
1772
+ analyticsIntent: h({
1773
+ reducer: K,
1028
1774
  default: () => "clarify"
1029
1775
  }),
1030
- analyticsItemId: f({
1031
- reducer: k,
1776
+ analyticsItemId: h({
1777
+ reducer: K,
1032
1778
  default: () => null
1033
1779
  }),
1034
- analyticsQuestion: f({
1035
- reducer: k,
1780
+ analyticsQuestion: h({
1781
+ reducer: K,
1036
1782
  default: () => ""
1037
1783
  })
1038
- }), ze = () => new C(ot).addNode("detectAnalyticsIntent", $e).addNode("summarizePortalItem", Ee).addNode("answerAnalyticsFollowUp", Ne).addEdge(P, "detectAnalyticsIntent").addConditionalEdges("detectAnalyticsIntent", (t) => t.analyticsIntent === "summarize" ? "summarizePortalItem" : t.analyticsIntent === "followUp" ? "answerAnalyticsFollowUp" : h).addEdge("summarizePortalItem", h).addEdge("answerAnalyticsFollowUp", h), Ue = String.raw`- **portal-item-analytics** - Portal item analytics assistant:
1039
- - summarizes ArcGIS portal items from item context
1040
- - suggests follow-up prompts grounded in the item
1041
- `, Re = {
1784
+ }), La = () => new P(Ue).addNode("detectAnalyticsIntent", Ua).addNode("summarizePortalItem", Oa).addNode("answerAnalyticsFollowUp", Da).addEdge(G, "detectAnalyticsIntent").addConditionalEdges("detectAnalyticsIntent", (e) => e.analyticsIntent === "summarize" ? "summarizePortalItem" : e.analyticsIntent === "followUp" ? "answerAnalyticsFollowUp" : w).addEdge("summarizePortalItem", w).addEdge("answerAnalyticsFollowUp", w), ja = String.raw`- **portal-item-analytics** - Portal item analytics assistant:
1785
+ - answers questions about one specific ArcGIS portal item when item context is present
1786
+ - summarizes item details, metadata, and context grounded in that item
1787
+ - suggests follow-up prompts grounded in the same item
1788
+ - use for item-specific requests, not for gallery browsing, featured content, or opening Map Viewer
1789
+ `, Ka = {
1042
1790
  id: "portal-item-analytics",
1043
1791
  name: "Portal Item Analytics",
1044
- description: Ue,
1045
- createGraph: ze,
1046
- workspace: ot
1047
- }, Fe = mt`:host{height:100%;border-width:1px;border-style:solid;border-color:var(--calcite-color-border-3);display:block;width:100%;--tw-shadow: 0 1px 6px -1px rgba(0, 0, 0, .16), 0 1px 2px -1px rgba(0, 0, 0, .08);--tw-shadow-colored: 0 1px 6px -1px var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.chat-entry{display:flex;flex-direction:column;gap:.75rem;width:100%}.chat-actions{display:flex;justify-content:flex-end;gap:.5rem}.header-actions{display:flex;gap:.5rem;padding-inline-start:.75rem}.navigation-block{display:flex;flex-direction:column;align-items:stretch;gap:.35rem;margin-top:.5rem}.navigation-button{width:100%;margin-block:.25rem}.navigation-block-description{font-size:.75rem;color:var(--calcite-color-text-3)}`;
1048
- function je(e, t) {
1792
+ description: ja,
1793
+ createGraph: La,
1794
+ workspace: Ue
1795
+ }, Va = /^(?:take me to|navigate to|go to|show me|open)\s+(?:the\s+)?/u;
1796
+ function U(t) {
1797
+ return t.toLowerCase().replace(/[^a-z0-9]+/gu, " ").trim().replace(Va, "").trim();
1798
+ }
1799
+ const Ba = i.object({
1800
+ capabilityIds: i.array(i.string()).default([]),
1801
+ confidence: i.number().min(0).max(1).default(0),
1802
+ reason: i.string().default("")
1803
+ }), me = 0.8, Qa = String.raw`You select Portal navigation capabilities for a user's request.
1804
+
1805
+ Select only capability IDs from the supplied candidates. Return an empty array when none fit.
1806
+ A named surface is required: do not select a capability on another Portal surface.
1807
+ Retrieval scores are hints only, not ground truth.
1808
+
1809
+ User request:
1810
+ {userRequest}
1811
+
1812
+ Candidates:
1813
+ {candidates}`, Wa = async (t, e) => {
1814
+ if (t.outputMessage || t.targets.length === 0)
1815
+ return {};
1816
+ const a = v(t.agentExecutionContext.messages).trim(), n = Ja(a, t);
1817
+ if (n.length === 1)
1818
+ return await p(
1819
+ { text: `Selected navigation capability by exact match: ${n[0]}`, agentName: "navigation" },
1820
+ e
1821
+ ), console.info("[arcgis-portal-ai-assistant] navigation capability selection:", {
1822
+ method: "exact-match",
1823
+ request: a,
1824
+ selectedCapabilityIds: n
1825
+ }), { chosenCapabilityIds: n };
1826
+ await p({ text: "Choosing a navigation destination...", agentName: "navigation" }, e);
1827
+ const o = JSON.stringify(
1828
+ t.targets.map(({ capability: r, keywordScore: s, semanticScore: c }) => ({
1829
+ id: r.id,
1830
+ title: r.title,
1831
+ description: r.description,
1832
+ route: r.resolutions.navigate,
1833
+ keywordScore: s,
1834
+ semanticScore: c
1835
+ }))
1836
+ );
1837
+ try {
1838
+ const r = await b({
1839
+ promptText: Qa,
1840
+ schema: Ba,
1841
+ modelTier: "fast",
1842
+ inputVariables: { candidates: o, userRequest: a }
1843
+ }), s = new Set(t.targets.map(({ capability: l }) => l.id)), c = r.capabilityIds.filter((l) => s.has(l));
1844
+ return await p(
1845
+ {
1846
+ text: `Navigation selection: ${c.join(", ") || "none"} (confidence: ${r.confidence.toFixed(2)}, reason: ${r.reason})`,
1847
+ agentName: "navigation"
1848
+ },
1849
+ e
1850
+ ), console.info("[arcgis-portal-ai-assistant] navigation capability selection:", {
1851
+ confidence: r.confidence,
1852
+ method: "structured-model",
1853
+ reason: r.reason,
1854
+ request: a,
1855
+ selectedCapabilityIds: c
1856
+ }), c.length === 0 ? {
1857
+ chosenCapabilityIds: [],
1858
+ status: "failed",
1859
+ summary: "Navigation selection found no matching capability; defer to the Portal Doc Assistant."
1860
+ } : r.confidence < me ? {
1861
+ chosenCapabilityIds: [],
1862
+ status: "failed",
1863
+ summary: `Navigation selection confidence ${r.confidence} is below the required ${me}; defer to the Portal Doc Assistant.`
1864
+ } : { chosenCapabilityIds: c };
1865
+ } catch {
1866
+ return await p(
1867
+ { text: "Navigation selection model unavailable; using retrieval order.", agentName: "navigation" },
1868
+ e
1869
+ ), console.info("[arcgis-portal-ai-assistant] navigation capability selection:", {
1870
+ method: "structured-model-unavailable",
1871
+ request: a,
1872
+ selectedCapabilityIds: []
1873
+ }), { chosenCapabilityIds: [] };
1874
+ }
1875
+ };
1876
+ function Ja(t, e) {
1877
+ const a = U(t);
1878
+ return e.targets.filter(
1879
+ ({ capability: n }) => [n.title, ...n.hints].some(
1880
+ (o) => U(o) === a
1881
+ )
1882
+ ).map(({ capability: n }) => n.id);
1883
+ }
1884
+ const Fe = /* @__PURE__ */ new Set(["1d", "7d", "14d", "30d", "3m", "6m"]), _a = i.object({
1885
+ period: i.string(),
1886
+ startTime: i.string(),
1887
+ endTime: i.string()
1888
+ }), Ya = String.raw`Extract temporal filters for an ArcGIS storage-credits query.
1889
+
1890
+ Return JSON only with these optional string fields:
1891
+ - period
1892
+ - startTime
1893
+ - endTime
1894
+
1895
+ Rules:
1896
+ - period must use <integer><unit> with unit in d,w,m (examples: 7d, 2w, 3m).
1897
+ - If the request is a relative range and period can be determined, always include period.
1898
+ - For "last quarter" or "previous quarter", use calendar-quarter boundaries and include period as 3m with both startTime and endTime.
1899
+ - For "last quarter" or "previous quarter", endTime must be the UTC end of the previous quarter, not "now".
1900
+ - If period matches one of these supported periods and the range ends today, period alone is sufficient:
1901
+ 1d, 7d, 14d, 30d, 3m, 6m.
1902
+ - If the request implies a range not supported as period (for example 2m or 10d), include startTime and endTime.
1903
+ - For custom date ranges (for example "last december"), provide startTime and endTime.
1904
+ - startTime and endTime must be epoch milliseconds as strings.
1905
+ - If the end of range is "now", set endTime to {nowEpochMs}.
1906
+ - If temporal intent is unclear, return empty strings for all fields.
1907
+
1908
+ Now UTC:
1909
+ - ISO: {nowIso}
1910
+ - Epoch ms: {nowEpochMs}
1911
+
1912
+ User request:
1913
+ {userRequest}`;
1914
+ async function Ha(t, e = /* @__PURE__ */ new Date()) {
1915
+ const a = t.trim();
1916
+ if (!a)
1917
+ return {};
1918
+ try {
1919
+ const n = await b({
1920
+ promptText: Ya,
1921
+ schema: _a,
1922
+ modelTier: "fast",
1923
+ inputVariables: {
1924
+ nowEpochMs: String(e.getTime()),
1925
+ nowIso: e.toISOString(),
1926
+ userRequest: a
1927
+ }
1928
+ });
1929
+ return Xa(n, e);
1930
+ } catch (n) {
1931
+ return console.error(n), {};
1932
+ }
1933
+ }
1934
+ function Xa(t, e = /* @__PURE__ */ new Date()) {
1935
+ const a = ge(t.startTime), n = ge(t.endTime), o = Za(t.period);
1936
+ if (o) {
1937
+ if (a !== void 0 && n !== void 0 && a < n)
1938
+ return { period: o, startTime: String(a), endTime: String(n) };
1939
+ const r = Fe.has(o);
1940
+ if (!r || n !== void 0 && !tn(n, e.getTime())) {
1941
+ const c = n ?? e.getTime(), l = en(o, new Date(c));
1942
+ if (l !== void 0)
1943
+ return {
1944
+ period: o,
1945
+ startTime: String(l),
1946
+ endTime: String(c)
1947
+ };
1948
+ }
1949
+ return r ? {
1950
+ period: o,
1951
+ ...a !== void 0 ? { startTime: String(a) } : {},
1952
+ ...n !== void 0 ? { endTime: String(n) } : {}
1953
+ } : { period: o };
1954
+ }
1955
+ return a !== void 0 && n !== void 0 && a < n ? { startTime: String(a), endTime: String(n) } : a !== void 0 ? { startTime: String(a), endTime: String(e.getTime()) } : {};
1956
+ }
1957
+ function Za(t) {
1958
+ const e = t?.trim().match(/^(\d+)\s*([dwm])$/iu);
1959
+ if (!e)
1960
+ return;
1961
+ const a = Number.parseInt(e[1], 10);
1962
+ if (!Number.isFinite(a) || a <= 0)
1963
+ return;
1964
+ const n = e[2].toLowerCase();
1965
+ if (n === "w") {
1966
+ const o = a * 7;
1967
+ if (Fe.has(`${o}d`))
1968
+ return `${o}d`;
1969
+ }
1970
+ return `${a}${n}`;
1971
+ }
1972
+ function en(t, e) {
1973
+ const a = t.match(/^(\d+)([dwm])$/u);
1974
+ if (!a)
1975
+ return;
1976
+ const n = Number.parseInt(a[1], 10);
1977
+ if (!Number.isFinite(n) || n <= 0)
1978
+ return;
1979
+ const o = a[2];
1980
+ if (o === "d")
1981
+ return e.getTime() - n * 24 * 60 * 60 * 1e3;
1982
+ if (o === "w")
1983
+ return e.getTime() - n * 7 * 24 * 60 * 60 * 1e3;
1984
+ const r = new Date(e.getTime());
1985
+ return r.setUTCMonth(r.getUTCMonth() - n), r.getTime();
1986
+ }
1987
+ function ge(t) {
1049
1988
  if (!t)
1050
1989
  return;
1051
- const { destinationType: s } = e;
1052
- switch (s) {
1990
+ const e = Number.parseInt(t, 10);
1991
+ if (!(!Number.isFinite(e) || e <= 0))
1992
+ return e;
1993
+ }
1994
+ function tn(t, e) {
1995
+ const a = new Date(t), n = new Date(e);
1996
+ return a.getUTCFullYear() === n.getUTCFullYear() && a.getUTCMonth() === n.getUTCMonth() && a.getUTCDate() === n.getUTCDate();
1997
+ }
1998
+ async function an(t, e, a, n) {
1999
+ const o = S().find((c) => c.id === t);
2000
+ if (!o)
2001
+ return;
2002
+ const r = o.resolutions.navigate, s = await on(
2003
+ r.routeKey === "group" ? nn(o.buttonLabel, r, n) : A({
2004
+ navigate: r,
2005
+ buttonLabel: o.buttonLabel,
2006
+ capabilityId: o.id
2007
+ }),
2008
+ a
2009
+ );
2010
+ return s && sn(s, e) ? { capability: o, target: s } : void 0;
2011
+ }
2012
+ function nn(t, e, a) {
2013
+ const n = a?.trim();
2014
+ return n ? {
2015
+ destinationType: "portal-group",
2016
+ groupId: n,
2017
+ ...e.hash ? { hash: e.hash } : {},
2018
+ ...e.queryParams ? { queryParams: e.queryParams } : {},
2019
+ ...t ? { buttonLabel: t } : {}
2020
+ } : void 0;
2021
+ }
2022
+ async function on(t, e) {
2023
+ if (!t || !e || !rn(t))
2024
+ return t;
2025
+ const a = await Ha(e);
2026
+ if (!a.period && !a.startTime && !a.endTime)
2027
+ return t;
2028
+ const n = {
2029
+ ...t.queryParams ?? {},
2030
+ ...a.period ? { period: a.period } : {},
2031
+ ...a.startTime ? { startTime: a.startTime } : {},
2032
+ ...a.endTime ? { endTime: a.endTime } : {}
2033
+ };
2034
+ return { ...t, queryParams: n };
2035
+ }
2036
+ function rn(t) {
2037
+ return t.destinationType === "portal-org" && t.hash === "status";
2038
+ }
2039
+ function sn(t, e) {
2040
+ return !e || !!e[t.destinationType];
2041
+ }
2042
+ function he(t) {
2043
+ return t.match(/\b[a-f0-9]{32}\b/iu)?.[0];
2044
+ }
2045
+ const fe = "navigation", ye = "provideGroupId", cn = async (t, e) => {
2046
+ if (t.outputMessage || t.status === "failed")
2047
+ return {};
2048
+ const a = t.targets.find(({ capability: s }) => t.chosenCapabilityIds.includes(s.id)) ?? t.targets[0];
2049
+ if (!a)
2050
+ return {
2051
+ outputMessage: "I couldn't find a matching Portal page. Try asking to open your content, groups, or organization settings.",
2052
+ sharedStatePatch: { navLastAnsweredRequest: { value: we(t) } },
2053
+ status: "success",
2054
+ summary: "Navigation could not find a matching capability; route another agent if appropriate."
2055
+ };
2056
+ const n = we(t), o = ln(a.capability.resolutions.navigate, n, e), r = await an(
2057
+ a.capability.id,
2058
+ void 0,
2059
+ n,
2060
+ o
2061
+ );
2062
+ return r ? (await p({ text: "Preparing navigation...", agentName: "navigation" }, e), await O(r.target, e), {
2063
+ outputMessage: t.chosenCapabilityIds.length ? a.capability.description : `The closest place to start is ${a.capability.title}. Click the button below to open it.`,
2064
+ status: "success",
2065
+ summary: `Navigation suggested ${a.capability.id}${t.retrievalDegraded ? " using keyword-only retrieval" : ""}.`,
2066
+ sharedStatePatch: { navLastAnsweredRequest: { value: n } }
2067
+ }) : (console.warn(`Navigation capability ${a.capability.id} was not found in the resolver.`), {
2068
+ outputMessage: "I found a possible destination, but couldn't resolve a valid Portal navigation target. Try asking to open your content, groups, or organization settings.",
2069
+ status: "success",
2070
+ summary: `Navigation resolver could not map ${a.capability.id}.`,
2071
+ sharedStatePatch: { navLastAnsweredRequest: { value: n } }
2072
+ });
2073
+ };
2074
+ function we(t) {
2075
+ return v(t.agentExecutionContext.messages) || t.agentExecutionContext.userRequest;
2076
+ }
2077
+ function ln(t, e, a) {
2078
+ if (t.routeKey !== "group")
2079
+ return;
2080
+ const n = he(e);
2081
+ if (n)
2082
+ return n;
2083
+ const o = un(a);
2084
+ if (o?.agentId === fe && o.id === ye) {
2085
+ const s = typeof o.payload == "string" ? he(o.payload) : void 0;
2086
+ if (s)
2087
+ return s;
2088
+ }
2089
+ const r = {
2090
+ agentId: fe,
2091
+ id: ye,
2092
+ kind: "textInput",
2093
+ message: "Enter the group ID to open."
2094
+ };
2095
+ throw new _(r);
2096
+ }
2097
+ function un(t) {
2098
+ const e = t?.configurable;
2099
+ if (!e || typeof e != "object" || !("hitlResponse" in e))
2100
+ return;
2101
+ const a = e.hitlResponse;
2102
+ if (!a || typeof a != "object" || !("agentId" in a) || !("id" in a) || !("payload" in a))
2103
+ return;
2104
+ const { agentId: n, id: o, payload: r } = a;
2105
+ return typeof n == "string" && typeof o == "string" ? { agentId: n, id: o, payload: r } : void 0;
2106
+ }
2107
+ async function Oe(t) {
2108
+ return t.length === 0 ? [] : (await ct.getDefault().load(), await st(t));
2109
+ }
2110
+ const dn = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
2111
+ __proto__: null,
2112
+ generateEmbeddings: Oe
2113
+ }, Symbol.toStringTag, { value: "Module" }));
2114
+ function pn(t) {
2115
+ const e = [], a = `${t.title}. ${t.description}`;
2116
+ a.trim().length > 0 && e.push({ field: "summary", text: a });
2117
+ const n = t.hints;
2118
+ if (Array.isArray(n))
2119
+ for (const o of n)
2120
+ typeof o == "string" && o.trim().length > 0 && e.push({ field: "hint", text: o });
2121
+ return e;
2122
+ }
2123
+ let D, ee, $ = 0;
2124
+ async function mn(t = {}) {
2125
+ const e = $;
2126
+ return D ??= hn(t.embed ?? fn).then((a) => (e === $ && (ee = a), a)).catch((a) => {
2127
+ throw e === $ && (D = void 0), a;
2128
+ }), await D;
2129
+ }
2130
+ function gn() {
2131
+ return ee;
2132
+ }
2133
+ function be() {
2134
+ $ += 1, ee = void 0, D = void 0;
2135
+ }
2136
+ async function hn(t) {
2137
+ const e = yn(), a = await t(e.map((n) => n.text));
2138
+ if (a.length !== e.length)
2139
+ throw new Error(`Expected ${e.length} vectors, got ${a.length}`);
2140
+ return e.map((n, o) => ({
2141
+ ...n,
2142
+ vector: a[o]
2143
+ }));
2144
+ }
2145
+ async function fn(t) {
2146
+ const { generateEmbeddings: e } = await Promise.resolve().then(() => dn);
2147
+ return await e(t);
2148
+ }
2149
+ function yn() {
2150
+ return S().flatMap(
2151
+ (t) => pn(t).map(({ field: e, text: a }) => ({
2152
+ capabilityId: t.id,
2153
+ field: e,
2154
+ text: a
2155
+ }))
2156
+ );
2157
+ }
2158
+ const ve = 1.2, Ie = 0.75, wn = 60, bn = 0.65, V = {
2159
+ description: 1,
2160
+ hint: 2,
2161
+ title: 3
2162
+ };
2163
+ let J;
2164
+ function vn() {
2165
+ J = void 0;
2166
+ }
2167
+ async function In(t, e = {}) {
2168
+ const a = Mn(Le(t));
2169
+ let n = [], o = !1, r;
2170
+ if (t.trim()) {
2171
+ const s = e.loadEmbeddings, c = gn();
2172
+ if (!s && !c)
2173
+ o = !0, r = "Capability embeddings are still loading.";
2174
+ else
2175
+ try {
2176
+ if (s) {
2177
+ const [l, d] = await Promise.all([
2178
+ (e.embedQuery ?? xe)(t),
2179
+ s()
2180
+ ]);
2181
+ n = Se(l, d);
2182
+ } else if (c) {
2183
+ const l = await (e.embedQuery ?? xe)(t);
2184
+ n = Se(l, c);
2185
+ }
2186
+ } catch {
2187
+ o = !0, r = "Semantic search is unavailable.";
2188
+ }
2189
+ }
2190
+ return {
2191
+ degraded: o,
2192
+ ...r ? { degradedReason: r } : {},
2193
+ // RRF combines ranks rather than raw scores because BM25 and cosine
2194
+ // similarity are on different scales.
2195
+ matches: An(a, n, e.topN ?? 5)
2196
+ };
2197
+ }
2198
+ function Sn() {
2199
+ return J ??= xn(S()), J;
2200
+ }
2201
+ function xn(t) {
2202
+ const e = /* @__PURE__ */ new Map(), a = t.map((n) => {
2203
+ const o = /* @__PURE__ */ new Map();
2204
+ B(o, n.title, V.title), B(o, n.description, V.description);
2205
+ for (const r of n.hints)
2206
+ B(o, r, V.hint);
2207
+ for (const r of o.keys())
2208
+ e.set(r, (e.get(r) ?? 0) + 1);
2209
+ return {
2210
+ capability: n,
2211
+ length: Cn(o),
2212
+ termFrequencies: o
2213
+ };
2214
+ });
2215
+ return {
2216
+ averageDocumentLength: a.length ? a.reduce((n, o) => n + o.length, 0) / a.length : 0,
2217
+ documentFrequency: e,
2218
+ documents: a
2219
+ };
2220
+ }
2221
+ function B(t, e, a) {
2222
+ for (const n of Le(e))
2223
+ t.set(n, (t.get(n) ?? 0) + a);
2224
+ }
2225
+ function Cn(t) {
2226
+ return [...t.values()].reduce((e, a) => e + a, 0);
2227
+ }
2228
+ function Le(t) {
2229
+ return t.toLowerCase().split(/[^a-z0-9]+/u).filter(Boolean);
2230
+ }
2231
+ function Mn(t) {
2232
+ const e = Sn(), a = new Set(t), n = e.documents.length;
2233
+ return e.documents.map(({ capability: o, length: r, termFrequencies: s }) => {
2234
+ let c = 0;
2235
+ for (const l of a) {
2236
+ const d = s.get(l), u = e.documentFrequency.get(l);
2237
+ if (!d || !u)
2238
+ continue;
2239
+ const m = Math.log(1 + (n - u + 0.5) / (u + 0.5)), g = ve * (1 - Ie + Ie * (r / e.averageDocumentLength));
2240
+ c += m * (d * (ve + 1) / (d + g));
2241
+ }
2242
+ return { capability: o, score: c };
2243
+ }).filter(({ score: o }) => o > 0).sort(je);
2244
+ }
2245
+ function Se(t, e) {
2246
+ const a = /* @__PURE__ */ new Map();
2247
+ for (const o of e) {
2248
+ const r = Tn(t, o.vector);
2249
+ if (r === void 0)
2250
+ continue;
2251
+ const s = a.get(o.capabilityId);
2252
+ (s === void 0 || r > s) && a.set(o.capabilityId, r);
2253
+ }
2254
+ const n = new Map(S().map((o) => [o.id, o]));
2255
+ return [...a.entries()].flatMap(([o, r]) => {
2256
+ const s = n.get(o);
2257
+ return s && r >= bn ? [{ capability: s, score: r }] : [];
2258
+ }).sort(je);
2259
+ }
2260
+ function Tn(t, e) {
2261
+ if (t.length === 0 || t.length !== e.length)
2262
+ return;
2263
+ let a = 0, n = 0, o = 0;
2264
+ for (let s = 0; s < t.length; s += 1)
2265
+ a += t[s] * e[s], n += t[s] ** 2, o += e[s] ** 2;
2266
+ const r = Math.sqrt(n) * Math.sqrt(o);
2267
+ return r === 0 ? void 0 : a / r;
2268
+ }
2269
+ async function xe(t) {
2270
+ const [e] = await Oe([t]);
2271
+ if (!e)
2272
+ throw new Error("Expected one query embedding.");
2273
+ return e;
2274
+ }
2275
+ function An(t, e, a) {
2276
+ const n = /* @__PURE__ */ new Map();
2277
+ return Ce(n, t, "keyword"), Ce(n, e, "semantic"), [...n.values()].sort((o, r) => r.score !== o.score ? r.score - o.score : (r.semanticScore ?? 0) !== (o.semanticScore ?? 0) ? (r.semanticScore ?? 0) - (o.semanticScore ?? 0) : (r.keywordScore ?? 0) !== (o.keywordScore ?? 0) ? (r.keywordScore ?? 0) - (o.keywordScore ?? 0) : o.capability.id.localeCompare(r.capability.id)).slice(0, Math.max(0, a));
2278
+ }
2279
+ function Ce(t, e, a) {
2280
+ for (const [n, { capability: o, score: r }] of e.entries()) {
2281
+ const s = n + 1, c = t.get(o.id) ?? { capability: o, score: 0 };
2282
+ c.score += 1 / (wn + s), a === "keyword" ? (c.keywordRank = s, c.keywordScore = r) : (c.semanticRank = s, c.semanticScore = r), t.set(o.id, c);
2283
+ }
2284
+ }
2285
+ function je(t, e) {
2286
+ return e.score - t.score || t.capability.id.localeCompare(e.capability.id);
2287
+ }
2288
+ const Nn = async (t, e) => {
2289
+ await p({ text: "Finding a place to navigate...", agentName: "navigation" }, e);
2290
+ const a = v(t.agentExecutionContext.messages).trim();
2291
+ try {
2292
+ const n = await In(a, { topN: 5 });
2293
+ return await p(
2294
+ {
2295
+ text: `Navigation candidates: ${Gn(n.matches)}`,
2296
+ agentName: "navigation"
2297
+ },
2298
+ e
2299
+ ), console.table(
2300
+ n.matches.map(({ capability: o, keywordRank: r, keywordScore: s, semanticRank: c, semanticScore: l, score: d }) => ({
2301
+ capability: o.title,
2302
+ fusedScore: d,
2303
+ keywordRank: r,
2304
+ keywordScore: s,
2305
+ semanticRank: c,
2306
+ semanticScore: l
2307
+ }))
2308
+ ), n.degradedReason && console.info("[arcgis-portal-ai-assistant] navigation semantic search:", n.degradedReason), {
2309
+ chosenCapabilityIds: [],
2310
+ retrievalDegraded: n.degradedReason ?? "",
2311
+ targets: Pn(a, n.matches)
2312
+ };
2313
+ } catch {
2314
+ return {
2315
+ chosenCapabilityIds: [],
2316
+ outputMessage: "I couldn't look up a Portal page right now. Please try again.",
2317
+ status: "failed",
2318
+ targets: []
2319
+ };
2320
+ }
2321
+ };
2322
+ function Pn(t, e) {
2323
+ const a = U(t), n = e.filter(
2324
+ ({ capability: r }) => [r.title, ...r.hints].some(
2325
+ (s) => U(s) === a
2326
+ )
2327
+ );
2328
+ if (n.length !== 1)
2329
+ return e;
2330
+ const [o] = n;
2331
+ return [o, ...e.filter((r) => r !== o)];
2332
+ }
2333
+ function Gn(t) {
2334
+ return t.map(
2335
+ ({ capability: e, keywordScore: a, semanticScore: n }) => `${e.title} (keyword: ${Me(a)}, semantic: ${Me(n)})`
2336
+ ).join("; ") || "none";
2337
+ }
2338
+ function Me(t) {
2339
+ return t?.toFixed(3) ?? "none";
2340
+ }
2341
+ const Q = (t, e) => e ?? t, Ke = h.Root({
2342
+ ...q(),
2343
+ chosenCapabilityIds: h({ reducer: Q, default: () => [] }),
2344
+ // Empty when hybrid keyword-and-semantic retrieval succeeds; otherwise
2345
+ // contains the semantic-search failure reason for response diagnostics.
2346
+ retrievalDegraded: h({ reducer: Q, default: () => "" }),
2347
+ targets: h({ reducer: Q, default: () => [] })
2348
+ }), qn = () => new P(Ke).addNode("retrieveNavigationTargets", Nn).addNode("chooseNavigationTargets", Wa).addNode("respondWithNavigation", cn).addEdge(G, "retrieveNavigationTargets").addEdge("retrieveNavigationTargets", "chooseNavigationTargets").addEdge("chooseNavigationTargets", "respondWithNavigation").addEdge("respondWithNavigation", w);
2349
+ function kn() {
2350
+ return String.raw`- **Navigation** — Takes the user to the portal page or app that fulfills their request. Presenting the button COMPLETES the request — no follow-up step is needed.
2351
+
2352
+ Route here for **navigation intent** ("take me to the map viewer", "open content", "where is X?") and for **action intent** ("publish a scene layer", "create a web map", "share this item") — for an action, Navigation takes the user to the page where that workflow starts. Navigation searches the capability registry itself, so don't rule it out because a page isn't named here.
2353
+
2354
+ If Navigation just asked the user for a missing value (such as an item id), route the user's short follow-up answer — often just an id like "797f6c0d300a4ddc87a8ae14cd2eeb8e" — back here so it can finish.
2355
+
2356
+ Do NOT route here for:
2357
+ - An action another agent actually performs — e.g. "create group" is EXECUTED by group agent. Route it here only when the user explicitly asks to navigate ("take me to create group")
2358
+ - Requests that mix navigation with a question or explanation ("take me there and explain how") → use Help
2359
+
2360
+ Do not dispatch Navigation again for the same request in the same turn: once it has responded, the task is done.`;
2361
+ }
2362
+ const En = {
2363
+ id: "navigation",
2364
+ name: "Portal Navigation",
2365
+ get description() {
2366
+ return kn();
2367
+ },
2368
+ createGraph: qn,
2369
+ workspace: Ke
2370
+ }, zn = We`:host{height:100%;border-width:1px;border-style:solid;border-color:var(--calcite-color-border-3);display:block;width:100%;--tw-shadow: 0 1px 6px -1px rgba(0, 0, 0, .16), 0 1px 2px -1px rgba(0, 0, 0, .08);--tw-shadow-colored: 0 1px 6px -1px var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.chat-entry{display:flex;flex-direction:column;gap:.75rem;width:100%}.chat-actions{display:flex;justify-content:flex-end;gap:.5rem}.header-actions{display:flex;gap:.5rem;padding-inline-start:.75rem}.navigation-block{display:flex;flex-direction:column;align-items:stretch;gap:.35rem;margin-top:.5rem}.navigation-button{width:100%;margin-block:.25rem}.navigation-block-description{font-size:.75rem;color:var(--calcite-color-text-3)}`;
2371
+ function Rn(t, e) {
2372
+ if (!e)
2373
+ return;
2374
+ const { destinationType: a } = t;
2375
+ switch (a) {
1053
2376
  case "portal-content":
2377
+ return e[a]?.(t.hash, t.queryParams);
1054
2378
  case "portal-groups":
1055
- return t[s];
2379
+ return e[a]?.(t.hash);
2380
+ case "portal-org":
2381
+ return e[a]?.(t.hash, t.queryParams);
2382
+ case "portal-gallery":
2383
+ return e[a];
2384
+ case "portal-map-viewer":
2385
+ case "portal-notebooks":
2386
+ case "portal-scene-viewer":
2387
+ return e[a];
1056
2388
  case "portal-item":
1057
- return t[s]?.(e.itemId);
2389
+ return e[a]?.(t.itemId);
1058
2390
  case "portal-group":
1059
- return t[s]?.(e.groupId);
2391
+ return e[a]?.(t.groupId, t.hash, t.queryParams);
1060
2392
  default:
1061
- return T(s);
2393
+ return F(a);
1062
2394
  }
1063
2395
  }
1064
- function Oe(e) {
1065
- const t = Ft.safeParse(e);
1066
- return t.success ? t.data : void 0;
2396
+ function Dn(t) {
2397
+ const e = kt.safeParse(t);
2398
+ return e.success ? e.data : void 0;
2399
+ }
2400
+ function $n(t, e) {
2401
+ const a = e.navigation;
2402
+ switch (t.destinationType) {
2403
+ case "portal-content":
2404
+ switch (t.hash) {
2405
+ case "favorites":
2406
+ return a.openContentFavorites;
2407
+ case "group":
2408
+ return a.openContentGroup;
2409
+ case "living-atlas":
2410
+ return a.openContentLivingAtlas;
2411
+ case "org":
2412
+ return a.openContentOrganization;
2413
+ default:
2414
+ return a.openContent;
2415
+ }
2416
+ case "portal-gallery":
2417
+ return a.openGallery;
2418
+ case "portal-groups":
2419
+ switch (t.hash) {
2420
+ case "featured":
2421
+ return a.openGroupsFeatured;
2422
+ case "my":
2423
+ return a.openGroupsMy;
2424
+ case "organization":
2425
+ return a.openGroupsOrganization;
2426
+ default:
2427
+ return a.openGroups;
2428
+ }
2429
+ case "portal-map-viewer":
2430
+ return a.openMapViewer;
2431
+ case "portal-notebooks":
2432
+ return a.openNotebooks;
2433
+ case "portal-scene-viewer":
2434
+ return a.openSceneViewer;
2435
+ case "portal-org":
2436
+ return a.openOrgSettings;
2437
+ case "portal-item":
2438
+ return a.openItem;
2439
+ case "portal-group":
2440
+ return a.openGroup;
2441
+ default:
2442
+ return F(t);
2443
+ }
1067
2444
  }
1068
- class Ve extends lt {
2445
+ class Un extends Be {
1069
2446
  constructor() {
1070
- super(...arguments), this.t9n = pt({ blocking: !0 }), this.assistantEl = M(), this.formEl = M(), this.voiceInputEl = M(), this.inputEl = M(), this.navigationSlotElements = /* @__PURE__ */ new Map(), this.handleSlottableRequest = (t) => {
1071
- const s = t.detail, a = s.data?.block;
1072
- if (!a)
2447
+ super(), this.t9n = _e({ blocking: !0 }), this.assistantEl = E(), this.formEl = E(), this.voiceInputEl = E(), this.inputEl = E(), this.navigationSlotElements = /* @__PURE__ */ new Map(), this.handleSlottableRequest = (e) => {
2448
+ const a = e.detail, n = a.data?.block;
2449
+ if (!n)
1073
2450
  return;
1074
- const r = this.getNavigationAction(a);
1075
- r && this.upsertNavigationSlotElement(s.slotName, r);
1076
- }, this.inputText = "", this.showVoiceInput = !0, this.isListening = !1, this.isVoiceInputDisabled = !1, this.interrupt = null, this.autoDestroyDisabled = !1, this.defaultClosed = !1, this.arcgisPortalNavigationRequest = ct();
2451
+ const o = this.getNavigationAction(n);
2452
+ o && this.upsertNavigationSlotElement(a.slotName, o);
2453
+ }, this.inputText = "", this.showVoiceInput = !0, this.isListening = !1, this.isVoiceInputDisabled = !1, this.autoDestroyDisabled = !1, this.defaultClosed = !1, this.useProdDocAssistant = !1, this.arcgisPortalNavigationRequest = Qe(), S();
1077
2454
  }
1078
2455
  static {
1079
- this.properties = { inputText: 16, showVoiceInput: 16, isListening: 16, isVoiceInputDisabled: 16, interrupt: 16, autoDestroyDisabled: 5, portal: 0, user: 0, config: 0, navigationTargetMap: 0, defaultClosed: 5 };
2456
+ this.properties = { inputText: 16, showVoiceInput: 16, isListening: 16, isVoiceInputDisabled: 16, autoDestroyDisabled: 5, portal: 0, user: 0, config: 0, navigationTargetMap: 0, disabledAgents: 0, defaultClosed: 5, navigationCapabilities: 0, useProdDocAssistant: 5 };
1080
2457
  }
1081
2458
  static {
1082
- this.styles = Fe;
2459
+ this.styles = zn;
2460
+ }
2461
+ async load() {
2462
+ await this.refreshCapabilityEmbeddings();
1083
2463
  }
1084
- getNavigationAction(t) {
1085
- if (t?.type !== _)
2464
+ willUpdate(e) {
2465
+ !this.hasUpdated || !e.has("navigationCapabilities") || this.refreshCapabilityEmbeddings();
2466
+ }
2467
+ async clearEmbeddingsCache() {
2468
+ be();
2469
+ }
2470
+ isAgentEnabled(e) {
2471
+ return !this.disabledAgents?.[e];
2472
+ }
2473
+ async refreshCapabilityEmbeddings() {
2474
+ try {
2475
+ S(this.navigationCapabilities), vn(), be(), await mn();
2476
+ } catch (e) {
2477
+ console.warn("[arcgis-portal-ai-assistant] embeddings warm-up failed:", e);
2478
+ }
2479
+ }
2480
+ getNavigationAction(e) {
2481
+ if (e?.type !== Ne)
1086
2482
  return;
1087
- const s = Oe(t.data);
1088
- if (!s)
2483
+ const a = e.data, n = Dn(a);
2484
+ if (!n)
1089
2485
  return;
1090
- const a = je(s, this.navigationTargetMap);
1091
- if (a)
1092
- return { href: a, targetDetail: s, label: this.getNavigationText(s.destinationType) };
2486
+ const o = Rn(a, this.navigationTargetMap);
2487
+ if (o)
2488
+ return {
2489
+ href: o,
2490
+ targetDetail: a,
2491
+ label: a?.buttonLabel || $n(n, this.t9n)
2492
+ };
1093
2493
  }
1094
- upsertNavigationSlotElement(t, s) {
1095
- const a = this.assistantEl.value;
1096
- if (!a)
2494
+ upsertNavigationSlotElement(e, a) {
2495
+ const n = this.assistantEl.value;
2496
+ if (!n)
1097
2497
  return;
1098
- let r = this.navigationSlotElements.get(t);
1099
- r || (r = document.createElement("div"), r.slot = t, this.navigationSlotElements.set(t, r), a.append(r)), dt(G`<div><calcite-button class="navigation-button" appearance=outline width=full .href=${s.href} icon-end=launch @click=${(i) => {
1100
- i.preventDefault(), this.arcgisPortalNavigationRequest.emit({
1101
- href: s.href,
1102
- targetDetail: s.targetDetail
2498
+ const o = `navigation:${e}`;
2499
+ let r = this.navigationSlotElements.get(o);
2500
+ r || (r = document.createElement("div"), r.slot = e, this.navigationSlotElements.set(o, r), n.append(r)), Je(I`<div><calcite-button class="navigation-button" appearance=outline width=full .href=${a.href} icon-end=launch @click=${(s) => {
2501
+ s.preventDefault(), this.arcgisPortalNavigationRequest.emit({
2502
+ href: a.href,
2503
+ targetDetail: a.targetDetail
1103
2504
  });
1104
- }}>${s.label}</calcite-button>${s.description ? G`<div class="navigation-block-description">${s.description}</div>` : null}</div>`, r);
1105
- }
1106
- getNavigationText(t) {
1107
- const s = this.t9n.navigation;
1108
- switch (t) {
1109
- case "portal-content":
1110
- return s.openContent;
1111
- case "portal-groups":
1112
- return s.openGroups;
1113
- case "portal-item":
1114
- return s.openItem;
1115
- case "portal-group":
1116
- return s.openGroup;
1117
- default:
1118
- return T(t);
1119
- }
2505
+ }}>${a.label}</calcite-button>${a.description ? I`<div class="navigation-block-description">${a.description}</div>` : null}</div>`, r);
1120
2506
  }
1121
2507
  render() {
1122
- const { t9n: t, inputText: s, portal: a, user: r, navigationTargetMap: i, showVoiceInput: l, isListening: u, isVoiceInputDisabled: c } = this;
1123
- return G`<arcgis-assistant log-enabled keep-suggested-prompts .heading=${t.heading} .entryMessage=${t.entryMessage} @arcgisSlottableRequest=${this.handleSlottableRequest} @arcgisInterrupt=${({ detail: n }) => {
1124
- this.interrupt = n;
1125
- }} @arcgisInterruptCancel=${() => {
1126
- this.interrupt = null;
1127
- }} @arcgisInterruptSubmit=${() => {
1128
- this.interrupt = null;
1129
- }} @arcgisPromptSelect=${({ detail: n }) => {
1130
- this.inputText = n.prompt, requestAnimationFrame(() => {
2508
+ const { t9n: e, inputText: a, portal: n, user: o, navigationTargetMap: r, showVoiceInput: s, isListening: c, isVoiceInputDisabled: l, useProdDocAssistant: d } = this;
2509
+ return I`<arcgis-assistant log-enabled keep-suggested-prompts .heading=${e.heading} .entryMessage=${e.entryMessage} @arcgisSlottableRequest=${this.handleSlottableRequest} @arcgisPromptSelect=${({ detail: u }) => {
2510
+ this.inputText = u.prompt, requestAnimationFrame(() => {
1131
2511
  this.inputEl.value?.focusTextArea();
1132
2512
  });
1133
- }} ${A(this.assistantEl)}><div slot=header-actions-start class="header-actions"><calcite-icon icon=effects></calcite-icon></div><form slot=chat-entry class="chat-entry" @submit=${(n) => {
1134
- n.preventDefault();
1135
- const m = s.trim();
2513
+ }} ${z(this.assistantEl)}><div slot=header-actions-start class="header-actions"><calcite-icon icon=effects></calcite-icon></div><form slot=chat-entry class="chat-entry" @submit=${(u) => {
2514
+ u.preventDefault();
2515
+ const m = a.trim();
1136
2516
  m && (this.assistantEl.value?.submitMessage(m), this.inputText = "");
1137
- }} ${A(this.formEl)}><arcgis-portal-mentionable-text-area .portal=${a} .user=${r} rows=3 .popoverListLabel=${t.mentionEntities} .placeholder=${t.placeholder} .value=${s} @arcgisUserMentionableTextAreaKeyDown=${({ detail: n }) => {
1138
- n.key === "Enter" && !n.shiftKey && (n.preventDefault(), this.formEl.value?.requestSubmit());
1139
- }} @arcgisUserMentionableTextAreaChange=${({ detail: n }) => {
1140
- this.inputText = n ?? "";
1141
- }} ${A(this.inputEl)}></arcgis-portal-mentionable-text-area><div class="chat-actions"><arcgis-portal-voice-input @arcgisVoiceInputStart=${() => {
2517
+ }} ${z(this.formEl)}><arcgis-portal-mentionable-text-area .portal=${n} .user=${o} rows=3 .popoverListLabel=${e.mentionEntities} .placeholder=${e.placeholder} .value=${a} @arcgisUserMentionableTextAreaKeyDown=${({ detail: u }) => {
2518
+ u.key === "Enter" && !u.shiftKey && (u.preventDefault(), this.formEl.value?.requestSubmit());
2519
+ }} @arcgisUserMentionableTextAreaChange=${({ detail: u }) => {
2520
+ this.inputText = u ?? "";
2521
+ }} ${z(this.inputEl)}></arcgis-portal-mentionable-text-area><div class="chat-actions"><arcgis-portal-voice-input @arcgisVoiceInputStart=${() => {
1142
2522
  this.isListening = !0, this.isVoiceInputDisabled = !1;
1143
2523
  }} @arcgisVoiceInputStop=${() => {
1144
2524
  this.isListening = !1, this.isVoiceInputDisabled = !1;
1145
- }} @arcgisVoiceInputError=${(n) => {
1146
- n.detail.errorCode === "not-supported" && (this.showVoiceInput = !1);
1147
- }} @arcgisVoiceInputInterimTranscription=${(n) => {
1148
- this.inputText = n.detail.text;
1149
- }} ${A(this.voiceInputEl)}></arcgis-portal-voice-input>${l && G`<calcite-button icon-start=microphone .label=${t.voiceInput} round .disabled=${c} .appearance=${u ? "solid" : "outline-fill"} @click=${async () => {
2525
+ }} @arcgisVoiceInputError=${(u) => {
2526
+ u.detail.errorCode === "not-supported" && (this.showVoiceInput = !1);
2527
+ }} @arcgisVoiceInputInterimTranscription=${(u) => {
2528
+ this.inputText = u.detail.text;
2529
+ }} ${z(this.voiceInputEl)}></arcgis-portal-voice-input>${s && I`<calcite-button icon-start=microphone .label=${e.voiceInput} round .disabled=${l} .appearance=${c ? "solid" : "outline-fill"} @click=${async () => {
1150
2530
  this.isVoiceInputDisabled = !0;
1151
- const n = this.voiceInputEl.value;
1152
- u ? await n?.stopListening() : await n?.startListening();
1153
- }}></calcite-button>` || ""}<calcite-button type=submit icon-start=send round .disabled=${!s.trim()} .label=${t.send}>${t.send}</calcite-button></div></form><arcgis-assistant-agent .agent=${Re} .context=${{ portal: a, user: r, navigationTargetMap: i }}></arcgis-assistant-agent><arcgis-assistant-agent .agent=${Bt} .context=${{ portal: a, user: r, navigationTargetMap: i }}></arcgis-assistant-agent><arcgis-assistant-agent .agent=${se} .context=${{ portal: a, user: r, navigationTargetMap: i }}></arcgis-assistant-agent><arcgis-assistant-agent .agent=${Me} .context=${{ portal: a, user: r, navigationTargetMap: i }}></arcgis-assistant-agent>${this.interrupt && G`<arcgis-portal-ai-assistant-interrupt slot=interrupt .type=${this.interrupt.type} .message=${this.interrupt.message} .options=${this.interrupt.options} @arcgisSubmit=${({ detail: n }) => {
1154
- this.assistantEl.value?.submitInterrupt(n);
1155
- }} @arcgisCancel=${() => {
1156
- this.assistantEl.value?.cancelInterrupt();
1157
- }}></arcgis-portal-ai-assistant-interrupt>` || ""}</arcgis-assistant>`;
2531
+ const u = this.voiceInputEl.value;
2532
+ c ? await u?.stopListening() : await u?.startListening();
2533
+ }}></calcite-button>` || ""}<calcite-button type=submit icon-start=send round .disabled=${!a.trim()} .label=${e.send}>${e.send}</calcite-button></div></form>${this.isAgentEnabled("itemAnalytics") && I`<arcgis-assistant-agent .agent=${Ka} .context=${{ portal: n, user: o, navigationTargetMap: r }}></arcgis-assistant-agent>` || ""}${this.isAgentEnabled("groupCreation") && I`<arcgis-assistant-agent .agent=${Dt} .context=${{ portal: n, user: o, navigationTargetMap: r }}></arcgis-assistant-agent>` || ""}${this.isAgentEnabled("docAssistant") && I`<arcgis-assistant-agent .agent=${la} .context=${{ portal: n, user: o, navigationTargetMap: r, useProdDocAssistant: d }}></arcgis-assistant-agent>` || ""}${this.isAgentEnabled("groupAnalytics") && I`<arcgis-assistant-agent .agent=${qa} .context=${{ portal: n, user: o, navigationTargetMap: r }}></arcgis-assistant-agent>` || ""}${this.isAgentEnabled("navigation") && I`<arcgis-assistant-agent .agent=${En} .context=${{ portal: n, user: o, navigationTargetMap: r }}></arcgis-assistant-agent>` || ""}</arcgis-assistant>`;
1158
2534
  }
1159
2535
  }
1160
- ut("arcgis-portal-ai-assistant", Ve);
2536
+ Ve("arcgis-portal-ai-assistant", Un);
1161
2537
  export {
1162
- Ve as ArcgisPortalAiAssistant
2538
+ Un as ArcgisPortalAiAssistant
1163
2539
  };