@visactor/vseed 0.3.8 → 0.3.9

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.
@@ -1,6 +1,6 @@
1
1
  import type { Dimensions, FoldInfo, Measures, VChartSpecPipe, UnfoldInfo } from '../../../../../types';
2
2
  export declare const tooltip: VChartSpecPipe;
3
- export declare const createDimensionContent: (tooltip: string[], measures: Measures | undefined, foldInfo: FoldInfo, unfoldInfo: UnfoldInfo, hasMultiMeasureGroup: boolean) => {
3
+ export declare const createDimensionContent: (tooltips: string[], colors: string[], measures: Measures | undefined, foldInfo: FoldInfo, unfoldInfo: UnfoldInfo, hasMultiMeasureGroup: boolean) => {
4
4
  visible: boolean;
5
5
  shapeType: string;
6
6
  hasShape: boolean;
@@ -1,6 +1,6 @@
1
- import { pipe, uniqueBy } from "remeda";
1
+ import { pipe, unique, uniqueBy } from "remeda";
2
2
  import { createFormatterByMeasure, findMeasureById } from "../../../../utils/index.js";
3
- import { ORIGINAL_DATA } from "../../../../../dataReshape/index.js";
3
+ import { MeasureId, MeasureName, ORIGINAL_DATA } from "../../../../../dataReshape/index.js";
4
4
  import { getTooltipStyle } from "./tooltipStyle.js";
5
5
  import { updateTooltipElement } from "./tooltipElement.js";
6
6
  const tooltip_tooltip = (spec, context)=>{
@@ -28,16 +28,17 @@ const tooltip_tooltip = (spec, context)=>{
28
28
  title: {
29
29
  visible: true
30
30
  },
31
- content: createDimensionContent(encoding.tooltip || [], measures, foldInfo, unfoldInfo, reshapeMeasures.length > 1)
31
+ content: createDimensionContent(encoding.tooltip || [], encoding.color || [], measures, foldInfo, unfoldInfo, reshapeMeasures.length > 1)
32
32
  },
33
33
  updateElement: updateTooltipElement
34
34
  };
35
35
  return result;
36
36
  };
37
- const createDimensionContent = (tooltip, measures = [], foldInfo, unfoldInfo, hasMultiMeasureGroup)=>{
37
+ const createDimensionContent = (tooltips, colors, measures = [], foldInfo, unfoldInfo, hasMultiMeasureGroup)=>{
38
38
  const { measureId, measureValue, foldMap } = foldInfo;
39
39
  const { encodingColor } = unfoldInfo;
40
- const hasMeasureTooltip = tooltip.some((d)=>measures.find((item)=>item.id === d));
40
+ const hasMeasureTooltip = tooltips.some((d)=>measures.find((item)=>item.id === d));
41
+ const hasMeasureIdInColor = colors.some((d)=>measures.find((item)=>item.id === d || d === MeasureId || d === MeasureName));
41
42
  return [
42
43
  {
43
44
  visible: true,
@@ -49,13 +50,17 @@ const createDimensionContent = (tooltip, measures = [], foldInfo, unfoldInfo, ha
49
50
  return foldMap[key] ?? key;
50
51
  } : (v)=>{
51
52
  const datum = v;
52
- const key = datum && datum[encodingColor] || '';
53
- const colorKey = `${unfoldInfo.colorIdMap[key].alias ?? key}`;
53
+ const colorId = datum?.[encodingColor];
54
+ const colorAlias = unfoldInfo.colorIdMap?.[colorId]?.alias ?? colorId;
54
55
  if (hasMultiMeasureGroup) {
55
- const mId = datum && datum[measureId] || '';
56
- return `${colorKey}-${foldMap[mId] ?? mId}`;
56
+ if (hasMeasureIdInColor) return colorAlias;
57
+ const meaAlias = datum && datum[MeasureName] || '';
58
+ return unique([
59
+ colorAlias,
60
+ meaAlias
61
+ ]).join('-');
57
62
  }
58
- return colorKey;
63
+ return colorAlias;
59
64
  },
60
65
  value: (v)=>{
61
66
  const datum = v;
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline/spec/chart/pipes/tooltip/tooltip.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/tooltip/tooltip.ts"],"sourcesContent":["import { pipe, uniqueBy } from 'remeda'\nimport { createFormatterByMeasure, findMeasureById } from '../../../../utils'\nimport type {\n Datum,\n Dimensions,\n FoldInfo,\n Measures,\n VChartSpecPipe,\n TooltipConfig,\n UnfoldInfo,\n Dimension,\n Measure,\n} from 'src/types'\nimport { ORIGINAL_DATA } from 'src/dataReshape'\nimport { getTooltipStyle } from './tooltipStyle'\nimport { updateTooltipElement } from './tooltipElement'\n\nexport const tooltip: VChartSpecPipe = (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 'line'] as { tooltip: TooltipConfig }\n const { tooltip = { enable: true } } = baseConfig\n const { enable = true } = tooltip\n const { foldInfo, unfoldInfo } = datasetReshapeInfo[0] as unknown as {\n foldInfo: FoldInfo\n unfoldInfo: UnfoldInfo\n }\n\n result.tooltip = {\n style: getTooltipStyle(tooltip),\n visible: !!enable,\n mark: {\n title: {\n visible: false,\n },\n content: createMarkContent(encoding.tooltip || [], dimensions, vseed.measures as Measures, foldInfo, unfoldInfo),\n },\n dimension: {\n title: {\n visible: true,\n },\n content: createDimensionContent(\n encoding.tooltip || [],\n measures,\n foldInfo,\n unfoldInfo,\n reshapeMeasures.length > 1,\n ),\n },\n\n updateElement: updateTooltipElement,\n }\n return result\n}\n\nexport const createDimensionContent = (\n tooltip: string[],\n measures: Measures = [],\n foldInfo: FoldInfo,\n unfoldInfo: UnfoldInfo,\n hasMultiMeasureGroup: boolean,\n) => {\n const { measureId, measureValue, foldMap } = foldInfo\n const { encodingColor } = unfoldInfo\n\n const hasMeasureTooltip = tooltip.some((d) => measures.find((item) => item.id === d))\n\n return [\n {\n visible: true,\n shapeType: 'rectRound',\n hasShape: true,\n key: !hasMeasureTooltip\n ? (v: unknown) => {\n const datum = v as Datum\n const key = (datum && (datum[encodingColor] as string)) || ''\n\n const colorKey = `${unfoldInfo.colorIdMap[key].alias ?? key}`\n\n if (hasMultiMeasureGroup) {\n const mId = (datum && (datum[measureId] as string)) || ''\n\n return `${colorKey}-${foldMap[mId] ?? mId}`\n }\n\n return colorKey\n }\n : (v: unknown) => {\n const datum = v as Datum\n const key = (datum && (datum[measureId] as string)) || ''\n return foldMap[key] ?? key\n },\n value: (v: unknown) => {\n const datum = v as Datum\n if (!datum) {\n return ''\n }\n const value = datum[measureValue] as string | number\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\nexport const createMarkContent = (\n tooltip: string[],\n dimensions: Dimensions = [],\n measures: Measures = [],\n foldInfo: FoldInfo,\n unfoldInfo: UnfoldInfo,\n) => {\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 const meas = pipe(\n measures.filter((item) => tooltip.includes(item.id)),\n uniqueBy((item: Measure) => item.id),\n uniqueBy((item: Measure) => item.alias),\n )\n\n const dimContent = dims.map((item: Dimension) => ({\n visible: true,\n hasShape: true,\n shapeType: 'rectRound',\n key: (v: unknown) => {\n const datum = v as Datum\n if (item.alias || item.id) {\n return item.alias || item.id\n }\n return datum && (datum[item.id] as string)\n },\n value: (v: unknown) => {\n const datum = v as Datum\n return datum && (datum[item.id] as string)\n },\n }))\n\n const meaContent = meas.map((item: Measure) => ({\n visible: true,\n hasShape: true,\n shapeType: 'rectRound',\n key: item.alias || item.id,\n value: (v: unknown) => {\n const datum = v as Datum\n if (!datum) {\n return ''\n }\n const id = item.id\n if (!datum || !datum[ORIGINAL_DATA] || !datum[ORIGINAL_DATA]) {\n return ''\n }\n const originalData = datum[ORIGINAL_DATA] as Datum\n const value = originalData[id] as string | number\n const measure = findMeasureById(measures, id)\n const formatter = createFormatterByMeasure(measure)\n return formatter(value)\n },\n }))\n\n const defaultContent = {\n visible: true,\n hasShape: true,\n shapeType: 'rectRound',\n key: (v: unknown) => {\n const { measureName } = foldInfo\n const { encodingColor: colorName } = unfoldInfo\n\n const datum = v as Datum\n return (datum && (datum[measureName || colorName] as string)) || ''\n },\n value: (v: unknown) => {\n const { measureId, measureValue } = foldInfo\n\n const datum = v as Datum\n if (!datum) {\n return ''\n }\n const value = datum[measureValue] as string | number\n const id = datum[measureId] as string\n const measure = findMeasureById(measures, id)\n if (!measure) {\n return String(value)\n }\n\n const formatter = createFormatterByMeasure(measure)\n return formatter(value)\n },\n }\n\n return [...dimContent, defaultContent, ...meaContent]\n}\n"],"names":["tooltip","spec","context","result","advancedVSeed","vseed","measures","datasetReshapeInfo","chartType","dimensions","encoding","reshapeMeasures","baseConfig","enable","foldInfo","unfoldInfo","getTooltipStyle","createMarkContent","createDimensionContent","updateTooltipElement","hasMultiMeasureGroup","measureId","measureValue","foldMap","encodingColor","hasMeasureTooltip","d","item","v","datum","key","colorKey","mId","value","id","measure","findMeasureById","formatter","createFormatterByMeasure","dims","pipe","uniqueBy","meas","dimContent","meaContent","ORIGINAL_DATA","originalData","defaultContent","measureName","colorName","String"],"mappings":"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"}
1
+ {"version":3,"file":"pipeline/spec/chart/pipes/tooltip/tooltip.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/tooltip/tooltip.ts"],"sourcesContent":["import { pipe, unique, uniqueBy } from 'remeda'\nimport { createFormatterByMeasure, findMeasureById } from '../../../../utils'\nimport type {\n Datum,\n Dimensions,\n FoldInfo,\n Measures,\n VChartSpecPipe,\n TooltipConfig,\n UnfoldInfo,\n Dimension,\n Measure,\n} from 'src/types'\nimport { MeasureId, MeasureName, ORIGINAL_DATA } from 'src/dataReshape'\nimport { getTooltipStyle } from './tooltipStyle'\nimport { updateTooltipElement } from './tooltipElement'\n\nexport const tooltip: VChartSpecPipe = (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 'line'] as { tooltip: TooltipConfig }\n const { tooltip = { enable: true } } = baseConfig\n const { enable = true } = tooltip\n const { foldInfo, unfoldInfo } = datasetReshapeInfo[0] as unknown as {\n foldInfo: FoldInfo\n unfoldInfo: UnfoldInfo\n }\n\n result.tooltip = {\n style: getTooltipStyle(tooltip),\n visible: !!enable,\n mark: {\n title: {\n visible: false,\n },\n content: createMarkContent(encoding.tooltip || [], dimensions, vseed.measures as Measures, foldInfo, unfoldInfo),\n },\n dimension: {\n title: {\n visible: true,\n },\n content: createDimensionContent(\n encoding.tooltip || [],\n encoding.color || [],\n measures,\n foldInfo,\n unfoldInfo,\n reshapeMeasures.length > 1,\n ),\n },\n\n updateElement: updateTooltipElement,\n }\n return result\n}\n\nexport const createDimensionContent = (\n tooltips: string[],\n colors: string[],\n measures: Measures = [],\n foldInfo: FoldInfo,\n unfoldInfo: UnfoldInfo,\n hasMultiMeasureGroup: boolean,\n) => {\n const { measureId, measureValue, foldMap } = foldInfo\n const { encodingColor } = unfoldInfo\n\n const hasMeasureTooltip = tooltips.some((d) => measures.find((item) => item.id === d))\n const hasMeasureIdInColor = colors.some((d) =>\n measures.find((item) => item.id === d || d === MeasureId || d === MeasureName),\n )\n return [\n {\n visible: true,\n shapeType: 'rectRound',\n hasShape: true,\n key: !hasMeasureTooltip\n ? (v: unknown) => {\n const datum = v as Datum\n const colorId = datum?.[encodingColor]\n const colorAlias = unfoldInfo.colorIdMap?.[colorId]?.alias ?? colorId\n\n // 指标组合场景, 保证的 Tooltip 中包含指标.\n if (hasMultiMeasureGroup) {\n // 图例 Color 内已有指标, 则无需添加指标, 避免重复\n if (hasMeasureIdInColor) {\n return colorAlias\n }\n // 指标需添加到 Tooltip 中.\n const meaAlias = (datum && (datum[MeasureName] as string)) || ''\n return unique([colorAlias, meaAlias]).join('-')\n }\n\n return colorAlias\n }\n : (v: unknown) => {\n const datum = v as Datum\n const key = (datum && (datum[measureId] as string)) || ''\n return foldMap[key] ?? key\n },\n value: (v: unknown) => {\n const datum = v as Datum\n if (!datum) {\n return ''\n }\n const value = datum[measureValue] as string | number\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\nexport const createMarkContent = (\n tooltip: string[],\n dimensions: Dimensions = [],\n measures: Measures = [],\n foldInfo: FoldInfo,\n unfoldInfo: UnfoldInfo,\n) => {\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 const meas = pipe(\n measures.filter((item) => tooltip.includes(item.id)),\n uniqueBy((item: Measure) => item.id),\n uniqueBy((item: Measure) => item.alias),\n )\n\n const dimContent = dims.map((item: Dimension) => ({\n visible: true,\n hasShape: true,\n shapeType: 'rectRound',\n key: (v: unknown) => {\n const datum = v as Datum\n if (item.alias || item.id) {\n return item.alias || item.id\n }\n return datum && (datum[item.id] as string)\n },\n value: (v: unknown) => {\n const datum = v as Datum\n return datum && (datum[item.id] as string)\n },\n }))\n\n const meaContent = meas.map((item: Measure) => ({\n visible: true,\n hasShape: true,\n shapeType: 'rectRound',\n key: item.alias || item.id,\n value: (v: unknown) => {\n const datum = v as Datum\n if (!datum) {\n return ''\n }\n const id = item.id\n if (!datum || !datum[ORIGINAL_DATA] || !datum[ORIGINAL_DATA]) {\n return ''\n }\n const originalData = datum[ORIGINAL_DATA] as Datum\n const value = originalData[id] as string | number\n const measure = findMeasureById(measures, id)\n const formatter = createFormatterByMeasure(measure)\n return formatter(value)\n },\n }))\n\n const defaultContent = {\n visible: true,\n hasShape: true,\n shapeType: 'rectRound',\n key: (v: unknown) => {\n const { measureName } = foldInfo\n const { encodingColor: colorName } = unfoldInfo\n\n const datum = v as Datum\n return (datum && (datum[measureName || colorName] as string)) || ''\n },\n value: (v: unknown) => {\n const { measureId, measureValue } = foldInfo\n\n const datum = v as Datum\n if (!datum) {\n return ''\n }\n const value = datum[measureValue] as string | number\n const id = datum[measureId] as string\n const measure = findMeasureById(measures, id)\n if (!measure) {\n return String(value)\n }\n\n const formatter = createFormatterByMeasure(measure)\n return formatter(value)\n },\n }\n\n return [...dimContent, defaultContent, ...meaContent]\n}\n"],"names":["tooltip","spec","context","result","advancedVSeed","vseed","measures","datasetReshapeInfo","chartType","dimensions","encoding","reshapeMeasures","baseConfig","enable","foldInfo","unfoldInfo","getTooltipStyle","createMarkContent","createDimensionContent","updateTooltipElement","tooltips","colors","hasMultiMeasureGroup","measureId","measureValue","foldMap","encodingColor","hasMeasureTooltip","d","item","hasMeasureIdInColor","MeasureId","MeasureName","v","datum","key","colorId","colorAlias","meaAlias","unique","value","id","measure","findMeasureById","formatter","createFormatterByMeasure","dims","pipe","uniqueBy","meas","dimContent","meaContent","ORIGINAL_DATA","originalData","defaultContent","measureName","colorName","String"],"mappings":"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"}
@@ -25,7 +25,7 @@ const tooltipOfDualAxisSeries = (options)=>(spec, context)=>{
25
25
  title: {
26
26
  visible: true
27
27
  },
28
- content: createDimensionContent(encoding.tooltip || [], measures, options.foldInfo, unfoldInfo, reshapeMeasures.length > 1)
28
+ content: createDimensionContent(encoding.tooltip || [], encoding.color || [], 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 {\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(\n encoding.tooltip || [],\n measures,\n options.foldInfo,\n unfoldInfo,\n reshapeMeasures.length > 1,\n ),\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,uBACPP,SAAS,OAAO,IAAI,EAAE,EACtBJ,UACAN,QAAQ,QAAQ,EAChBe,YACAJ,gBAAgB,MAAM,GAAG;YAE7B;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"}
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(\n encoding.tooltip || [],\n encoding.color || [],\n measures,\n options.foldInfo,\n unfoldInfo,\n reshapeMeasures.length > 1,\n ),\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,uBACPP,SAAS,OAAO,IAAI,EAAE,EACtBA,SAAS,KAAK,IAAI,EAAE,EACpBJ,UACAN,QAAQ,QAAQ,EAChBe,YACAJ,gBAAgB,MAAM,GAAG;YAE7B;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"}
package/dist/umd/index.js CHANGED
@@ -3846,16 +3846,17 @@
3846
3846
  title: {
3847
3847
  visible: true
3848
3848
  },
3849
- content: createDimensionContent(encoding.tooltip || [], measures, foldInfo, unfoldInfo, reshapeMeasures.length > 1)
3849
+ content: createDimensionContent(encoding.tooltip || [], encoding.color || [], measures, foldInfo, unfoldInfo, reshapeMeasures.length > 1)
3850
3850
  },
3851
3851
  updateElement: updateTooltipElement
3852
3852
  };
3853
3853
  return result;
3854
3854
  };
3855
- const createDimensionContent = (tooltip, measures = [], foldInfo, unfoldInfo, hasMultiMeasureGroup)=>{
3855
+ const createDimensionContent = (tooltips, colors, measures = [], foldInfo, unfoldInfo, hasMultiMeasureGroup)=>{
3856
3856
  const { measureId, measureValue, foldMap } = foldInfo;
3857
3857
  const { encodingColor } = unfoldInfo;
3858
- const hasMeasureTooltip = tooltip.some((d)=>measures.find((item)=>item.id === d));
3858
+ const hasMeasureTooltip = tooltips.some((d)=>measures.find((item)=>item.id === d));
3859
+ const hasMeasureIdInColor = colors.some((d)=>measures.find((item)=>item.id === d || d === MeasureId || d === MeasureName));
3859
3860
  return [
3860
3861
  {
3861
3862
  visible: true,
@@ -3867,13 +3868,17 @@
3867
3868
  return foldMap[key] ?? key;
3868
3869
  } : (v)=>{
3869
3870
  const datum = v;
3870
- const key = datum && datum[encodingColor] || '';
3871
- const colorKey = `${unfoldInfo.colorIdMap[key].alias ?? key}`;
3871
+ const colorId = datum?.[encodingColor];
3872
+ const colorAlias = unfoldInfo.colorIdMap?.[colorId]?.alias ?? colorId;
3872
3873
  if (hasMultiMeasureGroup) {
3873
- const mId = datum && datum[measureId] || '';
3874
- return `${colorKey}-${foldMap[mId] ?? mId}`;
3874
+ if (hasMeasureIdInColor) return colorAlias;
3875
+ const meaAlias = datum && datum[MeasureName] || '';
3876
+ return chunk_QJLMYOTX_i([
3877
+ colorAlias,
3878
+ meaAlias
3879
+ ]).join('-');
3875
3880
  }
3876
- return colorKey;
3881
+ return colorAlias;
3877
3882
  },
3878
3883
  value: (v)=>{
3879
3884
  const datum = v;
@@ -9454,7 +9459,7 @@
9454
9459
  title: {
9455
9460
  visible: true
9456
9461
  },
9457
- content: createDimensionContent(encoding.tooltip || [], measures, options.foldInfo, unfoldInfo, reshapeMeasures.length > 1)
9462
+ content: createDimensionContent(encoding.tooltip || [], encoding.color || [], measures, options.foldInfo, unfoldInfo, reshapeMeasures.length > 1)
9458
9463
  }
9459
9464
  };
9460
9465
  return result;