@esri/solutions-components 1.2.0-next.61 → 1.2.0-next.62
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cdn/{5NLTO3PR.js → 22JVEJ5Q.js} +2 -2
- package/dist/cdn/22NCE237.js +4 -0
- package/dist/cdn/{2P2YESFX.js → 22PAFNIS.js} +1 -1
- package/dist/cdn/{KEWPVUIZ.js → 236NYJJU.js} +2 -2
- package/dist/cdn/23YDHQTC.js +4 -0
- package/dist/cdn/253F2A32.js +4 -0
- package/dist/cdn/{2KUBOJR6.js → 2GSMLN5P.js} +2 -2
- package/dist/cdn/2HJI2XXY.js +99 -0
- package/dist/cdn/{5EWASS5Y.js → 2PLJEDPA.js} +2 -2
- package/dist/cdn/{Y5Z6SQWV.js → 2S7HZF7M.js} +2 -2
- package/dist/cdn/{MVZ36ZHD.js → 32CAHGJ5.js} +2 -2
- package/dist/cdn/37ABMKIT.js +4 -0
- package/dist/cdn/{FIMVJEAW.js → 3GS5C3NN.js} +2 -2
- package/dist/cdn/{KMGP5TOD.js → 3HWVOIZJ.js} +2 -2
- package/dist/cdn/{N2SUT7FJ.js → 3X3W65RV.js} +2 -2
- package/dist/cdn/{QK32UHKA.js → 43XNXLYA.js} +1 -1
- package/dist/cdn/45XVYTNF.js +4 -0
- package/dist/cdn/{GUBWX2WB.js → 4DEQWZVP.js} +2 -2
- package/dist/cdn/{PFYTP7QM.js → 4IVBY5EY.js} +2 -2
- package/dist/cdn/{HRISF5DG.js → 4LZ6CQRP.js} +2 -2
- package/dist/cdn/{IUBHGF2N.js → 4MMEN7ON.js} +1 -1
- package/dist/cdn/{GAOKI2BY.js → 4UIXAAHB.js} +2 -2
- package/dist/cdn/{E5KFUJOK.js → 4XIOAYVM.js} +2 -2
- package/dist/cdn/{YXOC3RVO.js → 4XVPHNUD.js} +2 -2
- package/dist/cdn/{IOEQU6RW.js → 52LPF2VM.js} +2 -2
- package/dist/cdn/{7F6WLIL6.js → 54CECDRX.js} +3 -3
- package/dist/cdn/{E2CGQDSH.js → 554VYCGW.js} +2 -2
- package/dist/cdn/{T5LGXZ6I.js → 57XJMKLA.js} +2 -2
- package/dist/cdn/{X3DGKM76.js → 5APMCLL6.js} +2 -2
- package/dist/cdn/{UHC2PSZO.js → 5D5B7JGO.js} +2 -2
- package/dist/cdn/{K4EMRK2P.js → 5FMIL22Q.js} +2 -2
- package/dist/cdn/{TXXIYMC6.js → 5KQ5Q26R.js} +2 -2
- package/dist/cdn/{DWLP7FVH.js → 5M6DOBGP.js} +2 -2
- package/dist/cdn/{7XBFX5YB.js → 5T5TBQ6T.js} +2 -2
- package/dist/cdn/{WOV556RO.js → 5TSB7GTX.js} +1 -1
- package/dist/cdn/{AMGDTZAY.js → 62DGAPEO.js} +2 -2
- package/dist/cdn/{GUVTOQ5L.js → 62ZCP7VD.js} +2 -2
- package/dist/cdn/{FOUBW7TI.js → 63OPMGEP.js} +1 -1
- package/dist/cdn/{5TCTFJWQ.js → 64QSZHAO.js} +2 -2
- package/dist/cdn/{IOSETLM7.js → 6CU2WRF6.js} +2 -2
- package/dist/cdn/{TJ3BCTHU.js → 6IIEGCHC.js} +1 -1
- package/dist/cdn/{KFYIXGQ4.js → 6NJA65DE.js} +2 -2
- package/dist/cdn/{74MUDU3T.js → 6PW6R74H.js} +2 -2
- package/dist/cdn/{O4MIVQW2.js → 726JATVV.js} +2 -2
- package/dist/cdn/7GUJY2LR.js +4 -0
- package/dist/cdn/{YRXDCRD5.js → 7IGDME5U.js} +2 -2
- package/dist/cdn/{QZUDTUL4.js → 7R442J7P.js} +2 -2
- package/dist/cdn/{G5RSCNV7.js → 7RMDHBJB.js} +2 -2
- package/dist/cdn/{33ZIAGPE.js → 7Y3KZNR2.js} +2 -2
- package/dist/cdn/{QRTITFJW.js → A24UTMFY.js} +2 -2
- package/dist/cdn/{2VC52E6A.js → A4UPSJJE.js} +2 -2
- package/dist/cdn/{Z5FJEEOQ.js → A6VN4V55.js} +2 -2
- package/dist/cdn/{BPGYGOGE.js → A7DAUWF2.js} +2 -2
- package/dist/cdn/{EC3ZB4EV.js → ADPIMKQF.js} +2 -2
- package/dist/cdn/{HKC4DOUE.js → AGA3QECA.js} +2 -2
- package/dist/cdn/{2XWNFKLG.js → AI4YPMS2.js} +2 -2
- package/dist/cdn/{VZEXIREU.js → AKIG2SOT.js} +2 -2
- package/dist/cdn/{V63MM3HQ.js → ALPA4YMT.js} +2 -2
- package/dist/cdn/{YAIF3EAU.js → AMPKI3ZS.js} +2 -2
- package/dist/cdn/{YWFNYLHW.js → APXUHBE6.js} +2 -2
- package/dist/cdn/{EC446DZP.js → ARVI4H2Q.js} +2 -2
- package/dist/cdn/{SPAE66AK.js → ASIRLW76.js} +2 -2
- package/dist/cdn/AVOVSN7I.js +4 -0
- package/dist/cdn/{W3S4KP2W.js → AYBCSY7S.js} +1 -1
- package/dist/cdn/{LSJUMURC.js → B325AODH.js} +2 -2
- package/dist/cdn/{2VREYY62.js → B34U5BOQ.js} +2 -2
- package/dist/cdn/{M5PBCFVC.js → B5HFPNLU.js} +2 -2
- package/dist/cdn/B6AW4EWR.js +4 -0
- package/dist/cdn/{O3PPPBNQ.js → B7SKJJP3.js} +2 -2
- package/dist/cdn/{N7VLWHNA.js → BAMGFCWQ.js} +2 -2
- package/dist/cdn/{NLQYJY3Y.js → BBVT6UMT.js} +1 -1
- package/dist/cdn/{AC6U7VHK.js → BIXSBFWC.js} +2 -2
- package/dist/cdn/{KKLCJ7G6.js → BK4RW3VQ.js} +2 -2
- package/dist/cdn/{ASMCIIQQ.js → BKAHIMJS.js} +2 -2
- package/dist/cdn/{JTUKW55P.js → BNJCN3PG.js} +2 -2
- package/dist/cdn/{E655IBST.js → BZDZ3UJ6.js} +2 -2
- package/dist/cdn/{72XFODRX.js → C5VOK3FJ.js} +2 -2
- package/dist/cdn/{CUYQTJFU.js → C6IB2AKM.js} +2 -2
- package/dist/cdn/{BTNDZYSA.js → C6JSF4KJ.js} +2 -2
- package/dist/cdn/{7ZJKMLGT.js → CACE6JPT.js} +2 -2
- package/dist/cdn/CGH4Y5QV.js +4 -0
- package/dist/cdn/{QSCOANTT.js → CNVT4KW2.js} +2 -2
- package/dist/cdn/{4U5HZVBY.js → CUCGCLEY.js} +2 -2
- package/dist/cdn/{4RSHHJ4Y.js → CUEWTRE6.js} +2 -2
- package/dist/cdn/{IVWWMUTU.js → D3FDZ2UO.js} +2 -2
- package/dist/cdn/{VZO4FNSJ.js → D7AKN3FL.js} +2 -2
- package/dist/cdn/{TTMLJD3R.js → DADOAOGK.js} +2 -2
- package/dist/cdn/{AACZXF33.js → DBJEWRVF.js} +2 -2
- package/dist/cdn/{C3ZPPW4E.js → DBQK233J.js} +2 -2
- package/dist/cdn/{SVBXPTEC.js → DHGDH6TY.js} +2 -2
- package/dist/cdn/{XTTVLQHV.js → DIUGFURH.js} +2 -2
- package/dist/cdn/{XNIWSIVJ.js → DJQJX7XN.js} +2 -2
- package/dist/cdn/{F2GOV2LM.js → DKENTSZS.js} +2 -2
- package/dist/cdn/{I5ICGT74.js → DMBX6WDE.js} +2 -2
- package/dist/cdn/{QBFLPL3H.js → DNQXEBRM.js} +1 -1
- package/dist/cdn/{PNA5TAPP.js → DOUCTK4Y.js} +2 -2
- package/dist/cdn/{SW6HTS4W.js → DQ56YCHP.js} +2 -2
- package/dist/cdn/{G275NPKZ.js → DY6XHIHX.js} +2 -2
- package/dist/cdn/{EJOQBJEG.js → DYTPNPZ6.js} +2 -2
- package/dist/cdn/{S63HTRIQ.js → E4CBAFDM.js} +2 -2
- package/dist/cdn/{LL2DC5FJ.js → E4GKMLY7.js} +1 -1
- package/dist/cdn/{W4AED5XB.js → E4MHP3D6.js} +2 -2
- package/dist/cdn/{K3WLDI57.js → E5TKEWBV.js} +2 -2
- package/dist/cdn/{TEDBS3IP.js → EAEVZCHH.js} +2 -2
- package/dist/cdn/{H72745YU.js → EARAW6MW.js} +2 -2
- package/dist/cdn/{RZBDTEMW.js → EGFNOBOA.js} +2 -2
- package/dist/cdn/{7S7C334Z.js → ERMUBMJN.js} +3 -3
- package/dist/cdn/{U2IPPMM4.js → ET3OO6ME.js} +2 -2
- package/dist/cdn/{PAWHH43E.js → EVD3PK7T.js} +2 -2
- package/dist/cdn/{Z2TSSAC6.js → EWAAPXCJ.js} +2 -2
- package/dist/cdn/{WOP4PDSB.js → EWXIH5IA.js} +1 -1
- package/dist/cdn/{QXR4PIXQ.js → EZEU4P7C.js} +2 -2
- package/dist/cdn/{7QIYL4NV.js → F3G2SMGH.js} +2 -2
- package/dist/cdn/{MSTVHU7I.js → F4O75RZP.js} +2 -2
- package/dist/cdn/{RD423PZS.js → F5JAPR6B.js} +2 -2
- package/dist/cdn/{CXYLIV2Q.js → FNQ2L2DM.js} +2 -2
- package/dist/cdn/{N4UPS6UJ.js → FP5D2SZA.js} +2 -2
- package/dist/cdn/{YJIB4Y3F.js → FPZEMX4B.js} +2 -2
- package/dist/cdn/{2Q2UIIGY.js → FTRDBT4T.js} +1 -1
- package/dist/cdn/{BTKJFFR4.js → FZJHK5CF.js} +2 -2
- package/dist/cdn/{72SOLDRJ.js → FZLUKWFG.js} +2 -2
- package/dist/cdn/{JJWGVOLU.js → G2AIEDH5.js} +2 -2
- package/dist/cdn/{NQFZ7BDB.js → G2WHRDRB.js} +2 -2
- package/dist/cdn/{WCFBD5RR.js → G5HIPUSK.js} +2 -2
- package/dist/cdn/{6MFGJWPB.js → GC4O5APO.js} +2 -2
- package/dist/cdn/{YUH4EAMP.js → GEIREK7Z.js} +2 -2
- package/dist/cdn/{SBN2L5NX.js → GJFCLYAN.js} +2 -2
- package/dist/cdn/{JV6V3HHU.js → GKEZI3PT.js} +2 -2
- package/dist/cdn/{F2DO4TJL.js → GNV3ZQMC.js} +2 -2
- package/dist/cdn/{OY6L3W2Y.js → GQ2XFFMS.js} +2 -2
- package/dist/cdn/{QCHTYOMH.js → GUNQEMBA.js} +2 -2
- package/dist/cdn/{VT6KVQP2.js → GVHW3DLW.js} +2 -2
- package/dist/cdn/{PRASXEUN.js → H2OY3T5X.js} +2 -2
- package/dist/cdn/{67W5QUHZ.js → H55LL3JW.js} +2 -2
- package/dist/cdn/{UHS75MT5.js → H5CJXI25.js} +2 -2
- package/dist/cdn/{FN4EUS3M.js → HDZR66W4.js} +2 -2
- package/dist/cdn/HFAKSY2S.js +4 -0
- package/dist/cdn/{NVSFHLTL.js → HGL4EETI.js} +2 -2
- package/dist/cdn/{IOAOXSTZ.js → HGORRSQH.js} +2 -2
- package/dist/cdn/{JXV6VWAC.js → HHTFAIXB.js} +2 -2
- package/dist/cdn/{KK2KCKMU.js → HMRGYX5P.js} +2 -2
- package/dist/cdn/{65Q2WFD6.js → HP5QJTNI.js} +2 -2
- package/dist/cdn/{253RNXBF.js → HUGBK2U5.js} +2 -2
- package/dist/cdn/{I2XGORZH.js → HV67SLIL.js} +2 -2
- package/dist/cdn/{T5DWKLEN.js → HZ6I4XIB.js} +2 -2
- package/dist/cdn/{SUOVHYZB.js → IAYBBBQT.js} +2 -2
- package/dist/cdn/{2HGM3S4H.js → IFZPP6SX.js} +2 -2
- package/dist/cdn/{VQSSXCIB.js → IHPRKZ6H.js} +2 -2
- package/dist/cdn/{ZA4WM6SU.js → IHYUEJMC.js} +2 -2
- package/dist/cdn/{MIARN2ON.js → IJQDG7IP.js} +1 -1
- package/dist/cdn/{2KXBQAJW.js → INSM2YOC.js} +1 -1
- package/dist/cdn/{ZWFGE4SE.js → IPK2F5FY.js} +2 -2
- package/dist/cdn/{UAFG6I6N.js → IULSZB52.js} +2 -2
- package/dist/cdn/{4RJSBWD3.js → IWA7DA43.js} +2 -2
- package/dist/cdn/{JZVTSNGA.js → IWCAJBZW.js} +2 -2
- package/dist/cdn/{JE5LYMSR.js → IXXHXXXL.js} +2 -2
- package/dist/cdn/J2GHMMFS.js +4 -0
- package/dist/cdn/{TB7KH2C7.js → J3UFVX3S.js} +2 -2
- package/dist/cdn/{QM6NH6VR.js → J63NAMCW.js} +2 -2
- package/dist/cdn/{EJBHWF54.js → JC7RDCAK.js} +1 -1
- package/dist/cdn/{HRAGHKCQ.js → JFF52LZP.js} +2 -2
- package/dist/cdn/{DJWFUXLO.js → JFSGS5OC.js} +2 -2
- package/dist/cdn/{BCQENLR7.js → JHLUVV4N.js} +2 -2
- package/dist/cdn/{XJN5V4KW.js → JIJ63VQQ.js} +2 -2
- package/dist/cdn/{SN5WNNQ5.js → JIWFE5LY.js} +2 -2
- package/dist/cdn/{GVFIYM23.js → JLLGVKZ3.js} +2 -2
- package/dist/cdn/{P4RFQ7SQ.js → JOKQH5HY.js} +2 -2
- package/dist/cdn/{4CHUCN2Z.js → JQUL7FKM.js} +2 -2
- package/dist/cdn/JRR6TOXN.js +4 -0
- package/dist/cdn/{OAYNPATX.js → JVKAKNFS.js} +2 -2
- package/dist/cdn/{L2PXDXZ3.js → K3AJABNT.js} +2 -2
- package/dist/cdn/K4AQW7JU.js +4 -0
- package/dist/cdn/{6OK4QGOG.js → K5PP5PS3.js} +2 -2
- package/dist/cdn/{5AEHA2S7.js → K5XSI7EQ.js} +2 -2
- package/dist/cdn/{YA7YZCDB.js → KB4RIKZC.js} +2 -2
- package/dist/cdn/{YEPUWT4K.js → KD3N253K.js} +2 -2
- package/dist/cdn/{2FCQYSQR.js → KDYFZUTB.js} +2 -2
- package/dist/cdn/{4BPWBJER.js → KG6ZXBS3.js} +2 -2
- package/dist/cdn/{BOV6NXRD.js → KK7FYLJQ.js} +2 -2
- package/dist/cdn/{4MQ7CZCO.js → KMZFQSAO.js} +2 -2
- package/dist/cdn/{LJ2SBS2G.js → KTC723NZ.js} +2 -2
- package/dist/cdn/{6KSUL7MO.js → KX5MJZBS.js} +2 -2
- package/dist/cdn/{DQKUJ4FE.js → KXKGISFI.js} +2 -2
- package/dist/cdn/{22HYHLHN.js → KXM4MDPA.js} +1 -1
- package/dist/cdn/L3X5KHYY.js +4 -0
- package/dist/cdn/{O2BPA4V7.js → L4WWTSVG.js} +1 -1
- package/dist/cdn/{Y6KQQXHW.js → L6TD54I2.js} +2 -2
- package/dist/cdn/{UYYTMD45.js → LEQFLWZJ.js} +2 -2
- package/dist/cdn/{FOJIKFHL.js → LF6GOWP7.js} +2 -2
- package/dist/cdn/{FFJAKABB.js → LFZ3JTH2.js} +2 -2
- package/dist/cdn/LYOK3PYB.js +4 -0
- package/dist/cdn/{P6W2BHCC.js → M3NVL5WO.js} +2 -2
- package/dist/cdn/M3S3NPNI.js +4 -0
- package/dist/cdn/{3UYOYGTS.js → MBZ2CBF3.js} +2 -2
- package/dist/cdn/{VADP3QUO.js → MCTC2Q7E.js} +4 -4
- package/dist/cdn/{QRGOX3X3.js → MGYSZD74.js} +2 -2
- package/dist/cdn/{QXN2LHOP.js → MIBMK3NI.js} +2 -2
- package/dist/cdn/MJXQ54VH.js +4 -0
- package/dist/cdn/{6LEKXV2O.js → MNKJFLXG.js} +2 -2
- package/dist/cdn/{VFPLAMGY.js → MPWXNEN5.js} +2 -2
- package/dist/cdn/{LVSUN7XL.js → MR2LK44L.js} +2 -2
- package/dist/cdn/{6GBG5NTN.js → MS5LO6DW.js} +2 -2
- package/dist/cdn/{F3UOUFRO.js → MUGJVLFI.js} +2 -2
- package/dist/cdn/{HQBUH6CP.js → MWZHS3D4.js} +2 -2
- package/dist/cdn/{BHUYCAVR.js → MX5P2FVF.js} +2 -2
- package/dist/cdn/{IYA6MXY3.js → MXLQXZPF.js} +2 -2
- package/dist/cdn/{PB54RSUS.js → N3WZI64X.js} +2 -2
- package/dist/cdn/{NTPTDDMB.js → N4UDOCET.js} +2 -2
- package/dist/cdn/{FFW3O2HK.js → N6VBAVNA.js} +2 -2
- package/dist/cdn/{UTSPKJHP.js → N7B4ODMG.js} +1 -1
- package/dist/cdn/{HAZAWSKY.js → NDRCKJQN.js} +1 -1
- package/dist/cdn/{JOGLCI7L.js → NGBAJJ6D.js} +2 -2
- package/dist/cdn/{ZOSVEKXW.js → NH3EQDO5.js} +1 -1
- package/dist/cdn/{T7MHQ327.js → NHCQYVJM.js} +2 -2
- package/dist/cdn/{TPWZ5VSB.js → NLYW2WAM.js} +2 -2
- package/dist/cdn/{BYDTC7F2.js → NO3GNFZC.js} +2 -2
- package/dist/cdn/{J3PAYUNS.js → NPJZFC4M.js} +2 -2
- package/dist/cdn/{FRIROEJG.js → NTD7CHVT.js} +2 -2
- package/dist/cdn/{M5ZKBFJG.js → NW7OFXKC.js} +2 -2
- package/dist/cdn/{FQ6ADWV5.js → O3P5NOM2.js} +2 -2
- package/dist/cdn/{I7PHK7YM.js → OA2S63FZ.js} +2 -2
- package/dist/cdn/{3VKMKDDC.js → OFWF4FLH.js} +1 -1
- package/dist/cdn/{ABEP4JVD.js → OOFFATCD.js} +2 -2
- package/dist/cdn/{N7Z27NQM.js → OPYKS7CX.js} +2 -2
- package/dist/cdn/{7FBZLDTR.js → OUAROGMB.js} +2 -2
- package/dist/cdn/{KVYBYT6S.js → OYOHY5WS.js} +2 -2
- package/dist/cdn/{HJY4KM2B.js → P2A5KXML.js} +2 -2
- package/dist/cdn/{2TJRLAO6.js → P3OVPYEQ.js} +2 -2
- package/dist/cdn/{UYHXKTBT.js → P6L7EUVQ.js} +2 -2
- package/dist/cdn/{WTKMR5UY.js → P6SI3ZH2.js} +1 -1
- package/dist/cdn/{S47HFMCK.js → PBORVLXJ.js} +2 -2
- package/dist/cdn/{LXHG5NDC.js → PHODD4Z6.js} +1 -1
- package/dist/cdn/{YIL2K7VK.js → PJQAZKQO.js} +2 -2
- package/dist/cdn/{3NINBJYJ.js → PTLVWRGF.js} +2 -2
- package/dist/cdn/{EHYJGYQT.js → PXKUIO5A.js} +1 -1
- package/dist/cdn/{IC4NXYTR.js → Q2WQ7T7X.js} +2 -2
- package/dist/cdn/{6MABMJPE.js → Q4CAV6BE.js} +1 -1
- package/dist/cdn/{Y3HJDMXS.js → QEYD7M5P.js} +2 -2
- package/dist/cdn/{MDXURHIQ.js → QL3LWZTF.js} +2 -2
- package/dist/cdn/{4MRVUTHZ.js → QP5YBLLN.js} +2 -2
- package/dist/cdn/{2BZFJQA6.js → QPKAXYA6.js} +2 -2
- package/dist/cdn/{NX7Z5SDJ.js → QQ272QFM.js} +2 -2
- package/dist/cdn/{TZHHGOBK.js → R3LWYP4G.js} +2 -2
- package/dist/cdn/{QI6JRQAM.js → R3P3XMLO.js} +2 -2
- package/dist/cdn/{HAP67XTT.js → R3RWAKZN.js} +2 -2
- package/dist/cdn/{R3KCYH5W.js → R3WMYDWR.js} +2 -2
- package/dist/cdn/{MUUINRCV.js → RFS4CVZ4.js} +2 -2
- package/dist/cdn/{3F27MINM.js → RID7XYT6.js} +2 -2
- package/dist/cdn/{FCETVVUT.js → RJMILIJO.js} +2 -2
- package/dist/cdn/{JW6FCTL4.js → RL5RZQ3Q.js} +2 -2
- package/dist/cdn/{LSJPBG7F.js → RLHTV7UW.js} +2 -2
- package/dist/cdn/{PSPTZCWK.js → RLPYO4Q4.js} +2 -2
- package/dist/cdn/{2OIIWDJB.js → RMIDYV3B.js} +2 -2
- package/dist/cdn/{HLU4ZUSE.js → RO3ES6UD.js} +2 -2
- package/dist/cdn/{Q4HNTDMI.js → RRTOIEHS.js} +2 -2
- package/dist/cdn/{35CUREMH.js → RTTRLG4C.js} +2 -2
- package/dist/cdn/{V3ILHNQJ.js → RUUYDJAI.js} +2 -2
- package/dist/cdn/{53QFE7JQ.js → RVOGF5GW.js} +2 -2
- package/dist/cdn/RXOWC3ZA.js +4 -0
- package/dist/cdn/{R5G5UBJR.js → RZ73JTAW.js} +2 -2
- package/dist/cdn/{3MHKWSCC.js → RZHJQZ7I.js} +1 -1
- package/dist/cdn/{AOGB6RX7.js → S3HCQON5.js} +2 -2
- package/dist/cdn/{QJ6VS55N.js → S4PR5QYT.js} +2 -2
- package/dist/cdn/{6OG7ILZC.js → S72CRXHN.js} +2 -2
- package/dist/cdn/{GI6HTTYJ.js → SAEYOHYV.js} +2 -2
- package/dist/cdn/{UVQX5FMQ.js → SDNXMJH4.js} +2 -2
- package/dist/cdn/{XILQXDEB.js → T56TNAF3.js} +1 -1
- package/dist/cdn/{ZFU6EH5A.js → TBMZRIU6.js} +2 -2
- package/dist/cdn/{4CO4QKQV.js → TBZMPKUE.js} +2 -2
- package/dist/cdn/{X32XVTAA.js → THL4LIOE.js} +2 -2
- package/dist/cdn/{4JMYQZGR.js → TNSW4TRC.js} +2 -2
- package/dist/cdn/{6PGQ7UDC.js → TUKMTW4X.js} +2 -2
- package/dist/cdn/TYKBDMUD.js +4 -0
- package/dist/cdn/{HF4QD63I.js → TYMBB7GT.js} +2 -2
- package/dist/cdn/{BOWNLLRC.js → TZWGA55B.js} +2 -2
- package/dist/cdn/{KGY42XQ4.js → U3653AAK.js} +2 -2
- package/dist/cdn/{P5SP66TM.js → U4TLYOFC.js} +2 -2
- package/dist/cdn/{GY3AMW7G.js → U5K2UMRG.js} +2 -2
- package/dist/cdn/{FRKMUBQW.js → U5QDQ3AE.js} +1 -1
- package/dist/cdn/{P4I7E7PJ.js → U5VJAOJI.js} +2 -2
- package/dist/cdn/{XRVUVLK7.js → U72STWZM.js} +1 -1
- package/dist/cdn/{3V3ARU4S.js → UA6OB7Z3.js} +1 -1
- package/dist/cdn/{S56TUI7H.js → UB7EJKIT.js} +1 -1
- package/dist/cdn/{5IW2AA7A.js → UDBS4W2F.js} +2 -2
- package/dist/cdn/{RD6JTK3X.js → UIXMR5OS.js} +2 -2
- package/dist/cdn/{MFAJRJR3.js → UK3Y26QU.js} +1 -1
- package/dist/cdn/{DOZS4G2O.js → URCMK5PU.js} +2 -2
- package/dist/cdn/{Z6SV4EJB.js → V6B7ICFF.js} +1 -1
- package/dist/cdn/{L3CVI6KC.js → VCX42K34.js} +2 -2
- package/dist/cdn/{KKGQAK4H.js → VFQZQD4U.js} +2 -2
- package/dist/cdn/{RGNMACS5.js → VFY3MJZR.js} +2 -2
- package/dist/cdn/VI5526JP.js +4 -0
- package/dist/cdn/{LK7INEHZ.js → VIAGSUD6.js} +2 -2
- package/dist/cdn/{S732ZTVO.js → VLXAVLHU.js} +2 -2
- package/dist/cdn/{LF44LBHN.js → VWFBOHPK.js} +2 -2
- package/dist/cdn/{TEMZGRBD.js → VX47PIHG.js} +2 -2
- package/dist/cdn/{CEBTYHFA.js → VXBXLYF2.js} +1 -1
- package/dist/cdn/{CBOKEM2G.js → VXFBOPP3.js} +2 -2
- package/dist/cdn/{UI4YSFA3.js → VYX3EYGU.js} +2 -2
- package/dist/cdn/VZYFBVG3.js +4 -0
- package/dist/cdn/{5ZXC6E3E.js → W5YSAGU7.js} +2 -2
- package/dist/cdn/{UI74ZNTQ.js → WF3R5HTS.js} +2 -2
- package/dist/cdn/{4B42RCTX.js → WGA7J4T3.js} +2 -2
- package/dist/cdn/{62TZFM26.js → WIXYBKC6.js} +2 -2
- package/dist/cdn/{KRMTXV6V.js → WKAPUSKT.js} +2 -2
- package/dist/cdn/{M3ONDW4E.js → WKI33GD4.js} +2 -2
- package/dist/cdn/{PKGSI55Q.js → WO6O4V7P.js} +2 -2
- package/dist/cdn/{HKY5DY62.js → WYV3XXOH.js} +2 -2
- package/dist/cdn/{PJK2OHT3.js → X2K7HTRW.js} +1 -1
- package/dist/cdn/{HHJZ4HZ6.js → X2SHXAEX.js} +2 -2
- package/dist/cdn/{GPG4VHYE.js → X3UWVOUF.js} +2 -2
- package/dist/cdn/{AMNGDLOS.js → XBNBDIQF.js} +2 -2
- package/dist/cdn/{OXHUFOLR.js → XIR3LIO5.js} +2 -2
- package/dist/cdn/{IXQOFTAB.js → XKOHRGWS.js} +2 -2
- package/dist/cdn/{5JBKNTRM.js → XN4ZLYC3.js} +2 -2
- package/dist/cdn/{IDUQIZKF.js → XWYQHMRJ.js} +2 -2
- package/dist/cdn/{XLHDG4FM.js → XYK3ZJ74.js} +2 -2
- package/dist/cdn/{SWVL5I4H.js → Y4O7BEH5.js} +2 -2
- package/dist/cdn/{FOYHZHWB.js → YC3C5VLU.js} +2 -2
- package/dist/cdn/{LLMVZTU7.js → YDNDI3GC.js} +2 -2
- package/dist/cdn/{UGCYPIG3.js → YGN4DTLR.js} +2 -2
- package/dist/cdn/{PPDXHEPT.js → YKZ4EIP4.js} +2 -2
- package/dist/cdn/{OEIXFB5S.js → YMEMNG2X.js} +2 -2
- package/dist/cdn/{SZT2IBTM.js → YN7MAH2I.js} +1 -1
- package/dist/cdn/{J6NCWDHN.js → YNQH4WHK.js} +2 -2
- package/dist/cdn/{UGNCB4PA.js → YT326XBB.js} +2 -2
- package/dist/cdn/{IJZIMEUA.js → Z6GXQBPV.js} +2 -2
- package/dist/cdn/{FGBI6PLB.js → ZIMI5N7B.js} +2 -2
- package/dist/cdn/{DAHW5CIV.js → ZP7YO34W.js} +2 -2
- package/dist/cdn/{DYI3P36O.js → ZPINCTCI.js} +1 -1
- package/dist/cdn/{CGLEKTNI.js → ZQOWCQMD.js} +2 -2
- package/dist/cdn/{3D5J3QUN.js → ZV5UJA56.js} +2 -2
- package/dist/cdn/{M7AB2AFS.js → ZVYEXCFN.js} +2 -2
- package/dist/cdn/{GP6DK5OL.js → ZX3GJIWV.js} +2 -2
- package/dist/cdn/index.js +2 -2
- package/dist/chunks/Auth.js +1 -1
- package/dist/chunks/appConfig.js +1 -1
- package/dist/chunks/cardFetchingUtils.js +2 -15
- package/dist/chunks/cardFetchingUtils.js.map +1 -1
- package/dist/chunks/cardsHelpers.js +1 -1
- package/dist/chunks/common.js +1 -1
- package/dist/chunks/deployAppContexts.js +1 -1
- package/dist/chunks/downloadUtils.js +1 -1
- package/dist/chunks/getItemIcon.js +1 -1
- package/dist/chunks/helpers.js +1 -1
- package/dist/chunks/interfaces.js +1 -1
- package/dist/chunks/mapViewUtils.js +1 -1
- package/dist/chunks/pciUtils.js +1 -1
- package/dist/chunks/popupUtils.js +1 -1
- package/dist/chunks/publicNotificationContext.js +1 -1
- package/dist/chunks/queryUtils.js +1 -1
- package/dist/chunks/runtime.js +1 -1
- package/dist/chunks/solutions-deploy-app-nav.js +1 -1
- package/dist/chunks/useT9n.js +1 -1
- package/dist/components/arcgis-solutions-assistant/customElement.js +1 -1
- package/dist/components/buffer-tools/customElement.js +1 -1
- package/dist/components/card-manager/customElement.js +1 -1
- package/dist/components/consent-manager/customElement.js +1 -1
- package/dist/components/create-feature/customElement.js +1 -1
- package/dist/components/create-related-feature/customElement.js +1 -1
- package/dist/components/crowdsource-manager/customElement.js +1 -1
- package/dist/components/crowdsource-reporter/customElement.js +1 -1
- package/dist/components/deduct-calculator/customElement.js +1 -1
- package/dist/components/delete-button/customElement.js +1 -1
- package/dist/components/delete-dialog/customElement.js +1 -1
- package/dist/components/edit-card/customElement.js +1 -1
- package/dist/components/feature-details/customElement.js +1 -1
- package/dist/components/feature-list/customElement.js +1 -1
- package/dist/components/field-selection/customElement.js +1 -1
- package/dist/components/info-card/customElement.js +1 -1
- package/dist/components/layer-list/customElement.js +1 -1
- package/dist/components/layer-table/customElement.js +1 -1
- package/dist/components/map-basemap-gallery/customElement.js +1 -1
- package/dist/components/map-card/customElement.js +1 -1
- package/dist/components/map-draw-tools/customElement.js +1 -1
- package/dist/components/map-floor-filter/customElement.js +1 -1
- package/dist/components/map-fullscreen/customElement.js +1 -1
- package/dist/components/map-layer-picker/customElement.js +1 -1
- package/dist/components/map-legend/customElement.js +1 -1
- package/dist/components/map-picker/customElement.js +1 -1
- package/dist/components/map-search/customElement.js +1 -1
- package/dist/components/map-select-tools/customElement.js +1 -1
- package/dist/components/map-tools/customElement.js +1 -1
- package/dist/components/pci-calculator/customElement.js +1 -1
- package/dist/components/pdf-download/customElement.js +1 -1
- package/dist/components/public-notification/customElement.js +1 -1
- package/dist/components/refine-selection/customElement.js +1 -1
- package/dist/components/selection-tool/customElement.js +1 -1
- package/dist/components/solution-configure-titles/customElement.js +1 -1
- package/dist/components/solution-delete-dialog/customElement.js +1 -1
- package/dist/components/solution-deploy-dialog/customElement.js +1 -1
- package/dist/components/solution-deployed-card/customElement.js +1 -1
- package/dist/components/solution-deployed-card-panel/customElement.js +1 -1
- package/dist/components/solution-deploying-dialog/customElement.js +1 -1
- package/dist/components/solution-details-card/customElement.js +1 -1
- package/dist/components/solution-details-panel/customElement.js +1 -1
- package/dist/components/solution-item-accordion/customElement.js +1 -1
- package/dist/components/solution-item-diagram/customElement.js +1 -1
- package/dist/components/solution-item-icon/customElement.js +1 -1
- package/dist/components/solution-resource-card/customElement.js +1 -1
- package/dist/components/solution-snapshot-gallery/customElement.js +1 -1
- package/dist/components/solution-social-share/customElement.js +1 -1
- package/dist/components/solutions-all-panel/customElement.js +14 -21
- package/dist/components/solutions-all-panel/customElement.js.map +1 -1
- package/dist/components/solutions-all-shell/customElement.js +1 -1
- package/dist/components/solutions-deploy-app/customElement.js +14 -21
- package/dist/components/solutions-deploy-app/customElement.js.map +1 -1
- package/dist/components/solutions-deploy-app-nav/customElement.js +1 -1
- package/dist/components/solutions-deployed-filter-panel/customElement.js +1 -1
- package/dist/components/solutions-deployed-panel/customElement.js +1 -1
- package/dist/components/solutions-deployed-shell/customElement.js +1 -1
- package/dist/components/solutions-filter-panel/customElement.js +1 -1
- package/dist/components/solutions-resource-panel/customElement.js +1 -1
- package/dist/components/solutions-resources/customElement.js +1 -1
- package/dist/components/solutions-resources-shell/customElement.js +1 -1
- package/dist/components/solutions-searchsort-toolbar/customElement.js +1 -1
- package/dist/docs/api.json +1 -1
- package/dist/docs/docs.json +1 -1
- package/dist/docs/web-types.json +1 -1
- package/dist/index.js +1 -1
- package/dist/loader.js +1 -1
- package/dist/utils/CardsFetcher.d.ts +1 -1
- package/package.json +1 -1
- package/dist/cdn/2H2732VO.js +0 -4
- package/dist/cdn/52TXKGYV.js +0 -4
- package/dist/cdn/5OOZELYI.js +0 -4
- package/dist/cdn/77APG7U3.js +0 -4
- package/dist/cdn/77VSL2LU.js +0 -4
- package/dist/cdn/AMF5XX36.js +0 -4
- package/dist/cdn/C74MDPRK.js +0 -4
- package/dist/cdn/CUBR3FSN.js +0 -4
- package/dist/cdn/DLPM4D5F.js +0 -4
- package/dist/cdn/DUNAQGU2.js +0 -99
- package/dist/cdn/EZOYFPK5.js +0 -4
- package/dist/cdn/G6ZWDEQU.js +0 -4
- package/dist/cdn/KZHJDYWQ.js +0 -4
- package/dist/cdn/LRDQVHWW.js +0 -4
- package/dist/cdn/MFNDNTOQ.js +0 -4
- package/dist/cdn/PHS66743.js +0 -4
- package/dist/cdn/SDXPFMHE.js +0 -4
- package/dist/cdn/SYGJWWZP.js +0 -4
- package/dist/cdn/VBIROJO3.js +0 -4
- package/dist/cdn/WW3ZPCO5.js +0 -4
- package/dist/cdn/YIZ7FHBE.js +0 -4
- package/dist/cdn/YYLKFRM5.js +0 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cardFetchingUtils.js","sources":["../../src/utils/CardsFetcher.ts","../../src/utils/cardFetchingUtils.ts"],"sourcesContent":["/**\r\n * @license\r\n * Copyright 2025 Esri\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\n/**\r\n * CardsFetcher is the interface between the app and the source of Solution cards. It manages the fetching, filtering,\r\n * and merging of the multiple sources to present a single paged source to the app. It provides two ways of filling\r\n * the cache: available and deployed solutions.\r\n *\r\n * @module CardsFetcher\r\n */\r\n\r\n//#region Interfaces\r\n\r\nimport * as cardsHelpers from \"./cardsHelpers\";\r\nimport * as common from \"@esri/solution-common\";\r\nimport * as helpers from \"./helpers\";\r\nimport * as portal from \"@esri/arcgis-rest-portal\";\r\nimport type { IPagingParams } from \"@esri/arcgis-rest-types\";\r\nimport type {\r\n ICacheBatch,\r\n IPreview,\r\n ISolutionInfoCard,\r\n ISearchOptionPartial\r\n} from './interfaces';\r\n\r\ninterface ICardCacheParams {\r\n q: string,\r\n categoriesAsStr: string;\r\n sortField: string;\r\n sortOrder: string;\r\n}\r\n\r\n//#endregion\r\n// ------------------------------------------------------------------------------------------------------------------ //\r\n\r\nexport class CardsFetcher {\r\n\r\n private readonly cMissingImageDataURI = \"https://static.arcgis.com/images/solution.png\";\r\n\r\n private cardCache: ISolutionInfoCard[];\r\n private cardCacheParams: ICardCacheParams;\r\n private locale: string;\r\n private orgUrl: string;\r\n private portalUrl: string;\r\n private agolPortalUrl: string;\r\n private anonAgolSession: common.UserSession | null;\r\n\r\n\r\n /**\r\n * Constructor\r\n *\r\n * @param orgUrl URL of organization, e.g., \"http://myOrg.maps.arcgis.com\"\r\n * @param portalUrl URL of portal, e.g., \"https://www.arcgis.com\"\r\n * @param userSession Authentication\r\n */\r\n public constructor(\r\n locale: string,\r\n orgUrl: string,\r\n portalUrl: string\r\n ) {\r\n this.cardCache = [];\r\n this.cardCacheParams = {\r\n q: \"\",\r\n categoriesAsStr: \"[]\",\r\n sortField: \"title\",\r\n sortOrder: \"asc\"\r\n };\r\n this.locale = locale;\r\n this.orgUrl = orgUrl;\r\n this.portalUrl = portalUrl;\r\n //Setup anonymous arcgis online user session for query to public enteprise connected apps group\r\n this.anonAgolSession = new common.UserSession({});\r\n this.agolPortalUrl = \"https://www.arcgis.com\"\r\n }\r\n\r\n /**\r\n * Adds a card to the cache to keep cache fresh between full refreshes.\r\n *\r\n * @param card Card to add\r\n */\r\n public addToCache(\r\n card: ISolutionInfoCard\r\n ): void {\r\n this.cardCache.push(card);\r\n }\r\n\r\n /**\r\n * Returns the current cache.\r\n *\r\n * @returns Cards in the cache\r\n */\r\n public getCache(\r\n ): ISolutionInfoCard[] {\r\n return this.cardCache;\r\n }\r\n\r\n /**\r\n * Removes a card to the cache to keep cache fresh between full refreshes.\r\n *\r\n * @param id Id of card to remove\r\n */\r\n public removeFromCache(\r\n id: string\r\n ): void {\r\n this.cardCache = this.cardCache.filter(card => card.id !== id);\r\n }\r\n\r\n /**\r\n * Fetches cards for availale Solutions from the server.\r\n *\r\n * @param query AGO query terms and options\r\n * @param primarySolutionsGroupId Id of a group that's the primary source of Solutions for AGO or Enterprise\r\n * @param agoBasedEnterpriseSolutionsGroupId Id of an AGO-based set of Enterprise Solutions\r\n * @param userSession Authentication for thumbnailUrl\r\n * @param pagingParams Parameters for how the request is to be batched\r\n * @param acceptableIds A set of item ids that the results must be a part of; if not defined, then there's no restriction\r\n * @returns A promise resolving to a collection of available Solutions as cards as well as paging information about\r\n * where those cards came from in the fetcher cache; in case of failure, the promise resolves to an error message\r\n */\r\n public requestAvailableSolutionCards(\r\n query: ISearchOptionPartial,\r\n primarySolutionsGroupId: string,\r\n agoBasedEnterpriseSolutionsGroupId: string,\r\n userSession: common.UserSession | undefined,\r\n pagingParams?: IPagingParams,\r\n acceptableIds?: Set<string>\r\n ): Promise<ICacheBatch<ISolutionInfoCard>> {\r\n const start1 = (pagingParams?.start ? pagingParams.start : 1); // note that this is a 1-based index\r\n const num = pagingParams?.num ? pagingParams.num : 24;\r\n const portalUrl = this.portalUrl + \"/sharing/rest\";\r\n const agolPortalUrl = this.agolPortalUrl + \"/sharing/rest\";\r\n const anonAgolSession = this.anonAgolSession as common.UserSession;\r\n\r\n // Have the query string or the categories params changed? If so, our cache is invalid.\r\n // (We'll manage sort changes by modifying the cache.)\r\n // For the time being, we'll also trigger a refresh when sorting by relevance because we want the server to do the sort.\r\n const categoriesAsStr = JSON.stringify(query.categories);\r\n if (this.cardCacheParams.q !== query.q\r\n || this.cardCacheParams.categoriesAsStr !== categoriesAsStr\r\n || query.sortField === \"relevance\") {\r\n this.cardCache = [];\r\n this.cardCacheParams = {\r\n q: query.q,\r\n categoriesAsStr,\r\n sortField: query.sortField,\r\n sortOrder: query.sortOrder\r\n };\r\n\r\n // Have the sort params changed?\r\n } else if (\r\n this.cardCacheParams.sortField !== query.sortField ||\r\n this.cardCacheParams.sortOrder !== query.sortOrder\r\n ) {\r\n this.cardCacheParams.sortField = query.sortField;\r\n this.cardCacheParams.sortOrder = query.sortOrder;\r\n this.cardCache = cardsHelpers.sortCache(\r\n this.cardCache, this.cardCacheParams.sortField, this.cardCacheParams.sortOrder\r\n ) as ISolutionInfoCard[];\r\n }\r\n\r\n // If we have a cache, we can satisfy the request from the cache.\r\n if (this.cardCache.length > 0) {\r\n let cardsBatch: ICacheBatch<ISolutionInfoCard>;\r\n if (acceptableIds && acceptableIds.size > 0) {\r\n // We need to make a sub-cache that's filtered thru the acceptableIds\r\n const cardSubcache = cardsHelpers.createFilteredSubcache(this.cardCache, acceptableIds);\r\n cardsBatch = cardsHelpers.extractFromCache(cardSubcache, start1, num);\r\n } else {\r\n cardsBatch = cardsHelpers.extractFromCache(this.cardCache, start1, num);\r\n }\r\n return Promise.resolve(cardsBatch);\r\n }\r\n\r\n // Otherwise, we have to fill the cache to cover the request. Because we don't know in advance how the two\r\n // potential sources will merge, we have to get all of the results from both sources.\r\n const additionalSearchOptions = {\r\n filter: query.filter,\r\n sortField: query.sortField,\r\n sortOrder: query.sortOrder,\r\n categories: query?.categories ? this.convertSearchCategories(query.categories) : \"\"\r\n };\r\n\r\n // Trigger parallel searches of groups `primarySolutionsGroupId` and `agoBasedEnterpriseSolutionsGroupId`\r\n // if supplied\r\n const searches: Array<Promise<portal.ISearchResult<common.IItem>>> = [];\r\n if (primarySolutionsGroupId) {\r\n const auth = userSession ? userSession : new common.UserSession({});\r\n searches.push(\r\n common.searchGroupAllContents(primarySolutionsGroupId, query.q, auth,\r\n additionalSearchOptions as common.IAdditionalGroupSearchOptions, portalUrl)\r\n );\r\n }\r\n if (agoBasedEnterpriseSolutionsGroupId) {\r\n searches.push(\r\n common.searchGroupAllContents(agoBasedEnterpriseSolutionsGroupId, query.q, anonAgolSession,\r\n additionalSearchOptions as common.IAdditionalGroupSearchOptions, agolPortalUrl)\r\n );\r\n }\r\n\r\n // We're done with the searches; refill the cache\r\n return Promise.allSettled(searches)\r\n .then((responseSet: Array<PromiseSettledResult<common.ISearchResult<common.IItem>>>) => {\r\n const fulfilledResponses: Array<common.ISearchResult<common.IItem>> = [];\r\n\r\n // Extract and augment the results\r\n responseSet.forEach((result, index) => {\r\n // Promise.allSettled() maintains the order of the template card search result groups, so if the\r\n // primarySolutionsGroupId is defined, the first result will be the primary one\r\n const isPrimary = !!primarySolutionsGroupId && index === 0;\r\n\r\n if (result.status === 'fulfilled') {\r\n const searchResult = result.value;\r\n let templateSourceUrl = \"\";\r\n let knownToBePublicSource = false;\r\n\r\n if (isPrimary) {\r\n // The first group comes from the source portal url\r\n // In enterprise this is the local group on the enterprise machine containing 'disconnected' solutions\r\n // In AGOL this is default\r\n templateSourceUrl = this.portalUrl;\r\n } else {\r\n // In enterprise, the second group is the AGOL based template group (connected solutions)\r\n // In AGOL a second group is never queried\r\n templateSourceUrl = this.agolPortalUrl;\r\n knownToBePublicSource = true;\r\n }\r\n\r\n // We add a source portal URL here so that it is attached to each card and can be referenced later on\r\n // Also add a flag indicating if we can be sure to not need a token to fetch info about the item\r\n searchResult.results.forEach(item => {\r\n item.sourcePortalUrl = templateSourceUrl;\r\n item.knownToBePublicSource = knownToBePublicSource;\r\n })\r\n fulfilledResponses.push(searchResult);\r\n\r\n } else if (result.status === 'rejected') {\r\n throw new Error(\r\n (isPrimary\r\n // A failed fetch of the primary group in enterprise or AGO\r\n ? result.reason.message\r\n // We're in enterprise and configured to search AGO (because agoBasedEnterpriseSolutionsGroupId\r\n // is defined), but appear not to be able to reach the internet\r\n : \"enterpriseCannotAccessAGO\"\r\n ) as string\r\n );\r\n }\r\n })\r\n\r\n // Get the cards from the results\r\n if (fulfilledResponses.length === 0) {\r\n this.cardCache = [] as ISolutionInfoCard[];\r\n\r\n } else if (fulfilledResponses.length === 1) {\r\n // A single response has been sorted for us by the server\r\n this.cardCache = this.getCardsFromResponse(fulfilledResponses[0]);\r\n\r\n } else {\r\n // For two responses, merging requires us to sort even though each response has been sorted by the server\r\n this.cardCache = cardsHelpers.sortCache(\r\n this.getCardsFromResponse(this.mergeResponses(fulfilledResponses)),\r\n this.cardCacheParams.sortField,\r\n this.cardCacheParams.sortOrder\r\n ) as ISolutionInfoCard[];\r\n }\r\n\r\n // Get the requested batch from the cache\r\n let cardsBatch: ICacheBatch<ISolutionInfoCard>;\r\n if (acceptableIds && acceptableIds.size > 0) {\r\n // We need to make a sub-cache that's filtered thru the acceptableIds\r\n const cardSubcache = cardsHelpers.createFilteredSubcache(this.cardCache, acceptableIds);\r\n cardsBatch = cardsHelpers.extractFromCache(cardSubcache, start1, num);\r\n } else {\r\n cardsBatch = cardsHelpers.extractFromCache(this.cardCache, start1, num);\r\n }\r\n return Promise.resolve(cardsBatch);\r\n })\r\n .catch((error) => {\r\n return Promise.reject(new Error(error.message));\r\n });\r\n }\r\n\r\n /**\r\n * Fetches cards for deployed Solutions from the server.\r\n *\r\n * @param query AGO query terms and options\r\n * @param userSession Authentication for thumbnailUrl\r\n * @returns A collection of deployed Solutions as cards; the paging information shows that all of the cards\r\n * are returned\r\n */\r\n public requestDeployedSolutionCards(\r\n query: ISearchOptionPartial,\r\n userSession: common.UserSession | undefined,\r\n ): Promise<ICacheBatch<ISolutionInfoCard>> {\r\n const portalUrl = this.portalUrl + \"/sharing/rest\";\r\n\r\n // Have the query string or the categories params changed? If so, our cache is invalid.\r\n // (We'll manage sort changes by modifying the cache.)\r\n // For the time being, we'll also trigger a refresh when sorting by relevance because we want the server to do the sort.\r\n if (this.cardCacheParams.q !== query.q ||\r\n this.cardCacheParams.categoriesAsStr !== JSON.stringify(query.q) ||\r\n query.sortField === \"relevance\") {\r\n this.cardCache = [];\r\n this.cardCacheParams = {\r\n q: query.q,\r\n categoriesAsStr: \"[]\",\r\n sortField: query.sortField,\r\n sortOrder: query.sortOrder\r\n };\r\n\r\n // Have the sort params changed?\r\n } else if (\r\n this.cardCacheParams.sortField !== query.sortField ||\r\n this.cardCacheParams.sortOrder !== query.sortOrder\r\n ) {\r\n this.cardCacheParams.sortField = query.sortField;\r\n this.cardCacheParams.sortOrder = query.sortOrder;\r\n this.cardCache = cardsHelpers.sortCache(\r\n this.cardCache, this.cardCacheParams.sortField, this.cardCacheParams.sortOrder\r\n ) as ISolutionInfoCard[];\r\n }\r\n\r\n // If we have a cache, we can satisfy the request from the cache.\r\n if (this.cardCache.length > 0) {\r\n const cardsBatch = cardsHelpers.extractFromCache(this.cardCache, 1, this.cardCache.length);\r\n return Promise.resolve(cardsBatch);\r\n }\r\n\r\n // Otherwise, we have to fill the cache to cover the request\r\n const searchOptions = {\r\n q: query.q,\r\n filter: query.filter,\r\n sortField: query.sortField,\r\n sortOrder: query.sortOrder,\r\n authentication: userSession,\r\n portal: portalUrl,\r\n categories: query?.categories ? JSON.stringify(query.categories) : \"\"\r\n } as portal.ISearchOptions;\r\n\r\n // We're done with the searches; refill the cache\r\n\r\n return common.searchAllItems(searchOptions as any)\r\n .then((response: portal.ISearchResult<common.IItem>) => {\r\n this.cardCache = this.getCardsFromResponse(response);\r\n\r\n // Get the requested batch from the cache\r\n const cardsBatch = cardsHelpers.extractFromCache(this.cardCache, 1, this.cardCache.length);\r\n return Promise.resolve(cardsBatch);\r\n })\r\n .catch((err) => {\r\n return Promise.reject(new Error(err));\r\n });\r\n }\r\n\r\n // ---------------------------------------------------------------------------------------------------------------- //\r\n\r\n /**\r\n * Stringifies categories for search.\r\n *\r\n * @param categories AGO item categories, e.g., \"/Categories/Conservation\"\r\n * or [\"/Categories/Conservation\", \"/Categories/Pipeline\"]\r\n * @returns Categories where each element is a stringified array of categories\r\n */\r\n private convertSearchCategories(\r\n categories: string | string[] | undefined\r\n ): string | string[] | undefined {\r\n /* istanbul ignore else */\r\n if (categories) {\r\n if (Array.isArray(categories)) {\r\n categories = categories.map(\r\n andGroup => JSON.stringify(Array.isArray(andGroup) ? andGroup : [andGroup]) // force to an array to allow categories with commas\r\n );\r\n } else {\r\n categories = JSON.stringify([categories]);\r\n }\r\n }\r\n return categories;\r\n }\r\n\r\n /**\r\n * Constructs Solution cards from a Solution-query response.\r\n *\r\n * @param response Response from a query\r\n * @returns Solution information as cards\r\n */\r\n private getCardsFromResponse(\r\n response: portal.ISearchResult<common.IItem>\r\n ): ISolutionInfoCard[] {\r\n if (response.results.length > 0) {\r\n const screenedCards = common.sanitizeJSON(response.results);\r\n\r\n // Transfer the query results into cards\r\n const cards: ISolutionInfoCard[] = screenedCards.map(\r\n (result: any) => {\r\n const card: ISolutionInfoCard = {\r\n id: result.id,\r\n title: result.title,\r\n snippet: result.snippet || \"\",\r\n description: result.description || \"\",\r\n url: result.url || \"\",\r\n itemUrl: this.orgUrl + \"/home/item.html\" + helpers.createUrlParams([{ k: \"id\", v: result.id }]) || \"\",\r\n thumbnailFilename: result.thumbnail,\r\n thumbnailUrl: helpers.generateThumbnailUrl(result.id as string, result.thumbnail as string,\r\n this.cMissingImageDataURI, (result.sourcePortalUrl ? result.sourcePortalUrl : this.portalUrl) as string),\r\n tryitUrl: result.url || \"\",\r\n typeKeywords: result.typeKeywords,\r\n learnMoreUrl: result.properties?.learnMoreUrl || \"\",\r\n createdMs: result.created as number,\r\n created: helpers.getLocaleLongDateString(result.created as number, this.locale),\r\n modified: helpers.getLocaleLongDateString(result.modified as number, this.locale),\r\n numViews: result.numViews,\r\n tags: result.tags,\r\n categories: result.groupCategories && result.groupCategories.length > 0 ? result.groupCategories : result.categories || [],\r\n licenseInfo: helpers.createDivHtml(result.licenseInfo as string),\r\n deployCommonId: helpers.getTypeKeywordProp(result.typeKeywords as string[] || [] as string[], \"solutionid-\"),\r\n deployVersion: helpers.getTypeKeywordProp(result.typeKeywords as string[] || [] as string[], \"solutionversion-\"),\r\n canDelete: result.created > 1618331400000, // Only solutions deployed after April 13, 2021 at 9:30PM can be deleted (9.1 release)\r\n preview: this.preparePreviewImageUrls(result.id as string, result.properties?.preview as IPreview[],\r\n (result.sourcePortalUrl ? result.sourcePortalUrl : this.portalUrl) as string),\r\n sourcePortalUrl: result.sourcePortalUrl || \"\",\r\n knownToBePublicSource: result.knownToBePublicSource || false,\r\n waitId: \"\",\r\n relatedSolutions: common.getProp(result as { [index: string]: any }, \"properties.relatedSolutions\") as string[] || [],\r\n owner: result.owner\r\n };\r\n\r\n if (card.deployCommonId !== \"\" && card.deployVersion !== \"\") {\r\n return card;\r\n }\r\n else {\r\n return null;\r\n }\r\n }\r\n );\r\n\r\n // Filter out nulled-out cards & update the paging parameters\r\n return cards.filter((card: ISolutionInfoCard) => card != null);\r\n\r\n } else {\r\n return [];\r\n }\r\n }\r\n\r\n /**\r\n * Merge a set of search responses into a single response item.\r\n *\r\n * @param responseSet Array of search results\r\n * @returns A response item that takes its query from the first item in the set and sets the other properties\r\n * as if all of the responses are the result of one, large query that's independent of AGO's 100-item limit.\r\n */\r\n private mergeResponses(\r\n responseSet: Array<portal.ISearchResult<common.IItem>>\r\n ): portal.ISearchResult<common.IItem> {\r\n let total = 0;\r\n responseSet.forEach((response) => total += response.total);\r\n\r\n let results = [] as common.IItem[];\r\n responseSet.forEach((response) => results = results.concat(response.results));\r\n\r\n return {\r\n query: responseSet[0].query,\r\n start: 1,\r\n num: total,\r\n nextStart: -1,\r\n total,\r\n results\r\n } as portal.ISearchResult<common.IItem>;\r\n }\r\n\r\n /**\r\n * Converts image preview information into a URL pointing to that image; returns non-image previews unchanged.\r\n *\r\n * @param id Item id to insert into URL\r\n * @param preview List of previews to modify\r\n * @returns Copy of previews with iamge previews modified\r\n */\r\n private preparePreviewImageUrls(\r\n id: string,\r\n preview: IPreview[],\r\n sourcePortal: string\r\n ): IPreview[] {\r\n if (!preview) {\r\n return [] as IPreview[];\r\n }\r\n\r\n return preview.map(\r\n preview => {\r\n if (preview.format === \"image\") {\r\n preview.name = sourcePortal + \"/sharing/rest/content/items/\" + id + \"/resources/\" + preview.name;\r\n }\r\n return preview;\r\n }\r\n );\r\n }\r\n\r\n}\r\n","/**\r\n * @license\r\n * Copyright 2025 Esri\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { UserSession } from '@esri/solution-common';\r\nimport type { Auth } from './Auth';\r\nimport type { CardsFetcher } from './CardsFetcher';\r\nimport { getDeployedRelatedSolutionIds } from './cardsHelpers';\r\nimport {\r\n BASE_DEPLOYED_TERMS,\r\n EOwnerOption,\r\n} from './interfaces';\r\nimport type {\r\n IDeployedSolutionCards,\r\n ISearchOptionPartial,\r\n ISolutionInfoCard,\r\n SortOrder,\r\n SortType\r\n} from './interfaces';\r\n\r\n/**\r\n * Generates a string containing the organization id and/or the organization owner if that information is\r\n * available in the authentication.\r\n *\r\n * @param auth Authentication the authentication from global nave\r\n * @param userSession UserSession the current rest js user session auth\r\n * @param _cardsFetcher CardsFetcher instance of fetcher of all solutions\r\n * @param _cardsFetcherDeployed CardsFetcher instance of fetcher of deployed solutions\r\n * @param q string the query terms to fetch solutions with. Defaults to base query for deploying all deployed solutions.\r\n * @param sortField SortType the field to sort cards by. Defaults to 'created'\r\n * @param sortOrder SortOrder should the sort be ascending or descending. Defaults to descending.\r\n * @param delay boolean Should the fecthing be delayed. Defaults to false.\r\n * @param categories string[] Any filter categories that should be leveraged when fetching solutions.\r\n * @param allCards ISolutionInfoCard[] All of the deployed solutions cards.\r\n * @param owner (Optional) when logged in, controls whether to filter by user's solutions or show all solutions in the organization.\r\n * @returns IDeployedSolutionCards that contains the fetched solution card details and\r\n * String with key/value pairs for org id and/or org owner; string is prefixed with a space so that it\r\n * can be added to an AGO query; empty string returnd if neither property is available\r\n */\r\nexport async function getDeployedSolutions(\r\n auth: Auth,\r\n userSession: UserSession,\r\n _cardsFetcher: CardsFetcher,\r\n _cardsFetcherDeployed: CardsFetcher,\r\n q = BASE_DEPLOYED_TERMS,\r\n sortField: SortType = 'created',\r\n sortOrder: SortOrder = 'desc',\r\n delay = false,\r\n categories: string[] = [],\r\n allCards: ISolutionInfoCard[] = [],\r\n owner?: EOwnerOption\r\n): Promise<IDeployedSolutionCards | undefined> {\r\n // TODO will need to get Auth from however global nav is implemented\r\n // Get the deployed cards as well because we need to be prepared to support suggested solutions\r\n if (!auth?.IsSignedIn) {\r\n return;\r\n }\r\n const deployedSolnsQuery: ISearchOptionPartial = {\r\n q,\r\n filter: \"type:Solution\",\r\n sortField,\r\n sortOrder,\r\n delay,\r\n categories\r\n }\r\n deployedSolnsQuery.q += _getOrgAndOwnerQueryPart(auth, owner);\r\n\r\n return await _requestDeployedSolutionCards(\r\n userSession,\r\n deployedSolnsQuery,\r\n _cardsFetcherDeployed,\r\n allCards\r\n );\r\n}\r\n\r\n/**\r\n * Generates a string containing the organization id and/or the organization owner if that information is\r\n * available in the authentication.\r\n *\r\n * @param auth Authentication\r\n * @param owner (Optional) when logged in, controls whether to filter by user's solutions or show all solutions in the organization.\r\n * @returns String with key/value pairs for org id and/or org owner; string is prefixed with a space so that it\r\n * can be added to an AGO query; empty string returnd if neither property is available\r\n */\r\nfunction _getOrgAndOwnerQueryPart(\r\n auth: Auth,\r\n owner?: EOwnerOption\r\n): string {\r\n let suffix = '';\r\n\r\n const sourceOrgId = auth.PortalUserOrg;\r\n const sourceOrgOwner = auth.PortalUserName;\r\n if (sourceOrgId) {\r\n suffix += ' orgid:' + sourceOrgId; // TODO: restore org in query\r\n }\r\n // Check if owner is not ORGANIZATION and append owner if sourceOrgOwner exists\r\n if (owner !== EOwnerOption.ORGANIZATION && sourceOrgOwner) {\r\n suffix += ' owner:' + sourceOrgOwner;\r\n }\r\n\r\n return suffix;\r\n}\r\n\r\n/**\r\n * Fetches cards for deployed Solutions from the server.\r\n *\r\n * @param query AGO query terms and options\r\n * @returns Promise when task is done\r\n */\r\nasync function _requestDeployedSolutionCards(\r\n userSession: UserSession,\r\n query: ISearchOptionPartial,\r\n cardsFetcherDeployed: CardsFetcher,\r\n allCards: ISolutionInfoCard[]\r\n): Promise<IDeployedSolutionCards> {\r\n // TODO make sure the use of allCards is right...seems like this would be off\r\n const response = await cardsFetcherDeployed!.requestDeployedSolutionCards(query, userSession)\r\n\r\n // Also I question if this related part need to be a part of every query to get the deployed solutions\r\n const relatedSolutions = getDeployedRelatedSolutionIds(response.cards, allCards);\r\n return {\r\n cards: response.cards,\r\n relatedSolutions\r\n };\r\n}\r\n"],"names":["cardsHelpers.sortCache","cardsHelpers.createFilteredSubcache","cardsHelpers.extractFromCache","helpers.createUrlParams","helpers.generateThumbnailUrl","helpers.getLocaleLongDateString","helpers.createDivHtml","helpers.getTypeKeywordProp","preview"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cardFetchingUtils.js","sources":["../../src/utils/CardsFetcher.ts","../../src/utils/cardFetchingUtils.ts"],"sourcesContent":["/**\r\n * @license\r\n * Copyright 2025 Esri\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\n/**\r\n * CardsFetcher is the interface between the app and the source of Solution cards. It manages the fetching, filtering,\r\n * and merging of the multiple sources to present a single paged source to the app. It provides two ways of filling\r\n * the cache: available and deployed solutions.\r\n *\r\n * @module CardsFetcher\r\n */\r\n\r\n//#region Interfaces\r\n\r\nimport * as cardsHelpers from \"./cardsHelpers\";\r\nimport * as common from \"@esri/solution-common\";\r\nimport * as helpers from \"./helpers\";\r\nimport * as portal from \"@esri/arcgis-rest-portal\";\r\nimport type { IPagingParams } from \"@esri/arcgis-rest-types\";\r\nimport type {\r\n ICacheBatch,\r\n IPreview,\r\n ISolutionInfoCard,\r\n ISearchOptionPartial\r\n} from './interfaces';\r\n\r\ninterface ICardCacheParams {\r\n q: string,\r\n categoriesAsStr: string;\r\n sortField: string;\r\n sortOrder: string;\r\n}\r\n\r\n//#endregion\r\n// ------------------------------------------------------------------------------------------------------------------ //\r\n\r\nexport class CardsFetcher {\r\n\r\n private readonly cMissingImageDataURI = \"https://static.arcgis.com/images/solution.png\";\r\n\r\n private cardCache: ISolutionInfoCard[];\r\n private cardCacheParams: ICardCacheParams;\r\n private locale: string;\r\n private orgUrl: string;\r\n private portalUrl: string;\r\n private agolPortalUrl: string;\r\n private anonAgolSession: common.UserSession | null;\r\n\r\n\r\n /**\r\n * Constructor\r\n *\r\n * @param orgUrl URL of organization, e.g., \"http://myOrg.maps.arcgis.com\"\r\n * @param portalUrl URL of portal, e.g., \"https://www.arcgis.com\"\r\n * @param userSession Authentication\r\n */\r\n public constructor(\r\n locale: string,\r\n orgUrl: string,\r\n portalUrl: string\r\n ) {\r\n this.cardCache = [];\r\n this.cardCacheParams = {\r\n q: \"\",\r\n categoriesAsStr: \"[]\",\r\n sortField: \"title\",\r\n sortOrder: \"asc\"\r\n };\r\n this.locale = locale;\r\n this.orgUrl = orgUrl;\r\n this.portalUrl = portalUrl;\r\n //Setup anonymous arcgis online user session for query to public enteprise connected apps group\r\n this.anonAgolSession = new common.UserSession({});\r\n this.agolPortalUrl = \"https://www.arcgis.com\"\r\n }\r\n\r\n /**\r\n * Adds a card to the cache to keep cache fresh between full refreshes.\r\n *\r\n * @param card Card to add\r\n */\r\n public addToCache(\r\n card: ISolutionInfoCard\r\n ): void {\r\n this.cardCache.push(card);\r\n }\r\n\r\n /**\r\n * Returns the current cache.\r\n *\r\n * @returns Cards in the cache\r\n */\r\n public getCache(\r\n ): ISolutionInfoCard[] {\r\n return this.cardCache;\r\n }\r\n\r\n /**\r\n * Removes a card to the cache to keep cache fresh between full refreshes.\r\n *\r\n * @param id Id of card to remove\r\n */\r\n public removeFromCache(\r\n id: string\r\n ): void {\r\n this.cardCache = this.cardCache.filter(card => card.id !== id);\r\n }\r\n\r\n /**\r\n * Fetches cards for availale Solutions from the server.\r\n *\r\n * @param query AGO query terms and options\r\n * @param primarySolutionsGroupId Id of a group that's the primary source of Solutions for AGO or Enterprise\r\n * @param agoBasedEnterpriseSolutionsGroupId Id of an AGO-based set of Enterprise Solutions\r\n * @param userSession Authentication for thumbnailUrl\r\n * @param pagingParams Parameters for how the request is to be batched\r\n * @param acceptableIds A set of item ids that the results must be a part of; if not defined, then there's no restriction\r\n * @returns A promise resolving to a collection of available Solutions as cards as well as paging information about\r\n * where those cards came from in the fetcher cache; in case of failure, the promise resolves to an error message\r\n */\r\n public requestAvailableSolutionCards(\r\n query: ISearchOptionPartial,\r\n primarySolutionsGroupId: string,\r\n pagingParams?: IPagingParams,\r\n acceptableIds?: Set<string>\r\n ): Promise<ICacheBatch<ISolutionInfoCard>> {\r\n const start1 = (pagingParams?.start ? pagingParams.start : 1); // note that this is a 1-based index\r\n const num = pagingParams?.num ? pagingParams.num : 24;\r\n const agolPortalUrl = this.agolPortalUrl + \"/sharing/rest\";\r\n const anonAgolSession = this.anonAgolSession as common.UserSession;\r\n\r\n // Have the query string or the categories params changed? If so, our cache is invalid.\r\n // (We'll manage sort changes by modifying the cache.)\r\n // For the time being, we'll also trigger a refresh when sorting by relevance because we want the server to do the sort.\r\n const categoriesAsStr = JSON.stringify(query.categories);\r\n if (this.cardCacheParams.q !== query.q\r\n || this.cardCacheParams.categoriesAsStr !== categoriesAsStr\r\n || query.sortField === \"relevance\") {\r\n this.cardCache = [];\r\n this.cardCacheParams = {\r\n q: query.q,\r\n categoriesAsStr,\r\n sortField: query.sortField,\r\n sortOrder: query.sortOrder\r\n };\r\n\r\n // Have the sort params changed?\r\n } else if (\r\n this.cardCacheParams.sortField !== query.sortField ||\r\n this.cardCacheParams.sortOrder !== query.sortOrder\r\n ) {\r\n this.cardCacheParams.sortField = query.sortField;\r\n this.cardCacheParams.sortOrder = query.sortOrder;\r\n this.cardCache = cardsHelpers.sortCache(\r\n this.cardCache, this.cardCacheParams.sortField, this.cardCacheParams.sortOrder\r\n ) as ISolutionInfoCard[];\r\n }\r\n\r\n // If we have a cache, we can satisfy the request from the cache.\r\n if (this.cardCache.length > 0) {\r\n let cardsBatch: ICacheBatch<ISolutionInfoCard>;\r\n if (acceptableIds && acceptableIds.size > 0) {\r\n // We need to make a sub-cache that's filtered thru the acceptableIds\r\n const cardSubcache = cardsHelpers.createFilteredSubcache(this.cardCache, acceptableIds);\r\n cardsBatch = cardsHelpers.extractFromCache(cardSubcache, start1, num);\r\n } else {\r\n cardsBatch = cardsHelpers.extractFromCache(this.cardCache, start1, num);\r\n }\r\n return Promise.resolve(cardsBatch);\r\n }\r\n\r\n // Otherwise, we have to fill the cache to cover the request. Because we don't know in advance how the two\r\n // potential sources will merge, we have to get all of the results from both sources.\r\n const additionalSearchOptions = {\r\n filter: query.filter,\r\n sortField: query.sortField,\r\n sortOrder: query.sortOrder,\r\n categories: query?.categories ? this.convertSearchCategories(query.categories) : \"\"\r\n };\r\n\r\n // For now we are always searching an agol group for cards that can be deployed\r\n const searches: Array<Promise<portal.ISearchResult<common.IItem>>> = [];\r\n if (primarySolutionsGroupId) {\r\n searches.push(\r\n common.searchGroupAllContents(primarySolutionsGroupId, query.q, anonAgolSession,\r\n additionalSearchOptions as common.IAdditionalGroupSearchOptions, agolPortalUrl)\r\n );\r\n }\r\n\r\n // We're done with the searches; refill the cache\r\n return Promise.allSettled(searches)\r\n .then((responseSet: Array<PromiseSettledResult<common.ISearchResult<common.IItem>>>) => {\r\n const fulfilledResponses: Array<common.ISearchResult<common.IItem>> = [];\r\n\r\n // Extract and augment the results\r\n responseSet.forEach((result, index) => {\r\n // Promise.allSettled() maintains the order of the template card search result groups, so if the\r\n // primarySolutionsGroupId is defined, the first result will be the primary one\r\n const isPrimary = !!primarySolutionsGroupId && index === 0;\r\n\r\n if (result.status === 'fulfilled') {\r\n const searchResult = result.value;\r\n let templateSourceUrl = \"\";\r\n let knownToBePublicSource = false;\r\n\r\n if (isPrimary) {\r\n // The first group comes from the source portal url\r\n // In enterprise this is the local group on the enterprise machine containing 'disconnected' solutions\r\n // In AGOL this is default\r\n templateSourceUrl = this.portalUrl;\r\n } else {\r\n // In enterprise, the second group is the AGOL based template group (connected solutions)\r\n // In AGOL a second group is never queried\r\n templateSourceUrl = this.agolPortalUrl;\r\n knownToBePublicSource = true;\r\n }\r\n\r\n // We add a source portal URL here so that it is attached to each card and can be referenced later on\r\n // Also add a flag indicating if we can be sure to not need a token to fetch info about the item\r\n searchResult.results.forEach(item => {\r\n item.sourcePortalUrl = templateSourceUrl;\r\n item.knownToBePublicSource = knownToBePublicSource;\r\n })\r\n fulfilledResponses.push(searchResult);\r\n\r\n } else if (result.status === 'rejected') {\r\n throw new Error(\r\n (isPrimary\r\n // A failed fetch of the primary group in enterprise or AGO\r\n ? result.reason.message\r\n // We're in enterprise and configured to search AGO (because agoBasedEnterpriseSolutionsGroupId\r\n // is defined), but appear not to be able to reach the internet\r\n : \"enterpriseCannotAccessAGO\"\r\n ) as string\r\n );\r\n }\r\n })\r\n\r\n // Get the cards from the results\r\n if (fulfilledResponses.length === 0) {\r\n this.cardCache = [] as ISolutionInfoCard[];\r\n\r\n } else if (fulfilledResponses.length === 1) {\r\n // A single response has been sorted for us by the server\r\n this.cardCache = this.getCardsFromResponse(fulfilledResponses[0]);\r\n\r\n } else {\r\n // For two responses, merging requires us to sort even though each response has been sorted by the server\r\n this.cardCache = cardsHelpers.sortCache(\r\n this.getCardsFromResponse(this.mergeResponses(fulfilledResponses)),\r\n this.cardCacheParams.sortField,\r\n this.cardCacheParams.sortOrder\r\n ) as ISolutionInfoCard[];\r\n }\r\n\r\n // Get the requested batch from the cache\r\n let cardsBatch: ICacheBatch<ISolutionInfoCard>;\r\n if (acceptableIds && acceptableIds.size > 0) {\r\n // We need to make a sub-cache that's filtered thru the acceptableIds\r\n const cardSubcache = cardsHelpers.createFilteredSubcache(this.cardCache, acceptableIds);\r\n cardsBatch = cardsHelpers.extractFromCache(cardSubcache, start1, num);\r\n } else {\r\n cardsBatch = cardsHelpers.extractFromCache(this.cardCache, start1, num);\r\n }\r\n return Promise.resolve(cardsBatch);\r\n })\r\n .catch((error) => {\r\n return Promise.reject(new Error(error.message));\r\n });\r\n }\r\n\r\n /**\r\n * Fetches cards for deployed Solutions from the server.\r\n *\r\n * @param query AGO query terms and options\r\n * @param userSession Authentication for thumbnailUrl\r\n * @returns A collection of deployed Solutions as cards; the paging information shows that all of the cards\r\n * are returned\r\n */\r\n public requestDeployedSolutionCards(\r\n query: ISearchOptionPartial,\r\n userSession: common.UserSession | undefined,\r\n ): Promise<ICacheBatch<ISolutionInfoCard>> {\r\n const portalUrl = this.portalUrl + \"/sharing/rest\";\r\n\r\n // Have the query string or the categories params changed? If so, our cache is invalid.\r\n // (We'll manage sort changes by modifying the cache.)\r\n // For the time being, we'll also trigger a refresh when sorting by relevance because we want the server to do the sort.\r\n if (this.cardCacheParams.q !== query.q ||\r\n this.cardCacheParams.categoriesAsStr !== JSON.stringify(query.q) ||\r\n query.sortField === \"relevance\") {\r\n this.cardCache = [];\r\n this.cardCacheParams = {\r\n q: query.q,\r\n categoriesAsStr: \"[]\",\r\n sortField: query.sortField,\r\n sortOrder: query.sortOrder\r\n };\r\n\r\n // Have the sort params changed?\r\n } else if (\r\n this.cardCacheParams.sortField !== query.sortField ||\r\n this.cardCacheParams.sortOrder !== query.sortOrder\r\n ) {\r\n this.cardCacheParams.sortField = query.sortField;\r\n this.cardCacheParams.sortOrder = query.sortOrder;\r\n this.cardCache = cardsHelpers.sortCache(\r\n this.cardCache, this.cardCacheParams.sortField, this.cardCacheParams.sortOrder\r\n ) as ISolutionInfoCard[];\r\n }\r\n\r\n // If we have a cache, we can satisfy the request from the cache.\r\n if (this.cardCache.length > 0) {\r\n const cardsBatch = cardsHelpers.extractFromCache(this.cardCache, 1, this.cardCache.length);\r\n return Promise.resolve(cardsBatch);\r\n }\r\n\r\n // Otherwise, we have to fill the cache to cover the request\r\n const searchOptions = {\r\n q: query.q,\r\n filter: query.filter,\r\n sortField: query.sortField,\r\n sortOrder: query.sortOrder,\r\n authentication: userSession,\r\n portal: portalUrl,\r\n categories: query?.categories ? JSON.stringify(query.categories) : \"\"\r\n } as portal.ISearchOptions;\r\n\r\n // We're done with the searches; refill the cache\r\n\r\n return common.searchAllItems(searchOptions as any)\r\n .then((response: portal.ISearchResult<common.IItem>) => {\r\n this.cardCache = this.getCardsFromResponse(response);\r\n\r\n // Get the requested batch from the cache\r\n const cardsBatch = cardsHelpers.extractFromCache(this.cardCache, 1, this.cardCache.length);\r\n return Promise.resolve(cardsBatch);\r\n })\r\n .catch((err) => {\r\n return Promise.reject(new Error(err));\r\n });\r\n }\r\n\r\n // ---------------------------------------------------------------------------------------------------------------- //\r\n\r\n /**\r\n * Stringifies categories for search.\r\n *\r\n * @param categories AGO item categories, e.g., \"/Categories/Conservation\"\r\n * or [\"/Categories/Conservation\", \"/Categories/Pipeline\"]\r\n * @returns Categories where each element is a stringified array of categories\r\n */\r\n private convertSearchCategories(\r\n categories: string | string[] | undefined\r\n ): string | string[] | undefined {\r\n /* istanbul ignore else */\r\n if (categories) {\r\n if (Array.isArray(categories)) {\r\n categories = categories.map(\r\n andGroup => JSON.stringify(Array.isArray(andGroup) ? andGroup : [andGroup]) // force to an array to allow categories with commas\r\n );\r\n } else {\r\n categories = JSON.stringify([categories]);\r\n }\r\n }\r\n return categories;\r\n }\r\n\r\n /**\r\n * Constructs Solution cards from a Solution-query response.\r\n *\r\n * @param response Response from a query\r\n * @returns Solution information as cards\r\n */\r\n private getCardsFromResponse(\r\n response: portal.ISearchResult<common.IItem>\r\n ): ISolutionInfoCard[] {\r\n if (response.results.length > 0) {\r\n const screenedCards = common.sanitizeJSON(response.results);\r\n\r\n // Transfer the query results into cards\r\n const cards: ISolutionInfoCard[] = screenedCards.map(\r\n (result: any) => {\r\n const card: ISolutionInfoCard = {\r\n id: result.id,\r\n title: result.title,\r\n snippet: result.snippet || \"\",\r\n description: result.description || \"\",\r\n url: result.url || \"\",\r\n itemUrl: this.orgUrl + \"/home/item.html\" + helpers.createUrlParams([{ k: \"id\", v: result.id }]) || \"\",\r\n thumbnailFilename: result.thumbnail,\r\n thumbnailUrl: helpers.generateThumbnailUrl(result.id as string, result.thumbnail as string,\r\n this.cMissingImageDataURI, (result.sourcePortalUrl ? result.sourcePortalUrl : this.portalUrl) as string),\r\n tryitUrl: result.url || \"\",\r\n typeKeywords: result.typeKeywords,\r\n learnMoreUrl: result.properties?.learnMoreUrl || \"\",\r\n createdMs: result.created as number,\r\n created: helpers.getLocaleLongDateString(result.created as number, this.locale),\r\n modified: helpers.getLocaleLongDateString(result.modified as number, this.locale),\r\n numViews: result.numViews,\r\n tags: result.tags,\r\n categories: result.groupCategories && result.groupCategories.length > 0 ? result.groupCategories : result.categories || [],\r\n licenseInfo: helpers.createDivHtml(result.licenseInfo as string),\r\n deployCommonId: helpers.getTypeKeywordProp(result.typeKeywords as string[] || [] as string[], \"solutionid-\"),\r\n deployVersion: helpers.getTypeKeywordProp(result.typeKeywords as string[] || [] as string[], \"solutionversion-\"),\r\n canDelete: result.created > 1618331400000, // Only solutions deployed after April 13, 2021 at 9:30PM can be deleted (9.1 release)\r\n preview: this.preparePreviewImageUrls(result.id as string, result.properties?.preview as IPreview[],\r\n (result.sourcePortalUrl ? result.sourcePortalUrl : this.portalUrl) as string),\r\n sourcePortalUrl: result.sourcePortalUrl || \"\",\r\n knownToBePublicSource: result.knownToBePublicSource || false,\r\n waitId: \"\",\r\n relatedSolutions: common.getProp(result as { [index: string]: any }, \"properties.relatedSolutions\") as string[] || [],\r\n owner: result.owner\r\n };\r\n\r\n if (card.deployCommonId !== \"\" && card.deployVersion !== \"\") {\r\n return card;\r\n }\r\n else {\r\n return null;\r\n }\r\n }\r\n );\r\n\r\n // Filter out nulled-out cards & update the paging parameters\r\n return cards.filter((card: ISolutionInfoCard) => card != null);\r\n\r\n } else {\r\n return [];\r\n }\r\n }\r\n\r\n /**\r\n * Merge a set of search responses into a single response item.\r\n *\r\n * @param responseSet Array of search results\r\n * @returns A response item that takes its query from the first item in the set and sets the other properties\r\n * as if all of the responses are the result of one, large query that's independent of AGO's 100-item limit.\r\n */\r\n private mergeResponses(\r\n responseSet: Array<portal.ISearchResult<common.IItem>>\r\n ): portal.ISearchResult<common.IItem> {\r\n let total = 0;\r\n responseSet.forEach((response) => total += response.total);\r\n\r\n let results = [] as common.IItem[];\r\n responseSet.forEach((response) => results = results.concat(response.results));\r\n\r\n return {\r\n query: responseSet[0].query,\r\n start: 1,\r\n num: total,\r\n nextStart: -1,\r\n total,\r\n results\r\n } as portal.ISearchResult<common.IItem>;\r\n }\r\n\r\n /**\r\n * Converts image preview information into a URL pointing to that image; returns non-image previews unchanged.\r\n *\r\n * @param id Item id to insert into URL\r\n * @param preview List of previews to modify\r\n * @returns Copy of previews with iamge previews modified\r\n */\r\n private preparePreviewImageUrls(\r\n id: string,\r\n preview: IPreview[],\r\n sourcePortal: string\r\n ): IPreview[] {\r\n if (!preview) {\r\n return [] as IPreview[];\r\n }\r\n\r\n return preview.map(\r\n preview => {\r\n if (preview.format === \"image\") {\r\n preview.name = sourcePortal + \"/sharing/rest/content/items/\" + id + \"/resources/\" + preview.name;\r\n }\r\n return preview;\r\n }\r\n );\r\n }\r\n\r\n}\r\n","/**\r\n * @license\r\n * Copyright 2025 Esri\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { UserSession } from '@esri/solution-common';\r\nimport type { Auth } from './Auth';\r\nimport type { CardsFetcher } from './CardsFetcher';\r\nimport { getDeployedRelatedSolutionIds } from './cardsHelpers';\r\nimport {\r\n BASE_DEPLOYED_TERMS,\r\n EOwnerOption,\r\n} from './interfaces';\r\nimport type {\r\n IDeployedSolutionCards,\r\n ISearchOptionPartial,\r\n ISolutionInfoCard,\r\n SortOrder,\r\n SortType\r\n} from './interfaces';\r\n\r\n/**\r\n * Generates a string containing the organization id and/or the organization owner if that information is\r\n * available in the authentication.\r\n *\r\n * @param auth Authentication the authentication from global nave\r\n * @param userSession UserSession the current rest js user session auth\r\n * @param _cardsFetcher CardsFetcher instance of fetcher of all solutions\r\n * @param _cardsFetcherDeployed CardsFetcher instance of fetcher of deployed solutions\r\n * @param q string the query terms to fetch solutions with. Defaults to base query for deploying all deployed solutions.\r\n * @param sortField SortType the field to sort cards by. Defaults to 'created'\r\n * @param sortOrder SortOrder should the sort be ascending or descending. Defaults to descending.\r\n * @param delay boolean Should the fecthing be delayed. Defaults to false.\r\n * @param categories string[] Any filter categories that should be leveraged when fetching solutions.\r\n * @param allCards ISolutionInfoCard[] All of the deployed solutions cards.\r\n * @param owner (Optional) when logged in, controls whether to filter by user's solutions or show all solutions in the organization.\r\n * @returns IDeployedSolutionCards that contains the fetched solution card details and\r\n * String with key/value pairs for org id and/or org owner; string is prefixed with a space so that it\r\n * can be added to an AGO query; empty string returnd if neither property is available\r\n */\r\nexport async function getDeployedSolutions(\r\n auth: Auth,\r\n userSession: UserSession,\r\n _cardsFetcher: CardsFetcher,\r\n _cardsFetcherDeployed: CardsFetcher,\r\n q = BASE_DEPLOYED_TERMS,\r\n sortField: SortType = 'created',\r\n sortOrder: SortOrder = 'desc',\r\n delay = false,\r\n categories: string[] = [],\r\n allCards: ISolutionInfoCard[] = [],\r\n owner?: EOwnerOption\r\n): Promise<IDeployedSolutionCards | undefined> {\r\n // TODO will need to get Auth from however global nav is implemented\r\n // Get the deployed cards as well because we need to be prepared to support suggested solutions\r\n if (!auth?.IsSignedIn) {\r\n return;\r\n }\r\n const deployedSolnsQuery: ISearchOptionPartial = {\r\n q,\r\n filter: \"type:Solution\",\r\n sortField,\r\n sortOrder,\r\n delay,\r\n categories\r\n }\r\n deployedSolnsQuery.q += _getOrgAndOwnerQueryPart(auth, owner);\r\n\r\n return await _requestDeployedSolutionCards(\r\n userSession,\r\n deployedSolnsQuery,\r\n _cardsFetcherDeployed,\r\n allCards\r\n );\r\n}\r\n\r\n/**\r\n * Generates a string containing the organization id and/or the organization owner if that information is\r\n * available in the authentication.\r\n *\r\n * @param auth Authentication\r\n * @param owner (Optional) when logged in, controls whether to filter by user's solutions or show all solutions in the organization.\r\n * @returns String with key/value pairs for org id and/or org owner; string is prefixed with a space so that it\r\n * can be added to an AGO query; empty string returnd if neither property is available\r\n */\r\nfunction _getOrgAndOwnerQueryPart(\r\n auth: Auth,\r\n owner?: EOwnerOption\r\n): string {\r\n let suffix = '';\r\n\r\n const sourceOrgId = auth.PortalUserOrg;\r\n const sourceOrgOwner = auth.PortalUserName;\r\n if (sourceOrgId) {\r\n suffix += ' orgid:' + sourceOrgId; // TODO: restore org in query\r\n }\r\n // Check if owner is not ORGANIZATION and append owner if sourceOrgOwner exists\r\n if (owner !== EOwnerOption.ORGANIZATION && sourceOrgOwner) {\r\n suffix += ' owner:' + sourceOrgOwner;\r\n }\r\n\r\n return suffix;\r\n}\r\n\r\n/**\r\n * Fetches cards for deployed Solutions from the server.\r\n *\r\n * @param query AGO query terms and options\r\n * @returns Promise when task is done\r\n */\r\nasync function _requestDeployedSolutionCards(\r\n userSession: UserSession,\r\n query: ISearchOptionPartial,\r\n cardsFetcherDeployed: CardsFetcher,\r\n allCards: ISolutionInfoCard[]\r\n): Promise<IDeployedSolutionCards> {\r\n // TODO make sure the use of allCards is right...seems like this would be off\r\n const response = await cardsFetcherDeployed!.requestDeployedSolutionCards(query, userSession)\r\n\r\n // Also I question if this related part need to be a part of every query to get the deployed solutions\r\n const relatedSolutions = getDeployedRelatedSolutionIds(response.cards, allCards);\r\n return {\r\n cards: response.cards,\r\n relatedSolutions\r\n };\r\n}\r\n"],"names":["cardsHelpers.sortCache","cardsHelpers.createFilteredSubcache","cardsHelpers.extractFromCache","helpers.createUrlParams","helpers.generateThumbnailUrl","helpers.getLocaleLongDateString","helpers.createDivHtml","helpers.getTypeKeywordProp","preview"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*! All material copyright Esri, All Rights Reserved, unless otherwise specified.
|
|
2
2
|
See https://js.arcgis.com/1.2/esri/copyright.txt for details.
|
|
3
|
-
v1.2.0-next.
|
|
3
|
+
v1.2.0-next.62 */
|
|
4
4
|
import "@esri/solution-common";
|
|
5
5
|
import { g as getTypeKeywordProp } from "./helpers.js";
|
|
6
6
|
/**
|
package/dist/chunks/common.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*! All material copyright Esri, All Rights Reserved, unless otherwise specified.
|
|
2
2
|
See https://js.arcgis.com/1.2/esri/copyright.txt for details.
|
|
3
|
-
v1.2.0-next.
|
|
3
|
+
v1.2.0-next.62 */
|
|
4
4
|
import { a as addParams } from "./helpers.js";
|
|
5
5
|
import "@esri/solution-common";
|
|
6
6
|
import "@arcgis/core/identity/IdentityManager";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*! All material copyright Esri, All Rights Reserved, unless otherwise specified.
|
|
2
2
|
See https://js.arcgis.com/1.2/esri/copyright.txt for details.
|
|
3
|
-
v1.2.0-next.
|
|
3
|
+
v1.2.0-next.62 */
|
|
4
4
|
import { jsPDF } from "jspdf";
|
|
5
5
|
import { g as getAssetPath } from "./runtime.js";
|
|
6
6
|
import { d as queryFeaturesByID } from "./queryUtils.js";
|
package/dist/chunks/helpers.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*! All material copyright Esri, All Rights Reserved, unless otherwise specified.
|
|
2
2
|
See https://js.arcgis.com/1.2/esri/copyright.txt for details.
|
|
3
|
-
v1.2.0-next.
|
|
3
|
+
v1.2.0-next.62 */
|
|
4
4
|
import * as common from "@esri/solution-common";
|
|
5
5
|
import "@arcgis/core/intl.js";
|
|
6
6
|
import { I as ITEM_TITLE_LENGTH } from "./interfaces.js";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*! All material copyright Esri, All Rights Reserved, unless otherwise specified.
|
|
2
2
|
See https://js.arcgis.com/1.2/esri/copyright.txt for details.
|
|
3
|
-
v1.2.0-next.
|
|
3
|
+
v1.2.0-next.62 */
|
|
4
4
|
import * as common from "@esri/solution-common";
|
|
5
5
|
import { c as customElement } from "./runtime.js";
|
|
6
6
|
import { u as useT9n } from "./useT9n.js";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*! All material copyright Esri, All Rights Reserved, unless otherwise specified.
|
|
2
2
|
See https://js.arcgis.com/1.2/esri/copyright.txt for details.
|
|
3
|
-
v1.2.0-next.
|
|
3
|
+
v1.2.0-next.62 */
|
|
4
4
|
import { q as queryExtent } from "./queryUtils.js";
|
|
5
5
|
import { d as EWorkflowType } from "./interfaces.js";
|
|
6
6
|
/**
|
package/dist/chunks/pciUtils.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*! All material copyright Esri, All Rights Reserved, unless otherwise specified.
|
|
2
2
|
See https://js.arcgis.com/1.2/esri/copyright.txt for details.
|
|
3
|
-
v1.2.0-next.
|
|
3
|
+
v1.2.0-next.62 */
|
|
4
4
|
import { _ as _prepareAttributeValue } from "./downloadUtils.js";
|
|
5
5
|
import * as arcade from "@arcgis/core/arcade";
|
|
6
6
|
import * as intl from "@arcgis/core/intl";
|
package/dist/chunks/runtime.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import "../cdn/main.css";
|
|
2
2
|
/*! All material copyright Esri, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/1.2/esri/copyright.txt for details.
|
|
4
|
-
v1.2.0-next.
|
|
4
|
+
v1.2.0-next.62 */
|
|
5
5
|
import { makeRuntime } from "@arcgis/lumina";
|
|
6
6
|
import { trackAccess, createObservable, createTrackingTarget, runTracked } from "@arcgis/core/applications/Components/reactiveUtils.js";
|
|
7
7
|
const runtime = makeRuntime({ defaultAssetPath: "https://jsdev.arcgis.com/1.2.0-next/solutions-components/", hydratedAttribute: "hydrated" });
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*! All material copyright Esri, All Rights Reserved, unless otherwise specified.
|
|
2
2
|
See https://js.arcgis.com/1.2/esri/copyright.txt for details.
|
|
3
|
-
v1.2.0-next.
|
|
3
|
+
v1.2.0-next.62 */
|
|
4
4
|
import { c as customElement } from "./runtime.js";
|
|
5
5
|
import { u as useT9n } from "./useT9n.js";
|
|
6
6
|
import { LitElement, createEvent, nothing } from "@arcgis/lumina";
|
package/dist/chunks/useT9n.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*! All material copyright Esri, All Rights Reserved, unless otherwise specified.
|
|
2
2
|
See https://js.arcgis.com/1.2/esri/copyright.txt for details.
|
|
3
|
-
v1.2.0-next.
|
|
3
|
+
v1.2.0-next.62 */
|
|
4
4
|
import { makeT9nController } from "@arcgis/lumina/controllers";
|
|
5
5
|
import { g as getAssetPath } from "./runtime.js";
|
|
6
6
|
const useT9n = makeT9nController(getAssetPath);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*! All material copyright Esri, All Rights Reserved, unless otherwise specified.
|
|
2
2
|
See https://js.arcgis.com/1.2/esri/copyright.txt for details.
|
|
3
|
-
v1.2.0-next.
|
|
3
|
+
v1.2.0-next.62 */
|
|
4
4
|
import { c as customElement } from "../../chunks/runtime.js";
|
|
5
5
|
import { ref } from "lit/directives/ref.js";
|
|
6
6
|
import { u as useT9n } from "../../chunks/useT9n.js";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*! All material copyright Esri, All Rights Reserved, unless otherwise specified.
|
|
2
2
|
See https://js.arcgis.com/1.2/esri/copyright.txt for details.
|
|
3
|
-
v1.2.0-next.
|
|
3
|
+
v1.2.0-next.62 */
|
|
4
4
|
import { c as customElement } from "../../chunks/runtime.js";
|
|
5
5
|
import { u as useT9n } from "../../chunks/useT9n.js";
|
|
6
6
|
import { css, html } from "lit";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*! All material copyright Esri, All Rights Reserved, unless otherwise specified.
|
|
2
2
|
See https://js.arcgis.com/1.2/esri/copyright.txt for details.
|
|
3
|
-
v1.2.0-next.
|
|
3
|
+
v1.2.0-next.62 */
|
|
4
4
|
import { c as customElement } from "../../chunks/runtime.js";
|
|
5
5
|
import { css, html } from "lit";
|
|
6
6
|
import { d as queryFeaturesByID } from "../../chunks/queryUtils.js";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*! All material copyright Esri, All Rights Reserved, unless otherwise specified.
|
|
2
2
|
See https://js.arcgis.com/1.2/esri/copyright.txt for details.
|
|
3
|
-
v1.2.0-next.
|
|
3
|
+
v1.2.0-next.62 */
|
|
4
4
|
import { c as customElement } from "../../chunks/runtime.js";
|
|
5
5
|
import { u as useT9n } from "../../chunks/useT9n.js";
|
|
6
6
|
import { LitElement, createEvent } from "@arcgis/lumina";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*! All material copyright Esri, All Rights Reserved, unless otherwise specified.
|
|
2
2
|
See https://js.arcgis.com/1.2/esri/copyright.txt for details.
|
|
3
|
-
v1.2.0-next.
|
|
3
|
+
v1.2.0-next.62 */
|
|
4
4
|
import { c as customElement } from "../../chunks/runtime.js";
|
|
5
5
|
import { j as getAllFeatureLayers, d as getLayerOrTable } from "../../chunks/mapViewUtils.js";
|
|
6
6
|
import { u as useT9n } from "../../chunks/useT9n.js";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*! All material copyright Esri, All Rights Reserved, unless otherwise specified.
|
|
2
2
|
See https://js.arcgis.com/1.2/esri/copyright.txt for details.
|
|
3
|
-
v1.2.0-next.
|
|
3
|
+
v1.2.0-next.62 */
|
|
4
4
|
import { c as customElement } from "../../chunks/runtime.js";
|
|
5
5
|
import { u as useT9n } from "../../chunks/useT9n.js";
|
|
6
6
|
import { css, html } from "lit";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*! All material copyright Esri, All Rights Reserved, unless otherwise specified.
|
|
2
2
|
See https://js.arcgis.com/1.2/esri/copyright.txt for details.
|
|
3
|
-
v1.2.0-next.
|
|
3
|
+
v1.2.0-next.62 */
|
|
4
4
|
import { c as customElement } from "../../chunks/runtime.js";
|
|
5
5
|
import { E as ELayoutMode } from "../../chunks/interfaces.js";
|
|
6
6
|
import { d as getLayerOrTable } from "../../chunks/mapViewUtils.js";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*! All material copyright Esri, All Rights Reserved, unless otherwise specified.
|
|
2
2
|
See https://js.arcgis.com/1.2/esri/copyright.txt for details.
|
|
3
|
-
v1.2.0-next.
|
|
3
|
+
v1.2.0-next.62 */
|
|
4
4
|
import { c as customElement } from "../../chunks/runtime.js";
|
|
5
5
|
import { d as getLayerOrTable, j as getAllFeatureLayers, i as getAllTables, g as getFeatureLayerView, h as highlightFeatures, e as getMapLayerHash } from "../../chunks/mapViewUtils.js";
|
|
6
6
|
import { d as queryFeaturesByID } from "../../chunks/queryUtils.js";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*! All material copyright Esri, All Rights Reserved, unless otherwise specified.
|
|
2
2
|
See https://js.arcgis.com/1.2/esri/copyright.txt for details.
|
|
3
|
-
v1.2.0-next.
|
|
3
|
+
v1.2.0-next.62 */
|
|
4
4
|
import { c as customElement } from "../../chunks/runtime.js";
|
|
5
5
|
import { css, html } from "lit";
|
|
6
6
|
import { E as EDistressType, a as ESeverity, b as calculateDeductValue } from "../../chunks/pciUtils.js";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*! All material copyright Esri, All Rights Reserved, unless otherwise specified.
|
|
2
2
|
See https://js.arcgis.com/1.2/esri/copyright.txt for details.
|
|
3
|
-
v1.2.0-next.
|
|
3
|
+
v1.2.0-next.62 */
|
|
4
4
|
import { c as customElement } from "../../chunks/runtime.js";
|
|
5
5
|
import { u as useT9n } from "../../chunks/useT9n.js";
|
|
6
6
|
import { css, html, nothing } from "lit";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*! All material copyright Esri, All Rights Reserved, unless otherwise specified.
|
|
2
2
|
See https://js.arcgis.com/1.2/esri/copyright.txt for details.
|
|
3
|
-
v1.2.0-next.
|
|
3
|
+
v1.2.0-next.62 */
|
|
4
4
|
import { c as customElement } from "../../chunks/runtime.js";
|
|
5
5
|
import { css, html } from "lit";
|
|
6
6
|
import { u as useT9n } from "../../chunks/useT9n.js";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*! All material copyright Esri, All Rights Reserved, unless otherwise specified.
|
|
2
2
|
See https://js.arcgis.com/1.2/esri/copyright.txt for details.
|
|
3
|
-
v1.2.0-next.
|
|
3
|
+
v1.2.0-next.62 */
|
|
4
4
|
import { c as customElement } from "../../chunks/runtime.js";
|
|
5
5
|
import { j as getAllFeatureLayers } from "../../chunks/mapViewUtils.js";
|
|
6
6
|
import { u as useT9n } from "../../chunks/useT9n.js";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*! All material copyright Esri, All Rights Reserved, unless otherwise specified.
|
|
2
2
|
See https://js.arcgis.com/1.2/esri/copyright.txt for details.
|
|
3
|
-
v1.2.0-next.
|
|
3
|
+
v1.2.0-next.62 */
|
|
4
4
|
import { c as customElement } from "../../chunks/runtime.js";
|
|
5
5
|
import { i as getAllTables } from "../../chunks/mapViewUtils.js";
|
|
6
6
|
import { css, html } from "lit";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*! All material copyright Esri, All Rights Reserved, unless otherwise specified.
|
|
2
2
|
See https://js.arcgis.com/1.2/esri/copyright.txt for details.
|
|
3
|
-
v1.2.0-next.
|
|
3
|
+
v1.2.0-next.62 */
|
|
4
4
|
import { c as customElement } from "../../chunks/runtime.js";
|
|
5
5
|
import { P as PopupUtils } from "../../chunks/popupUtils.js";
|
|
6
6
|
import { d as getLayerOrTable, g as getFeatureLayerView, h as highlightFeatures } from "../../chunks/mapViewUtils.js";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*! All material copyright Esri, All Rights Reserved, unless otherwise specified.
|
|
2
2
|
See https://js.arcgis.com/1.2/esri/copyright.txt for details.
|
|
3
|
-
v1.2.0-next.
|
|
3
|
+
v1.2.0-next.62 */
|
|
4
4
|
import { c as customElement } from "../../chunks/runtime.js";
|
|
5
5
|
import { ref } from "lit/directives/ref.js";
|
|
6
6
|
import { css, html } from "lit";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*! All material copyright Esri, All Rights Reserved, unless otherwise specified.
|
|
2
2
|
See https://js.arcgis.com/1.2/esri/copyright.txt for details.
|
|
3
|
-
v1.2.0-next.
|
|
3
|
+
v1.2.0-next.62 */
|
|
4
4
|
import { c as customElement } from "../../chunks/runtime.js";
|
|
5
5
|
import { P as PopupUtils } from "../../chunks/popupUtils.js";
|
|
6
6
|
import { u as useT9n } from "../../chunks/useT9n.js";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*! All material copyright Esri, All Rights Reserved, unless otherwise specified.
|
|
2
2
|
See https://js.arcgis.com/1.2/esri/copyright.txt for details.
|
|
3
|
-
v1.2.0-next.
|
|
3
|
+
v1.2.0-next.62 */
|
|
4
4
|
import { c as customElement } from "../../chunks/runtime.js";
|
|
5
5
|
import { e as getMapLayerHash, j as getAllFeatureLayers, g as getFeatureLayerView } from "../../chunks/mapViewUtils.js";
|
|
6
6
|
import * as intl from "@arcgis/core/intl";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*! All material copyright Esri, All Rights Reserved, unless otherwise specified.
|
|
2
2
|
See https://js.arcgis.com/1.2/esri/copyright.txt for details.
|
|
3
|
-
v1.2.0-next.
|
|
3
|
+
v1.2.0-next.62 */
|
|
4
4
|
import { c as customElement } from "../../chunks/runtime.js";
|
|
5
5
|
import { a as goToSelection, d as getLayerOrTable, g as getFeatureLayerView } from "../../chunks/mapViewUtils.js";
|
|
6
6
|
import { c as queryFeaturesByGlobalID } from "../../chunks/queryUtils.js";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*! All material copyright Esri, All Rights Reserved, unless otherwise specified.
|
|
2
2
|
See https://js.arcgis.com/1.2/esri/copyright.txt for details.
|
|
3
|
-
v1.2.0-next.
|
|
3
|
+
v1.2.0-next.62 */
|
|
4
4
|
import { c as customElement } from "../../chunks/runtime.js";
|
|
5
5
|
import { css, html } from "lit";
|
|
6
6
|
import { createRef, ref } from "lit-html/directives/ref.js";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*! All material copyright Esri, All Rights Reserved, unless otherwise specified.
|
|
2
2
|
See https://js.arcgis.com/1.2/esri/copyright.txt for details.
|
|
3
|
-
v1.2.0-next.
|
|
3
|
+
v1.2.0-next.62 */
|
|
4
4
|
import { c as customElement } from "../../chunks/runtime.js";
|
|
5
5
|
import { B as BATCH_EDIT_LIMIT } from "../../chunks/interfaces.js";
|
|
6
6
|
import { joinAppProxies } from "templates-common-library/functionality/proxy";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*! All material copyright Esri, All Rights Reserved, unless otherwise specified.
|
|
2
2
|
See https://js.arcgis.com/1.2/esri/copyright.txt for details.
|
|
3
|
-
v1.2.0-next.
|
|
3
|
+
v1.2.0-next.62 */
|
|
4
4
|
import { c as customElement } from "../../chunks/runtime.js";
|
|
5
5
|
import { f as EDrawMode } from "../../chunks/interfaces.js";
|
|
6
6
|
import { u as useT9n } from "../../chunks/useT9n.js";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*! All material copyright Esri, All Rights Reserved, unless otherwise specified.
|
|
2
2
|
See https://js.arcgis.com/1.2/esri/copyright.txt for details.
|
|
3
|
-
v1.2.0-next.
|
|
3
|
+
v1.2.0-next.62 */
|
|
4
4
|
import { c as customElement } from "../../chunks/runtime.js";
|
|
5
5
|
import { css, html } from "lit";
|
|
6
6
|
import { createRef, ref } from "lit-html/directives/ref.js";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*! All material copyright Esri, All Rights Reserved, unless otherwise specified.
|
|
2
2
|
See https://js.arcgis.com/1.2/esri/copyright.txt for details.
|
|
3
|
-
v1.2.0-next.
|
|
3
|
+
v1.2.0-next.62 */
|
|
4
4
|
import { c as customElement } from "../../chunks/runtime.js";
|
|
5
5
|
import { css, html } from "lit";
|
|
6
6
|
import { createRef, ref } from "lit-html/directives/ref.js";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*! All material copyright Esri, All Rights Reserved, unless otherwise specified.
|
|
2
2
|
See https://js.arcgis.com/1.2/esri/copyright.txt for details.
|
|
3
|
-
v1.2.0-next.
|
|
3
|
+
v1.2.0-next.62 */
|
|
4
4
|
import { c as customElement } from "../../chunks/runtime.js";
|
|
5
5
|
import { d as getLayerOrTable, e as getMapLayerHash, f as getMapTableHash } from "../../chunks/mapViewUtils.js";
|
|
6
6
|
import { u as useT9n } from "../../chunks/useT9n.js";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*! All material copyright Esri, All Rights Reserved, unless otherwise specified.
|
|
2
2
|
See https://js.arcgis.com/1.2/esri/copyright.txt for details.
|
|
3
|
-
v1.2.0-next.
|
|
3
|
+
v1.2.0-next.62 */
|
|
4
4
|
import { c as customElement } from "../../chunks/runtime.js";
|
|
5
5
|
import { css, html } from "lit";
|
|
6
6
|
import { createRef, ref } from "lit-html/directives/ref.js";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*! All material copyright Esri, All Rights Reserved, unless otherwise specified.
|
|
2
2
|
See https://js.arcgis.com/1.2/esri/copyright.txt for details.
|
|
3
|
-
v1.2.0-next.
|
|
3
|
+
v1.2.0-next.62 */
|
|
4
4
|
import { c as customElement } from "../../chunks/runtime.js";
|
|
5
5
|
import { u as useT9n } from "../../chunks/useT9n.js";
|
|
6
6
|
import { css, html } from "lit";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*! All material copyright Esri, All Rights Reserved, unless otherwise specified.
|
|
2
2
|
See https://js.arcgis.com/1.2/esri/copyright.txt for details.
|
|
3
|
-
v1.2.0-next.
|
|
3
|
+
v1.2.0-next.62 */
|
|
4
4
|
import { c as customElement } from "../../chunks/runtime.js";
|
|
5
5
|
import { css, html } from "lit";
|
|
6
6
|
import { createRef, ref } from "lit-html/directives/ref.js";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*! All material copyright Esri, All Rights Reserved, unless otherwise specified.
|
|
2
2
|
See https://js.arcgis.com/1.2/esri/copyright.txt for details.
|
|
3
|
-
v1.2.0-next.
|
|
3
|
+
v1.2.0-next.62 */
|
|
4
4
|
import { c as customElement } from "../../chunks/runtime.js";
|
|
5
5
|
import { a as goToSelection, h as highlightFeatures, g as getFeatureLayerView } from "../../chunks/mapViewUtils.js";
|
|
6
6
|
import { b as queryObjectIds, g as getQueryGeoms, a as queryFeaturesByGeometry } from "../../chunks/queryUtils.js";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*! All material copyright Esri, All Rights Reserved, unless otherwise specified.
|
|
2
2
|
See https://js.arcgis.com/1.2/esri/copyright.txt for details.
|
|
3
|
-
v1.2.0-next.
|
|
3
|
+
v1.2.0-next.62 */
|
|
4
4
|
import { c as customElement } from "../../chunks/runtime.js";
|
|
5
5
|
import { u as useT9n } from "../../chunks/useT9n.js";
|
|
6
6
|
import { css, html, nothing } from "lit";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*! All material copyright Esri, All Rights Reserved, unless otherwise specified.
|
|
2
2
|
See https://js.arcgis.com/1.2/esri/copyright.txt for details.
|
|
3
|
-
v1.2.0-next.
|
|
3
|
+
v1.2.0-next.62 */
|
|
4
4
|
import { c as customElement } from "../../chunks/runtime.js";
|
|
5
5
|
import { css, html } from "lit";
|
|
6
6
|
import { c as calculatePCI } from "../../chunks/pciUtils.js";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*! All material copyright Esri, All Rights Reserved, unless otherwise specified.
|
|
2
2
|
See https://js.arcgis.com/1.2/esri/copyright.txt for details.
|
|
3
|
-
v1.2.0-next.
|
|
3
|
+
v1.2.0-next.62 */
|
|
4
4
|
import { c as customElement } from "../../chunks/runtime.js";
|
|
5
5
|
import { css, html } from "lit";
|
|
6
6
|
import { d as downloadCSV, a as downloadPDF } from "../../chunks/downloadUtils.js";
|