@chartts/core 0.1.3 → 0.1.5
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/area.cjs +10 -10
- package/dist/area.js +5 -5
- package/dist/bar.cjs +9 -9
- package/dist/bar.js +4 -4
- package/dist/baseline.cjs +9 -9
- package/dist/baseline.js +4 -4
- package/dist/boxplot.cjs +9 -9
- package/dist/boxplot.js +4 -4
- package/dist/bubble.cjs +9 -9
- package/dist/bubble.js +4 -4
- package/dist/bullet.cjs +10 -10
- package/dist/bullet.js +5 -5
- package/dist/calendar.cjs +10 -10
- package/dist/calendar.js +5 -5
- package/dist/candlestick.cjs +9 -9
- package/dist/candlestick.js +4 -4
- package/dist/chord.cjs +10 -10
- package/dist/chord.js +5 -5
- package/dist/chunk-2OWMJBRN.js +122 -0
- package/dist/chunk-2OWMJBRN.js.map +1 -0
- package/dist/{chunk-DR5MQC3W.js → chunk-2VHG2N75.js} +4 -4
- package/dist/{chunk-DR5MQC3W.js.map → chunk-2VHG2N75.js.map} +1 -1
- package/dist/{chunk-RN7NNB6I.js → chunk-2X7UIG3G.js} +3 -3
- package/dist/{chunk-RN7NNB6I.js.map → chunk-2X7UIG3G.js.map} +1 -1
- package/dist/{chunk-ZTUKOCJN.cjs → chunk-35XUPEAD.cjs} +4 -4
- package/dist/{chunk-ZTUKOCJN.cjs.map → chunk-35XUPEAD.cjs.map} +1 -1
- package/dist/{chunk-2EZ2TVYT.cjs → chunk-3HBRAGJA.cjs} +13 -13
- package/dist/{chunk-2EZ2TVYT.cjs.map → chunk-3HBRAGJA.cjs.map} +1 -1
- package/dist/{chunk-WJP6CRML.js → chunk-45Y77XDM.js} +3 -3
- package/dist/{chunk-WJP6CRML.js.map → chunk-45Y77XDM.js.map} +1 -1
- package/dist/{chunk-DRIJNFWP.cjs → chunk-47R2QUID.cjs} +10 -10
- package/dist/{chunk-DRIJNFWP.cjs.map → chunk-47R2QUID.cjs.map} +1 -1
- package/dist/{chunk-FDNJNVKA.cjs → chunk-4C5IV57Z.cjs} +9 -9
- package/dist/{chunk-FDNJNVKA.cjs.map → chunk-4C5IV57Z.cjs.map} +1 -1
- package/dist/{chunk-5YNIOIKK.js → chunk-4EV5UN6V.js} +3 -3
- package/dist/{chunk-5YNIOIKK.js.map → chunk-4EV5UN6V.js.map} +1 -1
- package/dist/{chunk-KTCP23W6.js → chunk-5JDHVXPE.js} +3 -3
- package/dist/{chunk-KTCP23W6.js.map → chunk-5JDHVXPE.js.map} +1 -1
- package/dist/{chunk-QERWC7U6.js → chunk-5VI5F5XA.js} +3 -3
- package/dist/{chunk-QERWC7U6.js.map → chunk-5VI5F5XA.js.map} +1 -1
- package/dist/{chunk-AG7VY6MJ.cjs → chunk-64B7FGFP.cjs} +8 -8
- package/dist/{chunk-AG7VY6MJ.cjs.map → chunk-64B7FGFP.cjs.map} +1 -1
- package/dist/{chunk-ILCWDAKD.js → chunk-66GE7TI3.js} +3 -3
- package/dist/{chunk-ILCWDAKD.js.map → chunk-66GE7TI3.js.map} +1 -1
- package/dist/{chunk-CCMLOCTH.js → chunk-6H34P4AG.js} +3 -3
- package/dist/{chunk-CCMLOCTH.js.map → chunk-6H34P4AG.js.map} +1 -1
- package/dist/{chunk-E43H3A3G.cjs → chunk-6KNS32OH.cjs} +7 -7
- package/dist/{chunk-E43H3A3G.cjs.map → chunk-6KNS32OH.cjs.map} +1 -1
- package/dist/{chunk-YX6RW6ZW.cjs → chunk-6S2NCXNP.cjs} +6 -6
- package/dist/{chunk-YX6RW6ZW.cjs.map → chunk-6S2NCXNP.cjs.map} +1 -1
- package/dist/{chunk-QKJUAMRK.cjs → chunk-6XD3VSAM.cjs} +6 -6
- package/dist/{chunk-QKJUAMRK.cjs.map → chunk-6XD3VSAM.cjs.map} +1 -1
- package/dist/{chunk-WYIIWTIR.cjs → chunk-6XWZSV6M.cjs} +4 -4
- package/dist/{chunk-WYIIWTIR.cjs.map → chunk-6XWZSV6M.cjs.map} +1 -1
- package/dist/{chunk-UZH6PVHD.js → chunk-7FUQMZGT.js} +4 -4
- package/dist/{chunk-UZH6PVHD.js.map → chunk-7FUQMZGT.js.map} +1 -1
- package/dist/chunk-7LZVSOZR.cjs +172 -0
- package/dist/chunk-7LZVSOZR.cjs.map +1 -0
- package/dist/{chunk-VBEZS3Q4.cjs → chunk-7XOK2HLV.cjs} +9 -9
- package/dist/{chunk-VBEZS3Q4.cjs.map → chunk-7XOK2HLV.cjs.map} +1 -1
- package/dist/{chunk-46ZZTP5B.js → chunk-ACN4JCSF.js} +4 -4
- package/dist/{chunk-46ZZTP5B.js.map → chunk-ACN4JCSF.js.map} +1 -1
- package/dist/{chunk-EHNX3MG3.cjs → chunk-AOZ47DTE.cjs} +13 -13
- package/dist/{chunk-EHNX3MG3.cjs.map → chunk-AOZ47DTE.cjs.map} +1 -1
- package/dist/{chunk-4XVJYNOT.js → chunk-AYEXPYFE.js} +4 -4
- package/dist/{chunk-4XVJYNOT.js.map → chunk-AYEXPYFE.js.map} +1 -1
- package/dist/{chunk-FZIBM3G5.cjs → chunk-BPXEQPZU.cjs} +10 -10
- package/dist/{chunk-FZIBM3G5.cjs.map → chunk-BPXEQPZU.cjs.map} +1 -1
- package/dist/{chunk-XWN43PZF.cjs → chunk-BQUMYOBP.cjs} +7 -7
- package/dist/{chunk-XWN43PZF.cjs.map → chunk-BQUMYOBP.cjs.map} +1 -1
- package/dist/{chunk-OFEROCC5.cjs → chunk-CG4KMZRU.cjs} +6 -6
- package/dist/{chunk-OFEROCC5.cjs.map → chunk-CG4KMZRU.cjs.map} +1 -1
- package/dist/{chunk-2ITF366P.js → chunk-CLBVCWJG.js} +3 -3
- package/dist/{chunk-2ITF366P.js.map → chunk-CLBVCWJG.js.map} +1 -1
- package/dist/{chunk-OUN3MWRQ.cjs → chunk-CVKWXLXW.cjs} +10 -10
- package/dist/{chunk-OUN3MWRQ.cjs.map → chunk-CVKWXLXW.cjs.map} +1 -1
- package/dist/{chunk-RJIPFWW7.js → chunk-D4RP2H6A.js} +4 -4
- package/dist/{chunk-RJIPFWW7.js.map → chunk-D4RP2H6A.js.map} +1 -1
- package/dist/{chunk-K5TPJVOK.js → chunk-DMBUUJGU.js} +3 -3
- package/dist/{chunk-K5TPJVOK.js.map → chunk-DMBUUJGU.js.map} +1 -1
- package/dist/{chunk-6JNW43SE.js → chunk-DQAFYVCX.js} +5 -5
- package/dist/{chunk-6JNW43SE.js.map → chunk-DQAFYVCX.js.map} +1 -1
- package/dist/{chunk-RHTVKBRC.cjs → chunk-EXA5HCX7.cjs} +9 -9
- package/dist/{chunk-RHTVKBRC.cjs.map → chunk-EXA5HCX7.cjs.map} +1 -1
- package/dist/{chunk-RWQH5EO5.cjs → chunk-F3TVVAYG.cjs} +11 -11
- package/dist/{chunk-RWQH5EO5.cjs.map → chunk-F3TVVAYG.cjs.map} +1 -1
- package/dist/{chunk-HFWO37RY.cjs → chunk-FCDKWHIV.cjs} +8 -8
- package/dist/{chunk-HFWO37RY.cjs.map → chunk-FCDKWHIV.cjs.map} +1 -1
- package/dist/{chunk-FSDI3NJV.js → chunk-FWKYNE3A.js} +3 -3
- package/dist/{chunk-FSDI3NJV.js.map → chunk-FWKYNE3A.js.map} +1 -1
- package/dist/{chunk-HMB2RIEE.js → chunk-GAXX6YK5.js} +4 -4
- package/dist/{chunk-HMB2RIEE.js.map → chunk-GAXX6YK5.js.map} +1 -1
- package/dist/{chunk-ZFSFOD5W.cjs → chunk-H2DHSBPO.cjs} +6 -6
- package/dist/{chunk-ZFSFOD5W.cjs.map → chunk-H2DHSBPO.cjs.map} +1 -1
- package/dist/{chunk-4L62MAZA.js → chunk-I7HB3FBC.js} +5 -5
- package/dist/{chunk-4L62MAZA.js.map → chunk-I7HB3FBC.js.map} +1 -1
- package/dist/{chunk-YJHB2GHQ.js → chunk-IGIAGPC5.js} +3 -3
- package/dist/{chunk-YJHB2GHQ.js.map → chunk-IGIAGPC5.js.map} +1 -1
- package/dist/{chunk-RQJRVKAH.js → chunk-ILD5ZZHH.js} +3 -3
- package/dist/{chunk-RQJRVKAH.js.map → chunk-ILD5ZZHH.js.map} +1 -1
- package/dist/{chunk-FV7R2LLD.js → chunk-IN7SCXMD.js} +4 -4
- package/dist/{chunk-FV7R2LLD.js.map → chunk-IN7SCXMD.js.map} +1 -1
- package/dist/chunk-IRBGJP2E.js +170 -0
- package/dist/chunk-IRBGJP2E.js.map +1 -0
- package/dist/{chunk-3SOKHPAO.js → chunk-J6A72I5K.js} +4 -4
- package/dist/{chunk-3SOKHPAO.js.map → chunk-J6A72I5K.js.map} +1 -1
- package/dist/chunk-JRTD6Y34.cjs +148 -0
- package/dist/chunk-JRTD6Y34.cjs.map +1 -0
- package/dist/{chunk-ASNAQ35U.js → chunk-K7NVM76W.js} +4 -4
- package/dist/{chunk-ASNAQ35U.js.map → chunk-K7NVM76W.js.map} +1 -1
- package/dist/chunk-KNUMF6K2.cjs +156 -0
- package/dist/chunk-KNUMF6K2.cjs.map +1 -0
- package/dist/chunk-KQJZJADP.js +146 -0
- package/dist/chunk-KQJZJADP.js.map +1 -0
- package/dist/{chunk-YOLF5DYU.js → chunk-KRLKDJPM.js} +4 -4
- package/dist/{chunk-YOLF5DYU.js.map → chunk-KRLKDJPM.js.map} +1 -1
- package/dist/{chunk-6EGHZDZI.cjs → chunk-KSCMLSUI.cjs} +15 -15
- package/dist/{chunk-6EGHZDZI.cjs.map → chunk-KSCMLSUI.cjs.map} +1 -1
- package/dist/{chunk-4H2LGLGI.cjs → chunk-KT4LY42Y.cjs} +11 -11
- package/dist/{chunk-4H2LGLGI.cjs.map → chunk-KT4LY42Y.cjs.map} +1 -1
- package/dist/chunk-KX4ZBUHB.cjs +211 -0
- package/dist/chunk-KX4ZBUHB.cjs.map +1 -0
- package/dist/{chunk-2MWA7H6J.js → chunk-KXJOIVL5.js} +5 -5
- package/dist/{chunk-2MWA7H6J.js.map → chunk-KXJOIVL5.js.map} +1 -1
- package/dist/{chunk-4ORSJM2I.js → chunk-LFV46XLH.js} +4 -4
- package/dist/{chunk-4ORSJM2I.js.map → chunk-LFV46XLH.js.map} +1 -1
- package/dist/{chunk-MPQECPE3.js → chunk-LKSKGQX7.js} +3 -3
- package/dist/{chunk-MPQECPE3.js.map → chunk-LKSKGQX7.js.map} +1 -1
- package/dist/{chunk-OAL5RS2X.cjs → chunk-LQ26WSLH.cjs} +10 -10
- package/dist/{chunk-OAL5RS2X.cjs.map → chunk-LQ26WSLH.cjs.map} +1 -1
- package/dist/{chunk-LK2A3HBT.js → chunk-LROB73B4.js} +4 -4
- package/dist/{chunk-LK2A3HBT.js.map → chunk-LROB73B4.js.map} +1 -1
- package/dist/{chunk-XWCY67K5.js → chunk-LXBBM6IF.js} +4 -4
- package/dist/{chunk-XWCY67K5.js.map → chunk-LXBBM6IF.js.map} +1 -1
- package/dist/{chunk-RFEKSP62.js → chunk-MCORUYWB.js} +3 -3
- package/dist/{chunk-RFEKSP62.js.map → chunk-MCORUYWB.js.map} +1 -1
- package/dist/{chunk-F5AOBHQY.js → chunk-MJFCMUIY.js} +4 -4
- package/dist/{chunk-F5AOBHQY.js.map → chunk-MJFCMUIY.js.map} +1 -1
- package/dist/{chunk-PQCHNZHM.cjs → chunk-NHSPO4BN.cjs} +9 -9
- package/dist/{chunk-PQCHNZHM.cjs.map → chunk-NHSPO4BN.cjs.map} +1 -1
- package/dist/{chunk-DKXW2FQC.cjs → chunk-NR5NQ6TV.cjs} +10 -10
- package/dist/{chunk-DKXW2FQC.cjs.map → chunk-NR5NQ6TV.cjs.map} +1 -1
- package/dist/{chunk-GAWIUMAK.cjs → chunk-NRMQMPUE.cjs} +7 -7
- package/dist/{chunk-GAWIUMAK.cjs.map → chunk-NRMQMPUE.cjs.map} +1 -1
- package/dist/{chunk-LIY7MYRG.js → chunk-NW4JBVY2.js} +4 -4
- package/dist/{chunk-LIY7MYRG.js.map → chunk-NW4JBVY2.js.map} +1 -1
- package/dist/{chunk-WVQVGQJO.cjs → chunk-OLY33H6E.cjs} +7 -7
- package/dist/{chunk-WVQVGQJO.cjs.map → chunk-OLY33H6E.cjs.map} +1 -1
- package/dist/{chunk-7ZPHLIFP.cjs → chunk-OUQ63IJQ.cjs} +6 -6
- package/dist/{chunk-7ZPHLIFP.cjs.map → chunk-OUQ63IJQ.cjs.map} +1 -1
- package/dist/{chunk-TVDQNLGJ.js → chunk-PHFBF5ON.js} +3 -3
- package/dist/{chunk-TVDQNLGJ.js.map → chunk-PHFBF5ON.js.map} +1 -1
- package/dist/{chunk-NG7DRWWT.cjs → chunk-PL3M46GS.cjs} +6 -6
- package/dist/{chunk-NG7DRWWT.cjs.map → chunk-PL3M46GS.cjs.map} +1 -1
- package/dist/{chunk-MY4KMVJ5.cjs → chunk-PNHDHEBQ.cjs} +8 -8
- package/dist/{chunk-MY4KMVJ5.cjs.map → chunk-PNHDHEBQ.cjs.map} +1 -1
- package/dist/{chunk-XN6YS55F.cjs → chunk-PX7MLSIH.cjs} +377 -124
- package/dist/chunk-PX7MLSIH.cjs.map +1 -0
- package/dist/{chunk-4WQUX2B4.cjs → chunk-QCEC2KBW.cjs} +12 -12
- package/dist/{chunk-4WQUX2B4.cjs.map → chunk-QCEC2KBW.cjs.map} +1 -1
- package/dist/{chunk-IRUIWMH6.js → chunk-QRVTY6UU.js} +3 -3
- package/dist/{chunk-IRUIWMH6.js.map → chunk-QRVTY6UU.js.map} +1 -1
- package/dist/chunk-QS6GR2CQ.js +154 -0
- package/dist/chunk-QS6GR2CQ.js.map +1 -0
- package/dist/{chunk-G6R6MSRF.cjs → chunk-QVQKYVD2.cjs} +8 -8
- package/dist/{chunk-G6R6MSRF.cjs.map → chunk-QVQKYVD2.cjs.map} +1 -1
- package/dist/{chunk-JNQ4NL3R.cjs → chunk-RIJPMRKC.cjs} +8 -8
- package/dist/{chunk-JNQ4NL3R.cjs.map → chunk-RIJPMRKC.cjs.map} +1 -1
- package/dist/{chunk-XE5ZYFGM.js → chunk-RKX7GKOU.js} +4 -4
- package/dist/{chunk-XE5ZYFGM.js.map → chunk-RKX7GKOU.js.map} +1 -1
- package/dist/{chunk-ECB3UPTC.cjs → chunk-ROUFAI5M.cjs} +11 -11
- package/dist/{chunk-ECB3UPTC.cjs.map → chunk-ROUFAI5M.cjs.map} +1 -1
- package/dist/{chunk-NGKUI7XE.cjs → chunk-S52RCLDQ.cjs} +12 -12
- package/dist/{chunk-NGKUI7XE.cjs.map → chunk-S52RCLDQ.cjs.map} +1 -1
- package/dist/{chunk-SXVMEC6N.cjs → chunk-SEOHPUXV.cjs} +12 -12
- package/dist/{chunk-SXVMEC6N.cjs.map → chunk-SEOHPUXV.cjs.map} +1 -1
- package/dist/{chunk-ZY7ETQD6.js → chunk-SI4VJK4A.js} +3 -3
- package/dist/{chunk-ZY7ETQD6.js.map → chunk-SI4VJK4A.js.map} +1 -1
- package/dist/{chunk-UFMPALRH.js → chunk-SUB5WML4.js} +3 -3
- package/dist/{chunk-UFMPALRH.js.map → chunk-SUB5WML4.js.map} +1 -1
- package/dist/{chunk-R6ZDSXN7.cjs → chunk-T5NDUMLD.cjs} +8 -8
- package/dist/{chunk-R6ZDSXN7.cjs.map → chunk-T5NDUMLD.cjs.map} +1 -1
- package/dist/{chunk-YDQDZWZ7.cjs → chunk-TKHYY3B5.cjs} +6 -6
- package/dist/{chunk-YDQDZWZ7.cjs.map → chunk-TKHYY3B5.cjs.map} +1 -1
- package/dist/{chunk-66BHM3UN.cjs → chunk-TMQ2V5B2.cjs} +10 -10
- package/dist/{chunk-66BHM3UN.cjs.map → chunk-TMQ2V5B2.cjs.map} +1 -1
- package/dist/{chunk-3V64BDKG.cjs → chunk-TNIMRV3N.cjs} +13 -13
- package/dist/{chunk-3V64BDKG.cjs.map → chunk-TNIMRV3N.cjs.map} +1 -1
- package/dist/{chunk-7PNCJ4OQ.js → chunk-TUPPYHUR.js} +3 -3
- package/dist/{chunk-7PNCJ4OQ.js.map → chunk-TUPPYHUR.js.map} +1 -1
- package/dist/{chunk-6UWYKNFN.cjs → chunk-U456ET3M.cjs} +12 -12
- package/dist/{chunk-6UWYKNFN.cjs.map → chunk-U456ET3M.cjs.map} +1 -1
- package/dist/{chunk-6E6ZDWZD.cjs → chunk-UMS2MPYC.cjs} +10 -10
- package/dist/{chunk-6E6ZDWZD.cjs.map → chunk-UMS2MPYC.cjs.map} +1 -1
- package/dist/{chunk-YZQROIJY.js → chunk-UNQBXGX5.js} +3 -3
- package/dist/{chunk-YZQROIJY.js.map → chunk-UNQBXGX5.js.map} +1 -1
- package/dist/{chunk-BT5H3WMI.js → chunk-V3AENTZB.js} +4 -4
- package/dist/{chunk-BT5H3WMI.js.map → chunk-V3AENTZB.js.map} +1 -1
- package/dist/{chunk-5J26EN5I.js → chunk-V5LLTYOY.js} +4 -4
- package/dist/{chunk-5J26EN5I.js.map → chunk-V5LLTYOY.js.map} +1 -1
- package/dist/chunk-VALFF4NG.cjs +124 -0
- package/dist/chunk-VALFF4NG.cjs.map +1 -0
- package/dist/{chunk-V45C74EB.js → chunk-VJT5UA7J.js} +4 -4
- package/dist/{chunk-V45C74EB.js.map → chunk-VJT5UA7J.js.map} +1 -1
- package/dist/{chunk-UMIJYYF3.cjs → chunk-W626EAS5.cjs} +112 -13
- package/dist/chunk-W626EAS5.cjs.map +1 -0
- package/dist/{chunk-PVPTFMJJ.js → chunk-WHGNA44O.js} +4 -4
- package/dist/{chunk-PVPTFMJJ.js.map → chunk-WHGNA44O.js.map} +1 -1
- package/dist/{chunk-TWSWD4PU.js → chunk-WIA4MDRX.js} +3 -3
- package/dist/{chunk-TWSWD4PU.js.map → chunk-WIA4MDRX.js.map} +1 -1
- package/dist/{chunk-47EP245Y.cjs → chunk-WOYVHVXC.cjs} +7 -7
- package/dist/{chunk-47EP245Y.cjs.map → chunk-WOYVHVXC.cjs.map} +1 -1
- package/dist/{chunk-CDS2NXGT.cjs → chunk-X5SG6MFS.cjs} +4 -4
- package/dist/{chunk-CDS2NXGT.cjs.map → chunk-X5SG6MFS.cjs.map} +1 -1
- package/dist/{chunk-MYXLKVJE.js → chunk-XB5K7OYD.js} +361 -108
- package/dist/chunk-XB5K7OYD.js.map +1 -0
- package/dist/{chunk-DX4FBN3I.js → chunk-XIVC32HU.js} +112 -13
- package/dist/chunk-XIVC32HU.js.map +1 -0
- package/dist/{chunk-GPSNBZPX.js → chunk-XQ7BTVV3.js} +4 -4
- package/dist/{chunk-GPSNBZPX.js.map → chunk-XQ7BTVV3.js.map} +1 -1
- package/dist/{chunk-BYB3LQAT.cjs → chunk-YMOQGTGJ.cjs} +9 -9
- package/dist/{chunk-BYB3LQAT.cjs.map → chunk-YMOQGTGJ.cjs.map} +1 -1
- package/dist/{chunk-EHKHXQ46.cjs → chunk-YOK3JGW5.cjs} +10 -10
- package/dist/{chunk-EHKHXQ46.cjs.map → chunk-YOK3JGW5.cjs.map} +1 -1
- package/dist/{chunk-XKERO5K2.js → chunk-YUIHMAHA.js} +3 -3
- package/dist/{chunk-XKERO5K2.js.map → chunk-YUIHMAHA.js.map} +1 -1
- package/dist/chunk-ZBWBLCY2.js +209 -0
- package/dist/chunk-ZBWBLCY2.js.map +1 -0
- package/dist/{chunk-OAIMES5S.cjs → chunk-ZCLW4B5S.cjs} +17 -17
- package/dist/{chunk-OAIMES5S.cjs.map → chunk-ZCLW4B5S.cjs.map} +1 -1
- package/dist/combo.cjs +9 -9
- package/dist/combo.js +4 -4
- package/dist/custom.cjs +10 -10
- package/dist/custom.js +5 -5
- package/dist/donut.cjs +11 -11
- package/dist/donut.js +6 -6
- package/dist/dumbbell.cjs +10 -10
- package/dist/dumbbell.js +5 -5
- package/dist/funnel.cjs +10 -10
- package/dist/funnel.js +5 -5
- package/dist/gauge.cjs +10 -10
- package/dist/gauge.js +5 -5
- package/dist/geo.cjs +12 -12
- package/dist/geo.js +5 -5
- package/dist/graph-type-Cyb5U1y2.d.ts +5 -0
- package/dist/graph-type-DRbMI2E9.d.cts +5 -0
- package/dist/graph.cjs +10 -10
- package/dist/graph.d.cts +1 -1
- package/dist/graph.d.ts +1 -1
- package/dist/graph.js +5 -5
- package/dist/heatmap.cjs +10 -10
- package/dist/heatmap.js +5 -5
- package/dist/histogram.cjs +9 -9
- package/dist/histogram.js +4 -4
- package/dist/horizontal-bar.cjs +9 -9
- package/dist/horizontal-bar.js +4 -4
- package/dist/index.cjs +242 -192
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +16 -2
- package/dist/index.d.ts +16 -2
- package/dist/index.js +123 -93
- package/dist/index.js.map +1 -1
- package/dist/kagi.cjs +10 -10
- package/dist/kagi.js +5 -5
- package/dist/line.cjs +9 -9
- package/dist/line.js +4 -4
- package/dist/lines.cjs +10 -10
- package/dist/lines.js +5 -5
- package/dist/lollipop.cjs +9 -9
- package/dist/lollipop.js +4 -4
- package/dist/matrix.cjs +10 -10
- package/dist/matrix.js +5 -5
- package/dist/ohlc.cjs +9 -9
- package/dist/ohlc.js +4 -4
- package/dist/pack-type-CdtdkPBR.d.cts +10 -0
- package/dist/pack-type-Dm27RLC-.d.ts +10 -0
- package/dist/pack.cjs +33 -0
- package/dist/pack.cjs.map +1 -0
- package/dist/pack.d.cts +8 -0
- package/dist/pack.d.ts +8 -0
- package/dist/pack.js +12 -0
- package/dist/pack.js.map +1 -0
- package/dist/parallel.cjs +10 -10
- package/dist/parallel.js +5 -5
- package/dist/pictorialbar.cjs +10 -10
- package/dist/pictorialbar.js +5 -5
- package/dist/pie.cjs +11 -11
- package/dist/pie.js +6 -6
- package/dist/pillar-type-CIcSuZdu.d.cts +11 -0
- package/dist/pillar-type-DNpR_98h.d.ts +11 -0
- package/dist/pillar.cjs +33 -0
- package/dist/pillar.cjs.map +1 -0
- package/dist/pillar.d.cts +8 -0
- package/dist/pillar.d.ts +8 -0
- package/dist/pillar.js +12 -0
- package/dist/pillar.js.map +1 -0
- package/dist/polar.cjs +11 -11
- package/dist/polar.js +6 -6
- package/dist/radar.cjs +10 -10
- package/dist/radar.js +5 -5
- package/dist/radialbar.cjs +10 -10
- package/dist/radialbar.js +5 -5
- package/dist/range.cjs +9 -9
- package/dist/range.js +4 -4
- package/dist/renko.cjs +10 -10
- package/dist/renko.js +5 -5
- package/dist/sankey.cjs +10 -10
- package/dist/sankey.js +5 -5
- package/dist/scatter.cjs +9 -9
- package/dist/scatter.js +4 -4
- package/dist/sparkline.cjs +9 -9
- package/dist/sparkline.js +4 -4
- package/dist/stacked-bar.cjs +9 -9
- package/dist/stacked-bar.js +4 -4
- package/dist/step.cjs +10 -10
- package/dist/step.js +5 -5
- package/dist/sunburst.cjs +11 -11
- package/dist/sunburst.js +6 -6
- package/dist/themeriver.cjs +10 -10
- package/dist/themeriver.js +5 -5
- package/dist/tree.cjs +10 -10
- package/dist/tree.js +5 -5
- package/dist/treemap.cjs +10 -10
- package/dist/treemap.js +5 -5
- package/dist/violin-type-6KmTiJNp.d.cts +5 -0
- package/dist/violin-type-BOmiulQc.d.ts +5 -0
- package/dist/violin.cjs +33 -0
- package/dist/violin.cjs.map +1 -0
- package/dist/violin.d.cts +8 -0
- package/dist/violin.d.ts +8 -0
- package/dist/violin.js +12 -0
- package/dist/violin.js.map +1 -0
- package/dist/volume.cjs +9 -9
- package/dist/volume.js +4 -4
- package/dist/voronoi-type-BU5WnrcT.d.cts +12 -0
- package/dist/voronoi-type-D7n4mFNp.d.ts +12 -0
- package/dist/voronoi.cjs +33 -0
- package/dist/voronoi.cjs.map +1 -0
- package/dist/voronoi.d.cts +8 -0
- package/dist/voronoi.d.ts +8 -0
- package/dist/voronoi.js +12 -0
- package/dist/voronoi.js.map +1 -0
- package/dist/waterfall.cjs +9 -9
- package/dist/waterfall.js +4 -4
- package/dist/wordcloud-type-C6X9ORRR.d.ts +11 -0
- package/dist/wordcloud-type-CCm8rWK7.d.cts +11 -0
- package/dist/wordcloud.cjs +33 -0
- package/dist/wordcloud.cjs.map +1 -0
- package/dist/wordcloud.d.cts +8 -0
- package/dist/wordcloud.d.ts +8 -0
- package/dist/wordcloud.js +12 -0
- package/dist/wordcloud.js.map +1 -0
- package/package.json +1 -1
- package/dist/chunk-DX4FBN3I.js.map +0 -1
- package/dist/chunk-MYXLKVJE.js.map +0 -1
- package/dist/chunk-UMIJYYF3.cjs.map +0 -1
- package/dist/chunk-XN6YS55F.cjs.map +0 -1
- package/dist/graph-type-Bg04GFeS.d.ts +0 -15
- package/dist/graph-type-DF-vww8T.d.cts +0 -15
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
var
|
|
3
|
+
var chunkX5SG6MFS_cjs = require('./chunk-X5SG6MFS.cjs');
|
|
4
|
+
var chunkW626EAS5_cjs = require('./chunk-W626EAS5.cjs');
|
|
5
5
|
|
|
6
6
|
// src/charts/graph/parse.ts
|
|
7
7
|
function parseGraphData(data, options) {
|
|
@@ -192,19 +192,19 @@ function renderNodeShape(node, color, theme) {
|
|
|
192
192
|
switch (node.shape) {
|
|
193
193
|
case "circle": {
|
|
194
194
|
const r = Math.max(w, h) / 2;
|
|
195
|
-
shapeNode =
|
|
195
|
+
shapeNode = chunkW626EAS5_cjs.circle(cx, cy, r, { ...baseAttrs });
|
|
196
196
|
break;
|
|
197
197
|
}
|
|
198
198
|
case "diamond": {
|
|
199
|
-
const pb = new
|
|
199
|
+
const pb = new chunkW626EAS5_cjs.PathBuilder();
|
|
200
200
|
pb.moveTo(cx, cy - h / 2).lineTo(cx + w / 2, cy).lineTo(cx, cy + h / 2).lineTo(cx - w / 2, cy).close();
|
|
201
|
-
shapeNode =
|
|
201
|
+
shapeNode = chunkW626EAS5_cjs.path(pb.build(), { ...baseAttrs });
|
|
202
202
|
break;
|
|
203
203
|
}
|
|
204
204
|
case "hexagon": {
|
|
205
205
|
const rx = w / 2;
|
|
206
206
|
const ry = h / 2;
|
|
207
|
-
const pb = new
|
|
207
|
+
const pb = new chunkW626EAS5_cjs.PathBuilder();
|
|
208
208
|
for (let i = 0; i < 6; i++) {
|
|
209
209
|
const angle = Math.PI / 180 * (i * 60);
|
|
210
210
|
const px = cx + rx * Math.cos(angle);
|
|
@@ -213,11 +213,11 @@ function renderNodeShape(node, color, theme) {
|
|
|
213
213
|
else pb.lineTo(px, py);
|
|
214
214
|
}
|
|
215
215
|
pb.close();
|
|
216
|
-
shapeNode =
|
|
216
|
+
shapeNode = chunkW626EAS5_cjs.path(pb.build(), { ...baseAttrs });
|
|
217
217
|
break;
|
|
218
218
|
}
|
|
219
219
|
case "stadium": {
|
|
220
|
-
shapeNode =
|
|
220
|
+
shapeNode = chunkW626EAS5_cjs.rect(cx - w / 2, cy - h / 2, w, h, {
|
|
221
221
|
...baseAttrs,
|
|
222
222
|
rx: h / 2
|
|
223
223
|
});
|
|
@@ -225,14 +225,14 @@ function renderNodeShape(node, color, theme) {
|
|
|
225
225
|
}
|
|
226
226
|
// 'rect' is the default
|
|
227
227
|
default: {
|
|
228
|
-
shapeNode =
|
|
228
|
+
shapeNode = chunkW626EAS5_cjs.rect(cx - w / 2, cy - h / 2, w, h, {
|
|
229
229
|
...baseAttrs,
|
|
230
230
|
rx: 8
|
|
231
231
|
});
|
|
232
232
|
break;
|
|
233
233
|
}
|
|
234
234
|
}
|
|
235
|
-
const labelNode =
|
|
235
|
+
const labelNode = chunkW626EAS5_cjs.text(cx, cy, node.label, {
|
|
236
236
|
class: "chartts-graph-label",
|
|
237
237
|
fill: "#fff",
|
|
238
238
|
textAnchor: "middle",
|
|
@@ -343,9 +343,9 @@ function renderArrowhead(tipX, tipY, angle, size, color) {
|
|
|
343
343
|
const leftY = baseY + perpY;
|
|
344
344
|
const rightX = baseX - perpX;
|
|
345
345
|
const rightY = baseY - perpY;
|
|
346
|
-
const pb = new
|
|
346
|
+
const pb = new chunkW626EAS5_cjs.PathBuilder();
|
|
347
347
|
pb.moveTo(tipX, tipY).lineTo(leftX, leftY).lineTo(rightX, rightY).close();
|
|
348
|
-
return
|
|
348
|
+
return chunkW626EAS5_cjs.path(pb.build(), {
|
|
349
349
|
fill: color,
|
|
350
350
|
class: "chartts-graph-arrow"
|
|
351
351
|
});
|
|
@@ -373,7 +373,7 @@ function renderEdges(nodes, edges, options, theme) {
|
|
|
373
373
|
let labelX = (start.x + end.x) / 2;
|
|
374
374
|
let labelY = (start.y + end.y) / 2;
|
|
375
375
|
if (options.edgeStyle === "straight" || options.edgeStyle === void 0) {
|
|
376
|
-
result.push(
|
|
376
|
+
result.push(chunkW626EAS5_cjs.line(start.x, start.y, end.x, end.y, edgeAttrs));
|
|
377
377
|
} else {
|
|
378
378
|
const pairKey = Math.min(edge.source, edge.target) + ":" + Math.max(edge.source, edge.target);
|
|
379
379
|
const idx = pairIndex.get(pairKey) ?? 0;
|
|
@@ -385,9 +385,9 @@ function renderEdges(nodes, edges, options, theme) {
|
|
|
385
385
|
const perpAngle = angle + Math.PI / 2;
|
|
386
386
|
const cx = mx + Math.cos(perpAngle) * offset * sign;
|
|
387
387
|
const cy = my + Math.sin(perpAngle) * offset * sign;
|
|
388
|
-
const pb = new
|
|
388
|
+
const pb = new chunkW626EAS5_cjs.PathBuilder();
|
|
389
389
|
pb.moveTo(start.x, start.y).quadTo(cx, cy, end.x, end.y);
|
|
390
|
-
result.push(
|
|
390
|
+
result.push(chunkW626EAS5_cjs.path(pb.build(), edgeAttrs));
|
|
391
391
|
arrowAngle = Math.atan2(end.y - cy, end.x - cx);
|
|
392
392
|
labelX = 0.25 * start.x + 0.5 * cx + 0.25 * end.x;
|
|
393
393
|
labelY = 0.25 * start.y + 0.5 * cy + 0.25 * end.y;
|
|
@@ -404,13 +404,13 @@ function renderEdges(nodes, edges, options, theme) {
|
|
|
404
404
|
const ph = theme.fontSizeSmall - 1 + 6;
|
|
405
405
|
const bgFill = theme.background === "transparent" ? "#fff" : theme.background;
|
|
406
406
|
result.push(
|
|
407
|
-
|
|
407
|
+
chunkW626EAS5_cjs.rect(lx - pw / 2, ly - ph / 2, pw, ph, {
|
|
408
408
|
fill: bgFill,
|
|
409
409
|
rx: 3
|
|
410
410
|
})
|
|
411
411
|
);
|
|
412
412
|
result.push(
|
|
413
|
-
|
|
413
|
+
chunkW626EAS5_cjs.text(lx, ly, edge.label, {
|
|
414
414
|
fill: theme.textMuted,
|
|
415
415
|
textAnchor: "middle",
|
|
416
416
|
dominantBaseline: "central",
|
|
@@ -424,46 +424,32 @@ function renderEdges(nodes, edges, options, theme) {
|
|
|
424
424
|
}
|
|
425
425
|
|
|
426
426
|
// src/charts/graph/layout-force.ts
|
|
427
|
-
var layoutCache = /* @__PURE__ */ new Map();
|
|
428
|
-
function cacheKey(nodes, edges) {
|
|
429
|
-
const nk = nodes.map((n) => n.id).join(",");
|
|
430
|
-
const ek = edges.map((e) => `${e.source}-${e.target}`).join(",");
|
|
431
|
-
return nk + "|" + ek;
|
|
432
|
-
}
|
|
433
427
|
function forceLayout(nodes, edges, opts) {
|
|
434
428
|
const { area, iterations } = opts;
|
|
435
429
|
const n = nodes.length;
|
|
436
430
|
if (n === 0) return;
|
|
437
431
|
const cx = area.x + area.width / 2;
|
|
438
432
|
const cy = area.y + area.height / 2;
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
} else {
|
|
450
|
-
for (let i = 0; i < n; i++) {
|
|
451
|
-
const node = nodes[i];
|
|
452
|
-
if (node.pin) {
|
|
453
|
-
node.x = area.x + node.pin.x * area.width;
|
|
454
|
-
node.y = area.y + node.pin.y * area.height;
|
|
455
|
-
} else {
|
|
456
|
-
const angle = 2 * Math.PI * i / n;
|
|
457
|
-
const r = Math.min(area.width, area.height) * 0.3;
|
|
458
|
-
node.x = cx + r * Math.cos(angle);
|
|
459
|
-
node.y = cy + r * Math.sin(angle);
|
|
460
|
-
}
|
|
461
|
-
node.vx = 0;
|
|
462
|
-
node.vy = 0;
|
|
433
|
+
for (let i = 0; i < n; i++) {
|
|
434
|
+
const node = nodes[i];
|
|
435
|
+
if (node.pin) {
|
|
436
|
+
node.x = area.x + node.pin.x * area.width;
|
|
437
|
+
node.y = area.y + node.pin.y * area.height;
|
|
438
|
+
} else {
|
|
439
|
+
const angle = 2 * Math.PI * i / n;
|
|
440
|
+
const r = Math.min(area.width, area.height) * 0.4;
|
|
441
|
+
node.x = cx + r * Math.cos(angle);
|
|
442
|
+
node.y = cy + r * Math.sin(angle);
|
|
463
443
|
}
|
|
444
|
+
node.vx = 0;
|
|
445
|
+
node.vy = 0;
|
|
464
446
|
}
|
|
465
|
-
const
|
|
466
|
-
const
|
|
447
|
+
const avgNodeSize = nodes.reduce((s, nd) => s + Math.max(nd.width, nd.height), 0) / n;
|
|
448
|
+
const k = Math.max(
|
|
449
|
+
Math.sqrt(area.width * area.height / Math.max(n, 1)),
|
|
450
|
+
avgNodeSize * 2
|
|
451
|
+
);
|
|
452
|
+
const repulsion = k * k * 1.5;
|
|
467
453
|
for (let iter = 0; iter < iterations; iter++) {
|
|
468
454
|
const temp = 0.1 * (1 - iter / iterations) * Math.min(area.width, area.height) * 0.5;
|
|
469
455
|
for (const node of nodes) {
|
|
@@ -477,8 +463,10 @@ function forceLayout(nodes, edges, opts) {
|
|
|
477
463
|
const dx = ni.x - nj.x;
|
|
478
464
|
const dy = ni.y - nj.y;
|
|
479
465
|
const dist = Math.max(Math.sqrt(dx * dx + dy * dy), 1);
|
|
480
|
-
const
|
|
481
|
-
const
|
|
466
|
+
const ri = Math.sqrt(ni.width * ni.width + ni.height * ni.height) / 2;
|
|
467
|
+
const rj = Math.sqrt(nj.width * nj.width + nj.height * nj.height) / 2;
|
|
468
|
+
const minDist = ri + rj + 12;
|
|
469
|
+
const effectiveDist = Math.max(dist - minDist * 0.5, 1);
|
|
482
470
|
const force = repulsion / (effectiveDist * effectiveDist);
|
|
483
471
|
const fx = dx / dist * force;
|
|
484
472
|
const fy = dy / dist * force;
|
|
@@ -495,8 +483,8 @@ function forceLayout(nodes, edges, opts) {
|
|
|
495
483
|
const dy = tgt.y - src.y;
|
|
496
484
|
const dist = Math.max(Math.sqrt(dx * dx + dy * dy), 1);
|
|
497
485
|
const force = dist * dist / k;
|
|
498
|
-
const fx = dx / dist * force * 0.
|
|
499
|
-
const fy = dy / dist * force * 0.
|
|
486
|
+
const fx = dx / dist * force * 0.08;
|
|
487
|
+
const fy = dy / dist * force * 0.08;
|
|
500
488
|
src.vx += fx;
|
|
501
489
|
src.vy += fy;
|
|
502
490
|
tgt.vx -= fx;
|
|
@@ -524,7 +512,39 @@ function forceLayout(nodes, edges, opts) {
|
|
|
524
512
|
node.y = Math.max(area.y + my, Math.min(area.y + area.height - my, node.y));
|
|
525
513
|
}
|
|
526
514
|
}
|
|
527
|
-
|
|
515
|
+
for (let pass = 0; pass < 10; pass++) {
|
|
516
|
+
let moved = false;
|
|
517
|
+
for (let i = 0; i < n; i++) {
|
|
518
|
+
for (let j = i + 1; j < n; j++) {
|
|
519
|
+
const ni = nodes[i];
|
|
520
|
+
const nj = nodes[j];
|
|
521
|
+
if (ni.pin && nj.pin) continue;
|
|
522
|
+
const overlapX = (ni.width + nj.width) / 2 + 8 - Math.abs(ni.x - nj.x);
|
|
523
|
+
const overlapY = (ni.height + nj.height) / 2 + 8 - Math.abs(ni.y - nj.y);
|
|
524
|
+
if (overlapX <= 0 || overlapY <= 0) continue;
|
|
525
|
+
const pushX = overlapX < overlapY;
|
|
526
|
+
const push = (pushX ? overlapX : overlapY) / 2 + 1;
|
|
527
|
+
if (pushX) {
|
|
528
|
+
const dir = ni.x >= nj.x ? 1 : -1;
|
|
529
|
+
if (!ni.pin) ni.x += dir * push;
|
|
530
|
+
if (!nj.pin) nj.x -= dir * push;
|
|
531
|
+
} else {
|
|
532
|
+
const dir = ni.y >= nj.y ? 1 : -1;
|
|
533
|
+
if (!ni.pin) ni.y += dir * push;
|
|
534
|
+
if (!nj.pin) nj.y -= dir * push;
|
|
535
|
+
}
|
|
536
|
+
moved = true;
|
|
537
|
+
}
|
|
538
|
+
}
|
|
539
|
+
if (!moved) break;
|
|
540
|
+
for (const node of nodes) {
|
|
541
|
+
if (node.pin) continue;
|
|
542
|
+
const mx = Math.max(20, node.width / 2 + 5);
|
|
543
|
+
const my = Math.max(20, node.height / 2 + 5);
|
|
544
|
+
node.x = Math.max(area.x + mx, Math.min(area.x + area.width - mx, node.x));
|
|
545
|
+
node.y = Math.max(area.y + my, Math.min(area.y + area.height - my, node.y));
|
|
546
|
+
}
|
|
547
|
+
}
|
|
528
548
|
}
|
|
529
549
|
|
|
530
550
|
// src/charts/graph/layout-hierarchy.ts
|
|
@@ -543,46 +563,56 @@ function hierarchyLayout(nodes, edges, opts) {
|
|
|
543
563
|
const layers = assignLayers(n, outgoing, incoming);
|
|
544
564
|
const layerGroups = groupByLayer(layers, n);
|
|
545
565
|
orderLayers(layerGroups, outgoing, incoming, 3);
|
|
546
|
-
const isHorizontal = direction === "LR" || direction === "RL";
|
|
547
566
|
const maxLayer = Math.max(...layers, 0);
|
|
548
|
-
const availW = area.width;
|
|
549
|
-
const availH = area.height;
|
|
550
567
|
const layerCount = maxLayer + 1;
|
|
551
|
-
const
|
|
568
|
+
const isVertical = direction === "TB" || direction === "BT";
|
|
569
|
+
const layerThickness = new Array(layerCount).fill(0);
|
|
570
|
+
for (let layer = 0; layer < layerCount; layer++) {
|
|
571
|
+
const grp = layerGroups[layer] ?? [];
|
|
572
|
+
for (const idx of grp) {
|
|
573
|
+
const nd = nodes[idx];
|
|
574
|
+
const thick = isVertical ? nd.height : nd.width;
|
|
575
|
+
if (thick > layerThickness[layer]) layerThickness[layer] = thick;
|
|
576
|
+
}
|
|
577
|
+
}
|
|
578
|
+
const gap = 24;
|
|
579
|
+
const totalThickness = layerThickness.reduce((s, t) => s + t, 0) + gap * (layerCount - 1);
|
|
580
|
+
const availableThickness = isVertical ? area.height : area.width;
|
|
581
|
+
const scale = totalThickness > availableThickness ? availableThickness / totalThickness : 1;
|
|
582
|
+
const layerCenter = new Array(layerCount).fill(0);
|
|
583
|
+
const usedThickness = totalThickness * scale;
|
|
584
|
+
const offset = (availableThickness - usedThickness) / 2;
|
|
585
|
+
let cursor = offset + layerThickness[0] * scale / 2;
|
|
586
|
+
layerCenter[0] = cursor;
|
|
587
|
+
for (let layer = 1; layer < layerCount; layer++) {
|
|
588
|
+
cursor += layerThickness[layer - 1] * scale / 2 + gap * scale + layerThickness[layer] * scale / 2;
|
|
589
|
+
layerCenter[layer] = cursor;
|
|
590
|
+
}
|
|
591
|
+
if (direction === "BT" || direction === "RL") {
|
|
592
|
+
layerCenter.reverse();
|
|
593
|
+
}
|
|
552
594
|
for (let layer = 0; layer <= maxLayer; layer++) {
|
|
553
|
-
const
|
|
554
|
-
if (
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
const node = nodes[group2[pos]];
|
|
595
|
+
const grp = layerGroups[layer] ?? [];
|
|
596
|
+
if (grp.length === 0) continue;
|
|
597
|
+
for (let pos = 0; pos < grp.length; pos++) {
|
|
598
|
+
const node = nodes[grp[pos]];
|
|
558
599
|
if (node.pin) {
|
|
559
600
|
node.x = area.x + node.pin.x * area.width;
|
|
560
601
|
node.y = area.y + node.pin.y * area.height;
|
|
561
602
|
continue;
|
|
562
603
|
}
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
if (isHorizontal) ; else {
|
|
566
|
-
const tmp = layerCoord;
|
|
567
|
-
layerCoord = posCoord;
|
|
568
|
-
posCoord = tmp;
|
|
569
|
-
}
|
|
604
|
+
const posFrac = (pos + 1) / (grp.length + 1);
|
|
605
|
+
const layerPos = layerCenter[layer];
|
|
570
606
|
switch (direction) {
|
|
571
607
|
case "TB":
|
|
572
|
-
node.x = layerCoord;
|
|
573
|
-
node.y = posCoord;
|
|
574
|
-
break;
|
|
575
608
|
case "BT":
|
|
576
|
-
node.x =
|
|
577
|
-
node.y = area.y +
|
|
609
|
+
node.x = area.x + posFrac * area.width;
|
|
610
|
+
node.y = area.y + layerPos;
|
|
578
611
|
break;
|
|
579
612
|
case "LR":
|
|
580
|
-
node.x = layerCoord;
|
|
581
|
-
node.y = posCoord;
|
|
582
|
-
break;
|
|
583
613
|
case "RL":
|
|
584
|
-
node.x = area.x +
|
|
585
|
-
node.y =
|
|
614
|
+
node.x = area.x + layerPos;
|
|
615
|
+
node.y = area.y + posFrac * area.height;
|
|
586
616
|
break;
|
|
587
617
|
}
|
|
588
618
|
}
|
|
@@ -709,23 +739,40 @@ function circularLayout(nodes, edges, opts) {
|
|
|
709
739
|
const { area } = opts;
|
|
710
740
|
const cx = area.x + area.width / 2;
|
|
711
741
|
const cy = area.y + area.height / 2;
|
|
712
|
-
const maxNodeSize = Math.max(
|
|
713
|
-
...nodes.map((nd) => Math.max(nd.width, nd.height)),
|
|
714
|
-
40
|
|
715
|
-
);
|
|
716
|
-
const radius = Math.min(area.width, area.height) / 2 - maxNodeSize / 2 - 10;
|
|
717
742
|
const order = connectivityOrder(nodes, edges);
|
|
718
743
|
const unpinned = [];
|
|
719
744
|
for (const idx of order) {
|
|
720
745
|
if (!nodes[idx].pin) unpinned.push(idx);
|
|
721
746
|
}
|
|
722
|
-
const
|
|
747
|
+
const count = Math.max(unpinned.length, 1);
|
|
748
|
+
const angleStep = 2 * Math.PI / count;
|
|
749
|
+
const maxNodeW = Math.max(...nodes.map((nd) => nd.width), 40);
|
|
750
|
+
const maxNodeH = Math.max(...nodes.map((nd) => nd.height), 40);
|
|
751
|
+
const margin = 10;
|
|
752
|
+
let rx = area.width / 2 - maxNodeW / 2 - margin;
|
|
753
|
+
let ry = area.height / 2 - maxNodeH / 2 - margin;
|
|
754
|
+
if (count > 1) {
|
|
755
|
+
const maxDiag = Math.max(
|
|
756
|
+
...nodes.map((nd) => Math.sqrt(nd.width * nd.width + nd.height * nd.height)),
|
|
757
|
+
40
|
|
758
|
+
);
|
|
759
|
+
const minSpacing = maxDiag + 16;
|
|
760
|
+
const perimApprox = Math.PI * (3 * (rx + ry) - Math.sqrt((3 * rx + ry) * (rx + 3 * ry)));
|
|
761
|
+
const spacingPerNode = perimApprox / count;
|
|
762
|
+
if (spacingPerNode < minSpacing) {
|
|
763
|
+
const scale = minSpacing / spacingPerNode;
|
|
764
|
+
rx *= scale;
|
|
765
|
+
ry *= scale;
|
|
766
|
+
}
|
|
767
|
+
}
|
|
768
|
+
rx = Math.max(20, Math.min(rx, area.width / 2 - margin));
|
|
769
|
+
ry = Math.max(20, Math.min(ry, area.height / 2 - margin));
|
|
723
770
|
const startAngle = -Math.PI / 2;
|
|
724
771
|
for (let i = 0; i < unpinned.length; i++) {
|
|
725
772
|
const node = nodes[unpinned[i]];
|
|
726
773
|
const angle = startAngle + angleStep * i;
|
|
727
|
-
node.x = cx +
|
|
728
|
-
node.y = cy +
|
|
774
|
+
node.x = cx + rx * Math.cos(angle);
|
|
775
|
+
node.y = cy + ry * Math.sin(angle);
|
|
729
776
|
}
|
|
730
777
|
for (const node of nodes) {
|
|
731
778
|
if (node.pin) {
|
|
@@ -780,57 +827,146 @@ var graphChartType = {
|
|
|
780
827
|
return { x: "categorical", y: "linear" };
|
|
781
828
|
},
|
|
782
829
|
prepareData(data, options) {
|
|
783
|
-
|
|
830
|
+
const opts = options;
|
|
831
|
+
if ((opts.nodes || opts.edges) && (!data.series.length || data.series.every((s) => s.values.length === 0))) {
|
|
832
|
+
return {
|
|
833
|
+
series: [],
|
|
834
|
+
labels: [],
|
|
835
|
+
bounds: { xMin: 0, xMax: 1, yMin: 0, yMax: 1 }
|
|
836
|
+
};
|
|
837
|
+
}
|
|
838
|
+
return chunkX5SG6MFS_cjs.prepareNoAxes(data, options);
|
|
784
839
|
},
|
|
785
840
|
render(ctx) {
|
|
786
841
|
const { data, area, theme, options } = ctx;
|
|
787
842
|
const graphOpts = options;
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
|
|
791
|
-
|
|
792
|
-
|
|
793
|
-
|
|
794
|
-
|
|
795
|
-
|
|
796
|
-
|
|
797
|
-
|
|
798
|
-
|
|
799
|
-
|
|
800
|
-
|
|
801
|
-
|
|
802
|
-
|
|
803
|
-
|
|
804
|
-
result.push(chunkUMIJYYF3_cjs.group(shapeNodes, {
|
|
805
|
-
class: `chartts-series chartts-series-${node.index}`,
|
|
806
|
-
"data-series-name": node.label
|
|
843
|
+
if (graphOpts.nodes || graphOpts.edges) {
|
|
844
|
+
return renderRichGraph(ctx);
|
|
845
|
+
}
|
|
846
|
+
const nodes = [];
|
|
847
|
+
const { graphNodes, graphEdges } = parseLegacyGraphData(data);
|
|
848
|
+
if (graphNodes.length === 0) return nodes;
|
|
849
|
+
forceLayout2(graphNodes, graphEdges, area, 80);
|
|
850
|
+
for (let ei = 0; ei < graphEdges.length; ei++) {
|
|
851
|
+
const edge = graphEdges[ei];
|
|
852
|
+
const src = graphNodes[edge.source];
|
|
853
|
+
const tgt = graphNodes[edge.target];
|
|
854
|
+
nodes.push(chunkW626EAS5_cjs.line(src.x, src.y, tgt.x, tgt.y, {
|
|
855
|
+
class: "chartts-graph-edge",
|
|
856
|
+
stroke: theme.gridColor,
|
|
857
|
+
strokeWidth: Math.max(1, Math.min(3, edge.weight * 0.5)),
|
|
858
|
+
opacity: 0.5
|
|
807
859
|
}));
|
|
808
860
|
}
|
|
809
|
-
|
|
861
|
+
const maxVal = Math.max(...graphNodes.map((n) => n.value), 1);
|
|
862
|
+
const minR = 5;
|
|
863
|
+
const maxR = Math.min(20, Math.min(area.width, area.height) * 0.06);
|
|
864
|
+
for (let ni = 0; ni < graphNodes.length; ni++) {
|
|
865
|
+
const gn = graphNodes[ni];
|
|
866
|
+
const color = options.colors[ni % options.colors.length];
|
|
867
|
+
const r = minR + gn.value / maxVal * (maxR - minR);
|
|
868
|
+
const nodeGroup = [];
|
|
869
|
+
nodeGroup.push(chunkW626EAS5_cjs.circle(gn.x, gn.y, r, {
|
|
870
|
+
class: "chartts-graph-node",
|
|
871
|
+
fill: color,
|
|
872
|
+
fillOpacity: 0.85,
|
|
873
|
+
stroke: color,
|
|
874
|
+
strokeWidth: 1.5,
|
|
875
|
+
"data-series": ni,
|
|
876
|
+
"data-index": 0,
|
|
877
|
+
tabindex: 0,
|
|
878
|
+
role: "img",
|
|
879
|
+
ariaLabel: `${gn.name}: ${gn.value}`
|
|
880
|
+
}));
|
|
881
|
+
nodeGroup.push(chunkW626EAS5_cjs.text(gn.x, gn.y - r - 5, gn.name, {
|
|
882
|
+
class: "chartts-graph-label",
|
|
883
|
+
fill: theme.textColor,
|
|
884
|
+
textAnchor: "middle",
|
|
885
|
+
dominantBaseline: "auto",
|
|
886
|
+
fontSize: theme.fontSizeSmall,
|
|
887
|
+
fontFamily: theme.fontFamily
|
|
888
|
+
}));
|
|
889
|
+
nodes.push(chunkW626EAS5_cjs.group(nodeGroup, {
|
|
890
|
+
class: `chartts-series chartts-series-${ni}`,
|
|
891
|
+
"data-series-name": gn.name
|
|
892
|
+
}));
|
|
893
|
+
}
|
|
894
|
+
return nodes;
|
|
810
895
|
},
|
|
811
896
|
hitTest(ctx, mx, my) {
|
|
812
|
-
const { data, area,
|
|
897
|
+
const { data, area, options } = ctx;
|
|
813
898
|
const graphOpts = options;
|
|
814
|
-
|
|
815
|
-
|
|
816
|
-
for (const node of graphNodes) {
|
|
817
|
-
const size = measureNodeSize(node.label, theme.fontSizeSmall, node.shape);
|
|
818
|
-
node.width = size.width;
|
|
819
|
-
node.height = size.height;
|
|
899
|
+
if (graphOpts.nodes || graphOpts.edges) {
|
|
900
|
+
return richHitTest(ctx, mx, my);
|
|
820
901
|
}
|
|
821
|
-
|
|
902
|
+
const { graphNodes, graphEdges } = parseLegacyGraphData(data);
|
|
903
|
+
if (graphNodes.length === 0) return null;
|
|
904
|
+
forceLayout2(graphNodes, graphEdges, area, 80);
|
|
905
|
+
const maxVal = Math.max(...graphNodes.map((n) => n.value), 1);
|
|
906
|
+
const minR = 5;
|
|
907
|
+
const maxR = Math.min(20, Math.min(area.width, area.height) * 0.06);
|
|
822
908
|
let best = null;
|
|
823
909
|
let bestDist = Infinity;
|
|
824
|
-
for (
|
|
825
|
-
const
|
|
826
|
-
|
|
910
|
+
for (let ni = 0; ni < graphNodes.length; ni++) {
|
|
911
|
+
const gn = graphNodes[ni];
|
|
912
|
+
const r = minR + gn.value / maxVal * (maxR - minR);
|
|
913
|
+
const dist = Math.sqrt((mx - gn.x) ** 2 + (my - gn.y) ** 2);
|
|
914
|
+
if (dist < bestDist && dist < r + 8) {
|
|
827
915
|
bestDist = dist;
|
|
828
|
-
best = { seriesIndex:
|
|
916
|
+
best = { seriesIndex: ni, pointIndex: 0, distance: dist, x: gn.x, y: gn.y };
|
|
829
917
|
}
|
|
830
918
|
}
|
|
831
919
|
return best;
|
|
832
920
|
}
|
|
833
921
|
};
|
|
922
|
+
function renderRichGraph(ctx) {
|
|
923
|
+
const { data, area, theme, options } = ctx;
|
|
924
|
+
const graphOpts = options;
|
|
925
|
+
const result = [];
|
|
926
|
+
const { graphNodes, graphEdges } = parseGraphData(data, options);
|
|
927
|
+
if (graphNodes.length === 0) return result;
|
|
928
|
+
for (const node of graphNodes) {
|
|
929
|
+
const size = measureNodeSize(node.label, theme.fontSizeSmall, node.shape);
|
|
930
|
+
node.width = size.width;
|
|
931
|
+
node.height = size.height;
|
|
932
|
+
}
|
|
933
|
+
runLayout(graphNodes, graphEdges, graphOpts, area);
|
|
934
|
+
const edgeNodes = renderEdges(graphNodes, graphEdges, graphOpts, theme);
|
|
935
|
+
if (edgeNodes.length > 0) {
|
|
936
|
+
result.push(chunkW626EAS5_cjs.group(edgeNodes, { class: "chartts-graph-edges" }));
|
|
937
|
+
}
|
|
938
|
+
for (const node of graphNodes) {
|
|
939
|
+
const color = node.color ?? options.colors[node.index % options.colors.length];
|
|
940
|
+
const shapeNodes = renderNodeShape(node, color, theme);
|
|
941
|
+
result.push(chunkW626EAS5_cjs.group(shapeNodes, {
|
|
942
|
+
class: `chartts-series chartts-series-${node.index}`,
|
|
943
|
+
"data-series-name": node.label
|
|
944
|
+
}));
|
|
945
|
+
}
|
|
946
|
+
return result;
|
|
947
|
+
}
|
|
948
|
+
function richHitTest(ctx, mx, my) {
|
|
949
|
+
const { data, area, theme, options } = ctx;
|
|
950
|
+
const graphOpts = options;
|
|
951
|
+
const { graphNodes, graphEdges } = parseGraphData(data, options);
|
|
952
|
+
if (graphNodes.length === 0) return null;
|
|
953
|
+
for (const node of graphNodes) {
|
|
954
|
+
const size = measureNodeSize(node.label, theme.fontSizeSmall, node.shape);
|
|
955
|
+
node.width = size.width;
|
|
956
|
+
node.height = size.height;
|
|
957
|
+
}
|
|
958
|
+
runLayout(graphNodes, graphEdges, graphOpts, area);
|
|
959
|
+
let best = null;
|
|
960
|
+
let bestDist = Infinity;
|
|
961
|
+
for (const node of graphNodes) {
|
|
962
|
+
const dist = shapeDistance(node, mx, my);
|
|
963
|
+
if (dist < bestDist && dist < 8) {
|
|
964
|
+
bestDist = dist;
|
|
965
|
+
best = { seriesIndex: node.index, pointIndex: 0, distance: dist, x: node.x, y: node.y };
|
|
966
|
+
}
|
|
967
|
+
}
|
|
968
|
+
return best;
|
|
969
|
+
}
|
|
834
970
|
function runLayout(nodes, edges, opts, area) {
|
|
835
971
|
const layout = opts.layout ?? "force";
|
|
836
972
|
switch (layout) {
|
|
@@ -875,7 +1011,6 @@ function shapeDistance(node, mx, my) {
|
|
|
875
1011
|
const d = dx * dx / (rx * rx) + dy * dy / (ry * ry);
|
|
876
1012
|
return d <= 1 ? 0 : Math.sqrt(dx * dx + dy * dy) * (Math.sqrt(d) - 1);
|
|
877
1013
|
}
|
|
878
|
-
// rect, stadium
|
|
879
1014
|
default: {
|
|
880
1015
|
const hw = node.width / 2;
|
|
881
1016
|
const hh = node.height / 2;
|
|
@@ -885,7 +1020,125 @@ function shapeDistance(node, mx, my) {
|
|
|
885
1020
|
}
|
|
886
1021
|
}
|
|
887
1022
|
}
|
|
1023
|
+
function parseLegacyGraphData(data, _options) {
|
|
1024
|
+
const graphNodes = [];
|
|
1025
|
+
const graphEdges = [];
|
|
1026
|
+
const nodeMap = /* @__PURE__ */ new Map();
|
|
1027
|
+
function getOrCreateNode(name, value = 1) {
|
|
1028
|
+
if (nodeMap.has(name)) return nodeMap.get(name);
|
|
1029
|
+
const idx = graphNodes.length;
|
|
1030
|
+
nodeMap.set(name, idx);
|
|
1031
|
+
graphNodes.push({
|
|
1032
|
+
name,
|
|
1033
|
+
index: idx,
|
|
1034
|
+
value,
|
|
1035
|
+
x: 0,
|
|
1036
|
+
y: 0,
|
|
1037
|
+
vx: 0,
|
|
1038
|
+
vy: 0
|
|
1039
|
+
});
|
|
1040
|
+
return idx;
|
|
1041
|
+
}
|
|
1042
|
+
const hasArrows = data.series.some((s) => s.name.includes("\u2192") || s.name.includes("->"));
|
|
1043
|
+
if (hasArrows) {
|
|
1044
|
+
for (const series of data.series) {
|
|
1045
|
+
const parts = series.name.split(/\s*(?:→|->)\s*/);
|
|
1046
|
+
if (parts.length < 2) continue;
|
|
1047
|
+
const srcName = parts[0].trim();
|
|
1048
|
+
const tgtName = parts[1].trim();
|
|
1049
|
+
const weight = series.values[0] ?? 1;
|
|
1050
|
+
const src = getOrCreateNode(srcName);
|
|
1051
|
+
const tgt = getOrCreateNode(tgtName);
|
|
1052
|
+
graphEdges.push({ source: src, target: tgt, weight });
|
|
1053
|
+
graphNodes[src].value += weight;
|
|
1054
|
+
graphNodes[tgt].value += weight;
|
|
1055
|
+
}
|
|
1056
|
+
} else {
|
|
1057
|
+
for (let i = 0; i < data.labels.length; i++) {
|
|
1058
|
+
getOrCreateNode(String(data.labels[i]), Math.abs(data.series[0]?.values[i] ?? 1));
|
|
1059
|
+
}
|
|
1060
|
+
if (data.series.length > 1 && data.series.length === data.labels.length) {
|
|
1061
|
+
for (let si = 0; si < data.series.length; si++) {
|
|
1062
|
+
for (let j = 0; j < data.series[si].values.length; j++) {
|
|
1063
|
+
const val = data.series[si].values[j];
|
|
1064
|
+
if (val > 0 && si !== j) {
|
|
1065
|
+
graphEdges.push({ source: si, target: j, weight: val });
|
|
1066
|
+
}
|
|
1067
|
+
}
|
|
1068
|
+
}
|
|
1069
|
+
}
|
|
1070
|
+
}
|
|
1071
|
+
return { graphNodes, graphEdges };
|
|
1072
|
+
}
|
|
1073
|
+
function forceLayout2(nodes, edges, area, iterations) {
|
|
1074
|
+
const cx = area.x + area.width / 2;
|
|
1075
|
+
const cy = area.y + area.height / 2;
|
|
1076
|
+
const n = nodes.length;
|
|
1077
|
+
if (n === 0) return;
|
|
1078
|
+
for (let i = 0; i < n; i++) {
|
|
1079
|
+
const angle = 2 * Math.PI * i / n;
|
|
1080
|
+
const r = Math.min(area.width, area.height) * 0.3;
|
|
1081
|
+
nodes[i].x = cx + r * Math.cos(angle);
|
|
1082
|
+
nodes[i].y = cy + r * Math.sin(angle);
|
|
1083
|
+
nodes[i].vx = 0;
|
|
1084
|
+
nodes[i].vy = 0;
|
|
1085
|
+
}
|
|
1086
|
+
const k = Math.sqrt(area.width * area.height / Math.max(n, 1));
|
|
1087
|
+
const repulsion = k * k;
|
|
1088
|
+
for (let iter = 0; iter < iterations; iter++) {
|
|
1089
|
+
const temp = 0.1 * (1 - iter / iterations) * Math.min(area.width, area.height) * 0.5;
|
|
1090
|
+
for (const node of nodes) {
|
|
1091
|
+
node.vx = 0;
|
|
1092
|
+
node.vy = 0;
|
|
1093
|
+
}
|
|
1094
|
+
for (let i = 0; i < n; i++) {
|
|
1095
|
+
for (let j = i + 1; j < n; j++) {
|
|
1096
|
+
const dx = nodes[i].x - nodes[j].x;
|
|
1097
|
+
const dy = nodes[i].y - nodes[j].y;
|
|
1098
|
+
const dist = Math.max(Math.sqrt(dx * dx + dy * dy), 1);
|
|
1099
|
+
const force = repulsion / (dist * dist);
|
|
1100
|
+
const fx = dx / dist * force;
|
|
1101
|
+
const fy = dy / dist * force;
|
|
1102
|
+
nodes[i].vx += fx;
|
|
1103
|
+
nodes[i].vy += fy;
|
|
1104
|
+
nodes[j].vx -= fx;
|
|
1105
|
+
nodes[j].vy -= fy;
|
|
1106
|
+
}
|
|
1107
|
+
}
|
|
1108
|
+
for (const edge of edges) {
|
|
1109
|
+
const src = nodes[edge.source];
|
|
1110
|
+
const tgt = nodes[edge.target];
|
|
1111
|
+
const dx = tgt.x - src.x;
|
|
1112
|
+
const dy = tgt.y - src.y;
|
|
1113
|
+
const dist = Math.max(Math.sqrt(dx * dx + dy * dy), 1);
|
|
1114
|
+
const force = dist * dist / k;
|
|
1115
|
+
const fx = dx / dist * force * 0.1;
|
|
1116
|
+
const fy = dy / dist * force * 0.1;
|
|
1117
|
+
src.vx += fx;
|
|
1118
|
+
src.vy += fy;
|
|
1119
|
+
tgt.vx -= fx;
|
|
1120
|
+
tgt.vy -= fy;
|
|
1121
|
+
}
|
|
1122
|
+
for (const node of nodes) {
|
|
1123
|
+
const dx = cx - node.x;
|
|
1124
|
+
const dy = cy - node.y;
|
|
1125
|
+
node.vx += dx * 0.01;
|
|
1126
|
+
node.vy += dy * 0.01;
|
|
1127
|
+
}
|
|
1128
|
+
for (const node of nodes) {
|
|
1129
|
+
const speed = Math.sqrt(node.vx * node.vx + node.vy * node.vy);
|
|
1130
|
+
if (speed > 0) {
|
|
1131
|
+
const capped = Math.min(speed, temp);
|
|
1132
|
+
node.x += node.vx / speed * capped;
|
|
1133
|
+
node.y += node.vy / speed * capped;
|
|
1134
|
+
}
|
|
1135
|
+
const margin = 20;
|
|
1136
|
+
node.x = Math.max(area.x + margin, Math.min(area.x + area.width - margin, node.x));
|
|
1137
|
+
node.y = Math.max(area.y + margin, Math.min(area.y + area.height - margin, node.y));
|
|
1138
|
+
}
|
|
1139
|
+
}
|
|
1140
|
+
}
|
|
888
1141
|
|
|
889
1142
|
exports.graphChartType = graphChartType;
|
|
890
|
-
//# sourceMappingURL=chunk-
|
|
891
|
-
//# sourceMappingURL=chunk-
|
|
1143
|
+
//# sourceMappingURL=chunk-PX7MLSIH.cjs.map
|
|
1144
|
+
//# sourceMappingURL=chunk-PX7MLSIH.cjs.map
|