@primeui/chart-core 0.0.1-alpha.1 → 1.0.0-rc.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.md +35 -0
- package/README.md +12 -0
- package/dist/animations/index.d.mts +1 -1
- package/dist/animations/index.mjs +19 -18
- package/dist/{annotation.utils-Bm0lOO1o.d.mts → annotation.utils-D-7ijAWO.d.mts} +22 -1
- package/dist/cartesian/index.d.mts +3 -2
- package/dist/cartesian/index.mjs +96 -93
- package/dist/{chunk-WPFUV7K3.mjs → chunks/chunk-2LLTN7T4.mjs} +23 -14
- package/dist/{chunk-RO4N6YFS.mjs → chunks/chunk-2T226WJI.mjs} +31 -14
- package/dist/{chunk-3FFJEX4A.mjs → chunks/chunk-3QQLETCJ.mjs} +13 -12
- package/dist/{chunk-JWFBOPM6.mjs → chunks/chunk-4N2XIMAB.mjs} +2 -2
- package/dist/{chunk-LVMDQ4OJ.mjs → chunks/chunk-4S3FOFCN.mjs} +2 -2
- package/dist/{chunk-XTVE4P3L.mjs → chunks/chunk-56MASQS2.mjs} +6 -2
- package/dist/{chunk-DTWTCFRG.mjs → chunks/chunk-5EQSFUBA.mjs} +41 -13
- package/dist/{chunk-KQIFO5I3.mjs → chunks/chunk-5QSTMSPW.mjs} +15 -10
- package/dist/{chunk-NKUYIWAP.mjs → chunks/chunk-6LUIVTNV.mjs} +6 -6
- package/dist/chunks/chunk-6MAO6I3E.mjs +6 -0
- package/dist/{chunk-DN6AXQYZ.mjs → chunks/chunk-72M66Y2U.mjs} +46 -41
- package/dist/{chunk-WFVOQ2QZ.mjs → chunks/chunk-77K3DEKL.mjs} +2 -2
- package/dist/{chunk-4C6EVJ54.mjs → chunks/chunk-7I2SAKHL.mjs} +7 -44
- package/dist/{chunk-6HSEJLSR.mjs → chunks/chunk-7I2SNJ2X.mjs} +35 -18
- package/dist/{chunk-66T4MRC5.mjs → chunks/chunk-7IKKWWRT.mjs} +4 -6
- package/dist/{chunk-BKP26M4K.mjs → chunks/chunk-7LZWQVTL.mjs} +43 -24
- package/dist/{chunk-NHRK5KU2.mjs → chunks/chunk-A5YBHYIS.mjs} +25 -17
- package/dist/{chunk-ZT2Z7ERM.mjs → chunks/chunk-AC5EAWIP.mjs} +12 -9
- package/dist/{chunk-ZTL2FQEW.mjs → chunks/chunk-AETETRB4.mjs} +24 -9
- package/dist/{chunk-NPDZLYIF.mjs → chunks/chunk-AJ24XDEK.mjs} +2 -2
- package/dist/chunks/chunk-ARVMVGWS.mjs +40 -0
- package/dist/{chunk-3IYSJ2U7.mjs → chunks/chunk-AYEAEAOV.mjs} +10 -7
- package/dist/{chunk-M7B3JF43.mjs → chunks/chunk-AZPJMIZE.mjs} +4 -3
- package/dist/{chunk-O2X6FF45.mjs → chunks/chunk-BDCNBS6W.mjs} +194 -168
- package/dist/{chunk-55Y3WI6S.mjs → chunks/chunk-BR4PSSPU.mjs} +6 -6
- package/dist/{chunk-TA4MVAEX.mjs → chunks/chunk-CFA2SUBF.mjs} +32 -24
- package/dist/{chunk-WH3C3Y7P.mjs → chunks/chunk-CKQ4DNNJ.mjs} +7 -18
- package/dist/chunks/chunk-DIJFKY6H.mjs +21 -0
- package/dist/{chunk-AUF4CHDP.mjs → chunks/chunk-DJOHDKTP.mjs} +18 -11
- package/dist/{chunk-3Z62EUJN.mjs → chunks/chunk-DKWZKYHF.mjs} +5 -5
- package/dist/{chunk-Y3L3D4GQ.mjs → chunks/chunk-DORUY7GR.mjs} +69 -34
- package/dist/chunks/chunk-DWBJKYLH.mjs +238 -0
- package/dist/{chunk-XQQCGFYB.mjs → chunks/chunk-EQLCJTM4.mjs} +1 -1
- package/dist/{chunk-VGLSBZDN.mjs → chunks/chunk-F2E2QCZM.mjs} +1 -1
- package/dist/{chunk-BZN2QHGP.mjs → chunks/chunk-F6AGZQDA.mjs} +4 -72
- package/dist/{chunk-ILUWFYGY.mjs → chunks/chunk-FNMLVZOA.mjs} +8 -8
- package/dist/{chunk-SXHVDJGF.mjs → chunks/chunk-FQAFGPW6.mjs} +6 -6
- package/dist/{chunk-N3TIT3OH.mjs → chunks/chunk-FSPE3M5E.mjs} +66 -43
- package/dist/{chunk-KNDZP446.mjs → chunks/chunk-FSWYYRPX.mjs} +5 -5
- package/dist/{chunk-KP2TWD4Z.mjs → chunks/chunk-FWNWV3H7.mjs} +1 -1
- package/dist/{chunk-WCG35U6M.mjs → chunks/chunk-FYVMRQFF.mjs} +35 -27
- package/dist/chunks/chunk-G3DIMENH.mjs +63 -0
- package/dist/{chunk-QQBXUDM4.mjs → chunks/chunk-G3DYNMWT.mjs} +20 -16
- package/dist/{chunk-J65DBT4R.mjs → chunks/chunk-GA6YZQYT.mjs} +3 -3
- package/dist/chunks/chunk-GAQLLQUM.mjs +20 -0
- package/dist/{chunk-TAHCOZHF.mjs → chunks/chunk-GN7VQCCH.mjs} +27 -30
- package/dist/{chunk-R6Y3R7EW.mjs → chunks/chunk-GOOBVFFH.mjs} +1 -1
- package/dist/chunks/chunk-GSW5OBEG.mjs +233 -0
- package/dist/{chunk-22ST6YPP.mjs → chunks/chunk-GTX6MLTG.mjs} +9 -9
- package/dist/{chunk-XUAASRXW.mjs → chunks/chunk-GWHRTGGC.mjs} +35 -27
- package/dist/{chunk-TQ6S34QZ.mjs → chunks/chunk-GXCLRRE5.mjs} +6 -6
- package/dist/{chunk-DP2IZNN3.mjs → chunks/chunk-HHBFQ6AI.mjs} +4 -3
- package/dist/{chunk-3OZLP4I4.mjs → chunks/chunk-HWT6UEYE.mjs} +14 -10
- package/dist/{chunk-X7T34OLW.mjs → chunks/chunk-I25SSZE3.mjs} +3 -3
- package/dist/{chunk-OGJ6IIBW.mjs → chunks/chunk-IFJPDARC.mjs} +21 -9
- package/dist/{chunk-CINXJIRR.mjs → chunks/chunk-ISU27QL2.mjs} +66 -6
- package/dist/{chunk-OXTFAWSK.mjs → chunks/chunk-J2WHJ73Y.mjs} +7 -2
- package/dist/{chunk-VN7CKCSE.mjs → chunks/chunk-JS47MSB2.mjs} +9 -1
- package/dist/{chunk-WYLILAOO.mjs → chunks/chunk-K44SD67H.mjs} +16 -7
- package/dist/{chunk-RQ3CKQOX.mjs → chunks/chunk-K7AGQTVK.mjs} +63 -3
- package/dist/{chunk-VVI3OBPJ.mjs → chunks/chunk-KCSMOAZO.mjs} +7 -9
- package/dist/{chunk-ARRGOEFX.mjs → chunks/chunk-L6GXEQOO.mjs} +7 -7
- package/dist/{chunk-7QQ6ETB4.mjs → chunks/chunk-LBNP5PJA.mjs} +14 -12
- package/dist/{chunk-AHYIS6EB.mjs → chunks/chunk-LC2ZEZWP.mjs} +7 -7
- package/dist/{chunk-3WEMHXZI.mjs → chunks/chunk-LTQH3LQJ.mjs} +2 -8
- package/dist/{chunk-OHGCZZPZ.mjs → chunks/chunk-M5PZVFY5.mjs} +57 -29
- package/dist/{chunk-A6ZQZFL2.mjs → chunks/chunk-NUHW3U7G.mjs} +14 -11
- package/dist/{chunk-QWQ6HY4I.mjs → chunks/chunk-O4BTKF5R.mjs} +9 -8
- package/dist/{chunk-WY4AURRE.mjs → chunks/chunk-P2Q4DYOS.mjs} +240 -83
- package/dist/{chunk-KVDEROP6.mjs → chunks/chunk-P563L7WL.mjs} +1 -1
- package/dist/{chunk-SDBPQ5CF.mjs → chunks/chunk-PJLFNUOW.mjs} +45 -30
- package/dist/{chunk-MTGMXRNF.mjs → chunks/chunk-PSDRVQSK.mjs} +7 -7
- package/dist/{chunk-6STOLMCA.mjs → chunks/chunk-QCBESCLG.mjs} +13 -12
- package/dist/{chunk-PRDVPOZX.mjs → chunks/chunk-QIYJUZ7I.mjs} +7 -2
- package/dist/{chunk-UPRXABX5.mjs → chunks/chunk-RH3OQ2VX.mjs} +6 -6
- package/dist/{chunk-QS76E3TD.mjs → chunks/chunk-RI32WIDX.mjs} +2 -2
- package/dist/{chunk-OWW3K55O.mjs → chunks/chunk-RIAPS5AW.mjs} +49 -7
- package/dist/{chunk-ERVQB2VZ.mjs → chunks/chunk-RJ3ZOZTS.mjs} +4 -4
- package/dist/{chunk-WFTX4AQJ.mjs → chunks/chunk-RKNL7UWZ.mjs} +19 -7
- package/dist/chunks/chunk-RLS3GMJ6.mjs +8 -0
- package/dist/{chunk-WRULPWHD.mjs → chunks/chunk-RVTEIKW5.mjs} +5 -5
- package/dist/{chunk-PLSDU3C2.mjs → chunks/chunk-RXQ22JQS.mjs} +67 -39
- package/dist/{chunk-FHTC2YDB.mjs → chunks/chunk-SVASYTK5.mjs} +70 -5
- package/dist/{chunk-ARB5T6MP.mjs → chunks/chunk-SWVOBJLG.mjs} +3 -100
- package/dist/{chunk-JGOVWSKH.mjs → chunks/chunk-TW3KLJVO.mjs} +37 -12
- package/dist/{chunk-RBLZRT5K.mjs → chunks/chunk-UF2TPGQB.mjs} +103 -15
- package/dist/{chunk-X4D7FKUS.mjs → chunks/chunk-UZWWYKL7.mjs} +2 -2
- package/dist/{chunk-LKC7MZKK.mjs → chunks/chunk-XECVYJE2.mjs} +16 -8
- package/dist/chunks/chunk-XMSAUIVL.mjs +1 -0
- package/dist/{chunk-J4RI2C2G.mjs → chunks/chunk-XPZTRMU2.mjs} +6 -6
- package/dist/{chunk-BABQKA6K.mjs → chunks/chunk-XXJRGDKE.mjs} +3 -3
- package/dist/{chunk-SALTGZFR.mjs → chunks/chunk-YVDVKLPR.mjs} +10 -9
- package/dist/circular/arc/index.mjs +3 -3
- package/dist/circular/index.d.mts +1 -1
- package/dist/circular/index.mjs +14 -13
- package/dist/controllers/index.mjs +113 -110
- package/dist/{datalabel.utils-CkjGeB8S.d.mts → datalabel.utils-CNRKHy7j.d.mts} +10 -1
- package/dist/{decimation.utils-CcvJVhI4.d.mts → decimation.utils-C0xpslz_.d.mts} +33 -2
- package/dist/geometry-BVWJedvw.d.mts +53 -0
- package/dist/index.d.mts +16 -17
- package/dist/index.mjs +113 -110
- package/dist/luminance-TvUgaQ91.d.mts +57 -0
- package/dist/orchestrator/index.d.mts +2 -2
- package/dist/orchestrator/index.mjs +36 -33
- package/dist/plugins/index.mjs +1 -1
- package/dist/{property-animations-D433wXzz.d.mts → property-animations-CI0zyp6V.d.mts} +6 -20
- package/dist/radial/index.mjs +40 -37
- package/dist/renderers/axis/index.mjs +9 -8
- package/dist/renderers/index.d.mts +8 -9
- package/dist/renderers/index.mjs +78 -75
- package/dist/renderers/navigator/index.d.mts +1 -1
- package/dist/renderers/navigator/index.mjs +10 -8
- package/dist/{ring.utils-DXvrxMkU.d.mts → ring.utils-aHt9Nqum.d.mts} +2 -7
- package/dist/{scale-KFv30jqZ.d.mts → scale-CFkPlyUe.d.mts} +2 -2
- package/dist/{scales-Drf8AIhL.d.mts → scales-BZzjlR4U.d.mts} +15 -1
- package/dist/series/bar/canvas/index.mjs +11 -10
- package/dist/series/bar/controller/index.d.mts +17 -0
- package/dist/series/bar/controller/index.mjs +47 -44
- package/dist/series/bar/controller-canvas/index.mjs +47 -44
- package/dist/series/bar/controller-svg/index.mjs +47 -44
- package/dist/series/bar/index.d.mts +2 -2
- package/dist/series/bar/index.mjs +16 -13
- package/dist/series/bar/svg/index.mjs +14 -11
- package/dist/series/candlestick/canvas/index.mjs +8 -8
- package/dist/series/candlestick/controller/index.d.mts +2 -0
- package/dist/series/candlestick/controller/index.mjs +43 -40
- package/dist/series/candlestick/controller-canvas/index.mjs +43 -40
- package/dist/series/candlestick/controller-svg/index.mjs +43 -40
- package/dist/series/candlestick/index.mjs +11 -10
- package/dist/series/candlestick/svg/index.mjs +8 -8
- package/dist/series/heatmap/canvas/index.mjs +9 -9
- package/dist/series/heatmap/controller/index.d.mts +9 -0
- package/dist/series/heatmap/controller/index.mjs +26 -23
- package/dist/series/heatmap/controller-canvas/index.mjs +26 -23
- package/dist/series/heatmap/controller-svg/index.mjs +26 -23
- package/dist/series/heatmap/index.mjs +14 -13
- package/dist/series/heatmap/svg/index.mjs +11 -10
- package/dist/series/line/canvas/index.mjs +9 -9
- package/dist/series/line/controller/index.d.mts +7 -0
- package/dist/series/line/controller/index.mjs +51 -47
- package/dist/series/line/controller-canvas/index.mjs +53 -49
- package/dist/series/line/controller-svg/index.mjs +53 -49
- package/dist/series/line/index.d.mts +1 -1
- package/dist/series/line/index.mjs +17 -13
- package/dist/series/line/svg/index.mjs +12 -9
- package/dist/series/pie/canvas/index.d.mts +12 -4
- package/dist/series/pie/canvas/index.mjs +15 -10
- package/dist/series/pie/controller/index.mjs +113 -110
- package/dist/series/pie/controller-canvas/index.mjs +113 -110
- package/dist/series/pie/controller-svg/index.mjs +113 -110
- package/dist/series/pie/index.d.mts +3 -56
- package/dist/series/pie/index.mjs +11 -15
- package/dist/series/pie/svg/index.d.mts +18 -4
- package/dist/series/pie/svg/index.mjs +10 -11
- package/dist/series/polar/canvas/index.mjs +7 -7
- package/dist/series/polar/controller/index.d.mts +9 -0
- package/dist/series/polar/controller/index.mjs +49 -46
- package/dist/series/polar/controller-canvas/index.mjs +50 -47
- package/dist/series/polar/controller-svg/index.mjs +50 -47
- package/dist/series/polar/index.d.mts +1 -1
- package/dist/series/polar/index.mjs +19 -16
- package/dist/series/polar/svg/index.mjs +11 -8
- package/dist/series/radar/canvas/index.mjs +8 -8
- package/dist/series/radar/controller/index.d.mts +11 -0
- package/dist/series/radar/controller/index.mjs +46 -43
- package/dist/series/radar/controller-canvas/index.mjs +49 -46
- package/dist/series/radar/controller-svg/index.mjs +49 -46
- package/dist/series/radar/index.d.mts +3 -3
- package/dist/series/radar/index.mjs +16 -13
- package/dist/series/radar/svg/index.mjs +12 -9
- package/dist/series/scatter/canvas/index.mjs +13 -11
- package/dist/series/scatter/controller/index.mjs +48 -44
- package/dist/series/scatter/controller-canvas/index.mjs +50 -46
- package/dist/series/scatter/controller-svg/index.mjs +50 -46
- package/dist/series/scatter/index.d.mts +1 -1
- package/dist/series/scatter/index.mjs +18 -14
- package/dist/series/scatter/svg/index.mjs +16 -12
- package/dist/series/treemap/canvas/index.mjs +10 -10
- package/dist/series/treemap/controller/index.mjs +23 -20
- package/dist/series/treemap/controller-canvas/index.mjs +23 -20
- package/dist/series/treemap/controller-svg/index.mjs +23 -20
- package/dist/series/treemap/index.d.mts +17 -9
- package/dist/series/treemap/index.mjs +12 -12
- package/dist/series/treemap/svg/index.mjs +9 -9
- package/dist/{stacking-CChuAcLN.d.mts → stacking-Dz1OBhzm.d.mts} +1 -1
- package/dist/sync/index.mjs +6 -5
- package/dist/{tooltip.renderer-D5wpSlBa.d.mts → tooltip.renderer-C3z-UKm4.d.mts} +4 -4
- package/dist/utils/color/index.d.mts +11 -53
- package/dist/utils/color/index.mjs +4 -4
- package/dist/utils/data/index.d.mts +2 -2
- package/dist/utils/data/index.mjs +7 -7
- package/dist/utils/export/index.mjs +6 -6
- package/dist/utils/index.d.mts +7 -7
- package/dist/utils/index.mjs +32 -29
- package/dist/utils/interaction/index.d.mts +1 -31
- package/dist/utils/interaction/index.mjs +12 -9
- package/dist/utils/layout/index.mjs +10 -10
- package/dist/utils/math/index.d.mts +1 -1
- package/dist/utils/math/index.mjs +1 -1
- package/dist/utils/render/index.mjs +3 -3
- package/dist/utils/specialized/index.d.mts +1 -1
- package/dist/utils/specialized/index.mjs +13 -15
- package/dist/utils/text/index.d.mts +1 -1
- package/dist/utils/text/index.mjs +9 -8
- package/dist/utils/theme/index.d.mts +6 -6
- package/dist/utils/theme/index.mjs +5 -5
- package/dist/utils/zoom/index.mjs +3 -3
- package/package.json +5 -10
- package/LICENSE +0 -23
- package/dist/canvas-D4vigq47.d.mts +0 -34
- package/dist/chunk-2QRS4YQ5.mjs +0 -18
- package/dist/chunk-53HW45JB.mjs +0 -102
- package/dist/chunk-B4FTADAZ.mjs +0 -561
- package/dist/chunk-IXOWSEHO.mjs +0 -114
- package/dist/chunk-VWF57TS3.mjs +0 -62
- package/dist/chunk-XIHBK5D3.mjs +0 -68
- package/dist/renderers/circular/index.d.mts +0 -13
- package/dist/renderers/circular/index.mjs +0 -13
- package/dist/{chunk-WA3OVISZ.mjs → chunks/chunk-4KQZXAHZ.mjs} +0 -0
- package/dist/{chunk-CHW4RKY3.mjs → chunks/chunk-576P5DBH.mjs} +0 -0
- package/dist/{chunk-EDAKJLNA.mjs → chunks/chunk-5WFF272M.mjs} +0 -0
- package/dist/{chunk-ADKLH73T.mjs → chunks/chunk-6XZ6U7GL.mjs} +0 -0
- package/dist/{chunk-2QK2KOBN.mjs → chunks/chunk-AOTUNMVD.mjs} +0 -0
- package/dist/{chunk-AGU3NG6D.mjs → chunks/chunk-AWMO5TS3.mjs} +0 -0
- package/dist/{chunk-SSLTFJ3U.mjs → chunks/chunk-BF7RP4A3.mjs} +132 -132
- /package/dist/{chunk-BETFQBM2.mjs → chunks/chunk-FML3QEEI.mjs} +0 -0
- /package/dist/{chunk-FFMT6OCO.mjs → chunks/chunk-FRVJH7ZG.mjs} +0 -0
- /package/dist/{chunk-HDFGCN2F.mjs → chunks/chunk-HBTCRORW.mjs} +0 -0
- /package/dist/{chunk-7CMVDIOU.mjs → chunks/chunk-HXDLOOCS.mjs} +0 -0
- /package/dist/{chunk-5JCI2DEB.mjs → chunks/chunk-JQVX6XFW.mjs} +0 -0
- /package/dist/{chunk-C36VWQ7A.mjs → chunks/chunk-KMKULH54.mjs} +0 -0
- /package/dist/{chunk-Q6PPVIHU.mjs → chunks/chunk-MT3OLVZC.mjs} +0 -0
- /package/dist/{chunk-WS64BZXT.mjs → chunks/chunk-OWVSSQZ4.mjs} +0 -0
- /package/dist/{chunk-EAMUNLRU.mjs → chunks/chunk-P2LG7GDM.mjs} +0 -0
- /package/dist/{chunk-IEGLX7VL.mjs → chunks/chunk-PXUXZADY.mjs} +0 -0
- /package/dist/{chunk-SANZPAJ4.mjs → chunks/chunk-SFUDXJKO.mjs} +0 -0
- /package/dist/{chunk-ZQFK6CAE.mjs → chunks/chunk-SJNUJM54.mjs} +0 -0
- /package/dist/{chunk-AP3UYWYT.mjs → chunks/chunk-SPU6BO3B.mjs} +0 -0
- /package/dist/{chunk-YBJ56XJS.mjs → chunks/chunk-T2UAEMHY.mjs} +0 -0
- /package/dist/{chunk-JO7VACY2.mjs → chunks/chunk-VADXCPQ4.mjs} +0 -0
- /package/dist/{chunk-FRST55HY.mjs → chunks/chunk-ZZCVDIU5.mjs} +0 -0
|
@@ -1,20 +1,26 @@
|
|
|
1
|
-
import { advanceCategoryLerp, initCategoryLerp, snapCategoryLerp, initTimeDomainLerp, initDomainLerp, initDomainLerpTickFade, snapDomainLerp, snapTimeDomainLerp, advanceDomainLerp, advanceTimeDomainLerp } from './chunk-
|
|
2
|
-
import { transformValues, computeStackBases, detectCartesianMode, computeWaterfallBases } from './chunk-
|
|
3
|
-
import { renderCartesianOverlay } from './chunk-
|
|
4
|
-
import { computeBarDatasetTotals } from './chunk-
|
|
5
|
-
import { calculateAxisSpace, calculateAxisLayout } from './chunk-
|
|
6
|
-
import { parseAnimationConfig } from './chunk-
|
|
7
|
-
import { getResponsiveTier, getAdaptiveDefaults, getAdaptiveTickCount } from './chunk-
|
|
8
|
-
import { cancelRaf, raf } from './chunk-
|
|
9
|
-
import { computeCartesianDomain, selectGroupingInterval, groupTimeData, resolveIncludeZero, computeDomainContribution, mergeDomainContributions, expandScatterBubblePadding, expandDataLabelPadding, computeVisibleValues } from './chunk-
|
|
10
|
-
import { collectItems } from './chunk-
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
14
|
-
import { batchResolveRequired, batchResolveAccessor, FIELD_DEFAULTS, resolveAccessor, makeItemContext } from './chunk-
|
|
15
|
-
import {
|
|
1
|
+
import { advanceCategoryLerp, initCategoryLerp, snapCategoryLerp, initTimeDomainLerp, initDomainLerp, initDomainLerpTickFade, snapDomainLerp, snapTimeDomainLerp, advanceDomainLerp, advanceTimeDomainLerp } from './chunk-FSWYYRPX.mjs';
|
|
2
|
+
import { transformValues, computeStackBases, detectCartesianMode, computeWaterfallBases } from './chunk-RKNL7UWZ.mjs';
|
|
3
|
+
import { renderCartesianOverlay } from './chunk-G3DYNMWT.mjs';
|
|
4
|
+
import { computeBarDatasetTotals } from './chunk-LBNP5PJA.mjs';
|
|
5
|
+
import { calculateAxisSpace, calculateAxisLayout } from './chunk-AETETRB4.mjs';
|
|
6
|
+
import { parseAnimationConfig } from './chunk-LTQH3LQJ.mjs';
|
|
7
|
+
import { getResponsiveTier, getAdaptiveDefaults, getAdaptiveTickCount } from './chunk-T2UAEMHY.mjs';
|
|
8
|
+
import { cancelRaf, raf } from './chunk-5WFF272M.mjs';
|
|
9
|
+
import { computeCartesianDomain, selectGroupingInterval, groupTimeData, resolveIncludeZero, computeDomainContribution, mergeDomainContributions, expandScatterBubblePadding, expandDataLabelPadding, computeVisibleValues } from './chunk-GTX6MLTG.mjs';
|
|
10
|
+
import { collectItems } from './chunk-FRVJH7ZG.mjs';
|
|
11
|
+
import { safeFormat } from './chunk-DIJFKY6H.mjs';
|
|
12
|
+
import { measureTextWidth } from './chunk-56MASQS2.mjs';
|
|
13
|
+
import { resolveFontSize, DEFAULT_GROUP_LABEL_FONT_SIZE, DEFAULT_TICK_FONT_SIZE, DEFAULT_DATA_LABEL_FONT_SIZE, DEFAULT_BRACKET_GAP, DEFAULT_BRACKET_DEPTH_LAYER_SIZE } from './chunk-6LUIVTNV.mjs';
|
|
14
|
+
import { batchResolveRequired, batchResolveAccessor, FIELD_DEFAULTS, resolveAccessor, makeItemContext } from './chunk-BDCNBS6W.mjs';
|
|
15
|
+
import { decimate } from './chunk-RIAPS5AW.mjs';
|
|
16
|
+
import { validateCartesianAccessors, resolveCartesianAccessors } from './chunk-G3DIMENH.mjs';
|
|
17
|
+
import { generateNiceTicks, calculateNiceDomain, toTimestamp, generateTimeTicks, formatTimeTick, generateIntervalTicks, createBandScale, calculateNiceTimeDomain, MS, createOrdinalTimeScale, createOrdinalTimeBandAdapter, createTimeScale, createTimeBandAdapter, createVariwideBandScale, createLogScale, createLinearScale, warnChartDevOnce, createNumericBandScale, calculateGroupedBarLayout, calculateNiceLogDomain } from './chunk-K7AGQTVK.mjs';
|
|
16
18
|
|
|
17
19
|
// src/cartesian/chart-area.ts
|
|
20
|
+
function resolveAreaAccessors(props) {
|
|
21
|
+
const acc = resolveCartesianAccessors(props);
|
|
22
|
+
return { category: acc.independentField, value: acc.measureField, isCategory: acc.independentIsCategory };
|
|
23
|
+
}
|
|
18
24
|
function isLayoutCriticalFeature(type) {
|
|
19
25
|
return type.startsWith("axisGroup") || type === "stacking";
|
|
20
26
|
}
|
|
@@ -32,7 +38,7 @@ function estimateStackedValueDomain(perDataset, distinctStackIds, tickCount, exa
|
|
|
32
38
|
if (perDataset.length === 0) return null;
|
|
33
39
|
const series = perDataset.map((d) => ({
|
|
34
40
|
values: d.values,
|
|
35
|
-
categories: d.
|
|
41
|
+
categories: d.categoryAccessor ? batchResolveRequired(d.categoryAccessor, d.data, "categoryField") : d.values.map((_, i) => String(i)),
|
|
36
42
|
stackId: d.stackId
|
|
37
43
|
}));
|
|
38
44
|
const catIndex = /* @__PURE__ */ new Map();
|
|
@@ -85,8 +91,8 @@ function estimateStackedValueDomain(perDataset, distinctStackIds, tickCount, exa
|
|
|
85
91
|
function calculateCartesianArea(outerArea, axes, datasets, features, globalFont, locale, renderersByType, minPadding) {
|
|
86
92
|
let orientation = "vertical";
|
|
87
93
|
for (const [, dataset] of datasets) {
|
|
88
|
-
if (dataset.
|
|
89
|
-
orientation =
|
|
94
|
+
if (dataset.props.categoryYField != null) {
|
|
95
|
+
orientation = "horizontal";
|
|
90
96
|
break;
|
|
91
97
|
}
|
|
92
98
|
}
|
|
@@ -155,8 +161,9 @@ function calculateCartesianArea(outerArea, axes, datasets, features, globalFont,
|
|
|
155
161
|
let yTickLabels;
|
|
156
162
|
if (orientation === "horizontal") {
|
|
157
163
|
for (const [, dataset] of datasets) {
|
|
158
|
-
|
|
159
|
-
|
|
164
|
+
const acc = resolveAreaAccessors(dataset.props);
|
|
165
|
+
if (!acc.isCategory || !Array.isArray(dataset.props.data)) continue;
|
|
166
|
+
yTickLabels = batchResolveRequired(acc.category, dataset.props.data, "categoryField");
|
|
160
167
|
break;
|
|
161
168
|
}
|
|
162
169
|
} else {
|
|
@@ -182,12 +189,13 @@ function calculateCartesianArea(outerArea, axes, datasets, features, globalFont,
|
|
|
182
189
|
continue;
|
|
183
190
|
}
|
|
184
191
|
}
|
|
185
|
-
|
|
186
|
-
|
|
192
|
+
const acc = resolveAreaAccessors(dataset.props);
|
|
193
|
+
if (acc.value) {
|
|
194
|
+
const values = batchResolveRequired(acc.value, dataset.props.data, "valueField");
|
|
187
195
|
for (const v of values) allValues.push(v);
|
|
188
196
|
perDatasetValues.push(values);
|
|
189
197
|
const sid = dataset.props.stackId;
|
|
190
|
-
valueDatasets.push({ data: dataset.props.data,
|
|
198
|
+
valueDatasets.push({ data: dataset.props.data, categoryAccessor: acc.category, values, stackId: sid });
|
|
191
199
|
if (sid !== void 0) stackIdSet.add(sid);
|
|
192
200
|
}
|
|
193
201
|
}
|
|
@@ -210,7 +218,13 @@ function calculateCartesianArea(outerArea, axes, datasets, features, globalFont,
|
|
|
210
218
|
const formatter = yAxisProps?.tickFormat;
|
|
211
219
|
const labelsForDomain = (d) => {
|
|
212
220
|
const ticks = tickInterval !== void 0 ? generateIntervalTicks(d[0], d[1], tickInterval) : generateNiceTicks(d[0], d[1], tickCount, yAxisProps?.tickCount !== void 0);
|
|
213
|
-
return ticks.map(
|
|
221
|
+
return ticks.map(
|
|
222
|
+
(v, i) => formatter && typeof formatter === "function" ? safeFormat(
|
|
223
|
+
() => formatter(v, i),
|
|
224
|
+
() => v.toLocaleString(locale, { maximumFractionDigits: 2 }),
|
|
225
|
+
"tick"
|
|
226
|
+
) : v.toLocaleString(locale, { maximumFractionDigits: 2 })
|
|
227
|
+
);
|
|
214
228
|
};
|
|
215
229
|
const domainPinned = typeof explicitMin === "number" && typeof explicitMax === "number";
|
|
216
230
|
const labels = new Set(labelsForDomain(domain));
|
|
@@ -256,8 +270,9 @@ function calculateCartesianArea(outerArea, axes, datasets, features, globalFont,
|
|
|
256
270
|
if (isTimeAxis) {
|
|
257
271
|
const allTimestamps = [];
|
|
258
272
|
for (const [, dataset] of datasets) {
|
|
259
|
-
|
|
260
|
-
|
|
273
|
+
const acc = resolveAreaAccessors(dataset.props);
|
|
274
|
+
if (!Array.isArray(dataset.props.data) || !acc.isCategory) continue;
|
|
275
|
+
const rawValues = batchResolveAccessor(acc.category, dataset.props.data);
|
|
261
276
|
for (const v of rawValues) {
|
|
262
277
|
const ts = toTimestamp(v);
|
|
263
278
|
if (!isNaN(ts)) allTimestamps.push(ts);
|
|
@@ -286,8 +301,9 @@ function calculateCartesianArea(outerArea, axes, datasets, features, globalFont,
|
|
|
286
301
|
break;
|
|
287
302
|
}
|
|
288
303
|
}
|
|
289
|
-
|
|
290
|
-
|
|
304
|
+
const acc = resolveAreaAccessors(dataset.props);
|
|
305
|
+
if (acc.isCategory) {
|
|
306
|
+
xTickLabels = batchResolveRequired(acc.category, dataset.props.data, "categoryField");
|
|
291
307
|
break;
|
|
292
308
|
}
|
|
293
309
|
}
|
|
@@ -302,13 +318,23 @@ function calculateCartesianArea(outerArea, axes, datasets, features, globalFont,
|
|
|
302
318
|
const valueDatasets = [];
|
|
303
319
|
const stackIdSet = /* @__PURE__ */ new Set();
|
|
304
320
|
for (const [, dataset] of datasets) {
|
|
305
|
-
if (!
|
|
321
|
+
if (!Array.isArray(dataset.props.data)) continue;
|
|
306
322
|
const targetId = dataset.props.xAxisId ?? firstXAxisId;
|
|
307
323
|
if (targetId !== xAxisId) continue;
|
|
308
|
-
const
|
|
324
|
+
const r = renderersByType?.get(dataset.type);
|
|
325
|
+
if (r?.getAxisHints) {
|
|
326
|
+
const hints = r.getAxisHints(dataset.props, dataset.props.data);
|
|
327
|
+
if (hints.domainValues?.length) {
|
|
328
|
+
for (const v of hints.domainValues) allValues.push(v);
|
|
329
|
+
continue;
|
|
330
|
+
}
|
|
331
|
+
}
|
|
332
|
+
const acc = resolveAreaAccessors(dataset.props);
|
|
333
|
+
if (!acc.value) continue;
|
|
334
|
+
const values = batchResolveRequired(acc.value, dataset.props.data, "valueField");
|
|
309
335
|
for (const v of values) allValues.push(v);
|
|
310
336
|
const sid = dataset.props.stackId;
|
|
311
|
-
valueDatasets.push({ data: dataset.props.data,
|
|
337
|
+
valueDatasets.push({ data: dataset.props.data, categoryAccessor: acc.category, values, stackId: sid });
|
|
312
338
|
if (sid !== void 0) stackIdSet.add(sid);
|
|
313
339
|
}
|
|
314
340
|
const isStacked = stackIdSet.size > 0 && !hasWaterfall;
|
|
@@ -319,7 +345,13 @@ function calculateCartesianArea(outerArea, axes, datasets, features, globalFont,
|
|
|
319
345
|
const tickCount = xAxisProps?.tickCount ?? 5;
|
|
320
346
|
const ticks = tickInterval !== void 0 ? generateIntervalTicks(domain[0], domain[1], tickInterval) : generateNiceTicks(domain[0], domain[1], tickCount, xAxisProps?.tickCount !== void 0);
|
|
321
347
|
const formatter = xAxisProps?.tickFormat;
|
|
322
|
-
xTickLabels = ticks.map(
|
|
348
|
+
xTickLabels = ticks.map(
|
|
349
|
+
(v, i) => formatter && typeof formatter === "function" ? safeFormat(
|
|
350
|
+
() => formatter(v, i),
|
|
351
|
+
() => v.toLocaleString(locale, { maximumFractionDigits: 2 }),
|
|
352
|
+
"tick"
|
|
353
|
+
) : v.toLocaleString(locale, { maximumFractionDigits: 2 })
|
|
354
|
+
);
|
|
323
355
|
}
|
|
324
356
|
}
|
|
325
357
|
}
|
|
@@ -460,7 +492,7 @@ function buildStaticFrame(ctx, cached, axisTransition) {
|
|
|
460
492
|
axisLayouts: transitioned,
|
|
461
493
|
valueScales: cached.valueScales,
|
|
462
494
|
valueDomains: cached.valueDomains,
|
|
463
|
-
valueXScales: cached.
|
|
495
|
+
valueXScales: cached.valueXScales
|
|
464
496
|
});
|
|
465
497
|
}
|
|
466
498
|
function buildAnimatedFrame(ctx, cached, axisTransition, animatedInput) {
|
|
@@ -563,7 +595,7 @@ function runSettleLoop(driver, opts) {
|
|
|
563
595
|
driver.settleRafId = raf(loop);
|
|
564
596
|
}
|
|
565
597
|
}
|
|
566
|
-
function driveCartesianUpdate(layout, driver, axisTransition, animConfig, renderFrame, buildStatic, buildAnimated, globalFont, locale) {
|
|
598
|
+
function driveCartesianUpdate(layout, driver, axisTransition, animConfig, renderFrame, buildStatic, buildAnimated, globalFont, locale, interactive) {
|
|
567
599
|
const currentSortOrder = layout.sortedCategoryOrder?.join(",") ?? "";
|
|
568
600
|
const isSortChange = currentSortOrder !== driver.prevSortOrder && driver.prevSortOrder !== "" && currentSortOrder !== "";
|
|
569
601
|
if (isSortChange && driver.cachedLayout) {
|
|
@@ -579,8 +611,8 @@ function driveCartesianUpdate(layout, driver, axisTransition, animConfig, render
|
|
|
579
611
|
const { enabled: animEnabled, duration, easing } = parseAnimationConfig(animConfig);
|
|
580
612
|
const timeDomainFp = layout.timeDomain ? `${layout.timeDomain[0]},${layout.timeDomain[1]}` : "";
|
|
581
613
|
const lerpTargets = new Map(layout.valueDomains);
|
|
582
|
-
if (layout.
|
|
583
|
-
for (const [id, scale] of layout.
|
|
614
|
+
if (layout.valueXScales) {
|
|
615
|
+
for (const [id, scale] of layout.valueXScales) lerpTargets.set(`x:${id}`, scale.domain());
|
|
584
616
|
}
|
|
585
617
|
const currentFingerprint = `${[...lerpTargets.entries()].map(([k, v]) => `${k}:${v[0]},${v[1]}`).join(";")}|${layout.orientation}|${currentSortOrder}|${timeDomainFp}`;
|
|
586
618
|
const phase = detectPhase(driver, currentFingerprint);
|
|
@@ -591,8 +623,8 @@ function driveCartesianUpdate(layout, driver, axisTransition, animConfig, render
|
|
|
591
623
|
} else {
|
|
592
624
|
driver.timeDomainLerp = null;
|
|
593
625
|
}
|
|
594
|
-
const hasDomains = layout.valueDomains.size > 0 || !!layout.
|
|
595
|
-
const animationActive = animEnabled && phase === "update" && (hasDomains || isSortChange || hasTimeDomain);
|
|
626
|
+
const hasDomains = layout.valueDomains.size > 0 || !!layout.valueXScales?.size;
|
|
627
|
+
const animationActive = animEnabled && !interactive && phase === "update" && (hasDomains || isSortChange || hasTimeDomain);
|
|
596
628
|
const isStreamingAppend = hasTimeDomain && (!prevTimeDomain || prevTimeDomain[0] !== layout.timeDomain[0] || prevTimeDomain[1] !== layout.timeDomain[1]);
|
|
597
629
|
if (animationActive) {
|
|
598
630
|
initDomainLerp(driver.domainLerpStates, lerpTargets, { expansionStart: isStreamingAppend });
|
|
@@ -829,9 +861,9 @@ function computeAxisLayouts(params) {
|
|
|
829
861
|
sharedValueScale,
|
|
830
862
|
sharedTimeScale,
|
|
831
863
|
sharedCategoryScale,
|
|
832
|
-
|
|
864
|
+
valueXScales,
|
|
833
865
|
valueDomains,
|
|
834
|
-
|
|
866
|
+
valueXDomains,
|
|
835
867
|
mode,
|
|
836
868
|
adaptive,
|
|
837
869
|
cartesianArea,
|
|
@@ -940,9 +972,9 @@ function computeAxisLayouts(params) {
|
|
|
940
972
|
if (isPrimary) sidePrimarySet.add(xPos);
|
|
941
973
|
const isValueAxis = orientation === "horizontal";
|
|
942
974
|
const xAxisType = xAxisConfig.props?.type;
|
|
943
|
-
const
|
|
944
|
-
const useScatterScale = !!
|
|
945
|
-
const xScale = isValueAxis ? valueScales.get(xAxisId) ?? sharedValueScale : useScatterScale ?
|
|
975
|
+
const valueXScale = valueXScales.get(xAxisId);
|
|
976
|
+
const useScatterScale = !!valueXScale && (xAxisType === "linear" || xAxisType === "logarithmic" || !xAxisType);
|
|
977
|
+
const xScale = isValueAxis ? valueScales.get(xAxisId) ?? sharedValueScale : useScatterScale ? valueXScale : sharedTimeScale ?? sharedCategoryScale;
|
|
946
978
|
let xProps = xAxisConfig.props;
|
|
947
979
|
if (isValueAxis || useScatterScale) {
|
|
948
980
|
if (mode.isPercentStacked && !xProps.tickFormat) {
|
|
@@ -1006,7 +1038,7 @@ function computeAxisLayouts(params) {
|
|
|
1006
1038
|
position: xPos,
|
|
1007
1039
|
layout,
|
|
1008
1040
|
scale: xScale,
|
|
1009
|
-
domain: isValueAxis ? valueDomains.get(xAxisId) :
|
|
1041
|
+
domain: isValueAxis ? valueDomains.get(xAxisId) : valueXDomains.get(xAxisId) ?? (sharedTimeScale ? sharedTimeScale.domain() : void 0),
|
|
1010
1042
|
props: xProps,
|
|
1011
1043
|
isPrimary,
|
|
1012
1044
|
offset,
|
|
@@ -1101,7 +1133,9 @@ function computeBarPipeline(params) {
|
|
|
1101
1133
|
const variwideProps = barDatasets.find((d) => d.props.weightField)?.props;
|
|
1102
1134
|
isVariwide = variwideProps?.weightField !== void 0;
|
|
1103
1135
|
const weights = isVariwide ? batchResolveRequired(variwideProps.weightField, variwideProps.data, "weightField") : void 0;
|
|
1104
|
-
const rawResolvedPerDataset = barDatasets.map(
|
|
1136
|
+
const rawResolvedPerDataset = barDatasets.map(
|
|
1137
|
+
(d) => d.visible ? batchResolveAccessor(resolveCartesianAccessors(d.props).measureField, d.props.data) : []
|
|
1138
|
+
);
|
|
1105
1139
|
const barRawResolved = rawResolvedPerDataset;
|
|
1106
1140
|
const openResolvedPerDataset = barDatasets.map((d) => {
|
|
1107
1141
|
const openAccessor = d.props.openField;
|
|
@@ -1365,8 +1399,9 @@ function computeDomainContributions(params) {
|
|
|
1365
1399
|
const scatterLogXValues = /* @__PURE__ */ new Map();
|
|
1366
1400
|
for (const sd of scatterDatasets) {
|
|
1367
1401
|
if (!sd.visible) continue;
|
|
1402
|
+
const acc = resolveCartesianAccessors(sd.props);
|
|
1368
1403
|
const targetYAxisId = sd.props.yAxisId ?? firstValueAxisId;
|
|
1369
|
-
const rawYValues = batchResolveAccessor(
|
|
1404
|
+
const rawYValues = batchResolveAccessor(acc.measureField, sd.props.data ?? []);
|
|
1370
1405
|
const stackBases = scatterStackBasesMap?.get(sd.id);
|
|
1371
1406
|
const effectiveYValues = stackBases ? rawYValues.map((v, i) => v === null || v === void 0 || isNaN(Number(v)) ? null : Number(v) + (stackBases[i] ?? 0)) : rawYValues;
|
|
1372
1407
|
const yValues = effectiveYValues.filter((v) => v !== null && v !== void 0 && !isNaN(Number(v))).map(Number);
|
|
@@ -1374,8 +1409,39 @@ function computeDomainContributions(params) {
|
|
|
1374
1409
|
valueSeries.push({ axisId: targetYAxisId, values: yValues, includeZero: false });
|
|
1375
1410
|
collectLogValues(targetYAxisId, yValues);
|
|
1376
1411
|
}
|
|
1412
|
+
if (acc.independentIsCategory) continue;
|
|
1377
1413
|
const targetXAxisId = sd.props.xAxisId ?? firstCategoryAxisId;
|
|
1378
|
-
const xValues = batchResolveAccessor(
|
|
1414
|
+
const xValues = batchResolveAccessor(acc.independentField, sd.props.data ?? []).filter((v) => v !== null && v !== void 0 && !isNaN(Number(v))).map(Number);
|
|
1415
|
+
if (xValues.length > 0) {
|
|
1416
|
+
categorySeries.push({ axisId: targetXAxisId, values: xValues, includeZero: false });
|
|
1417
|
+
if (categoryAxes.get(targetXAxisId)?.props?.type === "logarithmic") {
|
|
1418
|
+
const bucket = scatterLogXValues.get(targetXAxisId) ?? [];
|
|
1419
|
+
for (const v of xValues) if (v > 0) bucket.push(v);
|
|
1420
|
+
scatterLogXValues.set(targetXAxisId, bucket);
|
|
1421
|
+
}
|
|
1422
|
+
}
|
|
1423
|
+
}
|
|
1424
|
+
for (const ld of lineDatasets) {
|
|
1425
|
+
if (!ld.visible) continue;
|
|
1426
|
+
const acc = resolveCartesianAccessors(ld.props);
|
|
1427
|
+
if (acc.independentIsCategory) continue;
|
|
1428
|
+
const targetXAxisId = ld.props.xAxisId ?? firstCategoryAxisId;
|
|
1429
|
+
const xValues = batchResolveAccessor(acc.independentField, ld.props.data ?? []).filter((v) => v !== null && v !== void 0 && !isNaN(Number(v))).map(Number);
|
|
1430
|
+
if (xValues.length > 0) {
|
|
1431
|
+
categorySeries.push({ axisId: targetXAxisId, values: xValues, includeZero: false });
|
|
1432
|
+
if (categoryAxes.get(targetXAxisId)?.props?.type === "logarithmic") {
|
|
1433
|
+
const bucket = scatterLogXValues.get(targetXAxisId) ?? [];
|
|
1434
|
+
for (const v of xValues) if (v > 0) bucket.push(v);
|
|
1435
|
+
scatterLogXValues.set(targetXAxisId, bucket);
|
|
1436
|
+
}
|
|
1437
|
+
}
|
|
1438
|
+
}
|
|
1439
|
+
for (const bd of barDatasets) {
|
|
1440
|
+
if (!bd.visible) continue;
|
|
1441
|
+
const acc = resolveCartesianAccessors(bd.props);
|
|
1442
|
+
if (acc.independentIsCategory) continue;
|
|
1443
|
+
const targetXAxisId = bd.props.xAxisId ?? firstCategoryAxisId;
|
|
1444
|
+
const xValues = batchResolveAccessor(acc.independentField, bd.props.data ?? []).filter((v) => v !== null && v !== void 0 && !isNaN(Number(v))).map(Number);
|
|
1379
1445
|
if (xValues.length > 0) {
|
|
1380
1446
|
categorySeries.push({ axisId: targetXAxisId, values: xValues, includeZero: false });
|
|
1381
1447
|
if (categoryAxes.get(targetXAxisId)?.props?.type === "logarithmic") {
|
|
@@ -1392,29 +1458,50 @@ function computeDomainContributions(params) {
|
|
|
1392
1458
|
const highs = batchResolveAccessor(cd.props.highField, cd.props.data ?? []);
|
|
1393
1459
|
const validValues = [...lows.filter((v) => v !== null && v !== void 0 && !isNaN(Number(v))).map(Number), ...highs.filter((v) => v !== null && v !== void 0 && !isNaN(Number(v))).map(Number)];
|
|
1394
1460
|
if (validValues.length > 0) valueSeries.push({ axisId: targetAxisId, values: validValues, includeZero: false });
|
|
1461
|
+
const acc = resolveCartesianAccessors(cd.props);
|
|
1462
|
+
if (acc.independentIsCategory) continue;
|
|
1463
|
+
const targetXAxisId = cd.props.xAxisId ?? firstCategoryAxisId;
|
|
1464
|
+
const xValues = batchResolveAccessor(acc.independentField, cd.props.data ?? []).filter((v) => v !== null && v !== void 0 && !isNaN(Number(v))).map(Number);
|
|
1465
|
+
if (xValues.length > 0) {
|
|
1466
|
+
categorySeries.push({ axisId: targetXAxisId, values: xValues, includeZero: false });
|
|
1467
|
+
if (categoryAxes.get(targetXAxisId)?.props?.type === "logarithmic") {
|
|
1468
|
+
const bucket = scatterLogXValues.get(targetXAxisId) ?? [];
|
|
1469
|
+
for (const v of xValues) if (v > 0) bucket.push(v);
|
|
1470
|
+
scatterLogXValues.set(targetXAxisId, bucket);
|
|
1471
|
+
}
|
|
1472
|
+
}
|
|
1395
1473
|
}
|
|
1396
1474
|
const domainContributions = [];
|
|
1397
1475
|
if (valueSeries.length > 0 || categorySeries.length > 0) {
|
|
1398
1476
|
domainContributions.push(computeDomainContribution(valueSeries, categorySeries.length > 0 ? categorySeries : void 0));
|
|
1399
1477
|
}
|
|
1400
|
-
const
|
|
1478
|
+
const valueXDomains = mergeDomainContributions(valueDomains, domainContributions);
|
|
1401
1479
|
for (const [axisId, positives] of scatterLogYValues) {
|
|
1402
1480
|
if (positives.length > 0) valueDomains.set(axisId, calculateNiceLogDomain(positives));
|
|
1403
1481
|
}
|
|
1404
1482
|
for (const [axisId, positives] of scatterLogXValues) {
|
|
1405
|
-
if (positives.length > 0)
|
|
1483
|
+
if (positives.length > 0) valueXDomains.set(axisId, calculateNiceLogDomain(positives));
|
|
1406
1484
|
}
|
|
1407
1485
|
if (scatterDatasets.length > 0) {
|
|
1486
|
+
const barBaselineMins = /* @__PURE__ */ new Map();
|
|
1487
|
+
for (const axisId of barAxisIds) {
|
|
1488
|
+
const d = valueDomains.get(axisId);
|
|
1489
|
+
if (d) barBaselineMins.set(axisId, d[0]);
|
|
1490
|
+
}
|
|
1408
1491
|
expandScatterBubblePadding({
|
|
1409
1492
|
scatterDatasets,
|
|
1410
1493
|
valueDomains,
|
|
1411
|
-
|
|
1494
|
+
valueXDomains,
|
|
1412
1495
|
firstValueAxisId,
|
|
1413
1496
|
firstCategoryAxisId,
|
|
1414
1497
|
chartArea: cartesianArea,
|
|
1415
1498
|
isLogValueAxis: (axisId) => valueAxes.get(axisId)?.props?.type === "logarithmic",
|
|
1416
1499
|
isLogCategoryAxis: (axisId) => categoryAxes.get(axisId)?.props?.type === "logarithmic"
|
|
1417
1500
|
});
|
|
1501
|
+
for (const [axisId, min] of barBaselineMins) {
|
|
1502
|
+
const d = valueDomains.get(axisId);
|
|
1503
|
+
if (d) valueDomains.set(axisId, [min, d[1]]);
|
|
1504
|
+
}
|
|
1418
1505
|
}
|
|
1419
1506
|
const dataLabelProps = features.get("dataLabels")?.props;
|
|
1420
1507
|
if (dataLabelProps && !dataLabelProps.render) {
|
|
@@ -1457,7 +1544,7 @@ function computeDomainContributions(params) {
|
|
|
1457
1544
|
if (typeof axisMin === "number") domain[0] = axisMin;
|
|
1458
1545
|
if (typeof axisMax === "number") domain[1] = axisMax;
|
|
1459
1546
|
}
|
|
1460
|
-
for (const [axisId, domain] of
|
|
1547
|
+
for (const [axisId, domain] of valueXDomains) {
|
|
1461
1548
|
const axisConfig = categoryAxes.get(axisId);
|
|
1462
1549
|
const axisMin = axisConfig?.props?.min;
|
|
1463
1550
|
const axisMax = axisConfig?.props?.max;
|
|
@@ -1490,12 +1577,38 @@ function computeDomainContributions(params) {
|
|
|
1490
1577
|
const targetAxisId = ld.props[axisIdProp] ?? firstValueAxisId;
|
|
1491
1578
|
if (targetAxisId !== axisId) continue;
|
|
1492
1579
|
const vals = lineTransformedValues?.get(ld.id);
|
|
1580
|
+
const lineBases = lineStackBasesMap?.get(ld.id);
|
|
1493
1581
|
if (vals) {
|
|
1494
|
-
for (
|
|
1582
|
+
for (let i = 0; i < vals.length; i++) {
|
|
1583
|
+
const v = (lineBases?.[i] ?? 0) + vals[i];
|
|
1495
1584
|
if (!Number.isNaN(v) && v > rawMax) rawMax = v;
|
|
1496
1585
|
}
|
|
1497
1586
|
}
|
|
1498
1587
|
}
|
|
1588
|
+
for (const sd of scatterDatasets) {
|
|
1589
|
+
if (!sd.visible) continue;
|
|
1590
|
+
const targetAxisId = sd.props.yAxisId ?? firstValueAxisId;
|
|
1591
|
+
if (targetAxisId !== axisId) continue;
|
|
1592
|
+
const acc = resolveCartesianAccessors(sd.props);
|
|
1593
|
+
const rawYValues = batchResolveAccessor(acc.measureField, sd.props.data ?? []);
|
|
1594
|
+
const stackBases = scatterStackBasesMap?.get(sd.id);
|
|
1595
|
+
for (let i = 0; i < rawYValues.length; i++) {
|
|
1596
|
+
const raw = rawYValues[i];
|
|
1597
|
+
if (raw === null || raw === void 0 || isNaN(Number(raw))) continue;
|
|
1598
|
+
const v = Number(raw) + (stackBases?.[i] ?? 0);
|
|
1599
|
+
if (v > rawMax) rawMax = v;
|
|
1600
|
+
}
|
|
1601
|
+
}
|
|
1602
|
+
for (const cd of candlestickDatasets) {
|
|
1603
|
+
if (!cd.visible) continue;
|
|
1604
|
+
const targetAxisId = cd.props.yAxisId ?? firstValueAxisId;
|
|
1605
|
+
if (targetAxisId !== axisId) continue;
|
|
1606
|
+
const highs = batchResolveAccessor(cd.props.highField, cd.props.data ?? []);
|
|
1607
|
+
for (const raw of highs) {
|
|
1608
|
+
if (raw === null || raw === void 0 || isNaN(Number(raw))) continue;
|
|
1609
|
+
if (Number(raw) > rawMax) rawMax = Number(raw);
|
|
1610
|
+
}
|
|
1611
|
+
}
|
|
1499
1612
|
const tickStep = ticks[ticks.length - 1] - ticks[ticks.length - 2];
|
|
1500
1613
|
if (rawMax > -Infinity && !isLinePercentStacked && !mode.isStacked && !mode.isPercentStacked && !mode.isWaterfall) {
|
|
1501
1614
|
if (userTickCount === void 0 && tickStep > 0) {
|
|
@@ -1510,7 +1623,7 @@ function computeDomainContributions(params) {
|
|
|
1510
1623
|
}
|
|
1511
1624
|
}
|
|
1512
1625
|
const scatterAxisLength = orientation === "vertical" ? cartesianArea.width : cartesianArea.height;
|
|
1513
|
-
for (const [axisId, domain] of
|
|
1626
|
+
for (const [axisId, domain] of valueXDomains) {
|
|
1514
1627
|
const axisProps = categoryAxes.get(axisId)?.props;
|
|
1515
1628
|
if (axisProps?.type === "logarithmic") continue;
|
|
1516
1629
|
const userTickCount = axisProps?.tickCount;
|
|
@@ -1573,8 +1686,8 @@ function computeDomainContributions(params) {
|
|
|
1573
1686
|
originalDomains.x = [...primaryValueDomain];
|
|
1574
1687
|
}
|
|
1575
1688
|
}
|
|
1576
|
-
if (
|
|
1577
|
-
const firstScatterXDomain =
|
|
1689
|
+
if (valueXDomains.size > 0) {
|
|
1690
|
+
const firstScatterXDomain = valueXDomains.values().next().value;
|
|
1578
1691
|
if (firstScatterXDomain) {
|
|
1579
1692
|
if (orientation === "vertical" && !originalDomains.x) {
|
|
1580
1693
|
originalDomains.x = [...firstScatterXDomain];
|
|
@@ -1585,7 +1698,7 @@ function computeDomainContributions(params) {
|
|
|
1585
1698
|
}
|
|
1586
1699
|
const zoomCategoryAxisForAdaptive = orientation === "vertical" ? zoomState?.x : zoomState?.y;
|
|
1587
1700
|
const zoomValueAxisExplicit = orientation === "vertical" ? zoomState?.y : zoomState?.x;
|
|
1588
|
-
if (zoomCategoryAxisForAdaptive && !zoomValueAxisExplicit && (isTimeAxis && timestamps ||
|
|
1701
|
+
if (zoomCategoryAxisForAdaptive && !zoomValueAxisExplicit && (isTimeAxis && timestamps || valueXDomains.size > 0)) {
|
|
1589
1702
|
const xMin = zoomCategoryAxisForAdaptive.min;
|
|
1590
1703
|
const xMax = zoomCategoryAxisForAdaptive.max;
|
|
1591
1704
|
const adaptiveSeries = [];
|
|
@@ -1613,10 +1726,11 @@ function computeDomainContributions(params) {
|
|
|
1613
1726
|
}
|
|
1614
1727
|
for (const sd of scatterDatasets) {
|
|
1615
1728
|
if (!sd.visible) continue;
|
|
1729
|
+
const acc = resolveCartesianAccessors(sd.props);
|
|
1616
1730
|
adaptiveSeries.push({
|
|
1617
1731
|
axisId: sd.props.yAxisId ?? firstValueAxisId,
|
|
1618
|
-
xValues: batchResolveAccessor(
|
|
1619
|
-
yValues: batchResolveAccessor(
|
|
1732
|
+
xValues: acc.independentIsCategory ? [] : batchResolveAccessor(acc.independentField, sd.props.data ?? []),
|
|
1733
|
+
yValues: batchResolveAccessor(acc.measureField, sd.props.data ?? [])
|
|
1620
1734
|
});
|
|
1621
1735
|
}
|
|
1622
1736
|
const adaptiveValues = computeVisibleValues(adaptiveSeries, xMin, xMax);
|
|
@@ -1637,12 +1751,12 @@ function computeDomainContributions(params) {
|
|
|
1637
1751
|
valueDomain[1] = zoomValueAxisExplicit.max;
|
|
1638
1752
|
}
|
|
1639
1753
|
const zoomCategoryAxis = orientation === "vertical" ? zoomState?.x : zoomState?.y;
|
|
1640
|
-
if (zoomCategoryAxis &&
|
|
1641
|
-
for (const [axisId] of
|
|
1642
|
-
|
|
1754
|
+
if (zoomCategoryAxis && valueXDomains.size > 0) {
|
|
1755
|
+
for (const [axisId] of valueXDomains) {
|
|
1756
|
+
valueXDomains.set(axisId, [zoomCategoryAxis.min, zoomCategoryAxis.max]);
|
|
1643
1757
|
}
|
|
1644
1758
|
}
|
|
1645
|
-
return {
|
|
1759
|
+
return { valueXDomains, valueDomain, originalDomains };
|
|
1646
1760
|
}
|
|
1647
1761
|
|
|
1648
1762
|
// src/cartesian/layout.data-reduction.ts
|
|
@@ -1658,7 +1772,7 @@ function applyDataGrouping(params) {
|
|
|
1658
1772
|
const catKey = categoryKey;
|
|
1659
1773
|
for (const ds of barDatasets) {
|
|
1660
1774
|
if (!ds.props.data || ds.props.data.length === 0) continue;
|
|
1661
|
-
const valueKey = ds.props.
|
|
1775
|
+
const valueKey = resolveCartesianAccessors(ds.props).measureField;
|
|
1662
1776
|
const grouped = groupTimeData(ds.props.data, catKey, valueKey, interval, method);
|
|
1663
1777
|
if (grouped.length < ds.props.data.length) {
|
|
1664
1778
|
ds.props = { ...ds.props, data: grouped };
|
|
@@ -1666,7 +1780,7 @@ function applyDataGrouping(params) {
|
|
|
1666
1780
|
}
|
|
1667
1781
|
for (const ds of lineDatasets) {
|
|
1668
1782
|
if (!ds.props.data || ds.props.data.length === 0) continue;
|
|
1669
|
-
const valueKey = ds.props.
|
|
1783
|
+
const valueKey = resolveCartesianAccessors(ds.props).measureField;
|
|
1670
1784
|
const grouped = groupTimeData(ds.props.data, catKey, valueKey, interval, method);
|
|
1671
1785
|
if (grouped.length < ds.props.data.length) {
|
|
1672
1786
|
ds.props = { ...ds.props, data: grouped };
|
|
@@ -1694,7 +1808,7 @@ function applyDecimation(params) {
|
|
|
1694
1808
|
const allBarLineDatasets = [...barDatasets, ...lineDatasets];
|
|
1695
1809
|
const firstVisible = allBarLineDatasets.find((d) => d.visible) ?? allBarLineDatasets[0];
|
|
1696
1810
|
if (firstVisible && firstVisible.props.data.length > threshold) {
|
|
1697
|
-
const yField = firstVisible.props.
|
|
1811
|
+
const yField = resolveCartesianAccessors(firstVisible.props).measureField;
|
|
1698
1812
|
const sourceData = firstVisible.props.data;
|
|
1699
1813
|
let keptIndicesArr;
|
|
1700
1814
|
if (zoomX && timestamps) {
|
|
@@ -1749,6 +1863,10 @@ function computeCartesianLayout(input, lastVisibleLayouts) {
|
|
|
1749
1863
|
if (barDatasets.length === 0 && lineDatasets.length === 0 && scatterDatasets.length === 0 && candlestickDatasets.length === 0) {
|
|
1750
1864
|
return null;
|
|
1751
1865
|
}
|
|
1866
|
+
validateCartesianAccessors(
|
|
1867
|
+
[...barDatasets, ...lineDatasets, ...scatterDatasets].map((d) => ({ id: d.id, props: d.props })),
|
|
1868
|
+
axes
|
|
1869
|
+
);
|
|
1752
1870
|
const visibleBarDatasets = barDatasets.filter((d) => d.visible);
|
|
1753
1871
|
const { width, height } = dimensions;
|
|
1754
1872
|
const responsiveFeature = features.get("responsive")?.props;
|
|
@@ -1756,17 +1874,24 @@ function computeCartesianLayout(input, lastVisibleLayouts) {
|
|
|
1756
1874
|
const adaptive = responsiveFeature?.disableAutoAdaptive ? getAdaptiveDefaults("lg", globalFont) : getAdaptiveDefaults(tier, globalFont);
|
|
1757
1875
|
const allCatSources = [];
|
|
1758
1876
|
for (const ds of barDatasets) {
|
|
1759
|
-
const key = ds.props.
|
|
1877
|
+
const key = resolveCartesianAccessors(ds.props).independentField ?? FIELD_DEFAULTS.categoryField;
|
|
1760
1878
|
const data = ds.props.data ?? [];
|
|
1761
1879
|
if (data.length > 0) allCatSources.push({ key, data, tier: 0 });
|
|
1762
1880
|
}
|
|
1763
1881
|
for (const ds of candlestickDatasets) {
|
|
1764
|
-
const key = ds.props.
|
|
1882
|
+
const key = resolveCartesianAccessors(ds.props).independentField ?? FIELD_DEFAULTS.categoryField;
|
|
1765
1883
|
const data = ds.props.data ?? [];
|
|
1766
1884
|
if (data.length > 0) allCatSources.push({ key, data, tier: 1 });
|
|
1767
1885
|
}
|
|
1768
1886
|
for (const ds of lineDatasets) {
|
|
1769
|
-
const key = ds.props.
|
|
1887
|
+
const key = resolveCartesianAccessors(ds.props).independentField ?? FIELD_DEFAULTS.categoryField;
|
|
1888
|
+
const data = ds.props.data ?? [];
|
|
1889
|
+
if (data.length > 0) allCatSources.push({ key, data, tier: 2 });
|
|
1890
|
+
}
|
|
1891
|
+
for (const ds of scatterDatasets) {
|
|
1892
|
+
const sp = ds.props;
|
|
1893
|
+
const key = sp.categoryXField ?? sp.categoryYField;
|
|
1894
|
+
if (key == null) continue;
|
|
1770
1895
|
const data = ds.props.data ?? [];
|
|
1771
1896
|
if (data.length > 0) allCatSources.push({ key, data, tier: 2 });
|
|
1772
1897
|
}
|
|
@@ -1781,7 +1906,8 @@ function computeCartesianLayout(input, lastVisibleLayouts) {
|
|
|
1781
1906
|
categoryKey = "__scatter_no_category__";
|
|
1782
1907
|
categoryDataSource = [];
|
|
1783
1908
|
}
|
|
1784
|
-
const
|
|
1909
|
+
const usesCategoryY = [...barDatasets, ...lineDatasets, ...scatterDatasets, ...candlestickDatasets].some((d) => d.props.categoryYField != null);
|
|
1910
|
+
const orientation = usesCategoryY ? "horizontal" : "vertical";
|
|
1785
1911
|
const categoryAxes = orientation === "vertical" ? axes.x : axes.y;
|
|
1786
1912
|
const primaryCategoryAxisConfig = categoryAxes.size > 0 ? categoryAxes.values().next().value : void 0;
|
|
1787
1913
|
const isTimeAxis = primaryCategoryAxisConfig?.props?.type === "time";
|
|
@@ -1892,7 +2018,7 @@ function computeCartesianLayout(input, lastVisibleLayouts) {
|
|
|
1892
2018
|
if (stackedLineDatasets.length > 0) {
|
|
1893
2019
|
const rawLineValues = stackedLineDatasets.map((ld) => {
|
|
1894
2020
|
if (!ld.visible) return new Array(categories.length).fill(0);
|
|
1895
|
-
const valueKey = ld.props.
|
|
2021
|
+
const valueKey = resolveCartesianAccessors(ld.props).measureField;
|
|
1896
2022
|
const raw = batchResolveAccessor(valueKey, ld.props.data ?? []);
|
|
1897
2023
|
return raw.map((v) => v === null || v === void 0 || Number.isNaN(Number(v)) ? 0 : Number(v));
|
|
1898
2024
|
});
|
|
@@ -1906,7 +2032,7 @@ function computeCartesianLayout(input, lastVisibleLayouts) {
|
|
|
1906
2032
|
lineTransformedValues.set(stackedLineDatasets[i].id, lineValuesPerDataset[i]);
|
|
1907
2033
|
}
|
|
1908
2034
|
const lineSignsPerDataset = isLinePercentStacked ? void 0 : stackedLineDatasets.map((ld) => {
|
|
1909
|
-
const valueKey = ld.props.
|
|
2035
|
+
const valueKey = resolveCartesianAccessors(ld.props).measureField;
|
|
1910
2036
|
const raw = batchResolveAccessor(valueKey, ld.props.data ?? []);
|
|
1911
2037
|
return (raw ?? []).map((v) => typeof v === "number" && isFinite(v) && v < 0 ? -1 : v === 0 ? 0 : 1);
|
|
1912
2038
|
});
|
|
@@ -1921,7 +2047,7 @@ function computeCartesianLayout(input, lastVisibleLayouts) {
|
|
|
1921
2047
|
}
|
|
1922
2048
|
for (const ld of lineDatasets) {
|
|
1923
2049
|
if (ld.stackId !== void 0) continue;
|
|
1924
|
-
const valueKey = ld.props.
|
|
2050
|
+
const valueKey = resolveCartesianAccessors(ld.props).measureField;
|
|
1925
2051
|
const raw = batchResolveAccessor(valueKey, ld.props.data ?? []);
|
|
1926
2052
|
const resolved = raw.map((v) => v === null || v === void 0 || isNaN(Number(v)) ? NaN : Number(v));
|
|
1927
2053
|
if (!lineTransformedValues) lineTransformedValues = /* @__PURE__ */ new Map();
|
|
@@ -1933,7 +2059,8 @@ function computeCartesianLayout(input, lastVisibleLayouts) {
|
|
|
1933
2059
|
const scatterPointCount = stackedScatterDatasets.reduce((max, sd) => Math.max(max, sd.props.data?.length ?? 0), 0);
|
|
1934
2060
|
const rawScatterValues = stackedScatterDatasets.map((sd) => {
|
|
1935
2061
|
if (!sd.visible) return new Array(scatterPointCount).fill(0);
|
|
1936
|
-
const
|
|
2062
|
+
const measureKey = resolveCartesianAccessors(sd.props).measureField;
|
|
2063
|
+
const raw = batchResolveAccessor(measureKey, sd.props.data ?? []);
|
|
1937
2064
|
const padded = new Array(scatterPointCount).fill(0);
|
|
1938
2065
|
for (let i = 0; i < raw.length; i++) {
|
|
1939
2066
|
const v = raw[i];
|
|
@@ -1942,7 +2069,8 @@ function computeCartesianLayout(input, lastVisibleLayouts) {
|
|
|
1942
2069
|
return padded;
|
|
1943
2070
|
});
|
|
1944
2071
|
const scatterSignsPerDataset = stackedScatterDatasets.map((sd) => {
|
|
1945
|
-
const
|
|
2072
|
+
const measureKey = resolveCartesianAccessors(sd.props).measureField;
|
|
2073
|
+
const raw = batchResolveAccessor(measureKey, sd.props.data ?? []);
|
|
1946
2074
|
const signs = new Array(scatterPointCount).fill(1);
|
|
1947
2075
|
for (let i = 0; i < raw.length; i++) {
|
|
1948
2076
|
const v = raw[i];
|
|
@@ -1959,7 +2087,7 @@ function computeCartesianLayout(input, lastVisibleLayouts) {
|
|
|
1959
2087
|
scatterSignsPerDataset
|
|
1960
2088
|
);
|
|
1961
2089
|
}
|
|
1962
|
-
const {
|
|
2090
|
+
const { valueXDomains, valueDomain, originalDomains } = computeDomainContributions({
|
|
1963
2091
|
orientation,
|
|
1964
2092
|
axes,
|
|
1965
2093
|
barDatasets,
|
|
@@ -2129,9 +2257,9 @@ function computeCartesianLayout(input, lastVisibleLayouts) {
|
|
|
2129
2257
|
const primaryReversed = valueAxes.get(firstValueAxisId)?.props?.reversed ?? false;
|
|
2130
2258
|
const primaryRange = primaryReversed ? [valueScaleRange[1], valueScaleRange[0]] : valueScaleRange;
|
|
2131
2259
|
const sharedValueScale = valueScales.get(firstValueAxisId) ?? createLinearScale(valueDomain, primaryRange);
|
|
2132
|
-
const
|
|
2260
|
+
const valueXScales = /* @__PURE__ */ new Map();
|
|
2133
2261
|
const categoryScaleRange = orientation === "vertical" ? [cartesianArea.x, cartesianArea.x + cartesianArea.width] : [cartesianArea.y, cartesianArea.y + cartesianArea.height];
|
|
2134
|
-
for (const [axisId, domain] of
|
|
2262
|
+
for (const [axisId, domain] of valueXDomains) {
|
|
2135
2263
|
const scatterAxisConfig = categoryAxes.get(axisId);
|
|
2136
2264
|
const scatterAxisProps = scatterAxisConfig?.props;
|
|
2137
2265
|
const scatterReversed = scatterAxisProps?.reversed ?? false;
|
|
@@ -2151,15 +2279,44 @@ function computeCartesianLayout(input, lastVisibleLayouts) {
|
|
|
2151
2279
|
const span = domain[1] - domain[0];
|
|
2152
2280
|
paddedDomain = [domain[0] - span * padMin, domain[1] + span * padMax];
|
|
2153
2281
|
}
|
|
2154
|
-
|
|
2282
|
+
valueXDomains.set(axisId, paddedDomain);
|
|
2283
|
+
}
|
|
2284
|
+
valueXScales.set(axisId, scatterAxisType === "logarithmic" ? createLogScale(paddedDomain, scatterRange) : createLinearScale(paddedDomain, scatterRange));
|
|
2285
|
+
}
|
|
2286
|
+
if (valueXScales.size > 0 && (barDatasets.some((bd) => bd.visible) || candlestickDatasets.some((cd) => cd.visible))) {
|
|
2287
|
+
const numericBarXs = [];
|
|
2288
|
+
let numericBarXScale;
|
|
2289
|
+
for (const cd of candlestickDatasets) {
|
|
2290
|
+
if (!cd.visible) continue;
|
|
2291
|
+
const acc = resolveCartesianAccessors(cd.props);
|
|
2292
|
+
if (acc.independentIsCategory) continue;
|
|
2293
|
+
const xs = batchResolveAccessor(acc.independentField, cd.props.data ?? []);
|
|
2294
|
+
for (const x of xs) if (x !== null && x !== void 0 && !isNaN(Number(x))) numericBarXs.push(String(Number(x)));
|
|
2295
|
+
const cdXAxisId = cd.props.xAxisId;
|
|
2296
|
+
numericBarXScale = (cdXAxisId ? valueXScales.get(cdXAxisId) : void 0) ?? (valueXScales.size === 1 ? valueXScales.values().next().value : void 0);
|
|
2297
|
+
}
|
|
2298
|
+
for (const bd of barDatasets) {
|
|
2299
|
+
if (!bd.visible) continue;
|
|
2300
|
+
const acc = resolveCartesianAccessors(bd.props);
|
|
2301
|
+
if (acc.independentIsCategory) continue;
|
|
2302
|
+
if (bd.props.weightField != null) {
|
|
2303
|
+
warnChartDevOnce("variwide-numeric-axis", `bar series "${bd.id}" sets weightField on a numeric (valueXField) axis \u2014 variwide weights are ignored; bar width derives from the spacing between points.`);
|
|
2304
|
+
}
|
|
2305
|
+
const xs = batchResolveAccessor(acc.independentField, bd.props.data ?? []);
|
|
2306
|
+
for (const x of xs) if (x !== null && x !== void 0 && !isNaN(Number(x))) numericBarXs.push(String(Number(x)));
|
|
2307
|
+
const xAxisId = bd.props.xAxisId;
|
|
2308
|
+
numericBarXScale = (xAxisId ? valueXScales.get(xAxisId) : void 0) ?? (valueXScales.size === 1 ? valueXScales.values().next().value : void 0);
|
|
2309
|
+
}
|
|
2310
|
+
if (numericBarXs.length > 0 && numericBarXScale) {
|
|
2311
|
+
sharedCategoryScale = createNumericBandScale([...new Set(numericBarXs)], numericBarXScale, bandScaleOptions);
|
|
2155
2312
|
}
|
|
2156
|
-
scatterXScales.set(axisId, scatterAxisType === "logarithmic" ? createLogScale(paddedDomain, scatterRange) : createLinearScale(paddedDomain, scatterRange));
|
|
2157
2313
|
}
|
|
2158
2314
|
let stackBasesMap;
|
|
2159
2315
|
let groupLayout;
|
|
2160
2316
|
if (mode.isStacked || mode.isWaterfall) {
|
|
2161
2317
|
const signsPerDataset = mode.isPercentStacked ? void 0 : barDatasets.map((d, i) => {
|
|
2162
|
-
const
|
|
2318
|
+
const measureKey = resolveCartesianAccessors(d.props).measureField;
|
|
2319
|
+
const raw = d.visible ? barRawResolved?.[i] : batchResolveAccessor(measureKey, d.props.data);
|
|
2163
2320
|
return (raw ?? []).map((v) => typeof v === "number" && isFinite(v) && v < 0 ? -1 : v === 0 ? 0 : 1);
|
|
2164
2321
|
});
|
|
2165
2322
|
if (mode.isGrouped) {
|
|
@@ -2220,9 +2377,9 @@ function computeCartesianLayout(input, lastVisibleLayouts) {
|
|
|
2220
2377
|
sharedValueScale,
|
|
2221
2378
|
sharedTimeScale,
|
|
2222
2379
|
sharedCategoryScale,
|
|
2223
|
-
|
|
2380
|
+
valueXScales,
|
|
2224
2381
|
valueDomains,
|
|
2225
|
-
|
|
2382
|
+
valueXDomains,
|
|
2226
2383
|
mode,
|
|
2227
2384
|
adaptive,
|
|
2228
2385
|
cartesianArea,
|
|
@@ -2400,7 +2557,7 @@ function computeCartesianLayout(input, lastVisibleLayouts) {
|
|
|
2400
2557
|
groupedDataOverride,
|
|
2401
2558
|
decimatedIndices,
|
|
2402
2559
|
// Scatter layouts are computed by useScatterRenderer (independent hook)
|
|
2403
|
-
|
|
2560
|
+
valueXScales: valueXScales.size > 0 ? valueXScales : void 0,
|
|
2404
2561
|
scatterStackBasesMap,
|
|
2405
2562
|
// Candlestick layouts are computed by useCandlestickRenderer (independent hook)
|
|
2406
2563
|
// Heatmap layouts are computed by useHeatmapRenderer (independent hook)
|