@esri/solutions-components 5.1.0-next.17 → 5.1.0-next.171

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1559) hide show
  1. package/dist/cdn/{AJY7XD7A.js → 23SGJQLW.js} +1 -1
  2. package/dist/cdn/275IZ5I6.js +5 -0
  3. package/dist/cdn/2B4SGB3I.js +2 -0
  4. package/dist/cdn/{CEP54NLT.js → 2C4DK6YC.js} +1 -1
  5. package/dist/cdn/{QQSP7HQH.js → 2EXGHOIM.js} +1 -1
  6. package/dist/cdn/2L62YUIH.js +2 -0
  7. package/dist/cdn/2MCOUOTQ.js +2 -0
  8. package/dist/cdn/2R7Y2ZVX.js +2 -0
  9. package/dist/cdn/2RL6H5TB.js +2 -0
  10. package/dist/cdn/2TEBTKD4.js +2 -0
  11. package/dist/cdn/{NC34DM4N.js → 2UCURPVT.js} +1 -1
  12. package/dist/cdn/{DZB3263I.js → 2X3SHREV.js} +1 -1
  13. package/dist/cdn/37P3IMFV.js +2 -0
  14. package/dist/cdn/3A3CPQX4.js +2 -0
  15. package/dist/cdn/{IO5DIUTT.js → 3E7MYA66.js} +1 -1
  16. package/dist/cdn/{VXMIT5WR.js → 3IHDWRXV.js} +1 -1
  17. package/dist/cdn/3JCHYXHA.js +2 -0
  18. package/dist/cdn/{VIWNXKUP.js → 3NKGACT7.js} +1 -1
  19. package/dist/cdn/{7Y32UJS4.js → 3QIWKYQY.js} +1 -1
  20. package/dist/cdn/463CZQF6.js +2 -0
  21. package/dist/cdn/{SIUUQBL4.js → 47FRMYZ4.js} +1 -1
  22. package/dist/cdn/4A77MNRM.js +2 -0
  23. package/dist/cdn/4D46WTPB.js +2 -0
  24. package/dist/cdn/4L7TJNAM.js +43 -0
  25. package/dist/cdn/{7JEVFHRJ.js → 4OKIVS32.js} +1 -1
  26. package/dist/cdn/4RCC4KA2.js +2 -0
  27. package/dist/cdn/4SORDX5Z.js +7 -0
  28. package/dist/cdn/{T537IZUH.js → 4Z6UJJJR.js} +1 -1
  29. package/dist/cdn/54A4C4RG.js +2 -0
  30. package/dist/cdn/54TJQLYJ.js +69 -0
  31. package/dist/cdn/56DNSWXG.js +2 -0
  32. package/dist/cdn/{5UQRM2YJ.js → 5BN62I7L.js} +1 -1
  33. package/dist/cdn/5FWKODDH.js +2 -0
  34. package/dist/cdn/5IDPOFIN.js +2 -0
  35. package/dist/cdn/{26K4UTAF.js → 5IIGQVJO.js} +1 -1
  36. package/dist/cdn/5JBZ6L5Q.js +6 -0
  37. package/dist/cdn/{UF67SSGX.js → 5LSNDSHW.js} +1 -1
  38. package/dist/cdn/5N4KGIIY.js +2 -0
  39. package/dist/cdn/{4HFHJOS3.js → 5O53T3SW.js} +1 -1
  40. package/dist/cdn/{LPJHRY3Y.js → 5VIB2BPJ.js} +1 -1
  41. package/dist/cdn/{XXQKFENH.js → 62CPZJO5.js} +1 -1
  42. package/dist/cdn/{T745GPG3.js → 62QGEVBO.js} +1 -1
  43. package/dist/cdn/6F7QJJQO.js +2 -0
  44. package/dist/cdn/6FY64JKN.js +2 -0
  45. package/dist/cdn/6HZBPFHA.js +2 -0
  46. package/dist/cdn/6KO7AYJN.js +2 -0
  47. package/dist/cdn/6LN2ZRAZ.js +2 -0
  48. package/dist/cdn/6WNKGSHD.js +2 -0
  49. package/dist/cdn/6WPQPRJ5.js +49 -0
  50. package/dist/cdn/{UK4O67GV.js → 6XWFCHCJ.js} +1 -1
  51. package/dist/cdn/73EY5SIB.js +2 -0
  52. package/dist/cdn/743J2ZUC.js +2 -0
  53. package/dist/cdn/77753TPX.js +2 -0
  54. package/dist/cdn/7CGCLEYB.js +2 -0
  55. package/dist/cdn/{CSW2JRVE.js → 7MNSZGMB.js} +1 -1
  56. package/dist/cdn/{TUGKPWRB.js → 7NUJ4IS5.js} +1 -1
  57. package/dist/cdn/7OHSJ5SV.js +2 -0
  58. package/dist/cdn/7P57UVVG.js +2 -0
  59. package/dist/cdn/{FTMEQQF5.js → 7V57GR4X.js} +1 -1
  60. package/dist/cdn/{3XVYTVMS.js → 7VQB43WL.js} +1 -1
  61. package/dist/cdn/7X2SPNNK.js +82 -0
  62. package/dist/cdn/{LI7Q44Z6.js → 7ZJBP3SS.js} +1 -1
  63. package/dist/cdn/{3SRDS4KQ.js → 7ZSO7MSX.js} +1 -1
  64. package/dist/cdn/A6ZTIX3P.js +2 -0
  65. package/dist/cdn/ADURBGIK.js +50 -0
  66. package/dist/cdn/{LF3HQQMS.js → AEALFROI.js} +1 -1
  67. package/dist/cdn/{45M33Q5G.js → AJZDBHB6.js} +1 -1
  68. package/dist/cdn/{5EBHORLK.js → AM6QSTRH.js} +1 -1
  69. package/dist/cdn/APNDTPBA.js +2 -0
  70. package/dist/cdn/ARFBMFQW.js +2 -0
  71. package/dist/cdn/AS6VINEU.js +16 -0
  72. package/dist/cdn/{KXT52OBS.js → AYJ5ZPU6.js} +1 -1
  73. package/dist/cdn/AYSQIO6L.js +2 -0
  74. package/dist/cdn/{LCWLPXAF.js → BIX5DRQP.js} +1 -1
  75. package/dist/cdn/{NWTG35WX.js → BOFA5RH7.js} +1 -1
  76. package/dist/cdn/{7DVOR4SY.js → BOSEAFVW.js} +1 -1
  77. package/dist/cdn/BWWX52HV.js +27 -0
  78. package/dist/cdn/{E57JPXDR.js → BXSBR2GT.js} +1 -1
  79. package/dist/cdn/{P2YLMWCT.js → C5AR5K23.js} +1 -1
  80. package/dist/cdn/C5KDPY7R.js +2 -0
  81. package/dist/cdn/{M7GWNGTJ.js → CARCFJRD.js} +1 -1
  82. package/dist/cdn/CJ3EZE7U.js +2 -0
  83. package/dist/cdn/{KZFMPHCV.js → CLRLOHTR.js} +1 -1
  84. package/dist/cdn/CMCEF65U.js +2 -0
  85. package/dist/cdn/CONTIW5Q.js +340 -0
  86. package/dist/cdn/CRDFUDM4.js +45 -0
  87. package/dist/cdn/{36HEIJAI.js → CS5N3DOL.js} +1 -1
  88. package/dist/cdn/{UVHM4PU5.js → CUG5CROK.js} +1 -1
  89. package/dist/cdn/{XC7LLCVS.js → CVXDL2AT.js} +1 -1
  90. package/dist/cdn/{EYBEUSBG.js → CWXZSWUA.js} +1 -1
  91. package/dist/cdn/D22STVK5.js +2 -0
  92. package/dist/cdn/{CZJPS7CF.js → D52QVYYU.js} +1 -1
  93. package/dist/cdn/D6U5SMQX.js +2 -0
  94. package/dist/cdn/{35HRMJUI.js → D6ZGMSQF.js} +1 -1
  95. package/dist/cdn/{MWFCDDBC.js → D7G4LZRG.js} +1 -1
  96. package/dist/cdn/DFHULDJT.js +3 -0
  97. package/dist/cdn/DGGIENYR.js +2 -0
  98. package/dist/cdn/{73O55ZBJ.js → DGQQF6WF.js} +1 -1
  99. package/dist/cdn/{3AQ7U2PF.js → DIBK4RSG.js} +1 -1
  100. package/dist/cdn/{7KEONOFN.js → DMENKRSP.js} +1 -1
  101. package/dist/cdn/{NLTK53B2.js → DQ47P6ES.js} +1 -1
  102. package/dist/cdn/DSJRQHKW.js +2 -0
  103. package/dist/cdn/{DWAYOC2L.js → DWKKP34X.js} +1 -1
  104. package/dist/cdn/E25ZWVBK.js +33 -0
  105. package/dist/cdn/E3F63VW4.js +2 -0
  106. package/dist/cdn/{HYB5LBMY.js → E7CWZMS4.js} +1 -1
  107. package/dist/cdn/EBAOA6CS.js +2 -0
  108. package/dist/cdn/{JMU5KKZH.js → EG5KPZQ2.js} +1 -1
  109. package/dist/cdn/{T3JHAFWW.js → EIF4KZBD.js} +1 -1
  110. package/dist/cdn/EL3OIP52.js +31 -0
  111. package/dist/cdn/{XPIAEAK5.js → EMPMQDRQ.js} +1 -1
  112. package/dist/cdn/ENLFOYSI.js +13 -0
  113. package/dist/cdn/ERLDQUNI.js +2 -0
  114. package/dist/cdn/{X4LKJTY5.js → ES63XK5X.js} +1 -1
  115. package/dist/cdn/ESJJVBZM.js +2 -0
  116. package/dist/cdn/EWS72RFR.js +2 -0
  117. package/dist/cdn/EXBEKVP5.js +2 -0
  118. package/dist/cdn/{MFJF6OXL.js → F4MS4NQL.js} +1 -1
  119. package/dist/cdn/F5463ORT.js +2 -0
  120. package/dist/cdn/{UDGR2GC5.js → FCJFAZ4S.js} +1 -1
  121. package/dist/cdn/{H3LJVYII.js → FE6JCIZY.js} +1 -1
  122. package/dist/cdn/{FFDZB5TW.js → FFZ2XVRE.js} +1 -1
  123. package/dist/cdn/FK6Q2LYR.js +2 -0
  124. package/dist/cdn/{XVRRQMOP.js → FSF3T3OT.js} +1 -1
  125. package/dist/cdn/FUW3T6S6.js +2 -0
  126. package/dist/cdn/{BPAYAR53.js → FVR5S6DL.js} +1 -1
  127. package/dist/cdn/FYJMHXWV.js +2 -0
  128. package/dist/cdn/G2H3X6NS.js +2 -0
  129. package/dist/cdn/{XTUL7OCR.js → G4V4JPFI.js} +1 -1
  130. package/dist/cdn/GDUCH242.js +2 -0
  131. package/dist/cdn/{3FMOO3PJ.js → GF4QELNV.js} +1 -1
  132. package/dist/cdn/GSCHQNQD.js +56 -0
  133. package/dist/cdn/GSR2GEY7.js +2 -0
  134. package/dist/cdn/{QMD2WK5F.js → GUSPFJUQ.js} +1 -1
  135. package/dist/cdn/{ELD2UQO4.js → GXZWJXHM.js} +1 -1
  136. package/dist/cdn/H4LZV33O.js +2 -0
  137. package/dist/cdn/{DIDOZ4J6.js → HB56DBBP.js} +5 -5
  138. package/dist/cdn/HGOH5KSX.js +2 -0
  139. package/dist/cdn/HIB4BVGK.js +2 -0
  140. package/dist/cdn/{NDUAEC62.js → HIPZRG2Q.js} +1 -1
  141. package/dist/cdn/{K5ZIHTQC.js → HJZRCLYP.js} +1 -1
  142. package/dist/cdn/HKFXHTYU.js +2 -0
  143. package/dist/cdn/{7DHQVMKX.js → HM2QALUN.js} +1 -1
  144. package/dist/cdn/HOCCKT72.js +2 -0
  145. package/dist/cdn/HUYLWWWJ.js +2 -0
  146. package/dist/cdn/HXNARVYH.js +3 -0
  147. package/dist/cdn/HYQVSB6C.js +2 -0
  148. package/dist/cdn/{I3D5WRYZ.js → I4VWG355.js} +1 -1
  149. package/dist/cdn/I5E3PM26.js +29 -0
  150. package/dist/cdn/I6EH3H6Z.js +2 -0
  151. package/dist/cdn/IADXB53D.js +2 -0
  152. package/dist/cdn/{FZ7WJ3YG.js → IAEFPE3L.js} +1 -1
  153. package/dist/cdn/ICY4O6XV.js +2 -0
  154. package/dist/cdn/{KU62OLRE.js → IHG7KTNC.js} +1 -1
  155. package/dist/cdn/{WMPUJYLT.js → INLWMPGE.js} +1 -1
  156. package/dist/cdn/IP7IUAM5.js +2 -0
  157. package/dist/cdn/{FJAJKPL6.js → IQVJCQTP.js} +1 -1
  158. package/dist/cdn/{6XELM7OM.js → IXJFVKYN.js} +1 -1
  159. package/dist/cdn/IXPNZCW6.js +2 -0
  160. package/dist/cdn/{IKN5RLJ4.js → IXRFWVBT.js} +1 -1
  161. package/dist/cdn/IZSQYFWM.js +2 -0
  162. package/dist/cdn/JCGZXASG.js +2 -0
  163. package/dist/cdn/JINR6G2D.js +2 -0
  164. package/dist/cdn/JJLYSRRX.js +2 -0
  165. package/dist/cdn/JS2MTHHP.js +2 -0
  166. package/dist/cdn/{ZF724O2R.js → JUPIKTGO.js} +1 -1
  167. package/dist/cdn/K6O33P5T.js +2 -0
  168. package/dist/cdn/{TZL2746B.js → KAGDNHPY.js} +1 -1
  169. package/dist/cdn/KDDHPA54.js +2 -0
  170. package/dist/cdn/{JLQYLRUP.js → KDHI3OWQ.js} +1 -1
  171. package/dist/cdn/{NOIG2A4U.js → KMTYPOFM.js} +1 -1
  172. package/dist/cdn/KR2PPIBX.js +2 -0
  173. package/dist/cdn/KWAQEZ3T.js +136 -0
  174. package/dist/cdn/LGBRHJBY.js +109 -0
  175. package/dist/cdn/{E7W2OZL3.js → LOWGHGDS.js} +1 -1
  176. package/dist/cdn/{LPBP7CBN.js → LP2JYX4X.js} +1 -1
  177. package/dist/cdn/LPFG5XTA.js +19 -0
  178. package/dist/cdn/LQ6PZESP.js +2 -0
  179. package/dist/cdn/LUIN5XSX.js +2 -0
  180. package/dist/cdn/LV5KMTCD.js +2 -0
  181. package/dist/cdn/{FDO2JBGW.js → LVK2J23W.js} +1 -1
  182. package/dist/cdn/LVYAW6XF.js +2 -0
  183. package/dist/cdn/LWJF6EXD.js +85 -0
  184. package/dist/cdn/LWQ4SBU2.js +2 -0
  185. package/dist/cdn/{RNTJMF4O.js → LXNQ32NZ.js} +1 -1
  186. package/dist/cdn/{2H7KJUZG.js → M6AOD7GG.js} +1 -1
  187. package/dist/cdn/{XG3T3NF3.js → MBAQ324M.js} +1 -1
  188. package/dist/cdn/MBT2S4J5.js +2 -0
  189. package/dist/cdn/MFVXFKKM.js +46 -0
  190. package/dist/cdn/MIV34H66.js +2 -0
  191. package/dist/cdn/{XIUYW7RN.js → MKDVJPNY.js} +1 -1
  192. package/dist/cdn/{57DOBXD6.js → MKSUYITL.js} +1 -1
  193. package/dist/cdn/MV7GEGP5.js +98 -0
  194. package/dist/cdn/{USM62FP5.js → MVDJOENC.js} +19 -19
  195. package/dist/cdn/{TVCG3ZCH.js → MW3IJQRQ.js} +1 -1
  196. package/dist/cdn/{B3R52L7H.js → N22MFQSQ.js} +1 -1
  197. package/dist/cdn/{3OQ24P5P.js → N33J6JX2.js} +1 -1
  198. package/dist/cdn/{BDXIKPLU.js → N7BXCDA3.js} +1 -1
  199. package/dist/cdn/{YUPT4BTA.js → NKEQVKHZ.js} +1 -1
  200. package/dist/cdn/NQH7ZZWD.js +2 -0
  201. package/dist/cdn/{KDE2RXEH.js → NVIMZ7ZS.js} +1 -1
  202. package/dist/cdn/O4DB2EXV.js +2 -0
  203. package/dist/cdn/{BIRAQCVT.js → OAEZN4D5.js} +1 -1
  204. package/dist/cdn/OGH565H7.js +3 -0
  205. package/dist/cdn/OJDW3XGU.js +2 -0
  206. package/dist/cdn/OTQLLNFG.js +2 -0
  207. package/dist/cdn/{JDVVMD4S.js → OZ7YBTKR.js} +1 -1
  208. package/dist/cdn/{KHHT54BU.js → PKOJQT4I.js} +1 -1
  209. package/dist/cdn/{4NALIU6Y.js → PLQEDCUG.js} +1 -1
  210. package/dist/cdn/PLXHBQBF.js +146 -0
  211. package/dist/cdn/PM4EFNB2.js +2 -0
  212. package/dist/cdn/{FV7G3BY6.js → PM7QF66M.js} +1 -1
  213. package/dist/cdn/{HBPD3T7H.js → PPFEO3UH.js} +1 -1
  214. package/dist/cdn/{QHYG6C3L.js → PSBOV4IR.js} +1 -1
  215. package/dist/cdn/{EYXOOK3V.js → PWER63DX.js} +1 -1
  216. package/dist/cdn/{LNLCO244.js → Q2K6BUCN.js} +1 -1
  217. package/dist/cdn/{ANX2J4ID.js → Q3WGKNJH.js} +1 -1
  218. package/dist/cdn/QH343537.js +56 -0
  219. package/dist/cdn/{PJ5ORVU5.js → QJICQ4W3.js} +1 -1
  220. package/dist/cdn/QKSC4XFL.js +2 -0
  221. package/dist/cdn/QMAV4UTN.js +2 -0
  222. package/dist/cdn/{UH4IH4MC.js → QQYN7RED.js} +1 -1
  223. package/dist/cdn/QZ2ZMWIH.js +2 -0
  224. package/dist/cdn/R27S3IDW.js +2 -0
  225. package/dist/cdn/RDJIKSXN.js +439 -0
  226. package/dist/cdn/RDRCAA3H.js +4 -0
  227. package/dist/cdn/{DKB6JTUF.js → RKZXRHZK.js} +1 -1
  228. package/dist/cdn/RLMMQ5UC.js +18 -0
  229. package/dist/cdn/{DLBZRD4H.js → RLSY4VUQ.js} +1 -1
  230. package/dist/cdn/ROGRXRFI.js +2 -0
  231. package/dist/cdn/RWHR4UZT.js +2 -0
  232. package/dist/cdn/{CZKXDUOH.js → RXM4BHPK.js} +1 -1
  233. package/dist/cdn/S26SZJC7.js +113 -0
  234. package/dist/cdn/S4GBMN37.js +2 -0
  235. package/dist/cdn/S5RB3GMN.js +2 -0
  236. package/dist/cdn/S7HFWITF.js +2 -0
  237. package/dist/cdn/{5ZVSYUD7.js → SDX7YG23.js} +1 -1
  238. package/dist/cdn/SGFSVWTY.js +7 -0
  239. package/dist/cdn/SHQFXQEI.js +2 -0
  240. package/dist/cdn/SJLSYFK3.js +2 -0
  241. package/dist/cdn/SNA7NRRQ.js +115 -0
  242. package/dist/cdn/{NH5526ON.js → SNBTGG5B.js} +1 -1
  243. package/dist/cdn/T3EPRHTT.js +4 -0
  244. package/dist/cdn/T5R4UF7Y.js +2 -0
  245. package/dist/cdn/{3T3GPK27.js → T6EKXYZA.js} +1 -1
  246. package/dist/cdn/TCUNTTNI.js +2 -0
  247. package/dist/cdn/TFO2AK45.js +2 -0
  248. package/dist/cdn/{ZYRNI524.js → TJDAE43J.js} +1 -1
  249. package/dist/cdn/TLIIJ2QC.js +122 -0
  250. package/dist/cdn/{NM3YBQUM.js → TWJ6DAY5.js} +1 -1
  251. package/dist/cdn/TZHRYPII.js +2 -0
  252. package/dist/cdn/{B6IICRWD.js → U2LBV6VU.js} +1 -1
  253. package/dist/cdn/U76GHEKJ.js +71 -0
  254. package/dist/cdn/{DZLVEIWW.js → UCYR537P.js} +1 -1
  255. package/dist/cdn/UIZL3C3H.js +2 -0
  256. package/dist/cdn/UUKV62PY.js +109 -0
  257. package/dist/cdn/V5BIPD5T.js +2 -0
  258. package/dist/cdn/V6N4G75E.js +2 -0
  259. package/dist/cdn/VDI7SDRK.js +5 -0
  260. package/dist/cdn/VDZT4UXB.js +36 -0
  261. package/dist/cdn/VHSGX4DC.js +2 -0
  262. package/dist/cdn/VJBL5ZUX.js +2 -0
  263. package/dist/cdn/{B7J5RZIJ.js → VJDUPEFF.js} +1 -1
  264. package/dist/cdn/VKHBBAXO.js +2 -0
  265. package/dist/cdn/VLBNRURV.js +2 -0
  266. package/dist/cdn/VLF76E2L.js +2 -0
  267. package/dist/cdn/{7GPGKDLH.js → VNTPM6CQ.js} +1 -1
  268. package/dist/cdn/{HDRMSU3L.js → VPFXIGOI.js} +1 -1
  269. package/dist/cdn/{JLYGSQEC.js → VUXNHQGR.js} +1 -1
  270. package/dist/cdn/VY364MR6.js +2 -0
  271. package/dist/cdn/WDASGI72.js +2 -0
  272. package/dist/cdn/{2TR3Y7HD.js → WFIMYIS3.js} +1 -1
  273. package/dist/cdn/WKRSOM6J.js +2 -0
  274. package/dist/cdn/WNVC3PSY.js +2 -0
  275. package/dist/cdn/WRWWRMHZ.js +4 -0
  276. package/dist/cdn/X6TQNCB3.js +2 -0
  277. package/dist/cdn/{AM5URNYD.js → XH6MM3RE.js} +1 -1
  278. package/dist/cdn/XKFX43FE.js +2 -0
  279. package/dist/cdn/XQ7SXIHI.js +2 -0
  280. package/dist/cdn/{S423P2GA.js → Y2AUIXNK.js} +1 -1
  281. package/dist/cdn/Y2MAVMNV.js +2 -0
  282. package/dist/cdn/{3IHLJADI.js → YKB6256M.js} +1 -1
  283. package/dist/cdn/YM4U4HSN.js +2 -0
  284. package/dist/cdn/{C44FH5Z2.js → YOBHTTO5.js} +1 -1
  285. package/dist/cdn/YPDXQEUA.js +77 -0
  286. package/dist/cdn/{JUUVYK2H.js → YQHYMLC7.js} +1 -1
  287. package/dist/cdn/YSQDSGSF.js +2 -0
  288. package/dist/cdn/YUI2MSOK.js +2 -0
  289. package/dist/cdn/{2BTU374O.js → YUKIKHOU.js} +1 -1
  290. package/dist/cdn/{AA7X6GKH.js → YUWXPLTE.js} +1 -1
  291. package/dist/cdn/YVWFYZTI.js +4 -0
  292. package/dist/cdn/YWX2U5OD.js +2 -0
  293. package/dist/cdn/{W2ZZLJGQ.js → ZBX2SDO5.js} +1 -1
  294. package/dist/cdn/{U6ALIHIC.js → ZNWZWFMH.js} +1 -1
  295. package/dist/cdn/ZPEVEBJD.js +121 -0
  296. package/dist/cdn/{DBHZRNFR.js → ZSO2PDMV.js} +1 -1
  297. package/dist/cdn/ZWASNOIQ.js +2 -0
  298. package/dist/cdn/{G2ME4BAQ.js → ZX3UHK6P.js} +1 -1
  299. package/dist/cdn/{OC2DD3AB.js → ZZOMKTFL.js} +1 -1
  300. package/dist/cdn/assets/arcgis-solutions-assistant/t9n/messages.ar.json +1 -1
  301. package/dist/cdn/assets/arcgis-solutions-assistant/t9n/messages.bg.json +1 -1
  302. package/dist/cdn/assets/arcgis-solutions-assistant/t9n/messages.bs.json +1 -1
  303. package/dist/cdn/assets/arcgis-solutions-assistant/t9n/messages.ca.json +1 -1
  304. package/dist/cdn/assets/arcgis-solutions-assistant/t9n/messages.cs.json +1 -1
  305. package/dist/cdn/assets/arcgis-solutions-assistant/t9n/messages.da.json +1 -1
  306. package/dist/cdn/assets/arcgis-solutions-assistant/t9n/messages.de.json +1 -1
  307. package/dist/cdn/assets/arcgis-solutions-assistant/t9n/messages.el.json +1 -1
  308. package/dist/cdn/assets/arcgis-solutions-assistant/t9n/messages.en.json +1 -1
  309. package/dist/cdn/assets/arcgis-solutions-assistant/t9n/messages.es.json +1 -1
  310. package/dist/cdn/assets/arcgis-solutions-assistant/t9n/messages.et.json +1 -1
  311. package/dist/cdn/assets/arcgis-solutions-assistant/t9n/messages.fi.json +1 -1
  312. package/dist/cdn/assets/arcgis-solutions-assistant/t9n/messages.fr.json +1 -1
  313. package/dist/cdn/assets/arcgis-solutions-assistant/t9n/messages.he.json +1 -1
  314. package/dist/cdn/assets/arcgis-solutions-assistant/t9n/messages.hr.json +1 -1
  315. package/dist/cdn/assets/arcgis-solutions-assistant/t9n/messages.hu.json +1 -1
  316. package/dist/cdn/assets/arcgis-solutions-assistant/t9n/messages.id.json +1 -1
  317. package/dist/cdn/assets/arcgis-solutions-assistant/t9n/messages.it.json +1 -1
  318. package/dist/cdn/assets/arcgis-solutions-assistant/t9n/messages.ja.json +1 -1
  319. package/dist/cdn/assets/arcgis-solutions-assistant/t9n/messages.json +1 -1
  320. package/dist/cdn/assets/arcgis-solutions-assistant/t9n/messages.ko.json +1 -1
  321. package/dist/cdn/assets/arcgis-solutions-assistant/t9n/messages.lt.json +1 -1
  322. package/dist/cdn/assets/arcgis-solutions-assistant/t9n/messages.lv.json +1 -1
  323. package/dist/cdn/assets/arcgis-solutions-assistant/t9n/messages.nl.json +1 -1
  324. package/dist/cdn/assets/arcgis-solutions-assistant/t9n/messages.no.json +1 -1
  325. package/dist/cdn/assets/arcgis-solutions-assistant/t9n/messages.pl.json +1 -1
  326. package/dist/cdn/assets/arcgis-solutions-assistant/t9n/messages.pt-BR.json +1 -1
  327. package/dist/cdn/assets/arcgis-solutions-assistant/t9n/messages.pt-PT.json +1 -1
  328. package/dist/cdn/assets/arcgis-solutions-assistant/t9n/messages.ro.json +1 -1
  329. package/dist/cdn/assets/arcgis-solutions-assistant/t9n/messages.ru.json +1 -1
  330. package/dist/cdn/assets/arcgis-solutions-assistant/t9n/messages.sk.json +1 -1
  331. package/dist/cdn/assets/arcgis-solutions-assistant/t9n/messages.sl.json +1 -1
  332. package/dist/cdn/assets/arcgis-solutions-assistant/t9n/messages.sr.json +1 -1
  333. package/dist/cdn/assets/arcgis-solutions-assistant/t9n/messages.sv.json +1 -1
  334. package/dist/cdn/assets/arcgis-solutions-assistant/t9n/messages.th.json +1 -1
  335. package/dist/cdn/assets/arcgis-solutions-assistant/t9n/messages.tr.json +1 -1
  336. package/dist/cdn/assets/arcgis-solutions-assistant/t9n/messages.uk.json +1 -1
  337. package/dist/cdn/assets/arcgis-solutions-assistant/t9n/messages.vi.json +1 -1
  338. package/dist/cdn/assets/arcgis-solutions-assistant/t9n/messages.zh-CN.json +1 -1
  339. package/dist/cdn/assets/arcgis-solutions-assistant/t9n/messages.zh-HK.json +1 -1
  340. package/dist/cdn/assets/arcgis-solutions-assistant/t9n/messages.zh-TW.json +1 -1
  341. package/dist/cdn/assets/buffer-tools/t9n/messages.ar.json +1 -1
  342. package/dist/cdn/assets/buffer-tools/t9n/messages.bg.json +1 -1
  343. package/dist/cdn/assets/buffer-tools/t9n/messages.bs.json +1 -1
  344. package/dist/cdn/assets/buffer-tools/t9n/messages.ca.json +1 -1
  345. package/dist/cdn/assets/buffer-tools/t9n/messages.cs.json +1 -1
  346. package/dist/cdn/assets/buffer-tools/t9n/messages.da.json +1 -1
  347. package/dist/cdn/assets/buffer-tools/t9n/messages.de.json +1 -1
  348. package/dist/cdn/assets/buffer-tools/t9n/messages.el.json +1 -1
  349. package/dist/cdn/assets/buffer-tools/t9n/messages.en.json +1 -1
  350. package/dist/cdn/assets/buffer-tools/t9n/messages.es.json +1 -1
  351. package/dist/cdn/assets/buffer-tools/t9n/messages.et.json +1 -1
  352. package/dist/cdn/assets/buffer-tools/t9n/messages.fi.json +1 -1
  353. package/dist/cdn/assets/buffer-tools/t9n/messages.fr.json +1 -1
  354. package/dist/cdn/assets/buffer-tools/t9n/messages.he.json +1 -1
  355. package/dist/cdn/assets/buffer-tools/t9n/messages.hr.json +1 -1
  356. package/dist/cdn/assets/buffer-tools/t9n/messages.hu.json +1 -1
  357. package/dist/cdn/assets/buffer-tools/t9n/messages.id.json +1 -1
  358. package/dist/cdn/assets/buffer-tools/t9n/messages.it.json +1 -1
  359. package/dist/cdn/assets/buffer-tools/t9n/messages.ja.json +1 -1
  360. package/dist/cdn/assets/buffer-tools/t9n/messages.json +1 -1
  361. package/dist/cdn/assets/buffer-tools/t9n/messages.ko.json +1 -1
  362. package/dist/cdn/assets/buffer-tools/t9n/messages.lt.json +1 -1
  363. package/dist/cdn/assets/buffer-tools/t9n/messages.lv.json +1 -1
  364. package/dist/cdn/assets/buffer-tools/t9n/messages.nl.json +1 -1
  365. package/dist/cdn/assets/buffer-tools/t9n/messages.no.json +1 -1
  366. package/dist/cdn/assets/buffer-tools/t9n/messages.pl.json +1 -1
  367. package/dist/cdn/assets/buffer-tools/t9n/messages.pt-BR.json +1 -1
  368. package/dist/cdn/assets/buffer-tools/t9n/messages.pt-PT.json +1 -1
  369. package/dist/cdn/assets/buffer-tools/t9n/messages.ro.json +1 -1
  370. package/dist/cdn/assets/buffer-tools/t9n/messages.ru.json +1 -1
  371. package/dist/cdn/assets/buffer-tools/t9n/messages.sk.json +1 -1
  372. package/dist/cdn/assets/buffer-tools/t9n/messages.sl.json +1 -1
  373. package/dist/cdn/assets/buffer-tools/t9n/messages.sr.json +1 -1
  374. package/dist/cdn/assets/buffer-tools/t9n/messages.sv.json +1 -1
  375. package/dist/cdn/assets/buffer-tools/t9n/messages.th.json +1 -1
  376. package/dist/cdn/assets/buffer-tools/t9n/messages.tr.json +1 -1
  377. package/dist/cdn/assets/buffer-tools/t9n/messages.uk.json +1 -1
  378. package/dist/cdn/assets/buffer-tools/t9n/messages.vi.json +1 -1
  379. package/dist/cdn/assets/buffer-tools/t9n/messages.zh-CN.json +1 -1
  380. package/dist/cdn/assets/buffer-tools/t9n/messages.zh-HK.json +1 -1
  381. package/dist/cdn/assets/buffer-tools/t9n/messages.zh-TW.json +1 -1
  382. package/dist/cdn/assets/card-manager/t9n/messages.ar.json +1 -1
  383. package/dist/cdn/assets/card-manager/t9n/messages.bg.json +1 -1
  384. package/dist/cdn/assets/card-manager/t9n/messages.bs.json +1 -1
  385. package/dist/cdn/assets/card-manager/t9n/messages.ca.json +1 -1
  386. package/dist/cdn/assets/card-manager/t9n/messages.cs.json +1 -1
  387. package/dist/cdn/assets/card-manager/t9n/messages.da.json +1 -1
  388. package/dist/cdn/assets/card-manager/t9n/messages.de.json +1 -1
  389. package/dist/cdn/assets/card-manager/t9n/messages.el.json +1 -1
  390. package/dist/cdn/assets/card-manager/t9n/messages.en.json +1 -1
  391. package/dist/cdn/assets/card-manager/t9n/messages.es.json +1 -1
  392. package/dist/cdn/assets/card-manager/t9n/messages.et.json +1 -1
  393. package/dist/cdn/assets/card-manager/t9n/messages.fi.json +1 -1
  394. package/dist/cdn/assets/card-manager/t9n/messages.fr.json +1 -1
  395. package/dist/cdn/assets/card-manager/t9n/messages.he.json +1 -1
  396. package/dist/cdn/assets/card-manager/t9n/messages.hr.json +1 -1
  397. package/dist/cdn/assets/card-manager/t9n/messages.hu.json +1 -1
  398. package/dist/cdn/assets/card-manager/t9n/messages.id.json +1 -1
  399. package/dist/cdn/assets/card-manager/t9n/messages.it.json +1 -1
  400. package/dist/cdn/assets/card-manager/t9n/messages.ja.json +1 -1
  401. package/dist/cdn/assets/card-manager/t9n/messages.json +1 -1
  402. package/dist/cdn/assets/card-manager/t9n/messages.ko.json +1 -1
  403. package/dist/cdn/assets/card-manager/t9n/messages.lt.json +1 -1
  404. package/dist/cdn/assets/card-manager/t9n/messages.lv.json +1 -1
  405. package/dist/cdn/assets/card-manager/t9n/messages.nl.json +1 -1
  406. package/dist/cdn/assets/card-manager/t9n/messages.no.json +1 -1
  407. package/dist/cdn/assets/card-manager/t9n/messages.pl.json +1 -1
  408. package/dist/cdn/assets/card-manager/t9n/messages.pt-BR.json +1 -1
  409. package/dist/cdn/assets/card-manager/t9n/messages.pt-PT.json +1 -1
  410. package/dist/cdn/assets/card-manager/t9n/messages.ro.json +1 -1
  411. package/dist/cdn/assets/card-manager/t9n/messages.ru.json +1 -1
  412. package/dist/cdn/assets/card-manager/t9n/messages.sk.json +1 -1
  413. package/dist/cdn/assets/card-manager/t9n/messages.sl.json +1 -1
  414. package/dist/cdn/assets/card-manager/t9n/messages.sr.json +1 -1
  415. package/dist/cdn/assets/card-manager/t9n/messages.sv.json +1 -1
  416. package/dist/cdn/assets/card-manager/t9n/messages.th.json +1 -1
  417. package/dist/cdn/assets/card-manager/t9n/messages.tr.json +1 -1
  418. package/dist/cdn/assets/card-manager/t9n/messages.uk.json +1 -1
  419. package/dist/cdn/assets/card-manager/t9n/messages.vi.json +1 -1
  420. package/dist/cdn/assets/card-manager/t9n/messages.zh-CN.json +1 -1
  421. package/dist/cdn/assets/card-manager/t9n/messages.zh-HK.json +1 -1
  422. package/dist/cdn/assets/card-manager/t9n/messages.zh-TW.json +1 -1
  423. package/dist/cdn/assets/consent-manager/t9n/messages.de.json +1 -1
  424. package/dist/cdn/assets/create-feature/t9n/messages.ar.json +1 -1
  425. package/dist/cdn/assets/create-feature/t9n/messages.bg.json +1 -1
  426. package/dist/cdn/assets/create-feature/t9n/messages.bs.json +1 -1
  427. package/dist/cdn/assets/create-feature/t9n/messages.ca.json +1 -1
  428. package/dist/cdn/assets/create-feature/t9n/messages.cs.json +1 -1
  429. package/dist/cdn/assets/create-feature/t9n/messages.da.json +1 -1
  430. package/dist/cdn/assets/create-feature/t9n/messages.de.json +1 -1
  431. package/dist/cdn/assets/create-feature/t9n/messages.el.json +1 -1
  432. package/dist/cdn/assets/create-feature/t9n/messages.en.json +1 -1
  433. package/dist/cdn/assets/create-feature/t9n/messages.es.json +1 -1
  434. package/dist/cdn/assets/create-feature/t9n/messages.et.json +1 -1
  435. package/dist/cdn/assets/create-feature/t9n/messages.fi.json +1 -1
  436. package/dist/cdn/assets/create-feature/t9n/messages.fr.json +1 -1
  437. package/dist/cdn/assets/create-feature/t9n/messages.he.json +1 -1
  438. package/dist/cdn/assets/create-feature/t9n/messages.hr.json +1 -1
  439. package/dist/cdn/assets/create-feature/t9n/messages.hu.json +1 -1
  440. package/dist/cdn/assets/create-feature/t9n/messages.id.json +1 -1
  441. package/dist/cdn/assets/create-feature/t9n/messages.it.json +1 -1
  442. package/dist/cdn/assets/create-feature/t9n/messages.ja.json +1 -1
  443. package/dist/cdn/assets/create-feature/t9n/messages.json +1 -1
  444. package/dist/cdn/assets/create-feature/t9n/messages.ko.json +1 -1
  445. package/dist/cdn/assets/create-feature/t9n/messages.lt.json +1 -1
  446. package/dist/cdn/assets/create-feature/t9n/messages.lv.json +1 -1
  447. package/dist/cdn/assets/create-feature/t9n/messages.nl.json +1 -1
  448. package/dist/cdn/assets/create-feature/t9n/messages.no.json +1 -1
  449. package/dist/cdn/assets/create-feature/t9n/messages.pl.json +1 -1
  450. package/dist/cdn/assets/create-feature/t9n/messages.pt-BR.json +1 -1
  451. package/dist/cdn/assets/create-feature/t9n/messages.pt-PT.json +1 -1
  452. package/dist/cdn/assets/create-feature/t9n/messages.ro.json +1 -1
  453. package/dist/cdn/assets/create-feature/t9n/messages.ru.json +1 -1
  454. package/dist/cdn/assets/create-feature/t9n/messages.sk.json +1 -1
  455. package/dist/cdn/assets/create-feature/t9n/messages.sl.json +1 -1
  456. package/dist/cdn/assets/create-feature/t9n/messages.sr.json +1 -1
  457. package/dist/cdn/assets/create-feature/t9n/messages.sv.json +1 -1
  458. package/dist/cdn/assets/create-feature/t9n/messages.th.json +1 -1
  459. package/dist/cdn/assets/create-feature/t9n/messages.tr.json +1 -1
  460. package/dist/cdn/assets/create-feature/t9n/messages.uk.json +1 -1
  461. package/dist/cdn/assets/create-feature/t9n/messages.vi.json +1 -1
  462. package/dist/cdn/assets/create-feature/t9n/messages.zh-CN.json +1 -1
  463. package/dist/cdn/assets/create-feature/t9n/messages.zh-HK.json +1 -1
  464. package/dist/cdn/assets/create-feature/t9n/messages.zh-TW.json +1 -1
  465. package/dist/cdn/assets/create-related-feature/t9n/messages.ar.json +1 -1
  466. package/dist/cdn/assets/create-related-feature/t9n/messages.bg.json +1 -1
  467. package/dist/cdn/assets/create-related-feature/t9n/messages.bs.json +1 -1
  468. package/dist/cdn/assets/create-related-feature/t9n/messages.ca.json +1 -1
  469. package/dist/cdn/assets/create-related-feature/t9n/messages.cs.json +1 -1
  470. package/dist/cdn/assets/create-related-feature/t9n/messages.da.json +1 -1
  471. package/dist/cdn/assets/create-related-feature/t9n/messages.de.json +1 -1
  472. package/dist/cdn/assets/create-related-feature/t9n/messages.el.json +1 -1
  473. package/dist/cdn/assets/create-related-feature/t9n/messages.en.json +1 -1
  474. package/dist/cdn/assets/create-related-feature/t9n/messages.es.json +1 -1
  475. package/dist/cdn/assets/create-related-feature/t9n/messages.et.json +1 -1
  476. package/dist/cdn/assets/create-related-feature/t9n/messages.fi.json +1 -1
  477. package/dist/cdn/assets/create-related-feature/t9n/messages.fr.json +1 -1
  478. package/dist/cdn/assets/create-related-feature/t9n/messages.he.json +1 -1
  479. package/dist/cdn/assets/create-related-feature/t9n/messages.hr.json +1 -1
  480. package/dist/cdn/assets/create-related-feature/t9n/messages.hu.json +1 -1
  481. package/dist/cdn/assets/create-related-feature/t9n/messages.id.json +1 -1
  482. package/dist/cdn/assets/create-related-feature/t9n/messages.it.json +1 -1
  483. package/dist/cdn/assets/create-related-feature/t9n/messages.ja.json +1 -1
  484. package/dist/cdn/assets/create-related-feature/t9n/messages.json +1 -1
  485. package/dist/cdn/assets/create-related-feature/t9n/messages.ko.json +1 -1
  486. package/dist/cdn/assets/create-related-feature/t9n/messages.lt.json +1 -1
  487. package/dist/cdn/assets/create-related-feature/t9n/messages.lv.json +1 -1
  488. package/dist/cdn/assets/create-related-feature/t9n/messages.nl.json +1 -1
  489. package/dist/cdn/assets/create-related-feature/t9n/messages.no.json +1 -1
  490. package/dist/cdn/assets/create-related-feature/t9n/messages.pl.json +1 -1
  491. package/dist/cdn/assets/create-related-feature/t9n/messages.pt-BR.json +1 -1
  492. package/dist/cdn/assets/create-related-feature/t9n/messages.pt-PT.json +1 -1
  493. package/dist/cdn/assets/create-related-feature/t9n/messages.ro.json +1 -1
  494. package/dist/cdn/assets/create-related-feature/t9n/messages.ru.json +1 -1
  495. package/dist/cdn/assets/create-related-feature/t9n/messages.sk.json +1 -1
  496. package/dist/cdn/assets/create-related-feature/t9n/messages.sl.json +1 -1
  497. package/dist/cdn/assets/create-related-feature/t9n/messages.sr.json +1 -1
  498. package/dist/cdn/assets/create-related-feature/t9n/messages.sv.json +1 -1
  499. package/dist/cdn/assets/create-related-feature/t9n/messages.th.json +1 -1
  500. package/dist/cdn/assets/create-related-feature/t9n/messages.tr.json +1 -1
  501. package/dist/cdn/assets/create-related-feature/t9n/messages.uk.json +1 -1
  502. package/dist/cdn/assets/create-related-feature/t9n/messages.vi.json +1 -1
  503. package/dist/cdn/assets/create-related-feature/t9n/messages.zh-CN.json +1 -1
  504. package/dist/cdn/assets/create-related-feature/t9n/messages.zh-HK.json +1 -1
  505. package/dist/cdn/assets/create-related-feature/t9n/messages.zh-TW.json +1 -1
  506. package/dist/cdn/assets/crowdsource-manager/t9n/messages.ar.json +1 -1
  507. package/dist/cdn/assets/crowdsource-manager/t9n/messages.bg.json +1 -1
  508. package/dist/cdn/assets/crowdsource-manager/t9n/messages.bs.json +1 -1
  509. package/dist/cdn/assets/crowdsource-manager/t9n/messages.ca.json +1 -1
  510. package/dist/cdn/assets/crowdsource-manager/t9n/messages.cs.json +1 -1
  511. package/dist/cdn/assets/crowdsource-manager/t9n/messages.da.json +1 -1
  512. package/dist/cdn/assets/crowdsource-manager/t9n/messages.de.json +1 -1
  513. package/dist/cdn/assets/crowdsource-manager/t9n/messages.el.json +1 -1
  514. package/dist/cdn/assets/crowdsource-manager/t9n/messages.en.json +1 -1
  515. package/dist/cdn/assets/crowdsource-manager/t9n/messages.es.json +1 -1
  516. package/dist/cdn/assets/crowdsource-manager/t9n/messages.et.json +1 -1
  517. package/dist/cdn/assets/crowdsource-manager/t9n/messages.fi.json +1 -1
  518. package/dist/cdn/assets/crowdsource-manager/t9n/messages.fr.json +1 -1
  519. package/dist/cdn/assets/crowdsource-manager/t9n/messages.he.json +1 -1
  520. package/dist/cdn/assets/crowdsource-manager/t9n/messages.hr.json +1 -1
  521. package/dist/cdn/assets/crowdsource-manager/t9n/messages.hu.json +1 -1
  522. package/dist/cdn/assets/crowdsource-manager/t9n/messages.id.json +1 -1
  523. package/dist/cdn/assets/crowdsource-manager/t9n/messages.it.json +1 -1
  524. package/dist/cdn/assets/crowdsource-manager/t9n/messages.ja.json +1 -1
  525. package/dist/cdn/assets/crowdsource-manager/t9n/messages.json +1 -1
  526. package/dist/cdn/assets/crowdsource-manager/t9n/messages.ko.json +1 -1
  527. package/dist/cdn/assets/crowdsource-manager/t9n/messages.lt.json +1 -1
  528. package/dist/cdn/assets/crowdsource-manager/t9n/messages.lv.json +1 -1
  529. package/dist/cdn/assets/crowdsource-manager/t9n/messages.nl.json +1 -1
  530. package/dist/cdn/assets/crowdsource-manager/t9n/messages.no.json +1 -1
  531. package/dist/cdn/assets/crowdsource-manager/t9n/messages.pl.json +1 -1
  532. package/dist/cdn/assets/crowdsource-manager/t9n/messages.pt-BR.json +1 -1
  533. package/dist/cdn/assets/crowdsource-manager/t9n/messages.pt-PT.json +1 -1
  534. package/dist/cdn/assets/crowdsource-manager/t9n/messages.ro.json +1 -1
  535. package/dist/cdn/assets/crowdsource-manager/t9n/messages.ru.json +1 -1
  536. package/dist/cdn/assets/crowdsource-manager/t9n/messages.sk.json +1 -1
  537. package/dist/cdn/assets/crowdsource-manager/t9n/messages.sl.json +1 -1
  538. package/dist/cdn/assets/crowdsource-manager/t9n/messages.sr.json +1 -1
  539. package/dist/cdn/assets/crowdsource-manager/t9n/messages.sv.json +1 -1
  540. package/dist/cdn/assets/crowdsource-manager/t9n/messages.th.json +1 -1
  541. package/dist/cdn/assets/crowdsource-manager/t9n/messages.tr.json +1 -1
  542. package/dist/cdn/assets/crowdsource-manager/t9n/messages.uk.json +1 -1
  543. package/dist/cdn/assets/crowdsource-manager/t9n/messages.vi.json +1 -1
  544. package/dist/cdn/assets/crowdsource-manager/t9n/messages.zh-CN.json +1 -1
  545. package/dist/cdn/assets/crowdsource-manager/t9n/messages.zh-HK.json +1 -1
  546. package/dist/cdn/assets/crowdsource-manager/t9n/messages.zh-TW.json +1 -1
  547. package/dist/cdn/assets/crowdsource-reporter/t9n/messages.ar.json +1 -1
  548. package/dist/cdn/assets/crowdsource-reporter/t9n/messages.bg.json +1 -1
  549. package/dist/cdn/assets/crowdsource-reporter/t9n/messages.bs.json +1 -1
  550. package/dist/cdn/assets/crowdsource-reporter/t9n/messages.ca.json +1 -1
  551. package/dist/cdn/assets/crowdsource-reporter/t9n/messages.cs.json +1 -1
  552. package/dist/cdn/assets/crowdsource-reporter/t9n/messages.da.json +1 -1
  553. package/dist/cdn/assets/crowdsource-reporter/t9n/messages.de.json +1 -1
  554. package/dist/cdn/assets/crowdsource-reporter/t9n/messages.el.json +1 -1
  555. package/dist/cdn/assets/crowdsource-reporter/t9n/messages.en.json +1 -1
  556. package/dist/cdn/assets/crowdsource-reporter/t9n/messages.es.json +1 -1
  557. package/dist/cdn/assets/crowdsource-reporter/t9n/messages.et.json +1 -1
  558. package/dist/cdn/assets/crowdsource-reporter/t9n/messages.fi.json +1 -1
  559. package/dist/cdn/assets/crowdsource-reporter/t9n/messages.fr.json +1 -1
  560. package/dist/cdn/assets/crowdsource-reporter/t9n/messages.he.json +1 -1
  561. package/dist/cdn/assets/crowdsource-reporter/t9n/messages.hr.json +1 -1
  562. package/dist/cdn/assets/crowdsource-reporter/t9n/messages.hu.json +1 -1
  563. package/dist/cdn/assets/crowdsource-reporter/t9n/messages.id.json +1 -1
  564. package/dist/cdn/assets/crowdsource-reporter/t9n/messages.it.json +1 -1
  565. package/dist/cdn/assets/crowdsource-reporter/t9n/messages.ja.json +1 -1
  566. package/dist/cdn/assets/crowdsource-reporter/t9n/messages.json +1 -1
  567. package/dist/cdn/assets/crowdsource-reporter/t9n/messages.ko.json +1 -1
  568. package/dist/cdn/assets/crowdsource-reporter/t9n/messages.lt.json +1 -1
  569. package/dist/cdn/assets/crowdsource-reporter/t9n/messages.lv.json +1 -1
  570. package/dist/cdn/assets/crowdsource-reporter/t9n/messages.nl.json +1 -1
  571. package/dist/cdn/assets/crowdsource-reporter/t9n/messages.no.json +1 -1
  572. package/dist/cdn/assets/crowdsource-reporter/t9n/messages.pl.json +1 -1
  573. package/dist/cdn/assets/crowdsource-reporter/t9n/messages.pt-BR.json +1 -1
  574. package/dist/cdn/assets/crowdsource-reporter/t9n/messages.pt-PT.json +1 -1
  575. package/dist/cdn/assets/crowdsource-reporter/t9n/messages.ro.json +1 -1
  576. package/dist/cdn/assets/crowdsource-reporter/t9n/messages.ru.json +1 -1
  577. package/dist/cdn/assets/crowdsource-reporter/t9n/messages.sk.json +1 -1
  578. package/dist/cdn/assets/crowdsource-reporter/t9n/messages.sl.json +1 -1
  579. package/dist/cdn/assets/crowdsource-reporter/t9n/messages.sr.json +1 -1
  580. package/dist/cdn/assets/crowdsource-reporter/t9n/messages.sv.json +1 -1
  581. package/dist/cdn/assets/crowdsource-reporter/t9n/messages.th.json +1 -1
  582. package/dist/cdn/assets/crowdsource-reporter/t9n/messages.tr.json +1 -1
  583. package/dist/cdn/assets/crowdsource-reporter/t9n/messages.uk.json +1 -1
  584. package/dist/cdn/assets/crowdsource-reporter/t9n/messages.vi.json +1 -1
  585. package/dist/cdn/assets/crowdsource-reporter/t9n/messages.zh-CN.json +1 -1
  586. package/dist/cdn/assets/crowdsource-reporter/t9n/messages.zh-HK.json +1 -1
  587. package/dist/cdn/assets/crowdsource-reporter/t9n/messages.zh-TW.json +1 -1
  588. package/dist/cdn/assets/edit-card/t9n/messages.ar.json +1 -1
  589. package/dist/cdn/assets/edit-card/t9n/messages.bg.json +1 -1
  590. package/dist/cdn/assets/edit-card/t9n/messages.bs.json +1 -1
  591. package/dist/cdn/assets/edit-card/t9n/messages.ca.json +1 -1
  592. package/dist/cdn/assets/edit-card/t9n/messages.cs.json +1 -1
  593. package/dist/cdn/assets/edit-card/t9n/messages.da.json +1 -1
  594. package/dist/cdn/assets/edit-card/t9n/messages.de.json +1 -1
  595. package/dist/cdn/assets/edit-card/t9n/messages.el.json +1 -1
  596. package/dist/cdn/assets/edit-card/t9n/messages.en.json +1 -1
  597. package/dist/cdn/assets/edit-card/t9n/messages.es.json +1 -1
  598. package/dist/cdn/assets/edit-card/t9n/messages.et.json +1 -1
  599. package/dist/cdn/assets/edit-card/t9n/messages.fi.json +1 -1
  600. package/dist/cdn/assets/edit-card/t9n/messages.fr.json +1 -1
  601. package/dist/cdn/assets/edit-card/t9n/messages.he.json +1 -1
  602. package/dist/cdn/assets/edit-card/t9n/messages.hr.json +1 -1
  603. package/dist/cdn/assets/edit-card/t9n/messages.hu.json +1 -1
  604. package/dist/cdn/assets/edit-card/t9n/messages.id.json +1 -1
  605. package/dist/cdn/assets/edit-card/t9n/messages.it.json +1 -1
  606. package/dist/cdn/assets/edit-card/t9n/messages.ja.json +1 -1
  607. package/dist/cdn/assets/edit-card/t9n/messages.json +1 -1
  608. package/dist/cdn/assets/edit-card/t9n/messages.ko.json +1 -1
  609. package/dist/cdn/assets/edit-card/t9n/messages.lt.json +1 -1
  610. package/dist/cdn/assets/edit-card/t9n/messages.lv.json +1 -1
  611. package/dist/cdn/assets/edit-card/t9n/messages.nl.json +1 -1
  612. package/dist/cdn/assets/edit-card/t9n/messages.no.json +1 -1
  613. package/dist/cdn/assets/edit-card/t9n/messages.pl.json +1 -1
  614. package/dist/cdn/assets/edit-card/t9n/messages.pt-BR.json +1 -1
  615. package/dist/cdn/assets/edit-card/t9n/messages.pt-PT.json +1 -1
  616. package/dist/cdn/assets/edit-card/t9n/messages.ro.json +1 -1
  617. package/dist/cdn/assets/edit-card/t9n/messages.ru.json +1 -1
  618. package/dist/cdn/assets/edit-card/t9n/messages.sk.json +1 -1
  619. package/dist/cdn/assets/edit-card/t9n/messages.sl.json +1 -1
  620. package/dist/cdn/assets/edit-card/t9n/messages.sr.json +1 -1
  621. package/dist/cdn/assets/edit-card/t9n/messages.sv.json +1 -1
  622. package/dist/cdn/assets/edit-card/t9n/messages.th.json +1 -1
  623. package/dist/cdn/assets/edit-card/t9n/messages.tr.json +1 -1
  624. package/dist/cdn/assets/edit-card/t9n/messages.uk.json +1 -1
  625. package/dist/cdn/assets/edit-card/t9n/messages.vi.json +1 -1
  626. package/dist/cdn/assets/edit-card/t9n/messages.zh-CN.json +1 -1
  627. package/dist/cdn/assets/edit-card/t9n/messages.zh-HK.json +1 -1
  628. package/dist/cdn/assets/edit-card/t9n/messages.zh-TW.json +1 -1
  629. package/dist/cdn/assets/field-selection/t9n/messages.no.json +1 -1
  630. package/dist/cdn/assets/info-card/t9n/messages.ar.json +1 -1
  631. package/dist/cdn/assets/info-card/t9n/messages.bg.json +1 -1
  632. package/dist/cdn/assets/info-card/t9n/messages.bs.json +1 -1
  633. package/dist/cdn/assets/info-card/t9n/messages.ca.json +1 -1
  634. package/dist/cdn/assets/info-card/t9n/messages.cs.json +1 -1
  635. package/dist/cdn/assets/info-card/t9n/messages.da.json +1 -1
  636. package/dist/cdn/assets/info-card/t9n/messages.de.json +1 -1
  637. package/dist/cdn/assets/info-card/t9n/messages.el.json +1 -1
  638. package/dist/cdn/assets/info-card/t9n/messages.en.json +1 -1
  639. package/dist/cdn/assets/info-card/t9n/messages.es.json +1 -1
  640. package/dist/cdn/assets/info-card/t9n/messages.et.json +1 -1
  641. package/dist/cdn/assets/info-card/t9n/messages.fi.json +1 -1
  642. package/dist/cdn/assets/info-card/t9n/messages.fr.json +1 -1
  643. package/dist/cdn/assets/info-card/t9n/messages.he.json +1 -1
  644. package/dist/cdn/assets/info-card/t9n/messages.hr.json +1 -1
  645. package/dist/cdn/assets/info-card/t9n/messages.hu.json +1 -1
  646. package/dist/cdn/assets/info-card/t9n/messages.id.json +1 -1
  647. package/dist/cdn/assets/info-card/t9n/messages.it.json +1 -1
  648. package/dist/cdn/assets/info-card/t9n/messages.ja.json +1 -1
  649. package/dist/cdn/assets/info-card/t9n/messages.json +1 -1
  650. package/dist/cdn/assets/info-card/t9n/messages.ko.json +1 -1
  651. package/dist/cdn/assets/info-card/t9n/messages.lt.json +1 -1
  652. package/dist/cdn/assets/info-card/t9n/messages.lv.json +1 -1
  653. package/dist/cdn/assets/info-card/t9n/messages.nl.json +1 -1
  654. package/dist/cdn/assets/info-card/t9n/messages.no.json +1 -1
  655. package/dist/cdn/assets/info-card/t9n/messages.pl.json +1 -1
  656. package/dist/cdn/assets/info-card/t9n/messages.pt-BR.json +1 -1
  657. package/dist/cdn/assets/info-card/t9n/messages.pt-PT.json +1 -1
  658. package/dist/cdn/assets/info-card/t9n/messages.ro.json +1 -1
  659. package/dist/cdn/assets/info-card/t9n/messages.ru.json +1 -1
  660. package/dist/cdn/assets/info-card/t9n/messages.sk.json +1 -1
  661. package/dist/cdn/assets/info-card/t9n/messages.sl.json +1 -1
  662. package/dist/cdn/assets/info-card/t9n/messages.sr.json +1 -1
  663. package/dist/cdn/assets/info-card/t9n/messages.sv.json +1 -1
  664. package/dist/cdn/assets/info-card/t9n/messages.th.json +1 -1
  665. package/dist/cdn/assets/info-card/t9n/messages.tr.json +1 -1
  666. package/dist/cdn/assets/info-card/t9n/messages.uk.json +1 -1
  667. package/dist/cdn/assets/info-card/t9n/messages.vi.json +1 -1
  668. package/dist/cdn/assets/info-card/t9n/messages.zh-CN.json +1 -1
  669. package/dist/cdn/assets/info-card/t9n/messages.zh-HK.json +1 -1
  670. package/dist/cdn/assets/info-card/t9n/messages.zh-TW.json +1 -1
  671. package/dist/cdn/assets/layer-table/t9n/messages.ar.json +1 -1
  672. package/dist/cdn/assets/layer-table/t9n/messages.bg.json +1 -1
  673. package/dist/cdn/assets/layer-table/t9n/messages.bs.json +1 -1
  674. package/dist/cdn/assets/layer-table/t9n/messages.ca.json +1 -1
  675. package/dist/cdn/assets/layer-table/t9n/messages.cs.json +1 -1
  676. package/dist/cdn/assets/layer-table/t9n/messages.da.json +1 -1
  677. package/dist/cdn/assets/layer-table/t9n/messages.de.json +1 -1
  678. package/dist/cdn/assets/layer-table/t9n/messages.el.json +1 -1
  679. package/dist/cdn/assets/layer-table/t9n/messages.en.json +1 -1
  680. package/dist/cdn/assets/layer-table/t9n/messages.es.json +1 -1
  681. package/dist/cdn/assets/layer-table/t9n/messages.et.json +1 -1
  682. package/dist/cdn/assets/layer-table/t9n/messages.fi.json +1 -1
  683. package/dist/cdn/assets/layer-table/t9n/messages.fr.json +1 -1
  684. package/dist/cdn/assets/layer-table/t9n/messages.he.json +1 -1
  685. package/dist/cdn/assets/layer-table/t9n/messages.hr.json +1 -1
  686. package/dist/cdn/assets/layer-table/t9n/messages.hu.json +1 -1
  687. package/dist/cdn/assets/layer-table/t9n/messages.id.json +1 -1
  688. package/dist/cdn/assets/layer-table/t9n/messages.it.json +1 -1
  689. package/dist/cdn/assets/layer-table/t9n/messages.ja.json +1 -1
  690. package/dist/cdn/assets/layer-table/t9n/messages.json +1 -1
  691. package/dist/cdn/assets/layer-table/t9n/messages.ko.json +1 -1
  692. package/dist/cdn/assets/layer-table/t9n/messages.lt.json +1 -1
  693. package/dist/cdn/assets/layer-table/t9n/messages.lv.json +1 -1
  694. package/dist/cdn/assets/layer-table/t9n/messages.nl.json +1 -1
  695. package/dist/cdn/assets/layer-table/t9n/messages.no.json +1 -1
  696. package/dist/cdn/assets/layer-table/t9n/messages.pl.json +1 -1
  697. package/dist/cdn/assets/layer-table/t9n/messages.pt-BR.json +1 -1
  698. package/dist/cdn/assets/layer-table/t9n/messages.pt-PT.json +1 -1
  699. package/dist/cdn/assets/layer-table/t9n/messages.ro.json +1 -1
  700. package/dist/cdn/assets/layer-table/t9n/messages.ru.json +1 -1
  701. package/dist/cdn/assets/layer-table/t9n/messages.sk.json +1 -1
  702. package/dist/cdn/assets/layer-table/t9n/messages.sl.json +1 -1
  703. package/dist/cdn/assets/layer-table/t9n/messages.sr.json +1 -1
  704. package/dist/cdn/assets/layer-table/t9n/messages.sv.json +1 -1
  705. package/dist/cdn/assets/layer-table/t9n/messages.th.json +1 -1
  706. package/dist/cdn/assets/layer-table/t9n/messages.tr.json +1 -1
  707. package/dist/cdn/assets/layer-table/t9n/messages.uk.json +1 -1
  708. package/dist/cdn/assets/layer-table/t9n/messages.vi.json +1 -1
  709. package/dist/cdn/assets/layer-table/t9n/messages.zh-CN.json +1 -1
  710. package/dist/cdn/assets/layer-table/t9n/messages.zh-HK.json +1 -1
  711. package/dist/cdn/assets/layer-table/t9n/messages.zh-TW.json +1 -1
  712. package/dist/cdn/assets/map-card/t9n/messages.ar.json +1 -1
  713. package/dist/cdn/assets/map-card/t9n/messages.bg.json +1 -1
  714. package/dist/cdn/assets/map-card/t9n/messages.bs.json +1 -1
  715. package/dist/cdn/assets/map-card/t9n/messages.ca.json +1 -1
  716. package/dist/cdn/assets/map-card/t9n/messages.cs.json +1 -1
  717. package/dist/cdn/assets/map-card/t9n/messages.da.json +1 -1
  718. package/dist/cdn/assets/map-card/t9n/messages.de.json +1 -1
  719. package/dist/cdn/assets/map-card/t9n/messages.el.json +1 -1
  720. package/dist/cdn/assets/map-card/t9n/messages.en.json +1 -1
  721. package/dist/cdn/assets/map-card/t9n/messages.es.json +1 -1
  722. package/dist/cdn/assets/map-card/t9n/messages.et.json +1 -1
  723. package/dist/cdn/assets/map-card/t9n/messages.fi.json +1 -1
  724. package/dist/cdn/assets/map-card/t9n/messages.fr.json +1 -1
  725. package/dist/cdn/assets/map-card/t9n/messages.he.json +1 -1
  726. package/dist/cdn/assets/map-card/t9n/messages.hr.json +1 -1
  727. package/dist/cdn/assets/map-card/t9n/messages.hu.json +1 -1
  728. package/dist/cdn/assets/map-card/t9n/messages.id.json +1 -1
  729. package/dist/cdn/assets/map-card/t9n/messages.it.json +1 -1
  730. package/dist/cdn/assets/map-card/t9n/messages.ja.json +1 -1
  731. package/dist/cdn/assets/map-card/t9n/messages.json +1 -1
  732. package/dist/cdn/assets/map-card/t9n/messages.ko.json +1 -1
  733. package/dist/cdn/assets/map-card/t9n/messages.lt.json +1 -1
  734. package/dist/cdn/assets/map-card/t9n/messages.lv.json +1 -1
  735. package/dist/cdn/assets/map-card/t9n/messages.nl.json +1 -1
  736. package/dist/cdn/assets/map-card/t9n/messages.no.json +1 -1
  737. package/dist/cdn/assets/map-card/t9n/messages.pl.json +1 -1
  738. package/dist/cdn/assets/map-card/t9n/messages.pt-BR.json +1 -1
  739. package/dist/cdn/assets/map-card/t9n/messages.pt-PT.json +1 -1
  740. package/dist/cdn/assets/map-card/t9n/messages.ro.json +1 -1
  741. package/dist/cdn/assets/map-card/t9n/messages.ru.json +1 -1
  742. package/dist/cdn/assets/map-card/t9n/messages.sk.json +1 -1
  743. package/dist/cdn/assets/map-card/t9n/messages.sl.json +1 -1
  744. package/dist/cdn/assets/map-card/t9n/messages.sr.json +1 -1
  745. package/dist/cdn/assets/map-card/t9n/messages.sv.json +1 -1
  746. package/dist/cdn/assets/map-card/t9n/messages.th.json +1 -1
  747. package/dist/cdn/assets/map-card/t9n/messages.tr.json +1 -1
  748. package/dist/cdn/assets/map-card/t9n/messages.uk.json +1 -1
  749. package/dist/cdn/assets/map-card/t9n/messages.vi.json +1 -1
  750. package/dist/cdn/assets/map-card/t9n/messages.zh-CN.json +1 -1
  751. package/dist/cdn/assets/map-card/t9n/messages.zh-HK.json +1 -1
  752. package/dist/cdn/assets/map-card/t9n/messages.zh-TW.json +1 -1
  753. package/dist/cdn/assets/map-picker/t9n/messages.ar.json +1 -1
  754. package/dist/cdn/assets/map-picker/t9n/messages.bg.json +1 -1
  755. package/dist/cdn/assets/map-picker/t9n/messages.bs.json +1 -1
  756. package/dist/cdn/assets/map-picker/t9n/messages.ca.json +1 -1
  757. package/dist/cdn/assets/map-picker/t9n/messages.cs.json +1 -1
  758. package/dist/cdn/assets/map-picker/t9n/messages.da.json +1 -1
  759. package/dist/cdn/assets/map-picker/t9n/messages.de.json +1 -1
  760. package/dist/cdn/assets/map-picker/t9n/messages.el.json +1 -1
  761. package/dist/cdn/assets/map-picker/t9n/messages.en.json +1 -1
  762. package/dist/cdn/assets/map-picker/t9n/messages.es.json +1 -1
  763. package/dist/cdn/assets/map-picker/t9n/messages.et.json +1 -1
  764. package/dist/cdn/assets/map-picker/t9n/messages.fi.json +1 -1
  765. package/dist/cdn/assets/map-picker/t9n/messages.fr.json +1 -1
  766. package/dist/cdn/assets/map-picker/t9n/messages.he.json +1 -1
  767. package/dist/cdn/assets/map-picker/t9n/messages.hr.json +1 -1
  768. package/dist/cdn/assets/map-picker/t9n/messages.hu.json +1 -1
  769. package/dist/cdn/assets/map-picker/t9n/messages.id.json +1 -1
  770. package/dist/cdn/assets/map-picker/t9n/messages.it.json +1 -1
  771. package/dist/cdn/assets/map-picker/t9n/messages.ja.json +1 -1
  772. package/dist/cdn/assets/map-picker/t9n/messages.json +1 -1
  773. package/dist/cdn/assets/map-picker/t9n/messages.ko.json +1 -1
  774. package/dist/cdn/assets/map-picker/t9n/messages.lt.json +1 -1
  775. package/dist/cdn/assets/map-picker/t9n/messages.lv.json +1 -1
  776. package/dist/cdn/assets/map-picker/t9n/messages.nl.json +1 -1
  777. package/dist/cdn/assets/map-picker/t9n/messages.no.json +1 -1
  778. package/dist/cdn/assets/map-picker/t9n/messages.pl.json +1 -1
  779. package/dist/cdn/assets/map-picker/t9n/messages.pt-BR.json +1 -1
  780. package/dist/cdn/assets/map-picker/t9n/messages.pt-PT.json +1 -1
  781. package/dist/cdn/assets/map-picker/t9n/messages.ro.json +1 -1
  782. package/dist/cdn/assets/map-picker/t9n/messages.ru.json +1 -1
  783. package/dist/cdn/assets/map-picker/t9n/messages.sk.json +1 -1
  784. package/dist/cdn/assets/map-picker/t9n/messages.sl.json +1 -1
  785. package/dist/cdn/assets/map-picker/t9n/messages.sr.json +1 -1
  786. package/dist/cdn/assets/map-picker/t9n/messages.sv.json +1 -1
  787. package/dist/cdn/assets/map-picker/t9n/messages.th.json +1 -1
  788. package/dist/cdn/assets/map-picker/t9n/messages.tr.json +1 -1
  789. package/dist/cdn/assets/map-picker/t9n/messages.uk.json +1 -1
  790. package/dist/cdn/assets/map-picker/t9n/messages.vi.json +1 -1
  791. package/dist/cdn/assets/map-picker/t9n/messages.zh-CN.json +1 -1
  792. package/dist/cdn/assets/map-picker/t9n/messages.zh-HK.json +1 -1
  793. package/dist/cdn/assets/map-picker/t9n/messages.zh-TW.json +1 -1
  794. package/dist/cdn/assets/solution-builder-assistant/images/conduct-field-inspections.png +0 -0
  795. package/dist/cdn/assets/solution-builder-assistant/images/locate-points-of-interest.png +0 -0
  796. package/dist/cdn/assets/solution-builder-assistant/images/manage-spatial-data.png +0 -0
  797. package/dist/cdn/assets/solution-builder-assistant/images/solutions-builder-draft-thumbnail.png +0 -0
  798. package/dist/cdn/assets/solution-builder-assistant/t9n/messages.ar.json +1 -0
  799. package/dist/cdn/assets/solution-builder-assistant/t9n/messages.bg.json +1 -0
  800. package/dist/cdn/assets/solution-builder-assistant/t9n/messages.bs.json +1 -0
  801. package/dist/cdn/assets/solution-builder-assistant/t9n/messages.ca.json +1 -0
  802. package/dist/cdn/assets/solution-builder-assistant/t9n/messages.cs.json +1 -0
  803. package/dist/cdn/assets/solution-builder-assistant/t9n/messages.da.json +1 -0
  804. package/dist/cdn/assets/solution-builder-assistant/t9n/messages.de.json +1 -0
  805. package/dist/cdn/assets/solution-builder-assistant/t9n/messages.el.json +1 -0
  806. package/dist/cdn/assets/solution-builder-assistant/t9n/messages.en.json +1 -0
  807. package/dist/cdn/assets/solution-builder-assistant/t9n/messages.es.json +1 -0
  808. package/dist/cdn/assets/solution-builder-assistant/t9n/messages.et.json +1 -0
  809. package/dist/cdn/assets/solution-builder-assistant/t9n/messages.fi.json +1 -0
  810. package/dist/cdn/assets/solution-builder-assistant/t9n/messages.fr.json +1 -0
  811. package/dist/cdn/assets/solution-builder-assistant/t9n/messages.he.json +1 -0
  812. package/dist/cdn/assets/solution-builder-assistant/t9n/messages.hr.json +1 -0
  813. package/dist/cdn/assets/solution-builder-assistant/t9n/messages.hu.json +1 -0
  814. package/dist/cdn/assets/solution-builder-assistant/t9n/messages.id.json +1 -0
  815. package/dist/cdn/assets/solution-builder-assistant/t9n/messages.it.json +1 -0
  816. package/dist/cdn/assets/solution-builder-assistant/t9n/messages.ja.json +1 -0
  817. package/dist/cdn/assets/solution-builder-assistant/t9n/messages.json +1 -0
  818. package/dist/cdn/assets/solution-builder-assistant/t9n/messages.ko.json +1 -0
  819. package/dist/cdn/assets/solution-builder-assistant/t9n/messages.lt.json +1 -0
  820. package/dist/cdn/assets/solution-builder-assistant/t9n/messages.lv.json +1 -0
  821. package/dist/cdn/assets/solution-builder-assistant/t9n/messages.nl.json +1 -0
  822. package/dist/cdn/assets/solution-builder-assistant/t9n/messages.no.json +1 -0
  823. package/dist/cdn/assets/solution-builder-assistant/t9n/messages.pl.json +1 -0
  824. package/dist/cdn/assets/solution-builder-assistant/t9n/messages.pt-BR.json +1 -0
  825. package/dist/cdn/assets/solution-builder-assistant/t9n/messages.pt-PT.json +1 -0
  826. package/dist/cdn/assets/solution-builder-assistant/t9n/messages.ro.json +1 -0
  827. package/dist/cdn/assets/solution-builder-assistant/t9n/messages.ru.json +1 -0
  828. package/dist/cdn/assets/solution-builder-assistant/t9n/messages.sk.json +1 -0
  829. package/dist/cdn/assets/solution-builder-assistant/t9n/messages.sl.json +1 -0
  830. package/dist/cdn/assets/solution-builder-assistant/t9n/messages.sr.json +1 -0
  831. package/dist/cdn/assets/solution-builder-assistant/t9n/messages.sv.json +1 -0
  832. package/dist/cdn/assets/solution-builder-assistant/t9n/messages.th.json +1 -0
  833. package/dist/cdn/assets/solution-builder-assistant/t9n/messages.tr.json +1 -0
  834. package/dist/cdn/assets/solution-builder-assistant/t9n/messages.uk.json +1 -0
  835. package/dist/cdn/assets/solution-builder-assistant/t9n/messages.vi.json +1 -0
  836. package/dist/cdn/assets/solution-builder-assistant/t9n/messages.zh-CN.json +1 -0
  837. package/dist/cdn/assets/solution-builder-assistant/t9n/messages.zh-HK.json +1 -0
  838. package/dist/cdn/assets/solution-builder-assistant/t9n/messages.zh-TW.json +1 -0
  839. package/dist/cdn/assets/solution-configure-titles/t9n/messages.ar.json +1 -1
  840. package/dist/cdn/assets/solution-configure-titles/t9n/messages.bg.json +1 -1
  841. package/dist/cdn/assets/solution-configure-titles/t9n/messages.bs.json +1 -1
  842. package/dist/cdn/assets/solution-configure-titles/t9n/messages.ca.json +1 -1
  843. package/dist/cdn/assets/solution-configure-titles/t9n/messages.cs.json +1 -1
  844. package/dist/cdn/assets/solution-configure-titles/t9n/messages.da.json +1 -1
  845. package/dist/cdn/assets/solution-configure-titles/t9n/messages.de.json +1 -1
  846. package/dist/cdn/assets/solution-configure-titles/t9n/messages.el.json +1 -1
  847. package/dist/cdn/assets/solution-configure-titles/t9n/messages.en.json +1 -1
  848. package/dist/cdn/assets/solution-configure-titles/t9n/messages.es.json +1 -1
  849. package/dist/cdn/assets/solution-configure-titles/t9n/messages.et.json +1 -1
  850. package/dist/cdn/assets/solution-configure-titles/t9n/messages.fi.json +1 -1
  851. package/dist/cdn/assets/solution-configure-titles/t9n/messages.fr.json +1 -1
  852. package/dist/cdn/assets/solution-configure-titles/t9n/messages.he.json +1 -1
  853. package/dist/cdn/assets/solution-configure-titles/t9n/messages.hr.json +1 -1
  854. package/dist/cdn/assets/solution-configure-titles/t9n/messages.hu.json +1 -1
  855. package/dist/cdn/assets/solution-configure-titles/t9n/messages.id.json +1 -1
  856. package/dist/cdn/assets/solution-configure-titles/t9n/messages.it.json +1 -1
  857. package/dist/cdn/assets/solution-configure-titles/t9n/messages.ja.json +1 -1
  858. package/dist/cdn/assets/solution-configure-titles/t9n/messages.json +1 -1
  859. package/dist/cdn/assets/solution-configure-titles/t9n/messages.ko.json +1 -1
  860. package/dist/cdn/assets/solution-configure-titles/t9n/messages.lt.json +1 -1
  861. package/dist/cdn/assets/solution-configure-titles/t9n/messages.lv.json +1 -1
  862. package/dist/cdn/assets/solution-configure-titles/t9n/messages.nl.json +1 -1
  863. package/dist/cdn/assets/solution-configure-titles/t9n/messages.no.json +1 -1
  864. package/dist/cdn/assets/solution-configure-titles/t9n/messages.pl.json +1 -1
  865. package/dist/cdn/assets/solution-configure-titles/t9n/messages.pt-BR.json +1 -1
  866. package/dist/cdn/assets/solution-configure-titles/t9n/messages.pt-PT.json +1 -1
  867. package/dist/cdn/assets/solution-configure-titles/t9n/messages.ro.json +1 -1
  868. package/dist/cdn/assets/solution-configure-titles/t9n/messages.ru.json +1 -1
  869. package/dist/cdn/assets/solution-configure-titles/t9n/messages.sk.json +1 -1
  870. package/dist/cdn/assets/solution-configure-titles/t9n/messages.sl.json +1 -1
  871. package/dist/cdn/assets/solution-configure-titles/t9n/messages.sr.json +1 -1
  872. package/dist/cdn/assets/solution-configure-titles/t9n/messages.sv.json +1 -1
  873. package/dist/cdn/assets/solution-configure-titles/t9n/messages.th.json +1 -1
  874. package/dist/cdn/assets/solution-configure-titles/t9n/messages.tr.json +1 -1
  875. package/dist/cdn/assets/solution-configure-titles/t9n/messages.uk.json +1 -1
  876. package/dist/cdn/assets/solution-configure-titles/t9n/messages.vi.json +1 -1
  877. package/dist/cdn/assets/solution-configure-titles/t9n/messages.zh-CN.json +1 -1
  878. package/dist/cdn/assets/solution-configure-titles/t9n/messages.zh-HK.json +1 -1
  879. package/dist/cdn/assets/solution-configure-titles/t9n/messages.zh-TW.json +1 -1
  880. package/dist/cdn/assets/solution-deployed-card/t9n/messages.ar.json +1 -1
  881. package/dist/cdn/assets/solution-deployed-card/t9n/messages.bg.json +1 -1
  882. package/dist/cdn/assets/solution-deployed-card/t9n/messages.bs.json +1 -1
  883. package/dist/cdn/assets/solution-deployed-card/t9n/messages.ca.json +1 -1
  884. package/dist/cdn/assets/solution-deployed-card/t9n/messages.cs.json +1 -1
  885. package/dist/cdn/assets/solution-deployed-card/t9n/messages.da.json +1 -1
  886. package/dist/cdn/assets/solution-deployed-card/t9n/messages.de.json +1 -1
  887. package/dist/cdn/assets/solution-deployed-card/t9n/messages.el.json +1 -1
  888. package/dist/cdn/assets/solution-deployed-card/t9n/messages.en.json +1 -1
  889. package/dist/cdn/assets/solution-deployed-card/t9n/messages.es.json +1 -1
  890. package/dist/cdn/assets/solution-deployed-card/t9n/messages.et.json +1 -1
  891. package/dist/cdn/assets/solution-deployed-card/t9n/messages.fi.json +1 -1
  892. package/dist/cdn/assets/solution-deployed-card/t9n/messages.fr.json +1 -1
  893. package/dist/cdn/assets/solution-deployed-card/t9n/messages.he.json +1 -1
  894. package/dist/cdn/assets/solution-deployed-card/t9n/messages.hr.json +1 -1
  895. package/dist/cdn/assets/solution-deployed-card/t9n/messages.hu.json +1 -1
  896. package/dist/cdn/assets/solution-deployed-card/t9n/messages.id.json +1 -1
  897. package/dist/cdn/assets/solution-deployed-card/t9n/messages.it.json +1 -1
  898. package/dist/cdn/assets/solution-deployed-card/t9n/messages.ja.json +1 -1
  899. package/dist/cdn/assets/solution-deployed-card/t9n/messages.json +1 -1
  900. package/dist/cdn/assets/solution-deployed-card/t9n/messages.ko.json +1 -1
  901. package/dist/cdn/assets/solution-deployed-card/t9n/messages.lt.json +1 -1
  902. package/dist/cdn/assets/solution-deployed-card/t9n/messages.lv.json +1 -1
  903. package/dist/cdn/assets/solution-deployed-card/t9n/messages.nl.json +1 -1
  904. package/dist/cdn/assets/solution-deployed-card/t9n/messages.no.json +1 -1
  905. package/dist/cdn/assets/solution-deployed-card/t9n/messages.pl.json +1 -1
  906. package/dist/cdn/assets/solution-deployed-card/t9n/messages.pt-BR.json +1 -1
  907. package/dist/cdn/assets/solution-deployed-card/t9n/messages.pt-PT.json +1 -1
  908. package/dist/cdn/assets/solution-deployed-card/t9n/messages.ro.json +1 -1
  909. package/dist/cdn/assets/solution-deployed-card/t9n/messages.ru.json +1 -1
  910. package/dist/cdn/assets/solution-deployed-card/t9n/messages.sk.json +1 -1
  911. package/dist/cdn/assets/solution-deployed-card/t9n/messages.sl.json +1 -1
  912. package/dist/cdn/assets/solution-deployed-card/t9n/messages.sr.json +1 -1
  913. package/dist/cdn/assets/solution-deployed-card/t9n/messages.sv.json +1 -1
  914. package/dist/cdn/assets/solution-deployed-card/t9n/messages.th.json +1 -1
  915. package/dist/cdn/assets/solution-deployed-card/t9n/messages.tr.json +1 -1
  916. package/dist/cdn/assets/solution-deployed-card/t9n/messages.uk.json +1 -1
  917. package/dist/cdn/assets/solution-deployed-card/t9n/messages.vi.json +1 -1
  918. package/dist/cdn/assets/solution-deployed-card/t9n/messages.zh-CN.json +1 -1
  919. package/dist/cdn/assets/solution-deployed-card/t9n/messages.zh-HK.json +1 -1
  920. package/dist/cdn/assets/solution-deployed-card/t9n/messages.zh-TW.json +1 -1
  921. package/dist/cdn/assets/solution-deployed-card-panel/t9n/messages.ar.json +1 -1
  922. package/dist/cdn/assets/solution-deployed-card-panel/t9n/messages.bg.json +1 -1
  923. package/dist/cdn/assets/solution-deployed-card-panel/t9n/messages.bs.json +1 -1
  924. package/dist/cdn/assets/solution-deployed-card-panel/t9n/messages.ca.json +1 -1
  925. package/dist/cdn/assets/solution-deployed-card-panel/t9n/messages.cs.json +1 -1
  926. package/dist/cdn/assets/solution-deployed-card-panel/t9n/messages.da.json +1 -1
  927. package/dist/cdn/assets/solution-deployed-card-panel/t9n/messages.de.json +1 -1
  928. package/dist/cdn/assets/solution-deployed-card-panel/t9n/messages.el.json +1 -1
  929. package/dist/cdn/assets/solution-deployed-card-panel/t9n/messages.en.json +1 -1
  930. package/dist/cdn/assets/solution-deployed-card-panel/t9n/messages.es.json +1 -1
  931. package/dist/cdn/assets/solution-deployed-card-panel/t9n/messages.et.json +1 -1
  932. package/dist/cdn/assets/solution-deployed-card-panel/t9n/messages.fi.json +1 -1
  933. package/dist/cdn/assets/solution-deployed-card-panel/t9n/messages.fr.json +1 -1
  934. package/dist/cdn/assets/solution-deployed-card-panel/t9n/messages.he.json +1 -1
  935. package/dist/cdn/assets/solution-deployed-card-panel/t9n/messages.hr.json +1 -1
  936. package/dist/cdn/assets/solution-deployed-card-panel/t9n/messages.hu.json +1 -1
  937. package/dist/cdn/assets/solution-deployed-card-panel/t9n/messages.id.json +1 -1
  938. package/dist/cdn/assets/solution-deployed-card-panel/t9n/messages.it.json +1 -1
  939. package/dist/cdn/assets/solution-deployed-card-panel/t9n/messages.ja.json +1 -1
  940. package/dist/cdn/assets/solution-deployed-card-panel/t9n/messages.json +1 -1
  941. package/dist/cdn/assets/solution-deployed-card-panel/t9n/messages.ko.json +1 -1
  942. package/dist/cdn/assets/solution-deployed-card-panel/t9n/messages.lt.json +1 -1
  943. package/dist/cdn/assets/solution-deployed-card-panel/t9n/messages.lv.json +1 -1
  944. package/dist/cdn/assets/solution-deployed-card-panel/t9n/messages.nl.json +1 -1
  945. package/dist/cdn/assets/solution-deployed-card-panel/t9n/messages.no.json +1 -1
  946. package/dist/cdn/assets/solution-deployed-card-panel/t9n/messages.pl.json +1 -1
  947. package/dist/cdn/assets/solution-deployed-card-panel/t9n/messages.pt-BR.json +1 -1
  948. package/dist/cdn/assets/solution-deployed-card-panel/t9n/messages.pt-PT.json +1 -1
  949. package/dist/cdn/assets/solution-deployed-card-panel/t9n/messages.ro.json +1 -1
  950. package/dist/cdn/assets/solution-deployed-card-panel/t9n/messages.ru.json +1 -1
  951. package/dist/cdn/assets/solution-deployed-card-panel/t9n/messages.sk.json +1 -1
  952. package/dist/cdn/assets/solution-deployed-card-panel/t9n/messages.sl.json +1 -1
  953. package/dist/cdn/assets/solution-deployed-card-panel/t9n/messages.sr.json +1 -1
  954. package/dist/cdn/assets/solution-deployed-card-panel/t9n/messages.sv.json +1 -1
  955. package/dist/cdn/assets/solution-deployed-card-panel/t9n/messages.th.json +1 -1
  956. package/dist/cdn/assets/solution-deployed-card-panel/t9n/messages.tr.json +1 -1
  957. package/dist/cdn/assets/solution-deployed-card-panel/t9n/messages.uk.json +1 -1
  958. package/dist/cdn/assets/solution-deployed-card-panel/t9n/messages.vi.json +1 -1
  959. package/dist/cdn/assets/solution-deployed-card-panel/t9n/messages.zh-CN.json +1 -1
  960. package/dist/cdn/assets/solution-deployed-card-panel/t9n/messages.zh-HK.json +1 -1
  961. package/dist/cdn/assets/solution-deployed-card-panel/t9n/messages.zh-TW.json +1 -1
  962. package/dist/cdn/assets/solution-deploying-dialog/t9n/messages.fi.json +1 -1
  963. package/dist/cdn/assets/solution-deploying-dialog/t9n/messages.fr.json +1 -1
  964. package/dist/cdn/assets/solution-deploying-dialog/t9n/messages.ja.json +1 -1
  965. package/dist/cdn/assets/solution-deploying-dialog/t9n/messages.nl.json +1 -1
  966. package/dist/cdn/assets/solution-deploying-dialog/t9n/messages.sk.json +1 -1
  967. package/dist/cdn/assets/solution-deploying-dialog/t9n/messages.tr.json +1 -1
  968. package/dist/cdn/assets/solution-details-card/t9n/messages.ar.json +1 -1
  969. package/dist/cdn/assets/solution-details-card/t9n/messages.bg.json +1 -1
  970. package/dist/cdn/assets/solution-details-card/t9n/messages.bs.json +1 -1
  971. package/dist/cdn/assets/solution-details-card/t9n/messages.ca.json +1 -1
  972. package/dist/cdn/assets/solution-details-card/t9n/messages.cs.json +1 -1
  973. package/dist/cdn/assets/solution-details-card/t9n/messages.da.json +1 -1
  974. package/dist/cdn/assets/solution-details-card/t9n/messages.de.json +1 -1
  975. package/dist/cdn/assets/solution-details-card/t9n/messages.el.json +1 -1
  976. package/dist/cdn/assets/solution-details-card/t9n/messages.en.json +1 -1
  977. package/dist/cdn/assets/solution-details-card/t9n/messages.es.json +1 -1
  978. package/dist/cdn/assets/solution-details-card/t9n/messages.et.json +1 -1
  979. package/dist/cdn/assets/solution-details-card/t9n/messages.fi.json +1 -1
  980. package/dist/cdn/assets/solution-details-card/t9n/messages.fr.json +1 -1
  981. package/dist/cdn/assets/solution-details-card/t9n/messages.he.json +1 -1
  982. package/dist/cdn/assets/solution-details-card/t9n/messages.hr.json +1 -1
  983. package/dist/cdn/assets/solution-details-card/t9n/messages.hu.json +1 -1
  984. package/dist/cdn/assets/solution-details-card/t9n/messages.id.json +1 -1
  985. package/dist/cdn/assets/solution-details-card/t9n/messages.it.json +1 -1
  986. package/dist/cdn/assets/solution-details-card/t9n/messages.ja.json +1 -1
  987. package/dist/cdn/assets/solution-details-card/t9n/messages.json +1 -1
  988. package/dist/cdn/assets/solution-details-card/t9n/messages.ko.json +1 -1
  989. package/dist/cdn/assets/solution-details-card/t9n/messages.lt.json +1 -1
  990. package/dist/cdn/assets/solution-details-card/t9n/messages.lv.json +1 -1
  991. package/dist/cdn/assets/solution-details-card/t9n/messages.nl.json +1 -1
  992. package/dist/cdn/assets/solution-details-card/t9n/messages.no.json +1 -1
  993. package/dist/cdn/assets/solution-details-card/t9n/messages.pl.json +1 -1
  994. package/dist/cdn/assets/solution-details-card/t9n/messages.pt-BR.json +1 -1
  995. package/dist/cdn/assets/solution-details-card/t9n/messages.pt-PT.json +1 -1
  996. package/dist/cdn/assets/solution-details-card/t9n/messages.ro.json +1 -1
  997. package/dist/cdn/assets/solution-details-card/t9n/messages.ru.json +1 -1
  998. package/dist/cdn/assets/solution-details-card/t9n/messages.sk.json +1 -1
  999. package/dist/cdn/assets/solution-details-card/t9n/messages.sl.json +1 -1
  1000. package/dist/cdn/assets/solution-details-card/t9n/messages.sr.json +1 -1
  1001. package/dist/cdn/assets/solution-details-card/t9n/messages.sv.json +1 -1
  1002. package/dist/cdn/assets/solution-details-card/t9n/messages.th.json +1 -1
  1003. package/dist/cdn/assets/solution-details-card/t9n/messages.tr.json +1 -1
  1004. package/dist/cdn/assets/solution-details-card/t9n/messages.uk.json +1 -1
  1005. package/dist/cdn/assets/solution-details-card/t9n/messages.vi.json +1 -1
  1006. package/dist/cdn/assets/solution-details-card/t9n/messages.zh-CN.json +1 -1
  1007. package/dist/cdn/assets/solution-details-card/t9n/messages.zh-HK.json +1 -1
  1008. package/dist/cdn/assets/solution-details-card/t9n/messages.zh-TW.json +1 -1
  1009. package/dist/cdn/assets/solution-details-panel/t9n/messages.ar.json +1 -1
  1010. package/dist/cdn/assets/solution-details-panel/t9n/messages.bg.json +1 -1
  1011. package/dist/cdn/assets/solution-details-panel/t9n/messages.bs.json +1 -1
  1012. package/dist/cdn/assets/solution-details-panel/t9n/messages.ca.json +1 -1
  1013. package/dist/cdn/assets/solution-details-panel/t9n/messages.cs.json +1 -1
  1014. package/dist/cdn/assets/solution-details-panel/t9n/messages.da.json +1 -1
  1015. package/dist/cdn/assets/solution-details-panel/t9n/messages.de.json +1 -1
  1016. package/dist/cdn/assets/solution-details-panel/t9n/messages.el.json +1 -1
  1017. package/dist/cdn/assets/solution-details-panel/t9n/messages.en.json +1 -1
  1018. package/dist/cdn/assets/solution-details-panel/t9n/messages.es.json +1 -1
  1019. package/dist/cdn/assets/solution-details-panel/t9n/messages.et.json +1 -1
  1020. package/dist/cdn/assets/solution-details-panel/t9n/messages.fi.json +1 -1
  1021. package/dist/cdn/assets/solution-details-panel/t9n/messages.fr.json +1 -1
  1022. package/dist/cdn/assets/solution-details-panel/t9n/messages.he.json +1 -1
  1023. package/dist/cdn/assets/solution-details-panel/t9n/messages.hr.json +1 -1
  1024. package/dist/cdn/assets/solution-details-panel/t9n/messages.hu.json +1 -1
  1025. package/dist/cdn/assets/solution-details-panel/t9n/messages.id.json +1 -1
  1026. package/dist/cdn/assets/solution-details-panel/t9n/messages.it.json +1 -1
  1027. package/dist/cdn/assets/solution-details-panel/t9n/messages.ja.json +1 -1
  1028. package/dist/cdn/assets/solution-details-panel/t9n/messages.json +1 -1
  1029. package/dist/cdn/assets/solution-details-panel/t9n/messages.ko.json +1 -1
  1030. package/dist/cdn/assets/solution-details-panel/t9n/messages.lt.json +1 -1
  1031. package/dist/cdn/assets/solution-details-panel/t9n/messages.lv.json +1 -1
  1032. package/dist/cdn/assets/solution-details-panel/t9n/messages.nl.json +1 -1
  1033. package/dist/cdn/assets/solution-details-panel/t9n/messages.no.json +1 -1
  1034. package/dist/cdn/assets/solution-details-panel/t9n/messages.pl.json +1 -1
  1035. package/dist/cdn/assets/solution-details-panel/t9n/messages.pt-BR.json +1 -1
  1036. package/dist/cdn/assets/solution-details-panel/t9n/messages.pt-PT.json +1 -1
  1037. package/dist/cdn/assets/solution-details-panel/t9n/messages.ro.json +1 -1
  1038. package/dist/cdn/assets/solution-details-panel/t9n/messages.ru.json +1 -1
  1039. package/dist/cdn/assets/solution-details-panel/t9n/messages.sk.json +1 -1
  1040. package/dist/cdn/assets/solution-details-panel/t9n/messages.sl.json +1 -1
  1041. package/dist/cdn/assets/solution-details-panel/t9n/messages.sr.json +1 -1
  1042. package/dist/cdn/assets/solution-details-panel/t9n/messages.sv.json +1 -1
  1043. package/dist/cdn/assets/solution-details-panel/t9n/messages.th.json +1 -1
  1044. package/dist/cdn/assets/solution-details-panel/t9n/messages.tr.json +1 -1
  1045. package/dist/cdn/assets/solution-details-panel/t9n/messages.uk.json +1 -1
  1046. package/dist/cdn/assets/solution-details-panel/t9n/messages.vi.json +1 -1
  1047. package/dist/cdn/assets/solution-details-panel/t9n/messages.zh-CN.json +1 -1
  1048. package/dist/cdn/assets/solution-details-panel/t9n/messages.zh-HK.json +1 -1
  1049. package/dist/cdn/assets/solution-details-panel/t9n/messages.zh-TW.json +1 -1
  1050. package/dist/cdn/assets/solution-item-accordion/t9n/messages.ar.json +1 -1
  1051. package/dist/cdn/assets/solution-item-accordion/t9n/messages.bg.json +1 -1
  1052. package/dist/cdn/assets/solution-item-accordion/t9n/messages.bs.json +1 -1
  1053. package/dist/cdn/assets/solution-item-accordion/t9n/messages.ca.json +1 -1
  1054. package/dist/cdn/assets/solution-item-accordion/t9n/messages.cs.json +1 -1
  1055. package/dist/cdn/assets/solution-item-accordion/t9n/messages.da.json +1 -1
  1056. package/dist/cdn/assets/solution-item-accordion/t9n/messages.de.json +1 -1
  1057. package/dist/cdn/assets/solution-item-accordion/t9n/messages.el.json +1 -1
  1058. package/dist/cdn/assets/solution-item-accordion/t9n/messages.en.json +1 -1
  1059. package/dist/cdn/assets/solution-item-accordion/t9n/messages.es.json +1 -1
  1060. package/dist/cdn/assets/solution-item-accordion/t9n/messages.et.json +1 -1
  1061. package/dist/cdn/assets/solution-item-accordion/t9n/messages.fi.json +1 -1
  1062. package/dist/cdn/assets/solution-item-accordion/t9n/messages.fr.json +1 -1
  1063. package/dist/cdn/assets/solution-item-accordion/t9n/messages.he.json +1 -1
  1064. package/dist/cdn/assets/solution-item-accordion/t9n/messages.hr.json +1 -1
  1065. package/dist/cdn/assets/solution-item-accordion/t9n/messages.hu.json +1 -1
  1066. package/dist/cdn/assets/solution-item-accordion/t9n/messages.id.json +1 -1
  1067. package/dist/cdn/assets/solution-item-accordion/t9n/messages.it.json +1 -1
  1068. package/dist/cdn/assets/solution-item-accordion/t9n/messages.ja.json +1 -1
  1069. package/dist/cdn/assets/solution-item-accordion/t9n/messages.json +1 -1
  1070. package/dist/cdn/assets/solution-item-accordion/t9n/messages.ko.json +1 -1
  1071. package/dist/cdn/assets/solution-item-accordion/t9n/messages.lt.json +1 -1
  1072. package/dist/cdn/assets/solution-item-accordion/t9n/messages.lv.json +1 -1
  1073. package/dist/cdn/assets/solution-item-accordion/t9n/messages.nl.json +1 -1
  1074. package/dist/cdn/assets/solution-item-accordion/t9n/messages.no.json +1 -1
  1075. package/dist/cdn/assets/solution-item-accordion/t9n/messages.pl.json +1 -1
  1076. package/dist/cdn/assets/solution-item-accordion/t9n/messages.pt-BR.json +1 -1
  1077. package/dist/cdn/assets/solution-item-accordion/t9n/messages.pt-PT.json +1 -1
  1078. package/dist/cdn/assets/solution-item-accordion/t9n/messages.ro.json +1 -1
  1079. package/dist/cdn/assets/solution-item-accordion/t9n/messages.ru.json +1 -1
  1080. package/dist/cdn/assets/solution-item-accordion/t9n/messages.sk.json +1 -1
  1081. package/dist/cdn/assets/solution-item-accordion/t9n/messages.sl.json +1 -1
  1082. package/dist/cdn/assets/solution-item-accordion/t9n/messages.sr.json +1 -1
  1083. package/dist/cdn/assets/solution-item-accordion/t9n/messages.sv.json +1 -1
  1084. package/dist/cdn/assets/solution-item-accordion/t9n/messages.th.json +1 -1
  1085. package/dist/cdn/assets/solution-item-accordion/t9n/messages.tr.json +1 -1
  1086. package/dist/cdn/assets/solution-item-accordion/t9n/messages.uk.json +1 -1
  1087. package/dist/cdn/assets/solution-item-accordion/t9n/messages.vi.json +1 -1
  1088. package/dist/cdn/assets/solution-item-accordion/t9n/messages.zh-CN.json +1 -1
  1089. package/dist/cdn/assets/solution-item-accordion/t9n/messages.zh-HK.json +1 -1
  1090. package/dist/cdn/assets/solution-item-accordion/t9n/messages.zh-TW.json +1 -1
  1091. package/dist/cdn/assets/solutions-all-shell/t9n/messages.ar.json +1 -1
  1092. package/dist/cdn/assets/solutions-all-shell/t9n/messages.bg.json +1 -1
  1093. package/dist/cdn/assets/solutions-all-shell/t9n/messages.bs.json +1 -1
  1094. package/dist/cdn/assets/solutions-all-shell/t9n/messages.ca.json +1 -1
  1095. package/dist/cdn/assets/solutions-all-shell/t9n/messages.cs.json +1 -1
  1096. package/dist/cdn/assets/solutions-all-shell/t9n/messages.da.json +1 -1
  1097. package/dist/cdn/assets/solutions-all-shell/t9n/messages.de.json +1 -1
  1098. package/dist/cdn/assets/solutions-all-shell/t9n/messages.el.json +1 -1
  1099. package/dist/cdn/assets/solutions-all-shell/t9n/messages.en.json +1 -1
  1100. package/dist/cdn/assets/solutions-all-shell/t9n/messages.es.json +1 -1
  1101. package/dist/cdn/assets/solutions-all-shell/t9n/messages.et.json +1 -1
  1102. package/dist/cdn/assets/solutions-all-shell/t9n/messages.fi.json +1 -1
  1103. package/dist/cdn/assets/solutions-all-shell/t9n/messages.fr.json +1 -1
  1104. package/dist/cdn/assets/solutions-all-shell/t9n/messages.he.json +1 -1
  1105. package/dist/cdn/assets/solutions-all-shell/t9n/messages.hr.json +1 -1
  1106. package/dist/cdn/assets/solutions-all-shell/t9n/messages.hu.json +1 -1
  1107. package/dist/cdn/assets/solutions-all-shell/t9n/messages.id.json +1 -1
  1108. package/dist/cdn/assets/solutions-all-shell/t9n/messages.it.json +1 -1
  1109. package/dist/cdn/assets/solutions-all-shell/t9n/messages.ja.json +1 -1
  1110. package/dist/cdn/assets/solutions-all-shell/t9n/messages.json +1 -1
  1111. package/dist/cdn/assets/solutions-all-shell/t9n/messages.ko.json +1 -1
  1112. package/dist/cdn/assets/solutions-all-shell/t9n/messages.lt.json +1 -1
  1113. package/dist/cdn/assets/solutions-all-shell/t9n/messages.lv.json +1 -1
  1114. package/dist/cdn/assets/solutions-all-shell/t9n/messages.nl.json +1 -1
  1115. package/dist/cdn/assets/solutions-all-shell/t9n/messages.no.json +1 -1
  1116. package/dist/cdn/assets/solutions-all-shell/t9n/messages.pl.json +1 -1
  1117. package/dist/cdn/assets/solutions-all-shell/t9n/messages.pt-BR.json +1 -1
  1118. package/dist/cdn/assets/solutions-all-shell/t9n/messages.pt-PT.json +1 -1
  1119. package/dist/cdn/assets/solutions-all-shell/t9n/messages.ro.json +1 -1
  1120. package/dist/cdn/assets/solutions-all-shell/t9n/messages.ru.json +1 -1
  1121. package/dist/cdn/assets/solutions-all-shell/t9n/messages.sk.json +1 -1
  1122. package/dist/cdn/assets/solutions-all-shell/t9n/messages.sl.json +1 -1
  1123. package/dist/cdn/assets/solutions-all-shell/t9n/messages.sr.json +1 -1
  1124. package/dist/cdn/assets/solutions-all-shell/t9n/messages.sv.json +1 -1
  1125. package/dist/cdn/assets/solutions-all-shell/t9n/messages.th.json +1 -1
  1126. package/dist/cdn/assets/solutions-all-shell/t9n/messages.tr.json +1 -1
  1127. package/dist/cdn/assets/solutions-all-shell/t9n/messages.uk.json +1 -1
  1128. package/dist/cdn/assets/solutions-all-shell/t9n/messages.vi.json +1 -1
  1129. package/dist/cdn/assets/solutions-all-shell/t9n/messages.zh-CN.json +1 -1
  1130. package/dist/cdn/assets/solutions-all-shell/t9n/messages.zh-HK.json +1 -1
  1131. package/dist/cdn/assets/solutions-all-shell/t9n/messages.zh-TW.json +1 -1
  1132. package/dist/cdn/assets/solutions-deploy-app/t9n/messages.ar.json +1 -1
  1133. package/dist/cdn/assets/solutions-deploy-app/t9n/messages.bg.json +1 -1
  1134. package/dist/cdn/assets/solutions-deploy-app/t9n/messages.bs.json +1 -1
  1135. package/dist/cdn/assets/solutions-deploy-app/t9n/messages.ca.json +1 -1
  1136. package/dist/cdn/assets/solutions-deploy-app/t9n/messages.cs.json +1 -1
  1137. package/dist/cdn/assets/solutions-deploy-app/t9n/messages.da.json +1 -1
  1138. package/dist/cdn/assets/solutions-deploy-app/t9n/messages.de.json +1 -1
  1139. package/dist/cdn/assets/solutions-deploy-app/t9n/messages.el.json +1 -1
  1140. package/dist/cdn/assets/solutions-deploy-app/t9n/messages.en.json +1 -1
  1141. package/dist/cdn/assets/solutions-deploy-app/t9n/messages.es.json +1 -1
  1142. package/dist/cdn/assets/solutions-deploy-app/t9n/messages.et.json +1 -1
  1143. package/dist/cdn/assets/solutions-deploy-app/t9n/messages.fi.json +1 -1
  1144. package/dist/cdn/assets/solutions-deploy-app/t9n/messages.fr.json +1 -1
  1145. package/dist/cdn/assets/solutions-deploy-app/t9n/messages.he.json +1 -1
  1146. package/dist/cdn/assets/solutions-deploy-app/t9n/messages.hr.json +1 -1
  1147. package/dist/cdn/assets/solutions-deploy-app/t9n/messages.hu.json +1 -1
  1148. package/dist/cdn/assets/solutions-deploy-app/t9n/messages.id.json +1 -1
  1149. package/dist/cdn/assets/solutions-deploy-app/t9n/messages.it.json +1 -1
  1150. package/dist/cdn/assets/solutions-deploy-app/t9n/messages.ja.json +1 -1
  1151. package/dist/cdn/assets/solutions-deploy-app/t9n/messages.json +1 -1
  1152. package/dist/cdn/assets/solutions-deploy-app/t9n/messages.ko.json +1 -1
  1153. package/dist/cdn/assets/solutions-deploy-app/t9n/messages.lt.json +1 -1
  1154. package/dist/cdn/assets/solutions-deploy-app/t9n/messages.lv.json +1 -1
  1155. package/dist/cdn/assets/solutions-deploy-app/t9n/messages.nl.json +1 -1
  1156. package/dist/cdn/assets/solutions-deploy-app/t9n/messages.no.json +1 -1
  1157. package/dist/cdn/assets/solutions-deploy-app/t9n/messages.pl.json +1 -1
  1158. package/dist/cdn/assets/solutions-deploy-app/t9n/messages.pt-BR.json +1 -1
  1159. package/dist/cdn/assets/solutions-deploy-app/t9n/messages.pt-PT.json +1 -1
  1160. package/dist/cdn/assets/solutions-deploy-app/t9n/messages.ro.json +1 -1
  1161. package/dist/cdn/assets/solutions-deploy-app/t9n/messages.ru.json +1 -1
  1162. package/dist/cdn/assets/solutions-deploy-app/t9n/messages.sk.json +1 -1
  1163. package/dist/cdn/assets/solutions-deploy-app/t9n/messages.sl.json +1 -1
  1164. package/dist/cdn/assets/solutions-deploy-app/t9n/messages.sr.json +1 -1
  1165. package/dist/cdn/assets/solutions-deploy-app/t9n/messages.sv.json +1 -1
  1166. package/dist/cdn/assets/solutions-deploy-app/t9n/messages.th.json +1 -1
  1167. package/dist/cdn/assets/solutions-deploy-app/t9n/messages.tr.json +1 -1
  1168. package/dist/cdn/assets/solutions-deploy-app/t9n/messages.uk.json +1 -1
  1169. package/dist/cdn/assets/solutions-deploy-app/t9n/messages.vi.json +1 -1
  1170. package/dist/cdn/assets/solutions-deploy-app/t9n/messages.zh-CN.json +1 -1
  1171. package/dist/cdn/assets/solutions-deploy-app/t9n/messages.zh-HK.json +1 -1
  1172. package/dist/cdn/assets/solutions-deploy-app/t9n/messages.zh-TW.json +1 -1
  1173. package/dist/cdn/assets/solutions-deploy-app-nav/t9n/messages.ar.json +1 -1
  1174. package/dist/cdn/assets/solutions-deployed-list/t9n/messages.en.json +1 -0
  1175. package/dist/cdn/assets/solutions-deployed-list/t9n/messages.json +1 -0
  1176. package/dist/cdn/assets/solutions-filter-panel/t9n/messages.ar.json +1 -1
  1177. package/dist/cdn/assets/solutions-filter-panel/t9n/messages.bg.json +1 -1
  1178. package/dist/cdn/assets/solutions-filter-panel/t9n/messages.bs.json +1 -1
  1179. package/dist/cdn/assets/solutions-filter-panel/t9n/messages.ca.json +1 -1
  1180. package/dist/cdn/assets/solutions-filter-panel/t9n/messages.cs.json +1 -1
  1181. package/dist/cdn/assets/solutions-filter-panel/t9n/messages.da.json +1 -1
  1182. package/dist/cdn/assets/solutions-filter-panel/t9n/messages.de.json +1 -1
  1183. package/dist/cdn/assets/solutions-filter-panel/t9n/messages.el.json +1 -1
  1184. package/dist/cdn/assets/solutions-filter-panel/t9n/messages.en.json +1 -1
  1185. package/dist/cdn/assets/solutions-filter-panel/t9n/messages.es.json +1 -1
  1186. package/dist/cdn/assets/solutions-filter-panel/t9n/messages.et.json +1 -1
  1187. package/dist/cdn/assets/solutions-filter-panel/t9n/messages.fi.json +1 -1
  1188. package/dist/cdn/assets/solutions-filter-panel/t9n/messages.fr.json +1 -1
  1189. package/dist/cdn/assets/solutions-filter-panel/t9n/messages.he.json +1 -1
  1190. package/dist/cdn/assets/solutions-filter-panel/t9n/messages.hr.json +1 -1
  1191. package/dist/cdn/assets/solutions-filter-panel/t9n/messages.hu.json +1 -1
  1192. package/dist/cdn/assets/solutions-filter-panel/t9n/messages.id.json +1 -1
  1193. package/dist/cdn/assets/solutions-filter-panel/t9n/messages.it.json +1 -1
  1194. package/dist/cdn/assets/solutions-filter-panel/t9n/messages.ja.json +1 -1
  1195. package/dist/cdn/assets/solutions-filter-panel/t9n/messages.json +1 -1
  1196. package/dist/cdn/assets/solutions-filter-panel/t9n/messages.ko.json +1 -1
  1197. package/dist/cdn/assets/solutions-filter-panel/t9n/messages.lt.json +1 -1
  1198. package/dist/cdn/assets/solutions-filter-panel/t9n/messages.lv.json +1 -1
  1199. package/dist/cdn/assets/solutions-filter-panel/t9n/messages.nl.json +1 -1
  1200. package/dist/cdn/assets/solutions-filter-panel/t9n/messages.no.json +1 -1
  1201. package/dist/cdn/assets/solutions-filter-panel/t9n/messages.pl.json +1 -1
  1202. package/dist/cdn/assets/solutions-filter-panel/t9n/messages.pt-BR.json +1 -1
  1203. package/dist/cdn/assets/solutions-filter-panel/t9n/messages.pt-PT.json +1 -1
  1204. package/dist/cdn/assets/solutions-filter-panel/t9n/messages.ro.json +1 -1
  1205. package/dist/cdn/assets/solutions-filter-panel/t9n/messages.ru.json +1 -1
  1206. package/dist/cdn/assets/solutions-filter-panel/t9n/messages.sk.json +1 -1
  1207. package/dist/cdn/assets/solutions-filter-panel/t9n/messages.sl.json +1 -1
  1208. package/dist/cdn/assets/solutions-filter-panel/t9n/messages.sr.json +1 -1
  1209. package/dist/cdn/assets/solutions-filter-panel/t9n/messages.sv.json +1 -1
  1210. package/dist/cdn/assets/solutions-filter-panel/t9n/messages.th.json +1 -1
  1211. package/dist/cdn/assets/solutions-filter-panel/t9n/messages.tr.json +1 -1
  1212. package/dist/cdn/assets/solutions-filter-panel/t9n/messages.uk.json +1 -1
  1213. package/dist/cdn/assets/solutions-filter-panel/t9n/messages.vi.json +1 -1
  1214. package/dist/cdn/assets/solutions-filter-panel/t9n/messages.zh-CN.json +1 -1
  1215. package/dist/cdn/assets/solutions-filter-panel/t9n/messages.zh-HK.json +1 -1
  1216. package/dist/cdn/assets/solutions-filter-panel/t9n/messages.zh-TW.json +1 -1
  1217. package/dist/cdn/index.js +1 -1
  1218. package/dist/cdn/main.css +1 -1
  1219. package/dist/chunks/Auth.js +160 -67
  1220. package/dist/chunks/CardsFetcher.js +288 -0
  1221. package/dist/chunks/assessBuildRequest.js +116 -0
  1222. package/dist/chunks/assessUpdateRequest.js +85 -0
  1223. package/dist/chunks/assistantResponse.js +46 -0
  1224. package/dist/chunks/cardFetchingUtils.js +23 -304
  1225. package/dist/chunks/cardsHelpers.js +11 -11
  1226. package/dist/chunks/classifyIntent.js +88 -0
  1227. package/dist/chunks/converter.js +949 -0
  1228. package/dist/chunks/deployAppContexts.js +4 -3
  1229. package/dist/chunks/deployFlowController.js +46 -0
  1230. package/dist/chunks/description.js +16 -0
  1231. package/dist/chunks/description2.js +36 -0
  1232. package/dist/chunks/designSolution.js +118 -0
  1233. package/dist/chunks/downloadUtils.js +246 -235
  1234. package/dist/chunks/explainValidationFailure.js +32 -0
  1235. package/dist/chunks/findExistingSolution.js +22 -0
  1236. package/dist/chunks/getItemIcon.js +19 -10
  1237. package/dist/chunks/getRelatedInfos.js +1 -1
  1238. package/dist/chunks/helpers.js +110 -519
  1239. package/dist/chunks/interfaces.js +472 -0
  1240. package/dist/chunks/popupUtils.js +3 -3
  1241. package/dist/chunks/queryUtils.js +3 -3
  1242. package/dist/chunks/solution-builder-assistant.js +1137 -0
  1243. package/dist/chunks/solution-deploy-dialog.js +183 -150
  1244. package/dist/chunks/solutions-deploy-app-nav.js +38 -39
  1245. package/dist/chunks/solutions_explorer_description.js +19 -0
  1246. package/dist/chunks/templates.js +65 -0
  1247. package/dist/chunks/transformQuery.js +49 -0
  1248. package/dist/chunks/updateDesign.js +5 -0
  1249. package/dist/chunks/validators.js +131 -0
  1250. package/dist/components/arcgis-solutions-assistant/customElement.d.ts +83 -83
  1251. package/dist/components/arcgis-solutions-assistant/customElement.js +1666 -1539
  1252. package/dist/components/arcgis-solutions-assistant/index.js +7 -8
  1253. package/dist/components/buffer-tools/customElement.d.ts +11 -4
  1254. package/dist/components/buffer-tools/customElement.js +5 -5
  1255. package/dist/components/card-manager/customElement.d.ts +39 -6
  1256. package/dist/components/card-manager/customElement.js +128 -26
  1257. package/dist/components/card-manager/index.js +2 -1
  1258. package/dist/components/consent-manager/customElement.d.ts +2 -2
  1259. package/dist/components/consent-manager/customElement.js +23 -3958
  1260. package/dist/components/create-feature/customElement.d.ts +55 -5
  1261. package/dist/components/create-feature/customElement.js +422 -306
  1262. package/dist/components/create-feature/index.js +4 -1
  1263. package/dist/components/create-related-feature/customElement.d.ts +16 -8
  1264. package/dist/components/create-related-feature/customElement.js +64 -84
  1265. package/dist/components/create-related-feature/index.js +1 -0
  1266. package/dist/components/crowdsource-manager/customElement.d.ts +8 -0
  1267. package/dist/components/crowdsource-manager/customElement.js +59 -46
  1268. package/dist/components/crowdsource-reporter/customElement.d.ts +32 -6
  1269. package/dist/components/crowdsource-reporter/customElement.js +82 -56
  1270. package/dist/components/deduct-calculator/customElement.js +5 -5
  1271. package/dist/components/delete-button/customElement.d.ts +2 -2
  1272. package/dist/components/delete-button/customElement.js +1 -1
  1273. package/dist/components/delete-dialog/customElement.d.ts +3 -3
  1274. package/dist/components/edit-card/customElement.d.ts +15 -7
  1275. package/dist/components/edit-card/customElement.js +37 -42
  1276. package/dist/components/edit-card/index.js +1 -0
  1277. package/dist/components/feature-details/customElement.d.ts +7 -6
  1278. package/dist/components/feature-details/customElement.js +5 -5
  1279. package/dist/components/feature-list/customElement.d.ts +5 -4
  1280. package/dist/components/feature-list/customElement.js +7 -7
  1281. package/dist/components/field-selection/customElement.d.ts +6 -4
  1282. package/dist/components/field-selection/customElement.js +75 -67
  1283. package/dist/components/info-card/customElement.d.ts +34 -10
  1284. package/dist/components/info-card/customElement.js +93 -86
  1285. package/dist/components/info-card/index.js +1 -0
  1286. package/dist/components/layer-list/customElement.d.ts +3 -3
  1287. package/dist/components/layer-list/customElement.js +3 -3
  1288. package/dist/components/layer-list-widget/customElement.d.ts +6 -9
  1289. package/dist/components/layer-list-widget/customElement.js +12 -29
  1290. package/dist/components/layer-list-widget/index.js +1 -0
  1291. package/dist/components/layer-table/customElement.d.ts +46 -3
  1292. package/dist/components/layer-table/customElement.js +182 -99
  1293. package/dist/components/map-basemap-gallery/customElement.d.ts +6 -8
  1294. package/dist/components/map-basemap-gallery/customElement.js +31 -38
  1295. package/dist/components/map-basemap-gallery/index.js +1 -0
  1296. package/dist/components/map-card/customElement.d.ts +44 -10
  1297. package/dist/components/map-card/customElement.js +81 -57
  1298. package/dist/components/map-card/index.js +1 -0
  1299. package/dist/components/map-draw-tools/customElement.d.ts +15 -11
  1300. package/dist/components/map-draw-tools/customElement.js +80 -114
  1301. package/dist/components/map-draw-tools/index.js +1 -0
  1302. package/dist/components/map-floor-filter/customElement.d.ts +6 -8
  1303. package/dist/components/map-floor-filter/customElement.js +22 -45
  1304. package/dist/components/map-floor-filter/index.js +1 -0
  1305. package/dist/components/map-fullscreen/customElement.d.ts +6 -4
  1306. package/dist/components/map-fullscreen/customElement.js +14 -34
  1307. package/dist/components/map-fullscreen/index.js +1 -0
  1308. package/dist/components/map-layer-picker/customElement.d.ts +2 -2
  1309. package/dist/components/map-layer-picker/customElement.js +14 -9
  1310. package/dist/components/map-legend/customElement.d.ts +6 -8
  1311. package/dist/components/map-legend/customElement.js +14 -30
  1312. package/dist/components/map-legend/index.js +1 -0
  1313. package/dist/components/map-picker/customElement.d.ts +7 -1
  1314. package/dist/components/map-picker/customElement.js +3 -3
  1315. package/dist/components/map-search/customElement.d.ts +8 -6
  1316. package/dist/components/map-search/customElement.js +25 -52
  1317. package/dist/components/map-search/index.js +1 -0
  1318. package/dist/components/map-select-tools/customElement.d.ts +24 -12
  1319. package/dist/components/map-select-tools/customElement.js +49 -60
  1320. package/dist/components/map-select-tools/index.js +1 -0
  1321. package/dist/components/map-tools/customElement.d.ts +15 -7
  1322. package/dist/components/map-tools/customElement.js +92 -100
  1323. package/dist/components/map-tools/index.js +2 -1
  1324. package/dist/components/pci-calculator/customElement.js +5 -5
  1325. package/dist/components/pdf-download/customElement.d.ts +3 -3
  1326. package/dist/components/pdf-download/customElement.js +1 -1
  1327. package/dist/components/public-notification/customElement.d.ts +15 -11
  1328. package/dist/components/public-notification/customElement.js +158 -74
  1329. package/dist/components/refine-selection/customElement.d.ts +15 -9
  1330. package/dist/components/refine-selection/customElement.js +20 -20
  1331. package/dist/components/selection-tool/customElement.d.ts +3 -3
  1332. package/dist/components/selection-tool/customElement.js +3 -3
  1333. package/dist/components/solution-builder-assistant/customElement.d.ts +342 -0
  1334. package/dist/components/solution-builder-assistant/customElement.js +21 -0
  1335. package/dist/components/solution-builder-assistant/index.d.ts +1 -0
  1336. package/dist/components/solution-builder-assistant/index.js +30 -0
  1337. package/dist/components/solution-configure-titles/customElement.js +103 -83
  1338. package/dist/components/solution-delete-dialog/customElement.js +41 -34
  1339. package/dist/components/solution-deploy-dialog/customElement.d.ts +9 -3
  1340. package/dist/components/solution-deploy-dialog/customElement.js +4 -3
  1341. package/dist/components/solution-deploy-dialog/index.js +1 -1
  1342. package/dist/components/solution-deployed-card/customElement.d.ts +2 -0
  1343. package/dist/components/solution-deployed-card/customElement.js +3 -2
  1344. package/dist/components/solution-deployed-card/index.js +1 -0
  1345. package/dist/components/solution-deployed-card-panel/customElement.d.ts +15 -0
  1346. package/dist/components/solution-deployed-card-panel/customElement.js +130 -56
  1347. package/dist/components/solution-deployed-card-panel/index.js +2 -1
  1348. package/dist/components/solution-deploying-dialog/customElement.js +16 -16
  1349. package/dist/components/solution-details-card/customElement.d.ts +4 -0
  1350. package/dist/components/solution-details-card/customElement.js +39 -27
  1351. package/dist/components/solution-details-card/index.js +1 -0
  1352. package/dist/components/solution-details-panel/customElement.d.ts +15 -4
  1353. package/dist/components/solution-details-panel/customElement.js +253 -244
  1354. package/dist/components/solution-details-panel/index.js +2 -0
  1355. package/dist/components/solution-item-accordion/customElement.d.ts +17 -4
  1356. package/dist/components/solution-item-accordion/customElement.js +69 -36
  1357. package/dist/components/solution-item-accordion/index.js +1 -0
  1358. package/dist/components/solution-item-diagram/customElement.js +252 -212
  1359. package/dist/components/solution-item-icon/customElement.d.ts +6 -0
  1360. package/dist/components/solution-item-icon/customElement.js +13 -12
  1361. package/dist/components/solution-resource-card/customElement.js +8 -7
  1362. package/dist/components/solution-snapshot-gallery/customElement.js +11 -9
  1363. package/dist/components/solution-social-share/customElement.js +15 -14
  1364. package/dist/components/solution-user-avatar/customElement.js +1 -1
  1365. package/dist/components/solutions-all-panel/customElement.d.ts +2 -0
  1366. package/dist/components/solutions-all-panel/customElement.js +59 -40
  1367. package/dist/components/solutions-all-shell/customElement.d.ts +4 -0
  1368. package/dist/components/solutions-all-shell/customElement.js +84 -39
  1369. package/dist/components/solutions-deploy-app/customElement.d.ts +21 -0
  1370. package/dist/components/solutions-deploy-app/customElement.js +843 -118
  1371. package/dist/components/solutions-deploy-app/index.js +7 -0
  1372. package/dist/components/solutions-deploy-app-nav/customElement.d.ts +6 -0
  1373. package/dist/components/solutions-deploy-app-nav/customElement.js +4 -5
  1374. package/dist/components/solutions-deployed-list/customElement.d.ts +43 -0
  1375. package/dist/components/solutions-deployed-list/customElement.js +64 -0
  1376. package/dist/components/solutions-deployed-list/index.d.ts +1 -0
  1377. package/dist/components/solutions-deployed-list/index.js +3 -0
  1378. package/dist/components/solutions-deployed-panel/customElement.js +43 -32
  1379. package/dist/components/solutions-deployed-panel/index.js +0 -1
  1380. package/dist/components/solutions-deployed-shell/customElement.js +22 -18
  1381. package/dist/components/solutions-deployed-shell/index.js +0 -1
  1382. package/dist/components/solutions-filter-panel/customElement.d.ts +2 -6
  1383. package/dist/components/solutions-filter-panel/customElement.js +49 -63
  1384. package/dist/components/solutions-filter-panel/index.js +0 -3
  1385. package/dist/components/solutions-resources-section/customElement.js +10 -9
  1386. package/dist/components/solutions-resources-shell/customElement.d.ts +7 -0
  1387. package/dist/components/solutions-resources-shell/customElement.js +92 -50
  1388. package/dist/components/solutions-searchsort-toolbar/customElement.js +16 -19
  1389. package/dist/docs/api.json +1 -1
  1390. package/dist/docs/docs.json +1 -1
  1391. package/dist/docs/vscode.html-custom-data.json +1 -1
  1392. package/dist/docs/web-types.json +1 -1
  1393. package/dist/index.d.ts +20 -6
  1394. package/dist/index.js +25 -24
  1395. package/dist/loader.js +29 -27
  1396. package/dist/solutions-components_commit.txt +5 -8
  1397. package/dist/types/lumina.d.ts +54 -25
  1398. package/dist/types/preact.d.ts +56 -25
  1399. package/dist/types/react.d.ts +58 -25
  1400. package/dist/types/stencil.d.ts +54 -25
  1401. package/dist/utils/Auth.d.ts +13 -2
  1402. package/dist/utils/getRelatedInfos.d.ts +4 -0
  1403. package/dist/utils/interfaces.d.ts +203 -31
  1404. package/package.json +42 -34
  1405. package/dist/cdn/27G6RESZ.js +0 -2
  1406. package/dist/cdn/2L7O5T7N.js +0 -2
  1407. package/dist/cdn/2RBKFT3Q.js +0 -2
  1408. package/dist/cdn/2WPJOTMI.js +0 -2
  1409. package/dist/cdn/2XQOWXMT.js +0 -2
  1410. package/dist/cdn/3JF5JLS4.js +0 -2
  1411. package/dist/cdn/3ME5BVUE.js +0 -2
  1412. package/dist/cdn/3PT5ULE3.js +0 -2
  1413. package/dist/cdn/3SYLXG32.js +0 -2
  1414. package/dist/cdn/3WO3DS32.js +0 -2
  1415. package/dist/cdn/45ZS4SG7.js +0 -2
  1416. package/dist/cdn/4GHX4MVD.js +0 -50
  1417. package/dist/cdn/4L3MVJ5S.js +0 -2
  1418. package/dist/cdn/5326HZ74.js +0 -2
  1419. package/dist/cdn/57JYZYF5.js +0 -2
  1420. package/dist/cdn/5FKEDJRU.js +0 -2
  1421. package/dist/cdn/5GIHSPJZ.js +0 -2
  1422. package/dist/cdn/5KD4GK7Y.js +0 -2
  1423. package/dist/cdn/5QCBD6ZZ.js +0 -2
  1424. package/dist/cdn/5S3WZLB5.js +0 -2
  1425. package/dist/cdn/5TZ7Q4JG.js +0 -2
  1426. package/dist/cdn/66Q5IRVS.js +0 -2
  1427. package/dist/cdn/6DLDJH6I.js +0 -2
  1428. package/dist/cdn/6G7RA3PN.js +0 -2
  1429. package/dist/cdn/6UXP2Q63.js +0 -2
  1430. package/dist/cdn/73AX72WY.js +0 -2
  1431. package/dist/cdn/743J5TBS.js +0 -2
  1432. package/dist/cdn/74557KPJ.js +0 -2
  1433. package/dist/cdn/7J2VRW7S.js +0 -2
  1434. package/dist/cdn/7YIQXDUF.js +0 -2
  1435. package/dist/cdn/7ZMHT4SH.js +0 -2
  1436. package/dist/cdn/A2LNKTGU.js +0 -2
  1437. package/dist/cdn/A5STEAY7.js +0 -2
  1438. package/dist/cdn/ABTC2V7J.js +0 -2
  1439. package/dist/cdn/AC3MHBPK.js +0 -2
  1440. package/dist/cdn/AF2YWYJQ.js +0 -2
  1441. package/dist/cdn/AGC6ZWMH.js +0 -2
  1442. package/dist/cdn/AKDP6MCB.js +0 -2
  1443. package/dist/cdn/AT2EES2R.js +0 -21
  1444. package/dist/cdn/ATVUAP2X.js +0 -2
  1445. package/dist/cdn/AVNCYWKK.js +0 -2
  1446. package/dist/cdn/BEGKM3ZM.js +0 -2
  1447. package/dist/cdn/BJMKDP4O.js +0 -2
  1448. package/dist/cdn/BK3QFV3M.js +0 -2
  1449. package/dist/cdn/BMJN3MIR.js +0 -2
  1450. package/dist/cdn/BPOWO72Z.js +0 -2
  1451. package/dist/cdn/D4QQZVLI.js +0 -2
  1452. package/dist/cdn/DIKAKOU5.js +0 -2
  1453. package/dist/cdn/DMRQFYLJ.js +0 -174
  1454. package/dist/cdn/DQ4POWIJ.js +0 -2
  1455. package/dist/cdn/DQV46RIT.js +0 -2
  1456. package/dist/cdn/E7HQ4JJ2.js +0 -2
  1457. package/dist/cdn/EGFXSDFS.js +0 -2
  1458. package/dist/cdn/EJRSL3ID.js +0 -2
  1459. package/dist/cdn/EPRDKJSD.js +0 -2
  1460. package/dist/cdn/F372CSCW.js +0 -2
  1461. package/dist/cdn/FXHBHZKG.js +0 -2
  1462. package/dist/cdn/GGBXY3NT.js +0 -2
  1463. package/dist/cdn/GTKRTZK6.js +0 -2
  1464. package/dist/cdn/HBJZGW4L.js +0 -2
  1465. package/dist/cdn/HBQN25RR.js +0 -4
  1466. package/dist/cdn/HMB3LHBC.js +0 -2
  1467. package/dist/cdn/HPQPI754.js +0 -2
  1468. package/dist/cdn/I4PUORX4.js +0 -2
  1469. package/dist/cdn/IORIFDK6.js +0 -2
  1470. package/dist/cdn/IUPEGG4M.js +0 -2
  1471. package/dist/cdn/J33ST6ZG.js +0 -2
  1472. package/dist/cdn/J5VTBFGR.js +0 -2
  1473. package/dist/cdn/JALU4653.js +0 -2
  1474. package/dist/cdn/JK75TUSP.js +0 -2
  1475. package/dist/cdn/JUXXPW6I.js +0 -2
  1476. package/dist/cdn/JYLXH6OM.js +0 -2
  1477. package/dist/cdn/K5JYHCQ7.js +0 -2
  1478. package/dist/cdn/K5VEUOS3.js +0 -2
  1479. package/dist/cdn/K7XOFXRK.js +0 -7
  1480. package/dist/cdn/KD46EE7M.js +0 -2
  1481. package/dist/cdn/KKYXQLBJ.js +0 -2
  1482. package/dist/cdn/KPBEUIQV.js +0 -2
  1483. package/dist/cdn/KSXW3QKP.js +0 -2
  1484. package/dist/cdn/KWCJDOZU.js +0 -2
  1485. package/dist/cdn/KZDTATOG.js +0 -2
  1486. package/dist/cdn/LD2NUKM3.js +0 -2
  1487. package/dist/cdn/LDHJGX5G.js +0 -2
  1488. package/dist/cdn/LI4CAGAZ.js +0 -2
  1489. package/dist/cdn/LO5Q55JH.js +0 -2
  1490. package/dist/cdn/LPNQJBCN.js +0 -2
  1491. package/dist/cdn/LWUSGNUB.js +0 -2
  1492. package/dist/cdn/M4OPXH3T.js +0 -2
  1493. package/dist/cdn/M7YK4K5M.js +0 -2
  1494. package/dist/cdn/MWVSVTGT.js +0 -2
  1495. package/dist/cdn/MZ3QZD4K.js +0 -2
  1496. package/dist/cdn/MZLEP53S.js +0 -2
  1497. package/dist/cdn/N2ROUAUM.js +0 -2
  1498. package/dist/cdn/N7HJKCUK.js +0 -2
  1499. package/dist/cdn/N7OY2PSZ.js +0 -2
  1500. package/dist/cdn/NGCFEPQE.js +0 -4
  1501. package/dist/cdn/NIUMAAOQ.js +0 -2
  1502. package/dist/cdn/NOOFAZCT.js +0 -2
  1503. package/dist/cdn/NSITJP7B.js +0 -2
  1504. package/dist/cdn/NZS3YVIT.js +0 -2
  1505. package/dist/cdn/OQFRVQQZ.js +0 -2
  1506. package/dist/cdn/OYQYXNHJ.js +0 -2
  1507. package/dist/cdn/P4FX4W2X.js +0 -2
  1508. package/dist/cdn/P4KZ6OZF.js +0 -4
  1509. package/dist/cdn/P5Q3LVYT.js +0 -2
  1510. package/dist/cdn/P6IYN2TS.js +0 -2
  1511. package/dist/cdn/PJH3H7LZ.js +0 -2
  1512. package/dist/cdn/PYBOC3DB.js +0 -2
  1513. package/dist/cdn/PZOAAAVI.js +0 -2
  1514. package/dist/cdn/QHG54NVK.js +0 -2
  1515. package/dist/cdn/QI5LXFA7.js +0 -2
  1516. package/dist/cdn/QPIMTXPL.js +0 -2
  1517. package/dist/cdn/QWRM254M.js +0 -2
  1518. package/dist/cdn/R3TKXDOE.js +0 -6
  1519. package/dist/cdn/RDXJFHLV.js +0 -2
  1520. package/dist/cdn/REOO5ZGK.js +0 -2
  1521. package/dist/cdn/RKMY6VWP.js +0 -2
  1522. package/dist/cdn/RTPXDRZ7.js +0 -2
  1523. package/dist/cdn/SENL26AU.js +0 -3
  1524. package/dist/cdn/SSO3AN4U.js +0 -2
  1525. package/dist/cdn/SXD7ZWLW.js +0 -27
  1526. package/dist/cdn/SZRONHSX.js +0 -2
  1527. package/dist/cdn/T2WSMUVL.js +0 -2
  1528. package/dist/cdn/TBQQ6OPX.js +0 -2
  1529. package/dist/cdn/TH52564W.js +0 -2
  1530. package/dist/cdn/THKPPH7G.js +0 -2
  1531. package/dist/cdn/TP5EQUBD.js +0 -2
  1532. package/dist/cdn/TRJ6EQRD.js +0 -2
  1533. package/dist/cdn/TU5GZK4M.js +0 -2
  1534. package/dist/cdn/U3LEZXNT.js +0 -2
  1535. package/dist/cdn/UFJWRZWQ.js +0 -2
  1536. package/dist/cdn/ULCILXSA.js +0 -2
  1537. package/dist/cdn/ULXATJK5.js +0 -2
  1538. package/dist/cdn/UME5GDA2.js +0 -2
  1539. package/dist/cdn/VDEFBT2N.js +0 -2
  1540. package/dist/cdn/VFC4CM23.js +0 -2
  1541. package/dist/cdn/VJEG4LOG.js +0 -2
  1542. package/dist/cdn/VJYMTG4U.js +0 -2
  1543. package/dist/cdn/VPTZV5YV.js +0 -2
  1544. package/dist/cdn/VRE7NUZ2.js +0 -2
  1545. package/dist/cdn/WCPWYPN2.js +0 -2
  1546. package/dist/cdn/XBR2PGVO.js +0 -7
  1547. package/dist/cdn/XCILPMDZ.js +0 -2
  1548. package/dist/cdn/XK6Q5TUT.js +0 -2
  1549. package/dist/cdn/XKDPK7SD.js +0 -2
  1550. package/dist/cdn/XTDFTH5X.js +0 -2
  1551. package/dist/cdn/XYFIAJPT.js +0 -2
  1552. package/dist/cdn/Y6I6QW4M.js +0 -2
  1553. package/dist/cdn/YMOLIY64.js +0 -2
  1554. package/dist/cdn/YTK4IGLJ.js +0 -2
  1555. package/dist/cdn/Z6H6J4QH.js +0 -2
  1556. package/dist/cdn/ZDQANIMG.js +0 -2
  1557. package/dist/cdn/ZSHMK5VX.js +0 -2
  1558. package/dist/cdn/ZVFUYLAQ.js +0 -2
  1559. /package/dist/cdn/{YVNP437O.js → WV7QX3ED.js} +0 -0
@@ -1,1657 +1,1754 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import { c as $e } from "../../chunks/runtime.js";
3
- import { ref as ne } from "lit/directives/ref.js";
4
- import { u as Te } from "../../chunks/useT9n.js";
5
- import { LitElement as Re, createEvent as Ie, nothing as ie, safeClassMap as re } from "@arcgis/lumina";
6
- import { css as Ae, html as m } from "lit";
7
- import { render as A } from "lit-html";
8
- import { unsafeHTML as ae } from "lit/directives/unsafe-html.js";
9
- import { useContextConsumer as Ce } from "@arcgis/lumina/context";
10
- import { c as ze } from "../../chunks/deployAppContexts.js";
11
- import { U as Le, T as Pe, H as Z } from "../../chunks/helpers.js";
12
- const qe = Ae`:host{display:block;height:100%}.display-flex-row{display:flex;flex-direction:row}.padding-left-10{padding-left:10px}.chat-container{display:flex;flex-direction:column;gap:0px;max-width:600px;height:75%;background-color:var(--calcite-color-foreground-3);padding:1px}.chat-container_expanded{display:flex;flex-direction:column;gap:0px;max-width:100%;height:95%;background-color:var(--calcite-color-background);border-radius:10px;padding:10px}.chat-panel{--calcite-dialog-header-background-color: var(--calcite-color-brand);--calcite-dialog-header-action-background-color: var(--calcite-color-brand);--calcite-dialog-heading-text-color: var(--calcite-color-background);--calcite-dialog-header-action-text-color: var(--calcite-color-background);--calcite-dialog-header-action-text-color-press: var(--calcite-color-background);--calcite-color-focus: var(--calcite-color-background);--calcite-dialog-min-size-y: 90vh;--calcite-dialog-max-size-y: 90vh}.chat-panel calcite-card,.chat-panel calcite-text-area,.chat-panel calcite-button:not(.icon-color-background),.chat-panel .chat-messages,.chat-panel .chat-input{--calcite-color-focus: var(--calcite-color-brand)}.assistant-followup-chip:focus{outline:2px solid var(--calcite-color-brand)}.chat-panel-heading{font-size:var(--calcite-font-size-0);font-weight:var(--calcite-font-weight-medium);color:var(--calcite-color-background, var(--calcite-color-text-1))}.chat-messages{display:flex;flex-direction:column;gap:20px;padding:4px;height:100%;overflow-y:auto}.user-message{align-self:flex-end;background:var(--calcite-color-brand);border-radius:8px;max-width:90%;--calcite-card-corner-radius: 8px;--calcite-card-background-color: var(--calcite-color-brand);--calcite-card-border-color: var(--calcite-color-brand);color:var(--calcite-color-text-inverse);text-align:left}.system-message{align-self:flex-start;background:var(--calcite-color-foreground-2);border-radius:8px;max-width:90%;--calcite-card-corner-radius: 8px;--calcite-card-background-color: var(--calcite-color-foreground-3);--calcite-card-border-color: var(--calcite-color-foreground-3);color:var(--calcite-color-inverse);text-align:left}.loader-message{align-self:flex-start;background:var(--calcite-color-foreground-3);border-radius:8px;--calcite-card-corner-radius: 8px;--calcite-card-background-color: var(--calcite-color-foreground-3);--calcite-card-border-color: var(--calcite-color-foreground-3)}.message-content{padding:0;font-size:14px}.response-message.message-content>p:first-of-type{margin-top:0}.message-content img{max-width:100%;height:auto;display:block;object-fit:contain}.message-content-pad{padding-bottom:10px;font-size:14px}.message-content-summary{padding-bottom:14px}.message-content-alignment{display:flex;align-items:center;gap:var(--calcite-spacing-md);font-size:var(--calcite-font-size--1);color:var(--calcite-color-text-1)}.padding-top-10{padding-top:10px}.padding-right-8{padding-right:8px}.padding-left-right-5{padding-right:5px;padding-left:5px}.chip-content{padding:5px 5px 5px 0}.chat-input{display:flex;flex-direction:row;flex-grow:1}.table-cell{--calcite-table-cell-background: var(--calcite-color-foreground-3)}.cursor-pointer{cursor:pointer}.notice-border-color{--temp-initial-brand: var(--calcite-color-brand)}.notice-border-color calcite-notice{--calcite-color-brand: #ddd;--calcite-icon-color: var(--temp-initial-brand)}.notice-border-color calcite-notice *{--calcite-color-brand: var(--temp-initial-brand)}.solution-card{padding:5px 0;text-decoration:none;display:block;width:100%;cursor:pointer}.solution-card calcite-card{display:flex;flex-direction:column;max-width:520px;overflow:hidden;--calcite-card-corner-radius: var(--calcite-corner-radius-round) !important;--calcite-card-shadow: var(--calcite-shadow-sm);--calcite-card-background-color: var(--calcite-card-background-color) }.solution-card div[slot=thumbnail]{max-height:100%;width:100%;position:relative;&:after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;transition:all .15s ease-in-out}}.solution-card div[slot=thumbnail] img{max-height:100%;width:100%;object-fit:cover}.solution-card span[slot=description]{padding-top:10px}.solution-card calcite-chip{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);visibility:hidden;pointer-events:none;opacity:0;transition:all .15s ease-in-out;z-index:9999}.solution-card:hover calcite-chip{visibility:visible;opacity:1}.solution-card:hover div[slot=thumbnail]:after{background-color:#00000080}.solution-card:hover h3{text-decoration:underline}.solution-card:focus{outline:2px solid var(--calcite-color-brand)}.references-container{padding-top:10px;display:block}.references-container.collapsed{display:none}.width-100{width:100%}.disclaimer-div{display:flex;gap:var(--calcite-spacing-sm);font-size:var(--calcite-font-size--0);color:var(--calcite-color-text-1)}.display-none{display:none}.chat-messages calcite-fab{position:absolute;bottom:16px;left:50%;transform:translate(-50%);z-index:999}.icon-color-background{--calcite-button-icon-color: var(--calcite-color-background)}.icon-color-background:focus{--calcite-color-focus: var(--calcite-color-background)}@media(max-width:430px){.solution-card .solution-snippet{display:none}}.height-32-flex-auto{height:32px;flex:0 0 auto}.margin-top-0.message-content>p:first-of-type{margin-top:0}a:not(.solution-card){color:var(--calcite-link-text-color, var(--calcite-color-text-link));cursor:pointer;text-decoration:none;line-height:inherit;background-image:linear-gradient(currentColor,currentColor),linear-gradient(var(--calcite-color-brand-underline),var(--calcite-color-brand-underline));background-position-x:0%,100%;background-position-y:min(1.5em,100%);background-repeat:no-repeat,no-repeat;background-size:0% 1px,100% 1px;transition-property:background-size,color;transition-duration:var(--calcite-animation-timing, .15s);transition-timing-function:ease-in-out;outline-color:transparent;position:relative}a:not(.solution-card):hover{background-size:100% 1px,100% 1px}a:not(.solution-card):focus{outline:2px solid var(--calcite-color-brand);outline-offset:2px;outline-color:var(--calcite-color-brand)}a:not(.solution-card):active{color:var(--calcite-color-brand-press)}`;
13
- function W() {
14
- return { async: !1, breaks: !1, extensions: null, gfm: !0, hooks: null, pedantic: !1, renderer: null, silent: !1, tokenizer: null, walkTokens: null };
2
+ import { c as Ne } from "../../chunks/runtime.js";
3
+ import { u as Fe } from "../../chunks/useT9n.js";
4
+ import { LitElement as De, createEvent as ae, nothing as re } from "@arcgis/lumina";
5
+ import { css as Me, html as T } from "lit";
6
+ import { unsafeHTML as Re } from "lit/directives/unsafe-html.js";
7
+ import { useContextConsumer as le } from "@arcgis/lumina/context";
8
+ import { c as Pe, b as Be } from "../../chunks/deployAppContexts.js";
9
+ import { T as M } from "../../chunks/interfaces.js";
10
+ import { m as qe } from "../../chunks/helpers.js";
11
+ import G from "@arcgis/core/config.js";
12
+ import { createRef as Ue, ref as Oe } from "lit-html/directives/ref.js";
13
+ import { Annotation as b, StateGraph as K, START as W, END as A, NodeInterrupt as de } from "@langchain/langgraph/web";
14
+ import { createAgentRuntimeState as X, sendTraceMessage as w, invokeStructuredPrompt as $, getEmbeddings as ze, cosineSimilarity as je, invokeTextPrompt as Ge } from "@arcgis/ai-components/utils/index.js";
15
+ import l, { z as E } from "zod";
16
+ import * as Y from "@esri/arcgis-rest-portal";
17
+ import { applyPatch as Je } from "fast-json-patch";
18
+ import "@langchain/core/messages";
19
+ import { C as pe } from "../../chunks/converter.js";
20
+ import { v as J, b as H, S as He, h as Ve, E as Qe, g as Ke } from "../../chunks/validators.js";
21
+ import { invokeStructuredPrompt as We } from "@arcgis/ai-orchestrator";
22
+ import { t as me, g as q, c as he, r as ge, d as F } from "../../chunks/templates.js";
23
+ import Xe from "@arcgis/core/portal/Portal.js";
24
+ import Ye from "@arcgis/core/portal/PortalItem.js";
25
+ const Ze = Me`:host{display:block;height:100%}.margin-lg{margin:var(--calcite-spacing-lg)}.display-flex-row{display:flex;flex-direction:row}.assistant-split-container{display:flex;width:100%;height:calc(100vh - 78px);overflow:hidden;border-radius:10px}.assistant-panel{display:flex;flex-direction:column;height:100%;border:1px solid var(--calcite-color-surface-3);background-color:var(--calcite-color-surface-2);overflow:hidden}.chat-panel{min-width:320px}.builder-panel{min-width:320px;max-width:100%;border-left:1px solid var(--calcite-color-surface-3)}.panel-actions{display:flex;gap:8px;padding:6px;align-items:center}.builder-header,.builder-footer{padding:10px;background:var(--calcite-color-surface-1);border-bottom:1px solid var(--calcite-color-surface-3)}.builder-content{flex:1;overflow:auto;padding:12px}.builder-content pre{white-space:pre-wrap;word-wrap:break-word;max-height:100%;overflow:auto}.builder-actions{display:flex;gap:6px;align-items:center}.padding-left-10{padding-left:10px}.chat-container{display:flex;flex-direction:column;gap:0px;max-width:600px;height:75%;background-color:var(--calcite-color-surface-4);padding:1px}.chat-container_expanded{display:flex;flex-direction:column;gap:0px;max-width:100%;height:95%;background-color:var(--calcite-color-surface-1);border-radius:10px;padding:10px}.chat-panel{--calcite-color-focus: var(--calcite-color-brand);--calcite-panel-border-color: var(--calcite-color-border-2);--calcite-internal-panel-header-vertical-padding: 0px;--calcite-panel-header-content-space: 0px;border:var(--calcite-border-width-sm) solid var(--calcite-color-border-2);height:100%}.header-content{display:flex;align-items:center;gap:var(--calcite-spacing-sm);height:65px;box-sizing:border-box;padding-inline-start:var(--calcite-space-2xl)}@media(resolution:1.25dppx),(resolution:1.75dppx){.chat-panel{margin-top:.5px}}.header-title{font-size:var(--calcite-font-size-md);font-weight:var(--calcite-font-weight-medium);color:var(--calcite-color-text-1)}.beta-chip{--calcite-chip-corner-radius: var(--calcite-corner-radius-half)}.chat-panel calcite-card,.chat-panel calcite-text-area,.chat-panel calcite-button,.chat-panel .chat-messages,.chat-panel .chat-input{--calcite-color-focus: var(--calcite-color-brand)}.assistant-followup-chip:focus{outline:2px solid var(--calcite-color-brand)}.chat-panel-heading{font-size:var(--calcite-font-size-0);font-weight:var(--calcite-font-weight-medium);color:var(--calcite-color-surface-1, var(--calcite-color-text-1))}.chat-messages{display:flex;flex-direction:column;gap:20px;padding:4px;height:100%;overflow-y:auto}.user-message{align-self:flex-end;background:var(--calcite-color-brand);border-radius:8px;max-width:90%;--calcite-card-corner-radius: 8px;--calcite-card-background-color: var(--calcite-color-brand);--calcite-card-border-color: var(--calcite-color-brand);color:var(--calcite-color-text-inverse);text-align:left}.system-message{align-self:flex-start;background:var(--calcite-color-surface-3);border-radius:8px;max-width:90%;--calcite-card-corner-radius: 8px;--calcite-card-background-color: var(--calcite-color-surface-4);--calcite-card-border-color: var(--calcite-color-surface-4);color:var(--calcite-color-inverse);text-align:left}.loader-message{align-self:flex-start;background:var(--calcite-color-surface-4);border-radius:8px;--calcite-card-corner-radius: 8px;--calcite-card-background-color: var(--calcite-color-surface-4);--calcite-card-border-color: var(--calcite-color-surface-4)}.message-content{padding:0;font-size:14px}.response-message.message-content>p:first-of-type{margin-top:0}.message-content img{max-width:100%;height:auto;display:block;object-fit:contain}.message-content-pad{padding-bottom:10px;font-size:14px}.message-content-summary{padding-bottom:14px}.message-content-alignment{display:flex;align-items:center;gap:var(--calcite-spacing-md);font-size:var(--calcite-font-size--1);color:var(--calcite-color-text-1)}.padding-top-10{padding-top:10px}.padding-right-8{padding-right:8px}.padding-left-right-5{padding-right:5px;padding-left:5px}.chip-content{padding:5px 5px 5px 0}.chat-input{display:flex;flex-direction:row;flex-grow:1}.table-cell{--calcite-table-cell-background: var(--calcite-color-surface-4)}.cursor-pointer{cursor:pointer}.notice-border-color{--temp-initial-brand: var(--calcite-color-brand)}.notice-border-color calcite-notice{--calcite-color-brand: #ddd;--calcite-icon-color: var(--temp-initial-brand)}.notice-border-color calcite-notice *{--calcite-color-brand: var(--temp-initial-brand)}.solution-card{padding:5px 0;text-decoration:none;display:block;width:100%;cursor:pointer}.solution-card calcite-card{display:flex;flex-direction:column;max-width:520px;overflow:hidden;--calcite-card-corner-radius: var(--calcite-corner-radius-round) !important;--calcite-card-shadow: var(--calcite-shadow-sm);--calcite-card-background-color: var(--calcite-card-background-color) }.solution-card div[slot=thumbnail]{max-height:100%;width:100%;position:relative;&:after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;transition:all .15s ease-in-out}}.solution-card div[slot=thumbnail] img{max-height:100%;width:100%;object-fit:cover}.solution-card span[slot=description]{padding-top:10px}.solution-card calcite-chip{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);visibility:hidden;pointer-events:none;opacity:0;transition:all .15s ease-in-out;z-index:9999}.solution-card:hover calcite-chip{visibility:visible;opacity:1}.solution-card:hover div[slot=thumbnail]:after{background-color:#00000080}.solution-card:hover h3{text-decoration:underline}.solution-card:focus{outline:2px solid var(--calcite-color-brand)}.references-container{padding-top:10px;display:block}.references-container.collapsed{display:none}.width-100{width:100%}.disclaimer-div{display:flex;align-items:center;gap:var(--calcite-spacing-sm);font-size:var(--calcite-font-size--0);color:var(--calcite-color-text-1)}.display-none{display:none}.chat-messages calcite-fab{position:absolute;bottom:16px;left:50%;transform:translate(-50%);z-index:999}.icon-color-background{--calcite-button-icon-color: var(--calcite-color-surface-1)}#closeAssistantButton{--calcite-action-text-color: var(--calcite-color-text-1)}.icon-color-background:focus{--calcite-color-focus: var(--calcite-color-surface-1)}@media(max-width:430px){.solution-card .solution-snippet{display:none}}.height-32-flex-auto{height:32px;flex:0 0 auto}.margin-top-0.message-content>p:first-of-type{margin-top:0}a:not(.solution-card){color:var(--calcite-link-text-color, var(--calcite-color-text-link));cursor:pointer;text-decoration:none;line-height:inherit;background-image:linear-gradient(currentColor,currentColor),linear-gradient(var(--calcite-color-brand-underline),var(--calcite-color-brand-underline));background-position-x:0%,100%;background-position-y:min(1.5em,100%);background-repeat:no-repeat,no-repeat;background-size:0% 1px,100% 1px;transition-property:background-size,color;transition-duration:var(--calcite-animation-timing, .15s);transition-timing-function:ease-in-out;outline-color:transparent;position:relative}a:not(.solution-card):hover{background-size:100% 1px,100% 1px}a:not(.solution-card):focus{outline:2px solid var(--calcite-color-brand);outline-offset:2px;outline-color:var(--calcite-color-brand)}a:not(.solution-card):active{color:var(--calcite-color-brand-press)}`;
26
+ async function v(s, e) {
27
+ const t = Object.entries(s).find(
28
+ ([i]) => i.endsWith(`/${e}.md`)
29
+ );
30
+ if (!t)
31
+ throw new Error(
32
+ `Prompt not found: ${e}
33
+ Available prompts:
34
+ ${Object.keys(s).join(`
35
+ `)}`
36
+ );
37
+ return await t[1]();
15
38
  }
16
- var I = W();
17
- function de(i) {
18
- I = i;
39
+ function U(s) {
40
+ return s?.configurable?.context?.translations;
19
41
  }
20
- var T = { exec: () => null };
21
- function d(i, e = "") {
22
- let t = typeof i == "string" ? i : i.source, n = { replace: (s, a) => {
23
- let r = typeof a == "string" ? a : a.source;
24
- return r = r.replace(b.caret, "$1"), t = t.replace(s, r), n;
25
- }, getRegex: () => new RegExp(t, e) };
26
- return n;
42
+ function fe(s) {
43
+ if (typeof window > "u" || s.length <= 1)
44
+ return;
45
+ const e = s.map((i) => i.solution.id), t = s.map((i) => i.solution.title);
46
+ window.dispatchEvent(new CustomEvent("searchTermSet", {
47
+ detail: {
48
+ scope: "all-solutions",
49
+ searchTerm: ""
50
+ }
51
+ })), window.dispatchEvent(new CustomEvent("solutionMatchesFromAssistant", {
52
+ detail: {
53
+ solutionIds: e,
54
+ solutionTitles: t
55
+ },
56
+ bubbles: !0,
57
+ composed: !0
58
+ })), window.dispatchEvent(new CustomEvent("navTabSelected", {
59
+ detail: {
60
+ tabType: "all-solutions"
61
+ }
62
+ }));
27
63
  }
28
- var Be = (() => {
29
- try {
30
- return !!new RegExp("(?<=1)(?<!1)");
31
- } catch {
32
- return !1;
33
- }
34
- })(), b = { codeRemoveIndent: /^(?: {1,4}| {0,3}\t)/gm, outputLinkReplace: /\\([\[\]])/g, indentCodeCompensation: /^(\s+)(?:```)/, beginningSpace: /^\s+/, endingHash: /#$/, startingSpaceChar: /^ /, endingSpaceChar: / $/, nonSpaceChar: /[^ ]/, newLineCharGlobal: /\n/g, tabCharGlobal: /\t/g, multipleSpaceGlobal: /\s+/g, blankLine: /^[ \t]*$/, doubleBlankLine: /\n[ \t]*\n[ \t]*$/, blockquoteStart: /^ {0,3}>/, blockquoteSetextReplace: /\n {0,3}((?:=+|-+) *)(?=\n|$)/g, blockquoteSetextReplace2: /^ {0,3}>[ \t]?/gm, listReplaceNesting: /^ {1,4}(?=( {4})*[^ ])/g, listIsTask: /^\[[ xX]\] +\S/, listReplaceTask: /^\[[ xX]\] +/, listTaskCheckbox: /\[[ xX]\]/, anyLine: /\n.*\n/, hrefBrackets: /^<(.*)>$/, tableDelimiter: /[:|]/, tableAlignChars: /^\||\| *$/g, tableRowBlankLine: /\n[ \t]*$/, tableAlignRight: /^ *-+: *$/, tableAlignCenter: /^ *:-+: *$/, tableAlignLeft: /^ *:-+ *$/, startATag: /^<a /i, endATag: /^<\/a>/i, startPreScriptTag: /^<(pre|code|kbd|script)(\s|>)/i, endPreScriptTag: /^<\/(pre|code|kbd|script)(\s|>)/i, startAngleBracket: /^</, endAngleBracket: />$/, pedanticHrefTitle: /^([^'"]*[^\s])\s+(['"])(.*)\2/, unicodeAlphaNumeric: /[\p{L}\p{N}]/u, escapeTest: /[&<>"']/, escapeReplace: /[&<>"']/g, escapeTestNoEncode: /[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/, escapeReplaceNoEncode: /[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g, caret: /(^|[^\[])\^/g, percentDecode: /%25/g, findPipe: /\|/g, splitPipe: / \|/, slashPipe: /\\\|/g, carriageReturn: /\r\n|\r/g, spaceLine: /^ +$/gm, notSpaceStart: /^\S*/, endingNewline: /\n$/, listItemRegex: (i) => new RegExp(`^( {0,3}${i})((?:[ ][^\\n]*)?(?:\\n|$))`), nextBulletRegex: (i) => new RegExp(`^ {0,${Math.min(3, i - 1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`), hrRegex: (i) => new RegExp(`^ {0,${Math.min(3, i - 1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`), fencesBeginRegex: (i) => new RegExp(`^ {0,${Math.min(3, i - 1)}}(?:\`\`\`|~~~)`), headingBeginRegex: (i) => new RegExp(`^ {0,${Math.min(3, i - 1)}}#`), htmlBeginRegex: (i) => new RegExp(`^ {0,${Math.min(3, i - 1)}}<(?:[a-z].*>|!--)`, "i"), blockquoteBeginRegex: (i) => new RegExp(`^ {0,${Math.min(3, i - 1)}}>`) }, Ee = /^(?:[ \t]*(?:\n|$))+/, Me = /^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/, Ne = /^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/, B = /^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/, Qe = /^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/, X = / {0,3}(?:[*+-]|\d{1,9}[.)])/, ge = /^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/, fe = d(ge).replace(/bull/g, X).replace(/blockCode/g, /(?: {4}| {0,3}\t)/).replace(/fences/g, / {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g, / {0,3}>/).replace(/heading/g, / {0,3}#{1,6}/).replace(/html/g, / {0,3}<[^\n>]+>\n/).replace(/\|table/g, "").getRegex(), De = d(ge).replace(/bull/g, X).replace(/blockCode/g, /(?: {4}| {0,3}\t)/).replace(/fences/g, / {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g, / {0,3}>/).replace(/heading/g, / {0,3}#{1,6}/).replace(/html/g, / {0,3}<[^\n>]+>\n/).replace(/table/g, / {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(), K = /^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/, Ue = /^[^\n]+/, J = /(?!\s*\])(?:\\[\s\S]|[^\[\]\\])+/, Fe = d(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label", J).replace("title", /(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(), Oe = d(/^(bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g, X).getRegex(), F = "address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul", Y = /<!--(?:-?>|[\s\S]*?(?:-->|$))/, Ze = d("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|<![A-Z][\\s\\S]*?(?:>\\n*|$)|<!\\[CDATA\\[[\\s\\S]*?(?:\\]\\]>\\n*|$)|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|</(?!script|pre|style|textarea)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$))", "i").replace("comment", Y).replace("tag", F).replace("attribute", / +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(), ke = d(K).replace("hr", B).replace("heading", " {0,3}#{1,6}(?:\\s|$)").replace("|lheading", "").replace("|table", "").replace("blockquote", " {0,3}>").replace("fences", " {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list", " {0,3}(?:[*+-]|1[.)])[ \\t]").replace("html", "</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag", F).getRegex(), He = d(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph", ke).getRegex(), V = { blockquote: He, code: Me, def: Fe, fences: Ne, heading: Qe, hr: B, html: Ze, lheading: fe, list: Oe, newline: Ee, paragraph: ke, table: T, text: Ue }, oe = d("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr", B).replace("heading", " {0,3}#{1,6}(?:\\s|$)").replace("blockquote", " {0,3}>").replace("code", "(?: {4}| {0,3} )[^\\n]").replace("fences", " {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list", " {0,3}(?:[*+-]|1[.)])[ \\t]").replace("html", "</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag", F).getRegex(), je = { ...V, lheading: De, table: oe, paragraph: d(K).replace("hr", B).replace("heading", " {0,3}#{1,6}(?:\\s|$)").replace("|lheading", "").replace("table", oe).replace("blockquote", " {0,3}>").replace("fences", " {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list", " {0,3}(?:[*+-]|1[.)])[ \\t]").replace("html", "</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag", F).getRegex() }, Ge = { ...V, html: d(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:"[^"]*"|'[^']*'|\\s[^'"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment", Y).replace(/tag/g, "(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(), def: /^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/, heading: /^(#{1,6})(.*)(?:\n+|$)/, fences: T, lheading: /^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/, paragraph: d(K).replace("hr", B).replace("heading", ` *#{1,6} *[^
35
- ]`).replace("lheading", fe).replace("|table", "").replace("blockquote", " {0,3}>").replace("|fences", "").replace("|list", "").replace("|html", "").replace("|tag", "").getRegex() }, We = /^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/, Xe = /^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/, me = /^( {2,}|\\)\n(?!\s*$)/, Ke = /^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/, O = /[\p{P}\p{S}]/u, ee = /[\s\p{P}\p{S}]/u, xe = /[^\s\p{P}\p{S}]/u, Je = d(/^((?![*_])punctSpace)/, "u").replace(/punctSpace/g, ee).getRegex(), be = /(?!~)[\p{P}\p{S}]/u, Ye = /(?!~)[\s\p{P}\p{S}]/u, Ve = /(?:[^\s\p{P}\p{S}]|~)/u, we = /(?![*_])[\p{P}\p{S}]/u, et = /(?![*_])[\s\p{P}\p{S}]/u, tt = /(?:[^\s\p{P}\p{S}]|[*_])/u, st = d(/link|precode-code|html/, "g").replace("link", /\[(?:[^\[\]`]|(?<a>`+)[^`]+\k<a>(?!`))*?\]\((?:\\[\s\S]|[^\\\(\)]|\((?:\\[\s\S]|[^\\\(\)])*\))*\)/).replace("precode-", Be ? "(?<!`)()" : "(^^|[^`])").replace("code", /(?<b>`+)[^`]+\k<b>(?!`)/).replace("html", /<(?! )[^<>]*?>/).getRegex(), _e = /^(?:\*+(?:((?!\*)punct)|[^\s*]))|^_+(?:((?!_)punct)|([^\s_]))/, nt = d(_e, "u").replace(/punct/g, O).getRegex(), it = d(_e, "u").replace(/punct/g, be).getRegex(), ve = "^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)", rt = d(ve, "gu").replace(/notPunctSpace/g, xe).replace(/punctSpace/g, ee).replace(/punct/g, O).getRegex(), at = d(ve, "gu").replace(/notPunctSpace/g, Ve).replace(/punctSpace/g, Ye).replace(/punct/g, be).getRegex(), ot = d("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)", "gu").replace(/notPunctSpace/g, xe).replace(/punctSpace/g, ee).replace(/punct/g, O).getRegex(), lt = d(/^~~?(?:((?!~)punct)|[^\s~])/, "u").replace(/punct/g, we).getRegex(), ct = "^[^~]+(?=[^~])|(?!~)punct(~~?)(?=[\\s]|$)|notPunctSpace(~~?)(?!~)(?=punctSpace|$)|(?!~)punctSpace(~~?)(?=notPunctSpace)|[\\s](~~?)(?!~)(?=punct)|(?!~)punct(~~?)(?!~)(?=punct)|notPunctSpace(~~?)(?=notPunctSpace)", ht = d(ct, "gu").replace(/notPunctSpace/g, tt).replace(/punctSpace/g, et).replace(/punct/g, we).getRegex(), pt = d(/\\(punct)/, "gu").replace(/punct/g, O).getRegex(), ut = d(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace("scheme", /[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace("email", /[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(), dt = d(Y).replace("(?:-->|$)", "-->").getRegex(), gt = d("^comment|^</[a-zA-Z][\\w:-]*\\s*>|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^<![a-zA-Z]+\\s[\\s\\S]*?>|^<!\\[CDATA\\[[\\s\\S]*?\\]\\]>").replace("comment", dt).replace("attribute", /\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(), Q = /(?:\[(?:\\[\s\S]|[^\[\]\\])*\]|\\[\s\S]|`+[^`]*?`+(?!`)|[^\[\]\\`])*?/, ft = d(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]+(?:\n[ \t]*)?|\n[ \t]*)(title))?\s*\)/).replace("label", Q).replace("href", /<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]*/).replace("title", /"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(), ye = d(/^!?\[(label)\]\[(ref)\]/).replace("label", Q).replace("ref", J).getRegex(), Se = d(/^!?\[(ref)\](?:\[\])?/).replace("ref", J).getRegex(), kt = d("reflink|nolink(?!\\()", "g").replace("reflink", ye).replace("nolink", Se).getRegex(), le = /[hH][tT][tT][pP][sS]?|[fF][tT][pP]/, te = { _backpedal: T, anyPunctuation: pt, autolink: ut, blockSkip: st, br: me, code: Xe, del: T, delLDelim: T, delRDelim: T, emStrongLDelim: nt, emStrongRDelimAst: rt, emStrongRDelimUnd: ot, escape: We, link: ft, nolink: Se, punctuation: Je, reflink: ye, reflinkSearch: kt, tag: gt, text: Ke, url: T }, mt = { ...te, link: d(/^!?\[(label)\]\((.*?)\)/).replace("label", Q).getRegex(), reflink: d(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label", Q).getRegex() }, H = { ...te, emStrongRDelimAst: at, emStrongLDelim: it, delLDelim: lt, delRDelim: ht, url: d(/^((?:protocol):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/).replace("protocol", le).replace("email", /[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(), _backpedal: /(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/, del: /^(~~?)(?=[^\s~])((?:\\[\s\S]|[^\\])*?(?:\\[\s\S]|[^\s~\\]))\1(?=[^~]|$)/, text: d(/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\<!\[`*~_]|\b_|protocol:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)))/).replace("protocol", le).getRegex() }, xt = { ...H, br: d(me).replace("{2,}", "*").getRegex(), text: d(H.text).replace("\\b_", "\\b_| {2,}\\n").replace(/\{2,\}/g, "*").getRegex() }, N = { normal: V, gfm: je, pedantic: Ge }, L = { normal: te, gfm: H, breaks: xt, pedantic: mt }, bt = { "&": "&amp;", "<": "&lt;", ">": "&gt;", '"': "&quot;", "'": "&#39;" }, ce = (i) => bt[i];
36
- function S(i, e) {
37
- if (e) {
38
- if (b.escapeTest.test(i)) return i.replace(b.escapeReplace, ce);
39
- } else if (b.escapeTestNoEncode.test(i)) return i.replace(b.escapeReplaceNoEncode, ce);
40
- return i;
64
+ function ye(s) {
65
+ if (typeof window > "u" || !s)
66
+ return;
67
+ const e = new CustomEvent("solutionIDFromAssistant", {
68
+ detail: s,
69
+ bubbles: !0,
70
+ composed: !0
71
+ });
72
+ window.dispatchEvent(e);
41
73
  }
42
- function he(i) {
43
- try {
44
- i = encodeURI(i).replace(b.percentDecode, "%");
45
- } catch {
46
- return null;
47
- }
48
- return i;
74
+ const et = E.object({
75
+ needsContext: E.boolean().describe("True when the explorer query requires added context from prior turns."),
76
+ rewrittenQuery: E.string().min(1).describe("The final query to send to doc AI. Keep original query if no context is needed.")
77
+ }), ce = (s) => s?.signal?.aborted ?? !1, be = /* @__PURE__ */ Object.assign({
78
+ "./prompts/solutions_explorer_description.md": () => import("../../chunks/solutions_explorer_description.js").then((s) => s.default),
79
+ "./prompts/transformQuery.md": () => import("../../chunks/transformQuery.js").then((s) => s.default)
80
+ });
81
+ function tt(s) {
82
+ return s.replace(/<sup>\[\[(\d+)\]\]\(([^)]+)\)<\/sup>/g, '<sup><a href="$2">&#91;$1&#93;</a></sup>');
49
83
  }
50
- function pe(i, e) {
51
- let t = i.replace(b.findPipe, (a, r, l) => {
52
- let o = !1, h = r;
53
- for (; --h >= 0 && l[h] === "\\"; ) o = !o;
54
- return o ? "|" : " |";
55
- }), n = t.split(b.splitPipe), s = 0;
56
- if (n[0].trim() || n.shift(), n.length > 0 && !n.at(-1)?.trim() && n.pop(), e) if (n.length > e) n.splice(e);
57
- else for (; n.length < e; ) n.push("");
58
- for (; s < n.length; s++) n[s] = n[s].trim().replace(b.slashPipe, "|");
59
- return n;
84
+ function st(s) {
85
+ return s.replace(/!\[([^\]]*)\]\(([^)]+)\)/g, (e, t, i) => `<img src="${i}" alt="${t}" style="width: 100%;">`);
60
86
  }
61
- function P(i, e, t) {
62
- let n = i.length;
63
- if (n === 0) return "";
64
- let s = 0;
65
- for (; s < n && i.charAt(n - s - 1) === e; )
66
- s++;
67
- return i.slice(0, n - s);
68
- }
69
- function wt(i, e) {
70
- if (i.indexOf(e[1]) === -1) return -1;
71
- let t = 0;
72
- for (let n = 0; n < i.length; n++) if (i[n] === "\\") n++;
73
- else if (i[n] === e[0]) t++;
74
- else if (i[n] === e[1] && (t--, t < 0)) return n;
75
- return t > 0 ? -2 : -1;
87
+ function it(s, e) {
88
+ const t = [];
89
+ return (e?.configurable?.context?.configContext.allCards ?? []).forEach((n) => {
90
+ const a = n.title;
91
+ if (!a)
92
+ return;
93
+ const o = new RegExp(`(?<![\\p{L}\\p{N}])${a}(?![\\p{L}\\p{N}])`, "giu");
94
+ let r = !1;
95
+ s = s.replace(o, (c, d, h) => {
96
+ const y = h.slice(0, d);
97
+ return /<img[^>]*alt\s*=\s*["'][^"']*$/i.test(y) ? c : (r = !0, `<a href="" target="solutionId:${n.deployCommonId}">${a}</a>`);
98
+ }), r && t.push({
99
+ solution: {
100
+ title: n.title,
101
+ id: n.deployCommonId,
102
+ snippet: n.snippet,
103
+ description: n.description
104
+ },
105
+ score: 100
106
+ });
107
+ }), { source: s, allMatches: t };
76
108
  }
77
- function _t(i, e = 0) {
78
- let t = e, n = "";
79
- for (let s of i) if (s === " ") {
80
- let a = 4 - t % 4;
81
- n += " ".repeat(a), t += a;
82
- } else n += s, t++;
83
- return n;
109
+ function nt(s) {
110
+ return s && s.helperServices.aiAssistantServices ? `${s.helperServices.aiAssistantServices.url}/skills/doc_ai_assistant/chat` : null;
84
111
  }
85
- function ue(i, e, t, n, s) {
86
- let a = e.href, r = e.title || null, l = i[1].replace(s.other.outputLinkReplace, "$1");
87
- n.state.inLink = !0;
88
- let o = { type: i[0].charAt(0) === "!" ? "image" : "link", raw: t, href: a, title: r, text: l, tokens: n.inlineTokens(l) };
89
- return n.state.inLink = !1, o;
112
+ function xe(s) {
113
+ return s && s.helperServices.aiAssistantServices ? `${s.helperServices.aiAssistantServices.url}/skills/doc_ai_assistant/api/pre-chat` : null;
90
114
  }
91
- function vt(i, e, t) {
92
- let n = i.match(t.other.indentCodeCompensation);
93
- if (n === null) return e;
94
- let s = n[1];
95
- return e.split(`
96
- `).map((a) => {
97
- let r = a.match(t.other.beginningSpace);
98
- if (r === null) return a;
99
- let [l] = r;
100
- return l.length >= s.length ? a.slice(s.length) : a;
101
- }).join(`
102
- `);
115
+ async function Q(s, e, t) {
116
+ const i = await fetch(e, {
117
+ method: "POST",
118
+ headers: {
119
+ "Content-Type": "application/json",
120
+ token: t
121
+ },
122
+ body: JSON.stringify(s)
123
+ });
124
+ if (!i.ok)
125
+ throw new Error(`HTTP ${i.status} calling ${e}`);
126
+ return i.json();
103
127
  }
104
- var D = class {
105
- options;
106
- rules;
107
- lexer;
108
- constructor(i) {
109
- this.options = i || I;
110
- }
111
- space(i) {
112
- let e = this.rules.block.newline.exec(i);
113
- if (e && e[0].length > 0) return { type: "space", raw: e[0] };
114
- }
115
- code(i) {
116
- let e = this.rules.block.code.exec(i);
117
- if (e) {
118
- let t = e[0].replace(this.rules.other.codeRemoveIndent, "");
119
- return { type: "code", raw: e[0], codeBlockStyle: "indented", text: this.options.pedantic ? t : P(t, `
120
- `) };
121
- }
122
- }
123
- fences(i) {
124
- let e = this.rules.block.fences.exec(i);
125
- if (e) {
126
- let t = e[0], n = vt(t, e[3] || "", this.rules);
127
- return { type: "code", raw: t, lang: e[2] ? e[2].trim().replace(this.rules.inline.anyPunctuation, "$1") : e[2], text: n };
128
- }
129
- }
130
- heading(i) {
131
- let e = this.rules.block.heading.exec(i);
132
- if (e) {
133
- let t = e[2].trim();
134
- if (this.rules.other.endingHash.test(t)) {
135
- let n = P(t, "#");
136
- (this.options.pedantic || !n || this.rules.other.endingSpaceChar.test(n)) && (t = n.trim());
137
- }
138
- return { type: "heading", raw: e[0], depth: e[1].length, text: t, tokens: this.lexer.inline(t) };
139
- }
128
+ const ot = (s) => new Promise((e) => setTimeout(e, s));
129
+ async function at(s, e) {
130
+ const t = s.agentExecutionContext.userRequest, i = e?.configurable?.context?.lastTurnAgent, n = s.agentExecutionContext.messages ?? [];
131
+ if (!i || n.length <= 1 || i === "explorer")
132
+ return t;
133
+ try {
134
+ const a = await v(be, "transformQuery"), o = await $({
135
+ promptText: a,
136
+ modelTier: "advanced",
137
+ temperature: 0,
138
+ schema: et,
139
+ messages: n.slice(-11),
140
+ inputVariables: { query: t, lastTurnAgent: i }
141
+ });
142
+ if (o.needsContext && o.rewrittenQuery.trim())
143
+ return console.debug(`Rephrased query from "${t}" to "${o.rewrittenQuery.trim()}"`), o.rewrittenQuery.trim();
144
+ } catch {
140
145
  }
141
- hr(i) {
142
- let e = this.rules.block.hr.exec(i);
143
- if (e) return { type: "hr", raw: P(e[0], `
144
- `) };
145
- }
146
- blockquote(i) {
147
- let e = this.rules.block.blockquote.exec(i);
148
- if (e) {
149
- let t = P(e[0], `
150
- `).split(`
151
- `), n = "", s = "", a = [];
152
- for (; t.length > 0; ) {
153
- let r = !1, l = [], o;
154
- for (o = 0; o < t.length; o++) if (this.rules.other.blockquoteStart.test(t[o])) l.push(t[o]), r = !0;
155
- else if (!r) l.push(t[o]);
156
- else break;
157
- t = t.slice(o);
158
- let h = l.join(`
159
- `), c = h.replace(this.rules.other.blockquoteSetextReplace, `
160
- $1`).replace(this.rules.other.blockquoteSetextReplace2, "");
161
- n = n ? `${n}
162
- ${h}` : h, s = s ? `${s}
163
- ${c}` : c;
164
- let p = this.lexer.state.top;
165
- if (this.lexer.state.top = !0, this.lexer.blockTokens(c, a, !0), this.lexer.state.top = p, t.length === 0) break;
166
- let u = a.at(-1);
167
- if (u?.type === "code") break;
168
- if (u?.type === "blockquote") {
169
- let g = u, k = g.raw + `
170
- ` + t.join(`
171
- `), w = this.blockquote(k);
172
- a[a.length - 1] = w, n = n.substring(0, n.length - g.raw.length) + w.raw, s = s.substring(0, s.length - g.text.length) + w.text;
173
- break;
174
- } else if (u?.type === "list") {
175
- let g = u, k = g.raw + `
176
- ` + t.join(`
177
- `), w = this.list(k);
178
- a[a.length - 1] = w, n = n.substring(0, n.length - u.raw.length) + w.raw, s = s.substring(0, s.length - g.raw.length) + w.raw, t = k.substring(a.at(-1).raw.length).split(`
179
- `);
180
- continue;
181
- }
146
+ return t;
147
+ }
148
+ const rt = b.Root({
149
+ // Provides agentExecutionContext, outputMessage, summary, and status
150
+ // channels with the orchestrator's standard reducers/defaults so the
151
+ // sub-agent reports back through the same shape the orchestrator
152
+ // persists into priorSteps.
153
+ ...X(),
154
+ solutionResponse: b({
155
+ reducer: (s, e) => e ?? null,
156
+ default: () => null
157
+ }),
158
+ documentSkillUrl: b({
159
+ reducer: (s, e) => e ?? null,
160
+ default: () => null
161
+ }),
162
+ // Persisted across turns via the graph checkpointer so follow-up questions
163
+ // continue the same service conversation. Null on the very first interaction
164
+ // or after messages are cleared.
165
+ conversationId: b({
166
+ reducer: (s, e) => e ?? s,
167
+ default: () => null
168
+ })
169
+ }), lt = () => new K(rt).addNode("initializeAgent", ut).addNode("askSolutionsQuestions", ct).addEdge(W, "initializeAgent").addEdge("initializeAgent", "askSolutionsQuestions").addEdge("askSolutionsQuestions", A), ve = async (s, e, t, i) => {
170
+ if (!s) return;
171
+ const n = xe(s);
172
+ if (!n) return;
173
+ const o = { context: {
174
+ kind: "DocAIAssistantRequest",
175
+ filters: {
176
+ products: "ArcGIS Solutions",
177
+ persona: { persona: "apps-solutions" },
178
+ pipeline: {
179
+ translation: { allow: !0, language: t, use_llm: !1 }
182
180
  }
183
- return { type: "blockquote", raw: n, tokens: a, text: s };
184
181
  }
185
- }
186
- list(i) {
187
- let e = this.rules.block.list.exec(i);
188
- if (e) {
189
- let t = e[1].trim(), n = t.length > 1, s = { type: "list", raw: "", ordered: n, start: n ? +t.slice(0, -1) : "", loose: !1, items: [] };
190
- t = n ? `\\d{1,9}\\${t.slice(-1)}` : `\\${t}`, this.options.pedantic && (t = n ? t : "[*+-]");
191
- let a = this.rules.other.listItemRegex(t), r = !1;
192
- for (; i; ) {
193
- let o = !1, h = "", c = "";
194
- if (!(e = a.exec(i)) || this.rules.block.hr.test(i)) break;
195
- h = e[0], i = i.substring(h.length);
196
- let p = _t(e[2].split(`
197
- `, 1)[0], e[1].length), u = i.split(`
198
- `, 1)[0], g = !p.trim(), k = 0;
199
- if (this.options.pedantic ? (k = 2, c = p.trimStart()) : g ? k = e[1].length + 1 : (k = p.search(this.rules.other.nonSpaceChar), k = k > 4 ? 1 : k, c = p.slice(k), k += e[1].length), g && this.rules.other.blankLine.test(u) && (h += u + `
200
- `, i = i.substring(u.length + 1), o = !0), !o) {
201
- let w = this.rules.other.nextBulletRegex(k), E = this.rules.other.hrRegex(k), M = this.rules.other.fencesBeginRegex(k), x = this.rules.other.headingBeginRegex(k), _ = this.rules.other.htmlBeginRegex(k), C = this.rules.other.blockquoteBeginRegex(k);
202
- for (; i; ) {
203
- let z = i.split(`
204
- `, 1)[0], $;
205
- if (u = z, this.options.pedantic ? (u = u.replace(this.rules.other.listReplaceNesting, " "), $ = u) : $ = u.replace(this.rules.other.tabCharGlobal, " "), M.test(u) || x.test(u) || _.test(u) || C.test(u) || w.test(u) || E.test(u)) break;
206
- if ($.search(this.rules.other.nonSpaceChar) >= k || !u.trim()) c += `
207
- ` + $.slice(k);
208
- else {
209
- if (g || p.replace(this.rules.other.tabCharGlobal, " ").search(this.rules.other.nonSpaceChar) >= 4 || M.test(p) || x.test(p) || E.test(p)) break;
210
- c += `
211
- ` + u;
212
- }
213
- g = !u.trim(), h += z + `
214
- `, i = i.substring(z.length + 1), p = $.slice(k);
215
- }
216
- }
217
- s.loose || (r ? s.loose = !0 : this.rules.other.doubleBlankLine.test(h) && (r = !0)), s.items.push({ type: "list_item", raw: h, task: !!this.options.gfm && this.rules.other.listIsTask.test(c), loose: !1, text: c, tokens: [] }), s.raw += h;
218
- }
219
- let l = s.items.at(-1);
220
- if (l) l.raw = l.raw.trimEnd(), l.text = l.text.trimEnd();
221
- else return;
222
- s.raw = s.raw.trimEnd();
223
- for (let o of s.items) {
224
- if (this.lexer.state.top = !1, o.tokens = this.lexer.blockTokens(o.text, []), o.task) {
225
- if (o.text = o.text.replace(this.rules.other.listReplaceTask, ""), o.tokens[0]?.type === "text" || o.tokens[0]?.type === "paragraph") {
226
- o.tokens[0].raw = o.tokens[0].raw.replace(this.rules.other.listReplaceTask, ""), o.tokens[0].text = o.tokens[0].text.replace(this.rules.other.listReplaceTask, "");
227
- for (let c = this.lexer.inlineQueue.length - 1; c >= 0; c--) if (this.rules.other.listIsTask.test(this.lexer.inlineQueue[c].src)) {
228
- this.lexer.inlineQueue[c].src = this.lexer.inlineQueue[c].src.replace(this.rules.other.listReplaceTask, "");
229
- break;
230
- }
231
- }
232
- let h = this.rules.other.listTaskCheckbox.exec(o.raw);
233
- if (h) {
234
- let c = { type: "checkbox", raw: h[0] + " ", checked: h[0] !== "[ ]" };
235
- o.checked = c.checked, s.loose ? o.tokens[0] && ["paragraph", "text"].includes(o.tokens[0].type) && "tokens" in o.tokens[0] && o.tokens[0].tokens ? (o.tokens[0].raw = c.raw + o.tokens[0].raw, o.tokens[0].text = c.raw + o.tokens[0].text, o.tokens[0].tokens.unshift(c)) : o.tokens.unshift({ type: "paragraph", raw: c.raw, text: c.raw, tokens: [c] }) : o.tokens.unshift(c);
182
+ } };
183
+ i && (o.conversationId = i), Q(o, n, e ?? "");
184
+ }, ct = async (s, e) => {
185
+ if (ce(e))
186
+ return {};
187
+ const t = U(e), i = s.documentSkillUrl;
188
+ let n = [];
189
+ const a = await at(s, e);
190
+ await w(
191
+ { text: t.agentProgress.explorerAgentSearching },
192
+ e
193
+ );
194
+ let o = await Q(
195
+ {
196
+ message: a,
197
+ conversationId: e?.configurable?.context?.convoId ?? void 0,
198
+ context: {
199
+ kind: "DocAIAssistantRequest",
200
+ filters: {
201
+ products: "ArcGIS Solutions",
202
+ persona: { persona: "apps-solutions" },
203
+ pipeline: {
204
+ translation: { allow: !0, language: e?.configurable?.context?.configContext.locale ?? "en", use_llm: !1 }
236
205
  }
237
206
  }
238
- if (!s.loose) {
239
- let h = o.tokens.filter((p) => p.type === "space"), c = h.length > 0 && h.some((p) => this.rules.other.anyLine.test(p.raw));
240
- s.loose = c;
241
- }
242
- }
243
- if (s.loose) for (let o of s.items) {
244
- o.loose = !0;
245
- for (let h of o.tokens) h.type === "text" && (h.type = "paragraph");
246
207
  }
247
- return s;
208
+ },
209
+ i,
210
+ e?.configurable?.context?.token ?? ""
211
+ );
212
+ o.conversationId && e?.configurable?.context?.setConversationId && e.configurable.context.setConversationId(o.conversationId);
213
+ let r = {
214
+ message: o.message,
215
+ conversationId: o.conversationId,
216
+ hasMore: o.hasMore,
217
+ ackSequenceNumber: o.sequenceNumber,
218
+ inquiryId: o.inquiryId
219
+ }, c = "";
220
+ const d = async (y) => {
221
+ const u = y.context?.results?.[0]?.reply ?? "";
222
+ if (u !== "") {
223
+ const S = tt(u), N = st(S), C = it(N, e);
224
+ c = C.source, n = [
225
+ ...n,
226
+ ...C.allMatches.filter(
227
+ (z) => !n.some((I) => I.solution.id === z.solution.id)
228
+ )
229
+ ];
230
+ }
231
+ const g = y.context?.results?.[0]?.status?.currentStatusStep;
232
+ if (g) {
233
+ let S = "";
234
+ g === 1 ? S = t.agentProgress.explorerAgentReading : g === 2 ? S = t.agentProgress.explorerAgentReviewing : g === 3 && (S = t.agentProgress.explorerAgentPreparing), await w({ text: S }, e);
235
+ }
236
+ };
237
+ for (await d(o); r.hasMore; ) {
238
+ if (ce(e))
239
+ return {};
240
+ await ot(500), o = await Q(
241
+ {
242
+ conversationId: r.conversationId,
243
+ ackSequenceNumber: r.ackSequenceNumber,
244
+ inquiryId: r.inquiryId
245
+ },
246
+ i,
247
+ e?.configurable?.context?.token ?? ""
248
+ ), r = {
249
+ message: o.message,
250
+ conversationId: o.conversationId,
251
+ hasMore: o.hasMore,
252
+ ackSequenceNumber: o.sequenceNumber,
253
+ inquiryId: o.inquiryId
254
+ }, await d(o);
255
+ }
256
+ return xe(e?.configurable?.context.portal) && ve(
257
+ e?.configurable?.context.portal,
258
+ e?.configurable?.context.token ?? "",
259
+ e?.configurable?.context.configContext.locale ?? "en",
260
+ r.conversationId
261
+ ), n.length && (n.length === 1 ? ye(n[0].solution.id) : fe(n)), {
262
+ outputMessage: c,
263
+ summary: c,
264
+ status: "success",
265
+ solutionResponse: r,
266
+ conversationId: r.conversationId
267
+ };
268
+ }, ut = async (s, e) => {
269
+ let t = null;
270
+ return s.documentSkillUrl === null && e?.configurable?.context?.portal && (t = nt(e.configurable.context.portal)), {
271
+ documentSkillUrl: t
272
+ };
273
+ };
274
+ await v(be, "solutions_explorer_description");
275
+ const _e = (s) => {
276
+ if (s && Array.isArray(s.id) && s.id.length > 0)
277
+ return s.id[s.id.length - 1].replace("Message", "").toLowerCase();
278
+ if (s && typeof s._getType == "function")
279
+ try {
280
+ return s._getType();
281
+ } catch {
282
+ return "human";
248
283
  }
284
+ return "human";
285
+ }, dt = (s) => {
286
+ const e = _e(s);
287
+ if (s && s.kwargs)
288
+ return {
289
+ role: e,
290
+ ...s.kwargs
291
+ // Includes content, id, additional_kwargs, response_metadata, etc.
292
+ };
293
+ if (s && typeof s == "object") {
294
+ const t = {
295
+ role: e,
296
+ content: typeof s.content == "string" ? s.content : String(s.content || "")
297
+ };
298
+ return s.id && (t.id = s.id), s.name && (t.name = s.name), s.additional_kwargs && (t.additional_kwargs = s.additional_kwargs), s.response_metadata && (t.response_metadata = s.response_metadata), t;
249
299
  }
250
- html(i) {
251
- let e = this.rules.block.html.exec(i);
252
- if (e) return { type: "html", block: !0, raw: e[0], pre: e[1] === "pre" || e[1] === "script" || e[1] === "style", text: e[0] };
300
+ return { role: "human", content: String(s) };
301
+ }, pt = (s) => _e(s) === "human", mt = (s, e = 3) => s.filter((t) => pt(t)).slice(-e).map(dt), ht = (s, e = " ") => mt(s).map((n) => n.content).join(e).trim(), gt = { understandingRequest: "Understanding your request...", selectTemplatePrompt: "This use case could be supported in a few different ways. Choose the option that best matches what you want to accomplish.", searchingExistingSolutions: "Searching for existing solutions...", existingSolutionMatch: "I found one or more existing solutions that match your use case. These are ready-to-use solutions that may already meet your needs and can be deployed now. Do you want to continue building your own solution?", continueBuildingYes: "Yes, I want to build a new solution", continueBuildingNo: "No, I’ll review existing solutions", continueBuildingDeclined: "Sounds good. We can focus on existing solutions. Let me know if I can help answer any questions or provide more details.", creatingDesign: "Generating solution design...", updatingDesign: "Updating solution design...", applyChangeFailed: "I wasn't able to apply that change. The design was not modified. Please try rephrasing your request.", createDesignFailed: "I wasn't able to create a solution design from that request. Please try rephrasing and try again.", discardMessage: "Are you sure you want to discard your solution?", discardForNewSolution: "I can help you build a new solution, but I will need to discard your current solution design. Do you want to continue?" }, ft = {
302
+ builderMessages: gt
303
+ };
304
+ class x {
305
+ //--------------------------------------------------------------------------
306
+ //
307
+ // Public API
308
+ //
309
+ //--------------------------------------------------------------------------
310
+ constructor(e, t, i = !0) {
311
+ this.isValid = !0, this.issues = [], this.fieldNameRegistry = null, this.response = e, this.template = t, this.newDesign = i, this.validate();
253
312
  }
254
- def(i) {
255
- let e = this.rules.block.def.exec(i);
256
- if (e) {
257
- let t = e[1].toLowerCase().replace(this.rules.other.multipleSpaceGlobal, " "), n = e[2] ? e[2].replace(this.rules.other.hrefBrackets, "$1").replace(this.rules.inline.anyPunctuation, "$1") : "", s = e[3] ? e[3].substring(1, e[3].length - 1).replace(this.rules.inline.anyPunctuation, "$1") : e[3];
258
- return { type: "def", tag: t, raw: e[0], href: n, title: s };
259
- }
313
+ static {
314
+ this.INVALID_NAME_CHARS = /[><~`$^+=|]/gu;
260
315
  }
261
- table(i) {
262
- let e = this.rules.block.table.exec(i);
263
- if (!e || !this.rules.other.tableDelimiter.test(e[2])) return;
264
- let t = pe(e[1]), n = e[2].replace(this.rules.other.tableAlignChars, "").split("|"), s = e[3]?.trim() ? e[3].replace(this.rules.other.tableRowBlankLine, "").split(`
265
- `) : [], a = { type: "table", raw: e[0], header: [], align: [], rows: [] };
266
- if (t.length === n.length) {
267
- for (let r of n) this.rules.other.tableAlignRight.test(r) ? a.align.push("right") : this.rules.other.tableAlignCenter.test(r) ? a.align.push("center") : this.rules.other.tableAlignLeft.test(r) ? a.align.push("left") : a.align.push(null);
268
- for (let r = 0; r < t.length; r++) a.header.push({ text: t[r], tokens: this.lexer.inline(t[r]), header: !0, align: a.align[r] });
269
- for (let r of s) a.rows.push(pe(r, a.header.length).map((l, o) => ({ text: l, tokens: this.lexer.inline(l), header: !1, align: a.align[o] })));
270
- return a;
271
- }
316
+ static {
317
+ this.NAME_MAX_LENGTH = 250;
272
318
  }
273
- lheading(i) {
274
- let e = this.rules.block.lheading.exec(i);
275
- if (e) return { type: "heading", raw: e[0], depth: e[2].charAt(0) === "=" ? 1 : 2, text: e[1], tokens: this.lexer.inline(e[1]) };
319
+ static {
320
+ this.DESCRIPTION_MAX_LENGTH = 2048;
276
321
  }
277
- paragraph(i) {
278
- let e = this.rules.block.paragraph.exec(i);
279
- if (e) {
280
- let t = e[1].charAt(e[1].length - 1) === `
281
- ` ? e[1].slice(0, -1) : e[1];
282
- return { type: "paragraph", raw: e[0], text: t, tokens: this.lexer.inline(t) };
283
- }
322
+ static {
323
+ this.FIELD_NAME_MAX_LENGTH = 31;
284
324
  }
285
- text(i) {
286
- let e = this.rules.block.text.exec(i);
287
- if (e) return { type: "text", raw: e[0], text: e[0], tokens: this.lexer.inline(e[0]) };
288
- }
289
- escape(i) {
290
- let e = this.rules.inline.escape.exec(i);
291
- if (e) return { type: "escape", raw: e[0], text: e[1] };
292
- }
293
- tag(i) {
294
- let e = this.rules.inline.tag.exec(i);
295
- if (e) return !this.lexer.state.inLink && this.rules.other.startATag.test(e[0]) ? this.lexer.state.inLink = !0 : this.lexer.state.inLink && this.rules.other.endATag.test(e[0]) && (this.lexer.state.inLink = !1), !this.lexer.state.inRawBlock && this.rules.other.startPreScriptTag.test(e[0]) ? this.lexer.state.inRawBlock = !0 : this.lexer.state.inRawBlock && this.rules.other.endPreScriptTag.test(e[0]) && (this.lexer.state.inRawBlock = !1), { type: "html", raw: e[0], inLink: this.lexer.state.inLink, inRawBlock: this.lexer.state.inRawBlock, block: !1, text: e[0] };
296
- }
297
- link(i) {
298
- let e = this.rules.inline.link.exec(i);
299
- if (e) {
300
- let t = e[2].trim();
301
- if (!this.options.pedantic && this.rules.other.startAngleBracket.test(t)) {
302
- if (!this.rules.other.endAngleBracket.test(t)) return;
303
- let a = P(t.slice(0, -1), "\\");
304
- if ((t.length - a.length) % 2 === 0) return;
305
- } else {
306
- let a = wt(e[2], "()");
307
- if (a === -2) return;
308
- if (a > -1) {
309
- let r = (e[0].indexOf("!") === 0 ? 5 : 4) + e[1].length + a;
310
- e[2] = e[2].substring(0, a), e[0] = e[0].substring(0, r).trim(), e[3] = "";
311
- }
312
- }
313
- let n = e[2], s = "";
314
- if (this.options.pedantic) {
315
- let a = this.rules.other.pedanticHrefTitle.exec(n);
316
- a && (n = a[1], s = a[3]);
317
- } else s = e[3] ? e[3].slice(1, -1) : "";
318
- return n = n.trim(), this.rules.other.startAngleBracket.test(n) && (this.options.pedantic && !this.rules.other.endAngleBracket.test(t) ? n = n.slice(1) : n = n.slice(1, -1)), ue(e, { href: n && n.replace(this.rules.inline.anyPunctuation, "$1"), title: s && s.replace(this.rules.inline.anyPunctuation, "$1") }, e[0], this.lexer, this.rules);
319
- }
325
+ /**
326
+ * Runs all validation checks on the response.
327
+ */
328
+ validate() {
329
+ this.compareModels(), this.validateResponse();
320
330
  }
321
- reflink(i, e) {
322
- let t;
323
- if ((t = this.rules.inline.reflink.exec(i)) || (t = this.rules.inline.nolink.exec(i))) {
324
- let n = (t[2] || t[1]).replace(this.rules.other.multipleSpaceGlobal, " "), s = e[n.toLowerCase()];
325
- if (!s) {
326
- let a = t[0].charAt(0);
327
- return { type: "text", raw: a, text: a };
328
- }
329
- return ue(t, s, t[0], this.lexer, this.rules);
330
- }
331
+ /**
332
+ * Compares response models against template models.
333
+ */
334
+ compareModels() {
335
+ this._compareStrings(), this._compareItems(), this._compareFeatureLayers();
331
336
  }
332
- emStrong(i, e, t = "") {
333
- let n = this.rules.inline.emStrongLDelim.exec(i);
334
- if (!(!n || n[3] && t.match(this.rules.other.unicodeAlphaNumeric)) && (!(n[1] || n[2]) || !t || this.rules.inline.punctuation.exec(t))) {
335
- let s = [...n[0]].length - 1, a, r, l = s, o = 0, h = n[0][0] === "*" ? this.rules.inline.emStrongRDelimAst : this.rules.inline.emStrongRDelimUnd;
336
- for (h.lastIndex = 0, e = e.slice(-1 * i.length + s); (n = h.exec(e)) != null; ) {
337
- if (a = n[1] || n[2] || n[3] || n[4] || n[5] || n[6], !a) continue;
338
- if (r = [...a].length, n[3] || n[4]) {
339
- l += r;
340
- continue;
341
- } else if ((n[5] || n[6]) && s % 3 && !((s + r) % 3)) {
342
- o += r;
343
- continue;
344
- }
345
- if (l -= r, l > 0) continue;
346
- r = Math.min(r, r + l + o);
347
- let c = [...n[0]][0].length, p = i.slice(0, s + n.index + c + r);
348
- if (Math.min(s, r) % 2) {
349
- let g = p.slice(1, -1);
350
- return { type: "em", raw: p, text: g, tokens: this.lexer.inlineTokens(g) };
351
- }
352
- let u = p.slice(2, -2);
353
- return { type: "strong", raw: p, text: u, tokens: this.lexer.inlineTokens(u) };
354
- }
337
+ /**
338
+ * Validates response properties and structure.
339
+ */
340
+ validateResponse() {
341
+ this._validateSolutionProps(), this._validateItems(), this._validateFeatureLayer();
342
+ }
343
+ //--------------------------------------------------------------------------
344
+ //
345
+ // Compare
346
+ //
347
+ //--------------------------------------------------------------------------
348
+ /**
349
+ * Compares string keys and values between response and template.
350
+ *
351
+ * On new designs the response is reconciled against the template: missing
352
+ * keys are re-injected and empty values are restored from the template.
353
+ * Otherwise, issues are logged. Extra response keys are ignored — the
354
+ * downstream app discards them.
355
+ */
356
+ _compareStrings() {
357
+ const e = new Set(this.response.solution.strings.map((n) => n.key)), t = new Map(this.template.solution.strings.map((n) => [n.key, n]));
358
+ [...t.keys()].every((n) => e.has(n)) || (this.newDesign ? this._reconcileStringKeys() : this._logIssue("String keys in llm response do not match the template."));
359
+ for (const n of this.response.solution.strings) {
360
+ if (n.value)
361
+ continue;
362
+ const a = t.get(n.key)?.value;
363
+ this.newDesign && a ? (n.value = a, this._logAutoFix(`String key '${n.key}' had no value. Auto-fixed by restoring the template value.`)) : this._logIssue(`String key '${n.key}' has no value in the design. It must be populated.`);
355
364
  }
356
365
  }
357
- codespan(i) {
358
- let e = this.rules.inline.code.exec(i);
359
- if (e) {
360
- let t = e[2].replace(this.rules.other.newLineCharGlobal, " "), n = this.rules.other.nonSpaceChar.test(t), s = this.rules.other.startingSpaceChar.test(t) && this.rules.other.endingSpaceChar.test(t);
361
- return n && s && (t = t.substring(1, t.length - 1)), { type: "codespan", raw: e[0], text: t };
362
- }
366
+ /**
367
+ * Re-adds template string keys missing from the response (new-design only),
368
+ * carrying over the template value and description.
369
+ */
370
+ _reconcileStringKeys() {
371
+ const e = new Set(this.response.solution.strings.map((t) => t.key));
372
+ for (const t of this.template.solution.strings)
373
+ e.has(t.key) || (this.response.solution.strings.push({ ...t }), this._logAutoFix(`String key '${t.key}' was missing from the design. Auto-fixed by re-adding it from the template.`));
363
374
  }
364
- br(i) {
365
- let e = this.rules.inline.br.exec(i);
366
- if (e) return { type: "br", raw: e[0] };
367
- }
368
- del(i, e, t = "") {
369
- let n = this.rules.inline.delLDelim.exec(i);
370
- if (n && (!n[1] || !t || this.rules.inline.punctuation.exec(t))) {
371
- let s = [...n[0]].length - 1, a, r, l = s, o = this.rules.inline.delRDelim;
372
- for (o.lastIndex = 0, e = e.slice(-1 * i.length + s); (n = o.exec(e)) != null; ) {
373
- if (a = n[1] || n[2] || n[3] || n[4] || n[5] || n[6], !a || (r = [...a].length, r !== s)) continue;
374
- if (n[3] || n[4]) {
375
- l += r;
376
- continue;
377
- }
378
- if (l -= r, l > 0) continue;
379
- r = Math.min(r, r + l);
380
- let h = [...n[0]][0].length, c = i.slice(0, s + n.index + h + r), p = c.slice(s, -s);
381
- return { type: "del", raw: c, text: p, tokens: this.lexer.inlineTokens(p) };
375
+ /**
376
+ * Compares item IDs between response and template.
377
+ *
378
+ * On new designs the response items are reconciled against the template:
379
+ * missing items are added and items not present in the template are removed.
380
+ * Otherwise, an issue is logged.
381
+ */
382
+ _compareItems() {
383
+ const e = new Set(this.template.items.map((n) => n.id)), t = new Set(this.response.items.map((n) => n.id));
384
+ e.size === t.size && [...e].every((n) => t.has(n)) || (this.newDesign ? this._reconcileItems() : this._logIssue("Item IDs in design do not match the template."));
385
+ }
386
+ /**
387
+ * Reconciles response items against the template (new-design only): removes
388
+ * response items not present in the template and adds missing template items.
389
+ *
390
+ * Special case: when both sides have the same number of unique item ids and
391
+ * exactly one id differs, update that response item id in place to preserve
392
+ * any other user-edited properties on the item.
393
+ */
394
+ _reconcileItems() {
395
+ const e = new Set(this.template.items.map((o) => o.id)), t = new Set(this.response.items.map((o) => o.id)), i = [...t].filter((o) => !e.has(o)), n = [...e].filter((o) => !t.has(o));
396
+ if (e.size === t.size && i.length === 1 && n.length === 1) {
397
+ const o = i[0], r = n[0], c = this.response.items.find((d) => d.id === o);
398
+ if (c) {
399
+ c.id = r, this._logAutoFix(`Item id '${o}' did not match the template id '${r}'. Auto-fixed in place.`);
400
+ return;
382
401
  }
383
402
  }
384
- }
385
- autolink(i) {
386
- let e = this.rules.inline.autolink.exec(i);
387
- if (e) {
388
- let t, n;
389
- return e[2] === "@" ? (t = e[1], n = "mailto:" + t) : (t = e[1], n = t), { type: "link", raw: e[0], text: t, href: n, tokens: [{ type: "text", raw: t, text: t }] };
403
+ i.length && (this.response.items = this.response.items.filter((o) => e.has(o.id)), this._logAutoFix(`Removed items not present in the template: ${i.join(", ")}.`));
404
+ const a = this.template.items.filter((o) => !t.has(o.id));
405
+ if (a.length) {
406
+ this.response.items = [
407
+ ...a.map((o) => ({ ...o })),
408
+ ...this.response.items
409
+ ];
410
+ for (const o of a)
411
+ this._logAutoFix(`Item '${o.id}' was missing from the design. Auto-fixed by adding it from the template.`);
390
412
  }
391
413
  }
392
- url(i) {
393
- let e;
394
- if (e = this.rules.inline.url.exec(i)) {
395
- let t, n;
396
- if (e[2] === "@") t = e[0], n = "mailto:" + t;
397
- else {
398
- let s;
399
- do
400
- s = e[0], e[0] = this.rules.inline._backpedal.exec(e[0])?.[0] ?? "";
401
- while (s !== e[0]);
402
- t = e[0], e[1] === "www." ? n = "http://" + e[0] : n = e[0];
403
- }
404
- return { type: "link", raw: e[0], text: t, href: n, tokens: [{ type: "text", raw: t, text: t }] };
414
+ /**
415
+ * Compares feature layer configuration between response and template.
416
+ */
417
+ _compareFeatureLayers() {
418
+ const e = this.template.featureLayer, t = this.response.featureLayer;
419
+ if (e.itemId !== t.itemId) {
420
+ const i = t.itemId;
421
+ t.itemId = e.itemId, this._logAutoFix(`Feature Layer itemId '${i}' did not match the template. Auto-fixed to '${e.itemId}'.`);
405
422
  }
406
- }
407
- inlineText(i) {
408
- let e = this.rules.inline.text.exec(i);
409
- if (e) {
410
- let t = this.lexer.state.inRawBlock;
411
- return { type: "text", raw: e[0], text: e[0], escaped: t };
423
+ if (!e.addLayers) {
424
+ const i = new Set(e.layers.map((a) => a.id)), n = new Set(t.layers.map((a) => a.id));
425
+ if (!(i.size === n.size && [...i].every((a) => n.has(a))))
426
+ this._logIssue(`Feature Layer '${e.itemId}' had its layer ids altered.`);
427
+ else
428
+ for (const a of e.layers) {
429
+ if (a.type) {
430
+ const r = t.layers.find((c) => c.id === a.id);
431
+ if (r && r.type !== a.type)
432
+ if (this.newDesign) {
433
+ const c = r.type;
434
+ r.type = a.type, this._logAutoFix(`Layer '${a.id}' type '${c}' is immutable. Auto-fixed back to template type '${a.type}'.`);
435
+ } else
436
+ this._logIssue(`Layer '${a.id}' type '${r.type}' does not match template type '${a.type}'. This layer type is immutable.`);
437
+ }
438
+ const o = t.layers.find((r) => r.id === a.id);
439
+ o && this._validateRequiredFields(o, a);
440
+ }
412
441
  }
413
442
  }
414
- }, v = class j {
415
- tokens;
416
- options;
417
- state;
418
- inlineQueue;
419
- tokenizer;
420
- constructor(e) {
421
- this.tokens = [], this.tokens.links = /* @__PURE__ */ Object.create(null), this.options = e || I, this.options.tokenizer = this.options.tokenizer || new D(), this.tokenizer = this.options.tokenizer, this.tokenizer.options = this.options, this.tokenizer.lexer = this, this.inlineQueue = [], this.state = { inLink: !1, inRawBlock: !1, top: !0 };
422
- let t = { other: b, block: N.normal, inline: L.normal };
423
- this.options.pedantic ? (t.block = N.pedantic, t.inline = L.pedantic) : this.options.gfm && (t.block = N.gfm, this.options.breaks ? t.inline = L.breaks : t.inline = L.gfm), this.tokenizer.rules = t;
424
- }
425
- static get rules() {
426
- return { block: N, inline: L };
427
- }
428
- static lex(e, t) {
429
- return new j(t).lex(e);
430
- }
431
- static lexInline(e, t) {
432
- return new j(t).inlineTokens(e);
433
- }
434
- lex(e) {
435
- e = e.replace(b.carriageReturn, `
436
- `), this.blockTokens(e, this.tokens);
437
- for (let t = 0; t < this.inlineQueue.length; t++) {
438
- let n = this.inlineQueue[t];
439
- this.inlineTokens(n.src, n.tokens);
440
- }
441
- return this.inlineQueue = [], this.tokens;
442
- }
443
- blockTokens(e, t = [], n = !1) {
444
- for (this.options.pedantic && (e = e.replace(b.tabCharGlobal, " ").replace(b.spaceLine, "")); e; ) {
445
- let s;
446
- if (this.options.extensions?.block?.some((r) => (s = r.call({ lexer: this }, e, t)) ? (e = e.substring(s.raw.length), t.push(s), !0) : !1)) continue;
447
- if (s = this.tokenizer.space(e)) {
448
- e = e.substring(s.raw.length);
449
- let r = t.at(-1);
450
- s.raw.length === 1 && r !== void 0 ? r.raw += `
451
- ` : t.push(s);
452
- continue;
453
- }
454
- if (s = this.tokenizer.code(e)) {
455
- e = e.substring(s.raw.length);
456
- let r = t.at(-1);
457
- r?.type === "paragraph" || r?.type === "text" ? (r.raw += (r.raw.endsWith(`
458
- `) ? "" : `
459
- `) + s.raw, r.text += `
460
- ` + s.text, this.inlineQueue.at(-1).src = r.text) : t.push(s);
461
- continue;
462
- }
463
- if (s = this.tokenizer.fences(e)) {
464
- e = e.substring(s.raw.length), t.push(s);
465
- continue;
466
- }
467
- if (s = this.tokenizer.heading(e)) {
468
- e = e.substring(s.raw.length), t.push(s);
469
- continue;
470
- }
471
- if (s = this.tokenizer.hr(e)) {
472
- e = e.substring(s.raw.length), t.push(s);
473
- continue;
474
- }
475
- if (s = this.tokenizer.blockquote(e)) {
476
- e = e.substring(s.raw.length), t.push(s);
477
- continue;
478
- }
479
- if (s = this.tokenizer.list(e)) {
480
- e = e.substring(s.raw.length), t.push(s);
481
- continue;
482
- }
483
- if (s = this.tokenizer.html(e)) {
484
- e = e.substring(s.raw.length), t.push(s);
485
- continue;
486
- }
487
- if (s = this.tokenizer.def(e)) {
488
- e = e.substring(s.raw.length);
489
- let r = t.at(-1);
490
- r?.type === "paragraph" || r?.type === "text" ? (r.raw += (r.raw.endsWith(`
491
- `) ? "" : `
492
- `) + s.raw, r.text += `
493
- ` + s.raw, this.inlineQueue.at(-1).src = r.text) : this.tokens.links[s.tag] || (this.tokens.links[s.tag] = { href: s.href, title: s.title }, t.push(s));
494
- continue;
495
- }
496
- if (s = this.tokenizer.table(e)) {
497
- e = e.substring(s.raw.length), t.push(s);
498
- continue;
499
- }
500
- if (s = this.tokenizer.lheading(e)) {
501
- e = e.substring(s.raw.length), t.push(s);
502
- continue;
503
- }
504
- let a = e;
505
- if (this.options.extensions?.startBlock) {
506
- let r = 1 / 0, l = e.slice(1), o;
507
- this.options.extensions.startBlock.forEach((h) => {
508
- o = h.call({ lexer: this }, l), typeof o == "number" && o >= 0 && (r = Math.min(r, o));
509
- }), r < 1 / 0 && r >= 0 && (a = e.substring(0, r + 1));
510
- }
511
- if (this.state.top && (s = this.tokenizer.paragraph(a))) {
512
- let r = t.at(-1);
513
- n && r?.type === "paragraph" ? (r.raw += (r.raw.endsWith(`
514
- `) ? "" : `
515
- `) + s.raw, r.text += `
516
- ` + s.text, this.inlineQueue.pop(), this.inlineQueue.at(-1).src = r.text) : t.push(s), n = a.length !== e.length, e = e.substring(s.raw.length);
517
- continue;
518
- }
519
- if (s = this.tokenizer.text(e)) {
520
- e = e.substring(s.raw.length);
521
- let r = t.at(-1);
522
- r?.type === "text" ? (r.raw += (r.raw.endsWith(`
523
- `) ? "" : `
524
- `) + s.raw, r.text += `
525
- ` + s.text, this.inlineQueue.pop(), this.inlineQueue.at(-1).src = r.text) : t.push(s);
443
+ /**
444
+ * Validates required fields against the template. Required fields are matched by
445
+ * name. Users may change a required field's `alias` and `description`, but its
446
+ * `name`, `type`, `length`, and `choiceList` are immutable.
447
+ *
448
+ * On new designs, missing required fields are re-injected and tampered immutable
449
+ * properties are reverted to the template. Otherwise, issues are logged.
450
+ */
451
+ _validateRequiredFields(e, t) {
452
+ const i = new Map(
453
+ e.requiredFields.map((n) => [n.name.toLowerCase(), n])
454
+ );
455
+ for (const n of t.requiredFields) {
456
+ const a = i.get(n.name.toLowerCase());
457
+ if (!a) {
458
+ this.newDesign ? (e.requiredFields.push({ ...n }), this._logAutoFix(`Layer '${e.name}' was missing required field '${n.name}'. Auto-fixed by re-adding it from the template.`)) : this._logIssue(`Layer '${e.name}' is missing required field '${n.name}'.`);
526
459
  continue;
527
460
  }
528
- if (e) {
529
- let r = "Infinite loop on byte: " + e.charCodeAt(0);
530
- if (this.options.silent) {
531
- console.error(r);
532
- break;
533
- } else throw new Error(r);
534
- }
461
+ this._enforceRequiredFieldImmutability(e, a, n);
535
462
  }
536
- return this.state.top = !0, t;
537
463
  }
538
- inline(e, t = []) {
539
- return this.inlineQueue.push({ src: e, tokens: t }), t;
464
+ /**
465
+ * Enforces immutability of a required field's `type`, `length`, and `choiceList`
466
+ * (its `name` is the match key, so it is equal by construction). On new designs the
467
+ * properties are reverted to the template; otherwise an issue is logged.
468
+ */
469
+ _enforceRequiredFieldImmutability(e, t, i) {
470
+ const n = [];
471
+ if (t.type !== i.type && n.push("type"), (t.length ?? null) !== (i.length ?? null) && n.push("length"), this._choiceListsEqual(t.choiceList, i.choiceList) || n.push("choiceList"), !n.length)
472
+ return;
473
+ const a = n.length === 1 ? "property" : "properties";
474
+ this.newDesign ? (t.type = i.type, t.length = i.length, t.choiceList = Array.isArray(i.choiceList) ? [...i.choiceList] : i.choiceList ?? null, this._logAutoFix(`Layer '${e.name}' required field '${i.name}' changed immutable ${a} (${n.join(", ")}). Auto-fixed by reverting to the template.`)) : this._logIssue(`Layer '${e.name}' required field '${i.name}' changed immutable ${a} (${n.join(", ")}). These cannot be modified.`);
540
475
  }
541
- inlineTokens(e, t = []) {
542
- let n = e, s = null;
543
- if (this.tokens.links) {
544
- let o = Object.keys(this.tokens.links);
545
- if (o.length > 0) for (; (s = this.tokenizer.rules.inline.reflinkSearch.exec(n)) != null; ) o.includes(s[0].slice(s[0].lastIndexOf("[") + 1, -1)) && (n = n.slice(0, s.index) + "[" + "a".repeat(s[0].length - 2) + "]" + n.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex));
476
+ /**
477
+ * Set-based equality check for two choiceList values (order-insensitive),
478
+ * treating null/undefined/non-array as "no domain".
479
+ */
480
+ _choiceListsEqual(e, t) {
481
+ const i = Array.isArray(e) ? e : null, n = Array.isArray(t) ? t : null;
482
+ if (i === null && n === null)
483
+ return !0;
484
+ if (i === null || n === null)
485
+ return !1;
486
+ const a = new Set(i), o = new Set(n);
487
+ return a.size === o.size && [...a].every((r) => o.has(r));
488
+ }
489
+ //--------------------------------------------------------------------------
490
+ //
491
+ // Validate
492
+ //
493
+ //--------------------------------------------------------------------------
494
+ /**
495
+ * Validates solution title and description.
496
+ */
497
+ _validateSolutionProps() {
498
+ const e = this.response.solution.title ?? "", t = this.response.solution.description, i = /[/\\]/u.test(e), n = this.newDesign ? e.replace(/[/\\]/gu, "") : e;
499
+ this.newDesign && n !== e ? (this.response.solution.title = n, this._logAutoFix("Solution title contained forward or back slashes. Auto-fixed by removing them.")) : !this.newDesign && i && this._logIssue("Solution title contains forbidden forward or back slashes.");
500
+ const a = J(n);
501
+ if (a.isValid || this._tryFixName(a.errorType, n, (o) => {
502
+ this.response.solution.title = o;
503
+ }, "Solution title", "Solution Title") || this._logIssue(`Solution title is invalid (${a.errorType}).`), t) {
504
+ const o = H(t, x.DESCRIPTION_MAX_LENGTH, !0);
505
+ o.isValid || this._tryFixDescription(t, (r) => {
506
+ this.response.solution.description = r;
507
+ }, "Solution description") || this._logIssue(`Solution description is invalid (${o.errorType}).`);
546
508
  }
547
- for (; (s = this.tokenizer.rules.inline.anyPunctuation.exec(n)) != null; ) n = n.slice(0, s.index) + "++" + n.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);
548
- let a;
549
- for (; (s = this.tokenizer.rules.inline.blockSkip.exec(n)) != null; ) a = s[2] ? s[2].length : 0, n = n.slice(0, s.index + a) + "[" + "a".repeat(s[0].length - a - 2) + "]" + n.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);
550
- n = this.options.hooks?.emStrongMask?.call({ lexer: this }, n) ?? n;
551
- let r = !1, l = "";
552
- for (; e; ) {
553
- r || (l = ""), r = !1;
554
- let o;
555
- if (this.options.extensions?.inline?.some((c) => (o = c.call({ lexer: this }, e, t)) ? (e = e.substring(o.raw.length), t.push(o), !0) : !1)) continue;
556
- if (o = this.tokenizer.escape(e)) {
557
- e = e.substring(o.raw.length), t.push(o);
558
- continue;
559
- }
560
- if (o = this.tokenizer.tag(e)) {
561
- e = e.substring(o.raw.length), t.push(o);
562
- continue;
563
- }
564
- if (o = this.tokenizer.link(e)) {
565
- e = e.substring(o.raw.length), t.push(o);
566
- continue;
567
- }
568
- if (o = this.tokenizer.reflink(e, this.tokens.links)) {
569
- e = e.substring(o.raw.length);
570
- let c = t.at(-1);
571
- o.type === "text" && c?.type === "text" ? (c.raw += o.raw, c.text += o.text) : t.push(o);
572
- continue;
573
- }
574
- if (o = this.tokenizer.emStrong(e, n, l)) {
575
- e = e.substring(o.raw.length), t.push(o);
576
- continue;
577
- }
578
- if (o = this.tokenizer.codespan(e)) {
579
- e = e.substring(o.raw.length), t.push(o);
580
- continue;
581
- }
582
- if (o = this.tokenizer.br(e)) {
583
- e = e.substring(o.raw.length), t.push(o);
584
- continue;
585
- }
586
- if (o = this.tokenizer.del(e, n, l)) {
587
- e = e.substring(o.raw.length), t.push(o);
588
- continue;
589
- }
590
- if (o = this.tokenizer.autolink(e)) {
591
- e = e.substring(o.raw.length), t.push(o);
592
- continue;
593
- }
594
- if (!this.state.inLink && (o = this.tokenizer.url(e))) {
595
- e = e.substring(o.raw.length), t.push(o);
596
- continue;
597
- }
598
- let h = e;
599
- if (this.options.extensions?.startInline) {
600
- let c = 1 / 0, p = e.slice(1), u;
601
- this.options.extensions.startInline.forEach((g) => {
602
- u = g.call({ lexer: this }, p), typeof u == "number" && u >= 0 && (c = Math.min(c, u));
603
- }), c < 1 / 0 && c >= 0 && (h = e.substring(0, c + 1));
604
- }
605
- if (o = this.tokenizer.inlineText(h)) {
606
- e = e.substring(o.raw.length), o.raw.slice(-1) !== "_" && (l = o.raw.slice(-1)), r = !0;
607
- let c = t.at(-1);
608
- c?.type === "text" ? (c.raw += o.raw, c.text += o.text) : t.push(o);
609
- continue;
610
- }
611
- if (e) {
612
- let c = "Infinite loop on byte: " + e.charCodeAt(0);
613
- if (this.options.silent) {
614
- console.error(c);
615
- break;
616
- } else throw new Error(c);
509
+ }
510
+ /**
511
+ * Validates all items in the response.
512
+ */
513
+ _validateItems() {
514
+ for (const e of this.response.items) {
515
+ const t = J(e.title ?? "");
516
+ if (t.isValid || this._tryFixName(t.errorType, e.title ?? "", (i) => {
517
+ e.title = i;
518
+ }, `Item '${e.id}' title`, "Item Title") || this._logIssue(`Item '${e.id}' title is invalid (${t.errorType}).`), e.description) {
519
+ const i = H(e.description, x.DESCRIPTION_MAX_LENGTH, !0);
520
+ i.isValid || this._tryFixDescription(e.description, (n) => {
521
+ e.description = n;
522
+ }, `Item '${e.id}' description`) || this._logIssue(`Item '${e.id}' description is invalid (${i.errorType}).`);
617
523
  }
618
524
  }
619
- return t;
620
- }
621
- }, U = class {
622
- options;
623
- parser;
624
- constructor(i) {
625
- this.options = i || I;
626
525
  }
627
- space(i) {
628
- return "";
526
+ /**
527
+ * Validates feature layer structure and layers.
528
+ */
529
+ _validateFeatureLayer() {
530
+ this.response.featureLayer.layers.length || this._logIssue("Feature layer item must contain at least one layer.");
531
+ const e = this.response.featureLayer.layers.map((t) => t.name.toLowerCase());
532
+ e.length !== new Set(e).size && (this.newDesign ? this._dedupeLayerNames(this.response.featureLayer.layers) : this._logIssue(`Layer names must be unique (case-insensitive). Layer names in design: ${e}.`));
533
+ for (const t of this.response.featureLayer.layers)
534
+ this._validateLayer(t, this.response.featureLayer.addLayers);
629
535
  }
630
- code({ text: i, lang: e, escaped: t }) {
631
- let n = (e || "").match(b.notSpaceStart)?.[0], s = i.replace(b.endingNewline, "") + `
632
- `;
633
- return n ? '<pre><code class="language-' + S(n) + '">' + (t ? s : S(s, !0)) + `</code></pre>
634
- ` : "<pre><code>" + (t ? s : S(s, !0)) + `</code></pre>
635
- `;
536
+ /**
537
+ * Renames duplicate (case-insensitive) layer names by appending a numeric suffix.
538
+ */
539
+ _dedupeLayerNames(e) {
540
+ const t = /* @__PURE__ */ new Set();
541
+ for (const i of e) {
542
+ const n = (i.name ?? "").toLowerCase();
543
+ if (t.has(n)) {
544
+ const a = i.name;
545
+ i.name = this._makeUniqueName(i.name ?? "Layer", t), this._logAutoFix(`Duplicate layer name '${a}'. Auto-fixed to '${i.name}'.`);
546
+ }
547
+ t.add(i.name.toLowerCase());
548
+ }
636
549
  }
637
- blockquote({ tokens: i }) {
638
- return `<blockquote>
639
- ${this.parser.parse(i)}</blockquote>
640
- `;
550
+ /**
551
+ * Validates a single layer configuration including name, description, and fields.
552
+ */
553
+ _validateLayer(e, t) {
554
+ !t && e.typeMutable === !0 && e.type === "Table" && (this.newDesign ? (e.type = "Point", this._logAutoFix(`Layer '${e.name}' cannot be a Table. Auto-fixed to 'Point'.`)) : this._logIssue(
555
+ `Layer '${e.name}' cannot be a Table. It may be a Point, Line, or Polygon.`
556
+ ));
557
+ const i = J(e.name ?? "");
558
+ if (i.isValid || this._tryFixName(i.errorType, e.name ?? "", (n) => {
559
+ e.name = n;
560
+ }, `Layer '${e.name}' name`, "Layer Title") || this._logIssue(`Layer '${e.name}' name is invalid (${i.errorType}).`), e.description) {
561
+ const n = H(e.description, x.DESCRIPTION_MAX_LENGTH, !0);
562
+ n.isValid || this._tryFixDescription(e.description, (a) => {
563
+ e.description = a;
564
+ }, `Layer '${e.name}' description`) || this._logIssue(`Layer '${e.name}' description is invalid (${n.errorType}).`);
565
+ }
566
+ this._validateLayerFields(e);
641
567
  }
642
- html({ text: i }) {
643
- return i;
568
+ /**
569
+ * Validates all fields in a layer including custom, required, and system fields.
570
+ *
571
+ * Each field is validated individually first, which (among other checks)
572
+ * resolves collisions with reserved system field names. A final pass then
573
+ * ensures custom field names do not collide (case-insensitively) with required
574
+ * field names or one another — auto-fixed via {@link _makeUniqueName} on new
575
+ * designs, otherwise logged.
576
+ */
577
+ _validateLayerFields(e) {
578
+ const t = e.systemFields ?? [];
579
+ this.fieldNameRegistry = new Set(
580
+ [...e.customFields, ...e.requiredFields, ...t].map((a) => a.name.toLowerCase())
581
+ );
582
+ for (const a of [...e.customFields, ...e.requiredFields])
583
+ this._validateField(a);
584
+ this.fieldNameRegistry = null;
585
+ const i = new Set(e.requiredFields.map((a) => a.name.toLowerCase())), n = new Set(i);
586
+ for (const a of e.customFields) {
587
+ const o = a.name.toLowerCase();
588
+ if (n.has(o)) {
589
+ const r = i.has(o) ? "a required field name" : "another field with the same name";
590
+ if (this.newDesign) {
591
+ const c = a.name;
592
+ a.name = this._makeUniqueName(a.name, n), this._logAutoFix(`Layer '${e.name}' field '${c}' collided with ${r}. Auto-fixed to '${a.name}'.`);
593
+ } else
594
+ this._logIssue(`Layer '${e.name}' field '${a.name}' collides with ${r}.`);
595
+ }
596
+ n.add(a.name.toLowerCase());
597
+ }
644
598
  }
645
- def(i) {
646
- return "";
599
+ /**
600
+ * Validates a single field including name, type, length, and domain constraints.
601
+ */
602
+ _validateField(e) {
603
+ const t = /^\p{L}/u, i = /^.[\p{L}\p{M}\p{N}_]*$/u;
604
+ e.alias || (this.newDesign ? (e.alias = e.name, this._logAutoFix(`Field '${e.name}' had no display name (alias). Auto-fixed to '${e.alias}'.`)) : this._logIssue(`Field '${e.name}' has no display name (alias).`));
605
+ const n = t.test(e.name), a = i.test(e.name);
606
+ if (!n || !a)
607
+ if (this.newDesign) {
608
+ const o = e.name;
609
+ e.name = this._makeUniqueName(this._sanitizeFieldName(e.name), this.fieldNameRegistry), this.fieldNameRegistry.add(e.name.toLowerCase()), this._logAutoFix(`Field '${o}' had an invalid name. Auto-fixed to '${e.name}'.`);
610
+ } else
611
+ n || this._logIssue(`Field '${e.name}' does not start with a letter.`), a || this._logIssue(
612
+ `Field '${e.name}' contains invalid characters (only letters from any writing system, numbers, and underscores are allowed; emojis and punctuation are not allowed).`
613
+ );
614
+ if (e.name.length > x.FIELD_NAME_MAX_LENGTH)
615
+ if (this.newDesign) {
616
+ const o = e.name;
617
+ e.name = this._getUniqueTruncatedFieldName(e.name, this.fieldNameRegistry), this.fieldNameRegistry.add(e.name.toLowerCase()), this._logAutoFix(`Field '${o}' exceeds ${x.FIELD_NAME_MAX_LENGTH} characters. Auto-fixing to '${e.name}'.`);
618
+ } else
619
+ this._logIssue(`Field '${e.name}' exceeds ${x.FIELD_NAME_MAX_LENGTH} characters.`);
620
+ if (He.has(e.name.toLowerCase()))
621
+ if (this.newDesign) {
622
+ const o = e.name;
623
+ e.name = this._getUniqueTruncatedFieldName(o, this.fieldNameRegistry), this.fieldNameRegistry.add(e.name.toLowerCase()), this._logAutoFix(`Field '${o}' is a SQL reserved keyword. Auto-fixing to '${e.name}'.`);
624
+ } else
625
+ this._logIssue(`Field '${e.name}' is a SQL reserved keyword.`);
626
+ if (Ve.has(e.name.toLowerCase()))
627
+ if (this.newDesign) {
628
+ const o = e.name;
629
+ e.name = this._getUniqueTruncatedFieldName(o, this.fieldNameRegistry), this.fieldNameRegistry.add(e.name.toLowerCase()), this._logAutoFix(`Field '${o}' is a reserved system field name. Auto-fixing to '${e.name}'.`);
630
+ } else
631
+ this._logIssue(`Field '${e.name}' is a reserved system field name.`);
632
+ if (Array.isArray(e.choiceList) && e.type !== "string" && (this.newDesign ? e.choiceList.length ? (e.type = "string", this._logAutoFix(`Field '${e.name}' had a domain but was not of type 'string'. Auto-fixed by setting the type to 'string'.`)) : (e.choiceList = null, this._logAutoFix(`Field '${e.name}' had an empty domain but is not of type 'string'. Auto-fixed by removing the domain.`)) : this._logIssue(`Field '${e.name}' must be of type 'string' to have a domain.`)), e.type === "string" && this._validateStringFieldLength(e), Array.isArray(e.choiceList) && (this.newDesign ? this._autoFixChoiceList(e) : this._logChoiceListIssues(e)), Array.isArray(e.choiceList) && e.length != null) {
633
+ const o = Math.max(...e.choiceList.map((r) => r.length));
634
+ o > e.length && (this.newDesign ? (this._logAutoFix(`The choice provided for field '${e.name}' is too long. It must fit within ${e.length} characters, but the choice requires ${o} characters. Auto-fixing to ${o}.`), e.length = o) : this._logIssue(`The choice provided for field '${e.name}' is too long. It must fit within ${e.length} characters, but the choice requires ${o} characters.`));
635
+ }
647
636
  }
648
- heading({ tokens: i, depth: e }) {
649
- return `<h${e}>${this.parser.parseInline(i)}</h${e}>
650
- `;
637
+ /**
638
+ * New-design behavior: removes blank and duplicate domain values, and drops an
639
+ * empty domain entirely.
640
+ */
641
+ _autoFixChoiceList(e) {
642
+ let t = e.choiceList;
643
+ const i = t.filter((a) => a?.trim());
644
+ i.length !== t.length && (this._logAutoFix(`Field '${e.name}' had blank domain values. Auto-fixed by removing them.`), t = i, e.choiceList = t);
645
+ const n = [...new Set(t)];
646
+ n.length !== t.length && (this._logAutoFix(`Field '${e.name}' had duplicate domain values. Auto-fixed by removing duplicates.`), t = n, e.choiceList = t), t.length || (this._logAutoFix(`Field '${e.name}' had an empty domain. Auto-fixed by removing the domain.`), e.choiceList = null);
651
647
  }
652
- hr(i) {
653
- return `<hr>
654
- `;
648
+ /**
649
+ * Legacy behavior: logs domain (choiceList) content issues as validation issues.
650
+ */
651
+ _logChoiceListIssues(e) {
652
+ if (Array.isArray(e.choiceList)) {
653
+ if (!e.choiceList.length) {
654
+ this._logIssue(`Field '${e.name}' has an empty domain. At least one value is required.`);
655
+ return;
656
+ }
657
+ e.choiceList.some((t) => !t?.trim()) && this._logIssue(`A blank domain value was added to Field '${e.name}'.`), e.choiceList.length !== new Set(e.choiceList).size && this._logIssue(`Field '${e.name}' has duplicate domain values.`);
658
+ }
655
659
  }
656
- list(i) {
657
- let e = i.ordered, t = i.start, n = "";
658
- for (let r = 0; r < i.items.length; r++) {
659
- let l = i.items[r];
660
- n += this.listitem(l);
660
+ /**
661
+ * Validates the length of a string field, silently migrating 255 -> 256 for new designs,
662
+ * and auto-fixing or logging out-of-range values accordingly.
663
+ */
664
+ _validateStringFieldLength(e) {
665
+ if (this.newDesign && e.length === 255 && (e.length = 256), typeof e.length != "number" || Number.isNaN(e.length)) {
666
+ this._handleInvalidStringFieldLength(e, 256);
667
+ return;
661
668
  }
662
- let s = e ? "ol" : "ul", a = e && t !== 1 ? ' start="' + t + '"' : "";
663
- return "<" + s + a + `>
664
- ` + n + "</" + s + `>
665
- `;
666
- }
667
- listitem(i) {
668
- return `<li>${this.parser.parse(i.tokens)}</li>
669
- `;
670
- }
671
- checkbox({ checked: i }) {
672
- return "<input " + (i ? 'checked="" ' : "") + 'disabled="" type="checkbox"> ';
673
- }
674
- paragraph({ tokens: i }) {
675
- return `<p>${this.parser.parseInline(i)}</p>
676
- `;
677
- }
678
- table(i) {
679
- let e = "", t = "";
680
- for (let s = 0; s < i.header.length; s++) t += this.tablecell(i.header[s]);
681
- e += this.tablerow({ text: t });
682
- let n = "";
683
- for (let s = 0; s < i.rows.length; s++) {
684
- let a = i.rows[s];
685
- t = "";
686
- for (let r = 0; r < a.length; r++) t += this.tablecell(a[r]);
687
- n += this.tablerow({ text: t });
669
+ const t = e.length;
670
+ if (!Ke(t).isValid) {
671
+ const n = t > 4e3 ? 4e3 : 256;
672
+ this._handleInvalidStringFieldLength(e, n);
688
673
  }
689
- return n && (n = `<tbody>${n}</tbody>`), `<table>
690
- <thead>
691
- ` + e + `</thead>
692
- ` + n + `</table>
693
- `;
694
- }
695
- tablerow({ text: i }) {
696
- return `<tr>
697
- ${i}</tr>
698
- `;
699
- }
700
- tablecell(i) {
701
- let e = this.parser.parseInline(i.tokens), t = i.header ? "th" : "td";
702
- return (i.align ? `<${t} align="${i.align}">` : `<${t}>`) + e + `</${t}>
703
- `;
704
- }
705
- strong({ tokens: i }) {
706
- return `<strong>${this.parser.parseInline(i)}</strong>`;
707
- }
708
- em({ tokens: i }) {
709
- return `<em>${this.parser.parseInline(i)}</em>`;
710
- }
711
- codespan({ text: i }) {
712
- return `<code>${S(i, !0)}</code>`;
713
- }
714
- br(i) {
715
- return "<br>";
716
- }
717
- del({ tokens: i }) {
718
- return `<del>${this.parser.parseInline(i)}</del>`;
719
- }
720
- link({ href: i, title: e, tokens: t }) {
721
- let n = this.parser.parseInline(t), s = he(i);
722
- if (s === null) return n;
723
- i = s;
724
- let a = '<a href="' + i + '"';
725
- return e && (a += ' title="' + S(e) + '"'), a += ">" + n + "</a>", a;
726
- }
727
- image({ href: i, title: e, text: t, tokens: n }) {
728
- n && (t = this.parser.parseInline(n, this.parser.textRenderer));
729
- let s = he(i);
730
- if (s === null) return S(t);
731
- i = s;
732
- let a = `<img src="${i}" alt="${S(t)}"`;
733
- return e && (a += ` title="${S(e)}"`), a += ">", a;
734
- }
735
- text(i) {
736
- return "tokens" in i && i.tokens ? this.parser.parseInline(i.tokens) : "escaped" in i && i.escaped ? i.text : S(i.text);
737
- }
738
- }, se = class {
739
- strong({ text: i }) {
740
- return i;
741
674
  }
742
- em({ text: i }) {
675
+ /**
676
+ * Applies an auto-fix to a string field's length on new designs, or logs an issue on update design.
677
+ */
678
+ _handleInvalidStringFieldLength(e, t) {
679
+ this.newDesign ? (this._logAutoFix(`Field '${e.name}' has an invalid length. Auto-fixing to ${t}.`), e.length = t) : this._logIssue(`Field '${e.name}' length is invalid (must be a number between 1 and 4000).`);
680
+ }
681
+ //--------------------------------------------------------------------------
682
+ //
683
+ // Helpers / Utilities
684
+ //
685
+ //--------------------------------------------------------------------------
686
+ /**
687
+ * Returns a name not present (case-insensitively) in the taken set by appending
688
+ * a numeric suffix when needed.
689
+ */
690
+ _makeUniqueName(e, t) {
691
+ let i = e, n = 1;
692
+ for (; t.has(i.toLowerCase()); )
693
+ i = `${e}_${n}`, n += 1;
743
694
  return i;
744
695
  }
745
- codespan({ text: i }) {
746
- return i;
696
+ /**
697
+ * Returns a field name truncated to the 31-character limit that does not collide
698
+ * (case-insensitively) with the supplied taken set, shortening the base and
699
+ * appending a numeric suffix as needed.
700
+ */
701
+ _getUniqueTruncatedFieldName(e, t) {
702
+ const i = x.FIELD_NAME_MAX_LENGTH, n = e.slice(0, i);
703
+ let a = n, o = 1;
704
+ for (; t.has(a.toLowerCase()); ) {
705
+ const r = `_${o}`, c = Math.max(1, i - r.length);
706
+ a = `${n.slice(0, c)}${r}`, o += 1;
707
+ }
708
+ return a;
747
709
  }
748
- del({ text: i }) {
749
- return i;
710
+ /**
711
+ * Sanitizes an item-style name by stripping emojis and disallowed characters,
712
+ * collapsing whitespace, trimming, and truncating to the name length limit.
713
+ * May return an empty string when no valid characters remain.
714
+ */
715
+ _sanitizeItemName(e, t = x.NAME_MAX_LENGTH) {
716
+ let i = (e ?? "").replace(new RegExp(Qe.source, "gu"), "").replace(x.INVALID_NAME_CHARS, "").replace(/\s+/gu, " ").trim();
717
+ return i.length > t && (i = i.slice(0, t).trim()), i;
750
718
  }
751
- html({ text: i }) {
752
- return i;
719
+ /**
720
+ * Sanitizes a description by stripping the disallowed `<` and `>` characters
721
+ * (forward slash is allowed) and truncating to the description length limit.
722
+ */
723
+ _sanitizeDescription(e, t = x.DESCRIPTION_MAX_LENGTH) {
724
+ let i = (e ?? "").replace(/[<>]/gu, "");
725
+ return i.length > t && (i = i.slice(0, t)), i;
753
726
  }
754
- text({ text: i }) {
755
- return i;
727
+ /**
728
+ * Sanitizes a field name so it starts with a letter and contains only
729
+ * letters, combining marks, numbers, and underscores.
730
+ */
731
+ _sanitizeFieldName(e) {
732
+ let t = (e ?? "").replace(/[^\p{L}\p{M}\p{N}_]/gu, "");
733
+ return t.length === 0 ? t = "field" : /^\p{L}/u.test(t) || (t = `f_${t}`), t;
756
734
  }
757
- link({ text: i }) {
758
- return "" + i;
735
+ /**
736
+ * Attempts to auto-fix an invalid item-style name on new designs. Empty values
737
+ * (or values that sanitize to empty) fall back to the supplied placeholder.
738
+ * Returns true when fixed.
739
+ */
740
+ _tryFixName(e, t, i, n, a) {
741
+ if (!this.newDesign)
742
+ return !1;
743
+ if (e === "empty")
744
+ return i(a), this._logAutoFix(`${n} was empty. Auto-fixed to '${a}'.`), !0;
745
+ const r = this._sanitizeItemName(t) || a;
746
+ return i(r), this._logAutoFix(`${n} was invalid (${e}). Auto-fixed to '${r}'.`), !0;
759
747
  }
760
- image({ text: i }) {
761
- return "" + i;
748
+ /**
749
+ * Attempts to auto-fix an invalid description on new designs. Returns true when fixed.
750
+ */
751
+ _tryFixDescription(e, t, i) {
752
+ if (!this.newDesign)
753
+ return !1;
754
+ const n = this._sanitizeDescription(e);
755
+ return t(n), this._logAutoFix(`${i} was invalid. Auto-fixed to a sanitized value.`), !0;
762
756
  }
763
- br() {
764
- return "";
757
+ /**
758
+ * Records an auto-fix that was applied (new-design only). Auto-fixes are
759
+ * informational: they are logged but do NOT mark validation invalid.
760
+ */
761
+ _logAutoFix(e) {
762
+ console.debug(e);
765
763
  }
766
- checkbox({ raw: i }) {
767
- return i;
764
+ /**
765
+ * Records an issue and marks the validation as invalid.
766
+ */
767
+ _logIssue(e) {
768
+ console.debug(e), this.issues.push(e), this.isValid = !1;
768
769
  }
769
- }, y = class G {
770
- options;
771
- renderer;
772
- textRenderer;
773
- constructor(e) {
774
- this.options = e || I, this.options.renderer = this.options.renderer || new U(), this.renderer = this.options.renderer, this.renderer.options = this.options, this.renderer.parser = this, this.textRenderer = new se();
775
- }
776
- static parse(e, t) {
777
- return new G(t).parse(e);
778
- }
779
- static parseInline(e, t) {
780
- return new G(t).parseInline(e);
781
- }
782
- parse(e) {
783
- let t = "";
784
- for (let n = 0; n < e.length; n++) {
785
- let s = e[n];
786
- if (this.options.extensions?.renderers?.[s.type]) {
787
- let r = s, l = this.options.extensions.renderers[r.type].call({ parser: this }, r);
788
- if (l !== !1 || !["space", "hr", "heading", "code", "table", "blockquote", "list", "html", "def", "paragraph", "text"].includes(r.type)) {
789
- t += l || "";
790
- continue;
791
- }
792
- }
793
- let a = s;
794
- switch (a.type) {
795
- case "space": {
796
- t += this.renderer.space(a);
797
- break;
798
- }
799
- case "hr": {
800
- t += this.renderer.hr(a);
801
- break;
802
- }
803
- case "heading": {
804
- t += this.renderer.heading(a);
805
- break;
806
- }
807
- case "code": {
808
- t += this.renderer.code(a);
809
- break;
810
- }
811
- case "table": {
812
- t += this.renderer.table(a);
813
- break;
814
- }
815
- case "blockquote": {
816
- t += this.renderer.blockquote(a);
817
- break;
818
- }
819
- case "list": {
820
- t += this.renderer.list(a);
821
- break;
822
- }
823
- case "checkbox": {
824
- t += this.renderer.checkbox(a);
825
- break;
826
- }
827
- case "html": {
828
- t += this.renderer.html(a);
829
- break;
830
- }
831
- case "def": {
832
- t += this.renderer.def(a);
833
- break;
834
- }
835
- case "paragraph": {
836
- t += this.renderer.paragraph(a);
837
- break;
838
- }
839
- case "text": {
840
- t += this.renderer.text(a);
841
- break;
842
- }
843
- default: {
844
- let r = 'Token with "' + a.type + '" type was not found.';
845
- if (this.options.silent) return console.error(r), "";
846
- throw new Error(r);
847
- }
770
+ }
771
+ const yt = l.object({
772
+ key: l.string().describe("Stable key identifier for the string."),
773
+ value: l.string().describe("Display value for the string."),
774
+ description: l.string().describe("Explanation of where/how the string is used.")
775
+ }), bt = l.object({
776
+ id: l.string().describe("ArcGIS item id (32 hex characters)."),
777
+ title: l.string().describe("Item title."),
778
+ description: l.string().describe("Item description."),
779
+ type: l.enum([
780
+ "Feature Layer (hosted)",
781
+ "Feature Layer (hosted, view)",
782
+ "Web Map",
783
+ "Instant App",
784
+ "Dashboard",
785
+ "Web Experience",
786
+ "Form",
787
+ "Table (hosted)",
788
+ "Table (hosted, view)",
789
+ "Hub Site Application",
790
+ "Hub Page",
791
+ "CSV",
792
+ "Data Pipeline",
793
+ "Desktop Application Template",
794
+ "Group",
795
+ "Notebook",
796
+ "QuickCapture Project"
797
+ ]).describe("ArcGIS item type.")
798
+ }), ue = l.object({
799
+ name: l.string().describe("Field name."),
800
+ type: l.enum(["string", "integer", "double", "date", "oid", "guid", "globalid"]).describe("Field data type."),
801
+ alias: l.string().describe("Field alias for display."),
802
+ description: l.string().describe("Field description."),
803
+ choiceList: l.array(l.string()).nullable().describe(
804
+ "List of allowed values for string fields with a controlled vocabulary. Null if unrestricted or not applicable."
805
+ ),
806
+ length: l.number().int().nullable().describe("Maximum string length for string fields. Null for non-string fields.")
807
+ }), xt = l.object({
808
+ id: l.number().int().describe("Layer/table id within the feature service."),
809
+ type: l.enum(["Point", "Polyline", "Polygon", "Table"]).describe("Layer type."),
810
+ typeMutable: l.boolean().describe("Indicates whether the layer type can be changed."),
811
+ name: l.string().describe("Layer/table name."),
812
+ description: l.string().describe("Layer/table description."),
813
+ customFields: l.array(ue).describe("User/business fields specific to the solution."),
814
+ requiredFields: l.array(ue).describe("Fields required for solution functionality (e.g., relationship keys).")
815
+ }), vt = l.object({
816
+ itemId: l.string().describe("ArcGIS item id for the feature layer."),
817
+ addLayers: l.boolean().describe("Indicates whether new layers can be added during solution design."),
818
+ layers: l.array(xt)
819
+ }), Z = l.object({
820
+ response: l.string().describe("Conversational response to the user's query."),
821
+ solution: l.object({
822
+ itemId: l.string().nullable().describe("ArcGIS item id of the source Solution template used for deployment. Preserve the existing value exactly when known; otherwise use null."),
823
+ title: l.string().describe("Title of the solution."),
824
+ description: l.string().describe("Description of the solution."),
825
+ tags: l.array(l.string()).describe("Keywords/tags associated with the solution."),
826
+ strings: l.array(yt).describe("Localized strings/labels used by apps (dashboards, forms, etc.).")
827
+ }),
828
+ items: l.array(bt).describe("ArcGIS items that belong to the solution (apps, maps, layers, etc.)."),
829
+ featureLayer: vt.describe("Primary feature layer item and its schema/layers/tables details.")
830
+ }), _t = l.object({
831
+ op: l.enum(["add", "remove", "replace", "move", "copy"]).describe("RFC 6902 operation type."),
832
+ path: l.string().describe("RFC 6901 JSON Pointer to the target location."),
833
+ value: l.string().nullable().describe(`JSON-encoded value to apply (required for add and replace). Must be null — not an empty string — for remove, move, and copy operations. Serialize as a JSON string, e.g. '\\"text\\"' for a string, '[\\"a\\",\\"b\\"]' for an array, or '{\\"name\\":\\"x\\"}' for an object.`),
834
+ from: l.string().nullable().describe("RFC 6901 JSON Pointer to the source location (required for move and copy). Must be null — not an empty string — for all other operations.")
835
+ }), wt = l.object({
836
+ response: l.string().describe("Conversational response describing the accepted design changes."),
837
+ patches: l.array(_t).describe("Minimal RFC 6902 patch operations needed to update the current design.")
838
+ }), St = l.object({
839
+ response: l.string().describe("Short, user-friendly explanation of why the requested update was not applied.")
840
+ }), It = l.object({
841
+ assistantResponse: l.string().describe("Natural-language response for the user."),
842
+ isValidUpdate: l.boolean().describe("True only when the request is in scope for supported design updates.")
843
+ }), At = l.object({
844
+ matchedTitles: l.array(l.string()).describe("Titles of solutions that match the user's request. Empty array if no strong match.")
845
+ }), Ct = l.object({
846
+ templateId: l.string().min(1).describe("Template id from the available template list."),
847
+ confidence: l.number().min(0).max(1).describe("Confidence score from 0 to 1 for this template match."),
848
+ templateDescription: l.string().min(1).describe("Short action‑oriented description of the template in the user's use case/workflow, starting with a verb.")
849
+ }), Tt = l.object({
850
+ assistantResponse: l.string().nullable().describe("Natural-language response for the user."),
851
+ isValidUseCase: l.boolean().describe("True only when the request is concrete, appropriate, and has at least one matching template."),
852
+ matchedTemplates: l.array(Ct).describe("Ordered list of matching templates, best match first. Empty when no valid match exists.")
853
+ }), Et = (s) => s.length ? s.map((e, t) => `${t + 1}. ${e}`).join(`
854
+ `) : "No validation errors were provided.", Lt = async (s) => {
855
+ const {
856
+ query: e,
857
+ validationIssues: t,
858
+ recentMessages: i,
859
+ fallbackMessage: n,
860
+ promptModules: a
861
+ } = s;
862
+ try {
863
+ return (await We({
864
+ promptText: await v(a, "explainValidationFailure"),
865
+ modelTier: "fast",
866
+ temperature: 0,
867
+ schema: St,
868
+ messages: i,
869
+ inputVariables: {
870
+ query: e,
871
+ validationIssueCount: String(t.length),
872
+ validationIssues: Et(t)
848
873
  }
874
+ })).response?.trim() || n;
875
+ } catch (o) {
876
+ return console.warn(
877
+ "Natural language response failed:",
878
+ { error: o }
879
+ ), n;
880
+ }
881
+ }, ee = (s) => s in F, kt = 5, $t = 0.8, Nt = 0.5, Ft = "Web Mapping Application", Dt = "Embeddings";
882
+ let R = null, V = null, P = null, B = null;
883
+ const Mt = "Build", L = /* @__PURE__ */ Object.assign({
884
+ "./prompts/assessBuildRequest.md": () => import("../../chunks/assessBuildRequest.js").then((s) => s.default),
885
+ "./prompts/assessUpdateRequest.md": () => import("../../chunks/assessUpdateRequest.js").then((s) => s.default),
886
+ "./prompts/description.md": () => import("../../chunks/description2.js").then((s) => s.default),
887
+ "./prompts/designSolution.md": () => import("../../chunks/designSolution.js").then((s) => s.default),
888
+ "./prompts/explainValidationFailure.md": () => import("../../chunks/explainValidationFailure.js").then((s) => s.default),
889
+ "./prompts/findExistingSolution.md": () => import("../../chunks/findExistingSolution.js").then((s) => s.default),
890
+ "./prompts/updateDesign.md": () => import("../../chunks/updateDesign.js").then((s) => s.default)
891
+ }), Rt = ft.builderMessages, m = (s) => s?.signal?.aborted ?? !1, f = (s, e, t) => U(e)?.builderMessages?.[s] ?? Rt[s], we = (s) => {
892
+ typeof window < "u" && window.dispatchEvent(new CustomEvent("arcgis-solution-design-update", {
893
+ detail: s
894
+ }));
895
+ }, Pt = async (s, e, t) => {
896
+ if (!s) return null;
897
+ const i = `type:"${Ft}" AND typekeywords:${Dt} AND group:${s}`;
898
+ return (await Y.searchItems({
899
+ q: i,
900
+ params: e ? { token: e } : void 0,
901
+ portal: t,
902
+ num: 1
903
+ }))?.results?.[0] ?? null;
904
+ };
905
+ async function Bt(s, e, t, i) {
906
+ try {
907
+ const n = await Pt(s, e, t);
908
+ if (!n || m(i))
909
+ return null;
910
+ const a = new Ye({ id: n.id });
911
+ return await a.load(), m(i) ? null : await a.fetchData("json");
912
+ } catch {
913
+ return null;
914
+ }
915
+ }
916
+ const qt = async (s, e, t) => {
917
+ if (!s) return [];
918
+ const i = `type:Solution AND typekeywords:${Mt} AND group:${s}`;
919
+ return (await Y.searchItems({
920
+ q: i,
921
+ params: e ? { token: e } : void 0,
922
+ portal: t,
923
+ num: 100
924
+ }))?.results ?? [];
925
+ }, Ut = async (s, e, t) => {
926
+ try {
927
+ const i = await Y.getItemData(s, {
928
+ params: e ? { token: e } : void 0,
929
+ portal: t
930
+ }), n = i?.buildSolution;
931
+ if (!n) return null;
932
+ const a = i?.params, o = a && typeof a == "object" && !Array.isArray(a) ? a : null;
933
+ return { buildSolution: n, params: o };
934
+ } catch {
935
+ return null;
936
+ }
937
+ }, k = (s, e = {}) => {
938
+ let t = s;
939
+ return "itemId" in e && (t = {
940
+ ...t,
941
+ solution: {
942
+ ...t.solution,
943
+ itemId: e.itemId ?? null
849
944
  }
850
- return t;
945
+ }), e.sourceBuildSolution != null && (t = {
946
+ ...t,
947
+ sourceBuildSolution: e.sourceBuildSolution
948
+ }), "params" in e && (t = {
949
+ ...t,
950
+ params: e.params ?? null
951
+ }), "templateId" in e && (t = {
952
+ ...t,
953
+ templateId: e.templateId ?? null
954
+ }), t;
955
+ }, Se = (s, e) => {
956
+ if (s == null || e == null)
957
+ return { ok: !1, error: "design or sourceBuildSolution is null/undefined" };
958
+ try {
959
+ const t = structuredClone(e);
960
+ return new pe({ buildSolution: t }).applyLlmTemplate(s), { ok: !0 };
961
+ } catch (t) {
962
+ return {
963
+ ok: !1,
964
+ error: t instanceof Error ? t.stack ?? t.message : String(t)
965
+ };
851
966
  }
852
- parseInline(e, t = this.renderer) {
853
- let n = "";
854
- for (let s = 0; s < e.length; s++) {
855
- let a = e[s];
856
- if (this.options.extensions?.renderers?.[a.type]) {
857
- let l = this.options.extensions.renderers[a.type].call({ parser: this }, a);
858
- if (l !== !1 || !["escape", "html", "link", "image", "strong", "em", "codespan", "br", "del", "text"].includes(a.type)) {
859
- n += l || "";
860
- continue;
861
- }
967
+ }, te = async (s) => {
968
+ if (V) {
969
+ Object.entries(V).forEach(([o, r]) => {
970
+ F[o] && (F[o].initialTemplate = r);
971
+ });
972
+ return;
973
+ }
974
+ const e = s?.configurable?.context?.token, t = Ae(s), i = Ce(s);
975
+ if (!t) {
976
+ console.warn("Solution Builder: missing primarySolutionsGroupId in appConfig; skipping live template hydration.");
977
+ return;
978
+ }
979
+ const n = await qt(t, e, i), a = {};
980
+ m(s) || (await Promise.all(n.map(async (o) => {
981
+ const r = o.properties?.templateInfo;
982
+ if (!r || typeof r != "object") return;
983
+ const c = r.id;
984
+ if (typeof c != "string" || a[c]) return;
985
+ const d = await Ut(o.id, e, i);
986
+ if (!d || m(s))
987
+ return;
988
+ const { buildSolution: h, params: y } = d;
989
+ if (typeof h == "object" && h !== null && "solution" in h) {
990
+ const g = h.solution;
991
+ g.thumbnailUrl = o.thumbnail ? `${i ?? "https://www.arcgis.com/sharing/rest"}/content/items/${o.id}/info/${o.thumbnail}` : void 0, g.item = o;
992
+ }
993
+ const u = {
994
+ ...r,
995
+ buildSolution: h
996
+ };
997
+ a[c] = k(
998
+ new pe(u).dumpToLlmTemplate(),
999
+ {
1000
+ itemId: o.id,
1001
+ sourceBuildSolution: structuredClone(h),
1002
+ params: y ? structuredClone(y) : null
862
1003
  }
863
- let r = a;
864
- switch (r.type) {
865
- case "escape": {
866
- n += t.text(r);
867
- break;
868
- }
869
- case "html": {
870
- n += t.html(r);
871
- break;
872
- }
873
- case "link": {
874
- n += t.link(r);
875
- break;
876
- }
877
- case "image": {
878
- n += t.image(r);
879
- break;
880
- }
881
- case "checkbox": {
882
- n += t.checkbox(r);
883
- break;
884
- }
885
- case "strong": {
886
- n += t.strong(r);
887
- break;
888
- }
889
- case "em": {
890
- n += t.em(r);
891
- break;
892
- }
893
- case "codespan": {
894
- n += t.codespan(r);
895
- break;
896
- }
897
- case "br": {
898
- n += t.br(r);
899
- break;
900
- }
901
- case "del": {
902
- n += t.del(r);
903
- break;
904
- }
905
- case "text": {
906
- n += t.text(r);
907
- break;
908
- }
909
- default: {
910
- let l = 'Token with "' + r.type + '" type was not found.';
911
- if (this.options.silent) return console.error(l), "";
912
- throw new Error(l);
913
- }
1004
+ ), F[c] = {
1005
+ ...r,
1006
+ initialTemplate: a[c]
1007
+ };
1008
+ })), V = a);
1009
+ }, Ie = (s) => {
1010
+ const e = s?.configurable?.context?.token;
1011
+ return typeof e != "string" || !e.trim() ? null : e;
1012
+ }, Ae = (s) => {
1013
+ const e = s?.configurable?.context?.configContext?.primarySolutionsGroupId;
1014
+ return typeof e != "string" || !e.trim() ? null : e;
1015
+ }, Ce = (s) => {
1016
+ const e = s?.configurable?.context?.configContext?.portalURL;
1017
+ if (!(typeof e != "string" || !e.trim()))
1018
+ return `${e.replace(/\/+$/, "")}/sharing/rest`;
1019
+ }, Ot = async (s) => {
1020
+ await Promise.all([
1021
+ Ee(s),
1022
+ te(s)
1023
+ ]);
1024
+ }, Te = async (s) => {
1025
+ const e = Ie(s);
1026
+ (!P || e && e !== B) && (B = e ?? B, P = Ot(s).catch((i) => {
1027
+ throw P = null, B = null, i;
1028
+ })), await P;
1029
+ };
1030
+ async function Ee(s) {
1031
+ if (R) return R;
1032
+ const e = Ae(s);
1033
+ if (!e)
1034
+ return console.warn("Solution Builder: missing primarySolutionsGroupId in appConfig; skipping embeddings load."), null;
1035
+ const t = Ce(s), i = s?.configurable?.context?.configContext?.portalURL;
1036
+ if (await new Xe(i ? { url: i } : void 0).load(), m(s))
1037
+ return null;
1038
+ const a = Ie(s) ?? void 0, o = await Bt(e, a, t, s);
1039
+ return m(s) ? null : o ? (R = o.items, R) : null;
1040
+ }
1041
+ const zt = () => Object.entries(F).map(([s, e]) => `ID: ${s}
1042
+ Label: ${e.label}
1043
+ Description: ${e.description}`).join(`
1044
+
1045
+ `), jt = (s) => {
1046
+ const e = s?.configurable?.context?.solutionDesignJson;
1047
+ if (typeof e != "string" || !e.trim())
1048
+ return null;
1049
+ try {
1050
+ const t = JSON.parse(e), i = k(
1051
+ { response: "", ...t },
1052
+ { itemId: t?.solution?.itemId ?? null }
1053
+ ), n = Z.safeParse(i);
1054
+ if (!n.success)
1055
+ return null;
1056
+ const { response: a, ...o } = n.data, r = t.templateId, c = typeof r == "string" && ee(r) ? r : null;
1057
+ return k(
1058
+ o,
1059
+ {
1060
+ sourceBuildSolution: t.sourceBuildSolution,
1061
+ templateId: c,
1062
+ params: t.params ?? null
914
1063
  }
915
- }
916
- return n;
917
- }
918
- }, q = class {
919
- options;
920
- block;
921
- constructor(i) {
922
- this.options = i || I;
923
- }
924
- static passThroughHooks = /* @__PURE__ */ new Set(["preprocess", "postprocess", "processAllTokens", "emStrongMask"]);
925
- static passThroughHooksRespectAsync = /* @__PURE__ */ new Set(["preprocess", "postprocess", "processAllTokens"]);
926
- preprocess(i) {
927
- return i;
928
- }
929
- postprocess(i) {
930
- return i;
931
- }
932
- processAllTokens(i) {
933
- return i;
934
- }
935
- emStrongMask(i) {
936
- return i;
1064
+ );
1065
+ } catch {
1066
+ return null;
937
1067
  }
938
- provideLexer() {
939
- return this.block ? v.lex : v.lexInline;
940
- }
941
- provideParser() {
942
- return this.block ? y.parse : y.parseInline;
943
- }
944
- }, yt = class {
945
- defaults = W();
946
- options = this.setOptions;
947
- parse = this.parseMarkdown(!0);
948
- parseInline = this.parseMarkdown(!1);
949
- Parser = y;
950
- Renderer = U;
951
- TextRenderer = se;
952
- Lexer = v;
953
- Tokenizer = D;
954
- Hooks = q;
955
- constructor(...i) {
956
- this.use(...i);
957
- }
958
- walkTokens(i, e) {
959
- let t = [];
960
- for (let n of i) switch (t = t.concat(e.call(this, n)), n.type) {
961
- case "table": {
962
- let s = n;
963
- for (let a of s.header) t = t.concat(this.walkTokens(a.tokens, e));
964
- for (let a of s.rows) for (let r of a) t = t.concat(this.walkTokens(r.tokens, e));
965
- break;
966
- }
967
- case "list": {
968
- let s = n;
969
- t = t.concat(this.walkTokens(s.items, e));
970
- break;
1068
+ }, Gt = b.Root({
1069
+ ...X(),
1070
+ /** Optional human-readable template description retained for UI use. */
1071
+ templateDescription: b({
1072
+ reducer: (s, e) => typeof e == "string" || e === null ? e : s ?? null,
1073
+ default: () => null
1074
+ }),
1075
+ /** Current editable design payload being refined across turns. */
1076
+ currentDesign: b({
1077
+ reducer: (s = null, e) => e === void 0 ? s : e ?? null,
1078
+ default: () => null
1079
+ }),
1080
+ /** Initial request assessment produced by the intake prompt. */
1081
+ assessment: b({
1082
+ reducer: (s = null, e) => e === void 0 ? s : e ?? null,
1083
+ default: () => null
1084
+ }),
1085
+ /** Template selected automatically or by human-in-the-loop choice. */
1086
+ selectedTemplate: b({
1087
+ reducer: (s = null, e) => e === void 0 ? s : e ?? null,
1088
+ default: () => null
1089
+ }),
1090
+ /** Update request assessment produced when an active design exists. */
1091
+ updateAssessment: b({
1092
+ reducer: (s = null, e) => e === void 0 ? s : e ?? null,
1093
+ default: () => null
1094
+ }),
1095
+ /** Existing solution matches surfaced before building a new solution. */
1096
+ existingMatches: b({
1097
+ reducer: (s = [], e) => e === void 0 ? s : e ?? [],
1098
+ default: () => []
1099
+ }),
1100
+ /** User decision for whether to continue building after existing matches are shown. */
1101
+ continueBuilding: b({
1102
+ reducer: (s = null, e) => e === void 0 ? s : e ?? null,
1103
+ default: () => null
1104
+ })
1105
+ }), Jt = (s, e) => {
1106
+ if (m(e))
1107
+ return {};
1108
+ const t = jt(e), i = t?.templateId ?? null, n = {};
1109
+ return JSON.stringify(s.currentDesign) !== JSON.stringify(t) && (n.currentDesign = t), i && s.selectedTemplate !== i && (n.selectedTemplate = i), n;
1110
+ }, Ht = async (s, e) => {
1111
+ if (m(e))
1112
+ return {};
1113
+ await w({ text: f("understandingRequest", e) }, e), await Te(e);
1114
+ const t = s.agentExecutionContext.userRequest, i = zt(), n = s.agentExecutionContext.messages.slice(-11), a = await $({
1115
+ promptText: await v(L, "assessBuildRequest"),
1116
+ modelTier: "advanced",
1117
+ temperature: 0,
1118
+ schema: Tt,
1119
+ messages: n,
1120
+ inputVariables: { query: t, availableTemplates: i }
1121
+ }), o = a.matchedTemplates.filter(
1122
+ (u) => ee(u.templateId)
1123
+ ), r = {
1124
+ ...a,
1125
+ matchedTemplates: o
1126
+ }, [c, d] = o, y = !!c && c.confidence >= $t && (d === void 0 || c.confidence - d.confidence >= Nt) ? c.templateId : null;
1127
+ return {
1128
+ assessment: r,
1129
+ selectedTemplate: y,
1130
+ existingMatches: [],
1131
+ continueBuilding: null
1132
+ };
1133
+ }, Vt = (s) => {
1134
+ const e = s.assessment?.assistantResponse ?? "";
1135
+ return {
1136
+ outputMessage: e,
1137
+ summary: e,
1138
+ status: "success"
1139
+ };
1140
+ }, Qt = async (s, e) => {
1141
+ if (m(e))
1142
+ return {};
1143
+ const { currentDesign: t } = s;
1144
+ if (!t)
1145
+ return {
1146
+ updateAssessment: {
1147
+ assistantResponse: "",
1148
+ isValidUpdate: !0
971
1149
  }
972
- default: {
973
- let s = n;
974
- this.defaults.extensions?.childTokens?.[s.type] ? this.defaults.extensions.childTokens[s.type].forEach((a) => {
975
- let r = s[a].flat(1 / 0);
976
- t = t.concat(this.walkTokens(r, e));
977
- }) : s.tokens && (t = t.concat(this.walkTokens(s.tokens, e)));
1150
+ };
1151
+ await w({ text: f("understandingRequest", e) }, e);
1152
+ const i = s.agentExecutionContext.userRequest, n = s.agentExecutionContext.messages.slice(-11);
1153
+ return {
1154
+ updateAssessment: await $({
1155
+ promptText: await v(L, "assessUpdateRequest"),
1156
+ modelTier: "advanced",
1157
+ temperature: 0,
1158
+ schema: It,
1159
+ messages: n,
1160
+ inputVariables: {
1161
+ currentDesign: JSON.stringify(me(t)),
1162
+ query: i
978
1163
  }
1164
+ })
1165
+ };
1166
+ }, Kt = (s, e) => {
1167
+ const t = s.updateAssessment?.assistantResponse ?? f("applyChangeFailed", e);
1168
+ return {
1169
+ outputMessage: t,
1170
+ summary: t,
1171
+ status: "success"
1172
+ };
1173
+ }, Wt = (s, e) => {
1174
+ if (m(e))
1175
+ return {};
1176
+ const { hitlResponse: t } = e.configurable, i = "selectTemplate", n = s.assessment?.matchedTemplates.filter(
1177
+ (d) => ee(d.templateId)
1178
+ ) ?? [], a = n.map((d) => `${d.templateDescription}`);
1179
+ if (t?.agentId !== "solutionBuilder" || t.id !== i) {
1180
+ const d = {
1181
+ agentId: "solutionBuilder",
1182
+ id: i,
1183
+ kind: "singleSelection",
1184
+ message: f("selectTemplatePrompt", e),
1185
+ metadata: [...a]
1186
+ };
1187
+ throw new de(d);
1188
+ }
1189
+ const o = String(t.payload ?? ""), r = a.findIndex((d) => d === o);
1190
+ return {
1191
+ selectedTemplate: (r >= 0 ? n[r] : void 0)?.templateId ?? n[0]?.templateId ?? null
1192
+ };
1193
+ }, Xt = async (s, e) => {
1194
+ if (m(e))
1195
+ return {};
1196
+ await w({ text: f("searchingExistingSolutions", e) }, e);
1197
+ const t = s.agentExecutionContext.userRequest, i = ht(s.agentExecutionContext.messages) || t, n = await Ee(e);
1198
+ if (m(e))
1199
+ return {};
1200
+ if (!n)
1201
+ return console.warn("Solutions Search: failed to load solution embeddings cache; skipping search."), { existingMatches: [] };
1202
+ if (!n.length)
1203
+ return { existingMatches: [] };
1204
+ const [a] = await ze([i]);
1205
+ if (m(e))
1206
+ return {};
1207
+ const o = n.map((u) => ({
1208
+ solution: u,
1209
+ score: je(a, u.embedding)
1210
+ }));
1211
+ o.sort((u, g) => g.score - u.score);
1212
+ const r = o.slice(0, kt);
1213
+ if (!r.length)
1214
+ return { existingMatches: [] };
1215
+ const c = r.map(({ solution: u }) => `${u.title}
1216
+ Snippet: ${u.snippet}
1217
+ Description: ${u.description}`).join(`
1218
+
1219
+ `), d = s.agentExecutionContext.messages.slice(-11);
1220
+ return { existingMatches: (await $({
1221
+ promptText: await v(L, "findExistingSolution"),
1222
+ modelTier: "fast",
1223
+ temperature: 0,
1224
+ schema: At,
1225
+ messages: d,
1226
+ inputVariables: { query: t, candidates: c }
1227
+ })).matchedTitles.map((u) => r.find(({ solution: g }) => g.title === u)).filter((u) => u !== void 0) };
1228
+ }, Yt = (s, e) => {
1229
+ if (m(e))
1230
+ return {};
1231
+ const { existingMatches: t } = s, { hitlResponse: i } = e.configurable, n = `confirmExistingSolution:${t[0].solution.id}`;
1232
+ if (i?.agentId !== "solutionBuilder" || i.id !== n) {
1233
+ t.length === 1 ? ye(t[0].solution.id) : fe(t);
1234
+ const c = f("existingSolutionMatch", e), d = [
1235
+ f("continueBuildingYes", e),
1236
+ f("continueBuildingNo", e)
1237
+ ], h = {
1238
+ agentId: "solutionBuilder",
1239
+ id: n,
1240
+ kind: "singleSelection",
1241
+ message: c,
1242
+ metadata: d
1243
+ };
1244
+ throw new de(h);
1245
+ }
1246
+ const a = String(i.payload ?? "").trim(), o = f("continueBuildingNo", e);
1247
+ return { continueBuilding: a !== o };
1248
+ }, Zt = (s, e) => {
1249
+ const t = f("continueBuildingDeclined", e);
1250
+ return {
1251
+ outputMessage: t,
1252
+ summary: t,
1253
+ status: "success"
1254
+ };
1255
+ }, Le = async (s, e) => {
1256
+ if (m(e))
1257
+ return {};
1258
+ if (await Te(e), m(e))
1259
+ return {};
1260
+ const { currentDesign: t } = s, i = s.agentExecutionContext.userRequest;
1261
+ await w({ text: f("creatingDesign", e) }, e);
1262
+ let n = q(s.selectedTemplate);
1263
+ if (n?.initialTemplate || (await te(e), n = q(s.selectedTemplate)), m(e))
1264
+ return {};
1265
+ if (!n?.initialTemplate)
1266
+ throw new Error("No hydrated templates are available for solution design.");
1267
+ const a = k(
1268
+ t ?? n.initialTemplate,
1269
+ {
1270
+ itemId: (t ?? n.initialTemplate)?.solution?.itemId ?? null,
1271
+ sourceBuildSolution: t?.sourceBuildSolution ?? n.initialTemplate.sourceBuildSolution,
1272
+ params: t?.params ?? n.initialTemplate.params ?? null
979
1273
  }
980
- return t;
1274
+ ), o = s.agentExecutionContext.messages.slice(-11), r = await $({
1275
+ promptText: await v(L, "designSolution"),
1276
+ modelTier: "advanced",
1277
+ temperature: 0,
1278
+ schema: Z,
1279
+ messages: o,
1280
+ inputVariables: {
1281
+ currentDesign: JSON.stringify(he(a)),
1282
+ templateInstructions: n.instructions,
1283
+ query: i
1284
+ }
1285
+ });
1286
+ if (await w({ text: " of design solution 1" }, e), m(e))
1287
+ return {};
1288
+ const { response: c, featureLayer: d, ...h } = r, y = ge(
1289
+ d,
1290
+ a.featureLayer
1291
+ ), u = k(
1292
+ { ...h, featureLayer: y },
1293
+ {
1294
+ itemId: a?.solution?.itemId,
1295
+ sourceBuildSolution: a.sourceBuildSolution,
1296
+ templateId: s.selectedTemplate ?? null,
1297
+ params: a.params ?? null
1298
+ }
1299
+ ), g = new x(u, n.initialTemplate);
1300
+ if (!g.isValid)
1301
+ return console.warn(
1302
+ "[SolutionBuilder] designSolution validation failed:",
1303
+ { issues: g.issues, llmResponse: r }
1304
+ ), {
1305
+ outputMessage: f("createDesignFailed", e)
1306
+ };
1307
+ const S = u.sourceBuildSolution, N = Se(u, S);
1308
+ if (!N.ok) {
1309
+ console.warn(
1310
+ "[SolutionBuilder] designSolution Esri JSON conversion failed:",
1311
+ { error: N.error, llmResponse: r, design: u }
1312
+ );
1313
+ const C = f("createDesignFailed", e);
1314
+ return {
1315
+ outputMessage: C,
1316
+ summary: C,
1317
+ status: "success"
1318
+ };
981
1319
  }
982
- use(...i) {
983
- let e = this.defaults.extensions || { renderers: {}, childTokens: {} };
984
- return i.forEach((t) => {
985
- let n = { ...t };
986
- if (n.async = this.defaults.async || n.async || !1, t.extensions && (t.extensions.forEach((s) => {
987
- if (!s.name) throw new Error("extension name required");
988
- if ("renderer" in s) {
989
- let a = e.renderers[s.name];
990
- a ? e.renderers[s.name] = function(...r) {
991
- let l = s.renderer.apply(this, r);
992
- return l === !1 && (l = a.apply(this, r)), l;
993
- } : e.renderers[s.name] = s.renderer;
994
- }
995
- if ("tokenizer" in s) {
996
- if (!s.level || s.level !== "block" && s.level !== "inline") throw new Error("extension level must be 'block' or 'inline'");
997
- let a = e[s.level];
998
- a ? a.unshift(s.tokenizer) : e[s.level] = [s.tokenizer], s.start && (s.level === "block" ? e.startBlock ? e.startBlock.push(s.start) : e.startBlock = [s.start] : s.level === "inline" && (e.startInline ? e.startInline.push(s.start) : e.startInline = [s.start]));
999
- }
1000
- "childTokens" in s && s.childTokens && (e.childTokens[s.name] = s.childTokens);
1001
- }), n.extensions = e), t.renderer) {
1002
- let s = this.defaults.renderer || new U(this.defaults);
1003
- for (let a in t.renderer) {
1004
- if (!(a in s)) throw new Error(`renderer '${a}' does not exist`);
1005
- if (["options", "parser"].includes(a)) continue;
1006
- let r = a, l = t.renderer[r], o = s[r];
1007
- s[r] = (...h) => {
1008
- let c = l.apply(s, h);
1009
- return c === !1 && (c = o.apply(s, h)), c || "";
1010
- };
1011
- }
1012
- n.renderer = s;
1013
- }
1014
- if (t.tokenizer) {
1015
- let s = this.defaults.tokenizer || new D(this.defaults);
1016
- for (let a in t.tokenizer) {
1017
- if (!(a in s)) throw new Error(`tokenizer '${a}' does not exist`);
1018
- if (["options", "rules", "lexer"].includes(a)) continue;
1019
- let r = a, l = t.tokenizer[r], o = s[r];
1020
- s[r] = (...h) => {
1021
- let c = l.apply(s, h);
1022
- return c === !1 && (c = o.apply(s, h)), c;
1023
- };
1024
- }
1025
- n.tokenizer = s;
1320
+ return m(e) ? {} : (we(u), {
1321
+ outputMessage: c,
1322
+ summary: c,
1323
+ status: "success",
1324
+ currentDesign: u
1325
+ });
1326
+ }, es = async (s, e) => {
1327
+ if (m(e))
1328
+ return {};
1329
+ const { currentDesign: t } = s;
1330
+ if (!t)
1331
+ return Le(s, e);
1332
+ const i = s.agentExecutionContext.userRequest, n = s.agentExecutionContext.messages.slice(-11);
1333
+ await w({ text: f("updatingDesign", e) }, e);
1334
+ let a;
1335
+ try {
1336
+ a = await $({
1337
+ promptText: await v(L, "updateDesign"),
1338
+ modelTier: "advanced",
1339
+ temperature: 0,
1340
+ schema: wt,
1341
+ messages: n,
1342
+ inputVariables: {
1343
+ currentDesign: JSON.stringify(me(t)),
1344
+ query: i
1026
1345
  }
1027
- if (t.hooks) {
1028
- let s = this.defaults.hooks || new q();
1029
- for (let a in t.hooks) {
1030
- if (!(a in s)) throw new Error(`hook '${a}' does not exist`);
1031
- if (["options", "block"].includes(a)) continue;
1032
- let r = a, l = t.hooks[r], o = s[r];
1033
- q.passThroughHooks.has(a) ? s[r] = (h) => {
1034
- if (this.defaults.async && q.passThroughHooksRespectAsync.has(a)) return (async () => {
1035
- let p = await l.call(s, h);
1036
- return o.call(s, p);
1037
- })();
1038
- let c = l.call(s, h);
1039
- return o.call(s, c);
1040
- } : s[r] = (...h) => {
1041
- if (this.defaults.async) return (async () => {
1042
- let p = await l.apply(s, h);
1043
- return p === !1 && (p = await o.apply(s, h)), p;
1044
- })();
1045
- let c = l.apply(s, h);
1046
- return c === !1 && (c = o.apply(s, h)), c;
1047
- };
1346
+ });
1347
+ } catch (p) {
1348
+ console.warn("[SolutionBuilder] updateDesign structured prompt failed:", p);
1349
+ const _ = f("applyChangeFailed", e);
1350
+ return {
1351
+ outputMessage: _,
1352
+ summary: _,
1353
+ status: "success"
1354
+ };
1355
+ }
1356
+ const { response: o, patches: r } = a;
1357
+ if (!r || r.length === 0)
1358
+ return {
1359
+ outputMessage: o,
1360
+ summary: o,
1361
+ status: "success"
1362
+ };
1363
+ const c = (p) => {
1364
+ try {
1365
+ return JSON.parse(p);
1366
+ } catch {
1367
+ const _ = p.replace(/[\u0000-\u001F]/g, (oe) => {
1368
+ switch (oe) {
1369
+ case "\b":
1370
+ return "\\b";
1371
+ case "\f":
1372
+ return "\\f";
1373
+ case `
1374
+ `:
1375
+ return "\\n";
1376
+ case "\r":
1377
+ return "\\r";
1378
+ case " ":
1379
+ return "\\t";
1380
+ default:
1381
+ return "\\u" + oe.charCodeAt(0).toString(16).padStart(4, "0");
1048
1382
  }
1049
- n.hooks = s;
1050
- }
1051
- if (t.walkTokens) {
1052
- let s = this.defaults.walkTokens, a = t.walkTokens;
1053
- n.walkTokens = function(r) {
1054
- let l = [];
1055
- return l.push(a.call(this, r)), s && (l = l.concat(s.call(this, r))), l;
1056
- };
1057
- }
1058
- this.defaults = { ...this.defaults, ...n };
1059
- }), this;
1060
- }
1061
- setOptions(i) {
1062
- return this.defaults = { ...this.defaults, ...i }, this;
1063
- }
1064
- lexer(i, e) {
1065
- return v.lex(i, e ?? this.defaults);
1066
- }
1067
- parser(i, e) {
1068
- return y.parse(i, e ?? this.defaults);
1069
- }
1070
- parseMarkdown(i) {
1071
- return (e, t) => {
1072
- let n = { ...t }, s = { ...this.defaults, ...n }, a = this.onError(!!s.silent, !!s.async);
1073
- if (this.defaults.async === !0 && n.async === !1) return a(new Error("marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise."));
1074
- if (typeof e > "u" || e === null) return a(new Error("marked(): input parameter is undefined or null"));
1075
- if (typeof e != "string") return a(new Error("marked(): input parameter is of type " + Object.prototype.toString.call(e) + ", string expected"));
1076
- if (s.hooks && (s.hooks.options = s, s.hooks.block = i), s.async) return (async () => {
1077
- let r = s.hooks ? await s.hooks.preprocess(e) : e, l = await (s.hooks ? await s.hooks.provideLexer() : i ? v.lex : v.lexInline)(r, s), o = s.hooks ? await s.hooks.processAllTokens(l) : l;
1078
- s.walkTokens && await Promise.all(this.walkTokens(o, s.walkTokens));
1079
- let h = await (s.hooks ? await s.hooks.provideParser() : i ? y.parse : y.parseInline)(o, s);
1080
- return s.hooks ? await s.hooks.postprocess(h) : h;
1081
- })().catch(a);
1383
+ });
1082
1384
  try {
1083
- s.hooks && (e = s.hooks.preprocess(e));
1084
- let r = (s.hooks ? s.hooks.provideLexer() : i ? v.lex : v.lexInline)(e, s);
1085
- s.hooks && (r = s.hooks.processAllTokens(r)), s.walkTokens && this.walkTokens(r, s.walkTokens);
1086
- let l = (s.hooks ? s.hooks.provideParser() : i ? y.parse : y.parseInline)(r, s);
1087
- return s.hooks && (l = s.hooks.postprocess(l)), l;
1088
- } catch (r) {
1089
- return a(r);
1385
+ return JSON.parse(_);
1386
+ } catch {
1387
+ return p;
1090
1388
  }
1389
+ }
1390
+ }, h = [...r.map((p) => ({
1391
+ op: p.op,
1392
+ path: p.path.replace(/\/+$/, ""),
1393
+ ...p.value != null && p.value !== "" ? { value: c(p.value) } : {},
1394
+ ...p.from != null && p.from !== "" ? { from: p.from } : {}
1395
+ }))].sort((p, _) => p.op !== "remove" || _.op !== "remove" ? 0 : _.path.localeCompare(p.path, void 0, { numeric: !0 })), y = structuredClone(
1396
+ he(t)
1397
+ );
1398
+ try {
1399
+ Je(y, h, !0);
1400
+ } catch (p) {
1401
+ console.warn(
1402
+ "[SolutionBuilder] updateDesign JSON patch failed:",
1403
+ { error: p, llmResponse: a, patches: h, patchTarget: y }
1404
+ );
1405
+ const _ = f("applyChangeFailed", e);
1406
+ return {
1407
+ outputMessage: _,
1408
+ summary: _,
1409
+ status: "success"
1091
1410
  };
1092
1411
  }
1093
- onError(i, e) {
1094
- return (t) => {
1095
- if (t.message += `
1096
- Please report this to https://github.com/markedjs/marked.`, i) {
1097
- let n = "<p>An error occurred:</p><pre>" + S(t.message + "", !0) + "</pre>";
1098
- return e ? Promise.resolve(n) : n;
1099
- }
1100
- if (e) return Promise.reject(t);
1101
- throw t;
1412
+ const u = k(
1413
+ { response: "", ...y },
1414
+ { itemId: t.solution?.itemId ?? null }
1415
+ ), g = Z.safeParse(u);
1416
+ if (!g.success) {
1417
+ console.warn(
1418
+ "[SolutionBuilder] updateDesign schema validation failed:",
1419
+ { errors: g.error.issues, llmResponse: a, patchedDesign: u }
1420
+ );
1421
+ const p = f("applyChangeFailed", e);
1422
+ return {
1423
+ outputMessage: p,
1424
+ summary: p,
1425
+ status: "success"
1102
1426
  };
1103
1427
  }
1104
- }, R = new yt();
1105
- function f(i, e) {
1106
- return R.parse(i, e);
1107
- }
1108
- f.options = f.setOptions = function(i) {
1109
- return R.setOptions(i), f.defaults = R.defaults, de(f.defaults), f;
1110
- };
1111
- f.getDefaults = W;
1112
- f.defaults = I;
1113
- f.use = function(...i) {
1114
- return R.use(...i), f.defaults = R.defaults, de(f.defaults), f;
1115
- };
1116
- f.walkTokens = function(i, e) {
1117
- return R.walkTokens(i, e);
1118
- };
1119
- f.parseInline = R.parseInline;
1120
- f.Parser = y;
1121
- f.parser = y.parse;
1122
- f.Renderer = U;
1123
- f.TextRenderer = se;
1124
- f.Lexer = v;
1125
- f.lexer = v.lex;
1126
- f.Tokenizer = D;
1127
- f.Hooks = q;
1128
- f.parse = f;
1129
- f.options;
1130
- f.setOptions;
1131
- f.use;
1132
- f.walkTokens;
1133
- f.parseInline;
1134
- y.parse;
1135
- v.lex;
1136
- class St {
1137
- constructor(e = "") {
1138
- this._text = "", this._displayedText = "", this._pendingText = "", this._text = e, this._pendingText = e;
1139
- }
1140
- /** Set or update the text that will be type written
1141
- * @param text the new or updated string to type write
1142
- */
1143
- setText(e) {
1144
- this._text = e, this._displayedText && e.includes(this._displayedText) ? this._pendingText = e.substring(this._displayedText.length) : (this._pendingText = this._text, this._displayedText = "");
1145
- }
1146
- /** Gets the current text that is written out */
1147
- getText() {
1148
- return this._displayedText;
1149
- }
1150
- /** Clear all the text and state */
1151
- clearText() {
1152
- this._displayedText = "", this._text = "", this._pendingText = "";
1153
- }
1154
- /**
1155
- * Updates the display text on what will be shown to the users.
1156
- */
1157
- updateDisplayText() {
1158
- if (this._pendingText.length > 0) {
1159
- const e = this._pendingText[0];
1160
- if (e === "[" || e === "<" || e === "!") {
1161
- const t = this._matchMarkdownPattern(
1162
- this._displayedText + this._pendingText,
1163
- this._displayedText.length
1164
- );
1165
- if (t) {
1166
- const n = t.end - t.start, s = this._pendingText.substring(0, n);
1167
- this._displayedText += s, this._pendingText = this._pendingText.substring(n);
1168
- } else
1169
- this._displayedText += e, this._pendingText = this._pendingText.substring(1);
1170
- } else
1171
- this._displayedText += e, this._pendingText = this._pendingText.substring(1);
1428
+ const { response: S, featureLayer: N, ...C } = g.data, z = ge(
1429
+ N,
1430
+ t.featureLayer
1431
+ ), I = k(
1432
+ { ...C, featureLayer: z },
1433
+ {
1434
+ itemId: t.solution?.itemId,
1435
+ sourceBuildSolution: t.sourceBuildSolution,
1436
+ templateId: t.templateId ?? s.selectedTemplate ?? null,
1437
+ params: t.params ?? null
1172
1438
  }
1439
+ );
1440
+ let D = q(s.selectedTemplate);
1441
+ if (D?.initialTemplate || (await te(e), D = q(s.selectedTemplate)), m(e))
1442
+ return {};
1443
+ if (!D?.initialTemplate)
1444
+ throw new Error("No hydrated templates are available for solution design.");
1445
+ const j = new x(I, D.initialTemplate, !1);
1446
+ if (!j.isValid) {
1447
+ console.warn(
1448
+ "[SolutionBuilder] updateDesign validation failed:",
1449
+ { issues: j.issues, llmResponse: a, patchedDesign: I }
1450
+ );
1451
+ const p = await Lt({
1452
+ query: i,
1453
+ validationIssues: j.issues,
1454
+ recentMessages: n,
1455
+ fallbackMessage: f("applyChangeFailed", e),
1456
+ promptModules: L
1457
+ });
1458
+ return {
1459
+ outputMessage: p,
1460
+ summary: p,
1461
+ status: "success"
1462
+ };
1173
1463
  }
1174
- /**
1175
- * Check the string for any markdown pattern and the length of that pattern.
1176
- * @param text the string to check markdown
1177
- * @param position The current position in the text to check
1178
- * @returns the start and end positions.
1179
- */
1180
- _matchMarkdownPattern(e, t) {
1181
- const n = [
1182
- /<sup>\[\[[^\]]+\]\]\([^)]+\)<\/sup>/,
1183
- // <sup>[[1]](url)</sup>
1184
- /\[\[[^\]]+\]\]\([^)]+\)/,
1185
- // [[1]](url)
1186
- /\[[^\]]+\]\([^)]+\)/,
1187
- // [text](url)
1188
- /!\[[^\]]*\]\([^)]+\)/
1189
- // ![alt](url)
1190
- ], s = e.substring(t);
1191
- for (const a of n) {
1192
- const r = s.match(a);
1193
- if (r && r.index === 0)
1194
- return {
1195
- start: t,
1196
- end: t + r[0].length
1197
- };
1198
- }
1199
- return null;
1464
+ const $e = I.sourceBuildSolution, ne = Se(I, $e);
1465
+ if (!ne.ok) {
1466
+ console.warn(
1467
+ "[SolutionBuilder] updateDesign Esri JSON conversion failed:",
1468
+ { error: ne.error, llmResponse: a, design: I }
1469
+ );
1470
+ const p = f("applyChangeFailed", e);
1471
+ return {
1472
+ outputMessage: p,
1473
+ summary: p,
1474
+ status: "success"
1475
+ };
1200
1476
  }
1201
- }
1202
- const $t = "https://links.esri.com/solutions/agol-organizational-account", Tt = "https://links.esri.com/solutions/configure-assistants";
1203
- class Rt extends Re {
1477
+ return m(e) ? {} : (we(I), {
1478
+ outputMessage: o,
1479
+ summary: o,
1480
+ status: "success",
1481
+ currentDesign: I
1482
+ });
1483
+ }, ts = (s) => s.currentDesign !== null ? "assessUpdateRequest" : "assessBuildRequest", ss = (s) => !s.updateAssessment || !s.updateAssessment.isValidUpdate ? "invalidUpdateExit" : "updateDesign", is = (s) => !s.assessment || !s.assessment.isValidUseCase ? "invalidBuildExit" : !s.selectedTemplate && s.assessment.matchedTemplates.length > 1 ? "selectTemplateHIL" : "findExistingSolutions", ns = (s) => s.existingMatches.length > 0 ? "confirmContinueBuildingHIL" : "designSolution", os = (s) => s.continueBuilding === !1 ? "declineContinueBuildingExit" : "designSolution", as = () => new K(Gt).addNode("syncCurrentDesignFromContext", Jt).addNode("assessBuildRequest", Ht).addNode("assessUpdateRequest", Qt).addNode("invalidBuildExit", Vt).addNode("invalidUpdateExit", Kt).addNode("selectTemplateHIL", Wt).addNode("findExistingSolutions", Xt).addNode("confirmContinueBuildingHIL", Yt).addNode("declineContinueBuildingExit", Zt).addNode("designSolution", Le).addNode("updateDesign", es).addEdge(W, "syncCurrentDesignFromContext").addConditionalEdges("syncCurrentDesignFromContext", ts, {
1484
+ assessUpdateRequest: "assessUpdateRequest",
1485
+ assessBuildRequest: "assessBuildRequest"
1486
+ }).addConditionalEdges("assessUpdateRequest", ss, {
1487
+ invalidUpdateExit: "invalidUpdateExit",
1488
+ updateDesign: "updateDesign"
1489
+ }).addConditionalEdges("assessBuildRequest", is, {
1490
+ invalidBuildExit: "invalidBuildExit",
1491
+ selectTemplateHIL: "selectTemplateHIL",
1492
+ findExistingSolutions: "findExistingSolutions"
1493
+ }).addEdge("invalidBuildExit", A).addEdge("invalidUpdateExit", A).addEdge("selectTemplateHIL", "findExistingSolutions").addConditionalEdges("findExistingSolutions", ns, {
1494
+ confirmContinueBuildingHIL: "confirmContinueBuildingHIL",
1495
+ designSolution: "designSolution"
1496
+ }).addConditionalEdges("confirmContinueBuildingHIL", os, {
1497
+ declineContinueBuildingExit: "declineContinueBuildingExit",
1498
+ designSolution: "designSolution"
1499
+ }).addEdge("declineContinueBuildingExit", A).addEdge("designSolution", A).addEdge("updateDesign", A);
1500
+ await v(L, "description");
1501
+ const rs = E.object({
1502
+ tool: E.enum(["explorer", "builder", "other"]).describe("The selected tool based on the user’s intent using the conversation context."),
1503
+ confidence: E.number().min(0).max(1).describe("A confidence score (0.00–1.00)."),
1504
+ rationale: E.string().min(1).describe("A brief rationale for the tool choice (≤140 characters)")
1505
+ }), O = (s) => s?.signal?.aborted ?? !1, se = /* @__PURE__ */ Object.assign({
1506
+ "./prompts/assistantResponse.md": () => import("../../chunks/assistantResponse.js").then((s) => s.default),
1507
+ "./prompts/classifyIntent.md": () => import("../../chunks/classifyIntent.js").then((s) => s.default),
1508
+ "./prompts/description.md": () => import("../../chunks/description.js").then((s) => s.default)
1509
+ }), ls = (s) => {
1510
+ const e = s?.configurable?.context?.solutionDesignJson, t = s?.configurable?.context?.lastTurnAgent, i = t === "assistant" ? "other" : t;
1511
+ let n = !1;
1512
+ if (typeof e == "string" && e.trim())
1513
+ try {
1514
+ n = JSON.parse(e).solution != null;
1515
+ } catch {
1516
+ n = !1;
1517
+ }
1518
+ return { activeSolutionDesign: n, lastTool: i };
1519
+ }, ie = (s, e) => {
1520
+ const t = s?.configurable?.context?.setLastTurnAgent;
1521
+ typeof t == "function" && t(e);
1522
+ const i = new CustomEvent("assistantProcessing", {
1523
+ detail: { finished: !0, agent: e }
1524
+ });
1525
+ window.dispatchEvent(i);
1526
+ }, ke = b.Root({
1527
+ ...X(),
1528
+ selectedTool: b({
1529
+ reducer: (s, e) => e ?? null,
1530
+ default: () => null
1531
+ }),
1532
+ intentRationale: b({
1533
+ reducer: (s, e) => e ?? null,
1534
+ default: () => null
1535
+ })
1536
+ }), cs = async (s, e) => {
1537
+ if (O(e))
1538
+ return {};
1539
+ const t = U(e);
1540
+ await w(
1541
+ { text: t?.builderMessages.understandingRequest },
1542
+ e
1543
+ );
1544
+ const i = s.agentExecutionContext.userRequest, n = s.agentExecutionContext.messages.slice(-11), { activeSolutionDesign: a, lastTool: o } = ls(e), r = await v(se, "classifyIntent"), c = await $({
1545
+ promptText: r,
1546
+ modelTier: "advanced",
1547
+ temperature: 0,
1548
+ schema: rs,
1549
+ messages: n,
1550
+ inputVariables: { query: i, activeSolutionDesign: a, lastTool: o }
1551
+ });
1552
+ return {
1553
+ selectedTool: c.tool,
1554
+ intentRationale: c.rationale
1555
+ };
1556
+ }, us = async (s, e) => {
1557
+ if (O(e))
1558
+ return {};
1559
+ const i = await lt().compile().invoke(s, e);
1560
+ return ie(e, "explorer"), i;
1561
+ }, ds = async (s, e) => {
1562
+ if (O(e))
1563
+ return {};
1564
+ const i = await as().compile().invoke(s, e);
1565
+ return ie(e, "builder"), i;
1566
+ }, ps = async (s, e) => {
1567
+ if (O(e))
1568
+ return {};
1569
+ const t = U(e), i = s.agentExecutionContext.userRequest;
1570
+ await w(
1571
+ { text: t?.executingSolutionsAssistantAgent },
1572
+ e
1573
+ );
1574
+ const n = await v(se, "assistantResponse"), a = s.agentExecutionContext.messages.slice(-11), o = await Ge({
1575
+ promptText: n,
1576
+ modelTier: "advanced",
1577
+ temperature: 0,
1578
+ messages: a,
1579
+ inputVariables: { query: i }
1580
+ });
1581
+ return ie(e, "assistant"), {
1582
+ outputMessage: o,
1583
+ summary: o,
1584
+ status: "success"
1585
+ };
1586
+ }, ms = (s) => s.selectedTool ?? "other", hs = () => new K(ke).addNode("classifyIntent", cs).addNode("routeToExplorer", us).addNode("routeToBuilder", ds).addNode("assistantResponse", ps).addEdge(W, "classifyIntent").addConditionalEdges("classifyIntent", ms, {
1587
+ explorer: "routeToExplorer",
1588
+ builder: "routeToBuilder",
1589
+ other: "assistantResponse"
1590
+ }).addEdge("routeToExplorer", A).addEdge("routeToBuilder", A).addEdge("assistantResponse", A), gs = await v(se, "description"), fs = {
1591
+ id: "solutionsAssistant",
1592
+ name: "Solutions Assistant Agent",
1593
+ description: gs,
1594
+ createGraph: hs,
1595
+ workspace: ke
1596
+ }, ys = "https://links.esri.com/solutions/agol-organizational-account", bs = "https://links.esri.com/solutions/configure-assistants";
1597
+ class xs extends De {
1204
1598
  constructor() {
1205
- super(), this.serverRoot = "https://aiservices-beta.arcgis.com", this.open = !1, this.userFirstName = "", this.conversationStore = {
1206
- conversationId: null,
1207
- inquiryId: null,
1208
- ackSequenceNumber: null
1209
- }, this._currentResponse = "", this._isAutoScroll = !1, this._isLoading = !1, this._isLoadingText = "", this.messages = [], this._orgSettings = {
1599
+ super(), this.open = !1, this.userFirstName = "", this.builderVisible = !1, this.hasActiveBuilderDesign = !1, this._conversationId = void 0, this._lastTurnAgent = void 0, this._lastResponseAgent = void 0, this._orgSettings = {
1210
1600
  aiAssistantsEnabled: !1,
1211
1601
  blockBetaApps: !0,
1212
1602
  colocateCompute: !1
1213
- }, this._translations = Te({ name: "arcgis-solutions-assistant", blocking: !0 }), this._isTyping = !1, this._configContextConsumer = Ce({
1214
- context: ze,
1603
+ }, this._suggestedPrompts = [], this._hasInteracted = !1, this._isMobile = window.innerWidth <= 800, this._translations = Fe({ name: "arcgis-solutions-assistant", blocking: !0 }), this._builderWidth = 48, this._solutionDesignJson = '{ "solution": null }', this._isAssistantBusy = !1, this._isBuilderBusy = !1, this._preChatCheck = !1, this._showNewChatConfirm = !1, this._assistantRef = Ue(), this._configContextConsumer = le({
1604
+ context: Pe,
1215
1605
  subscribe: !0,
1216
1606
  callback: (e) => {
1217
- e?.userSession && !this.userFirstName && this._loadUserFirstName(), e?.authentication?.PortalSubset?.orgSettings && (this._orgSettings = e?.authentication?.PortalSubset?.orgSettings, this._getAIServiceUrl());
1607
+ e?.portalURL && (G.portalUrl = e.portalURL), e?.userSession && !this.userFirstName && this._loadUserFirstName(), e?.authentication?.PortalSubset?.orgSettings && (this._orgSettings = e?.authentication?.PortalSubset?.orgSettings);
1218
1608
  }
1219
- }), this.closeAssistant = Ie(), this._resetConversation = () => {
1220
- this.conversationStore.conversationId = null, this.conversationStore.inquiryId = null, this.conversationStore.ackSequenceNumber = null;
1221
- }, this._setMessageContainerRef = (e) => {
1222
- this._chatContainer = e;
1223
- }, this._setInputRef = (e) => {
1224
- this._inputRef = e, this._inputRef.addEventListener("keydown", (t) => {
1225
- t.key === "Enter" && !t.shiftKey && !this._isLoading && !this._isTyping && (t.preventDefault(), this._inputRef && (this.handleSendMessage(this._inputRef.value.trim()), this._inputRef.value = ""));
1226
- }), setTimeout(() => {
1227
- this._inputRef?.focus();
1228
- }, 100);
1229
- }, this._submitQuestion = (e) => {
1230
- this.handleSendMessage(e);
1609
+ }), this._builderDesignContextConsumer = le({
1610
+ context: Be,
1611
+ subscribe: !0,
1612
+ callback: (e) => {
1613
+ e?.design && (this._solutionDesignJson = JSON.stringify(e.design, null, 2));
1614
+ }
1615
+ }), this._handleResize = () => {
1616
+ this._isMobile = window.innerWidth <= 800;
1617
+ }, this._chatStartTime = null, this._responseMetadata = /* @__PURE__ */ new Map(), this._pendingResponseAgent = void 0, this._handleAssistantProcessingFinished = (e) => {
1618
+ const t = e;
1619
+ if (t.detail?.finished && this._chatStartTime !== null) {
1620
+ const i = t.detail.agent;
1621
+ this._lastResponseAgent = i, this._pendingResponseAgent = i;
1622
+ const n = qe(this._chatStartTime);
1623
+ this._telemetry?.logEvent({
1624
+ category: M.ASSISTANT,
1625
+ action: "Chat",
1626
+ dimensions: [i],
1627
+ metrics: [n]
1628
+ }), this._chatStartTime = null;
1629
+ }
1630
+ }, this.closeAssistant = ae(), this.assistantProcessing = ae(), this._handleAssistantLinkClick = (e) => {
1631
+ const t = e.composedPath().find((i) => i instanceof HTMLAnchorElement);
1632
+ if (t?.href)
1633
+ if (e.preventDefault(), t.target.indexOf("solutionId:") > -1) {
1634
+ const i = t.target.split("solutionId:")[1];
1635
+ this._emitItemIdFromAI(i);
1636
+ } else
1637
+ window.open(t.href, "_blank", "noopener,noreferrer");
1638
+ }, this._onSolutionDesignUpdate = (e) => {
1639
+ const i = e.detail;
1640
+ this._solutionDesignJson = i ? JSON.stringify(i, null, 2) : '{ "solution": null }';
1231
1641
  }, this._handleSignIn = () => {
1232
1642
  this._configContextConsumer.value?.authentication?.signIn("aiOpen");
1233
1643
  }, this._checkURLOpenParameter = () => {
1234
1644
  this.open = this._configContextConsumer.value?.authentication?.SignInParam === "aiOpen" || this.open;
1235
- }, this.listenOn(window, "submitQuestion", (e) => {
1236
- this._submitQuestion(e.detail);
1645
+ }, this.listenOn(window, "arcgisFeedback", (e) => {
1646
+ const t = e.detail, { agentPicked: i, taskAssigned: n, userMessage: a } = this._parseAgentPickedAndTask(t), o = this._responseMetadata.get(t.id), r = o?.agent ?? i ?? "", c = o?.userMessage ?? o?.userMessage ?? a ?? n ?? "";
1647
+ this._sendFeedback(t.content, c, t.feedback?.positive ? "Good" : t.feedback?.positive === !1 ? "Bad" : "N/A", r);
1648
+ }), this.listenOn(window, "clearAssistantConversation", () => {
1649
+ this._clearConversation();
1237
1650
  });
1238
1651
  }
1239
1652
  static {
1240
- this.properties = { serverRoot: 1, open: 5, userFirstName: 1, conversationStore: 16, _currentResponse: 16, _isAutoScroll: 16, _isLoading: 16, _isLoadingText: 16, messages: 16, _orgSettings: 16, _translations: 16, _isTyping: 16 };
1653
+ this.properties = { open: 5, userFirstName: 1, builderVisible: 5, hasActiveBuilderDesign: 5, _conversationId: 16, _lastTurnAgent: 16, _lastResponseAgent: 16, _orgSettings: 16, _suggestedPrompts: 16, _hasInteracted: 16, _isMobile: 16, _translations: 16, _builderWidth: 16, _solutionDesignJson: 16, _isAssistantBusy: 16, _isBuilderBusy: 16, _preChatCheck: 16, _showNewChatConfirm: 16 };
1241
1654
  }
1242
1655
  static {
1243
- this.styles = qe;
1656
+ this.styles = Ze;
1244
1657
  }
1245
1658
  get _telemetry() {
1246
1659
  return this._configContextConsumer.value?.telemetrySession;
1247
1660
  }
1248
- get solutionAIurl() {
1249
- return `${this.serverRoot}/skills/solution_deployment/chat`;
1661
+ connectedCallback() {
1662
+ super.connectedCallback(), window.addEventListener("arcgis-solution-design-update", this._onSolutionDesignUpdate), this.el.addEventListener("click", this._handleAssistantLinkClick), window.addEventListener("resize", this._handleResize), window.addEventListener("assistantProcessing", this._handleAssistantProcessingFinished), this._builderDesignContextConsumer;
1250
1663
  }
1251
- get docAIurl() {
1252
- return `${this.serverRoot}/skills/doc_ai_assistant/chat`;
1253
- }
1254
- async handleSendMessage(e) {
1255
- this._isLoading = !0;
1256
- let t = {
1257
- message: e,
1258
- context: {
1259
- debug: !1,
1260
- kind: "SolutionRequest"
1261
- }
1262
- };
1263
- if (this.conversationStore.conversationId !== null) {
1264
- t.conversationId = this.conversationStore.conversationId;
1265
- const n = {
1266
- author: "human",
1267
- conversationId: this.conversationStore.conversationId ? this.conversationStore.conversationId : "",
1268
- message: e,
1269
- render: this._renderSimpleTextMessage(e, "human", "", "Other")
1270
- };
1271
- this.messages = [...this.messages, n];
1272
- const s = await this.requestAIServer(t, this.solutionAIurl);
1273
- this.loopRequest(s, this.solutionAIurl);
1274
- } else {
1275
- const n = {
1276
- author: "human",
1277
- message: e,
1278
- render: this._renderSimpleTextMessage(e, "human", "", "Other")
1279
- };
1280
- this.messages = [...this.messages, n];
1281
- const s = await this.requestAIServer(t, this.solutionAIurl);
1282
- this.conversationStore.conversationId = s.conversationId, this.conversationStore.inquiryId = s.inquiryId, this.conversationStore.ackSequenceNumber = s.sequenceNumber, this.loopRequest(s, this.solutionAIurl);
1283
- }
1284
- }
1285
- async loopRequest(e, t) {
1286
- const n = Date.now();
1287
- let s, a = t;
1288
- this._isLoading = !0;
1289
- const r = document.createElement("div");
1290
- r.classList.add("response-message", "message-content");
1291
- let l = document.createElement("div");
1292
- l.classList.add("display-none");
1293
- const o = document.createElement("div");
1294
- o.classList.add("display-none");
1295
- const h = e.conversationId + Date.now(), c = this._renderResponseBlock(r, l, o, h), p = new St(this._currentResponse), u = {
1296
- author: "ai",
1297
- conversationId: e.conversationId,
1298
- message: e.message ?? "",
1299
- render: c
1300
- };
1301
- for (this.messages.push(u), this.requestUpdate(), this._isAutoScroll = !0; e.hasMore; ) {
1302
- await new Promise((_) => setTimeout(_, 500));
1303
- let x = {
1304
- conversationId: e.conversationId,
1305
- ackSequenceNumber: e.sequenceNumber,
1306
- inquiryId: e.inquiryId
1307
- };
1308
- if (e.context)
1309
- if (this.conversationStore.context = e.context, e.context.results && !e.context.intent)
1310
- for (const _ of e.context.results)
1311
- this._currentResponse = _.reply, this._currentResponse !== "" && (this._isLoading = !1, this._isTyping = !0, this._showCardById(h), this._startTypeWriter(p, this._currentResponse, r, l, o)), e = await this.requestAIServer(x, a);
1312
- else if (e.context.intent === "Solution question") {
1313
- s = e.context.intent;
1314
- const _ = {
1315
- message: e.message,
1316
- conversationId: x.conversationId,
1317
- context: {
1318
- kind: "DocAIAssistantRequest",
1319
- filters: {
1320
- products: "ArcGIS Solutions"
1321
- }
1322
- }
1323
- };
1324
- a = this.docAIurl, e = await this.requestAIServer(_, a);
1325
- } else
1326
- this._currentResponse = e.message ?? "", e.context.kind && e.context.kind.toLowerCase() === "ArcGISErrorAsContext".toLowerCase() && (this._currentResponse = this._translations.genericErrorMessage), this._currentResponse !== "" && (this._isLoading = !1, this._isTyping = !0, this._showCardById(h), this._startTypeWriter(p, this._currentResponse, r, l, o)), e = await this.requestAIServer(x, a);
1327
- else
1328
- e = await this.requestAIServer(x, a);
1329
- }
1330
- this._isLoading = !1;
1331
- const { context: g } = this.conversationStore, k = this.messages.length >= 2 ? this._getMostRecentQuestion() : "", w = typeof k == "string" ? "" : k?.message ?? "", E = Le(n), M = s || g?.intent || "Unknown";
1332
- if (this._telemetry?.logEvent({
1333
- category: Pe.ASSISTANT,
1334
- action: "Chat",
1335
- dimensions: [M],
1336
- metrics: [E]
1337
- }), g && g.intent)
1338
- switch (g.intent) {
1339
- case "Recommend solution": {
1340
- if (g.results) {
1341
- const x = g.results, _ = x.map(($) => `- ${$.title}`).join(`
1342
- `), C = this._renderSuggestedSolutions(x), z = this._renderFeedback(this._currentResponse + `
1343
- ` + _, w, this.conversationStore.conversationId, g.intent);
1344
- A(C, l), A(z, o);
1345
- } else
1346
- l.innerHTML = "";
1347
- this._scrollToBottom();
1348
- break;
1349
- }
1350
- default: {
1351
- const x = this._renderFeedback(this._currentResponse, w, this.conversationStore.conversationId, g.intent);
1352
- A(x, o), this._scrollToBottom();
1353
- break;
1354
- }
1355
- }
1356
- else {
1357
- if (g && g.results && !g.intent)
1358
- for (const x of g.results) {
1359
- const _ = this._renderSolutionsQuestionTable(x.ref, x.followupQuestions), C = this._renderFeedback(this._currentResponse, w, this.conversationStore.conversationId, "Solution question");
1360
- A(_, l), A(C, o);
1361
- }
1362
- else if (g && g.kind && g.kind.toLowerCase() === "ArcGISErrorAsContext".toLowerCase()) {
1363
- const x = this._renderFeedback(this._currentResponse, w, this.conversationStore.conversationId, "Error");
1364
- A(x, o);
1365
- }
1366
- this._scrollToBottom();
1367
- }
1368
- }
1369
- async requestAIServer(e, t) {
1370
- try {
1371
- const n = this._configContextConsumer.value?.userSession?.token ?? "", a = await (await fetch(t, {
1372
- method: "POST",
1373
- headers: {
1374
- "Content-Type": "application/json",
1375
- token: n
1376
- },
1377
- body: JSON.stringify(e)
1378
- })).json();
1379
- if (a)
1380
- return a;
1381
- throw new Error("No data returned");
1382
- } catch (n) {
1383
- throw new Error(`Request failed: ${n}`);
1384
- }
1385
- }
1386
- resetChat() {
1387
- const e = this.messages[this.messages.length - 1];
1388
- if (e.author !== "system" && e.conversationId !== "-1") {
1389
- this._resetConversation();
1390
- const t = {
1391
- author: "system",
1392
- conversationId: "-1",
1393
- message: this._translations.newConversationStarted,
1394
- render: this._renderSimpleTextMessage(this._translations.newConversationStarted, "system", "", "Other", "speech-bubble-plus")
1395
- };
1396
- this.messages = [...this.messages, t], this._inputRef && (this._inputRef.value = "");
1397
- }
1664
+ disconnectedCallback() {
1665
+ window.removeEventListener("arcgis-solution-design-update", this._onSolutionDesignUpdate), this.el.removeEventListener("click", this._handleAssistantLinkClick), window.removeEventListener("resize", this._handleResize), window.removeEventListener("assistantProcessing", this._handleAssistantProcessingFinished), super.disconnectedCallback();
1398
1666
  }
1399
1667
  loaded() {
1400
1668
  this._checkURLOpenParameter();
1401
- const e = this._chatContainer;
1402
- e && e.addEventListener("scroll", () => {
1403
- this._isAutoScroll = this._isAtBottom(e);
1404
- });
1669
+ }
1670
+ load() {
1671
+ G.applicationName = "Solutions", this._configContextConsumer.value?.portalURL && (G.portalUrl = this._configContextConsumer.value.portalURL);
1405
1672
  }
1406
1673
  firstUpdated(e) {
1407
1674
  this._loadUserFirstName();
1408
1675
  }
1409
1676
  willUpdate(e) {
1410
- if (this._configContextConsumer.value?.userSession?.token && this._configContextConsumer.value?.authentication?.CanUseAI && this.messages.length === 0 && this._translations.defaultStartUpMessage) {
1411
- const t = this._translations.defaultStartUpMessage.replace("{{name}}", this.userFirstName), n = Object.values(this._translations.defaultFollowUpQuestions), s = this._renderSolutionQuestionFollowup(n);
1412
- this.messages = [
1413
- {
1414
- author: "ai",
1415
- conversationId: "",
1416
- message: t,
1417
- render: this._renderSimpleTextMessage(t, "ai", "", "Other", void 0, s, "margin-top-0")
1418
- }
1419
- ];
1420
- }
1421
- (e.has("_isLoading") || e.has("_isTyping")) && this.renderRoot.querySelectorAll(".assistant-followup-chip").forEach((n) => {
1422
- const s = this._isLoading || this._isTyping;
1423
- n.disabled = s, n.tabIndex = s ? -1 : 0;
1424
- });
1425
- }
1426
- updated(e) {
1427
- (e.size || this._isLoading) && this._scrollToBottom();
1428
- }
1429
- _renderFeedback(e, t, n, s) {
1430
- const a = Date.now();
1431
- return m`
1432
- <div>
1433
- <calcite-button
1434
- appearance='transparent'
1435
- class='height-32-flex-auto'
1436
- id='good-${a}'
1437
- icon-start='thumbs-up'
1438
- label='position feedback'
1439
- kind='neutral'
1440
- @click=${() => {
1441
- this._sendFeedback(e, t, "Good", n, s);
1442
- }}
1443
- >
1444
- </calcite-button>
1445
- <calcite-tooltip placement='bottom' reference-element='good-${a}'>
1446
- <span>${this._translations.tooltips.likeButton}</span>
1447
- </calcite-tooltip>
1448
-
1449
- <calcite-button
1450
- appearance='transparent'
1451
- class='height-32-flex-auto'
1452
- id='bad-${a}'
1453
- icon-start='thumbs-down'
1454
- label='position feedback'
1455
- kind='neutral'
1456
- @click=${() => {
1457
- this._sendFeedback(e, t, "Bad", n, s);
1458
- }}
1459
- >
1460
- </calcite-button>
1461
- <calcite-tooltip placement='bottom' reference-element='bad-${a}'>
1462
- <span>${this._translations.tooltips.dislikeButton}</span>
1463
- </calcite-tooltip>
1464
-
1465
- <calcite-button
1466
- appearance='transparent'
1467
- class='height-32-flex-auto'
1468
- id='copy-${a}'
1469
- icon-start='copy'
1470
- label='position feedback'
1471
- kind='neutral'
1472
- @click=${(r) => {
1473
- this._copyResponseToClipboard(e, r);
1474
- }}
1475
- >
1476
- </calcite-button>
1477
- <calcite-tooltip placement='bottom' reference-element='copy-${a}'>
1478
- <span>${this._translations.tooltips.copyButton}</span>
1479
- </calcite-tooltip>
1480
- </div>
1481
- `;
1482
- }
1483
- _renderSolutionQuestionReferences(e) {
1484
- return m`
1485
- ${e.map((t) => m`
1486
- <div class='message-content-pad'>
1487
- <a href=${t.url} target='_blank'>
1488
- ${t.title}
1489
- </a>
1490
- </div>
1491
- `)}
1492
- `;
1493
- }
1494
- _renderSolutionQuestionFollowup(e) {
1495
- return m`
1496
- ${e.map((t) => m`
1497
- <calcite-chip
1498
- class='chip-content cursor-pointer assistant-followup-chip'
1499
- kind='brand'
1500
- label=${t}
1501
- tabindex='0'
1502
- @click=${(n) => {
1503
- n.currentTarget.disabled || this._submitFollowupQuestion(t);
1504
- }}
1505
- @keydown=${(n) => {
1506
- n.currentTarget.disabled || Z(n, () => this._submitFollowupQuestion(t));
1507
- }}
1508
- >
1509
- ${t}
1510
- </calcite-chip>
1511
- `)}
1512
- `;
1513
- }
1514
- _renderSolutionsQuestionTable(e, t) {
1515
- const n = this._renderSolutionQuestionReferences(e), s = this._renderSolutionQuestionFollowup(t);
1516
- return m`
1517
- <div slot='description' class='message-content'>
1518
- <div style='display: flex; justify-content: flex-start;'>
1519
- <calcite-button
1520
- appearance='outline'
1521
- icon-end='chevron-down'
1522
- icon-start='link'
1523
- @click=${(a) => {
1524
- const r = a.currentTarget, l = r.parentElement.nextElementSibling;
1525
- l.classList.toggle("collapsed"), r.setAttribute("icon-end", l.classList.contains("collapsed") ? "chevron-down" : "chevron-up");
1526
- }}
1527
- >
1528
- ${e.length}
1529
- ${e.length === 1 ? this._translations.solutionsDocReference : this._translations.solutionsDocReferences}
1530
- </calcite-button>
1531
- </div>
1532
-
1533
- <div class='references-container collapsed'>
1534
- ${n}
1535
- </div>
1536
- </div>
1537
-
1538
- <div class='padding-top-10'>
1539
- ${s}
1540
- </div>
1541
- `;
1542
- }
1543
- _renderSolutionCard(e) {
1544
- return m`
1545
- <a
1546
- class='solution-card'
1547
- id='${e.id}'
1548
- tabindex='0'
1549
- @click=${() => this._emitItemIdFromAI(e.id)}
1550
- @keydown=${(t) => {
1551
- Z(t, () => this._emitItemIdFromAI(e.id));
1552
- }}
1553
- >
1554
- <calcite-card thumbnail-position='inline-start'>
1555
- <div slot='thumbnail'>
1556
- <img src='${e.thumbnail}' alt='Thumbnail' />
1557
- <calcite-chip icon='launch' label='View solution'>
1558
- ${this._translations.viewSolutionInApp}
1559
- </calcite-chip>
1560
- </div>
1561
-
1562
- <h3 slot='heading'><b>${e.title}</b></h3>
1563
-
1564
- <span slot='description' class='solution-snippet'>${e.snippet}</span>
1565
- </calcite-card>
1566
- </a>
1567
- `;
1568
- }
1569
- _renderResponseBlock(e, t, n, s) {
1570
- return m`<calcite-card id=${s ?? ie} class="system-message display-none">${e}${t}${n}</calcite-card>`;
1571
- }
1572
- _renderSimpleTextMessage(e, t, n, s, a, r, l) {
1573
- const o = this.messages.length >= 2 ? this._getMostRecentQuestion() : "", h = typeof o == "string" ? "" : o?.message ?? "";
1574
- return t === "system" ? m`<div class="message-content message-content-alignment">${a && m`<calcite-icon .icon=${a}></calcite-icon>` || ""}${e}</div>` : m`<calcite-card class=${re(t === "human" ? "user-message" : "system-message")}><div class=${re(l ? `${l} message-content` : "message-content")}>${ae(e)}${r}${t === "ai" && n !== "" && this._renderFeedback(e, h, n, s) || ""}</div></calcite-card>`;
1575
- }
1576
- _renderSuggestedSolutions(e) {
1577
- const t = e.map((n) => this._renderSolutionCard(n));
1578
- return m`
1579
- <div class='message-content'>
1580
- ${t}
1581
- </div>
1582
- `;
1677
+ e.has("open") && this.open && window.dispatchEvent(new CustomEvent("openAssistant")), this._configContextConsumer.value?.authentication && this._configContextConsumer.value?.userSession?.token && (this._preChatCheck || (ve(this._configContextConsumer.value?.authentication.Portal, this._configContextConsumer.value?.userSession?.token, this._configContextConsumer.value?.locale ?? "en"), this._preChatCheck = !0)), this._configContextConsumer.value?.userSession?.token && this._configContextConsumer.value?.authentication?.CanUseAI;
1583
1678
  }
1584
1679
  _renderNoSign() {
1585
- return m`<calcite-notice open scale=m icon=effects kind=info><div slot=message>${this._translations.signInMessage}</div><calcite-link @click=${this._handleSignIn} slot=link title=${this._translations.signInMessage ?? ie} class="padding-top-10">${this._translations.signIn}</calcite-link></calcite-notice>`;
1680
+ return T`<calcite-notice class="margin-lg" open scale=m icon=effects kind=info><div slot=message>${this._translations.signInMessage}</div><calcite-link @click=${this._handleSignIn} slot=link title=${this._translations.signInMessage ?? re} class="padding-top-10">${this._translations.signIn}</calcite-link></calcite-notice>`;
1586
1681
  }
1587
1682
  _renderNoPermission() {
1588
- return m`<calcite-notice open scale=m icon=effects kind=info><div slot=title>${this._translations.noPermissionTitle}</div><div slot=message class="padding-top-10">${ae(this._translations.noPermissionMessage.replace("{{orgUrl}}", $t).replace("{{configAI}}", Tt))}</div></calcite-notice>`;
1683
+ return T`<calcite-notice class="margin-lg" open scale=m icon=effects kind=info><div slot=title>${this._translations.noPermissionTitle}</div><div slot=message class="padding-top-10">${Re(this._translations.noPermissionMessage.replace("{{orgUrl}}", ys).replace("{{configAI}}", bs))}</div></calcite-notice>`;
1589
1684
  }
1590
1685
  render() {
1591
- return m`<calcite-dialog class="chat-panel" .open=${this.open} .heading=${this._translations.solutionAssistantTitle} placement=bottom-start @calciteDialogClose=${() => {
1592
- this.closeAssistant.emit(!0), this.open = !1;
1593
- }}><span class="chat-panel-heading" slot=header-content><span class="padding-right-8">${this._translations.solutionAssistantTitle}</span><calcite-chip .label=${this._translations.betaTag} .value=${this._translations.betaTag}>${this._translations.betaTag}</calcite-chip></span>${this.messages.length > 1 ? m`<calcite-button appearance=transparent class="icon-color-background" .disabled=${!!this._isLoading || this._isTyping} id=newChatButton icon-end=speech-bubble-plus kind=neutral label="New conversation" @click=${this.resetChat} scale=l slot=header-actions-end></calcite-button><calcite-tooltip placement=bottom reference-element=newChatButton><span>${this._translations.tooltips.newConversation}</span></calcite-tooltip>` : ""}<div class="chat-messages" ${ne(this._setMessageContainerRef)}>${this.messages.map((e) => e.render)}${this._isLoading && m`<calcite-card class="loader-message"><div class="message-content display-flex-row"><calcite-loader .label=${this._isLoadingText} inline scale=s></calcite-loader>${this._isLoadingText != "" && m`<div class="padding-left-10">${this._isLoadingText}</div>` || ""}</div></calcite-card>` || ""}${this._chatContainer && !this._isAtBottom(this._chatContainer) && !this._isAutoScroll && m`<calcite-fab icon=arrow-down @click=${() => {
1594
- this._isAutoScroll = !0, this._scrollToBottom(), setTimeout(() => {
1595
- this.requestUpdate();
1596
- }, 100);
1597
- }} scale=m></calcite-fab>` || ""}${this._configContextConsumer.value?.userSession?.token ? this._configContextConsumer.value?.authentication?.CanUseAI ? "" : this._renderNoPermission() : this._renderNoSign()}</div><div slot=footer class="width-100"><div class="chat-input"><calcite-text-area .disabled=${!this._configContextConsumer.value?.userSession?.token || !this._configContextConsumer.value?.authentication?.CanUseAI} resize=none rows=3 .placeholder=${this._translations.sendMessage} value ${ne(this._setInputRef)}></calcite-text-area><calcite-button appearance=outline .disabled=${!!this._isLoading || this._isTyping || !this._configContextConsumer.value?.userSession?.token || !this._configContextConsumer.value?.authentication?.CanUseAI} icon-start=send id=sendQuestion kind=neutral icon-flip-rtl=start @click=${() => {
1598
- this._inputRef && (this.handleSendMessage(this._inputRef.value.trim()), this._inputRef.value = "");
1599
- }} @keydown=${(e) => Z(e, () => {
1600
- this._inputRef && (this.handleSendMessage(this._inputRef.value.trim()), this._inputRef.value = "");
1601
- })}></calcite-button><calcite-tooltip placement=bottom reference-element=sendQuestion><span>${this._translations.tooltips.sendQuestion}</span></calcite-tooltip></div><div class="disclaimer-div padding-top-10" slot=footer><calcite-icon icon=information scale=s></calcite-icon>${this._translations.disclaimerMessage}<a href=https://links.esri.com/solutions/security-concern target=_blank>${this._translations.reportConcern}</a></div></div></calcite-dialog>`;
1602
- }
1603
- _scrollToBottom() {
1604
- this._chatContainer && this._isAutoScroll && setTimeout(() => {
1605
- this._chatContainer && (this._chatContainer.scrollTop = this._chatContainer.scrollHeight);
1606
- }, 100);
1607
- }
1608
- _emitItemIdFromAI(e) {
1609
- const t = new CustomEvent("solutionIDFromAssistant", {
1610
- detail: e,
1611
- bubbles: !0,
1612
- composed: !0
1613
- });
1614
- window.dispatchEvent(t);
1615
- }
1616
- _submitFollowupQuestion(e) {
1617
- const t = new CustomEvent("submitQuestion", {
1618
- detail: e,
1619
- bubbles: !0,
1620
- composed: !0
1621
- });
1622
- window.dispatchEvent(t);
1623
- }
1624
- _getMostRecentQuestion() {
1625
- return [...this.messages].reverse().find((e) => e.author === "human") || null;
1626
- }
1627
- _sendFeedback(e, t, n, s, a) {
1628
- const r = `https://survey123.arcgis.com/share/6e349a50b4504ca6b6107216d568db5f?field:_source=${encodeURIComponent("Solutions Assistant")}&field:user_evaluation=${encodeURIComponent(n)}&field:question=${encodeURIComponent(t)}&field:answer=${encodeURIComponent(e)}&field:context=${encodeURIComponent(JSON.stringify({ intent: a }))}&field:conversation_id=${encodeURIComponent(s)}&field:version=${encodeURIComponent("v1")}`;
1629
- window.open(r, "_blank");
1630
- }
1631
- _copyResponseToClipboard(e, t) {
1632
- navigator.clipboard.writeText(e);
1633
- const n = t.currentTarget;
1634
- n.iconStart = "check", setTimeout(() => {
1635
- n.iconStart = "copy";
1636
- }, 3e3);
1637
- }
1638
- _startTypeWriter(e, t, n, s, a) {
1639
- if (t.length > 0) {
1640
- e.setText(t);
1641
- const r = async () => {
1642
- e.updateDisplayText();
1643
- const l = e.getText(), o = await f.parse(l);
1644
- n.innerHTML = o.replace(/<a\s+/g, '<a target="_blank" '), l.length < this._currentResponse.length ? (this._scrollToBottom(), setTimeout(r, 5)) : (this._isTyping = !1, this._isAutoScroll = !1, s.classList.remove("display-none"), a.classList.remove("display-none"));
1645
- };
1646
- r();
1647
- }
1648
- }
1649
- _showCardById(e) {
1650
- const t = this.renderRoot.querySelector(`#${e}`);
1651
- t && t.classList.remove("display-none");
1652
- }
1653
- _isAtBottom(e) {
1654
- return e.scrollTop + e.clientHeight >= e.scrollHeight - 5;
1686
+ let e = this._suggestedPrompts.length > 0 ? this._suggestedPrompts : this._hasInteracted ? [] : Object.values(this._translations.defaultFollowUpQuestions);
1687
+ return this._suggestedPrompts.length > 0 ? e = this._suggestedPrompts : this._hasInteracted || (e = [...Object.values(this._translations.defaultFollowUpQuestions)]), T`<calcite-panel class="chat-panel"><div class="header-content" slot=header-content><span class="header-title">${this._translations.solutionAssistantTitle}</span></div>${this._configContextConsumer.value?.userSession?.token ? this._configContextConsumer.value?.authentication?.CanUseAI ? T`${!this._isMobile && T`<calcite-action id=solutionBuilderAction icon=pencil-square .text=${this._translations.tooltips.builder} text-enabled .indicator=${this.hasActiveBuilderDesign} .disabled=${!this.hasActiveBuilderDesign} .active=${this.builderVisible} selection-appearance=highlight @click=${() => {
1688
+ this._telemetry?.logEvent({
1689
+ category: M.ASSISTANT,
1690
+ action: "Toggle Builder Panel",
1691
+ dimensions: [this.builderVisible ? "Close" : "Open"]
1692
+ }), window.dispatchEvent(new CustomEvent("toggleSolutionBuilder"));
1693
+ }} scale=m slot=header-actions-end></calcite-action>` || ""}${!this._isMobile && T`<calcite-tooltip placement=bottom reference-element=solutionBuilderAction><span>${this._translations.tooltips.solutionBuilder}</span></calcite-tooltip>` || ""}<arcgis-assistant reference-element copy-enabled feedback-enabled heading description entry-message=${this._translations.defaultStartUpMessage ?? re} .suggestedPrompts=${e} @arcgisSubmit=${() => {
1694
+ this._suggestedPrompts = [], e = [], this._hasInteracted = !0, this._chatStartTime = Date.now(), this.assistantProcessing.emit(!0);
1695
+ }} @arcgisFeedback=${(t) => {
1696
+ t.detail && console.log("arcgis feedback: ", t.detail);
1697
+ }} @arcgisResponse=${() => {
1698
+ const t = this._pendingResponseAgent ?? this._lastResponseAgent;
1699
+ if (t) {
1700
+ const i = (n) => {
1701
+ if (this._captureResponseMetadata(t)) {
1702
+ this._pendingResponseAgent = void 0;
1703
+ return;
1704
+ }
1705
+ n < 3 && requestAnimationFrame(() => i(n + 1));
1706
+ };
1707
+ requestAnimationFrame(() => i(1));
1708
+ }
1709
+ this.assistantProcessing.emit(!1);
1710
+ }} ${Oe(this._assistantRef)}><calcite-button appearance=transparent id=newChatButton icon-start=speech-bubble-plus kind=neutral .label=${this._translations.tooltips.newChat} @click=${() => {
1711
+ this.hasActiveBuilderDesign ? this._showNewChatConfirm = !0 : (this._telemetry?.logEvent({
1712
+ category: M.ASSISTANT,
1713
+ action: "New Chat",
1714
+ dimensions: ["No Active Design"]
1715
+ }), this._clearConversation());
1716
+ }} round scale=m slot=entry-actions-start>${this._translations.tooltips.newChat}</calcite-button><arcgis-assistant-agent .agent=${fs} .context=${{
1717
+ token: this._configContextConsumer.value?.userSession?.token,
1718
+ configContext: this._configContextConsumer.value,
1719
+ convoId: this._conversationId,
1720
+ portal: this._configContextConsumer.value?.authentication.Portal,
1721
+ assistantRef: this._assistantRef,
1722
+ translations: this._translations,
1723
+ solutionDesignJson: this._solutionDesignJson,
1724
+ lastTurnAgent: this._lastTurnAgent,
1725
+ setConversationId: (t) => {
1726
+ this._conversationId = t;
1727
+ },
1728
+ setLastTurnAgent: (t) => {
1729
+ this._lastTurnAgent = t;
1730
+ },
1731
+ clearSuggestedPrompts: () => {
1732
+ this._suggestedPrompts = [];
1733
+ }
1734
+ }}></arcgis-assistant-agent></arcgis-assistant><div slot=footer class="disclaimer-div width-100"><calcite-chip class="beta-chip" appearance=solid kind=neutral .label=${this._translations.betaTag} scale=s>${this._translations.betaTag}</calcite-chip><span>${this._translations.disclaimerMessage} <a href=https://links.esri.com/solutions/security-concern rel="noopener noreferrer" target=_blank>${this._translations.reportConcern}</a></span></div>` : this._renderNoPermission() : this._renderNoSign()}${this._showNewChatConfirm && T`<calcite-dialog close-disabled escape-disabled .heading=${this._translations.newConversationConfirmTitle} modal open outside-close-disabled>${this._translations.builderMessages.discardMessage}<calcite-button appearance=outline @click=${() => {
1735
+ this._showNewChatConfirm = !1;
1736
+ }} slot=footer-end>${this._translations.cancel}</calcite-button><calcite-button appearance=solid kind=danger @click=${() => {
1737
+ this._telemetry?.logEvent({
1738
+ category: M.ASSISTANT,
1739
+ action: "New Chat",
1740
+ dimensions: ["With Design Discard"]
1741
+ }), this._showNewChatConfirm = !1, window.dispatchEvent(new CustomEvent("requestBuilderDiscard"));
1742
+ }} slot=footer-end>${this._translations.discard}</calcite-button></calcite-dialog>` || ""}<calcite-action icon=x id=closeAssistantButton .label=${this._translations.tooltips.close} @click=${() => {
1743
+ this.closeAssistant.emit(!0);
1744
+ }} slot=header-actions-end .text=${this._translations.tooltips.close}></calcite-action><calcite-tooltip placement=bottom reference-element=closeAssistantButton><span>${this._translations.tooltips.close}</span></calcite-tooltip></calcite-panel>`;
1745
+ }
1746
+ _clearConversation() {
1747
+ this._conversationId = void 0, this._lastTurnAgent = void 0, this._lastResponseAgent = void 0, this._pendingResponseAgent = void 0, this._suggestedPrompts = [], this._hasInteracted = !1, this._responseMetadata.clear(), this._assistantRef.value?.clearChatHistory();
1748
+ }
1749
+ _sendFeedback(e, t, i, n) {
1750
+ const a = `https://survey123.arcgis.com/share/6e349a50b4504ca6b6107216d568db5f?field:_source=${encodeURIComponent("Solutions Assistant")}&field:user_evaluation=${encodeURIComponent(i)}&field:question=${encodeURIComponent(t)}&field:answer=${encodeURIComponent(e)}&field:context=${encodeURIComponent(JSON.stringify({ agent: n }))}&field:version=${encodeURIComponent("v2")}`;
1751
+ window.open(a, "_blank");
1655
1752
  }
1656
1753
  async _loadUserFirstName() {
1657
1754
  try {
@@ -1663,14 +1760,44 @@ class Rt extends Re {
1663
1760
  } catch {
1664
1761
  }
1665
1762
  }
1666
- _getAIServiceUrl() {
1667
- if (this._configContextConsumer.value) {
1668
- const e = this._configContextConsumer.value;
1669
- e.authentication && e.authentication?.Portal && e.authentication?.Portal.helperServices.aiAssistantServices && (this.serverRoot = e.authentication?.Portal.helperServices.aiAssistantServices.url);
1763
+ _captureResponseMetadata(e) {
1764
+ const t = Array.from(this._assistantRef.value?.messages || []);
1765
+ for (let i = t.length - 1; i >= 0; i--) {
1766
+ const n = t[i];
1767
+ if (n.role === "assistant" && !this._responseMetadata.has(n.id)) {
1768
+ let a;
1769
+ for (let o = i - 1; o >= 0; o--) {
1770
+ const r = t[o];
1771
+ if (r.role === "user") {
1772
+ a = r.content;
1773
+ break;
1774
+ }
1775
+ }
1776
+ return this._responseMetadata.set(n.id, { agent: e, userMessage: a }), !0;
1777
+ }
1670
1778
  }
1779
+ return !1;
1780
+ }
1781
+ _parseAgentPickedAndTask(e) {
1782
+ const t = Array.from(this._assistantRef.value?.messages || []), i = e.log || [], o = [...t].sort((u, g) => g.id - u.id).find((u) => u.role === "user" && u.id <= e.id)?.content || null, r = i.find((u) => typeof u == "string" && u.includes("Agent picked:")) ?? null;
1783
+ if (!r)
1784
+ return { agentPicked: null, taskAssigned: null, userMessage: o };
1785
+ const c = /Agent picked:\s*(.*?)\s*(?:\\n|\r?\n)\s*Task Assigned:\s*([\s\S]*)$/i, d = r.match(c);
1786
+ if (!d)
1787
+ return { agentPicked: null, taskAssigned: null, userMessage: o };
1788
+ const h = d[1].trim(), y = d[2].trim();
1789
+ return { agentPicked: h, taskAssigned: y, userMessage: o };
1790
+ }
1791
+ _emitItemIdFromAI(e) {
1792
+ const t = new CustomEvent("solutionIDFromAssistant", {
1793
+ detail: e,
1794
+ bubbles: !0,
1795
+ composed: !0
1796
+ });
1797
+ window.dispatchEvent(t);
1671
1798
  }
1672
1799
  }
1673
- $e("arcgis-solutions-assistant", Rt);
1800
+ Ne("arcgis-solutions-assistant", xs);
1674
1801
  export {
1675
- Rt as ArcgisSolutionsAssistant
1802
+ xs as ArcgisSolutionsAssistant
1676
1803
  };