@visactor/vseed 0.3.1 → 0.3.2

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 (57) hide show
  1. package/dist/cjs/index.cjs +1 -1
  2. package/dist/cjs/index.cjs.map +1 -1
  3. package/dist/esm/dataReshape/constant.d.ts +1 -0
  4. package/dist/esm/dataReshape/constant.js +2 -1
  5. package/dist/esm/dataReshape/constant.js.map +1 -1
  6. package/dist/esm/pipeline/advanced/chart/pipes/encoding/bar.js +2 -1
  7. package/dist/esm/pipeline/advanced/chart/pipes/encoding/bar.js.map +1 -1
  8. package/dist/esm/pipeline/advanced/chart/pipes/encoding/boxplot.js +2 -1
  9. package/dist/esm/pipeline/advanced/chart/pipes/encoding/boxplot.js.map +1 -1
  10. package/dist/esm/pipeline/advanced/chart/pipes/encoding/column.js +2 -1
  11. package/dist/esm/pipeline/advanced/chart/pipes/encoding/column.js.map +1 -1
  12. package/dist/esm/pipeline/advanced/chart/pipes/encoding/dualAxis.js +2 -1
  13. package/dist/esm/pipeline/advanced/chart/pipes/encoding/dualAxis.js.map +1 -1
  14. package/dist/esm/pipeline/advanced/chart/pipes/encoding/funnel.js +2 -1
  15. package/dist/esm/pipeline/advanced/chart/pipes/encoding/funnel.js.map +1 -1
  16. package/dist/esm/pipeline/advanced/chart/pipes/encoding/histogram.js +2 -1
  17. package/dist/esm/pipeline/advanced/chart/pipes/encoding/histogram.js.map +1 -1
  18. package/dist/esm/pipeline/advanced/chart/pipes/encoding/line.js +2 -1
  19. package/dist/esm/pipeline/advanced/chart/pipes/encoding/line.js.map +1 -1
  20. package/dist/esm/pipeline/advanced/chart/pipes/encoding/pie.js +2 -1
  21. package/dist/esm/pipeline/advanced/chart/pipes/encoding/pie.js.map +1 -1
  22. package/dist/esm/pipeline/advanced/chart/pipes/encoding/radar.js +2 -1
  23. package/dist/esm/pipeline/advanced/chart/pipes/encoding/radar.js.map +1 -1
  24. package/dist/esm/pipeline/advanced/chart/pipes/encoding/rose.js +2 -1
  25. package/dist/esm/pipeline/advanced/chart/pipes/encoding/rose.js.map +1 -1
  26. package/dist/esm/pipeline/advanced/chart/pipes/encoding/scatter.js +2 -1
  27. package/dist/esm/pipeline/advanced/chart/pipes/encoding/scatter.js.map +1 -1
  28. package/dist/esm/pipeline/advanced/chart/pipes/reshape/pivotReshapeWithDualEncoding.js +7 -1
  29. package/dist/esm/pipeline/advanced/chart/pipes/reshape/pivotReshapeWithDualEncoding.js.map +1 -1
  30. package/dist/esm/pipeline/advanced/chart/pipes/reshape/reshapeWithDualEncoding.js +7 -1
  31. package/dist/esm/pipeline/advanced/chart/pipes/reshape/reshapeWithDualEncoding.js.map +1 -1
  32. package/dist/esm/pipeline/spec/chart/pipeline/dualAxis.js +3 -1
  33. package/dist/esm/pipeline/spec/chart/pipeline/dualAxis.js.map +1 -1
  34. package/dist/esm/pipeline/spec/chart/pipes/axes/xBand.js +2 -2
  35. package/dist/esm/pipeline/spec/chart/pipes/axes/xBand.js.map +1 -1
  36. package/dist/esm/pipeline/spec/chart/pipes/axes/yBand.js +2 -2
  37. package/dist/esm/pipeline/spec/chart/pipes/axes/yBand.js.map +1 -1
  38. package/dist/esm/pipeline/spec/chart/pipes/dual/adjustXField.d.ts +2 -0
  39. package/dist/esm/pipeline/spec/chart/pipes/dual/adjustXField.js +17 -0
  40. package/dist/esm/pipeline/spec/chart/pipes/dual/adjustXField.js.map +1 -0
  41. package/dist/esm/pipeline/spec/chart/pipes/dual/dualChartType.js +3 -5
  42. package/dist/esm/pipeline/spec/chart/pipes/dual/dualChartType.js.map +1 -1
  43. package/dist/esm/pipeline/spec/chart/pipes/dual/index.d.ts +1 -0
  44. package/dist/esm/pipeline/spec/chart/pipes/dual/index.js +2 -1
  45. package/dist/esm/pipeline/spec/chart/pipes/legend/colorLegend.js.map +1 -1
  46. package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltip.d.ts +1 -1
  47. package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltip.js +9 -4
  48. package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltip.js.map +1 -1
  49. package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipBoxplot.js +8 -2
  50. package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipBoxplot.js.map +1 -1
  51. package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipDualAxis.js +2 -2
  52. package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipDualAxis.js.map +1 -1
  53. package/dist/esm/theme/common/axes.js +0 -4
  54. package/dist/esm/theme/common/axes.js.map +1 -1
  55. package/dist/umd/index.js +77 -34
  56. package/dist/umd/index.js.map +1 -1
  57. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline/spec/chart/pipes/tooltip/tooltipBoxplot.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/tooltip/tooltipBoxplot.ts"],"sourcesContent":["import { pipe, uniqueBy, isNullish } from 'remeda'\nimport { createFormatterByMeasure, findMeasureById } from '../../../../utils'\nimport type {\n Dimension,\n Dimensions,\n Encoding,\n VChartSpecPipe,\n Tooltip,\n Measures,\n FoldInfo,\n UnfoldInfo,\n} from 'src/types'\nimport type { Datum, ISpec, ITooltipLinePattern, ITooltipLineActual, TooltipData } from '@visactor/vchart'\nimport {\n ColorEncoding,\n LowerWhisker,\n MeasureId,\n MeasureName,\n MedianMeasureId,\n OutliersMeasureId,\n Q1MeasureValue,\n Q3MeasureValue,\n UpperWhisker,\n XEncoding,\n} from 'src/dataReshape'\nimport { getTooltipStyle } from './tooltipStyle'\nimport { intl } from 'src/i18n'\nimport { updateTooltipElement } from './tooltipElement'\n\nconst boxPlotMeasureKeys = [UpperWhisker, Q3MeasureValue, MedianMeasureId, Q1MeasureValue, LowerWhisker]\nconst VCHART_OUTLIER_KEY = '__VCHART_BOX_PLOT_OUTLIER_VALUE'\n\nexport const tooltipBoxplot: VChartSpecPipe = (spec, context) => {\n const result = { ...spec }\n const { advancedVSeed, vseed } = context\n const { chartType, dimensions = [], encoding, datasetReshapeInfo } = advancedVSeed\n const baseConfig = advancedVSeed.config[chartType as 'boxPlot'] as { tooltip: Tooltip }\n const { tooltip = { enable: true } } = baseConfig\n const { enable } = tooltip\n const meas = (vseed.measures ?? []) as Measures\n const valueMeasure = meas.find((item) => item.encoding === 'value' || isNullish(item.encoding))\n const defaultFormatter = valueMeasure ? createFormatterByMeasure(valueMeasure) : (v: unknown) => v\n const measureAliasMapping: Record<string, string> = {\n [OutliersMeasureId]: intl.i18n`异常点`,\n [UpperWhisker]: intl.i18n`上边界`,\n [Q3MeasureValue]: intl.i18n`上四分位数`,\n [MedianMeasureId]: intl.i18n`中位数`,\n [Q1MeasureValue]: intl.i18n`下四分位数`,\n [LowerWhisker]: intl.i18n`下边界`,\n }\n const { unfoldInfo } = datasetReshapeInfo[0] as unknown as {\n foldInfo: FoldInfo\n unfoldInfo: UnfoldInfo\n }\n\n result.tooltip = {\n visible: enable,\n style: getTooltipStyle(tooltip),\n mark: {\n title: {\n visible: false,\n },\n content: createMarkContent(encoding.tooltip || [], dimensions, encoding as Encoding),\n updateContent: (prev: ITooltipLineActual[] | undefined, data: TooltipData | undefined) => {\n const datum = (data as any)?.[0]?.datum?.[0]\n\n if (!isNullish(datum?.[VCHART_OUTLIER_KEY])) {\n const tooltipItems: ITooltipLineActual[] = (prev ?? []).filter(\n (item: any) => !boxPlotMeasureKeys.includes(item.key as string),\n )\n const outerlierMeasure = meas.find((item) => item.id === OutliersMeasureId)\n const formatter = outerlierMeasure ? createFormatterByMeasure(outerlierMeasure) : defaultFormatter\n\n tooltipItems.push({\n ...(tooltipItems[0] as any),\n key: outerlierMeasure?.alias ?? measureAliasMapping[OutliersMeasureId],\n value: formatter(datum?.[VCHART_OUTLIER_KEY] as number) as string,\n } as ITooltipLineActual)\n\n return tooltipItems\n }\n\n return (prev ?? []).map((entry) => {\n if (boxPlotMeasureKeys.includes((entry as any).key as string)) {\n const mea = meas.find((item) => item.id === (entry as any).key)\n const formatter = mea ? createFormatterByMeasure(mea) : defaultFormatter\n\n return {\n ...(entry as any),\n value: formatter(datum?.[(entry as any).key] as number) as string,\n key: mea?.alias ?? measureAliasMapping[entry?.key as string] ?? (entry as any).key,\n }\n }\n\n return entry\n }) as ITooltipLineActual[]\n },\n },\n dimension: {\n title: {\n visible: true,\n },\n content: createDimensionContent(dimensions, meas, unfoldInfo, measureAliasMapping[MedianMeasureId]),\n },\n updateElement: updateTooltipElement,\n }\n return result as unknown as ISpec\n}\n\nconst createMarkContent = (tooltip: string[], dimensions: Dimensions, encoding: Encoding) => {\n const dims = pipe(\n dimensions.filter((item) => tooltip.includes(item.id)),\n uniqueBy((item: Dimension) => item.id),\n uniqueBy((item: Dimension) => item.alias),\n )\n\n const dimContent = dims.map((item: Dimension) => ({\n visible: true,\n hasShape: true,\n shapeType: 'rectRound',\n key: item.alias ?? item.id,\n value: (datum: Datum | undefined) => {\n if (!isNullish(datum?.[VCHART_OUTLIER_KEY])) {\n if (encoding.color?.includes(item.id)) {\n return datum?.[ColorEncoding] as string\n }\n if (encoding.x?.includes(item.id)) {\n return datum?.[XEncoding] as string\n }\n }\n\n return datum?.[item.id] as string\n },\n }))\n\n const defaultContent = boxPlotMeasureKeys.map((key: string) => {\n return {\n visible: true,\n hasShape: true,\n shapeType: 'rectRound',\n key,\n value: (datum: Datum | undefined) => {\n if (!datum) {\n return ''\n }\n return datum[key] as string | number\n },\n }\n })\n\n return [...dimContent, defaultContent] as ITooltipLinePattern[]\n}\n\nconst createDimensionContent = (\n dimensions: Dimensions,\n measures: Measures,\n unfoldInfo: UnfoldInfo,\n medianAlias: string,\n) => {\n const { encodingColor } = unfoldInfo\n\n return [\n {\n visible: true,\n shapeType: 'rectRound',\n hasShape: true,\n key: dimensions.some((d) => d.encoding === 'color')\n ? (v: unknown) => {\n const datum = v as Datum\n const key = (datum && (datum[encodingColor] as string)) || ''\n return `${unfoldInfo.colorIdMap[key].alias ?? key}(${medianAlias})`\n }\n : (v: unknown) => {\n const datum = v as Datum\n return `${datum[MeasureName] ?? datum[MeasureId]}(${medianAlias})`\n },\n value: (v: unknown) => {\n const datum = v as Datum\n if (!datum) {\n return ''\n }\n const value = datum[MedianMeasureId] as string | number // dimension tooltip 中默认显示中位数\n const id = datum[MeasureId] as string\n const measure = findMeasureById(measures, id)\n const formatter = createFormatterByMeasure(measure)\n return formatter(value)\n },\n },\n ]\n}\n"],"names":["boxPlotMeasureKeys","UpperWhisker","Q3MeasureValue","MedianMeasureId","Q1MeasureValue","LowerWhisker","VCHART_OUTLIER_KEY","tooltipBoxplot","spec","context","result","advancedVSeed","vseed","chartType","dimensions","encoding","datasetReshapeInfo","baseConfig","tooltip","enable","meas","valueMeasure","item","isNullish","defaultFormatter","createFormatterByMeasure","v","measureAliasMapping","OutliersMeasureId","intl","unfoldInfo","getTooltipStyle","createMarkContent","prev","data","datum","tooltipItems","outerlierMeasure","formatter","entry","mea","createDimensionContent","updateTooltipElement","dims","pipe","uniqueBy","dimContent","ColorEncoding","XEncoding","defaultContent","key","measures","medianAlias","encodingColor","d","MeasureName","MeasureId","value","id","measure","findMeasureById"],"mappings":"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"}
1
+ {"version":3,"file":"pipeline/spec/chart/pipes/tooltip/tooltipBoxplot.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/tooltip/tooltipBoxplot.ts"],"sourcesContent":["import { pipe, uniqueBy, isNullish } from 'remeda'\nimport { createFormatterByMeasure, findMeasureById } from '../../../../utils'\nimport type {\n Dimension,\n Dimensions,\n Encoding,\n VChartSpecPipe,\n Tooltip,\n Measures,\n FoldInfo,\n UnfoldInfo,\n} from 'src/types'\nimport type { Datum, ISpec, ITooltipLinePattern, ITooltipLineActual, TooltipData } from '@visactor/vchart'\nimport {\n ColorEncoding,\n LowerWhisker,\n MeasureId,\n MeasureName,\n MedianMeasureId,\n OutliersMeasureId,\n Q1MeasureValue,\n Q3MeasureValue,\n UpperWhisker,\n XEncoding,\n} from 'src/dataReshape'\nimport { getTooltipStyle } from './tooltipStyle'\nimport { intl } from 'src/i18n'\nimport { updateTooltipElement } from './tooltipElement'\n\nconst boxPlotMeasureKeys = [UpperWhisker, Q3MeasureValue, MedianMeasureId, Q1MeasureValue, LowerWhisker]\nconst VCHART_OUTLIER_KEY = '__VCHART_BOX_PLOT_OUTLIER_VALUE'\n\nexport const tooltipBoxplot: VChartSpecPipe = (spec, context) => {\n const result = { ...spec }\n const { advancedVSeed, vseed } = context\n const { chartType, dimensions = [], encoding, datasetReshapeInfo } = advancedVSeed\n const baseConfig = advancedVSeed.config[chartType as 'boxPlot'] as { tooltip: Tooltip }\n const { tooltip = { enable: true } } = baseConfig\n const { enable } = tooltip\n const meas = (vseed.measures ?? []) as Measures\n const valueMeasure = meas.find((item) => item.encoding === 'value' || isNullish(item.encoding))\n const defaultFormatter = valueMeasure ? createFormatterByMeasure(valueMeasure) : (v: unknown) => v\n const measureAliasMapping: Record<string, string> = {\n [OutliersMeasureId]: intl.i18n`异常点`,\n [UpperWhisker]: intl.i18n`上边界`,\n [Q3MeasureValue]: intl.i18n`上四分位数`,\n [MedianMeasureId]: intl.i18n`中位数`,\n [Q1MeasureValue]: intl.i18n`下四分位数`,\n [LowerWhisker]: intl.i18n`下边界`,\n }\n const { unfoldInfo } = datasetReshapeInfo[0] as unknown as {\n foldInfo: FoldInfo\n unfoldInfo: UnfoldInfo\n }\n\n result.tooltip = {\n visible: enable,\n style: getTooltipStyle(tooltip),\n mark: {\n title: {\n visible: false,\n },\n content: createMarkContent(encoding.tooltip || [], dimensions, encoding as Encoding),\n updateContent: (prev: ITooltipLineActual[] | undefined, data: TooltipData | undefined) => {\n const datum = (data as any)?.[0]?.datum?.[0]\n\n if (!isNullish(datum?.[VCHART_OUTLIER_KEY])) {\n const tooltipItems: ITooltipLineActual[] = (prev ?? []).filter(\n (item: any) => !boxPlotMeasureKeys.includes(item.key as string),\n )\n const outerlierMeasure = meas.find((item) => item.id === OutliersMeasureId)\n const formatter = outerlierMeasure ? createFormatterByMeasure(outerlierMeasure) : defaultFormatter\n\n tooltipItems.push({\n ...(tooltipItems[0] as any),\n key: outerlierMeasure?.alias ?? measureAliasMapping[OutliersMeasureId],\n value: formatter(datum?.[VCHART_OUTLIER_KEY] as number) as string,\n } as ITooltipLineActual)\n\n return tooltipItems\n }\n\n return (prev ?? []).map((entry) => {\n if (boxPlotMeasureKeys.includes((entry as any).key as string)) {\n const mea = meas.find((item) => item.id === (entry as any).key)\n const formatter = mea ? createFormatterByMeasure(mea) : defaultFormatter\n\n return {\n ...(entry as any),\n value: formatter(datum?.[(entry as any).key] as number) as string,\n key: mea?.alias ?? measureAliasMapping[entry?.key as string] ?? (entry as any).key,\n }\n }\n\n return entry\n }) as ITooltipLineActual[]\n },\n },\n dimension: {\n title: {\n visible: true,\n },\n content: createDimensionContent(dimensions, meas, unfoldInfo, measureAliasMapping[MedianMeasureId]),\n },\n updateElement: updateTooltipElement,\n }\n return result as unknown as ISpec\n}\n\nconst createMarkContent = (tooltip: string[], dimensions: Dimensions, encoding: Encoding) => {\n const dims = pipe(\n dimensions.filter((item) => tooltip.includes(item.id)),\n uniqueBy((item: Dimension) => item.id),\n uniqueBy((item: Dimension) => item.alias),\n )\n\n const dimContent = dims.map((item: Dimension) => ({\n visible: true,\n hasShape: true,\n shapeType: 'rectRound',\n key: item.alias ?? item.id,\n value: (datum: Datum | undefined) => {\n if (!isNullish(datum?.[VCHART_OUTLIER_KEY])) {\n if (encoding.color?.includes(item.id)) {\n return datum?.[ColorEncoding] as string\n }\n if (encoding.x?.includes(item.id)) {\n return datum?.[XEncoding] as string\n }\n }\n\n return datum?.[item.id] as string\n },\n }))\n\n const defaultContent = boxPlotMeasureKeys.map((key: string) => {\n return {\n visible: true,\n hasShape: true,\n shapeType: 'rectRound',\n key,\n value: (datum: Datum | undefined) => {\n if (!datum) {\n return ''\n }\n return datum[key] as string | number\n },\n }\n })\n\n return [...dimContent, defaultContent] as ITooltipLinePattern[]\n}\n\nconst createDimensionContent = (\n dimensions: Dimensions,\n measures: Measures,\n unfoldInfo: UnfoldInfo,\n medianAlias: string,\n hasMultiMeasureGroup?: boolean,\n) => {\n const { encodingColor } = unfoldInfo\n\n return [\n {\n visible: true,\n shapeType: 'rectRound',\n hasShape: true,\n key: dimensions.some((d) => d.encoding === 'color')\n ? (v: unknown) => {\n const datum = v as Datum\n const key = (datum && (datum[encodingColor] as string)) || ''\n const colorKey = `${unfoldInfo.colorIdMap[key].alias ?? key}(${medianAlias})`\n\n if (hasMultiMeasureGroup) {\n const id = datum[MeasureId] as string\n const measure = findMeasureById(measures, id)\n\n return measure ? `${colorKey}-${measure.alias ?? id}` : colorKey\n }\n\n return colorKey\n }\n : (v: unknown) => {\n const datum = v as Datum\n return `${datum[MeasureName] ?? datum[MeasureId]}(${medianAlias})`\n },\n value: (v: unknown) => {\n const datum = v as Datum\n if (!datum) {\n return ''\n }\n const value = datum[MedianMeasureId] as string | number // dimension tooltip 中默认显示中位数\n const id = datum[MeasureId] as string\n const measure = findMeasureById(measures, id)\n const formatter = createFormatterByMeasure(measure)\n return formatter(value)\n },\n },\n ]\n}\n"],"names":["boxPlotMeasureKeys","UpperWhisker","Q3MeasureValue","MedianMeasureId","Q1MeasureValue","LowerWhisker","VCHART_OUTLIER_KEY","tooltipBoxplot","spec","context","result","advancedVSeed","vseed","chartType","dimensions","encoding","datasetReshapeInfo","baseConfig","tooltip","enable","meas","valueMeasure","item","isNullish","defaultFormatter","createFormatterByMeasure","v","measureAliasMapping","OutliersMeasureId","intl","unfoldInfo","getTooltipStyle","createMarkContent","prev","data","datum","tooltipItems","outerlierMeasure","formatter","entry","mea","createDimensionContent","updateTooltipElement","dims","pipe","uniqueBy","dimContent","ColorEncoding","XEncoding","defaultContent","key","measures","medianAlias","hasMultiMeasureGroup","encodingColor","d","colorKey","id","MeasureId","measure","findMeasureById","MeasureName","value"],"mappings":"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"}
@@ -6,7 +6,7 @@ const tooltipOfDualAxisSeries = (options)=>(spec, context)=>{
6
6
  ...spec
7
7
  };
8
8
  const { advancedVSeed, vseed } = context;
9
- const { measures = [], datasetReshapeInfo, chartType, dimensions = [], encoding } = advancedVSeed;
9
+ const { measures = [], datasetReshapeInfo, chartType, dimensions = [], encoding, reshapeMeasures = [] } = advancedVSeed;
10
10
  const baseConfig = advancedVSeed.config[chartType];
11
11
  const { tooltip = {
12
12
  enable: true
@@ -25,7 +25,7 @@ const tooltipOfDualAxisSeries = (options)=>(spec, context)=>{
25
25
  title: {
26
26
  visible: true
27
27
  },
28
- content: createDimensionContent(dimensions, measures, options.foldInfo, unfoldInfo)
28
+ content: createDimensionContent(dimensions, measures, options.foldInfo, unfoldInfo, reshapeMeasures.length > 1)
29
29
  }
30
30
  };
31
31
  return result;
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline/spec/chart/pipes/tooltip/tooltipDualAxis.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/tooltip/tooltipDualAxis.ts"],"sourcesContent":["import { createDimensionContent, createMarkContent } from './tooltip'\nimport type { VChartSpecPipe, Tooltip, Measures, DualAxisOptions } from 'src/types'\nimport { getTooltipStyle } from './tooltipStyle'\nimport { updateTooltipElement } from './tooltipElement'\n\nexport const tooltipOfDualAxisSeries = (options: DualAxisOptions): VChartSpecPipe => {\n return (spec, context) => {\n const result = { ...spec }\n const { advancedVSeed, vseed } = context\n const { measures = [], datasetReshapeInfo, chartType, dimensions = [], encoding } = advancedVSeed\n const baseConfig = advancedVSeed.config[chartType] as { tooltip: Tooltip }\n const { tooltip = { enable: true } } = baseConfig\n const { enable } = tooltip\n\n const unfoldInfo = datasetReshapeInfo[0].unfoldInfo\n\n result.tooltip = {\n visible: enable,\n mark: {\n title: {\n visible: false,\n },\n content: createMarkContent(\n encoding.tooltip || [],\n dimensions,\n vseed.measures as Measures,\n options.foldInfo,\n unfoldInfo,\n ),\n },\n dimension: {\n title: {\n visible: true,\n },\n content: createDimensionContent(dimensions, measures, options.foldInfo, unfoldInfo),\n },\n }\n return result\n }\n}\n\nexport const tooltipDualAxis: VChartSpecPipe = (spec, context) => {\n const result = { ...spec }\n const { advancedVSeed } = context\n const { chartType } = advancedVSeed\n const baseConfig = advancedVSeed.config[chartType] as { tooltip: Tooltip }\n const { tooltip = { enable: true } } = baseConfig\n\n result.tooltip = {\n style: getTooltipStyle(tooltip),\n updateElement: updateTooltipElement,\n }\n return result\n}\n"],"names":["tooltipOfDualAxisSeries","options","spec","context","result","advancedVSeed","vseed","measures","datasetReshapeInfo","chartType","dimensions","encoding","baseConfig","tooltip","enable","unfoldInfo","createMarkContent","createDimensionContent","tooltipDualAxis","getTooltipStyle","updateTooltipElement"],"mappings":";;;AAKO,MAAMA,0BAA0B,CAACC,UAC/B,CAACC,MAAMC;QACZ,MAAMC,SAAS;YAAE,GAAGF,IAAI;QAAC;QACzB,MAAM,EAAEG,aAAa,EAAEC,KAAK,EAAE,GAAGH;QACjC,MAAM,EAAEI,WAAW,EAAE,EAAEC,kBAAkB,EAAEC,SAAS,EAAEC,aAAa,EAAE,EAAEC,QAAQ,EAAE,GAAGN;QACpF,MAAMO,aAAaP,cAAc,MAAM,CAACI,UAAU;QAClD,MAAM,EAAEI,UAAU;YAAE,QAAQ;QAAK,CAAC,EAAE,GAAGD;QACvC,MAAM,EAAEE,MAAM,EAAE,GAAGD;QAEnB,MAAME,aAAaP,kBAAkB,CAAC,EAAE,CAAC,UAAU;QAEnDJ,OAAO,OAAO,GAAG;YACf,SAASU;YACT,MAAM;gBACJ,OAAO;oBACL,SAAS;gBACX;gBACA,SAASE,kBACPL,SAAS,OAAO,IAAI,EAAE,EACtBD,YACAJ,MAAM,QAAQ,EACdL,QAAQ,QAAQ,EAChBc;YAEJ;YACA,WAAW;gBACT,OAAO;oBACL,SAAS;gBACX;gBACA,SAASE,uBAAuBP,YAAYH,UAAUN,QAAQ,QAAQ,EAAEc;YAC1E;QACF;QACA,OAAOX;IACT;AAGK,MAAMc,kBAAkC,CAAChB,MAAMC;IACpD,MAAMC,SAAS;QAAE,GAAGF,IAAI;IAAC;IACzB,MAAM,EAAEG,aAAa,EAAE,GAAGF;IAC1B,MAAM,EAAEM,SAAS,EAAE,GAAGJ;IACtB,MAAMO,aAAaP,cAAc,MAAM,CAACI,UAAU;IAClD,MAAM,EAAEI,UAAU;QAAE,QAAQ;IAAK,CAAC,EAAE,GAAGD;IAEvCR,OAAO,OAAO,GAAG;QACf,OAAOe,gBAAgBN;QACvB,eAAeO;IACjB;IACA,OAAOhB;AACT"}
1
+ {"version":3,"file":"pipeline/spec/chart/pipes/tooltip/tooltipDualAxis.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/tooltip/tooltipDualAxis.ts"],"sourcesContent":["import { createDimensionContent, createMarkContent } from './tooltip'\nimport type { VChartSpecPipe, Tooltip, Measures, DualAxisOptions } from 'src/types'\nimport { getTooltipStyle } from './tooltipStyle'\nimport { updateTooltipElement } from './tooltipElement'\n\nexport const tooltipOfDualAxisSeries = (options: DualAxisOptions): VChartSpecPipe => {\n return (spec, context) => {\n const result = { ...spec }\n const { advancedVSeed, vseed } = context\n const {\n measures = [],\n datasetReshapeInfo,\n chartType,\n dimensions = [],\n encoding,\n reshapeMeasures = [],\n } = advancedVSeed\n const baseConfig = advancedVSeed.config[chartType] as { tooltip: Tooltip }\n const { tooltip = { enable: true } } = baseConfig\n const { enable } = tooltip\n\n const unfoldInfo = datasetReshapeInfo[0].unfoldInfo\n\n result.tooltip = {\n visible: enable,\n mark: {\n title: {\n visible: false,\n },\n content: createMarkContent(\n encoding.tooltip || [],\n dimensions,\n vseed.measures as Measures,\n options.foldInfo,\n unfoldInfo,\n ),\n },\n dimension: {\n title: {\n visible: true,\n },\n content: createDimensionContent(dimensions, measures, options.foldInfo, unfoldInfo, reshapeMeasures.length > 1),\n },\n }\n return result\n }\n}\n\nexport const tooltipDualAxis: VChartSpecPipe = (spec, context) => {\n const result = { ...spec }\n const { advancedVSeed } = context\n const { chartType } = advancedVSeed\n const baseConfig = advancedVSeed.config[chartType] as { tooltip: Tooltip }\n const { tooltip = { enable: true } } = baseConfig\n\n result.tooltip = {\n style: getTooltipStyle(tooltip),\n updateElement: updateTooltipElement,\n }\n return result\n}\n"],"names":["tooltipOfDualAxisSeries","options","spec","context","result","advancedVSeed","vseed","measures","datasetReshapeInfo","chartType","dimensions","encoding","reshapeMeasures","baseConfig","tooltip","enable","unfoldInfo","createMarkContent","createDimensionContent","tooltipDualAxis","getTooltipStyle","updateTooltipElement"],"mappings":";;;AAKO,MAAMA,0BAA0B,CAACC,UAC/B,CAACC,MAAMC;QACZ,MAAMC,SAAS;YAAE,GAAGF,IAAI;QAAC;QACzB,MAAM,EAAEG,aAAa,EAAEC,KAAK,EAAE,GAAGH;QACjC,MAAM,EACJI,WAAW,EAAE,EACbC,kBAAkB,EAClBC,SAAS,EACTC,aAAa,EAAE,EACfC,QAAQ,EACRC,kBAAkB,EAAE,EACrB,GAAGP;QACJ,MAAMQ,aAAaR,cAAc,MAAM,CAACI,UAAU;QAClD,MAAM,EAAEK,UAAU;YAAE,QAAQ;QAAK,CAAC,EAAE,GAAGD;QACvC,MAAM,EAAEE,MAAM,EAAE,GAAGD;QAEnB,MAAME,aAAaR,kBAAkB,CAAC,EAAE,CAAC,UAAU;QAEnDJ,OAAO,OAAO,GAAG;YACf,SAASW;YACT,MAAM;gBACJ,OAAO;oBACL,SAAS;gBACX;gBACA,SAASE,kBACPN,SAAS,OAAO,IAAI,EAAE,EACtBD,YACAJ,MAAM,QAAQ,EACdL,QAAQ,QAAQ,EAChBe;YAEJ;YACA,WAAW;gBACT,OAAO;oBACL,SAAS;gBACX;gBACA,SAASE,uBAAuBR,YAAYH,UAAUN,QAAQ,QAAQ,EAAEe,YAAYJ,gBAAgB,MAAM,GAAG;YAC/G;QACF;QACA,OAAOR;IACT;AAGK,MAAMe,kBAAkC,CAACjB,MAAMC;IACpD,MAAMC,SAAS;QAAE,GAAGF,IAAI;IAAC;IACzB,MAAM,EAAEG,aAAa,EAAE,GAAGF;IAC1B,MAAM,EAAEM,SAAS,EAAE,GAAGJ;IACtB,MAAMQ,aAAaR,cAAc,MAAM,CAACI,UAAU;IAClD,MAAM,EAAEK,UAAU;QAAE,QAAQ;IAAK,CAAC,EAAE,GAAGD;IAEvCT,OAAO,OAAO,GAAG;QACf,OAAOgB,gBAAgBN;QACvB,eAAeO;IACjB;IACA,OAAOjB;AACT"}
@@ -11,7 +11,6 @@ const getLightLinearAxis = ()=>({
11
11
  },
12
12
  title: {
13
13
  visible: false,
14
- titleText: '',
15
14
  titleColor: '#606773',
16
15
  titleFontSize: 12,
17
16
  titleFontWeight: 400
@@ -57,7 +56,6 @@ const getLightBandAxis = ()=>({
57
56
  },
58
57
  title: {
59
58
  visible: false,
60
- titleText: '',
61
59
  titleColor: '#606773',
62
60
  titleFontSize: 12,
63
61
  titleFontWeight: 400
@@ -95,7 +93,6 @@ const getDarkLinearAxis = ()=>({
95
93
  },
96
94
  title: {
97
95
  visible: false,
98
- titleText: '',
99
96
  titleColor: '#BBBDC3',
100
97
  titleFontSize: 12,
101
98
  titleFontWeight: 400
@@ -141,7 +138,6 @@ const getDarkBandAxis = ()=>({
141
138
  },
142
139
  title: {
143
140
  visible: false,
144
- titleText: '',
145
141
  titleColor: '#BBBDC3',
146
142
  titleFontSize: 12,
147
143
  titleFontWeight: 400
@@ -1 +1 @@
1
- {"version":3,"file":"theme/common/axes.js","sources":["webpack://@visactor/vseed/./src/theme/common/axes.ts"],"sourcesContent":["import type { YBandAxis, YLinearAxis } from 'src/types'\n\nexport const getLightLinearAxis = (): YLinearAxis => ({\n nice: true,\n zero: true,\n inverse: false,\n label: {\n visible: true,\n labelAngle: 0,\n labelColor: '#8F959E',\n labelFontSize: 12,\n labelFontWeight: 400,\n },\n title: {\n visible: false,\n titleText: '',\n titleColor: '#606773',\n titleFontSize: 12,\n titleFontWeight: 400,\n },\n grid: {\n visible: true,\n gridColor: '#E3E5EB',\n gridWidth: 0.5,\n gridLineDash: [4, 2],\n },\n tick: {\n visible: false,\n tickInside: false,\n tickSize: 4,\n tickColor: '#E3E5EB',\n },\n line: {\n visible: false,\n lineColor: '#E3E5EB',\n lineWidth: 1,\n },\n})\n\nexport const getLightBandAxis = (): YBandAxis => ({\n labelAutoHide: true,\n labelAutoHideGap: 4,\n labelAutoLimit: true,\n labelAutoLimitLength: 80,\n labelAutoRotate: false,\n labelAutoRotateAngleRange: [0, -45, -90],\n label: {\n visible: true,\n labelAngle: 0,\n labelColor: '#8F959E',\n labelFontSize: 12,\n labelFontWeight: 400,\n },\n title: {\n visible: false,\n titleText: '',\n titleColor: '#606773',\n titleFontSize: 12,\n titleFontWeight: 400,\n },\n grid: {\n visible: false,\n gridColor: '#E3E5EB',\n gridWidth: 0.5,\n gridLineDash: [4, 2],\n },\n tick: {\n visible: false,\n tickInside: false,\n tickSize: 4,\n tickColor: '#E3E5EB',\n },\n line: {\n visible: true,\n lineColor: '#E3E5EB',\n lineWidth: 1,\n },\n})\n\nexport const getDarkLinearAxis = (): YLinearAxis => ({\n nice: true,\n zero: true,\n label: {\n visible: true,\n labelAngle: 0,\n labelColor: '#888C93',\n labelFontSize: 12,\n labelFontWeight: 400,\n },\n title: {\n visible: false,\n titleText: '',\n titleColor: '#BBBDC3',\n titleFontSize: 12,\n titleFontWeight: 400,\n },\n grid: {\n visible: true,\n gridColor: '#303339',\n gridWidth: 0.5,\n gridLineDash: [4, 2],\n },\n tick: {\n visible: false,\n tickInside: false,\n tickSize: 4,\n tickColor: '#303339',\n },\n line: {\n visible: false,\n lineColor: '#303339',\n lineWidth: 1,\n },\n})\n\nexport const getDarkBandAxis = (): YBandAxis => ({\n labelAutoHide: true,\n labelAutoHideGap: 4,\n labelAutoLimit: true,\n labelAutoLimitLength: 80,\n labelAutoRotate: false,\n labelAutoRotateAngleRange: [0, -45, -90],\n label: {\n visible: true,\n labelAngle: 0,\n labelColor: '#888C93',\n labelFontSize: 12,\n labelFontWeight: 400,\n },\n title: {\n visible: false,\n titleText: '',\n titleColor: '#BBBDC3',\n titleFontSize: 12,\n titleFontWeight: 400,\n },\n grid: {\n visible: false,\n gridColor: '#303339',\n gridWidth: 0.5,\n gridLineDash: [4, 2],\n },\n tick: {\n visible: false,\n tickInside: false,\n tickSize: 4,\n tickColor: '#303339',\n },\n line: {\n visible: true,\n lineColor: '#303339',\n lineWidth: 1,\n },\n})\n"],"names":["getLightLinearAxis","getLightBandAxis","getDarkLinearAxis","getDarkBandAxis"],"mappings":"AAEO,MAAMA,qBAAqB,IAAoB;QACpD,MAAM;QACN,MAAM;QACN,SAAS;QACT,OAAO;YACL,SAAS;YACT,YAAY;YACZ,YAAY;YACZ,eAAe;YACf,iBAAiB;QACnB;QACA,OAAO;YACL,SAAS;YACT,WAAW;YACX,YAAY;YACZ,eAAe;YACf,iBAAiB;QACnB;QACA,MAAM;YACJ,SAAS;YACT,WAAW;YACX,WAAW;YACX,cAAc;gBAAC;gBAAG;aAAE;QACtB;QACA,MAAM;YACJ,SAAS;YACT,YAAY;YACZ,UAAU;YACV,WAAW;QACb;QACA,MAAM;YACJ,SAAS;YACT,WAAW;YACX,WAAW;QACb;IACF;AAEO,MAAMC,mBAAmB,IAAkB;QAChD,eAAe;QACf,kBAAkB;QAClB,gBAAgB;QAChB,sBAAsB;QACtB,iBAAiB;QACjB,2BAA2B;YAAC;YAAG;YAAK;SAAI;QACxC,OAAO;YACL,SAAS;YACT,YAAY;YACZ,YAAY;YACZ,eAAe;YACf,iBAAiB;QACnB;QACA,OAAO;YACL,SAAS;YACT,WAAW;YACX,YAAY;YACZ,eAAe;YACf,iBAAiB;QACnB;QACA,MAAM;YACJ,SAAS;YACT,WAAW;YACX,WAAW;YACX,cAAc;gBAAC;gBAAG;aAAE;QACtB;QACA,MAAM;YACJ,SAAS;YACT,YAAY;YACZ,UAAU;YACV,WAAW;QACb;QACA,MAAM;YACJ,SAAS;YACT,WAAW;YACX,WAAW;QACb;IACF;AAEO,MAAMC,oBAAoB,IAAoB;QACnD,MAAM;QACN,MAAM;QACN,OAAO;YACL,SAAS;YACT,YAAY;YACZ,YAAY;YACZ,eAAe;YACf,iBAAiB;QACnB;QACA,OAAO;YACL,SAAS;YACT,WAAW;YACX,YAAY;YACZ,eAAe;YACf,iBAAiB;QACnB;QACA,MAAM;YACJ,SAAS;YACT,WAAW;YACX,WAAW;YACX,cAAc;gBAAC;gBAAG;aAAE;QACtB;QACA,MAAM;YACJ,SAAS;YACT,YAAY;YACZ,UAAU;YACV,WAAW;QACb;QACA,MAAM;YACJ,SAAS;YACT,WAAW;YACX,WAAW;QACb;IACF;AAEO,MAAMC,kBAAkB,IAAkB;QAC/C,eAAe;QACf,kBAAkB;QAClB,gBAAgB;QAChB,sBAAsB;QACtB,iBAAiB;QACjB,2BAA2B;YAAC;YAAG;YAAK;SAAI;QACxC,OAAO;YACL,SAAS;YACT,YAAY;YACZ,YAAY;YACZ,eAAe;YACf,iBAAiB;QACnB;QACA,OAAO;YACL,SAAS;YACT,WAAW;YACX,YAAY;YACZ,eAAe;YACf,iBAAiB;QACnB;QACA,MAAM;YACJ,SAAS;YACT,WAAW;YACX,WAAW;YACX,cAAc;gBAAC;gBAAG;aAAE;QACtB;QACA,MAAM;YACJ,SAAS;YACT,YAAY;YACZ,UAAU;YACV,WAAW;QACb;QACA,MAAM;YACJ,SAAS;YACT,WAAW;YACX,WAAW;QACb;IACF"}
1
+ {"version":3,"file":"theme/common/axes.js","sources":["webpack://@visactor/vseed/./src/theme/common/axes.ts"],"sourcesContent":["import type { YBandAxis, YLinearAxis } from 'src/types'\n\nexport const getLightLinearAxis = (): YLinearAxis => ({\n nice: true,\n zero: true,\n inverse: false,\n label: {\n visible: true,\n labelAngle: 0,\n labelColor: '#8F959E',\n labelFontSize: 12,\n labelFontWeight: 400,\n },\n title: {\n visible: false,\n titleColor: '#606773',\n titleFontSize: 12,\n titleFontWeight: 400,\n },\n grid: {\n visible: true,\n gridColor: '#E3E5EB',\n gridWidth: 0.5,\n gridLineDash: [4, 2],\n },\n tick: {\n visible: false,\n tickInside: false,\n tickSize: 4,\n tickColor: '#E3E5EB',\n },\n line: {\n visible: false,\n lineColor: '#E3E5EB',\n lineWidth: 1,\n },\n})\n\nexport const getLightBandAxis = (): YBandAxis => ({\n labelAutoHide: true,\n labelAutoHideGap: 4,\n labelAutoLimit: true,\n labelAutoLimitLength: 80,\n labelAutoRotate: false,\n labelAutoRotateAngleRange: [0, -45, -90],\n label: {\n visible: true,\n labelAngle: 0,\n labelColor: '#8F959E',\n labelFontSize: 12,\n labelFontWeight: 400,\n },\n title: {\n visible: false,\n titleColor: '#606773',\n titleFontSize: 12,\n titleFontWeight: 400,\n },\n grid: {\n visible: false,\n gridColor: '#E3E5EB',\n gridWidth: 0.5,\n gridLineDash: [4, 2],\n },\n tick: {\n visible: false,\n tickInside: false,\n tickSize: 4,\n tickColor: '#E3E5EB',\n },\n line: {\n visible: true,\n lineColor: '#E3E5EB',\n lineWidth: 1,\n },\n})\n\nexport const getDarkLinearAxis = (): YLinearAxis => ({\n nice: true,\n zero: true,\n label: {\n visible: true,\n labelAngle: 0,\n labelColor: '#888C93',\n labelFontSize: 12,\n labelFontWeight: 400,\n },\n title: {\n visible: false,\n titleColor: '#BBBDC3',\n titleFontSize: 12,\n titleFontWeight: 400,\n },\n grid: {\n visible: true,\n gridColor: '#303339',\n gridWidth: 0.5,\n gridLineDash: [4, 2],\n },\n tick: {\n visible: false,\n tickInside: false,\n tickSize: 4,\n tickColor: '#303339',\n },\n line: {\n visible: false,\n lineColor: '#303339',\n lineWidth: 1,\n },\n})\n\nexport const getDarkBandAxis = (): YBandAxis => ({\n labelAutoHide: true,\n labelAutoHideGap: 4,\n labelAutoLimit: true,\n labelAutoLimitLength: 80,\n labelAutoRotate: false,\n labelAutoRotateAngleRange: [0, -45, -90],\n label: {\n visible: true,\n labelAngle: 0,\n labelColor: '#888C93',\n labelFontSize: 12,\n labelFontWeight: 400,\n },\n title: {\n visible: false,\n titleColor: '#BBBDC3',\n titleFontSize: 12,\n titleFontWeight: 400,\n },\n grid: {\n visible: false,\n gridColor: '#303339',\n gridWidth: 0.5,\n gridLineDash: [4, 2],\n },\n tick: {\n visible: false,\n tickInside: false,\n tickSize: 4,\n tickColor: '#303339',\n },\n line: {\n visible: true,\n lineColor: '#303339',\n lineWidth: 1,\n },\n})\n"],"names":["getLightLinearAxis","getLightBandAxis","getDarkLinearAxis","getDarkBandAxis"],"mappings":"AAEO,MAAMA,qBAAqB,IAAoB;QACpD,MAAM;QACN,MAAM;QACN,SAAS;QACT,OAAO;YACL,SAAS;YACT,YAAY;YACZ,YAAY;YACZ,eAAe;YACf,iBAAiB;QACnB;QACA,OAAO;YACL,SAAS;YACT,YAAY;YACZ,eAAe;YACf,iBAAiB;QACnB;QACA,MAAM;YACJ,SAAS;YACT,WAAW;YACX,WAAW;YACX,cAAc;gBAAC;gBAAG;aAAE;QACtB;QACA,MAAM;YACJ,SAAS;YACT,YAAY;YACZ,UAAU;YACV,WAAW;QACb;QACA,MAAM;YACJ,SAAS;YACT,WAAW;YACX,WAAW;QACb;IACF;AAEO,MAAMC,mBAAmB,IAAkB;QAChD,eAAe;QACf,kBAAkB;QAClB,gBAAgB;QAChB,sBAAsB;QACtB,iBAAiB;QACjB,2BAA2B;YAAC;YAAG;YAAK;SAAI;QACxC,OAAO;YACL,SAAS;YACT,YAAY;YACZ,YAAY;YACZ,eAAe;YACf,iBAAiB;QACnB;QACA,OAAO;YACL,SAAS;YACT,YAAY;YACZ,eAAe;YACf,iBAAiB;QACnB;QACA,MAAM;YACJ,SAAS;YACT,WAAW;YACX,WAAW;YACX,cAAc;gBAAC;gBAAG;aAAE;QACtB;QACA,MAAM;YACJ,SAAS;YACT,YAAY;YACZ,UAAU;YACV,WAAW;QACb;QACA,MAAM;YACJ,SAAS;YACT,WAAW;YACX,WAAW;QACb;IACF;AAEO,MAAMC,oBAAoB,IAAoB;QACnD,MAAM;QACN,MAAM;QACN,OAAO;YACL,SAAS;YACT,YAAY;YACZ,YAAY;YACZ,eAAe;YACf,iBAAiB;QACnB;QACA,OAAO;YACL,SAAS;YACT,YAAY;YACZ,eAAe;YACf,iBAAiB;QACnB;QACA,MAAM;YACJ,SAAS;YACT,WAAW;YACX,WAAW;YACX,cAAc;gBAAC;gBAAG;aAAE;QACtB;QACA,MAAM;YACJ,SAAS;YACT,YAAY;YACZ,UAAU;YACV,WAAW;QACb;QACA,MAAM;YACJ,SAAS;YACT,WAAW;YACX,WAAW;QACb;IACF;AAEO,MAAMC,kBAAkB,IAAkB;QAC/C,eAAe;QACf,kBAAkB;QAClB,gBAAgB;QAChB,sBAAsB;QACtB,iBAAiB;QACjB,2BAA2B;YAAC;YAAG;YAAK;SAAI;QACxC,OAAO;YACL,SAAS;YACT,YAAY;YACZ,YAAY;YACZ,eAAe;YACf,iBAAiB;QACnB;QACA,OAAO;YACL,SAAS;YACT,YAAY;YACZ,eAAe;YACf,iBAAiB;QACnB;QACA,MAAM;YACJ,SAAS;YACT,WAAW;YACX,WAAW;YACX,cAAc;gBAAC;gBAAG;aAAE;QACtB;QACA,MAAM;YACJ,SAAS;YACT,YAAY;YACZ,UAAU;YACV,WAAW;QACb;QACA,MAAM;YACJ,SAAS;YACT,WAAW;YACX,WAAW;QACb;IACF"}
package/dist/umd/index.js CHANGED
@@ -228,6 +228,7 @@
228
228
  registerAreaPercent: ()=>registerAreaPercent,
229
229
  zMeasureEncoding: ()=>zMeasureEncoding,
230
230
  zBarPercent: ()=>zBarPercent,
231
+ DimAxisType: ()=>DimAxisType,
231
232
  zTheme: ()=>zTheme,
232
233
  zDatum: ()=>zDatum,
233
234
  barAdvancedPipeline: ()=>barAdvancedPipeline,
@@ -1639,6 +1640,7 @@
1639
1640
  const MeasureName = FoldMeasureName;
1640
1641
  const FoldPrimaryMeasureValue = '__MeaPrimaryValue__';
1641
1642
  const FoldSecondaryMeasureValue = '__MeaSecondaryValue__';
1643
+ const DimAxisType = '__Dim_AxisType__';
1642
1644
  const FoldXMeasureValue = '__MeaXValue__';
1643
1645
  const FoldYMeasureValue = '__MeaYValue__';
1644
1646
  const FoldXMeasureId = '__MeaXId__';
@@ -2331,7 +2333,8 @@
2331
2333
  encoding.tooltip = chunk_QJLMYOTX_i([
2332
2334
  ...encoding.tooltip || [],
2333
2335
  ...label,
2334
- ...tooltip
2336
+ ...tooltip,
2337
+ ...color
2335
2338
  ]);
2336
2339
  };
2337
2340
  const pickDimensionsForReshape = (advancedVSeed)=>{
@@ -2842,8 +2845,8 @@
2842
2845
  ].find((f)=>f.id === id)?.alias || '';
2843
2846
  return alias;
2844
2847
  }).join(' & ');
2845
- const isNull = (value)=>null === value;
2846
- const common_isNull = isNull;
2848
+ const isNil = (value)=>null == value;
2849
+ const common_isNil = isNil;
2847
2850
  const bandAxisStyle = (config)=>{
2848
2851
  const { visible = true, label, tick, title, grid, line, labelAutoHide, labelAutoHideGap, labelAutoLimit, labelAutoLimitLength = 80, labelAutoRotate, labelAutoRotateAngleRange } = config;
2849
2852
  return {
@@ -2927,7 +2930,7 @@
2927
2930
  0.075,
2928
2931
  0.1
2929
2932
  ];
2930
- if (common_isNull(bandAxis.title?.text)) bandAxis.title.text = defaultTitleText(measures, dimensions, encoding.x);
2933
+ if (common_isNil(bandAxis.title?.text)) bandAxis.title.text = defaultTitleText(measures, dimensions, encoding.x);
2931
2934
  if (onlyMeasureId && bandAxis.label) {
2932
2935
  const allDatasetReshapeInfo = pivotAllDatasetReshapeInfo || datasetReshapeInfo;
2933
2936
  const colorIdMap = allDatasetReshapeInfo.reduce((prev, cur)=>({
@@ -3700,7 +3703,7 @@
3700
3703
  ...spec
3701
3704
  };
3702
3705
  const { advancedVSeed, vseed } = context;
3703
- const { measures = [], datasetReshapeInfo, chartType, dimensions = [], encoding } = advancedVSeed;
3706
+ const { measures = [], datasetReshapeInfo, chartType, dimensions = [], encoding, reshapeMeasures = [] } = advancedVSeed;
3704
3707
  const baseConfig = advancedVSeed.config[chartType];
3705
3708
  const { tooltip = {
3706
3709
  enable: true
@@ -3720,13 +3723,13 @@
3720
3723
  title: {
3721
3724
  visible: true
3722
3725
  },
3723
- content: createDimensionContent(dimensions, measures, foldInfo, unfoldInfo)
3726
+ content: createDimensionContent(dimensions, measures, foldInfo, unfoldInfo, reshapeMeasures.length > 1)
3724
3727
  },
3725
3728
  updateElement: updateTooltipElement
3726
3729
  };
3727
3730
  return result;
3728
3731
  };
3729
- const createDimensionContent = (dimensions = [], measures = [], foldInfo, unfoldInfo)=>{
3732
+ const createDimensionContent = (dimensions = [], measures = [], foldInfo, unfoldInfo, hasMultiMeasureGroup)=>{
3730
3733
  const { measureId, measureValue, foldMap } = foldInfo;
3731
3734
  const { encodingColor } = unfoldInfo;
3732
3735
  return [
@@ -3737,7 +3740,12 @@
3737
3740
  key: dimensions.some((d)=>'color' === d.encoding) ? (v)=>{
3738
3741
  const datum = v;
3739
3742
  const key = datum && datum[encodingColor] || '';
3740
- return unfoldInfo.colorIdMap[key].alias ?? key;
3743
+ const colorKey = `${unfoldInfo.colorIdMap[key].alias ?? key}`;
3744
+ if (hasMultiMeasureGroup) {
3745
+ const mId = datum && datum[measureId] || '';
3746
+ return `${colorKey}-${foldMap[mId] ?? mId}`;
3747
+ }
3748
+ return colorKey;
3741
3749
  } : (v)=>{
3742
3750
  const datum = v;
3743
3751
  const key = datum && datum[measureId] || '';
@@ -4299,8 +4307,6 @@
4299
4307
  return fuzzy ? "number" === type : "number" === type || isType(value, "Number");
4300
4308
  };
4301
4309
  const common_isNumber = isNumber;
4302
- const isNil = (value)=>null == value;
4303
- const common_isNil = isNil;
4304
4310
  const clamp_clamp = function(input, min, max) {
4305
4311
  return input < min ? min : input > max ? max : input;
4306
4312
  };
@@ -5661,7 +5667,8 @@
5661
5667
  encoding.tooltip = chunk_QJLMYOTX_i([
5662
5668
  ...encoding.tooltip || [],
5663
5669
  ...label,
5664
- ...tooltip
5670
+ ...tooltip,
5671
+ ...color
5665
5672
  ]);
5666
5673
  };
5667
5674
  const columnConfig = (advancedVSeed, context)=>{
@@ -6945,7 +6952,8 @@
6945
6952
  encoding.tooltip = chunk_QJLMYOTX_i([
6946
6953
  ...encoding.tooltip || [],
6947
6954
  ...label,
6948
- ...tooltip
6955
+ ...tooltip,
6956
+ ...color
6949
6957
  ]);
6950
6958
  };
6951
6959
  const sortYBandAxis = (advancedVSeed, context)=>{
@@ -7117,7 +7125,7 @@
7117
7125
  0.075,
7118
7126
  0.1
7119
7127
  ];
7120
- if (common_isNull(bandAxis.title?.text)) bandAxis.title.text = defaultTitleText(measures, dimensions, encoding.y);
7128
+ if (common_isNil(bandAxis.title?.text)) bandAxis.title.text = defaultTitleText(measures, dimensions, encoding.y);
7121
7129
  if (onlyMeasureId && bandAxis.label) {
7122
7130
  const allDatasetReshapeInfo = pivotAllDatasetReshapeInfo || datasetReshapeInfo;
7123
7131
  const colorIdMap = allDatasetReshapeInfo.reduce((prev, cur)=>({
@@ -7829,7 +7837,8 @@
7829
7837
  encoding.tooltip = chunk_QJLMYOTX_i([
7830
7838
  ...encoding.tooltip || [],
7831
7839
  ...label,
7832
- ...tooltip
7840
+ ...tooltip,
7841
+ ...color
7833
7842
  ]);
7834
7843
  };
7835
7844
  const scatterConfig = (advancedVSeed, context)=>{
@@ -8804,7 +8813,8 @@
8804
8813
  encoding.tooltip = chunk_QJLMYOTX_i([
8805
8814
  ...encoding.tooltip || [],
8806
8815
  ...label,
8807
- ...tooltip
8816
+ ...tooltip,
8817
+ ...color
8808
8818
  ]);
8809
8819
  };
8810
8820
  const reshapeWithDualEncoding = (advancedVSeed, context)=>{
@@ -8831,6 +8841,9 @@
8831
8841
  foldMeasureValue: FoldPrimaryMeasureValue,
8832
8842
  colorMeasureId: getColorMeasureId(advancedVSeed, vseed)
8833
8843
  });
8844
+ primaryResult.dataset.forEach((row)=>{
8845
+ row[DimAxisType] = 'primaryYAxis';
8846
+ });
8834
8847
  datasets.push(primaryResult.dataset);
8835
8848
  foldInfoList.push(primaryResult.foldInfo);
8836
8849
  unfoldInfoList.push(primaryResult.unfoldInfo);
@@ -8841,6 +8854,9 @@
8841
8854
  foldMeasureValue: FoldSecondaryMeasureValue,
8842
8855
  colorMeasureId: getColorMeasureId(advancedVSeed, vseed)
8843
8856
  });
8857
+ secondaryResult.dataset.forEach((row)=>{
8858
+ row[DimAxisType] = 'secondaryYAxis';
8859
+ });
8844
8860
  datasets.push(secondaryResult.dataset);
8845
8861
  foldInfoList.push(secondaryResult.foldInfo);
8846
8862
  unfoldInfoList.push(secondaryResult.unfoldInfo);
@@ -8896,6 +8912,9 @@
8896
8912
  colorMeasureId: getColorMeasureId(advancedVSeed, vseed),
8897
8913
  omitIds: allMeasuresIds
8898
8914
  });
8915
+ primaryResult.dataset.forEach((row)=>{
8916
+ row[DimAxisType] = 'primaryYAxis';
8917
+ });
8899
8918
  datasets.push(primaryResult.dataset);
8900
8919
  foldInfoList.push(primaryResult.foldInfo);
8901
8920
  unfoldInfoList.push(primaryResult.unfoldInfo);
@@ -8907,6 +8926,9 @@
8907
8926
  colorMeasureId: getColorMeasureId(advancedVSeed, vseed),
8908
8927
  omitIds: allMeasuresIds
8909
8928
  });
8929
+ secondaryResult.dataset.forEach((row)=>{
8930
+ row[DimAxisType] = 'secondaryYAxis';
8931
+ });
8910
8932
  datasets.push(secondaryResult.dataset);
8911
8933
  foldInfoList.push(secondaryResult.foldInfo);
8912
8934
  unfoldInfoList.push(secondaryResult.unfoldInfo);
@@ -9087,6 +9109,7 @@
9087
9109
  break;
9088
9110
  case 'column':
9089
9111
  result.type = 'bar';
9112
+ result.stack = true;
9090
9113
  result.zIndex = 1000;
9091
9114
  break;
9092
9115
  case 'columnParallel':
@@ -9126,11 +9149,8 @@
9126
9149
  zIndex: 1001
9127
9150
  };
9128
9151
  const { advancedVSeed } = context;
9129
- const { datasetReshapeInfo, reshapeMeasures = [] } = advancedVSeed;
9130
- const index = datasetReshapeInfo[0].index;
9131
- const chartTypes = reshapeMeasures[index].map((m)=>m.chartType);
9132
- const type = chartTypes.every((ct)=>'column' === ct) && reshapeMeasures[index].length > 1 && reshapeMeasures[index].some((m)=>'primaryYAxis' === m.encoding) && reshapeMeasures[index].some((m)=>'secondaryYAxis' === m.encoding) ? 'columnParallel' : options.chartType;
9133
- applyChartType(result, type, datasetReshapeInfo);
9152
+ const { datasetReshapeInfo } = advancedVSeed;
9153
+ applyChartType(result, options.chartType, datasetReshapeInfo);
9134
9154
  return result;
9135
9155
  };
9136
9156
  const datasetDualAxis = (options)=>(spec, context)=>{
@@ -9192,7 +9212,7 @@
9192
9212
  ...spec
9193
9213
  };
9194
9214
  const { advancedVSeed, vseed } = context;
9195
- const { measures = [], datasetReshapeInfo, chartType, dimensions = [], encoding } = advancedVSeed;
9215
+ const { measures = [], datasetReshapeInfo, chartType, dimensions = [], encoding, reshapeMeasures = [] } = advancedVSeed;
9196
9216
  const baseConfig = advancedVSeed.config[chartType];
9197
9217
  const { tooltip = {
9198
9218
  enable: true
@@ -9211,7 +9231,7 @@
9211
9231
  title: {
9212
9232
  visible: true
9213
9233
  },
9214
- content: createDimensionContent(dimensions, measures, options.foldInfo, unfoldInfo)
9234
+ content: createDimensionContent(dimensions, measures, options.foldInfo, unfoldInfo, reshapeMeasures.length > 1)
9215
9235
  }
9216
9236
  };
9217
9237
  return result;
@@ -9248,6 +9268,19 @@
9248
9268
  if ('area' === spec.type) return pipe(spec, context);
9249
9269
  return spec;
9250
9270
  };
9271
+ const adjustXField = (spec)=>{
9272
+ const result = {
9273
+ ...spec
9274
+ };
9275
+ const chartTypes = (spec.series ?? []).map((s)=>s.type);
9276
+ if (chartTypes.length > 1 && chartTypes.filter((type)=>'bar' === type).length > 1) result.series.forEach((s)=>{
9277
+ if ('bar' === s.type && !Array.isArray(s.xField)) s.xField = [
9278
+ s.xField,
9279
+ DimAxisType
9280
+ ];
9281
+ });
9282
+ return result;
9283
+ };
9251
9284
  const yLinearPrimary = (spec, context)=>{
9252
9285
  const result = {
9253
9286
  ...spec
@@ -9429,6 +9462,7 @@
9429
9462
  lineStyleFilter(colorLineStyleFill(lineStyle_lineStyle)),
9430
9463
  areaStyleFilter(colorAreaStyleFill(areaStyle_areaStyle))
9431
9464
  ]),
9465
+ adjustXField,
9432
9466
  xBand,
9433
9467
  yLinearPrimary,
9434
9468
  yLinearSecondary,
@@ -9465,6 +9499,7 @@
9465
9499
  lineStyleFilter(colorLineStyleFill(lineStyle_lineStyle)),
9466
9500
  areaStyleFilter(colorAreaStyleFill(areaStyle_areaStyle))
9467
9501
  ]),
9502
+ adjustXField,
9468
9503
  xBand,
9469
9504
  yLinearPrimary,
9470
9505
  pivotAxisStyle(yLinearSecondary),
@@ -9552,7 +9587,8 @@
9552
9587
  encoding.tooltip = chunk_QJLMYOTX_i([
9553
9588
  ...encoding.tooltip || [],
9554
9589
  ...label,
9555
- ...tooltip
9590
+ ...tooltip,
9591
+ ...color
9556
9592
  ]);
9557
9593
  };
9558
9594
  const pieAdvancedPipeline = [
@@ -9882,7 +9918,8 @@
9882
9918
  encoding.tooltip = chunk_QJLMYOTX_i([
9883
9919
  ...encoding.tooltip || [],
9884
9920
  ...label,
9885
- ...tooltip
9921
+ ...tooltip,
9922
+ ...color
9886
9923
  ]);
9887
9924
  };
9888
9925
  const roseAdvancedPipeline = [
@@ -10231,7 +10268,8 @@
10231
10268
  encoding.tooltip = chunk_QJLMYOTX_i([
10232
10269
  ...encoding.tooltip || [],
10233
10270
  ...label,
10234
- ...tooltip
10271
+ ...tooltip,
10272
+ ...color
10235
10273
  ]);
10236
10274
  };
10237
10275
  const radarAdvancedPipeline = [
@@ -10446,7 +10484,8 @@
10446
10484
  encoding.tooltip = chunk_QJLMYOTX_i([
10447
10485
  ...encoding.tooltip || [],
10448
10486
  ...label,
10449
- ...tooltip
10487
+ ...tooltip,
10488
+ ...color
10450
10489
  ]);
10451
10490
  };
10452
10491
  const funnelAdvancedPipeline = [
@@ -11030,7 +11069,8 @@
11030
11069
  encoding.tooltip = chunk_QJLMYOTX_i([
11031
11070
  ...encoding.tooltip || [],
11032
11071
  ...label,
11033
- ...tooltip
11072
+ ...tooltip,
11073
+ ...color
11034
11074
  ]);
11035
11075
  };
11036
11076
  function toNumber(a) {
@@ -11500,7 +11540,7 @@
11500
11540
  defaultContent
11501
11541
  ];
11502
11542
  };
11503
- const tooltipBoxplot_createDimensionContent = (dimensions, measures, unfoldInfo, medianAlias)=>{
11543
+ const tooltipBoxplot_createDimensionContent = (dimensions, measures, unfoldInfo, medianAlias, hasMultiMeasureGroup)=>{
11504
11544
  const { encodingColor } = unfoldInfo;
11505
11545
  return [
11506
11546
  {
@@ -11510,7 +11550,13 @@
11510
11550
  key: dimensions.some((d)=>'color' === d.encoding) ? (v)=>{
11511
11551
  const datum = v;
11512
11552
  const key = datum && datum[encodingColor] || '';
11513
- return `${unfoldInfo.colorIdMap[key].alias ?? key}(${medianAlias})`;
11553
+ const colorKey = `${unfoldInfo.colorIdMap[key].alias ?? key}(${medianAlias})`;
11554
+ if (hasMultiMeasureGroup) {
11555
+ const id = datum[MeasureId];
11556
+ const measure = findMeasureById(measures, id);
11557
+ return measure ? `${colorKey}-${measure.alias ?? id}` : colorKey;
11558
+ }
11559
+ return colorKey;
11514
11560
  } : (v)=>{
11515
11561
  const datum = v;
11516
11562
  return `${datum[MeasureName] ?? datum[MeasureId]}(${medianAlias})`;
@@ -11902,7 +11948,8 @@
11902
11948
  encoding.tooltip = chunk_QJLMYOTX_i([
11903
11949
  ...encoding.tooltip || [],
11904
11950
  ...label,
11905
- ...tooltip
11951
+ ...tooltip,
11952
+ ...color
11906
11953
  ]);
11907
11954
  };
11908
11955
  const subBin = (data, options)=>{
@@ -13121,7 +13168,6 @@
13121
13168
  },
13122
13169
  title: {
13123
13170
  visible: false,
13124
- titleText: '',
13125
13171
  titleColor: '#606773',
13126
13172
  titleFontSize: 12,
13127
13173
  titleFontWeight: 400
@@ -13167,7 +13213,6 @@
13167
13213
  },
13168
13214
  title: {
13169
13215
  visible: false,
13170
- titleText: '',
13171
13216
  titleColor: '#606773',
13172
13217
  titleFontSize: 12,
13173
13218
  titleFontWeight: 400
@@ -13205,7 +13250,6 @@
13205
13250
  },
13206
13251
  title: {
13207
13252
  visible: false,
13208
- titleText: '',
13209
13253
  titleColor: '#BBBDC3',
13210
13254
  titleFontSize: 12,
13211
13255
  titleFontWeight: 400
@@ -13251,7 +13295,6 @@
13251
13295
  },
13252
13296
  title: {
13253
13297
  visible: false,
13254
- titleText: '',
13255
13298
  titleColor: '#BBBDC3',
13256
13299
  titleFontSize: 12,
13257
13300
  titleFontWeight: 400