@visactor/vseed 0.3.0 → 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.
- package/dist/cjs/index.cjs +1 -1
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/esm/dataReshape/constant.d.ts +1 -0
- package/dist/esm/dataReshape/constant.js +2 -1
- package/dist/esm/dataReshape/constant.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/bar.js +2 -1
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/bar.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/boxplot.js +2 -1
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/boxplot.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/column.js +2 -1
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/column.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/dualAxis.js +2 -1
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/dualAxis.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/funnel.js +2 -1
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/funnel.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/histogram.js +2 -1
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/histogram.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/line.js +2 -1
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/line.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/pie.js +2 -1
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/pie.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/radar.js +2 -1
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/radar.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/rose.js +2 -1
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/rose.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/scatter.js +2 -1
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/scatter.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/reshape/pivotReshapeWithDualEncoding.js +7 -1
- package/dist/esm/pipeline/advanced/chart/pipes/reshape/pivotReshapeWithDualEncoding.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/reshape/reshapeWithDualEncoding.js +7 -1
- package/dist/esm/pipeline/advanced/chart/pipes/reshape/reshapeWithDualEncoding.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipeline/dualAxis.js +3 -1
- package/dist/esm/pipeline/spec/chart/pipeline/dualAxis.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/axes/xBand.js +2 -2
- package/dist/esm/pipeline/spec/chart/pipes/axes/xBand.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/axes/yBand.js +2 -2
- package/dist/esm/pipeline/spec/chart/pipes/axes/yBand.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/dual/adjustXField.d.ts +2 -0
- package/dist/esm/pipeline/spec/chart/pipes/dual/adjustXField.js +17 -0
- package/dist/esm/pipeline/spec/chart/pipes/dual/adjustXField.js.map +1 -0
- package/dist/esm/pipeline/spec/chart/pipes/dual/dualChartType.js +3 -5
- package/dist/esm/pipeline/spec/chart/pipes/dual/dualChartType.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/dual/index.d.ts +1 -0
- package/dist/esm/pipeline/spec/chart/pipes/dual/index.js +2 -1
- package/dist/esm/pipeline/spec/chart/pipes/legend/colorLegend.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltip.d.ts +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltip.js +9 -4
- package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltip.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipBoxplot.js +8 -2
- package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipBoxplot.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipDualAxis.js +2 -2
- package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipDualAxis.js.map +1 -1
- package/dist/esm/theme/common/axes.js +0 -4
- package/dist/esm/theme/common/axes.js.map +1 -1
- package/dist/umd/index.js +77 -34
- package/dist/umd/index.js.map +1 -1
- package/package.json +13 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline/advanced/chart/pipes/encoding/scatter.js","sources":["webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/encoding/scatter.ts"],"sourcesContent":["import { unique } from 'remeda'\nimport { MeasureId } from 'src/dataReshape'\nimport type { AdvancedPipe, Dimension, Dimensions, Encoding, Measure, Measures } from 'src/types'\n\nexport const defaultEncodingForScatter: AdvancedPipe = (advancedVSeed) => {\n const { measures = [], dimensions = [] } = advancedVSeed\n const encoding: Encoding = {}\n generateDefaultDimensionEncoding(dimensions, encoding)\n generateDefaultMeasureEncoding(measures, encoding)\n return { ...advancedVSeed, encoding }\n}\n\nexport const encodingForScatter: AdvancedPipe = (advancedVSeed) => {\n const { measures = [], dimensions = [] } = advancedVSeed\n\n // exist encoding condition\n const hasDimensionEncoding = dimensions.some((item: Dimension) => item.encoding)\n const hasMeasureEncoding = measures.some((item: Measure) => item.encoding)\n\n // encoding for modify in place\n const encoding: Encoding = {}\n\n if (hasDimensionEncoding) {\n generateDimensionEncoding(dimensions, encoding)\n } else {\n generateDefaultDimensionEncoding(dimensions, encoding)\n }\n\n if (hasMeasureEncoding) {\n generateMeasureEncoding(measures, encoding)\n } else {\n generateDefaultMeasureEncoding(measures, encoding)\n }\n\n return { ...advancedVSeed, encoding }\n}\n/**\n * --------------------维度--------------------\n */\nconst generateDefaultDimensionEncoding = (dimensions: Dimensions, encoding: Encoding) => {\n const dimensionsWithoutMeasureId = dimensions.filter((item) => item.id !== MeasureId)\n const uniqueDimIds = unique(dimensionsWithoutMeasureId.map((d) => d.id))\n\n encoding.detail = encoding.color\n encoding.tooltip = uniqueDimIds.filter((d) => d !== MeasureId) // 展示指标名称之外的所有维度\n encoding.label = [] // 默认不展示标签\n encoding.row = [] // 默认不进行行透视\n encoding.column = [] // 默认不进行列透视\n}\nconst generateDimensionEncoding = (dimensions: Dimensions, encoding: Encoding) => {\n // color\n encoding.color = unique(dimensions.filter((item) => item.encoding === 'color').map((item) => item.id))\n\n // detail\n encoding.detail = unique(dimensions.filter((item) => item.encoding === 'detail').map((item) => item.id))\n if (encoding.detail.length === 0) {\n encoding.detail = [MeasureId]\n }\n // tooltip\n encoding.tooltip = unique(dimensions.map((item) => item.id))\n encoding.tooltip = encoding.tooltip.filter((d) => d !== MeasureId)\n\n // label\n encoding.label = unique(dimensions.filter((item) => item.encoding === 'label').map((item) => item.id))\n encoding.label = encoding.label.filter((d) => d !== MeasureId)\n}\n\n/**\n * --------------------指标--------------------\n */\nconst generateDefaultMeasureEncoding = (measures: Measures, encoding: Encoding) => {\n encoding.y = unique(\n measures\n .filter((item) => item.encoding === 'xAxis' || item.encoding === 'yAxis' || !item.encoding)\n .map((item) => item.id),\n )\n}\nconst generateMeasureEncoding = (measures: Measures, encoding: Encoding) => {\n encoding.y = unique(\n measures\n .filter((item) => item.encoding === 'xAxis' || item.encoding === 'yAxis' || !item.encoding)\n .map((item) => item.id),\n )\n const color = unique(measures.filter((item) => item.encoding === 'color').map((item) => item.id))\n if (color.length > 0) {\n encoding.color = [color[0]]\n }\n\n // size\n encoding.size = unique(measures.filter((item) => item.encoding === 'size').map((item) => item.id))\n\n // label\n const label = unique(measures.filter((item) => item.encoding === 'label').map((item) => item.id))\n encoding.label = unique([...(encoding.label || []), ...label])\n\n // tooltip\n const tooltip = unique(measures.filter((item) => item.encoding === 'tooltip').map((item) => item.id))\n encoding.tooltip = unique([...(encoding.tooltip || []), ...label, ...tooltip])\n}\n"],"names":["defaultEncodingForScatter","advancedVSeed","measures","dimensions","encoding","generateDefaultDimensionEncoding","generateDefaultMeasureEncoding","encodingForScatter","hasDimensionEncoding","item","hasMeasureEncoding","generateDimensionEncoding","generateMeasureEncoding","dimensionsWithoutMeasureId","MeasureId","uniqueDimIds","unique","d","color","label","tooltip"],"mappings":"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
|
|
1
|
+
{"version":3,"file":"pipeline/advanced/chart/pipes/encoding/scatter.js","sources":["webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/encoding/scatter.ts"],"sourcesContent":["import { unique } from 'remeda'\nimport { MeasureId } from 'src/dataReshape'\nimport type { AdvancedPipe, Dimension, Dimensions, Encoding, Measure, Measures } from 'src/types'\n\nexport const defaultEncodingForScatter: AdvancedPipe = (advancedVSeed) => {\n const { measures = [], dimensions = [] } = advancedVSeed\n const encoding: Encoding = {}\n generateDefaultDimensionEncoding(dimensions, encoding)\n generateDefaultMeasureEncoding(measures, encoding)\n return { ...advancedVSeed, encoding }\n}\n\nexport const encodingForScatter: AdvancedPipe = (advancedVSeed) => {\n const { measures = [], dimensions = [] } = advancedVSeed\n\n // exist encoding condition\n const hasDimensionEncoding = dimensions.some((item: Dimension) => item.encoding)\n const hasMeasureEncoding = measures.some((item: Measure) => item.encoding)\n\n // encoding for modify in place\n const encoding: Encoding = {}\n\n if (hasDimensionEncoding) {\n generateDimensionEncoding(dimensions, encoding)\n } else {\n generateDefaultDimensionEncoding(dimensions, encoding)\n }\n\n if (hasMeasureEncoding) {\n generateMeasureEncoding(measures, encoding)\n } else {\n generateDefaultMeasureEncoding(measures, encoding)\n }\n\n return { ...advancedVSeed, encoding }\n}\n/**\n * --------------------维度--------------------\n */\nconst generateDefaultDimensionEncoding = (dimensions: Dimensions, encoding: Encoding) => {\n const dimensionsWithoutMeasureId = dimensions.filter((item) => item.id !== MeasureId)\n const uniqueDimIds = unique(dimensionsWithoutMeasureId.map((d) => d.id))\n\n encoding.detail = encoding.color\n encoding.tooltip = uniqueDimIds.filter((d) => d !== MeasureId) // 展示指标名称之外的所有维度\n encoding.label = [] // 默认不展示标签\n encoding.row = [] // 默认不进行行透视\n encoding.column = [] // 默认不进行列透视\n}\nconst generateDimensionEncoding = (dimensions: Dimensions, encoding: Encoding) => {\n // color\n encoding.color = unique(dimensions.filter((item) => item.encoding === 'color').map((item) => item.id))\n\n // detail\n encoding.detail = unique(dimensions.filter((item) => item.encoding === 'detail').map((item) => item.id))\n if (encoding.detail.length === 0) {\n encoding.detail = [MeasureId]\n }\n // tooltip\n encoding.tooltip = unique(dimensions.map((item) => item.id))\n encoding.tooltip = encoding.tooltip.filter((d) => d !== MeasureId)\n\n // label\n encoding.label = unique(dimensions.filter((item) => item.encoding === 'label').map((item) => item.id))\n encoding.label = encoding.label.filter((d) => d !== MeasureId)\n}\n\n/**\n * --------------------指标--------------------\n */\nconst generateDefaultMeasureEncoding = (measures: Measures, encoding: Encoding) => {\n encoding.y = unique(\n measures\n .filter((item) => item.encoding === 'xAxis' || item.encoding === 'yAxis' || !item.encoding)\n .map((item) => item.id),\n )\n}\nconst generateMeasureEncoding = (measures: Measures, encoding: Encoding) => {\n encoding.y = unique(\n measures\n .filter((item) => item.encoding === 'xAxis' || item.encoding === 'yAxis' || !item.encoding)\n .map((item) => item.id),\n )\n const color = unique(measures.filter((item) => item.encoding === 'color').map((item) => item.id))\n if (color.length > 0) {\n encoding.color = [color[0]]\n }\n\n // size\n encoding.size = unique(measures.filter((item) => item.encoding === 'size').map((item) => item.id))\n\n // label\n const label = unique(measures.filter((item) => item.encoding === 'label').map((item) => item.id))\n encoding.label = unique([...(encoding.label || []), ...label])\n\n // tooltip\n const tooltip = unique(measures.filter((item) => item.encoding === 'tooltip').map((item) => item.id))\n encoding.tooltip = unique([...(encoding.tooltip || []), ...label, ...tooltip, ...color])\n}\n"],"names":["defaultEncodingForScatter","advancedVSeed","measures","dimensions","encoding","generateDefaultDimensionEncoding","generateDefaultMeasureEncoding","encodingForScatter","hasDimensionEncoding","item","hasMeasureEncoding","generateDimensionEncoding","generateMeasureEncoding","dimensionsWithoutMeasureId","MeasureId","uniqueDimIds","unique","d","color","label","tooltip"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { unique, uniqueBy } from "remeda";
|
|
2
|
-
import { FoldPrimaryMeasureValue, FoldSecondaryMeasureValue, dataReshapeByEncoding } from "../../../../../dataReshape/index.js";
|
|
2
|
+
import { DimAxisType, FoldPrimaryMeasureValue, FoldSecondaryMeasureValue, dataReshapeByEncoding } from "../../../../../dataReshape/index.js";
|
|
3
3
|
import { DEFAULT_DUAL_CHART_TYPE } from "../../../../../index.js";
|
|
4
4
|
import { getColorMeasureId } from "../../../../spec/chart/pipes/index.js";
|
|
5
5
|
const pivotReshapeWithDualEncoding = (advancedVSeed, context)=>{
|
|
@@ -31,6 +31,9 @@ const pivotReshapeWithDualEncoding = (advancedVSeed, context)=>{
|
|
|
31
31
|
colorMeasureId: getColorMeasureId(advancedVSeed, vseed),
|
|
32
32
|
omitIds: allMeasuresIds
|
|
33
33
|
});
|
|
34
|
+
primaryResult.dataset.forEach((row)=>{
|
|
35
|
+
row[DimAxisType] = 'primaryYAxis';
|
|
36
|
+
});
|
|
34
37
|
datasets.push(primaryResult.dataset);
|
|
35
38
|
foldInfoList.push(primaryResult.foldInfo);
|
|
36
39
|
unfoldInfoList.push(primaryResult.unfoldInfo);
|
|
@@ -42,6 +45,9 @@ const pivotReshapeWithDualEncoding = (advancedVSeed, context)=>{
|
|
|
42
45
|
colorMeasureId: getColorMeasureId(advancedVSeed, vseed),
|
|
43
46
|
omitIds: allMeasuresIds
|
|
44
47
|
});
|
|
48
|
+
secondaryResult.dataset.forEach((row)=>{
|
|
49
|
+
row[DimAxisType] = 'secondaryYAxis';
|
|
50
|
+
});
|
|
45
51
|
datasets.push(secondaryResult.dataset);
|
|
46
52
|
foldInfoList.push(secondaryResult.foldInfo);
|
|
47
53
|
unfoldInfoList.push(secondaryResult.unfoldInfo);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline/advanced/chart/pipes/reshape/pivotReshapeWithDualEncoding.js","sources":["webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/reshape/pivotReshapeWithDualEncoding.ts"],"sourcesContent":["import { uniqueBy, unique } from 'remeda'\nimport { dataReshapeByEncoding, FoldPrimaryMeasureValue, FoldSecondaryMeasureValue } from 'src/dataReshape'\nimport { DEFAULT_DUAL_CHART_TYPE } from 'src/index'\nimport { getColorMeasureId } from 'src/pipeline/spec/chart/pipes'\nimport type {\n AdvancedPipe,\n AdvancedVSeed,\n ColumnParallel,\n Dataset,\n DatasetReshapeInfo,\n Dimension,\n DualAxisMeasure,\n Encoding,\n FoldInfo,\n Measure,\n Measures,\n UnfoldInfo,\n} from 'src/types'\n\nexport const pivotReshapeWithDualEncoding: AdvancedPipe = (advancedVSeed, context) => {\n const result = { ...advancedVSeed }\n const { vseed } = context\n const { dataset } = vseed as ColumnParallel\n const { encoding, chartType } = advancedVSeed\n const reshapeMeasures = advancedVSeed.reshapeMeasures ?? []\n const dimensions = advancedVSeed.reshapeDimensions ?? advancedVSeed.dimensions ?? []\n const allMeasuresIds = reshapeMeasures.flatMap((measureGroup) => measureGroup.map((m) => m.id))\n\n const datasetList: Dataset[] = []\n const datasetReshapeInfo: DatasetReshapeInfo = []\n\n reshapeMeasures.forEach((measures: Measures, index) => {\n const foldInfoList: FoldInfo[] = []\n const unfoldInfoList: UnfoldInfo[] = []\n\n const datasets: Dataset[] = []\n const primaryMeasures = measures.filter((m) => m.encoding === 'primaryYAxis')\n const secondaryMeasures = measures.filter((m) => m.encoding === 'secondaryYAxis')\n const primaryChartTypes: string[] = unique(primaryMeasures.map((m) => (m as DualAxisMeasure).chartType!))\n const secondaryChartTypes: string[] = unique(secondaryMeasures.map((m) => (m as DualAxisMeasure).chartType!))\n\n if (!primaryChartTypes.length) {\n primaryChartTypes.push(DEFAULT_DUAL_CHART_TYPE.primary)\n }\n\n if (!secondaryChartTypes.length) {\n secondaryChartTypes.push(DEFAULT_DUAL_CHART_TYPE.secondary)\n }\n\n primaryChartTypes.forEach((chartType) => {\n const primaryResult = dataReshapeByEncoding(\n dataset,\n uniqueBy(dimensions, (item: Dimension) => item.id),\n uniqueBy(\n primaryMeasures.filter((m) => (m as DualAxisMeasure).chartType! === chartType),\n (item: Measure) => item.id,\n ),\n encoding as Encoding,\n {\n colorItemAsId: false,\n foldMeasureValue: `${FoldPrimaryMeasureValue}${index}`,\n colorMeasureId: getColorMeasureId(advancedVSeed as AdvancedVSeed, vseed),\n omitIds: allMeasuresIds,\n },\n )\n\n datasets.push(primaryResult.dataset)\n foldInfoList.push(primaryResult.foldInfo)\n unfoldInfoList.push(primaryResult.unfoldInfo)\n })\n\n secondaryChartTypes.forEach((chartType) => {\n const secondaryResult = dataReshapeByEncoding(\n dataset,\n uniqueBy(dimensions, (item: Dimension) => item.id),\n uniqueBy(\n secondaryMeasures.filter((m) => (m as DualAxisMeasure).chartType! === chartType),\n (item: Measure) => item.id,\n ),\n encoding as Encoding,\n {\n colorItemAsId: false,\n foldMeasureValue: `${FoldSecondaryMeasureValue}${index}`,\n colorMeasureId: getColorMeasureId(advancedVSeed as AdvancedVSeed, vseed),\n omitIds: allMeasuresIds,\n },\n )\n\n datasets.push(secondaryResult.dataset)\n foldInfoList.push(secondaryResult.foldInfo)\n unfoldInfoList.push(secondaryResult.unfoldInfo)\n })\n\n const unfoldInfo: UnfoldInfo = {\n ...unfoldInfoList[0],\n colorItems: unfoldInfoList.flatMap((d) => d.colorItems),\n colorIdMap: unfoldInfoList.reduce((prev, cur) => ({ ...prev, ...cur.colorIdMap }), {}),\n }\n\n const reshapeInfo = {\n id: `${chartType}-${index}`,\n index,\n foldInfo: foldInfoList[0],\n foldInfoList: foldInfoList,\n unfoldInfo: unfoldInfo,\n }\n\n datasetReshapeInfo.push(reshapeInfo)\n datasetList.push(datasets.flat(2))\n })\n\n return {\n ...result,\n dataset: datasetList,\n datasetReshapeInfo: datasetReshapeInfo,\n }\n}\n"],"names":["pivotReshapeWithDualEncoding","advancedVSeed","context","result","vseed","dataset","encoding","chartType","reshapeMeasures","dimensions","allMeasuresIds","measureGroup","m","datasetList","datasetReshapeInfo","measures","index","foldInfoList","unfoldInfoList","datasets","primaryMeasures","secondaryMeasures","primaryChartTypes","unique","secondaryChartTypes","DEFAULT_DUAL_CHART_TYPE","primaryResult","dataReshapeByEncoding","uniqueBy","item","FoldPrimaryMeasureValue","getColorMeasureId","secondaryResult","FoldSecondaryMeasureValue","unfoldInfo","d","prev","cur","reshapeInfo"],"mappings":";;;;
|
|
1
|
+
{"version":3,"file":"pipeline/advanced/chart/pipes/reshape/pivotReshapeWithDualEncoding.js","sources":["webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/reshape/pivotReshapeWithDualEncoding.ts"],"sourcesContent":["import { uniqueBy, unique } from 'remeda'\nimport { dataReshapeByEncoding, DimAxisType, FoldPrimaryMeasureValue, FoldSecondaryMeasureValue } from 'src/dataReshape'\nimport { DEFAULT_DUAL_CHART_TYPE } from 'src/index'\nimport { getColorMeasureId } from 'src/pipeline/spec/chart/pipes'\nimport type {\n AdvancedPipe,\n AdvancedVSeed,\n ColumnParallel,\n Dataset,\n DatasetReshapeInfo,\n Datum,\n Dimension,\n DualAxisMeasure,\n Encoding,\n FoldInfo,\n Measure,\n Measures,\n UnfoldInfo,\n} from 'src/types'\n\nexport const pivotReshapeWithDualEncoding: AdvancedPipe = (advancedVSeed, context) => {\n const result = { ...advancedVSeed }\n const { vseed } = context\n const { dataset } = vseed as ColumnParallel\n const { encoding, chartType } = advancedVSeed\n const reshapeMeasures = advancedVSeed.reshapeMeasures ?? []\n const dimensions = advancedVSeed.reshapeDimensions ?? advancedVSeed.dimensions ?? []\n const allMeasuresIds = reshapeMeasures.flatMap((measureGroup: Measures) => measureGroup.map((m) => m.id))\n\n const datasetList: Dataset[] = []\n const datasetReshapeInfo: DatasetReshapeInfo = []\n\n reshapeMeasures.forEach((measures: Measures, index: number) => {\n const foldInfoList: FoldInfo[] = []\n const unfoldInfoList: UnfoldInfo[] = []\n\n const datasets: Dataset[] = []\n const primaryMeasures = measures.filter((m) => m.encoding === 'primaryYAxis')\n const secondaryMeasures = measures.filter((m) => m.encoding === 'secondaryYAxis')\n const primaryChartTypes: string[] = unique(primaryMeasures.map((m) => (m as DualAxisMeasure).chartType!))\n const secondaryChartTypes: string[] = unique(secondaryMeasures.map((m) => (m as DualAxisMeasure).chartType!))\n\n if (!primaryChartTypes.length) {\n primaryChartTypes.push(DEFAULT_DUAL_CHART_TYPE.primary)\n }\n\n if (!secondaryChartTypes.length) {\n secondaryChartTypes.push(DEFAULT_DUAL_CHART_TYPE.secondary)\n }\n\n primaryChartTypes.forEach((chartType) => {\n const primaryResult = dataReshapeByEncoding(\n dataset,\n uniqueBy(dimensions, (item: Dimension) => item.id),\n uniqueBy(\n primaryMeasures.filter((m) => (m as DualAxisMeasure).chartType! === chartType),\n (item: Measure) => item.id,\n ),\n encoding as Encoding,\n {\n colorItemAsId: false,\n foldMeasureValue: `${FoldPrimaryMeasureValue}${index}`,\n colorMeasureId: getColorMeasureId(advancedVSeed as AdvancedVSeed, vseed),\n omitIds: allMeasuresIds,\n },\n )\n\n primaryResult.dataset.forEach((row: Datum) => {\n row[DimAxisType] = 'primaryYAxis'\n })\n\n datasets.push(primaryResult.dataset)\n foldInfoList.push(primaryResult.foldInfo)\n unfoldInfoList.push(primaryResult.unfoldInfo)\n })\n\n secondaryChartTypes.forEach((chartType) => {\n const secondaryResult = dataReshapeByEncoding(\n dataset,\n uniqueBy(dimensions, (item: Dimension) => item.id),\n uniqueBy(\n secondaryMeasures.filter((m) => (m as DualAxisMeasure).chartType! === chartType),\n (item: Measure) => item.id,\n ),\n encoding as Encoding,\n {\n colorItemAsId: false,\n foldMeasureValue: `${FoldSecondaryMeasureValue}${index}`,\n colorMeasureId: getColorMeasureId(advancedVSeed as AdvancedVSeed, vseed),\n omitIds: allMeasuresIds,\n },\n )\n\n secondaryResult.dataset.forEach((row: Datum) => {\n row[DimAxisType] = 'secondaryYAxis'\n })\n\n datasets.push(secondaryResult.dataset)\n foldInfoList.push(secondaryResult.foldInfo)\n unfoldInfoList.push(secondaryResult.unfoldInfo)\n })\n\n const unfoldInfo: UnfoldInfo = {\n ...unfoldInfoList[0],\n colorItems: unfoldInfoList.flatMap((d) => d.colorItems),\n colorIdMap: unfoldInfoList.reduce((prev, cur) => ({ ...prev, ...cur.colorIdMap }), {}),\n }\n\n const reshapeInfo = {\n id: `${chartType}-${index}`,\n index,\n foldInfo: foldInfoList[0],\n foldInfoList: foldInfoList,\n unfoldInfo: unfoldInfo,\n }\n\n datasetReshapeInfo.push(reshapeInfo)\n datasetList.push(datasets.flat(2))\n })\n\n return {\n ...result,\n dataset: datasetList,\n datasetReshapeInfo: datasetReshapeInfo,\n }\n}\n"],"names":["pivotReshapeWithDualEncoding","advancedVSeed","context","result","vseed","dataset","encoding","chartType","reshapeMeasures","dimensions","allMeasuresIds","measureGroup","m","datasetList","datasetReshapeInfo","measures","index","foldInfoList","unfoldInfoList","datasets","primaryMeasures","secondaryMeasures","primaryChartTypes","unique","secondaryChartTypes","DEFAULT_DUAL_CHART_TYPE","primaryResult","dataReshapeByEncoding","uniqueBy","item","FoldPrimaryMeasureValue","getColorMeasureId","row","DimAxisType","secondaryResult","FoldSecondaryMeasureValue","unfoldInfo","d","prev","cur","reshapeInfo"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { unique, uniqueBy } from "remeda";
|
|
2
|
-
import { FoldPrimaryMeasureValue, FoldSecondaryMeasureValue, dataReshapeByEncoding } from "../../../../../dataReshape/index.js";
|
|
2
|
+
import { DimAxisType, FoldPrimaryMeasureValue, FoldSecondaryMeasureValue, dataReshapeByEncoding } from "../../../../../dataReshape/index.js";
|
|
3
3
|
import { getColorMeasureId } from "../../../../spec/chart/pipes/index.js";
|
|
4
4
|
import { DEFAULT_DUAL_CHART_TYPE } from "../../../../utils/chatType.js";
|
|
5
5
|
const reshapeWithDualEncoding = (advancedVSeed, context)=>{
|
|
@@ -26,6 +26,9 @@ const reshapeWithDualEncoding = (advancedVSeed, context)=>{
|
|
|
26
26
|
foldMeasureValue: FoldPrimaryMeasureValue,
|
|
27
27
|
colorMeasureId: getColorMeasureId(advancedVSeed, vseed)
|
|
28
28
|
});
|
|
29
|
+
primaryResult.dataset.forEach((row)=>{
|
|
30
|
+
row[DimAxisType] = 'primaryYAxis';
|
|
31
|
+
});
|
|
29
32
|
datasets.push(primaryResult.dataset);
|
|
30
33
|
foldInfoList.push(primaryResult.foldInfo);
|
|
31
34
|
unfoldInfoList.push(primaryResult.unfoldInfo);
|
|
@@ -36,6 +39,9 @@ const reshapeWithDualEncoding = (advancedVSeed, context)=>{
|
|
|
36
39
|
foldMeasureValue: FoldSecondaryMeasureValue,
|
|
37
40
|
colorMeasureId: getColorMeasureId(advancedVSeed, vseed)
|
|
38
41
|
});
|
|
42
|
+
secondaryResult.dataset.forEach((row)=>{
|
|
43
|
+
row[DimAxisType] = 'secondaryYAxis';
|
|
44
|
+
});
|
|
39
45
|
datasets.push(secondaryResult.dataset);
|
|
40
46
|
foldInfoList.push(secondaryResult.foldInfo);
|
|
41
47
|
unfoldInfoList.push(secondaryResult.unfoldInfo);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline/advanced/chart/pipes/reshape/reshapeWithDualEncoding.js","sources":["webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/reshape/reshapeWithDualEncoding.ts"],"sourcesContent":["import { uniqueBy, unique } from 'remeda'\nimport { dataReshapeByEncoding, FoldPrimaryMeasureValue, FoldSecondaryMeasureValue } from 'src/dataReshape'\nimport { getColorMeasureId } from 'src/pipeline/spec/chart/pipes'\nimport { DEFAULT_DUAL_CHART_TYPE } from 'src/pipeline/utils/chatType'\nimport type {\n AdvancedPipe,\n AdvancedVSeed,\n ColumnParallel,\n Dataset,\n Dimension,\n DualAxisMeasure,\n Encoding,\n FoldInfo,\n Measure,\n UnfoldInfo,\n} from 'src/types'\n\nexport const reshapeWithDualEncoding: AdvancedPipe = (advancedVSeed, context) => {\n const result = { ...advancedVSeed }\n const { vseed } = context\n const { dataset } = vseed as ColumnParallel\n const { encoding, chartType } = advancedVSeed\n const measures = (advancedVSeed.reshapeMeasures?.[0] ?? []) as Measure[]\n const dimensions = advancedVSeed.reshapeDimensions ?? advancedVSeed.dimensions ?? []\n\n const foldInfoList: FoldInfo[] = []\n const unfoldInfoList: UnfoldInfo[] = []\n\n const datasets: Dataset[] = []\n const primaryMeasures = measures.filter((m) => m.encoding === 'primaryYAxis')\n const secondaryMeasures = measures.filter((m) => m.encoding === 'secondaryYAxis')\n const primaryChartTypes: string[] = unique(primaryMeasures.map((m) => (m as DualAxisMeasure).chartType!))\n const secondaryChartTypes: string[] = unique(secondaryMeasures.map((m) => (m as DualAxisMeasure).chartType!))\n\n if (!primaryChartTypes.length) {\n primaryChartTypes.push(DEFAULT_DUAL_CHART_TYPE.primary)\n }\n\n if (!secondaryChartTypes.length) {\n secondaryChartTypes.push(DEFAULT_DUAL_CHART_TYPE.secondary)\n }\n\n primaryChartTypes.forEach((chartType) => {\n const primaryResult = dataReshapeByEncoding(\n dataset,\n uniqueBy(dimensions, (item: Dimension) => item.id),\n uniqueBy(\n primaryMeasures.filter((m) => (m as DualAxisMeasure).chartType! === chartType),\n (item: Measure) => item.id,\n ),\n encoding as Encoding,\n {\n colorItemAsId: false,\n foldMeasureValue: FoldPrimaryMeasureValue,\n colorMeasureId: getColorMeasureId(advancedVSeed as AdvancedVSeed, vseed),\n },\n )\n\n datasets.push(primaryResult.dataset)\n foldInfoList.push(primaryResult.foldInfo)\n unfoldInfoList.push(primaryResult.unfoldInfo)\n })\n\n secondaryChartTypes.forEach((chartType) => {\n const secondaryResult = dataReshapeByEncoding(\n dataset,\n uniqueBy(dimensions, (item: Dimension) => item.id),\n uniqueBy(\n secondaryMeasures.filter((m) => (m as DualAxisMeasure).chartType! === chartType),\n (item: Measure) => item.id,\n ),\n encoding as Encoding,\n {\n colorItemAsId: false,\n foldMeasureValue: FoldSecondaryMeasureValue,\n colorMeasureId: getColorMeasureId(advancedVSeed as AdvancedVSeed, vseed),\n },\n )\n\n datasets.push(secondaryResult.dataset)\n foldInfoList.push(secondaryResult.foldInfo)\n unfoldInfoList.push(secondaryResult.unfoldInfo)\n })\n\n const unfoldInfo: UnfoldInfo = {\n ...unfoldInfoList[0],\n colorItems: unfoldInfoList.flatMap((d) => d.colorItems),\n colorIdMap: unfoldInfoList.reduce((prev, cur) => ({ ...prev, ...cur.colorIdMap }), {}),\n }\n\n return {\n ...result,\n dataset: datasets,\n datasetReshapeInfo: [\n {\n id: String(chartType),\n index: 0,\n foldInfo: foldInfoList[0],\n foldInfoList: foldInfoList,\n unfoldInfo: unfoldInfo,\n },\n ],\n }\n}\n"],"names":["reshapeWithDualEncoding","advancedVSeed","context","result","vseed","dataset","encoding","chartType","measures","dimensions","foldInfoList","unfoldInfoList","datasets","primaryMeasures","m","secondaryMeasures","primaryChartTypes","unique","secondaryChartTypes","DEFAULT_DUAL_CHART_TYPE","primaryResult","dataReshapeByEncoding","uniqueBy","item","FoldPrimaryMeasureValue","getColorMeasureId","secondaryResult","FoldSecondaryMeasureValue","unfoldInfo","d","prev","cur","String"],"mappings":";;;;
|
|
1
|
+
{"version":3,"file":"pipeline/advanced/chart/pipes/reshape/reshapeWithDualEncoding.js","sources":["webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/reshape/reshapeWithDualEncoding.ts"],"sourcesContent":["import { uniqueBy, unique } from 'remeda'\nimport { dataReshapeByEncoding, DimAxisType, FoldPrimaryMeasureValue, FoldSecondaryMeasureValue } from 'src/dataReshape'\nimport { getColorMeasureId } from 'src/pipeline/spec/chart/pipes'\nimport { DEFAULT_DUAL_CHART_TYPE } from 'src/pipeline/utils/chatType'\nimport type {\n AdvancedPipe,\n AdvancedVSeed,\n ColumnParallel,\n Dataset,\n Datum,\n Dimension,\n DualAxisMeasure,\n Encoding,\n FoldInfo,\n Measure,\n UnfoldInfo,\n} from 'src/types'\n\nexport const reshapeWithDualEncoding: AdvancedPipe = (advancedVSeed, context) => {\n const result = { ...advancedVSeed }\n const { vseed } = context\n const { dataset } = vseed as ColumnParallel\n const { encoding, chartType } = advancedVSeed\n const measures = (advancedVSeed.reshapeMeasures?.[0] ?? []) as Measure[]\n const dimensions = advancedVSeed.reshapeDimensions ?? advancedVSeed.dimensions ?? []\n\n const foldInfoList: FoldInfo[] = []\n const unfoldInfoList: UnfoldInfo[] = []\n\n const datasets: Dataset[] = []\n const primaryMeasures = measures.filter((m) => m.encoding === 'primaryYAxis')\n const secondaryMeasures = measures.filter((m) => m.encoding === 'secondaryYAxis')\n const primaryChartTypes: string[] = unique(primaryMeasures.map((m) => (m as DualAxisMeasure).chartType!))\n const secondaryChartTypes: string[] = unique(secondaryMeasures.map((m) => (m as DualAxisMeasure).chartType!))\n\n if (!primaryChartTypes.length) {\n primaryChartTypes.push(DEFAULT_DUAL_CHART_TYPE.primary)\n }\n\n if (!secondaryChartTypes.length) {\n secondaryChartTypes.push(DEFAULT_DUAL_CHART_TYPE.secondary)\n }\n\n primaryChartTypes.forEach((chartType) => {\n const primaryResult = dataReshapeByEncoding(\n dataset,\n uniqueBy(dimensions, (item: Dimension) => item.id),\n uniqueBy(\n primaryMeasures.filter((m) => (m as DualAxisMeasure).chartType! === chartType),\n (item: Measure) => item.id,\n ),\n encoding as Encoding,\n {\n colorItemAsId: false,\n foldMeasureValue: FoldPrimaryMeasureValue,\n colorMeasureId: getColorMeasureId(advancedVSeed as AdvancedVSeed, vseed),\n },\n )\n\n primaryResult.dataset.forEach((row: Datum) => {\n row[DimAxisType] = 'primaryYAxis'\n })\n\n datasets.push(primaryResult.dataset)\n foldInfoList.push(primaryResult.foldInfo)\n unfoldInfoList.push(primaryResult.unfoldInfo)\n })\n\n secondaryChartTypes.forEach((chartType) => {\n const secondaryResult = dataReshapeByEncoding(\n dataset,\n uniqueBy(dimensions, (item: Dimension) => item.id),\n uniqueBy(\n secondaryMeasures.filter((m) => (m as DualAxisMeasure).chartType! === chartType),\n (item: Measure) => item.id,\n ),\n encoding as Encoding,\n {\n colorItemAsId: false,\n foldMeasureValue: FoldSecondaryMeasureValue,\n colorMeasureId: getColorMeasureId(advancedVSeed as AdvancedVSeed, vseed),\n },\n )\n\n secondaryResult.dataset.forEach((row: Datum) => {\n row[DimAxisType] = 'secondaryYAxis'\n })\n\n datasets.push(secondaryResult.dataset)\n foldInfoList.push(secondaryResult.foldInfo)\n unfoldInfoList.push(secondaryResult.unfoldInfo)\n })\n\n const unfoldInfo: UnfoldInfo = {\n ...unfoldInfoList[0],\n colorItems: unfoldInfoList.flatMap((d) => d.colorItems),\n colorIdMap: unfoldInfoList.reduce((prev, cur) => ({ ...prev, ...cur.colorIdMap }), {}),\n }\n\n return {\n ...result,\n dataset: datasets,\n datasetReshapeInfo: [\n {\n id: String(chartType),\n index: 0,\n foldInfo: foldInfoList[0],\n foldInfoList: foldInfoList,\n unfoldInfo: unfoldInfo,\n },\n ],\n }\n}\n"],"names":["reshapeWithDualEncoding","advancedVSeed","context","result","vseed","dataset","encoding","chartType","measures","dimensions","foldInfoList","unfoldInfoList","datasets","primaryMeasures","m","secondaryMeasures","primaryChartTypes","unique","secondaryChartTypes","DEFAULT_DUAL_CHART_TYPE","primaryResult","dataReshapeByEncoding","uniqueBy","item","FoldPrimaryMeasureValue","getColorMeasureId","row","DimAxisType","secondaryResult","FoldSecondaryMeasureValue","unfoldInfo","d","prev","cur","String"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { annotationAreaBand, annotationHorizontalLine, annotationPointOfDualAxis, annotationVerticalLine, areaStyle, areaStyleFilter, backgroundColor, barGapInGroup, barMaxWidth, barStyle, barStyleFilter, color, colorAdapter, colorAreaStyleFill, colorBarStyleFill, colorLegend, colorLineStyleFill, colorPointStyleFill, datasetDualAxis, datasetPivot, dimensionLinkage, discreteLegend, dualChartType, initDualAxis, initPivot, labelDualAxis, lineStyle, lineStyleFilter, linearColor, linearColorForDualAxis, pivotAdapter, pivotAxisStyle, pivotColorLegend, pivotColumnDimensions, pivotDiscreteLegend, pivotGridStyle, pivotIndicators, pivotIndicatorsAsRow, pivotRowDimensions, pivotTitle, pointStateDimensionHover, pointStyle, pointStyleFilter, progressive, series, seriesDualAxis, stackCornerRadius, tooltipDualAxis, tooltipOfDualAxisSeries, verticalCrosshairRect, xBand, yLinearPrimary, yLinearSecondary } from "../pipes/index.js";
|
|
1
|
+
import { adjustXField, annotationAreaBand, annotationHorizontalLine, annotationPointOfDualAxis, annotationVerticalLine, areaStyle, areaStyleFilter, backgroundColor, barGapInGroup, barMaxWidth, barStyle, barStyleFilter, color, colorAdapter, colorAreaStyleFill, colorBarStyleFill, colorLegend, colorLineStyleFill, colorPointStyleFill, datasetDualAxis, datasetPivot, dimensionLinkage, discreteLegend, dualChartType, initDualAxis, initPivot, labelDualAxis, lineStyle, lineStyleFilter, linearColor, linearColorForDualAxis, pivotAdapter, pivotAxisStyle, pivotColorLegend, pivotColumnDimensions, pivotDiscreteLegend, pivotGridStyle, pivotIndicators, pivotIndicatorsAsRow, pivotRowDimensions, pivotTitle, pointStateDimensionHover, pointStyle, pointStyleFilter, progressive, series, seriesDualAxis, stackCornerRadius, tooltipDualAxis, tooltipOfDualAxisSeries, verticalCrosshairRect, xBand, yLinearPrimary, yLinearSecondary } from "../pipes/index.js";
|
|
2
2
|
const dualAxis = [
|
|
3
3
|
seriesDualAxis([
|
|
4
4
|
initDualAxis,
|
|
@@ -17,6 +17,7 @@ const dualAxis = [
|
|
|
17
17
|
lineStyleFilter(colorLineStyleFill(lineStyle)),
|
|
18
18
|
areaStyleFilter(colorAreaStyleFill(areaStyle))
|
|
19
19
|
]),
|
|
20
|
+
adjustXField,
|
|
20
21
|
xBand,
|
|
21
22
|
yLinearPrimary,
|
|
22
23
|
yLinearSecondary,
|
|
@@ -53,6 +54,7 @@ const pivotDualAxis = [
|
|
|
53
54
|
lineStyleFilter(colorLineStyleFill(lineStyle)),
|
|
54
55
|
areaStyleFilter(colorAreaStyleFill(areaStyle))
|
|
55
56
|
]),
|
|
57
|
+
adjustXField,
|
|
56
58
|
xBand,
|
|
57
59
|
yLinearPrimary,
|
|
58
60
|
pivotAxisStyle(yLinearSecondary),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline/spec/chart/pipeline/dualAxis.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/chart/pipeline/dualAxis.ts"],"sourcesContent":["import type { PivotChartSpecPipeline, VChartSpecPipeline } from 'src/types'\nimport {\n xBand,\n backgroundColor,\n discreteLegend,\n color,\n initPivot,\n datasetPivot,\n pivotDiscreteLegend,\n pivotIndicators,\n pivotAdapter,\n pivotIndicatorsAsRow,\n pivotGridStyle,\n pivotColumnDimensions,\n pivotRowDimensions,\n annotationVerticalLine,\n annotationHorizontalLine,\n pointStyle,\n lineStyle,\n pointStateDimensionHover,\n progressive,\n areaStyle,\n barStyle,\n verticalCrosshairRect,\n yLinearSecondary,\n yLinearPrimary,\n seriesDualAxis,\n series,\n colorBarStyleFill,\n colorPointStyleFill,\n colorLineStyleFill,\n colorAreaStyleFill,\n linearColor,\n colorAdapter,\n colorLegend,\n pivotColorLegend,\n linearColorForDualAxis,\n annotationAreaBand,\n barMaxWidth,\n barGapInGroup,\n stackCornerRadius,\n pivotTitle,\n pivotAxisStyle,\n dimensionLinkage,\n annotationPointOfDualAxis,\n barStyleFilter,\n pointStyleFilter,\n lineStyleFilter,\n areaStyleFilter,\n tooltipDualAxis,\n initDualAxis,\n dualChartType,\n datasetDualAxis,\n labelDualAxis,\n tooltipOfDualAxisSeries,\n} from '../pipes'\n\nconst dualAxis: VChartSpecPipeline = [\n seriesDualAxis(\n [initDualAxis, dualChartType, datasetDualAxis, labelDualAxis, tooltipOfDualAxisSeries],\n\n [\n progressive,\n\n barMaxWidth,\n barGapInGroup,\n stackCornerRadius,\n\n barStyleFilter(colorBarStyleFill(barStyle)),\n pointStyleFilter(colorPointStyleFill(pointStyle)),\n pointStyleFilter(pointStateDimensionHover),\n lineStyleFilter(colorLineStyleFill(lineStyle)),\n areaStyleFilter(colorAreaStyleFill(areaStyle)),\n ],\n ),\n xBand,\n yLinearPrimary,\n yLinearSecondary,\n\n colorAdapter(color, linearColorForDualAxis),\n colorAdapter(discreteLegend, colorLegend),\n\n backgroundColor,\n\n verticalCrosshairRect,\n annotationPointOfDualAxis,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationAreaBand,\n\n tooltipDualAxis,\n]\n\nconst pivotDualAxis: PivotChartSpecPipeline = [\n initPivot,\n pivotGridStyle,\n pivotIndicatorsAsRow,\n datasetPivot,\n pivotIndicators([\n series(\n [initDualAxis, dualChartType, datasetDualAxis, labelDualAxis, tooltipOfDualAxisSeries],\n\n [\n progressive,\n\n barMaxWidth,\n barGapInGroup,\n stackCornerRadius,\n\n barStyleFilter(colorBarStyleFill(barStyle)),\n pointStyleFilter(colorPointStyleFill(pointStyle)),\n pointStyleFilter(pointStateDimensionHover),\n lineStyleFilter(colorLineStyleFill(lineStyle)),\n areaStyleFilter(colorAreaStyleFill(areaStyle)),\n ],\n ),\n xBand,\n yLinearPrimary,\n pivotAxisStyle(yLinearSecondary),\n colorAdapter(color, linearColor),\n backgroundColor,\n verticalCrosshairRect,\n annotationPointOfDualAxis,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationAreaBand,\n\n tooltipDualAxis,\n ]),\n pivotRowDimensions,\n pivotColumnDimensions,\n pivotTitle,\n colorAdapter(pivotDiscreteLegend, pivotColorLegend),\n dimensionLinkage,\n]\n\nexport const dualAxisSpecPipeline = [pivotAdapter(dualAxis, pivotDualAxis)]\n"],"names":["dualAxis","seriesDualAxis","initDualAxis","dualChartType","datasetDualAxis","labelDualAxis","tooltipOfDualAxisSeries","progressive","barMaxWidth","barGapInGroup","stackCornerRadius","barStyleFilter","colorBarStyleFill","barStyle","pointStyleFilter","colorPointStyleFill","pointStyle","pointStateDimensionHover","lineStyleFilter","colorLineStyleFill","lineStyle","areaStyleFilter","colorAreaStyleFill","areaStyle","xBand","yLinearPrimary","yLinearSecondary","colorAdapter","color","linearColorForDualAxis","discreteLegend","colorLegend","backgroundColor","verticalCrosshairRect","annotationPointOfDualAxis","annotationVerticalLine","annotationHorizontalLine","annotationAreaBand","tooltipDualAxis","pivotDualAxis","initPivot","pivotGridStyle","pivotIndicatorsAsRow","datasetPivot","pivotIndicators","series","pivotAxisStyle","linearColor","pivotRowDimensions","pivotColumnDimensions","pivotTitle","pivotDiscreteLegend","pivotColorLegend","dimensionLinkage","dualAxisSpecPipeline","pivotAdapter"],"mappings":";
|
|
1
|
+
{"version":3,"file":"pipeline/spec/chart/pipeline/dualAxis.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/chart/pipeline/dualAxis.ts"],"sourcesContent":["import type { PivotChartSpecPipeline, VChartSpecPipeline } from 'src/types'\nimport {\n xBand,\n backgroundColor,\n discreteLegend,\n color,\n initPivot,\n datasetPivot,\n pivotDiscreteLegend,\n pivotIndicators,\n pivotAdapter,\n pivotIndicatorsAsRow,\n pivotGridStyle,\n pivotColumnDimensions,\n pivotRowDimensions,\n annotationVerticalLine,\n annotationHorizontalLine,\n pointStyle,\n lineStyle,\n pointStateDimensionHover,\n progressive,\n areaStyle,\n barStyle,\n verticalCrosshairRect,\n yLinearSecondary,\n yLinearPrimary,\n seriesDualAxis,\n series,\n colorBarStyleFill,\n colorPointStyleFill,\n colorLineStyleFill,\n colorAreaStyleFill,\n linearColor,\n colorAdapter,\n colorLegend,\n pivotColorLegend,\n linearColorForDualAxis,\n annotationAreaBand,\n barMaxWidth,\n barGapInGroup,\n stackCornerRadius,\n pivotTitle,\n pivotAxisStyle,\n dimensionLinkage,\n annotationPointOfDualAxis,\n barStyleFilter,\n pointStyleFilter,\n lineStyleFilter,\n areaStyleFilter,\n tooltipDualAxis,\n initDualAxis,\n dualChartType,\n datasetDualAxis,\n labelDualAxis,\n tooltipOfDualAxisSeries,\n adjustXField,\n} from '../pipes'\n\nconst dualAxis: VChartSpecPipeline = [\n seriesDualAxis(\n [initDualAxis, dualChartType, datasetDualAxis, labelDualAxis, tooltipOfDualAxisSeries],\n\n [\n progressive,\n\n barMaxWidth,\n barGapInGroup,\n stackCornerRadius,\n\n barStyleFilter(colorBarStyleFill(barStyle)),\n pointStyleFilter(colorPointStyleFill(pointStyle)),\n pointStyleFilter(pointStateDimensionHover),\n lineStyleFilter(colorLineStyleFill(lineStyle)),\n areaStyleFilter(colorAreaStyleFill(areaStyle)),\n ],\n ),\n adjustXField,\n xBand,\n yLinearPrimary,\n yLinearSecondary,\n\n colorAdapter(color, linearColorForDualAxis),\n colorAdapter(discreteLegend, colorLegend),\n\n backgroundColor,\n\n verticalCrosshairRect,\n annotationPointOfDualAxis,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationAreaBand,\n\n tooltipDualAxis,\n]\n\nconst pivotDualAxis: PivotChartSpecPipeline = [\n initPivot,\n pivotGridStyle,\n pivotIndicatorsAsRow,\n datasetPivot,\n pivotIndicators([\n series(\n [initDualAxis, dualChartType, datasetDualAxis, labelDualAxis, tooltipOfDualAxisSeries],\n\n [\n progressive,\n\n barMaxWidth,\n barGapInGroup,\n stackCornerRadius,\n\n barStyleFilter(colorBarStyleFill(barStyle)),\n pointStyleFilter(colorPointStyleFill(pointStyle)),\n pointStyleFilter(pointStateDimensionHover),\n lineStyleFilter(colorLineStyleFill(lineStyle)),\n areaStyleFilter(colorAreaStyleFill(areaStyle)),\n ],\n ),\n adjustXField,\n xBand,\n yLinearPrimary,\n pivotAxisStyle(yLinearSecondary),\n colorAdapter(color, linearColor),\n backgroundColor,\n verticalCrosshairRect,\n annotationPointOfDualAxis,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationAreaBand,\n\n tooltipDualAxis,\n ]),\n pivotRowDimensions,\n pivotColumnDimensions,\n pivotTitle,\n colorAdapter(pivotDiscreteLegend, pivotColorLegend),\n dimensionLinkage,\n]\n\nexport const dualAxisSpecPipeline = [pivotAdapter(dualAxis, pivotDualAxis)]\n"],"names":["dualAxis","seriesDualAxis","initDualAxis","dualChartType","datasetDualAxis","labelDualAxis","tooltipOfDualAxisSeries","progressive","barMaxWidth","barGapInGroup","stackCornerRadius","barStyleFilter","colorBarStyleFill","barStyle","pointStyleFilter","colorPointStyleFill","pointStyle","pointStateDimensionHover","lineStyleFilter","colorLineStyleFill","lineStyle","areaStyleFilter","colorAreaStyleFill","areaStyle","adjustXField","xBand","yLinearPrimary","yLinearSecondary","colorAdapter","color","linearColorForDualAxis","discreteLegend","colorLegend","backgroundColor","verticalCrosshairRect","annotationPointOfDualAxis","annotationVerticalLine","annotationHorizontalLine","annotationAreaBand","tooltipDualAxis","pivotDualAxis","initPivot","pivotGridStyle","pivotIndicatorsAsRow","datasetPivot","pivotIndicators","series","pivotAxisStyle","linearColor","pivotRowDimensions","pivotColumnDimensions","pivotTitle","pivotDiscreteLegend","pivotColorLegend","dimensionLinkage","dualAxisSpecPipeline","pivotAdapter"],"mappings":";AA0DA,MAAMA,WAA+B;IACnCC,eACE;QAACC;QAAcC;QAAeC;QAAiBC;QAAeC;KAAwB,EAEtF;QACEC;QAEAC;QACAC;QACAC;QAEAC,eAAeC,kBAAkBC;QACjCC,iBAAiBC,oBAAoBC;QACrCF,iBAAiBG;QACjBC,gBAAgBC,mBAAmBC;QACnCC,gBAAgBC,mBAAmBC;KACpC;IAEHC;IACAC;IACAC;IACAC;IAEAC,aAAaC,OAAOC;IACpBF,aAAaG,gBAAgBC;IAE7BC;IAEAC;IACAC;IACAC;IACAC;IACAC;IAEAC;CACD;AAED,MAAMC,gBAAwC;IAC5CC;IACAC;IACAC;IACAC;IACAC,gBAAgB;QACdC,OACE;YAAC5C;YAAcC;YAAeC;YAAiBC;YAAeC;SAAwB,EAEtF;YACEC;YAEAC;YACAC;YACAC;YAEAC,eAAeC,kBAAkBC;YACjCC,iBAAiBC,oBAAoBC;YACrCF,iBAAiBG;YACjBC,gBAAgBC,mBAAmBC;YACnCC,gBAAgBC,mBAAmBC;SACpC;QAEHC;QACAC;QACAC;QACAqB,eAAepB;QACfC,aAAaC,OAAOmB;QACpBf;QACAC;QACAC;QACAC;QACAC;QACAC;QAEAC;KACD;IACDU;IACAC;IACAC;IACAvB,aAAawB,qBAAqBC;IAClCC;CACD;AAEM,MAAMC,uBAAuB;IAACC,aAAaxD,UAAUwC;CAAe"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { defaultTitleText } from "./title/defaultTitleText.js";
|
|
2
2
|
import { MeasureId } from "../../../../../dataReshape/index.js";
|
|
3
|
-
import { isArray,
|
|
3
|
+
import { isArray, isNil } from "@visactor/vutils";
|
|
4
4
|
import { bandAxisStyle } from "./bandAxisStyle.js";
|
|
5
5
|
const xBand = (spec, context)=>{
|
|
6
6
|
const result = {
|
|
@@ -24,7 +24,7 @@ const xBand = (spec, context)=>{
|
|
|
24
24
|
0.075,
|
|
25
25
|
0.1
|
|
26
26
|
];
|
|
27
|
-
if (
|
|
27
|
+
if (isNil(bandAxis.title?.text)) bandAxis.title.text = defaultTitleText(measures, dimensions, encoding.x);
|
|
28
28
|
if (onlyMeasureId && bandAxis.label) {
|
|
29
29
|
const allDatasetReshapeInfo = pivotAllDatasetReshapeInfo || datasetReshapeInfo;
|
|
30
30
|
const colorIdMap = allDatasetReshapeInfo.reduce((prev, cur)=>({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline/spec/chart/pipes/axes/xBand.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/axes/xBand.ts"],"sourcesContent":["import type { ISpec } from '@visactor/vchart'\nimport type { VChartSpecPipe, XBandAxis } from 'src/types'\nimport { defaultTitleText } from './title/defaultTitleText'\nimport { MeasureId } from 'src/dataReshape'\nimport { isArray,
|
|
1
|
+
{"version":3,"file":"pipeline/spec/chart/pipes/axes/xBand.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/axes/xBand.ts"],"sourcesContent":["import type { ISpec } from '@visactor/vchart'\nimport type { VChartSpecPipe, XBandAxis } from 'src/types'\nimport { defaultTitleText } from './title/defaultTitleText'\nimport { MeasureId } from 'src/dataReshape'\nimport { isArray, isNil } from '@visactor/vutils'\nimport { bandAxisStyle } from './bandAxisStyle'\n\nexport const xBand: VChartSpecPipe = (spec, context) => {\n const result = { ...spec } as ISpec\n const { advancedVSeed, vseed } = context\n const { chartType } = vseed\n const { measures = [], dimensions = [], encoding, datasetReshapeInfo, pivotAllDatasetReshapeInfo } = advancedVSeed\n const config = (advancedVSeed.config?.[chartType as 'column']?.xAxis ?? {}) as XBandAxis\n\n if (!result.axes) {\n result.axes = []\n }\n\n const { labelAutoLimitLength = 80 } = config\n\n const onlyMeasureId = (encoding.x || []).filter((v) => v !== MeasureId).length === 0\n const bandAxis = bandAxisStyle(config)\n\n bandAxis.orient = 'bottom'\n bandAxis.maxHeight = labelAutoLimitLength + 60\n bandAxis.paddingInner = [0.15, 0.1]\n bandAxis.paddingOuter = [0.075, 0.1]\n\n if (isNil(bandAxis.title?.text)) {\n bandAxis.title!.text = defaultTitleText(measures, dimensions, encoding.x as string[])\n }\n\n if (onlyMeasureId && bandAxis.label) {\n const allDatasetReshapeInfo = pivotAllDatasetReshapeInfo || datasetReshapeInfo\n const colorIdMap = allDatasetReshapeInfo.reduce<Record<string, { id: string; alias: string }>>((prev, cur) => {\n return { ...prev, ...cur.unfoldInfo.colorIdMap }\n }, {})\n\n bandAxis.label.formatMethod = (text: string | string[]) => {\n return isArray(text) ? text : (colorIdMap[String(text)]?.alias ?? text)\n }\n }\n\n result.axes = [...result.axes, bandAxis] as ISpec['axes']\n return result\n}\n"],"names":["xBand","spec","context","result","advancedVSeed","vseed","chartType","measures","dimensions","encoding","datasetReshapeInfo","pivotAllDatasetReshapeInfo","config","labelAutoLimitLength","onlyMeasureId","v","MeasureId","bandAxis","bandAxisStyle","isNil","defaultTitleText","allDatasetReshapeInfo","colorIdMap","prev","cur","text","isArray","String"],"mappings":";;;;AAOO,MAAMA,QAAwB,CAACC,MAAMC;IAC1C,MAAMC,SAAS;QAAE,GAAGF,IAAI;IAAC;IACzB,MAAM,EAAEG,aAAa,EAAEC,KAAK,EAAE,GAAGH;IACjC,MAAM,EAAEI,SAAS,EAAE,GAAGD;IACtB,MAAM,EAAEE,WAAW,EAAE,EAAEC,aAAa,EAAE,EAAEC,QAAQ,EAAEC,kBAAkB,EAAEC,0BAA0B,EAAE,GAAGP;IACrG,MAAMQ,SAAUR,cAAc,MAAM,EAAE,CAACE,UAAsB,EAAE,SAAS,CAAC;IAEzE,IAAI,CAACH,OAAO,IAAI,EACdA,OAAO,IAAI,GAAG,EAAE;IAGlB,MAAM,EAAEU,uBAAuB,EAAE,EAAE,GAAGD;IAEtC,MAAME,gBAAiBL,AAA4D,MAA5DA,AAAAA,CAAAA,SAAS,CAAC,IAAI,EAAC,EAAG,MAAM,CAAC,CAACM,IAAMA,MAAMC,WAAW,MAAM;IAC9E,MAAMC,WAAWC,cAAcN;IAE/BK,SAAS,MAAM,GAAG;IAClBA,SAAS,SAAS,GAAGJ,uBAAuB;IAC5CI,SAAS,YAAY,GAAG;QAAC;QAAM;KAAI;IACnCA,SAAS,YAAY,GAAG;QAAC;QAAO;KAAI;IAEpC,IAAIE,MAAMF,SAAS,KAAK,EAAE,OACxBA,SAAS,KAAK,CAAE,IAAI,GAAGG,iBAAiBb,UAAUC,YAAYC,SAAS,CAAC;IAG1E,IAAIK,iBAAiBG,SAAS,KAAK,EAAE;QACnC,MAAMI,wBAAwBV,8BAA8BD;QAC5D,MAAMY,aAAaD,sBAAsB,MAAM,CAAgD,CAACE,MAAMC,MAC7F;gBAAE,GAAGD,IAAI;gBAAE,GAAGC,IAAI,UAAU,CAAC,UAAU;YAAC,IAC9C,CAAC;QAEJP,SAAS,KAAK,CAAC,YAAY,GAAG,CAACQ,OACtBC,QAAQD,QAAQA,OAAQH,UAAU,CAACK,OAAOF,MAAM,EAAE,SAASA;IAEtE;IAEAtB,OAAO,IAAI,GAAG;WAAIA,OAAO,IAAI;QAAEc;KAAS;IACxC,OAAOd;AACT"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { defaultTitleText } from "./title/defaultTitleText.js";
|
|
2
2
|
import { MeasureId } from "../../../../../dataReshape/index.js";
|
|
3
|
-
import { isArray,
|
|
3
|
+
import { isArray, isNil } from "@visactor/vutils";
|
|
4
4
|
import { bandAxisStyle } from "./bandAxisStyle.js";
|
|
5
5
|
const yBand = (spec, context)=>{
|
|
6
6
|
const result = {
|
|
@@ -26,7 +26,7 @@ const yBand = (spec, context)=>{
|
|
|
26
26
|
0.075,
|
|
27
27
|
0.1
|
|
28
28
|
];
|
|
29
|
-
if (
|
|
29
|
+
if (isNil(bandAxis.title?.text)) bandAxis.title.text = defaultTitleText(measures, dimensions, encoding.y);
|
|
30
30
|
if (onlyMeasureId && bandAxis.label) {
|
|
31
31
|
const allDatasetReshapeInfo = pivotAllDatasetReshapeInfo || datasetReshapeInfo;
|
|
32
32
|
const colorIdMap = allDatasetReshapeInfo.reduce((prev, cur)=>({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline/spec/chart/pipes/axes/yBand.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/axes/yBand.ts"],"sourcesContent":["import type { ISpec } from '@visactor/vchart'\nimport type { VChartSpecPipe, XBandAxis } from 'src/types'\nimport { defaultTitleText } from './title/defaultTitleText'\nimport { MeasureId } from 'src/dataReshape'\nimport { isArray,
|
|
1
|
+
{"version":3,"file":"pipeline/spec/chart/pipes/axes/yBand.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/axes/yBand.ts"],"sourcesContent":["import type { ISpec } from '@visactor/vchart'\nimport type { VChartSpecPipe, XBandAxis } from 'src/types'\nimport { defaultTitleText } from './title/defaultTitleText'\nimport { MeasureId } from 'src/dataReshape'\nimport { isArray, isNil } from '@visactor/vutils'\nimport { bandAxisStyle } from './bandAxisStyle'\n\nexport const yBand: VChartSpecPipe = (spec, context) => {\n const result = { ...spec } as ISpec\n const { advancedVSeed, vseed } = context\n const { chartType } = vseed\n const { measures = [], dimensions = [], encoding, datasetReshapeInfo, pivotAllDatasetReshapeInfo } = advancedVSeed\n const config = (advancedVSeed.config?.[chartType as 'bar']?.yAxis ?? {}) as XBandAxis\n\n if (!result.axes) {\n result.axes = []\n }\n\n const { labelAutoLimitLength = 80 } = config\n\n const onlyMeasureId = (encoding.y || []).filter((v: string) => v !== MeasureId).length === 0\n\n const bandAxis = bandAxisStyle(config)\n\n bandAxis.type = 'band'\n bandAxis.orient = 'left'\n bandAxis.maxWidth = labelAutoLimitLength + 60\n if (bandAxis.label) {\n bandAxis.label.containerAlign = 'right'\n }\n bandAxis.paddingInner = [0.15, 0.1]\n bandAxis.paddingOuter = [0.075, 0.1]\n\n if (isNil(bandAxis.title?.text)) {\n bandAxis.title!.text = defaultTitleText(measures, dimensions, encoding.y as string[])\n }\n if (onlyMeasureId && bandAxis.label) {\n const allDatasetReshapeInfo = pivotAllDatasetReshapeInfo || datasetReshapeInfo\n const colorIdMap = allDatasetReshapeInfo.reduce<Record<string, { id: string; alias: string }>>((prev, cur) => {\n return { ...prev, ...cur.unfoldInfo.colorIdMap }\n }, {})\n\n bandAxis.label.formatMethod = (text: string | string[]) => {\n return isArray(text) ? text : (colorIdMap[String(text)]?.alias ?? text)\n }\n }\n\n result.axes = [...result.axes, bandAxis] as ISpec['axes']\n return result\n}\n"],"names":["yBand","spec","context","result","advancedVSeed","vseed","chartType","measures","dimensions","encoding","datasetReshapeInfo","pivotAllDatasetReshapeInfo","config","labelAutoLimitLength","onlyMeasureId","v","MeasureId","bandAxis","bandAxisStyle","isNil","defaultTitleText","allDatasetReshapeInfo","colorIdMap","prev","cur","text","isArray","String"],"mappings":";;;;AAOO,MAAMA,QAAwB,CAACC,MAAMC;IAC1C,MAAMC,SAAS;QAAE,GAAGF,IAAI;IAAC;IACzB,MAAM,EAAEG,aAAa,EAAEC,KAAK,EAAE,GAAGH;IACjC,MAAM,EAAEI,SAAS,EAAE,GAAGD;IACtB,MAAM,EAAEE,WAAW,EAAE,EAAEC,aAAa,EAAE,EAAEC,QAAQ,EAAEC,kBAAkB,EAAEC,0BAA0B,EAAE,GAAGP;IACrG,MAAMQ,SAAUR,cAAc,MAAM,EAAE,CAACE,UAAmB,EAAE,SAAS,CAAC;IAEtE,IAAI,CAACH,OAAO,IAAI,EACdA,OAAO,IAAI,GAAG,EAAE;IAGlB,MAAM,EAAEU,uBAAuB,EAAE,EAAE,GAAGD;IAEtC,MAAME,gBAAiBL,AAAoE,MAApEA,AAAAA,CAAAA,SAAS,CAAC,IAAI,EAAC,EAAG,MAAM,CAAC,CAACM,IAAcA,MAAMC,WAAW,MAAM;IAEtF,MAAMC,WAAWC,cAAcN;IAE/BK,SAAS,IAAI,GAAG;IAChBA,SAAS,MAAM,GAAG;IAClBA,SAAS,QAAQ,GAAGJ,uBAAuB;IAC3C,IAAII,SAAS,KAAK,EAChBA,SAAS,KAAK,CAAC,cAAc,GAAG;IAElCA,SAAS,YAAY,GAAG;QAAC;QAAM;KAAI;IACnCA,SAAS,YAAY,GAAG;QAAC;QAAO;KAAI;IAEpC,IAAIE,MAAMF,SAAS,KAAK,EAAE,OACxBA,SAAS,KAAK,CAAE,IAAI,GAAGG,iBAAiBb,UAAUC,YAAYC,SAAS,CAAC;IAE1E,IAAIK,iBAAiBG,SAAS,KAAK,EAAE;QACnC,MAAMI,wBAAwBV,8BAA8BD;QAC5D,MAAMY,aAAaD,sBAAsB,MAAM,CAAgD,CAACE,MAAMC,MAC7F;gBAAE,GAAGD,IAAI;gBAAE,GAAGC,IAAI,UAAU,CAAC,UAAU;YAAC,IAC9C,CAAC;QAEJP,SAAS,KAAK,CAAC,YAAY,GAAG,CAACQ,OACtBC,QAAQD,QAAQA,OAAQH,UAAU,CAACK,OAAOF,MAAM,EAAE,SAASA;IAEtE;IAEAtB,OAAO,IAAI,GAAG;WAAIA,OAAO,IAAI;QAAEc;KAAS;IACxC,OAAOd;AACT"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { DimAxisType } from "../../../../../dataReshape/constant.js";
|
|
2
|
+
const adjustXField = (spec)=>{
|
|
3
|
+
const result = {
|
|
4
|
+
...spec
|
|
5
|
+
};
|
|
6
|
+
const chartTypes = (spec.series ?? []).map((s)=>s.type);
|
|
7
|
+
if (chartTypes.length > 1 && chartTypes.filter((type)=>'bar' === type).length > 1) result.series.forEach((s)=>{
|
|
8
|
+
if ('bar' === s.type && !Array.isArray(s.xField)) s.xField = [
|
|
9
|
+
s.xField,
|
|
10
|
+
DimAxisType
|
|
11
|
+
];
|
|
12
|
+
});
|
|
13
|
+
return result;
|
|
14
|
+
};
|
|
15
|
+
export { adjustXField };
|
|
16
|
+
|
|
17
|
+
//# sourceMappingURL=adjustXField.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pipeline/spec/chart/pipes/dual/adjustXField.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/dual/adjustXField.ts"],"sourcesContent":["import type { ICommonChartSpec, IBarSeriesSpec } from '@visactor/vchart'\nimport { DimAxisType } from 'src/dataReshape/constant'\nimport type { VChartSpecPipe } from 'src/types'\n\nexport const adjustXField: VChartSpecPipe = (spec) => {\n const result = { ...spec } as ICommonChartSpec\n const chartTypes = (spec.series ?? []).map((s: any) => (s as IBarSeriesSpec).type)\n\n if (chartTypes.length > 1 && chartTypes.filter((type: string) => type === 'bar').length > 1) {\n result.series!.forEach((s: any) => {\n if (s.type === 'bar' && !Array.isArray((s as IBarSeriesSpec).xField)) {\n // 当左右轴都是柱图的时候,带堆积的柱图增加轴类型作为分组字段,来实现左右轴柱图平行展示的效果\n ;(s as IBarSeriesSpec).xField = [(s as IBarSeriesSpec).xField as string, DimAxisType]\n }\n })\n }\n\n return result\n}\n"],"names":["adjustXField","spec","result","chartTypes","s","type","Array","DimAxisType"],"mappings":";AAIO,MAAMA,eAA+B,CAACC;IAC3C,MAAMC,SAAS;QAAE,GAAGD,IAAI;IAAC;IACzB,MAAME,aAAcF,AAAAA,CAAAA,KAAK,MAAM,IAAI,EAAC,EAAG,GAAG,CAAC,CAACG,IAAYA,EAAqB,IAAI;IAEjF,IAAID,WAAW,MAAM,GAAG,KAAKA,WAAW,MAAM,CAAC,CAACE,OAAiBA,AAAS,UAATA,MAAgB,MAAM,GAAG,GACxFH,OAAO,MAAM,CAAE,OAAO,CAAC,CAACE;QACtB,IAAIA,AAAW,UAAXA,EAAE,IAAI,IAAc,CAACE,MAAM,OAAO,CAAEF,EAAqB,MAAM,GAE/DA,EAAqB,MAAM,GAAG;YAAEA,EAAqB,MAAM;YAAYG;SAAY;IAEzF;IAGF,OAAOL;AACT"}
|
|
@@ -6,6 +6,7 @@ function applyChartType(result, type, datasetReshapeInfo) {
|
|
|
6
6
|
break;
|
|
7
7
|
case 'column':
|
|
8
8
|
result.type = 'bar';
|
|
9
|
+
result.stack = true;
|
|
9
10
|
result.zIndex = DUAL_AXIS_CHART_COLUMN_Z_INDEX;
|
|
10
11
|
break;
|
|
11
12
|
case 'columnParallel':
|
|
@@ -45,11 +46,8 @@ const dualChartType = (options)=>(spec, context)=>{
|
|
|
45
46
|
zIndex: DUAL_AXIS_CHART_NON_COLUMN_Z_INDEX
|
|
46
47
|
};
|
|
47
48
|
const { advancedVSeed } = context;
|
|
48
|
-
const { datasetReshapeInfo
|
|
49
|
-
|
|
50
|
-
const chartTypes = reshapeMeasures[index].map((m)=>m.chartType);
|
|
51
|
-
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;
|
|
52
|
-
applyChartType(result, type, datasetReshapeInfo);
|
|
49
|
+
const { datasetReshapeInfo } = advancedVSeed;
|
|
50
|
+
applyChartType(result, options.chartType, datasetReshapeInfo);
|
|
53
51
|
return result;
|
|
54
52
|
};
|
|
55
53
|
export { dualChartType };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline/spec/chart/pipes/dual/dualChartType.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/dual/dualChartType.ts"],"sourcesContent":["import type { IBarSeriesSpec, ISeriesSpec } from '@visactor/vchart'\nimport { DUAL_AXIS_CHART_COLUMN_Z_INDEX, DUAL_AXIS_CHART_NON_COLUMN_Z_INDEX } from 'src/pipeline/utils/constant'\nimport type {
|
|
1
|
+
{"version":3,"file":"pipeline/spec/chart/pipes/dual/dualChartType.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/dual/dualChartType.ts"],"sourcesContent":["import type { IBarSeriesSpec, ISeriesSpec } from '@visactor/vchart'\nimport { DUAL_AXIS_CHART_COLUMN_Z_INDEX, DUAL_AXIS_CHART_NON_COLUMN_Z_INDEX } from 'src/pipeline/utils/constant'\nimport type { VChartSpecPipe } from 'src/types'\nimport type { DualAxisOptions } from 'src/types/properties'\n\n/**\n * 应用图表类型到 spec\n * @param result spec 结果对象\n * @param type 图表类型\n * @param datasetReshapeInfo 数据集重塑信息\n */\nfunction applyChartType(result: ISeriesSpec, type: string, datasetReshapeInfo: any): void {\n switch (type) {\n case 'line': {\n result.type = 'line'\n break\n }\n case 'column': {\n result.type = 'bar'\n result.stack = true\n result.zIndex = DUAL_AXIS_CHART_COLUMN_Z_INDEX\n break\n }\n case 'columnParallel': {\n const columnSpec = result as IBarSeriesSpec\n if (Array.isArray(columnSpec.xField)) {\n columnSpec.xField.push(datasetReshapeInfo[0].unfoldInfo.encodingDetail)\n } else if (columnSpec.xField) {\n columnSpec.xField = [columnSpec.xField, datasetReshapeInfo[0].unfoldInfo.encodingDetail]\n }\n columnSpec.type = 'bar'\n result.zIndex = DUAL_AXIS_CHART_COLUMN_Z_INDEX\n break\n }\n case 'columnPercent': {\n result.type = 'bar'\n result.percent = true\n result.zIndex = DUAL_AXIS_CHART_COLUMN_Z_INDEX\n break\n }\n case 'area': {\n result.type = 'area'\n break\n }\n case 'areaPercent': {\n result.type = 'area'\n result.percent = true\n break\n }\n case 'scatter': {\n result.type = 'scatter'\n break\n }\n default:\n result.type = type\n }\n}\n\nexport const dualChartType = (options: DualAxisOptions): VChartSpecPipe => {\n return (spec, context) => {\n const result = { ...spec, zIndex: DUAL_AXIS_CHART_NON_COLUMN_Z_INDEX } as ISeriesSpec\n const { advancedVSeed } = context\n const { datasetReshapeInfo } = advancedVSeed\n\n applyChartType(result, options.chartType, datasetReshapeInfo)\n\n return result\n }\n}\n"],"names":["applyChartType","result","type","datasetReshapeInfo","DUAL_AXIS_CHART_COLUMN_Z_INDEX","columnSpec","Array","dualChartType","options","spec","context","DUAL_AXIS_CHART_NON_COLUMN_Z_INDEX","advancedVSeed"],"mappings":";AAWA,SAASA,eAAeC,MAAmB,EAAEC,IAAY,EAAEC,kBAAuB;IAChF,OAAQD;QACN,KAAK;YACHD,OAAO,IAAI,GAAG;YACd;QAEF,KAAK;YACHA,OAAO,IAAI,GAAG;YACdA,OAAO,KAAK,GAAG;YACfA,OAAO,MAAM,GAAGG;YAChB;QAEF,KAAK;YAAkB;gBACrB,MAAMC,aAAaJ;gBACnB,IAAIK,MAAM,OAAO,CAACD,WAAW,MAAM,GACjCA,WAAW,MAAM,CAAC,IAAI,CAACF,kBAAkB,CAAC,EAAE,CAAC,UAAU,CAAC,cAAc;qBACjE,IAAIE,WAAW,MAAM,EAC1BA,WAAW,MAAM,GAAG;oBAACA,WAAW,MAAM;oBAAEF,kBAAkB,CAAC,EAAE,CAAC,UAAU,CAAC,cAAc;iBAAC;gBAE1FE,WAAW,IAAI,GAAG;gBAClBJ,OAAO,MAAM,GAAGG;gBAChB;YACF;QACA,KAAK;YACHH,OAAO,IAAI,GAAG;YACdA,OAAO,OAAO,GAAG;YACjBA,OAAO,MAAM,GAAGG;YAChB;QAEF,KAAK;YACHH,OAAO,IAAI,GAAG;YACd;QAEF,KAAK;YACHA,OAAO,IAAI,GAAG;YACdA,OAAO,OAAO,GAAG;YACjB;QAEF,KAAK;YACHA,OAAO,IAAI,GAAG;YACd;QAEF;YACEA,OAAO,IAAI,GAAGC;IAClB;AACF;AAEO,MAAMK,gBAAgB,CAACC,UACrB,CAACC,MAAMC;QACZ,MAAMT,SAAS;YAAE,GAAGQ,IAAI;YAAE,QAAQE;QAAmC;QACrE,MAAM,EAAEC,aAAa,EAAE,GAAGF;QAC1B,MAAM,EAAEP,kBAAkB,EAAE,GAAGS;QAE/BZ,eAAeC,QAAQO,QAAQ,SAAS,EAAEL;QAE1C,OAAOF;IACT"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline/spec/chart/pipes/legend/colorLegend.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/legend/colorLegend.ts"],"sourcesContent":["import { createFormatterByMeasure, findTreeNodesBy } from 'src/pipeline/utils'\nimport type { ColorLegend, Measure, VChartSpecPipe } from 'src/types'\n\nexport const colorLegend: VChartSpecPipe = (spec, context) => {\n const result = { ...spec }\n const { advancedVSeed } = context\n const { datasetReshapeInfo, chartType, measures = [] } = advancedVSeed\n const { unfoldInfo } = datasetReshapeInfo[0]\n const baseConfig = advancedVSeed.config[chartType] as { legend: ColorLegend }\n if (!baseConfig || !baseConfig.legend) {\n return result\n }\n\n const { legend } = baseConfig\n const {\n enable,\n position = 'bottom',\n labelFontColor,\n labelColor,\n labelFontSize = 12,\n labelFontWeight,\n railBackgroundColor,\n handlerBorderColor,\n } = legend || {}\n\n const orient = ['bottom', 'bottomLeft', 'bottomRight', 'bl', 'br'].includes(position)\n ? 'bottom'\n : ['top', 'topLeft', 'topRight', 'tl', 'tr'].includes(position)\n ? 'top'\n : ['left', 'leftTop', 'leftBottom', 'lt', 'lb'].includes(position)\n ? 'left'\n : 'right'\n\n const legendPosition = ['topLeft', 'bottomLeft', 'leftTop', 'rightTop', 'lt', 'rt', 'tl', 'bl'].includes(position)\n ? 'start'\n : ['topRight', 'bottomRight', 'leftBottom', 'rightBottom', 'lb', 'rb', 'rt', 'br'].includes(position)\n ? 'end'\n : 'middle'\n\n result.legends = {\n type: 'color',\n visible: enable,\n orient,\n position: legendPosition,\n padding: 0,\n field: unfoldInfo.encodingColor,\n maxWidth: '30%',\n handlerText: {\n visible: true,\n style: {\n fill: labelColor || labelFontColor,\n fontSize: labelFontSize,\n fontWeight: labelFontWeight,\n },\n },\n rail: {\n style: {\n fill: railBackgroundColor,\n },\n },\n handler: {\n style: {\n outerBorder: {\n stroke: handlerBorderColor,\n },\n },\n },\n }\n const colorMeasure = findTreeNodesBy<Measure>(measures, (m) => m.encoding === 'color')?.[0]\n if (colorMeasure) {\n const formatter = createFormatterByMeasure(colorMeasure)\n result.legends.handlerText!.formatter = formatter\n }\n return result\n}\n"],"names":["colorLegend","spec","context","result","advancedVSeed","datasetReshapeInfo","chartType","measures","unfoldInfo","baseConfig","legend","enable","position","labelFontColor","labelColor","labelFontSize","labelFontWeight","railBackgroundColor","handlerBorderColor","orient","legendPosition","colorMeasure","findTreeNodesBy","m","formatter","createFormatterByMeasure"],"mappings":";AAGO,MAAMA,cAA8B,CAACC,MAAMC;IAChD,MAAMC,SAAS;QAAE,GAAGF,IAAI;IAAC;IACzB,MAAM,EAAEG,aAAa,EAAE,GAAGF;IAC1B,MAAM,EAAEG,kBAAkB,EAAEC,SAAS,EAAEC,WAAW,EAAE,EAAE,GAAGH;IACzD,MAAM,EAAEI,UAAU,EAAE,GAAGH,kBAAkB,CAAC,EAAE;IAC5C,MAAMI,aAAaL,cAAc,MAAM,CAACE,UAAU;IAClD,IAAI,CAACG,cAAc,CAACA,WAAW,MAAM,EACnC,OAAON;IAGT,MAAM,EAAEO,MAAM,EAAE,GAAGD;IACnB,MAAM,EACJE,MAAM,EACNC,WAAW,QAAQ,EACnBC,cAAc,EACdC,UAAU,EACVC,gBAAgB,EAAE,EAClBC,eAAe,EACfC,mBAAmB,EACnBC,kBAAkB,EACnB,GAAGR,UAAU,CAAC;IAEf,MAAMS,SAAS;QAAC;QAAU;QAAc;QAAe;QAAM;KAAK,CAAC,QAAQ,CAACP,YACxE,WACA;QAAC;QAAO;QAAW;QAAY;QAAM;KAAK,CAAC,QAAQ,CAACA,YAClD,QACA;QAAC;QAAQ;QAAW;QAAc;QAAM;KAAK,CAAC,QAAQ,CAACA,YACrD,SACA;IAER,MAAMQ,iBAAiB;QAAC;QAAW;QAAc;QAAW;QAAY;QAAM;QAAM;QAAM;KAAK,CAAC,QAAQ,CAACR,YACrG,UACA;QAAC;QAAY;QAAe;QAAc;QAAe;QAAM;QAAM;QAAM;KAAK,CAAC,QAAQ,CAACA,YACxF,QACA;IAENT,OAAO,OAAO,GAAG;QACf,MAAM;QACN,SAASQ;QACTQ;QACA,UAAUC;QACV,SAAS;QACT,OAAOZ,WAAW,aAAa;QAC/B,UAAU;QACV,aAAa;YACX,SAAS;YACT,OAAO;gBACL,MAAMM,cAAcD;gBACpB,UAAUE;gBACV,YAAYC;YACd;QACF;QACA,MAAM;YACJ,OAAO;gBACL,MAAMC;YACR;QACF;QACA,SAAS;YACP,OAAO;gBACL,aAAa;oBACX,QAAQC;gBACV;YACF;QACF;IACF;IACA,MAAMG,eAAeC,gBAAyBf,UAAU,CAACgB,IAAMA,AAAe,YAAfA,EAAE,QAAQ,GAAe,CAAC,EAAE;IAC3F,IAAIF,cAAc;QAChB,MAAMG,YAAYC,yBAAyBJ;QAC3ClB,OAAO,OAAO,CAAC,WAAW,CAAE,SAAS,GAAGqB;
|
|
1
|
+
{"version":3,"file":"pipeline/spec/chart/pipes/legend/colorLegend.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/legend/colorLegend.ts"],"sourcesContent":["import { createFormatterByMeasure, findTreeNodesBy } from 'src/pipeline/utils'\nimport type { ColorLegend, Measure, VChartSpecPipe } from 'src/types'\n\nexport const colorLegend: VChartSpecPipe = (spec, context) => {\n const result = { ...spec }\n const { advancedVSeed } = context\n const { datasetReshapeInfo, chartType, measures = [] } = advancedVSeed\n const { unfoldInfo } = datasetReshapeInfo[0]\n const baseConfig = advancedVSeed.config[chartType] as { legend: ColorLegend }\n if (!baseConfig || !baseConfig.legend) {\n return result\n }\n\n const { legend } = baseConfig\n const {\n enable,\n position = 'bottom',\n labelFontColor,\n labelColor,\n labelFontSize = 12,\n labelFontWeight,\n railBackgroundColor,\n handlerBorderColor,\n } = legend || {}\n\n const orient = ['bottom', 'bottomLeft', 'bottomRight', 'bl', 'br'].includes(position)\n ? 'bottom'\n : ['top', 'topLeft', 'topRight', 'tl', 'tr'].includes(position)\n ? 'top'\n : ['left', 'leftTop', 'leftBottom', 'lt', 'lb'].includes(position)\n ? 'left'\n : 'right'\n\n const legendPosition = ['topLeft', 'bottomLeft', 'leftTop', 'rightTop', 'lt', 'rt', 'tl', 'bl'].includes(position)\n ? 'start'\n : ['topRight', 'bottomRight', 'leftBottom', 'rightBottom', 'lb', 'rb', 'rt', 'br'].includes(position)\n ? 'end'\n : 'middle'\n\n result.legends = {\n type: 'color',\n visible: enable,\n orient,\n position: legendPosition,\n padding: 0,\n field: unfoldInfo.encodingColor,\n maxWidth: '30%',\n handlerText: {\n visible: true,\n style: {\n fill: labelColor || labelFontColor,\n fontSize: labelFontSize,\n fontWeight: labelFontWeight,\n },\n },\n rail: {\n style: {\n fill: railBackgroundColor,\n },\n },\n handler: {\n style: {\n outerBorder: {\n stroke: handlerBorderColor,\n },\n },\n },\n }\n const colorMeasure = findTreeNodesBy<Measure>(measures, (m) => m.encoding === 'color')?.[0]\n if (colorMeasure) {\n const formatter = createFormatterByMeasure(colorMeasure)\n result.legends.handlerText!.formatter = formatter\n\n // TODO: 先注释掉图例标题,后续看需求是否需要恢复\n // result.legends.startText = {\n // visible: true,\n // text: colorMeasure.alias || colorMeasure.id,\n // space: 12,\n // textStyle: {\n // fill: labelColor || labelFontColor,\n // fontSize: labelFontSize,\n // fontWeight: labelFontWeight,\n // },\n // }\n }\n return result\n}\n"],"names":["colorLegend","spec","context","result","advancedVSeed","datasetReshapeInfo","chartType","measures","unfoldInfo","baseConfig","legend","enable","position","labelFontColor","labelColor","labelFontSize","labelFontWeight","railBackgroundColor","handlerBorderColor","orient","legendPosition","colorMeasure","findTreeNodesBy","m","formatter","createFormatterByMeasure"],"mappings":";AAGO,MAAMA,cAA8B,CAACC,MAAMC;IAChD,MAAMC,SAAS;QAAE,GAAGF,IAAI;IAAC;IACzB,MAAM,EAAEG,aAAa,EAAE,GAAGF;IAC1B,MAAM,EAAEG,kBAAkB,EAAEC,SAAS,EAAEC,WAAW,EAAE,EAAE,GAAGH;IACzD,MAAM,EAAEI,UAAU,EAAE,GAAGH,kBAAkB,CAAC,EAAE;IAC5C,MAAMI,aAAaL,cAAc,MAAM,CAACE,UAAU;IAClD,IAAI,CAACG,cAAc,CAACA,WAAW,MAAM,EACnC,OAAON;IAGT,MAAM,EAAEO,MAAM,EAAE,GAAGD;IACnB,MAAM,EACJE,MAAM,EACNC,WAAW,QAAQ,EACnBC,cAAc,EACdC,UAAU,EACVC,gBAAgB,EAAE,EAClBC,eAAe,EACfC,mBAAmB,EACnBC,kBAAkB,EACnB,GAAGR,UAAU,CAAC;IAEf,MAAMS,SAAS;QAAC;QAAU;QAAc;QAAe;QAAM;KAAK,CAAC,QAAQ,CAACP,YACxE,WACA;QAAC;QAAO;QAAW;QAAY;QAAM;KAAK,CAAC,QAAQ,CAACA,YAClD,QACA;QAAC;QAAQ;QAAW;QAAc;QAAM;KAAK,CAAC,QAAQ,CAACA,YACrD,SACA;IAER,MAAMQ,iBAAiB;QAAC;QAAW;QAAc;QAAW;QAAY;QAAM;QAAM;QAAM;KAAK,CAAC,QAAQ,CAACR,YACrG,UACA;QAAC;QAAY;QAAe;QAAc;QAAe;QAAM;QAAM;QAAM;KAAK,CAAC,QAAQ,CAACA,YACxF,QACA;IAENT,OAAO,OAAO,GAAG;QACf,MAAM;QACN,SAASQ;QACTQ;QACA,UAAUC;QACV,SAAS;QACT,OAAOZ,WAAW,aAAa;QAC/B,UAAU;QACV,aAAa;YACX,SAAS;YACT,OAAO;gBACL,MAAMM,cAAcD;gBACpB,UAAUE;gBACV,YAAYC;YACd;QACF;QACA,MAAM;YACJ,OAAO;gBACL,MAAMC;YACR;QACF;QACA,SAAS;YACP,OAAO;gBACL,aAAa;oBACX,QAAQC;gBACV;YACF;QACF;IACF;IACA,MAAMG,eAAeC,gBAAyBf,UAAU,CAACgB,IAAMA,AAAe,YAAfA,EAAE,QAAQ,GAAe,CAAC,EAAE;IAC3F,IAAIF,cAAc;QAChB,MAAMG,YAAYC,yBAAyBJ;QAC3ClB,OAAO,OAAO,CAAC,WAAW,CAAE,SAAS,GAAGqB;IAa1C;IACA,OAAOrB;AACT"}
|
|
@@ -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: (dimensions: Dimensions | undefined, measures: Measures | undefined, foldInfo: FoldInfo, unfoldInfo: UnfoldInfo) => {
|
|
3
|
+
export declare const createDimensionContent: (dimensions: Dimensions | undefined, measures: Measures | undefined, foldInfo: FoldInfo, unfoldInfo: UnfoldInfo, hasMultiMeasureGroup: boolean) => {
|
|
4
4
|
visible: boolean;
|
|
5
5
|
shapeType: string;
|
|
6
6
|
hasShape: boolean;
|
|
@@ -8,7 +8,7 @@ const tooltip_tooltip = (spec, context)=>{
|
|
|
8
8
|
...spec
|
|
9
9
|
};
|
|
10
10
|
const { advancedVSeed, vseed } = context;
|
|
11
|
-
const { measures = [], datasetReshapeInfo, chartType, dimensions = [], encoding } = advancedVSeed;
|
|
11
|
+
const { measures = [], datasetReshapeInfo, chartType, dimensions = [], encoding, reshapeMeasures = [] } = advancedVSeed;
|
|
12
12
|
const baseConfig = advancedVSeed.config[chartType];
|
|
13
13
|
const { tooltip = {
|
|
14
14
|
enable: true
|
|
@@ -28,13 +28,13 @@ const tooltip_tooltip = (spec, context)=>{
|
|
|
28
28
|
title: {
|
|
29
29
|
visible: true
|
|
30
30
|
},
|
|
31
|
-
content: createDimensionContent(dimensions, measures, foldInfo, unfoldInfo)
|
|
31
|
+
content: createDimensionContent(dimensions, measures, foldInfo, unfoldInfo, reshapeMeasures.length > 1)
|
|
32
32
|
},
|
|
33
33
|
updateElement: updateTooltipElement
|
|
34
34
|
};
|
|
35
35
|
return result;
|
|
36
36
|
};
|
|
37
|
-
const createDimensionContent = (dimensions = [], measures = [], foldInfo, unfoldInfo)=>{
|
|
37
|
+
const createDimensionContent = (dimensions = [], measures = [], foldInfo, unfoldInfo, hasMultiMeasureGroup)=>{
|
|
38
38
|
const { measureId, measureValue, foldMap } = foldInfo;
|
|
39
39
|
const { encodingColor } = unfoldInfo;
|
|
40
40
|
return [
|
|
@@ -45,7 +45,12 @@ const createDimensionContent = (dimensions = [], measures = [], foldInfo, unfold
|
|
|
45
45
|
key: dimensions.some((d)=>'color' === d.encoding) ? (v)=>{
|
|
46
46
|
const datum = v;
|
|
47
47
|
const key = datum && datum[encodingColor] || '';
|
|
48
|
-
|
|
48
|
+
const colorKey = `${unfoldInfo.colorIdMap[key].alias ?? key}`;
|
|
49
|
+
if (hasMultiMeasureGroup) {
|
|
50
|
+
const mId = datum && datum[measureId] || '';
|
|
51
|
+
return `${colorKey}-${foldMap[mId] ?? mId}`;
|
|
52
|
+
}
|
|
53
|
+
return colorKey;
|
|
49
54
|
} : (v)=>{
|
|
50
55
|
const datum = v;
|
|
51
56
|
const key = datum && datum[measureId] || '';
|
|
@@ -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 {
|
|
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(dimensions, measures, foldInfo, unfoldInfo, reshapeMeasures.length > 1),\n },\n\n updateElement: updateTooltipElement,\n }\n return result\n}\n\nexport const createDimensionContent = (\n dimensions: Dimensions = [],\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 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\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","d","v","datum","key","colorKey","mId","value","id","measure","findMeasureById","formatter","createFormatterByMeasure","dims","pipe","item","uniqueBy","meas","dimContent","meaContent","ORIGINAL_DATA","originalData","defaultContent","measureName","colorName","String"],"mappings":"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"}
|
|
@@ -110,7 +110,7 @@ const createMarkContent = (tooltip, dimensions, encoding)=>{
|
|
|
110
110
|
defaultContent
|
|
111
111
|
];
|
|
112
112
|
};
|
|
113
|
-
const createDimensionContent = (dimensions, measures, unfoldInfo, medianAlias)=>{
|
|
113
|
+
const createDimensionContent = (dimensions, measures, unfoldInfo, medianAlias, hasMultiMeasureGroup)=>{
|
|
114
114
|
const { encodingColor } = unfoldInfo;
|
|
115
115
|
return [
|
|
116
116
|
{
|
|
@@ -120,7 +120,13 @@ const createDimensionContent = (dimensions, measures, unfoldInfo, medianAlias)=>
|
|
|
120
120
|
key: dimensions.some((d)=>'color' === d.encoding) ? (v)=>{
|
|
121
121
|
const datum = v;
|
|
122
122
|
const key = datum && datum[encodingColor] || '';
|
|
123
|
-
|
|
123
|
+
const colorKey = `${unfoldInfo.colorIdMap[key].alias ?? key}(${medianAlias})`;
|
|
124
|
+
if (hasMultiMeasureGroup) {
|
|
125
|
+
const id = datum[MeasureId];
|
|
126
|
+
const measure = findMeasureById(measures, id);
|
|
127
|
+
return measure ? `${colorKey}-${measure.alias ?? id}` : colorKey;
|
|
128
|
+
}
|
|
129
|
+
return colorKey;
|
|
124
130
|
} : (v)=>{
|
|
125
131
|
const datum = v;
|
|
126
132
|
return `${datum[MeasureName] ?? datum[MeasureId]}(${medianAlias})`;
|