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