@visactor/vseed 0.2.3 → 0.2.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/dist/cjs/index.cjs +1 -1
  2. package/dist/cjs/index.cjs.map +1 -1
  3. package/dist/esm/pipeline/spec/chart/pipeline/histogram.js +3 -3
  4. package/dist/esm/pipeline/spec/chart/pipeline/histogram.js.map +1 -1
  5. package/dist/esm/pipeline/spec/chart/pipes/axes/{axisStyle.js → bandAxisStyle.js} +1 -1
  6. package/dist/esm/pipeline/spec/chart/pipes/axes/bandAxisStyle.js.map +1 -0
  7. package/dist/esm/pipeline/spec/chart/pipes/axes/heatmapBandAxis.js +1 -1
  8. package/dist/esm/pipeline/spec/chart/pipes/axes/heatmapBandAxis.js.map +1 -1
  9. package/dist/esm/pipeline/spec/chart/pipes/axes/histogramXLinear.d.ts +2 -0
  10. package/dist/esm/pipeline/spec/chart/pipes/axes/histogramXLinear.js +50 -0
  11. package/dist/esm/pipeline/spec/chart/pipes/axes/histogramXLinear.js.map +1 -0
  12. package/dist/esm/pipeline/spec/chart/pipes/axes/index.d.ts +1 -0
  13. package/dist/esm/pipeline/spec/chart/pipes/axes/index.js +2 -1
  14. package/dist/esm/pipeline/spec/chart/pipes/axes/linearAxisStyle.d.ts +14 -0
  15. package/dist/esm/pipeline/spec/chart/pipes/axes/linearAxisStyle.js +78 -0
  16. package/dist/esm/pipeline/spec/chart/pipes/axes/linearAxisStyle.js.map +1 -0
  17. package/dist/esm/pipeline/spec/chart/pipes/axes/xBand.js +1 -1
  18. package/dist/esm/pipeline/spec/chart/pipes/axes/xBand.js.map +1 -1
  19. package/dist/esm/pipeline/spec/chart/pipes/axes/xLinear.js +14 -68
  20. package/dist/esm/pipeline/spec/chart/pipes/axes/xLinear.js.map +1 -1
  21. package/dist/esm/pipeline/spec/chart/pipes/axes/yBand.js +1 -1
  22. package/dist/esm/pipeline/spec/chart/pipes/axes/yBand.js.map +1 -1
  23. package/dist/esm/pipeline/spec/chart/pipes/axes/yLinear.js +14 -68
  24. package/dist/esm/pipeline/spec/chart/pipes/axes/yLinear.js.map +1 -1
  25. package/dist/esm/pipeline/spec/chart/pipes/axes/yLinearPrimary.js +13 -59
  26. package/dist/esm/pipeline/spec/chart/pipes/axes/yLinearPrimary.js.map +1 -1
  27. package/dist/esm/pipeline/spec/chart/pipes/axes/yLinearSecondary.js +16 -57
  28. package/dist/esm/pipeline/spec/chart/pipes/axes/yLinearSecondary.js.map +1 -1
  29. package/dist/esm/pipeline/spec/chart/pipes/pivotChart/dimensionLinkage.js +2 -2
  30. package/dist/esm/pipeline/spec/chart/pipes/pivotChart/dimensionLinkage.js.map +1 -1
  31. package/dist/esm/types/properties/config/crosshair/crosshair.d.ts +36 -0
  32. package/dist/esm/types/zVseed.d.ts +1 -1
  33. package/dist/umd/index.js +142 -217
  34. package/dist/umd/index.js.map +1 -1
  35. package/package.json +12 -12
  36. package/dist/esm/pipeline/spec/chart/pipes/axes/axisStyle.js.map +0 -1
  37. /package/dist/esm/pipeline/spec/chart/pipes/axes/{axisStyle.d.ts → bandAxisStyle.d.ts} +0 -0
@@ -1,8 +1,8 @@
1
- import { AXIS_LABEL_SPACE, LINEAR_AXIS_INNER_OFFSET_TOP } from "../../../../utils/constant.js";
2
1
  import { createNumFormatter } from "../../../../utils/index.js";
3
2
  import { isEmpty, isNullish } from "remeda";
4
3
  import { createLinearFormat } from "./format/linearFormat.js";
5
4
  import { defaultTitleText } from "./title/defaultTitleText.js";
5
+ import { linearAxisStyle } from "./linearAxisStyle.js";
6
6
  const yLinearPrimary = (spec, context)=>{
7
7
  const result = {
8
8
  ...spec
@@ -24,66 +24,20 @@ const yLinearPrimary = (spec, context)=>{
24
24
  ];
25
25
  const seriesId = alignTicksConfig ? seriesIds : seriesIds[0];
26
26
  if (!result.axes) result.axes = [];
27
- const { visible = true, label, tick, title, grid, line, zero, nice, inverse, max, min, log, logBase = 10, autoFormat, numFormat = {} } = yAxisConfig ?? {};
27
+ const { autoFormat, numFormat = {} } = yAxisConfig ?? {};
28
28
  const formatter = createNumFormatter(numFormat);
29
+ const formatMethod = (value)=>createLinearFormat(value, autoFormat, numFormat, formatter);
30
+ const titleText = yAxisConfig?.title?.titleText || defaultTitleText(measures, dimensions, encoding.y);
29
31
  const linearAxis = {
30
- visible: isEmptySecondary ? false : visible,
31
- id,
32
- seriesId,
33
- type: log ? 'log' : 'linear',
34
- base: logBase,
35
- orient: 'left',
36
- nice,
37
- zero: log ? false : zero,
38
- inverse,
39
- max,
40
- min,
41
- label: {
42
- space: AXIS_LABEL_SPACE,
43
- visible: label?.visible,
44
- formatMethod: (value)=>createLinearFormat(value, autoFormat, numFormat, formatter),
45
- style: {
46
- fill: label?.labelColor,
47
- angle: label?.labelAngle,
48
- fontSize: label?.labelFontSize,
49
- fontWeight: label?.labelFontWeight
50
- }
51
- },
52
- title: {
53
- visible: title?.visible,
54
- text: title?.titleText || defaultTitleText(measures, dimensions, encoding.y),
55
- style: {
56
- fill: title?.titleColor,
57
- fontSize: title?.titleFontSize,
58
- fontWeight: title?.titleFontWeight
59
- }
60
- },
61
- tick: {
62
- visible: tick?.visible,
63
- tickSize: tick?.tickSize,
64
- inside: tick?.tickInside,
65
- style: {
66
- stroke: tick?.tickColor
67
- }
68
- },
69
- grid: {
70
- visible: grid?.visible,
71
- style: {
72
- lineWidth: grid?.gridWidth,
73
- stroke: grid?.gridColor,
74
- lineDash: grid?.gridLineDash
75
- }
76
- },
77
- domainLine: {
78
- visible: line?.visible,
79
- style: {
80
- lineWidth: line?.lineWidth,
81
- stroke: line?.lineColor
82
- }
83
- },
84
- innerOffset: {
85
- top: LINEAR_AXIS_INNER_OFFSET_TOP
86
- }
32
+ ...linearAxisStyle({
33
+ ...yAxisConfig,
34
+ orient: 'left',
35
+ formatMethod,
36
+ titleText,
37
+ id,
38
+ seriesId
39
+ }),
40
+ visible: isEmptySecondary ? false : yAxisConfig?.visible ?? true
87
41
  };
88
42
  result.axes = [
89
43
  ...result.axes,
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline/spec/chart/pipes/axes/yLinearPrimary.js","sources":["../../../../../../../src/pipeline/spec/chart/pipes/axes/yLinearPrimary.ts"],"sourcesContent":["import type { ISpec } from '@visactor/vchart'\nimport { AXIS_LABEL_SPACE, LINEAR_AXIS_INNER_OFFSET_TOP } from '../../../../utils/constant'\nimport { createNumFormatter } from '../../../../utils'\nimport type { VChartSpecPipe, YLinearAxis } from 'src/types'\nimport { isEmpty, isNullish } from 'remeda'\nimport { createLinearFormat } from './format/linearFormat'\nimport { defaultTitleText } from './title/defaultTitleText'\n\nexport const yLinearPrimary: VChartSpecPipe = (spec, context) => {\n const result = { ...spec } as ISpec\n const { advancedVSeed, vseed } = context\n const { chartType } = vseed\n const { datasetReshapeInfo, encoding, measures, dimensions } = advancedVSeed\n const { index, id: reshapeInfoId, foldInfoList } = datasetReshapeInfo[0]\n // TODO: default config missing\n const primaryYAxis = advancedVSeed.config?.[chartType as 'dualAxis']?.primaryYAxis as YLinearAxis | YLinearAxis[]\n const yAxisConfig = Array.isArray(primaryYAxis) ? primaryYAxis[index] || primaryYAxis[0] : primaryYAxis\n const alignTicks = advancedVSeed.config?.[chartType as 'dualAxis']?.alignTicks as boolean | boolean[]\n const alignTicksConfig = Array.isArray(alignTicks) ? alignTicks[index] || alignTicks[0] : alignTicks\n\n if (isNullish(foldInfoList?.[0])) {\n return result\n }\n\n const isEmptySecondary = isEmpty(foldInfoList?.[0].foldMap)\n\n const id = `${reshapeInfoId}-primary-axis`\n const seriesIds = [`${reshapeInfoId}-primary-series`, `${reshapeInfoId}-secondary-series`]\n const seriesId = alignTicksConfig ? seriesIds : seriesIds[0]\n\n if (!result.axes) {\n result.axes = []\n }\n\n const {\n visible = true,\n label,\n tick,\n title,\n grid,\n line,\n\n zero,\n nice,\n inverse,\n max,\n min,\n log,\n logBase = 10,\n\n autoFormat,\n numFormat = {},\n } = yAxisConfig ?? {}\n\n const formatter = createNumFormatter(numFormat)\n\n const linearAxis = {\n visible: isEmptySecondary ? false : visible,\n id,\n seriesId,\n\n type: log ? 'log' : 'linear',\n base: logBase,\n orient: 'left',\n nice,\n zero: log ? false : zero,\n inverse,\n max,\n min,\n label: {\n space: AXIS_LABEL_SPACE,\n visible: label?.visible,\n formatMethod: (value: string) => {\n return createLinearFormat(value, autoFormat, numFormat, formatter)\n },\n style: {\n fill: label?.labelColor,\n angle: label?.labelAngle,\n fontSize: label?.labelFontSize,\n fontWeight: label?.labelFontWeight,\n },\n },\n title: {\n visible: title?.visible,\n text: title?.titleText || defaultTitleText(measures, dimensions, encoding.y as string[]),\n style: {\n fill: title?.titleColor,\n fontSize: title?.titleFontSize,\n fontWeight: title?.titleFontWeight,\n },\n },\n tick: {\n visible: tick?.visible,\n tickSize: tick?.tickSize,\n inside: tick?.tickInside,\n style: {\n stroke: tick?.tickColor,\n },\n },\n grid: {\n visible: grid?.visible,\n style: {\n lineWidth: grid?.gridWidth,\n stroke: grid?.gridColor,\n lineDash: grid?.gridLineDash,\n },\n },\n domainLine: {\n visible: line?.visible,\n style: {\n lineWidth: line?.lineWidth,\n stroke: line?.lineColor,\n },\n },\n innerOffset: {\n top: LINEAR_AXIS_INNER_OFFSET_TOP,\n // bottom: LINEAR_AXIS_INNER_OFFSET_TOP,\n },\n }\n\n result.axes = [...result.axes, linearAxis] as ISpec['axes']\n\n return result\n}\n"],"names":["yLinearPrimary","spec","context","result","advancedVSeed","vseed","chartType","datasetReshapeInfo","encoding","measures","dimensions","index","reshapeInfoId","foldInfoList","primaryYAxis","yAxisConfig","Array","alignTicks","alignTicksConfig","isNullish","isEmptySecondary","isEmpty","id","seriesIds","seriesId","visible","label","tick","title","grid","line","zero","nice","inverse","max","min","log","logBase","autoFormat","numFormat","formatter","createNumFormatter","linearAxis","AXIS_LABEL_SPACE","value","createLinearFormat","defaultTitleText","LINEAR_AXIS_INNER_OFFSET_TOP"],"mappings":";;;;;AAQO,MAAMA,iBAAiC,CAACC,MAAMC;IACnD,MAAMC,SAAS;QAAE,GAAGF,IAAI;IAAC;IACzB,MAAM,EAAEG,aAAa,EAAEC,KAAK,EAAE,GAAGH;IACjC,MAAM,EAAEI,SAAS,EAAE,GAAGD;IACtB,MAAM,EAAEE,kBAAkB,EAAEC,QAAQ,EAAEC,QAAQ,EAAEC,UAAU,EAAE,GAAGN;IAC/D,MAAM,EAAEO,KAAK,EAAE,IAAIC,aAAa,EAAEC,YAAY,EAAE,GAAGN,kBAAkB,CAAC,EAAE;IAExE,MAAMO,eAAeV,cAAc,MAAM,EAAE,CAACE,UAAwB,EAAE;IACtE,MAAMS,cAAcC,MAAM,OAAO,CAACF,gBAAgBA,YAAY,CAACH,MAAM,IAAIG,YAAY,CAAC,EAAE,GAAGA;IAC3F,MAAMG,aAAab,cAAc,MAAM,EAAE,CAACE,UAAwB,EAAE;IACpE,MAAMY,mBAAmBF,MAAM,OAAO,CAACC,cAAcA,UAAU,CAACN,MAAM,IAAIM,UAAU,CAAC,EAAE,GAAGA;IAE1F,IAAIE,UAAUN,cAAc,CAAC,EAAE,GAC7B,OAAOV;IAGT,MAAMiB,mBAAmBC,QAAQR,cAAc,CAAC,EAAE,CAAC;IAEnD,MAAMS,KAAK,GAAGV,cAAc,aAAa,CAAC;IAC1C,MAAMW,YAAY;QAAC,GAAGX,cAAc,eAAe,CAAC;QAAE,GAAGA,cAAc,iBAAiB,CAAC;KAAC;IAC1F,MAAMY,WAAWN,mBAAmBK,YAAYA,SAAS,CAAC,EAAE;IAE5D,IAAI,CAACpB,OAAO,IAAI,EACdA,OAAO,IAAI,GAAG,EAAE;IAGlB,MAAM,EACJsB,UAAU,IAAI,EACdC,KAAK,EACLC,IAAI,EACJC,KAAK,EACLC,IAAI,EACJC,IAAI,EAEJC,IAAI,EACJC,IAAI,EACJC,OAAO,EACPC,GAAG,EACHC,GAAG,EACHC,GAAG,EACHC,UAAU,EAAE,EAEZC,UAAU,EACVC,YAAY,CAAC,CAAC,EACf,GAAGxB,eAAe,CAAC;IAEpB,MAAMyB,YAAYC,mBAAmBF;IAErC,MAAMG,aAAa;QACjB,SAAStB,mBAAmB,QAAQK;QACpCH;QACAE;QAEA,MAAMY,MAAM,QAAQ;QACpB,MAAMC;QACN,QAAQ;QACRL;QACA,MAAMI,MAAM,QAAQL;QACpBE;QACAC;QACAC;QACA,OAAO;YACL,OAAOQ;YACP,SAASjB,OAAO;YAChB,cAAc,CAACkB,QACNC,mBAAmBD,OAAON,YAAYC,WAAWC;YAE1D,OAAO;gBACL,MAAMd,OAAO;gBACb,OAAOA,OAAO;gBACd,UAAUA,OAAO;gBACjB,YAAYA,OAAO;YACrB;QACF;QACA,OAAO;YACL,SAASE,OAAO;YAChB,MAAMA,OAAO,aAAakB,iBAAiBrC,UAAUC,YAAYF,SAAS,CAAC;YAC3E,OAAO;gBACL,MAAMoB,OAAO;gBACb,UAAUA,OAAO;gBACjB,YAAYA,OAAO;YACrB;QACF;QACA,MAAM;YACJ,SAASD,MAAM;YACf,UAAUA,MAAM;YAChB,QAAQA,MAAM;YACd,OAAO;gBACL,QAAQA,MAAM;YAChB;QACF;QACA,MAAM;YACJ,SAASE,MAAM;YACf,OAAO;gBACL,WAAWA,MAAM;gBACjB,QAAQA,MAAM;gBACd,UAAUA,MAAM;YAClB;QACF;QACA,YAAY;YACV,SAASC,MAAM;YACf,OAAO;gBACL,WAAWA,MAAM;gBACjB,QAAQA,MAAM;YAChB;QACF;QACA,aAAa;YACX,KAAKiB;QAEP;IACF;IAEA5C,OAAO,IAAI,GAAG;WAAIA,OAAO,IAAI;QAAEuC;KAAW;IAE1C,OAAOvC;AACT"}
1
+ {"version":3,"file":"pipeline/spec/chart/pipes/axes/yLinearPrimary.js","sources":["../../../../../../../src/pipeline/spec/chart/pipes/axes/yLinearPrimary.ts"],"sourcesContent":["import type { ISpec } from '@visactor/vchart'\nimport { createNumFormatter } from '../../../../utils'\nimport type { VChartSpecPipe, YLinearAxis } from 'src/types'\nimport { isEmpty, isNullish } from 'remeda'\nimport { createLinearFormat } from './format/linearFormat'\nimport { defaultTitleText } from './title/defaultTitleText'\nimport { linearAxisStyle } from './linearAxisStyle'\n\nexport const yLinearPrimary: VChartSpecPipe = (spec, context) => {\n const result = { ...spec } as ISpec\n const { advancedVSeed, vseed } = context\n const { chartType } = vseed\n const { datasetReshapeInfo, encoding, measures, dimensions } = advancedVSeed\n const { index, id: reshapeInfoId, foldInfoList } = datasetReshapeInfo[0]\n // TODO: default config missing\n const primaryYAxis = advancedVSeed.config?.[chartType as 'dualAxis']?.primaryYAxis as YLinearAxis | YLinearAxis[]\n const yAxisConfig = Array.isArray(primaryYAxis) ? primaryYAxis[index] || primaryYAxis[0] : primaryYAxis\n const alignTicks = advancedVSeed.config?.[chartType as 'dualAxis']?.alignTicks as boolean | boolean[]\n const alignTicksConfig = Array.isArray(alignTicks) ? alignTicks[index] || alignTicks[0] : alignTicks\n\n if (isNullish(foldInfoList?.[0])) {\n return result\n }\n\n const isEmptySecondary = isEmpty(foldInfoList?.[0].foldMap)\n\n const id = `${reshapeInfoId}-primary-axis`\n const seriesIds = [`${reshapeInfoId}-primary-series`, `${reshapeInfoId}-secondary-series`]\n const seriesId = alignTicksConfig ? seriesIds : seriesIds[0]\n\n if (!result.axes) {\n result.axes = []\n }\n\n const { autoFormat, numFormat = {} } = yAxisConfig ?? {}\n\n const formatter = createNumFormatter(numFormat)\n\n const formatMethod = (value: string) => {\n return createLinearFormat(value, autoFormat, numFormat, formatter)\n }\n\n const titleText = yAxisConfig?.title?.titleText || defaultTitleText(measures, dimensions, encoding.y as string[])\n\n const linearAxis = {\n ...linearAxisStyle({\n ...yAxisConfig,\n orient: 'left',\n formatMethod,\n titleText,\n id,\n seriesId,\n }),\n visible: isEmptySecondary ? false : (yAxisConfig?.visible ?? true),\n }\n\n result.axes = [...result.axes, linearAxis] as ISpec['axes']\n\n return result\n}\n"],"names":["yLinearPrimary","spec","context","result","advancedVSeed","vseed","chartType","datasetReshapeInfo","encoding","measures","dimensions","index","reshapeInfoId","foldInfoList","primaryYAxis","yAxisConfig","Array","alignTicks","alignTicksConfig","isNullish","isEmptySecondary","isEmpty","id","seriesIds","seriesId","autoFormat","numFormat","formatter","createNumFormatter","formatMethod","value","createLinearFormat","titleText","defaultTitleText","linearAxis","linearAxisStyle"],"mappings":";;;;;AAQO,MAAMA,iBAAiC,CAACC,MAAMC;IACnD,MAAMC,SAAS;QAAE,GAAGF,IAAI;IAAC;IACzB,MAAM,EAAEG,aAAa,EAAEC,KAAK,EAAE,GAAGH;IACjC,MAAM,EAAEI,SAAS,EAAE,GAAGD;IACtB,MAAM,EAAEE,kBAAkB,EAAEC,QAAQ,EAAEC,QAAQ,EAAEC,UAAU,EAAE,GAAGN;IAC/D,MAAM,EAAEO,KAAK,EAAE,IAAIC,aAAa,EAAEC,YAAY,EAAE,GAAGN,kBAAkB,CAAC,EAAE;IAExE,MAAMO,eAAeV,cAAc,MAAM,EAAE,CAACE,UAAwB,EAAE;IACtE,MAAMS,cAAcC,MAAM,OAAO,CAACF,gBAAgBA,YAAY,CAACH,MAAM,IAAIG,YAAY,CAAC,EAAE,GAAGA;IAC3F,MAAMG,aAAab,cAAc,MAAM,EAAE,CAACE,UAAwB,EAAE;IACpE,MAAMY,mBAAmBF,MAAM,OAAO,CAACC,cAAcA,UAAU,CAACN,MAAM,IAAIM,UAAU,CAAC,EAAE,GAAGA;IAE1F,IAAIE,UAAUN,cAAc,CAAC,EAAE,GAC7B,OAAOV;IAGT,MAAMiB,mBAAmBC,QAAQR,cAAc,CAAC,EAAE,CAAC;IAEnD,MAAMS,KAAK,GAAGV,cAAc,aAAa,CAAC;IAC1C,MAAMW,YAAY;QAAC,GAAGX,cAAc,eAAe,CAAC;QAAE,GAAGA,cAAc,iBAAiB,CAAC;KAAC;IAC1F,MAAMY,WAAWN,mBAAmBK,YAAYA,SAAS,CAAC,EAAE;IAE5D,IAAI,CAACpB,OAAO,IAAI,EACdA,OAAO,IAAI,GAAG,EAAE;IAGlB,MAAM,EAAEsB,UAAU,EAAEC,YAAY,CAAC,CAAC,EAAE,GAAGX,eAAe,CAAC;IAEvD,MAAMY,YAAYC,mBAAmBF;IAErC,MAAMG,eAAe,CAACC,QACbC,mBAAmBD,OAAOL,YAAYC,WAAWC;IAG1D,MAAMK,YAAYjB,aAAa,OAAO,aAAakB,iBAAiBxB,UAAUC,YAAYF,SAAS,CAAC;IAEpG,MAAM0B,aAAa;QACjB,GAAGC,gBAAgB;YACjB,GAAGpB,WAAW;YACd,QAAQ;YACRc;YACAG;YACAV;YACAE;QACF,EAAE;QACF,SAASJ,mBAAmB,QAASL,aAAa,WAAW;IAC/D;IAEAZ,OAAO,IAAI,GAAG;WAAIA,OAAO,IAAI;QAAE+B;KAAW;IAE1C,OAAO/B;AACT"}
@@ -1,8 +1,8 @@
1
- import { AXIS_LABEL_SPACE, LINEAR_AXIS_INNER_OFFSET_TOP } from "../../../../utils/constant.js";
2
1
  import { createNumFormatter } from "../../../../utils/index.js";
3
2
  import { isEmpty, isNullish } from "remeda";
4
3
  import { createLinearFormat } from "./format/linearFormat.js";
5
4
  import { defaultTitleText } from "./title/defaultTitleText.js";
5
+ import { linearAxisStyle } from "./linearAxisStyle.js";
6
6
  const yLinearSecondary = (spec, context)=>{
7
7
  const result = {
8
8
  ...spec
@@ -29,66 +29,25 @@ const yLinearSecondary = (spec, context)=>{
29
29
  ];
30
30
  const seriesId = alignTicksConfig ? seriesIds : seriesIds[1];
31
31
  if (!result.axes) result.axes = [];
32
- const { visible = true, label, tick, title, grid, line, zero, nice, inverse, max, min, log, logBase = 10, numFormat = {}, autoFormat } = yAxisConfig ?? {};
32
+ const { autoFormat, numFormat = {} } = yAxisConfig ?? {};
33
33
  const formatter = createNumFormatter(numFormat);
34
- const linearAxis = {
35
- visible: isEmptySecondary ? false : visible,
34
+ const formatMethod = (value)=>createLinearFormat(value, autoFormat, numFormat, formatter);
35
+ const titleText = yAxisConfig?.title?.titleText || defaultTitleText(measures, dimensions, encoding.y);
36
+ const baseStyle = linearAxisStyle({
37
+ ...yAxisConfig,
38
+ orient: 'right',
39
+ formatMethod,
40
+ titleText,
36
41
  id,
37
42
  seriesId,
38
- sync,
39
- type: log ? 'log' : 'linear',
40
- base: logBase,
41
- orient: 'right',
42
- nice,
43
- zero: log ? false : zero,
44
- inverse,
45
- max,
46
- min,
47
- label: {
48
- space: AXIS_LABEL_SPACE,
49
- visible: label?.visible,
50
- formatMethod: (value)=>createLinearFormat(value, autoFormat, numFormat, formatter),
51
- style: {
52
- fill: label?.labelColor,
53
- angle: label?.labelAngle,
54
- fontSize: label?.labelFontSize,
55
- fontWeight: label?.labelFontWeight
56
- }
57
- },
58
- title: {
59
- visible: title?.visible,
60
- text: title?.titleText || defaultTitleText(measures, dimensions, encoding.y),
61
- style: {
62
- fill: title?.titleColor,
63
- fontSize: title?.titleFontSize,
64
- fontWeight: title?.titleFontWeight
65
- }
66
- },
67
- tick: {
68
- visible: tick?.visible,
69
- tickSize: tick?.tickSize,
70
- inside: tick?.tickInside,
71
- style: {
72
- stroke: tick?.tickColor
73
- }
74
- },
43
+ sync
44
+ });
45
+ const linearAxis = {
46
+ ...baseStyle,
47
+ visible: isEmptySecondary ? false : yAxisConfig?.visible ?? true,
75
48
  grid: {
76
- visible: onlySecondary ? true : grid?.visible,
77
- style: {
78
- lineWidth: grid?.gridWidth,
79
- stroke: grid?.gridColor,
80
- lineDash: grid?.gridLineDash
81
- }
82
- },
83
- domainLine: {
84
- visible: line?.visible,
85
- style: {
86
- lineWidth: line?.lineWidth,
87
- stroke: line?.lineColor
88
- }
89
- },
90
- innerOffset: {
91
- top: LINEAR_AXIS_INNER_OFFSET_TOP
49
+ ...baseStyle.grid,
50
+ visible: onlySecondary ? true : yAxisConfig?.grid?.visible
92
51
  }
93
52
  };
94
53
  result.axes = [
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline/spec/chart/pipes/axes/yLinearSecondary.js","sources":["../../../../../../../src/pipeline/spec/chart/pipes/axes/yLinearSecondary.ts"],"sourcesContent":["import type { ISpec } from '@visactor/vchart'\nimport { AXIS_LABEL_SPACE, LINEAR_AXIS_INNER_OFFSET_TOP } from '../../../../utils/constant'\nimport { createNumFormatter } from '../../../../utils'\nimport type { VChartSpecPipe, YLinearAxis } from 'src/types'\nimport { isEmpty, isNullish } from 'remeda'\nimport { createLinearFormat } from './format/linearFormat'\nimport { defaultTitleText } from './title/defaultTitleText'\n\nexport const yLinearSecondary: VChartSpecPipe = (spec, context) => {\n const result = { ...spec } as ISpec\n const { advancedVSeed, vseed } = context\n const { chartType } = vseed\n const { datasetReshapeInfo, measures, dimensions, encoding } = advancedVSeed\n const { index, id: reshapeInfoId, foldInfoList } = datasetReshapeInfo[0]\n // TODO: default config missing\n const secondaryYAxis = advancedVSeed.config?.[chartType as 'dualAxis']?.secondaryYAxis as YLinearAxis | YLinearAxis[]\n const yAxisConfig = Array.isArray(secondaryYAxis) ? secondaryYAxis[index] || secondaryYAxis[0] : secondaryYAxis\n const alignTicks = advancedVSeed.config?.[chartType as 'dualAxis']?.alignTicks as boolean | boolean[]\n const alignTicksConfig = Array.isArray(alignTicks) ? alignTicks[index] || alignTicks[0] : alignTicks\n\n if (isNullish(foldInfoList?.[1])) {\n return result\n }\n\n const isEmptySecondary = isEmpty(foldInfoList?.[1].foldMap)\n const onlySecondary = isEmpty(foldInfoList?.[0].foldMap) && !isEmptySecondary\n\n const sync = {\n axisId: `${reshapeInfoId}-primary-axis`,\n zeroAlign: true,\n }\n\n const id = `${reshapeInfoId}-secondary-axis`\n const seriesIds = [`${reshapeInfoId}-primary-series`, `${reshapeInfoId}-secondary-series`]\n const seriesId = alignTicksConfig ? seriesIds : seriesIds[1]\n if (!result.axes) {\n result.axes = []\n }\n\n const {\n visible = true,\n label,\n tick,\n title,\n grid,\n line,\n\n zero,\n nice,\n inverse,\n max,\n min,\n log,\n logBase = 10,\n numFormat = {},\n autoFormat,\n } = yAxisConfig ?? {}\n\n const formatter = createNumFormatter(numFormat)\n\n const linearAxis = {\n visible: isEmptySecondary ? false : visible,\n id,\n seriesId,\n sync,\n type: log ? 'log' : 'linear',\n base: logBase,\n orient: 'right',\n nice,\n zero: log ? false : zero,\n inverse,\n max,\n min,\n label: {\n space: AXIS_LABEL_SPACE,\n visible: label?.visible,\n formatMethod: (value: string) => {\n return createLinearFormat(value, autoFormat, numFormat, formatter)\n },\n style: {\n fill: label?.labelColor,\n angle: label?.labelAngle,\n fontSize: label?.labelFontSize,\n fontWeight: label?.labelFontWeight,\n },\n },\n title: {\n visible: title?.visible,\n text: title?.titleText || defaultTitleText(measures, dimensions, encoding.y as string[]),\n style: {\n fill: title?.titleColor,\n fontSize: title?.titleFontSize,\n fontWeight: title?.titleFontWeight,\n },\n },\n tick: {\n visible: tick?.visible,\n tickSize: tick?.tickSize,\n inside: tick?.tickInside,\n style: {\n stroke: tick?.tickColor,\n },\n },\n grid: {\n visible: onlySecondary ? true : grid?.visible,\n style: {\n lineWidth: grid?.gridWidth,\n stroke: grid?.gridColor,\n lineDash: grid?.gridLineDash,\n },\n },\n domainLine: {\n visible: line?.visible,\n style: {\n lineWidth: line?.lineWidth,\n stroke: line?.lineColor,\n },\n },\n innerOffset: {\n top: LINEAR_AXIS_INNER_OFFSET_TOP,\n // bottom: LINEAR_AXIS_INNER_OFFSET_TOP,\n },\n }\n\n result.axes = [...result.axes, linearAxis] as ISpec['axes']\n\n return result\n}\n"],"names":["yLinearSecondary","spec","context","result","advancedVSeed","vseed","chartType","datasetReshapeInfo","measures","dimensions","encoding","index","reshapeInfoId","foldInfoList","secondaryYAxis","yAxisConfig","Array","alignTicks","alignTicksConfig","isNullish","isEmptySecondary","isEmpty","onlySecondary","sync","id","seriesIds","seriesId","visible","label","tick","title","grid","line","zero","nice","inverse","max","min","log","logBase","numFormat","autoFormat","formatter","createNumFormatter","linearAxis","AXIS_LABEL_SPACE","value","createLinearFormat","defaultTitleText","LINEAR_AXIS_INNER_OFFSET_TOP"],"mappings":"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"}
1
+ {"version":3,"file":"pipeline/spec/chart/pipes/axes/yLinearSecondary.js","sources":["../../../../../../../src/pipeline/spec/chart/pipes/axes/yLinearSecondary.ts"],"sourcesContent":["import type { ISpec } from '@visactor/vchart'\nimport { createNumFormatter } from '../../../../utils'\nimport type { VChartSpecPipe, YLinearAxis } from 'src/types'\nimport { isEmpty, isNullish } from 'remeda'\nimport { createLinearFormat } from './format/linearFormat'\nimport { defaultTitleText } from './title/defaultTitleText'\nimport { linearAxisStyle } from './linearAxisStyle'\n\nexport const yLinearSecondary: VChartSpecPipe = (spec, context) => {\n const result = { ...spec } as ISpec\n const { advancedVSeed, vseed } = context\n const { chartType } = vseed\n const { datasetReshapeInfo, measures, dimensions, encoding } = advancedVSeed\n const { index, id: reshapeInfoId, foldInfoList } = datasetReshapeInfo[0]\n // TODO: default config missing\n const secondaryYAxis = advancedVSeed.config?.[chartType as 'dualAxis']?.secondaryYAxis as YLinearAxis | YLinearAxis[]\n const yAxisConfig = Array.isArray(secondaryYAxis) ? secondaryYAxis[index] || secondaryYAxis[0] : secondaryYAxis\n const alignTicks = advancedVSeed.config?.[chartType as 'dualAxis']?.alignTicks as boolean | boolean[]\n const alignTicksConfig = Array.isArray(alignTicks) ? alignTicks[index] || alignTicks[0] : alignTicks\n\n if (isNullish(foldInfoList?.[1])) {\n return result\n }\n\n const isEmptySecondary = isEmpty(foldInfoList?.[1].foldMap)\n const onlySecondary = isEmpty(foldInfoList?.[0].foldMap) && !isEmptySecondary\n\n const sync = {\n axisId: `${reshapeInfoId}-primary-axis`,\n zeroAlign: true,\n }\n\n const id = `${reshapeInfoId}-secondary-axis`\n const seriesIds = [`${reshapeInfoId}-primary-series`, `${reshapeInfoId}-secondary-series`]\n const seriesId = alignTicksConfig ? seriesIds : seriesIds[1]\n if (!result.axes) {\n result.axes = []\n }\n\n const { autoFormat, numFormat = {} } = yAxisConfig ?? {}\n\n const formatter = createNumFormatter(numFormat)\n\n const formatMethod = (value: string) => {\n return createLinearFormat(value, autoFormat, numFormat, formatter)\n }\n\n const titleText = yAxisConfig?.title?.titleText || defaultTitleText(measures, dimensions, encoding.y as string[])\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const baseStyle = linearAxisStyle({\n ...yAxisConfig,\n orient: 'right',\n formatMethod,\n titleText,\n id,\n seriesId,\n sync,\n })\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const linearAxis = {\n ...baseStyle,\n visible: isEmptySecondary ? false : (yAxisConfig?.visible ?? true),\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n grid: {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n ...baseStyle.grid,\n visible: onlySecondary ? true : yAxisConfig?.grid?.visible,\n },\n }\n\n result.axes = [...result.axes, linearAxis] as ISpec['axes']\n\n return result\n}\n"],"names":["yLinearSecondary","spec","context","result","advancedVSeed","vseed","chartType","datasetReshapeInfo","measures","dimensions","encoding","index","reshapeInfoId","foldInfoList","secondaryYAxis","yAxisConfig","Array","alignTicks","alignTicksConfig","isNullish","isEmptySecondary","isEmpty","onlySecondary","sync","id","seriesIds","seriesId","autoFormat","numFormat","formatter","createNumFormatter","formatMethod","value","createLinearFormat","titleText","defaultTitleText","baseStyle","linearAxisStyle","linearAxis"],"mappings":";;;;;AAQO,MAAMA,mBAAmC,CAACC,MAAMC;IACrD,MAAMC,SAAS;QAAE,GAAGF,IAAI;IAAC;IACzB,MAAM,EAAEG,aAAa,EAAEC,KAAK,EAAE,GAAGH;IACjC,MAAM,EAAEI,SAAS,EAAE,GAAGD;IACtB,MAAM,EAAEE,kBAAkB,EAAEC,QAAQ,EAAEC,UAAU,EAAEC,QAAQ,EAAE,GAAGN;IAC/D,MAAM,EAAEO,KAAK,EAAE,IAAIC,aAAa,EAAEC,YAAY,EAAE,GAAGN,kBAAkB,CAAC,EAAE;IAExE,MAAMO,iBAAiBV,cAAc,MAAM,EAAE,CAACE,UAAwB,EAAE;IACxE,MAAMS,cAAcC,MAAM,OAAO,CAACF,kBAAkBA,cAAc,CAACH,MAAM,IAAIG,cAAc,CAAC,EAAE,GAAGA;IACjG,MAAMG,aAAab,cAAc,MAAM,EAAE,CAACE,UAAwB,EAAE;IACpE,MAAMY,mBAAmBF,MAAM,OAAO,CAACC,cAAcA,UAAU,CAACN,MAAM,IAAIM,UAAU,CAAC,EAAE,GAAGA;IAE1F,IAAIE,UAAUN,cAAc,CAAC,EAAE,GAC7B,OAAOV;IAGT,MAAMiB,mBAAmBC,QAAQR,cAAc,CAAC,EAAE,CAAC;IACnD,MAAMS,gBAAgBD,QAAQR,cAAc,CAAC,EAAE,CAAC,YAAY,CAACO;IAE7D,MAAMG,OAAO;QACX,QAAQ,GAAGX,cAAc,aAAa,CAAC;QACvC,WAAW;IACb;IAEA,MAAMY,KAAK,GAAGZ,cAAc,eAAe,CAAC;IAC5C,MAAMa,YAAY;QAAC,GAAGb,cAAc,eAAe,CAAC;QAAE,GAAGA,cAAc,iBAAiB,CAAC;KAAC;IAC1F,MAAMc,WAAWR,mBAAmBO,YAAYA,SAAS,CAAC,EAAE;IAC5D,IAAI,CAACtB,OAAO,IAAI,EACdA,OAAO,IAAI,GAAG,EAAE;IAGlB,MAAM,EAAEwB,UAAU,EAAEC,YAAY,CAAC,CAAC,EAAE,GAAGb,eAAe,CAAC;IAEvD,MAAMc,YAAYC,mBAAmBF;IAErC,MAAMG,eAAe,CAACC,QACbC,mBAAmBD,OAAOL,YAAYC,WAAWC;IAG1D,MAAMK,YAAYnB,aAAa,OAAO,aAAaoB,iBAAiB3B,UAAUC,YAAYC,SAAS,CAAC;IAGpG,MAAM0B,YAAYC,gBAAgB;QAChC,GAAGtB,WAAW;QACd,QAAQ;QACRgB;QACAG;QACAV;QACAE;QACAH;IACF;IAGA,MAAMe,aAAa;QACjB,GAAGF,SAAS;QACZ,SAAShB,mBAAmB,QAASL,aAAa,WAAW;QAE7D,MAAM;YAEJ,GAAGqB,UAAU,IAAI;YACjB,SAASd,gBAAgB,OAAOP,aAAa,MAAM;QACrD;IACF;IAEAZ,OAAO,IAAI,GAAG;WAAIA,OAAO,IAAI;QAAEmC;KAAW;IAE1C,OAAOnC;AACT"}
@@ -36,8 +36,8 @@ const dimensionLinkage = (spec, context)=>{
36
36
  });
37
37
  spec.chartDimensionLinkage = {
38
38
  showTooltip: config.showTooltip ?? chartSpec?.tooltip?.dimension?.visible ?? true,
39
- heightLimitToShowTooltipForEdgeRow: 60,
40
- widthLimitToShowTooltipForEdgeColumn: 90,
39
+ heightLimitToShowTooltipForEdgeRow: spec.defaultRowHeight / 2,
40
+ widthLimitToShowTooltipForEdgeColumn: spec.defaultColWidth / 2,
41
41
  labelHoverOnAxis
42
42
  };
43
43
  return spec;
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline/spec/chart/pipes/pivotChart/dimensionLinkage.js","sources":["../../../../../../../src/pipeline/spec/chart/pipes/pivotChart/dimensionLinkage.ts"],"sourcesContent":["import type { ICartesianCrosshairSpec, ILineChartSpec } from '@visactor/vchart'\nimport type { DimensionLinkage, PivotChartSpecPipe } from 'src/types'\n\nexport const dimensionLinkage: PivotChartSpecPipe = (spec, context) => {\n const { advancedVSeed, vseed } = context\n const { chartType } = vseed\n\n const config = (advancedVSeed.config?.[chartType as 'line']?.dimensionLinkage ?? {}) as DimensionLinkage\n\n if (config.enable === false) {\n return spec\n }\n\n const indicators = spec.indicators\n const labelHoverOnAxis = {}\n const chartSpec = (indicators as any)?.[0]?.chartSpec as ILineChartSpec\n const crosshair = chartSpec?.crosshair as ICartesianCrosshairSpec\n\n if (crosshair?.xField) {\n const labelFormat = crosshair.xField.label?.formatMethod\n ;(labelHoverOnAxis as any).bottom = {\n visible: config.showLabel ?? crosshair.xField.label?.visible ?? true,\n background: crosshair.xField.label?.labelBackground,\n textStyle: crosshair.xField.label?.style,\n formatMethod: labelFormat\n ? (text: string | string[] | number) => (text || text === 0 ? labelFormat(text) : null)\n : undefined,\n }\n }\n if (crosshair?.yField) {\n const labelFormat = crosshair.yField.label?.formatMethod\n ;(labelHoverOnAxis as any).left = {\n visible: config.showLabel ?? crosshair.yField.label?.visible ?? true,\n background: crosshair.yField.label?.labelBackground,\n textStyle: crosshair.yField.label?.style,\n formatMethod: labelFormat\n ? (text: string | string[] | number) => (text || text === 0 ? labelFormat(text) : null)\n : undefined,\n }\n }\n\n if (indicators && indicators.length) {\n indicators.forEach((ind) => {\n const crosshair = (ind as any)?.chartSpec?.crosshair as ICartesianCrosshairSpec\n\n if (crosshair?.xField) {\n crosshair.xField.label = { visible: false }\n }\n\n if (crosshair?.yField) {\n crosshair.yField.label = { visible: false }\n }\n })\n }\n\n spec.chartDimensionLinkage = {\n showTooltip: config.showTooltip ?? (chartSpec?.tooltip?.dimension?.visible as boolean) ?? true,\n heightLimitToShowTooltipForEdgeRow: 60,\n widthLimitToShowTooltipForEdgeColumn: 90,\n labelHoverOnAxis,\n }\n\n return spec\n}\n"],"names":["dimensionLinkage","spec","context","advancedVSeed","vseed","chartType","config","indicators","labelHoverOnAxis","chartSpec","crosshair","labelFormat","text","undefined","ind"],"mappings":"AAGO,MAAMA,mBAAuC,CAACC,MAAMC;IACzD,MAAM,EAAEC,aAAa,EAAEC,KAAK,EAAE,GAAGF;IACjC,MAAM,EAAEG,SAAS,EAAE,GAAGD;IAEtB,MAAME,SAAUH,cAAc,MAAM,EAAE,CAACE,UAAoB,EAAE,oBAAoB,CAAC;IAElF,IAAIC,AAAkB,UAAlBA,OAAO,MAAM,EACf,OAAOL;IAGT,MAAMM,aAAaN,KAAK,UAAU;IAClC,MAAMO,mBAAmB,CAAC;IAC1B,MAAMC,YAAaF,YAAoB,CAAC,EAAE,EAAE;IAC5C,MAAMG,YAAYD,WAAW;IAE7B,IAAIC,WAAW,QAAQ;QACrB,MAAMC,cAAcD,UAAU,MAAM,CAAC,KAAK,EAAE;QAC1CF,iBAAyB,MAAM,GAAG;YAClC,SAASF,OAAO,SAAS,IAAII,UAAU,MAAM,CAAC,KAAK,EAAE,WAAW;YAChE,YAAYA,UAAU,MAAM,CAAC,KAAK,EAAE;YACpC,WAAWA,UAAU,MAAM,CAAC,KAAK,EAAE;YACnC,cAAcC,cACV,CAACC,OAAsCA,QAAQA,AAAS,MAATA,OAAaD,YAAYC,QAAQ,OAChFC;QACN;IACF;IACA,IAAIH,WAAW,QAAQ;QACrB,MAAMC,cAAcD,UAAU,MAAM,CAAC,KAAK,EAAE;QAC1CF,iBAAyB,IAAI,GAAG;YAChC,SAASF,OAAO,SAAS,IAAII,UAAU,MAAM,CAAC,KAAK,EAAE,WAAW;YAChE,YAAYA,UAAU,MAAM,CAAC,KAAK,EAAE;YACpC,WAAWA,UAAU,MAAM,CAAC,KAAK,EAAE;YACnC,cAAcC,cACV,CAACC,OAAsCA,QAAQA,AAAS,MAATA,OAAaD,YAAYC,QAAQ,OAChFC;QACN;IACF;IAEA,IAAIN,cAAcA,WAAW,MAAM,EACjCA,WAAW,OAAO,CAAC,CAACO;QAClB,MAAMJ,YAAaI,KAAa,WAAW;QAE3C,IAAIJ,WAAW,QACbA,UAAU,MAAM,CAAC,KAAK,GAAG;YAAE,SAAS;QAAM;QAG5C,IAAIA,WAAW,QACbA,UAAU,MAAM,CAAC,KAAK,GAAG;YAAE,SAAS;QAAM;IAE9C;IAGFT,KAAK,qBAAqB,GAAG;QAC3B,aAAaK,OAAO,WAAW,IAAKG,WAAW,SAAS,WAAW,WAAuB;QAC1F,oCAAoC;QACpC,sCAAsC;QACtCD;IACF;IAEA,OAAOP;AACT"}
1
+ {"version":3,"file":"pipeline/spec/chart/pipes/pivotChart/dimensionLinkage.js","sources":["../../../../../../../src/pipeline/spec/chart/pipes/pivotChart/dimensionLinkage.ts"],"sourcesContent":["import type { ICartesianCrosshairSpec, ILineChartSpec } from '@visactor/vchart'\nimport type { DimensionLinkage, PivotChartSpecPipe } from 'src/types'\n\nexport const dimensionLinkage: PivotChartSpecPipe = (spec, context) => {\n const { advancedVSeed, vseed } = context\n const { chartType } = vseed\n\n const config = (advancedVSeed.config?.[chartType as 'line']?.dimensionLinkage ?? {}) as DimensionLinkage\n\n if (config.enable === false) {\n return spec\n }\n\n const indicators = spec.indicators\n const labelHoverOnAxis = {}\n const chartSpec = (indicators as any)?.[0]?.chartSpec as ILineChartSpec\n const crosshair = chartSpec?.crosshair as ICartesianCrosshairSpec\n\n if (crosshair?.xField) {\n const labelFormat = crosshair.xField.label?.formatMethod\n ;(labelHoverOnAxis as any).bottom = {\n visible: config.showLabel ?? crosshair.xField.label?.visible ?? true,\n background: crosshair.xField.label?.labelBackground,\n textStyle: crosshair.xField.label?.style,\n formatMethod: labelFormat\n ? (text: string | string[] | number) => (text || text === 0 ? labelFormat(text) : null)\n : undefined,\n }\n }\n if (crosshair?.yField) {\n const labelFormat = crosshair.yField.label?.formatMethod\n ;(labelHoverOnAxis as any).left = {\n visible: config.showLabel ?? crosshair.yField.label?.visible ?? true,\n background: crosshair.yField.label?.labelBackground,\n textStyle: crosshair.yField.label?.style,\n formatMethod: labelFormat\n ? (text: string | string[] | number) => (text || text === 0 ? labelFormat(text) : null)\n : undefined,\n }\n }\n\n if (indicators && indicators.length) {\n indicators.forEach((ind) => {\n const crosshair = (ind as any)?.chartSpec?.crosshair as ICartesianCrosshairSpec\n\n if (crosshair?.xField) {\n crosshair.xField.label = { visible: false }\n }\n\n if (crosshair?.yField) {\n crosshair.yField.label = { visible: false }\n }\n })\n }\n\n spec.chartDimensionLinkage = {\n showTooltip: config.showTooltip ?? (chartSpec?.tooltip?.dimension?.visible as boolean) ?? true,\n heightLimitToShowTooltipForEdgeRow: (spec.defaultRowHeight as number) / 2,\n widthLimitToShowTooltipForEdgeColumn: (spec.defaultColWidth as number) / 2,\n labelHoverOnAxis,\n }\n\n return spec\n}\n"],"names":["dimensionLinkage","spec","context","advancedVSeed","vseed","chartType","config","indicators","labelHoverOnAxis","chartSpec","crosshair","labelFormat","text","undefined","ind"],"mappings":"AAGO,MAAMA,mBAAuC,CAACC,MAAMC;IACzD,MAAM,EAAEC,aAAa,EAAEC,KAAK,EAAE,GAAGF;IACjC,MAAM,EAAEG,SAAS,EAAE,GAAGD;IAEtB,MAAME,SAAUH,cAAc,MAAM,EAAE,CAACE,UAAoB,EAAE,oBAAoB,CAAC;IAElF,IAAIC,AAAkB,UAAlBA,OAAO,MAAM,EACf,OAAOL;IAGT,MAAMM,aAAaN,KAAK,UAAU;IAClC,MAAMO,mBAAmB,CAAC;IAC1B,MAAMC,YAAaF,YAAoB,CAAC,EAAE,EAAE;IAC5C,MAAMG,YAAYD,WAAW;IAE7B,IAAIC,WAAW,QAAQ;QACrB,MAAMC,cAAcD,UAAU,MAAM,CAAC,KAAK,EAAE;QAC1CF,iBAAyB,MAAM,GAAG;YAClC,SAASF,OAAO,SAAS,IAAII,UAAU,MAAM,CAAC,KAAK,EAAE,WAAW;YAChE,YAAYA,UAAU,MAAM,CAAC,KAAK,EAAE;YACpC,WAAWA,UAAU,MAAM,CAAC,KAAK,EAAE;YACnC,cAAcC,cACV,CAACC,OAAsCA,QAAQA,AAAS,MAATA,OAAaD,YAAYC,QAAQ,OAChFC;QACN;IACF;IACA,IAAIH,WAAW,QAAQ;QACrB,MAAMC,cAAcD,UAAU,MAAM,CAAC,KAAK,EAAE;QAC1CF,iBAAyB,IAAI,GAAG;YAChC,SAASF,OAAO,SAAS,IAAII,UAAU,MAAM,CAAC,KAAK,EAAE,WAAW;YAChE,YAAYA,UAAU,MAAM,CAAC,KAAK,EAAE;YACpC,WAAWA,UAAU,MAAM,CAAC,KAAK,EAAE;YACnC,cAAcC,cACV,CAACC,OAAsCA,QAAQA,AAAS,MAATA,OAAaD,YAAYC,QAAQ,OAChFC;QACN;IACF;IAEA,IAAIN,cAAcA,WAAW,MAAM,EACjCA,WAAW,OAAO,CAAC,CAACO;QAClB,MAAMJ,YAAaI,KAAa,WAAW;QAE3C,IAAIJ,WAAW,QACbA,UAAU,MAAM,CAAC,KAAK,GAAG;YAAE,SAAS;QAAM;QAG5C,IAAIA,WAAW,QACbA,UAAU,MAAM,CAAC,KAAK,GAAG;YAAE,SAAS;QAAM;IAE9C;IAGFT,KAAK,qBAAqB,GAAG;QAC3B,aAAaK,OAAO,WAAW,IAAKG,WAAW,SAAS,WAAW,WAAuB;QAC1F,oCAAqCR,KAAK,gBAAgB,GAAc;QACxE,sCAAuCA,KAAK,eAAe,GAAc;QACzEO;IACF;IAEA,OAAOP;AACT"}
@@ -1,14 +1,50 @@
1
+ /**
2
+ * @description 十字准星线配置,是一种用于在图表中显示十字准星线(提示线)的配置类型
3
+ */
1
4
  export type CrosshairLine = {
5
+ /**
6
+ * @description 是否显示十字准星线
7
+ */
2
8
  visible?: boolean;
9
+ /**
10
+ * @description 十字准星线颜色
11
+ */
3
12
  lineColor?: string;
13
+ /**
14
+ * @description 十字准星线标签颜色
15
+ */
4
16
  labelColor?: string;
17
+ /**
18
+ * @description 是否显示十字准星线标签
19
+ */
5
20
  labelVisible?: boolean;
21
+ /**
22
+ * @description 十字准星线标签背景颜色
23
+ */
6
24
  labelBackgroundColor?: string;
7
25
  };
26
+ /**
27
+ * @description 十字准星线矩形区域配置,是一种用于在图表中显示十字准星线矩形区域的配置类型
28
+ */
8
29
  export type CrosshairRect = {
30
+ /**
31
+ * @description 是否显示十字准星线矩形区域
32
+ */
9
33
  visible?: boolean;
34
+ /**
35
+ * @description 十字准星线矩形区域颜色
36
+ */
10
37
  rectColor?: string;
38
+ /**
39
+ * @description 十字准星线矩形区域标签颜色
40
+ */
11
41
  labelColor?: string;
42
+ /**
43
+ * @description 是否显示十字准星线矩形区域标签
44
+ */
12
45
  labelVisible?: boolean;
46
+ /**
47
+ * @description 十字准星线矩形区域标签背景颜色
48
+ */
13
49
  labelBackgroundColor?: string;
14
50
  };
@@ -20038,4 +20038,4 @@ export declare const zVSeed: z.ZodDiscriminatedUnion<[z.ZodObject<{
20038
20038
  "zh-CN": "zh-CN";
20039
20039
  "en-US": "en-US";
20040
20040
  }>>>>;
20041
- }, z.core.$strip>]>;
20041
+ }, z.core.$strip>], "chartType">;