@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,14 +1,17 @@
|
|
|
1
|
-
import { renderCandlestickSvg } from './chunk-
|
|
2
|
-
import { renderCandlestickCanvas } from './chunk-
|
|
3
|
-
import { DEFAULT_CANDLESTICK_WICK_WIDTH } from './chunk-
|
|
4
|
-
import { FIELD_DEFAULTS, batchResolveAccessor, resolveAccessor, makeItemContext, resolveDash } from './chunk-
|
|
1
|
+
import { renderCandlestickSvg } from './chunk-ISU27QL2.mjs';
|
|
2
|
+
import { renderCandlestickCanvas } from './chunk-SVASYTK5.mjs';
|
|
3
|
+
import { DEFAULT_CANDLESTICK_WICK_WIDTH } from './chunk-6LUIVTNV.mjs';
|
|
4
|
+
import { FIELD_DEFAULTS, batchResolveAccessor, resolveAccessor, makeItemContext, resolveDash } from './chunk-BDCNBS6W.mjs';
|
|
5
|
+
import { resolveCartesianAccessors } from './chunk-G3DIMENH.mjs';
|
|
5
6
|
|
|
6
7
|
// src/series/candlestick/geometry.ts
|
|
7
8
|
var DEFAULT_BAR_WIDTH_RATIO = 0.7;
|
|
8
9
|
function calculateCandlestickLayout(props, chartArea, config, theme) {
|
|
10
|
+
const acc = resolveCartesianAccessors(props);
|
|
11
|
+
const time = acc.independentField;
|
|
12
|
+
const horizontal = acc.orientation === "horizontal";
|
|
9
13
|
const {
|
|
10
14
|
data,
|
|
11
|
-
timeField: time,
|
|
12
15
|
openField: openAcc = FIELD_DEFAULTS.openField,
|
|
13
16
|
highField: highAcc = FIELD_DEFAULTS.highField,
|
|
14
17
|
lowField: lowAcc = FIELD_DEFAULTS.lowField,
|
|
@@ -80,7 +83,7 @@ function calculateCandlestickLayout(props, chartArea, config, theme) {
|
|
|
80
83
|
const useClass = perCandleColor === void 0 && directionUserColor === void 0 && directionUserBorder === void 0 && borderColor === void 0 ? effectiveDirection : null;
|
|
81
84
|
const left = cx - bodyWidth / 2;
|
|
82
85
|
const right = cx + bodyWidth / 2;
|
|
83
|
-
const visible = right >= chartArea.x && left <= chartArea.x + chartArea.width && highY <= chartArea.y + chartArea.height && lowY >= chartArea.y;
|
|
86
|
+
const visible = horizontal ? right >= chartArea.y && left <= chartArea.y + chartArea.height && Math.max(highY, lowY) >= chartArea.x && Math.min(highY, lowY) <= chartArea.x + chartArea.width : right >= chartArea.x && left <= chartArea.x + chartArea.width && highY <= chartArea.y + chartArea.height && lowY >= chartArea.y;
|
|
84
87
|
const candleCtx = makeItemContext(data[i], i, { value: c, category: label, ...seriesExtras });
|
|
85
88
|
const wickStrokeWidth = resolveAccessor(wickStrokeWidthProp, candleCtx, { arrayMode: "clip", fallback: DEFAULT_CANDLESTICK_WICK_WIDTH }) ?? DEFAULT_CANDLESTICK_WICK_WIDTH;
|
|
86
89
|
const candleBorderDash = resolveDash(borderDashProp, candleCtx);
|
|
@@ -109,6 +112,7 @@ function calculateCandlestickLayout(props, chartArea, config, theme) {
|
|
|
109
112
|
borderDash: candleBorderDash,
|
|
110
113
|
borderDashOffset: candleBorderDashOffset,
|
|
111
114
|
useClass,
|
|
115
|
+
orientation: horizontal ? "horizontal" : "vertical",
|
|
112
116
|
visible
|
|
113
117
|
});
|
|
114
118
|
}
|
|
@@ -146,9 +150,8 @@ function calculateCandlestickLayout(props, chartArea, config, theme) {
|
|
|
146
150
|
function hitTestCandlestick(x, y, layout) {
|
|
147
151
|
for (const candle of layout.visibleCandles) {
|
|
148
152
|
const halfBody = candle.bodyWidth / 2;
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
}
|
|
153
|
+
const hit = candle.orientation === "horizontal" ? Math.abs(y - candle.x) <= halfBody && x >= Math.min(candle.wickTop, candle.wickBottom) && x <= Math.max(candle.wickTop, candle.wickBottom) : Math.abs(x - candle.x) <= halfBody && y >= candle.wickTop && y <= candle.wickBottom;
|
|
154
|
+
if (hit) return candle.dataIndex;
|
|
152
155
|
}
|
|
153
156
|
return null;
|
|
154
157
|
}
|
|
@@ -177,7 +180,8 @@ var candlestickRenderer = {
|
|
|
177
180
|
return hitTestCandlestick(x, y, layout);
|
|
178
181
|
},
|
|
179
182
|
getAxisHints(props, data) {
|
|
180
|
-
const
|
|
183
|
+
const independentField = resolveCartesianAccessors(props).independentField;
|
|
184
|
+
const categoryLabels = batchResolveAccessor(independentField, data);
|
|
181
185
|
const highVals = batchResolveAccessor(props.highField ?? FIELD_DEFAULTS.highField, data);
|
|
182
186
|
const lowVals = batchResolveAccessor(props.lowField ?? FIELD_DEFAULTS.lowField, data);
|
|
183
187
|
return {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { computeBarRenderStates, traceRoundedRect, tracePartialBorder } from './chunk-
|
|
2
|
-
import { isGradientColor, createCanvasGradientFromColor } from './chunk-
|
|
3
|
-
import { readCssNumber, withCanvasState } from './chunk-
|
|
1
|
+
import { computeBarRenderStates, traceRoundedRect, tracePartialBorder } from './chunk-DJOHDKTP.mjs';
|
|
2
|
+
import { isGradientColor, createCanvasGradientFromColor } from './chunk-BDCNBS6W.mjs';
|
|
3
|
+
import { readCssNumber, withCanvasState } from './chunk-BF7RP4A3.mjs';
|
|
4
4
|
|
|
5
5
|
// src/series/bar/canvas/index.ts
|
|
6
6
|
function createCanvasPathBuilder(ctx) {
|
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { resolveRadialAccessors } from './chunk-6MAO6I3E.mjs';
|
|
2
|
+
import { safeFormat } from './chunk-DIJFKY6H.mjs';
|
|
3
|
+
import { batchResolveAccessor, FIELD_DEFAULTS } from './chunk-BDCNBS6W.mjs';
|
|
4
|
+
import { resolveCartesianAccessors } from './chunk-G3DIMENH.mjs';
|
|
2
5
|
|
|
3
6
|
// src/utils/interaction/accessibility.utils.ts
|
|
4
7
|
var CHART_TYPE_LABELS = {
|
|
@@ -60,7 +63,12 @@ function generatePiePointDescription(label, value, percentage) {
|
|
|
60
63
|
return `${label}: ${value}.`;
|
|
61
64
|
}
|
|
62
65
|
function formatPointDescription(context, formatter) {
|
|
63
|
-
if (formatter)
|
|
66
|
+
if (formatter)
|
|
67
|
+
return safeFormat(
|
|
68
|
+
() => formatter(context),
|
|
69
|
+
() => formatPointDescription(context, void 0),
|
|
70
|
+
"point description"
|
|
71
|
+
);
|
|
64
72
|
if (context.percentage !== void 0) {
|
|
65
73
|
return generatePiePointDescription(context.category, context.value, context.percentage);
|
|
66
74
|
}
|
|
@@ -106,8 +114,9 @@ function buildChartDataTable(datasets, maxRows = DEFAULT_DATA_TABLE_MAX_ROWS, ce
|
|
|
106
114
|
entries.forEach((ds, i) => {
|
|
107
115
|
const props = ds.props;
|
|
108
116
|
const data = props.data ?? [];
|
|
109
|
-
const
|
|
110
|
-
const
|
|
117
|
+
const acc = resolveCartesianAccessors(props);
|
|
118
|
+
const xs = batchResolveAccessor(acc.independentField ?? FIELD_DEFAULTS.xField, data);
|
|
119
|
+
const ys = batchResolveAccessor(acc.measureField ?? FIELD_DEFAULTS.yField, data);
|
|
111
120
|
data.forEach((_, r) => {
|
|
112
121
|
const row = [xs[r] ?? "", ys[r] ?? ""];
|
|
113
122
|
rows.push(multi ? [seriesName(props, i), ...row] : row);
|
|
@@ -118,7 +127,7 @@ function buildChartDataTable(datasets, maxRows = DEFAULT_DATA_TABLE_MAX_ROWS, ce
|
|
|
118
127
|
caption = "Candlestick chart data";
|
|
119
128
|
const props = entries[0].props;
|
|
120
129
|
const data = props.data ?? [];
|
|
121
|
-
const times = batchResolveAccessor(
|
|
130
|
+
const times = batchResolveAccessor(resolveCartesianAccessors(props).independentField, data);
|
|
122
131
|
const opens = batchResolveAccessor(pickField(props, "openField", FIELD_DEFAULTS.openField), data);
|
|
123
132
|
const highs = batchResolveAccessor(pickField(props, "highField", FIELD_DEFAULTS.highField), data);
|
|
124
133
|
const lows = batchResolveAccessor(pickField(props, "lowField", FIELD_DEFAULTS.lowField), data);
|
|
@@ -129,8 +138,8 @@ function buildChartDataTable(datasets, maxRows = DEFAULT_DATA_TABLE_MAX_ROWS, ce
|
|
|
129
138
|
caption = "Heatmap chart data";
|
|
130
139
|
const props = entries[0].props;
|
|
131
140
|
const data = props.data ?? [];
|
|
132
|
-
const ys = batchResolveAccessor(pickField(props, "
|
|
133
|
-
const xs = batchResolveAccessor(pickField(props, "
|
|
141
|
+
const ys = batchResolveAccessor(pickField(props, "categoryYField", FIELD_DEFAULTS.rowField), data);
|
|
142
|
+
const xs = batchResolveAccessor(pickField(props, "categoryXField", FIELD_DEFAULTS.columnField), data);
|
|
134
143
|
const vals = batchResolveAccessor(pickField(props, "valueField", FIELD_DEFAULTS.valueField), data);
|
|
135
144
|
data.forEach((_, r) => rows.push([String(ys[r] ?? r), String(xs[r] ?? r), vals[r] ?? ""]));
|
|
136
145
|
} else if (type === "pie") {
|
|
@@ -144,11 +153,14 @@ function buildChartDataTable(datasets, maxRows = DEFAULT_DATA_TABLE_MAX_ROWS, ce
|
|
|
144
153
|
} else {
|
|
145
154
|
columns = multi ? ["Series", "Category", "Value"] : ["Category", "Value"];
|
|
146
155
|
caption = `${CHART_TYPE_LABELS[type] ?? "Chart"} chart data`;
|
|
156
|
+
const isRadial = type === "radar" || type === "polar";
|
|
147
157
|
entries.forEach((ds, i) => {
|
|
148
158
|
const props = ds.props;
|
|
149
159
|
const data = props.data ?? [];
|
|
150
|
-
const
|
|
151
|
-
const
|
|
160
|
+
const catAcc = isRadial ? resolveRadialAccessors(props).angularField : resolveCartesianAccessors(props).independentField;
|
|
161
|
+
const valAcc = isRadial ? resolveRadialAccessors(props).radialField : resolveCartesianAccessors(props).measureField;
|
|
162
|
+
const cats = batchResolveAccessor(catAcc ?? FIELD_DEFAULTS.categoryField, data);
|
|
163
|
+
const vals = batchResolveAccessor(valAcc ?? FIELD_DEFAULTS.valueField, data);
|
|
152
164
|
data.forEach((_, r) => {
|
|
153
165
|
const row = [String(cats[r] ?? r), vals[r] ?? ""];
|
|
154
166
|
rows.push(multi ? [seriesName(props, i), ...row] : row);
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { traceRoundedRect } from './chunk-
|
|
2
|
-
import {
|
|
3
|
-
import { DEFAULT_HOVER_DIM_OPACITY } from './chunk-
|
|
4
|
-
import { resolveAccessor, makeItemContext } from './chunk-
|
|
5
|
-
import { createSvgGroup, setAttr, appendChild, createSvgLine, createSvgPath, createSvgRect } from './chunk-
|
|
1
|
+
import { traceRoundedRect } from './chunk-576P5DBH.mjs';
|
|
2
|
+
import { clampRectBorderRadius, resolveBorderRadius, hasBorderRadius } from './chunk-F2E2QCZM.mjs';
|
|
3
|
+
import { DEFAULT_HOVER_DIM_OPACITY } from './chunk-6LUIVTNV.mjs';
|
|
4
|
+
import { resolveAccessor, makeItemContext } from './chunk-BDCNBS6W.mjs';
|
|
5
|
+
import { createSvgGroup, setAttr, appendChild, adjustBrightness, createSvgLine, createSvgPath, createSvgRect } from './chunk-BF7RP4A3.mjs';
|
|
6
6
|
|
|
7
7
|
// src/series/candlestick/svg/index.ts
|
|
8
8
|
var DEFAULT_BAR_WIDTH_RATIO = 0.7;
|
|
@@ -29,6 +29,43 @@ function renderCandleBodyAndWicksSvg(candle, wickWidth, borderStyle) {
|
|
|
29
29
|
const borderDash = candle.borderDash ?? borderStyle.borderDash;
|
|
30
30
|
const borderDashOffset = candle.borderDashOffset ?? borderStyle.borderDashOffset;
|
|
31
31
|
const inset = borderAlign === "inner" ? borderWidth / 2 : 0;
|
|
32
|
+
if (candle.orientation === "horizontal") {
|
|
33
|
+
const candleClsH = candle.useClass ? `p-chart-candle-${candle.useClass}` : null;
|
|
34
|
+
const isHollowH = candle.bodyFill === null;
|
|
35
|
+
const cy = candle.x;
|
|
36
|
+
const halfThick = candle.bodyWidth / 2;
|
|
37
|
+
const bLeft = candle.bodyTop;
|
|
38
|
+
const bRight = candle.bodyBottom;
|
|
39
|
+
const wLow = Math.min(candle.wickTop, candle.wickBottom);
|
|
40
|
+
const wHigh = Math.max(candle.wickTop, candle.wickBottom);
|
|
41
|
+
const addWickH = (x1, x2) => {
|
|
42
|
+
const w = createSvgLine(x1, cy, x2, cy);
|
|
43
|
+
if (candleClsH) setAttr(w, "class", candleClsH);
|
|
44
|
+
setAttr(w, "stroke", candle.wickColor);
|
|
45
|
+
setAttr(w, "stroke-width", String(wickWidth));
|
|
46
|
+
appendChild(group, w);
|
|
47
|
+
};
|
|
48
|
+
if (bLeft > wLow) addWickH(wLow, bLeft);
|
|
49
|
+
if (wHigh > bRight) addWickH(bRight, wHigh);
|
|
50
|
+
const bx = bLeft + inset;
|
|
51
|
+
const by = cy - halfThick + inset;
|
|
52
|
+
const bw = Math.max(1, bRight - bLeft - inset * 2);
|
|
53
|
+
const bh = Math.max(0, candle.bodyWidth - inset * 2);
|
|
54
|
+
const clampedH = clampRectBorderRadius(resolveBorderRadius(borderRadius), bw, bh);
|
|
55
|
+
const bodyH = hasBorderRadius(clampedH) ? createSvgPath(buildRoundedRectPath(bx, by, bw, bh, clampedH)) : createSvgRect(bx, by, bw, bh);
|
|
56
|
+
if (candleClsH) setAttr(bodyH, "class", candleClsH);
|
|
57
|
+
if (candleClsH && isHollowH) setAttr(bodyH, "style", "fill:none");
|
|
58
|
+
setAttr(bodyH, "fill", candle.bodyFill ?? "none");
|
|
59
|
+
setAttr(bodyH, "stroke", candle.bodyStroke);
|
|
60
|
+
setAttr(bodyH, "stroke-width", String(borderWidth));
|
|
61
|
+
setAttr(bodyH, "stroke-linejoin", borderJoinStyle);
|
|
62
|
+
if (borderDash.length > 0) {
|
|
63
|
+
setAttr(bodyH, "stroke-dasharray", borderDash.join(" "));
|
|
64
|
+
setAttr(bodyH, "stroke-dashoffset", String(borderDashOffset));
|
|
65
|
+
}
|
|
66
|
+
appendChild(group, bodyH);
|
|
67
|
+
return group;
|
|
68
|
+
}
|
|
32
69
|
const halfBody = candle.bodyWidth / 2;
|
|
33
70
|
const bodyLeft = candle.x - halfBody + inset;
|
|
34
71
|
const bodyTop = candle.bodyTop + inset;
|
|
@@ -75,6 +112,19 @@ function renderOhlcTicksSvg(candle, tickWidth, wickWidth) {
|
|
|
75
112
|
setAttr(node, "stroke", candle.bodyStroke);
|
|
76
113
|
setAttr(node, "stroke-width", String(wickWidth));
|
|
77
114
|
};
|
|
115
|
+
if (candle.orientation === "horizontal") {
|
|
116
|
+
const cy = candle.x;
|
|
117
|
+
const hl = createSvgLine(Math.min(candle.wickTop, candle.wickBottom), cy, Math.max(candle.wickTop, candle.wickBottom), cy);
|
|
118
|
+
applyStrokeAttrs(hl);
|
|
119
|
+
appendChild(group, hl);
|
|
120
|
+
const openTickH = createSvgLine(candle.openY, cy, candle.openY, cy + tickWidth);
|
|
121
|
+
applyStrokeAttrs(openTickH);
|
|
122
|
+
appendChild(group, openTickH);
|
|
123
|
+
const closeTickH = createSvgLine(candle.closeY, cy - tickWidth, candle.closeY, cy);
|
|
124
|
+
applyStrokeAttrs(closeTickH);
|
|
125
|
+
appendChild(group, closeTickH);
|
|
126
|
+
return group;
|
|
127
|
+
}
|
|
78
128
|
const vertLine = createSvgLine(candle.x, candle.wickTop, candle.x, candle.wickBottom);
|
|
79
129
|
applyStrokeAttrs(vertLine);
|
|
80
130
|
appendChild(group, vertLine);
|
|
@@ -99,7 +149,17 @@ function renderCandlestickSvg(props, layout, context) {
|
|
|
99
149
|
const hoverBorder = isHovered ? resolveAccessor(props.hoverBorderColor, makeItemContext(dataArr?.[candle.dataIndex], candle.dataIndex, { value: candle.close, category: candle.label, ...seriesExtras }), { arrayMode: "cycle" }) : void 0;
|
|
100
150
|
const hoverFillStr = hoverFill !== void 0 ? typeof hoverFill === "string" ? hoverFill : String(hoverFill) : void 0;
|
|
101
151
|
const hoverBorderStr = hoverBorder !== void 0 ? typeof hoverBorder === "string" ? hoverBorder : String(hoverBorder) : void 0;
|
|
102
|
-
const
|
|
152
|
+
const hoverBrightness = isHovered && props.effects ? props.effects.hoverBrightness ?? context.theme.hoverBrightness ?? 1 : 1;
|
|
153
|
+
const shouldBrighten = hoverBrightness !== 1;
|
|
154
|
+
const brightenFill = (value) => shouldBrighten && value !== null ? adjustBrightness(value, hoverBrightness) : value;
|
|
155
|
+
const brightenStroke = (value) => shouldBrighten ? adjustBrightness(value, hoverBrightness) : value;
|
|
156
|
+
const renderCandle = hoverFillStr !== void 0 || hoverBorderStr !== void 0 || shouldBrighten ? {
|
|
157
|
+
...candle,
|
|
158
|
+
bodyFill: hoverFillStr ?? brightenFill(candle.bodyFill),
|
|
159
|
+
bodyStroke: hoverBorderStr ?? brightenStroke(candle.bodyStroke),
|
|
160
|
+
wickColor: hoverFillStr ?? brightenStroke(candle.wickColor),
|
|
161
|
+
useClass: null
|
|
162
|
+
} : candle;
|
|
103
163
|
let candleNode;
|
|
104
164
|
if (variant === "ohlc") {
|
|
105
165
|
candleNode = renderOhlcTicksSvg(renderCandle, tickWidth, renderCandle.wickStrokeWidth);
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { safeFormat } from './chunk-DIJFKY6H.mjs';
|
|
2
|
+
import { DEFAULT_DATA_LABEL_FONT_FAMILY, resolveFontFamily, resolveFontSize, DEFAULT_DATA_LABEL_FONT_SIZE } from './chunk-6LUIVTNV.mjs';
|
|
2
3
|
|
|
3
4
|
// src/utils/text/datalabel.utils.ts
|
|
4
5
|
function normalizeDataLabelConfig(props, adaptiveFontSize, adaptiveRotation, globalFont) {
|
|
@@ -38,7 +39,11 @@ function formatLabelValue(value) {
|
|
|
38
39
|
}
|
|
39
40
|
function formatDataLabelText(value, percentage, display, formatter, label) {
|
|
40
41
|
if (formatter) {
|
|
41
|
-
return
|
|
42
|
+
return safeFormat(
|
|
43
|
+
() => formatter(value, percentage, label),
|
|
44
|
+
() => formatDataLabelText(value, percentage, display, void 0, label),
|
|
45
|
+
"data label"
|
|
46
|
+
);
|
|
42
47
|
}
|
|
43
48
|
switch (display) {
|
|
44
49
|
case "percentage":
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { lerpColor } from './chunk-
|
|
1
|
+
import { lerpColor } from './chunk-RI32WIDX.mjs';
|
|
2
2
|
|
|
3
3
|
// src/animations/animated-element.ts
|
|
4
4
|
function lerpNumber(from, to, t) {
|
|
@@ -253,6 +253,14 @@ var AnimatedScene = class {
|
|
|
253
253
|
getElements() {
|
|
254
254
|
return Array.from(this.elements.values());
|
|
255
255
|
}
|
|
256
|
+
/** Live element count without allocating an array. Prefer over `getElements().length`. */
|
|
257
|
+
get elementCount() {
|
|
258
|
+
return this.elements.size;
|
|
259
|
+
}
|
|
260
|
+
/** Allocation-free iteration over live elements. Prefer over `getElements()` on the per-frame path. */
|
|
261
|
+
elementValues() {
|
|
262
|
+
return this.elements.values();
|
|
263
|
+
}
|
|
256
264
|
getElement(id) {
|
|
257
265
|
return this.elements.get(id);
|
|
258
266
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { resolveRadialAccessors } from './chunk-6MAO6I3E.mjs';
|
|
2
|
+
import { makeItemContext, resolveAccessor, buildColorIndexMap, getColor, asGradient, getColorValue } from './chunk-BDCNBS6W.mjs';
|
|
2
3
|
|
|
3
4
|
// src/orchestrator/syncHandlers.ts
|
|
4
5
|
function handleSyncedHighlightCartesian(event, delegate, hasCrosshair, isSharedMode, datasets) {
|
|
@@ -55,20 +56,25 @@ function handleSyncedHighlightCartesian(event, delegate, hasCrosshair, isSharedM
|
|
|
55
56
|
};
|
|
56
57
|
return { tooltip, hoverDatasetId: hit.datasetId, hoverIndex: hit.index, axisIdx, axisX };
|
|
57
58
|
}
|
|
58
|
-
function handleSyncedHighlightRadial(event, datasets, delegate, width, height) {
|
|
59
|
+
function handleSyncedHighlightRadial(event, datasets, delegate, width, height, datasetVisibility) {
|
|
59
60
|
if (event.normalized === null || event.categoryIndex == null) {
|
|
60
61
|
return { tooltip: null, hoverDatasetId: null, hoverIndex: null };
|
|
61
62
|
}
|
|
62
63
|
const catIdx = event.categoryIndex;
|
|
63
64
|
for (const [dsId, ds] of datasets) {
|
|
64
65
|
if (ds.type !== "pie" && ds.type !== "donut" && ds.type !== "radar" && ds.type !== "polar") continue;
|
|
66
|
+
if (datasetVisibility?.get(dsId) === false) continue;
|
|
65
67
|
const props = ds.props;
|
|
66
68
|
const data = props.data;
|
|
67
69
|
if (!data || catIdx >= data.length) continue;
|
|
68
70
|
const item = data[catIdx];
|
|
69
71
|
const itemCtx = makeItemContext(item, catIdx);
|
|
70
|
-
const
|
|
71
|
-
const
|
|
72
|
+
const isRadial = ds.type === "radar" || ds.type === "polar";
|
|
73
|
+
const radial = isRadial ? resolveRadialAccessors(props) : void 0;
|
|
74
|
+
const categoryAccessor = radial ? radial.angularField : props.categoryField;
|
|
75
|
+
const valueAccessor = radial ? radial.radialField : props.valueField;
|
|
76
|
+
const label = categoryAccessor ? String(resolveAccessor(categoryAccessor, itemCtx)) : "";
|
|
77
|
+
const value = valueAccessor ? resolveAccessor(valueAccessor, itemCtx) : 0;
|
|
72
78
|
let color = "";
|
|
73
79
|
if (props.color != null) {
|
|
74
80
|
const resolved = resolveAccessor(props.color, itemCtx);
|
|
@@ -91,13 +97,14 @@ function handleSyncedHighlightRadial(event, datasets, delegate, width, height) {
|
|
|
91
97
|
}
|
|
92
98
|
return { tooltip: null, hoverDatasetId: null, hoverIndex: null };
|
|
93
99
|
}
|
|
94
|
-
function handleSyncedHighlightRect(event, datasets, width, height) {
|
|
100
|
+
function handleSyncedHighlightRect(event, datasets, width, height, datasetVisibility) {
|
|
95
101
|
if (event.normalized === null || event.categoryIndex == null) {
|
|
96
102
|
return { tooltip: null, hoverDatasetId: null, hoverIndex: null };
|
|
97
103
|
}
|
|
98
104
|
const catIdx = event.categoryIndex;
|
|
99
105
|
for (const [dsId, ds] of datasets) {
|
|
100
106
|
if (ds.type !== "treemap" && ds.type !== "heatmap") continue;
|
|
107
|
+
if (datasetVisibility?.get(dsId) === false) continue;
|
|
101
108
|
const dProps = ds.props;
|
|
102
109
|
const data = dProps["data"];
|
|
103
110
|
if (!data || catIdx >= data.length) continue;
|
|
@@ -126,16 +133,18 @@ function handleSyncedHighlightRect(event, datasets, width, height) {
|
|
|
126
133
|
}
|
|
127
134
|
function buildDatasetRegistrations(chartId, datasets, theme) {
|
|
128
135
|
const infos = [];
|
|
136
|
+
const colorIndexById = buildColorIndexMap(datasets);
|
|
129
137
|
for (const [datasetId, dataset] of datasets) {
|
|
130
138
|
const props = dataset.props;
|
|
131
139
|
const firstItem = props.data?.[0];
|
|
132
|
-
const
|
|
140
|
+
const colorIndex = colorIndexById.get(datasetId) ?? dataset.order;
|
|
141
|
+
const color = getColor(props, colorIndex, firstItem, theme);
|
|
133
142
|
infos.push({
|
|
134
143
|
chartId,
|
|
135
144
|
datasetId,
|
|
136
145
|
label: props.name ?? datasetId,
|
|
137
146
|
color,
|
|
138
|
-
colorGradient: asGradient(getColorValue(props,
|
|
147
|
+
colorGradient: asGradient(getColorValue(props, colorIndex, firstItem, theme)),
|
|
139
148
|
type: dataset.type,
|
|
140
149
|
order: dataset.order
|
|
141
150
|
});
|
|
@@ -210,11 +210,12 @@ function generateNiceTicks(min, max, count = 5, exact = false) {
|
|
|
210
210
|
const niceStep = Math.round(chosen * magnitude * 1e10) / 1e10;
|
|
211
211
|
const niceMin = Math.floor(min / niceStep) * niceStep;
|
|
212
212
|
const ticks = [];
|
|
213
|
+
const lengthCap = exact ? count + 2 : count * 2 + 2;
|
|
213
214
|
for (let tick = niceMin; tick <= max + niceStep * 0.5; tick += niceStep) {
|
|
214
215
|
const rounded = Math.round(tick * 1e10) / 1e10;
|
|
215
216
|
if (rounded < min - niceStep * 1e-3) continue;
|
|
216
217
|
ticks.push(rounded);
|
|
217
|
-
if (ticks.length >
|
|
218
|
+
if (ticks.length > lengthCap) break;
|
|
218
219
|
}
|
|
219
220
|
if (exact) {
|
|
220
221
|
const onThreshold = min === 0;
|
|
@@ -389,6 +390,36 @@ function createBandScale(domainValues, rangeValues, options = {}) {
|
|
|
389
390
|
scale.range = () => [...rangeValues];
|
|
390
391
|
return scale;
|
|
391
392
|
}
|
|
393
|
+
function createNumericBandScale(domainValues, valueXScale, options = {}) {
|
|
394
|
+
const { categoryGap = 0.1 } = options;
|
|
395
|
+
const centers = /* @__PURE__ */ new Map();
|
|
396
|
+
const pxList = [];
|
|
397
|
+
for (const c of domainValues) {
|
|
398
|
+
const px = valueXScale(Number(c));
|
|
399
|
+
centers.set(String(c), px);
|
|
400
|
+
if (!isNaN(px)) pxList.push(px);
|
|
401
|
+
}
|
|
402
|
+
pxList.sort((a, b) => a - b);
|
|
403
|
+
let step = Infinity;
|
|
404
|
+
for (let i = 1; i < pxList.length; i++) {
|
|
405
|
+
const gap = pxList[i] - pxList[i - 1];
|
|
406
|
+
if (gap > 0 && gap < step) step = gap;
|
|
407
|
+
}
|
|
408
|
+
if (!isFinite(step) || step <= 0) {
|
|
409
|
+
const range = valueXScale.range();
|
|
410
|
+
step = Math.abs(range[1] - range[0]) * 0.1 || 1;
|
|
411
|
+
}
|
|
412
|
+
const bandwidthValue = step * (1 - categoryGap);
|
|
413
|
+
const scale = ((category) => {
|
|
414
|
+
const center = centers.get(String(category));
|
|
415
|
+
return center === void 0 || isNaN(center) ? NaN : center - bandwidthValue / 2;
|
|
416
|
+
});
|
|
417
|
+
scale.bandwidth = () => bandwidthValue;
|
|
418
|
+
scale.step = () => step;
|
|
419
|
+
scale.domain = () => [...domainValues];
|
|
420
|
+
scale.range = () => valueXScale.range();
|
|
421
|
+
return scale;
|
|
422
|
+
}
|
|
392
423
|
function createVariwideBandScale(domainValues, rangeValues, options) {
|
|
393
424
|
const { chartPaddingMin = 0.05, chartPaddingMax = 0.05, categoryGap = 0.1, weights } = options;
|
|
394
425
|
const n = domainValues.length;
|
|
@@ -949,7 +980,36 @@ function createOrdinalTimeScale(sortedTimestamps, rangeValues, options) {
|
|
|
949
980
|
if (count === 0) return [];
|
|
950
981
|
const pixelWidth = Math.abs(rangeSpan);
|
|
951
982
|
const { ticks } = generateTimeTicks(visMinTs, visMaxTs, pixelWidth, options?.tickConfig);
|
|
952
|
-
|
|
983
|
+
const deduped = [];
|
|
984
|
+
let bucketIdx = NaN;
|
|
985
|
+
let bucketDist = Infinity;
|
|
986
|
+
for (const t of ticks) {
|
|
987
|
+
const frac = tsToFracIdx(t);
|
|
988
|
+
const idx = Math.round(frac);
|
|
989
|
+
const dist = Math.abs(frac - idx);
|
|
990
|
+
if (idx === bucketIdx) {
|
|
991
|
+
if (dist < bucketDist) {
|
|
992
|
+
deduped[deduped.length - 1] = t;
|
|
993
|
+
bucketDist = dist;
|
|
994
|
+
}
|
|
995
|
+
continue;
|
|
996
|
+
}
|
|
997
|
+
deduped.push(t);
|
|
998
|
+
bucketIdx = idx;
|
|
999
|
+
bucketDist = dist;
|
|
1000
|
+
}
|
|
1001
|
+
const minSpacing = options?.tickConfig?.minTickSpacing ?? 80;
|
|
1002
|
+
const pixelFiltered = [];
|
|
1003
|
+
let prevPixel = -Infinity;
|
|
1004
|
+
for (const t of deduped) {
|
|
1005
|
+
const frac = tsToFracIdx(t);
|
|
1006
|
+
const pixel = visSpan > 0 ? rangeValues[0] + (frac - visMinIdx) / visSpan * rangeSpan : rangeValues[0];
|
|
1007
|
+
if (Math.abs(pixel - prevPixel) >= minSpacing) {
|
|
1008
|
+
pixelFiltered.push(t);
|
|
1009
|
+
prevPixel = pixel;
|
|
1010
|
+
}
|
|
1011
|
+
}
|
|
1012
|
+
return pixelFiltered;
|
|
953
1013
|
};
|
|
954
1014
|
scale.domain = () => [visMinTs, visMaxTs];
|
|
955
1015
|
scale.range = () => [...rangeValues];
|
|
@@ -981,4 +1041,4 @@ function createOrdinalTimeBandAdapter(sortedTimestamps, ordinalScale) {
|
|
|
981
1041
|
return scale;
|
|
982
1042
|
}
|
|
983
1043
|
|
|
984
|
-
export { DEFAULT_FORMATS, MS, TICK_INTERVALS, advanceByUnit, calculateArcBoundingBox, calculateGroupedBarLayout, calculateNiceDomain, calculateNiceLogDomain, calculateNiceTimeDomain, clamp, createBandScale, createLinearScale, createLogScale, createOrdinalTimeBandAdapter, createOrdinalTimeScale, createTimeBandAdapter, createTimeScale, createVariwideBandScale, crisp, detectTickUnit, findMax, findMin, floorToUnit, formatTimeTick, generateIntervalTicks, generateLogTicks, generateNiceTicks, generateTimeTicks, intervalSpanMs, isPeriodBoundary, normalizeAngle, normalizeAngleRelativeTo, pointOnCircle, scaleLinear, selectTickInterval, shallowEqual, toRad, toTimestamp, warnChartDevOnce, xCalc, yCalc };
|
|
1044
|
+
export { DEFAULT_FORMATS, MS, TICK_INTERVALS, advanceByUnit, calculateArcBoundingBox, calculateGroupedBarLayout, calculateNiceDomain, calculateNiceLogDomain, calculateNiceTimeDomain, clamp, createBandScale, createLinearScale, createLogScale, createNumericBandScale, createOrdinalTimeBandAdapter, createOrdinalTimeScale, createTimeBandAdapter, createTimeScale, createVariwideBandScale, crisp, detectTickUnit, findMax, findMin, floorToUnit, formatTimeTick, generateIntervalTicks, generateLogTicks, generateNiceTicks, generateTimeTicks, intervalSpanMs, isChartDevWarningsEnabled, isPeriodBoundary, normalizeAngle, normalizeAngleRelativeTo, pointOnCircle, scaleLinear, selectTickInterval, shallowEqual, toRad, toTimestamp, warnChartDevOnce, xCalc, yCalc };
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { CHAR_WIDTH_RATIO } from './chunk-
|
|
2
|
-
import { DEFAULT_TREEMAP_PADDING, DEFAULT_TREEMAP_GROUP_LABEL_HEIGHT, DEFAULT_TREEMAP_GROUP_COLORS, DEFAULT_TREEMAP_CELL_COLOR, DEFAULT_TREEMAP_HEADER_BG } from './chunk-
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
1
|
+
import { CHAR_WIDTH_RATIO } from './chunk-56MASQS2.mjs';
|
|
2
|
+
import { DEFAULT_TREEMAP_PADDING, DEFAULT_TREEMAP_GROUP_LABEL_HEIGHT, DEFAULT_TREEMAP_GROUP_COLORS, DEFAULT_TREEMAP_CELL_COLOR, DEFAULT_TREEMAP_HEADER_BG } from './chunk-6LUIVTNV.mjs';
|
|
3
|
+
import { resolveColorScaleRange, interpolateColor } from './chunk-RI32WIDX.mjs';
|
|
4
|
+
import { FIELD_DEFAULTS, resolveAccessor, makeItemContext } from './chunk-BDCNBS6W.mjs';
|
|
5
|
+
import { resquarify, sliceDiceLayout, diceLayout, sliceLayout } from './chunk-FML3QEEI.mjs';
|
|
6
6
|
|
|
7
|
-
// src/series/treemap/geometry.
|
|
7
|
+
// src/series/treemap/geometry.ts
|
|
8
8
|
function interpolateColor2(colorScale, colorRange, value) {
|
|
9
9
|
return interpolateColor(colorScale, colorRange, value, DEFAULT_TREEMAP_CELL_COLOR);
|
|
10
10
|
}
|
|
@@ -458,8 +458,6 @@ function calculateTreemapLayout(props, chartArea, theme, previousLayout) {
|
|
|
458
458
|
}
|
|
459
459
|
return { cells, groupHeaders, groupBackgrounds, resolvedColorScale, resolvedColorRange, valueRange: resolvedValueRange, _squarifyRects: topLevelRects };
|
|
460
460
|
}
|
|
461
|
-
|
|
462
|
-
// src/series/treemap/geometry.labels.ts
|
|
463
461
|
var LABEL_TIERS = [
|
|
464
462
|
{ minArea: 25e3, minWidth: 100, minHeight: 60, fontSize: 16, secondaryFontSize: 12, showSecondary: true },
|
|
465
463
|
{ minArea: 1e4, minWidth: 70, minHeight: 45, fontSize: 14, secondaryFontSize: 10, showSecondary: true },
|
|
@@ -521,4 +519,4 @@ function buildCellExtras(props, item, layout, idx) {
|
|
|
521
519
|
};
|
|
522
520
|
}
|
|
523
521
|
|
|
524
|
-
export { buildCellExtras, calculateTreemapLayout, getCellLabelInfo };
|
|
522
|
+
export { buildCellExtras, calculateTreemapLayout, getCellLabelInfo, resolveField };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { resolveBackgroundColor, DARK_MODE_COLORS, LIGHT_MODE_COLORS } from './chunk-
|
|
2
|
-
import { calculateLuminanceFromRGB } from './chunk-
|
|
3
|
-
import { resolveSwatchGradientStops } from './chunk-
|
|
4
|
-
import { parseColorToRGB } from './chunk-
|
|
1
|
+
import { resolveBackgroundColor, DARK_MODE_COLORS, LIGHT_MODE_COLORS } from './chunk-6LUIVTNV.mjs';
|
|
2
|
+
import { calculateLuminanceFromRGB } from './chunk-RI32WIDX.mjs';
|
|
3
|
+
import { resolveSwatchGradientStops } from './chunk-BDCNBS6W.mjs';
|
|
4
|
+
import { parseColorToRGB } from './chunk-BF7RP4A3.mjs';
|
|
5
5
|
|
|
6
6
|
// src/utils/export/svg-styles.ts
|
|
7
7
|
function inlineComputedStyles(element, rootStyles) {
|
|
@@ -318,11 +318,11 @@ function generateSvgElementMarkup(el, containerRect, defs, idRef) {
|
|
|
318
318
|
const rxAttr = br > 0 ? ` rx="${br}"` : "";
|
|
319
319
|
if (gradientStops.length > 0) {
|
|
320
320
|
const gradId = `p-chart-export-grad-${idRef.v++}`;
|
|
321
|
-
const stopEls = gradientStops.map((s) => `<stop offset="${Math.round(s.offset * 100)}%" stop-color="${s.color}"/>`).join("");
|
|
321
|
+
const stopEls = gradientStops.map((s) => `<stop offset="${Math.round(s.offset * 100)}%" stop-color="${escapeXml(s.color)}"/>`).join("");
|
|
322
322
|
defs.push(gradientDef.radialGradient ? `<radialGradient id="${gradId}" cx="50%" cy="50%" r="50%">${stopEls}</radialGradient>` : `<linearGradient id="${gradId}" x1="0" y1="0" x2="0" y2="1">${stopEls}</linearGradient>`);
|
|
323
323
|
result += `<rect x="${x}" y="${y}" width="${w}" height="${h}" fill="url(#${gradId})"${rxAttr}${opacityAttr}/>`;
|
|
324
324
|
} else if (bg && bg !== "rgba(0, 0, 0, 0)" && bg !== "transparent") {
|
|
325
|
-
result += `<rect x="${x}" y="${y}" width="${w}" height="${h}" fill="${bg}"${rxAttr}${opacityAttr}/>`;
|
|
325
|
+
result += `<rect x="${x}" y="${y}" width="${w}" height="${h}" fill="${escapeXml(bg)}"${rxAttr}${opacityAttr}/>`;
|
|
326
326
|
}
|
|
327
327
|
if (el.childElementCount === 0) {
|
|
328
328
|
const text = (el.textContent || "").trim();
|
|
@@ -354,7 +354,7 @@ function generateSvgElementMarkup(el, containerRect, defs, idRef) {
|
|
|
354
354
|
}
|
|
355
355
|
}
|
|
356
356
|
const fontStyle = styles.fontStyle !== "normal" ? ` font-style="${styles.fontStyle}"` : "";
|
|
357
|
-
result += `<text x="${textX}" y="${y + h / 2}" dy="0.32em" font-size="${fontSize}" font-weight="${styles.fontWeight}"${fontStyle} font-family="${escapeXml(styles.fontFamily)}" fill="${styles.color}" text-anchor="${anchor}"${opacityAttr}>` + escapeXml(text) + `</text>`;
|
|
357
|
+
result += `<text x="${textX}" y="${y + h / 2}" dy="0.32em" font-size="${fontSize}" font-weight="${styles.fontWeight}"${fontStyle} font-family="${escapeXml(styles.fontFamily)}" fill="${escapeXml(styles.color)}" text-anchor="${anchor}"${opacityAttr}>` + escapeXml(text) + `</text>`;
|
|
358
358
|
}
|
|
359
359
|
}
|
|
360
360
|
for (const child of el.children) {
|
|
@@ -1,12 +1,13 @@
|
|
|
1
|
-
import { renderBarCanvas } from './chunk-
|
|
2
|
-
import { renderBarSvg } from './chunk-
|
|
3
|
-
import { hitTestBar, calculateBarLayout } from './chunk-
|
|
4
|
-
import { DEFAULT_HOVER_OFFSET, DEFAULT_HOVER_DIM_OPACITY, DEFAULT_HOVER_BRIGHTNESS } from './chunk-
|
|
5
|
-
import { batchResolveAccessor, batchResolveRequired } from './chunk-
|
|
1
|
+
import { renderBarCanvas } from './chunk-I25SSZE3.mjs';
|
|
2
|
+
import { renderBarSvg } from './chunk-YVDVKLPR.mjs';
|
|
3
|
+
import { hitTestBar, calculateBarLayout } from './chunk-DJOHDKTP.mjs';
|
|
4
|
+
import { DEFAULT_HOVER_OFFSET, DEFAULT_HOVER_DIM_OPACITY, DEFAULT_HOVER_BRIGHTNESS } from './chunk-6LUIVTNV.mjs';
|
|
5
|
+
import { batchResolveAccessor, batchResolveRequired } from './chunk-BDCNBS6W.mjs';
|
|
6
|
+
import { resolveCartesianAccessors } from './chunk-G3DIMENH.mjs';
|
|
6
7
|
|
|
7
8
|
// src/series/bar/geom/visual-layout.ts
|
|
8
9
|
function computeBarVisualLayout(input) {
|
|
9
|
-
const { intermediate, sharedCategoryScale, valueScales, valueDomains, cartesianArea, orientation, axisLayouts, hover, hoverConfig, theme } = input;
|
|
10
|
+
const { intermediate, sharedCategoryScale, valueScales, valueDomains, cartesianArea, orientation, axisLayouts, hover, hoverConfig, theme, colorIndexById } = input;
|
|
10
11
|
const { barDatasets, visibleBarDatasets, mode, valuesPerDataset, stackBasesMap, groupLayout, fullGroupLayout, isVariwide, barGap, datasetAxisMap, firstValueAxisId } = intermediate;
|
|
11
12
|
const categories = sharedCategoryScale.domain();
|
|
12
13
|
const sharedValueScale = valueScales.get(firstValueAxisId) ?? valueScales.values().next().value;
|
|
@@ -18,11 +19,12 @@ function computeBarVisualLayout(input) {
|
|
|
18
19
|
if (mode.isPercentStacked || mode.isWaterfall) {
|
|
19
20
|
for (let dsIdx = 0; dsIdx < barDatasets.length; dsIdx++) {
|
|
20
21
|
const ds = barDatasets[dsIdx];
|
|
22
|
+
const measureKey = resolveCartesianAccessors(ds.props).measureField;
|
|
21
23
|
syntheticDataMap.set(
|
|
22
24
|
ds.id,
|
|
23
25
|
ds.props.data.map((item, i) => ({
|
|
24
26
|
...item,
|
|
25
|
-
[
|
|
27
|
+
[measureKey]: valuesPerDataset[dsIdx][i]
|
|
26
28
|
}))
|
|
27
29
|
);
|
|
28
30
|
}
|
|
@@ -49,8 +51,6 @@ function computeBarVisualLayout(input) {
|
|
|
49
51
|
const renderProps = {
|
|
50
52
|
...barProps,
|
|
51
53
|
...syntheticDataMap.has(ds.id) ? { data: syntheticDataMap.get(ds.id) } : {},
|
|
52
|
-
categoryField: barProps.categoryField,
|
|
53
|
-
valueField: barProps.valueField,
|
|
54
54
|
interaction: {
|
|
55
55
|
hoveredIndex: hover.datasetId === ds.id ? hover.index : null
|
|
56
56
|
},
|
|
@@ -122,7 +122,7 @@ function computeBarVisualLayout(input) {
|
|
|
122
122
|
multiConfig.categoryPositions = catPositions;
|
|
123
123
|
}
|
|
124
124
|
const baseLayout = calculateBarLayout(renderProps, cartesianArea, multiConfig);
|
|
125
|
-
const layout = { ...baseLayout, datasetIndex: dsIdx };
|
|
125
|
+
const layout = { ...baseLayout, datasetIndex: dsIdx, colorIndex: colorIndexById.get(ds.id) ?? dsIdx };
|
|
126
126
|
layouts.set(ds.id, layout);
|
|
127
127
|
renderPropsMap.set(ds.id, renderProps);
|
|
128
128
|
if (ds.visible) {
|
|
@@ -203,7 +203,8 @@ function computeBarVisualLayout(input) {
|
|
|
203
203
|
function computeBarDatasetTotals(barDatasets, barRawResolved) {
|
|
204
204
|
const datasetTotals = /* @__PURE__ */ new Map();
|
|
205
205
|
for (let i = 0; i < barDatasets.length; i++) {
|
|
206
|
-
const
|
|
206
|
+
const measureKey = resolveCartesianAccessors(barDatasets[i].props).measureField;
|
|
207
|
+
const values = barRawResolved?.[i] ?? batchResolveAccessor(measureKey, barDatasets[i].props.data);
|
|
207
208
|
let total = 0;
|
|
208
209
|
for (const v of values) total += Math.abs(v);
|
|
209
210
|
datasetTotals.set(barDatasets[i].id, total);
|
|
@@ -211,7 +212,8 @@ function computeBarDatasetTotals(barDatasets, barRawResolved) {
|
|
|
211
212
|
return datasetTotals;
|
|
212
213
|
}
|
|
213
214
|
function getBarAxisHints(props, data) {
|
|
214
|
-
const
|
|
215
|
+
const acc = resolveCartesianAccessors(props);
|
|
216
|
+
const categoryLabels = acc.independentField ? batchResolveRequired(acc.independentField, data, "categoryField") : void 0;
|
|
215
217
|
const categoryWeights = props.weightField ? batchResolveRequired(props.weightField, data, "weightField") : void 0;
|
|
216
218
|
return { categoryLabels, categoryWeights };
|
|
217
219
|
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { DEFAULT_MARKER_SHAPE } from './chunk-
|
|
2
|
-
import { isBoostActive } from './chunk-
|
|
3
|
-
import { traceMarkerShapeCanvasAt, MARKER_SHAPE_NAMES, drawMarkerCanvas } from './chunk-
|
|
4
|
-
import { computeItemHoverState, applyHoverEffects } from './chunk-
|
|
5
|
-
import { DEFAULT_HOVER_DIM_OPACITY, DEFAULT_SCATTER_FILL_OPACITY, DEFAULT_SCATTER_BORDER_WIDTH, DEFAULT_HOVER_POINT_RADIUS_MULTIPLIER } from './chunk-
|
|
6
|
-
import { resolveAccessor, makeItemContext, getDefaultColor, getPrimaryColor, isGradientColor, createCanvasGradientFromColor, resolveDash } from './chunk-
|
|
1
|
+
import { DEFAULT_MARKER_SHAPE } from './chunk-SPU6BO3B.mjs';
|
|
2
|
+
import { isBoostActive } from './chunk-5EQSFUBA.mjs';
|
|
3
|
+
import { traceMarkerShapeCanvasAt, MARKER_SHAPE_NAMES, drawMarkerCanvas } from './chunk-QIYJUZ7I.mjs';
|
|
4
|
+
import { computeItemHoverState, applyHoverEffects } from './chunk-F6AGZQDA.mjs';
|
|
5
|
+
import { DEFAULT_HOVER_DIM_OPACITY, DEFAULT_SCATTER_FILL_OPACITY, DEFAULT_SCATTER_BORDER_WIDTH, DEFAULT_HOVER_POINT_RADIUS_MULTIPLIER } from './chunk-6LUIVTNV.mjs';
|
|
6
|
+
import { resolveAccessor, makeItemContext, getDefaultColor, getPrimaryColor, isGradientColor, createCanvasGradientFromColor, resolveDash } from './chunk-BDCNBS6W.mjs';
|
|
7
7
|
|
|
8
8
|
// src/series/scatter/canvas/index.ts
|
|
9
9
|
function renderScatterCanvas(props, layout, ctx, context) {
|
|
@@ -20,7 +20,7 @@ function renderScatterCanvas(props, layout, ctx, context) {
|
|
|
20
20
|
}) ?? DEFAULT_MARKER_SHAPE;
|
|
21
21
|
const hoveredIndex = boostActive ? null : props.interaction?.hoveredIndex ?? null;
|
|
22
22
|
const anyHovered = hoveredIndex !== null;
|
|
23
|
-
const effectiveSeriesColor = layout.seriesColor ?? getDefaultColor(layout.
|
|
23
|
+
const effectiveSeriesColor = layout.seriesColor ?? getDefaultColor(layout.colorIndex, context.theme);
|
|
24
24
|
const baseBorderColorShared = props.pointBorderColor != null ? props.pointBorderColor : void 0;
|
|
25
25
|
const borderWidthAccessor = props.pointBorderStrokeWidth;
|
|
26
26
|
const dataArr = props.data;
|