@visactor/vseed 0.0.7 → 0.0.8
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/builder/builder/builder.d.ts +5752 -0
- package/dist/dataReshape/index.d.ts +1 -0
- package/dist/index.cjs +979 -168
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +946 -168
- package/dist/index.js.map +1 -1
- package/dist/pipeline/advanced/pipes/config/config.d.ts +11 -0
- package/dist/pipeline/advanced/pipes/config/index.d.ts +1 -0
- package/dist/pipeline/advanced/pipes/index.d.ts +2 -1
- package/dist/types/advancedVSeed.d.ts +1438 -0
- package/dist/types/chartType/area/area.d.ts +11 -1
- package/dist/types/chartType/areaPercent/areaPercent.d.ts +11 -1
- package/dist/types/chartType/bar/bar.d.ts +11 -1
- package/dist/types/chartType/barParallel/barParallel.d.ts +11 -1
- package/dist/types/chartType/barPercent/barPercent.d.ts +11 -1
- package/dist/types/chartType/column/column.d.ts +11 -1
- package/dist/types/chartType/columnParallel/columnParallel.d.ts +11 -1
- package/dist/types/chartType/columnPercent/columnPercent.d.ts +11 -1
- package/dist/types/chartType/donut/donut.d.ts +1 -1
- package/dist/types/chartType/dualAxis/dualAxis.d.ts +1 -1
- package/dist/types/chartType/line/line.d.ts +11 -1
- package/dist/types/chartType/pie/pie.d.ts +4 -4
- package/dist/types/chartType/pivotTable/pivotTable.d.ts +1 -1
- package/dist/types/chartType/rose/rose.d.ts +4 -4
- package/dist/types/chartType/table/table.d.ts +1 -1
- package/dist/types/properties/chartType/index.d.ts +2 -2
- package/dist/types/properties/config/axis.d.ts +257 -0
- package/dist/types/properties/config/bandAxis.d.ts +82 -0
- package/dist/types/properties/config/config.d.ts +721 -0
- package/dist/types/properties/config/index.d.ts +4 -0
- package/dist/types/properties/config/linearAxis.d.ts +80 -0
- package/dist/types/properties/index.d.ts +1 -0
- package/dist/types/properties/theme/customTheme.d.ts +1438 -0
- package/package.json +1 -1
- package/dist/pipeline/advanced/pipeline/line copy.d.ts +0 -2
- package/dist/pipeline/advanced/pipes/encoding/encodingXY copy.d.ts +0 -2
- package/dist/pipeline/spec/pipes/init/line copy.d.ts +0 -2
- package/dist/pipeline/spec/pipes/pivotChart/pivotGridStyle copy.d.ts +0 -2
- package/dist/pipeline/spec/pipes/pivotChart/pivotRowDimensions copy.d.ts +0 -2
- /package/dist/types/properties/chartType/{zChartType.d.ts → chartType.d.ts} +0 -0
package/dist/index.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sources":["webpack://@visactor/vseed/./src/dataReshape/constant.ts","webpack://@visactor/vseed/./src/dataReshape/unfoldDimensions.ts","webpack://@visactor/vseed/./src/dataReshape/foldMeasures.ts","webpack://@visactor/vseed/./src/dataReshape/dataReshapeFor2D1M.ts","webpack://@visactor/vseed/./src/dataReshape/dataReshapeFor1D1M.ts","webpack://@visactor/vseed/./src/pipeline/advanced/pipes/reshape/reshapeTo2D1M.ts","webpack://@visactor/vseed/./src/pipeline/advanced/pipes/reshape/reshapeTo1D1M.ts","webpack://@visactor/vseed/./src/pipeline/advanced/pipes/reshape/pivotReshapeTo1D1M.ts","webpack://@visactor/vseed/./src/pipeline/advanced/pipes/reshape/pivotReshapeTo2D1M.ts","webpack://@visactor/vseed/./src/pipeline/advanced/pipes/encoding/encodingXY.ts","webpack://@visactor/vseed/./src/pipeline/advanced/pipes/encoding/encodingYX.ts","webpack://@visactor/vseed/./src/pipeline/advanced/pipes/encoding/encodingPolar.ts","webpack://@visactor/vseed/./src/pipeline/advanced/pipes/init/initAdvancedVSeed.ts","webpack://@visactor/vseed/./src/pipeline/utils/pipeline.ts","webpack://@visactor/vseed/./src/pipeline/utils/chatType.ts","webpack://@visactor/vseed/./src/pipeline/advanced/pipes/init/autoMeasures.ts","webpack://@visactor/vseed/./src/pipeline/advanced/pipes/init/autoDimensions.ts","webpack://@visactor/vseed/./src/pipeline/advanced/pipes/baseConfig/baseConfig.ts","webpack://@visactor/vseed/./src/pipeline/advanced/pipes/theme/theme.ts","webpack://@visactor/vseed/./src/pipeline/advanced/pipes/pivot/pivotAdapter.ts","webpack://@visactor/vseed/./src/pipeline/advanced/pipeline/line.ts","webpack://@visactor/vseed/./src/pipeline/advanced/pipeline/bar.ts","webpack://@visactor/vseed/./src/pipeline/advanced/pipeline/barParallel.ts","webpack://@visactor/vseed/./src/pipeline/advanced/pipeline/barPercent.ts","webpack://@visactor/vseed/./src/pipeline/advanced/pipeline/column.ts","webpack://@visactor/vseed/./src/pipeline/advanced/pipeline/columnParallel.ts","webpack://@visactor/vseed/./src/pipeline/advanced/pipeline/columnPercent.ts","webpack://@visactor/vseed/./src/pipeline/advanced/pipeline/area.ts","webpack://@visactor/vseed/./src/pipeline/advanced/pipeline/areaPercent.ts","webpack://@visactor/vseed/./src/pipeline/advanced/pipeline/pie.ts","webpack://@visactor/vseed/./src/pipeline/spec/pipes/dataset/dataset.ts","webpack://@visactor/vseed/./src/pipeline/spec/pipes/dataset/datasetPivot.ts","webpack://@visactor/vseed/./src/pipeline/spec/pipes/init/column.ts","webpack://@visactor/vseed/./src/pipeline/spec/pipes/init/bar.ts","webpack://@visactor/vseed/./src/pipeline/spec/pipes/init/barParallel.ts","webpack://@visactor/vseed/./src/pipeline/spec/pipes/init/area.ts","webpack://@visactor/vseed/./src/pipeline/spec/pipes/init/line.ts","webpack://@visactor/vseed/./src/pipeline/spec/pipes/init/columnParallel.ts","webpack://@visactor/vseed/./src/pipeline/spec/pipes/init/pie.ts","webpack://@visactor/vseed/./src/pipeline/spec/pipes/init/pivot.ts","webpack://@visactor/vseed/./src/pipeline/spec/pipes/axes/xBand.ts","webpack://@visactor/vseed/./src/pipeline/spec/pipes/axes/xLinear.ts","webpack://@visactor/vseed/./src/pipeline/spec/pipes/axes/yBand.ts","webpack://@visactor/vseed/./src/pipeline/spec/pipes/axes/yLinear.ts","webpack://@visactor/vseed/./src/pipeline/spec/pipes/percent/percent.ts","webpack://@visactor/vseed/./src/pipeline/spec/pipes/stack/stack.ts","webpack://@visactor/vseed/./src/pipeline/spec/pipes/backgroundColor/background.ts","webpack://@visactor/vseed/./src/pipeline/spec/pipes/tooltip/tooltip.ts","webpack://@visactor/vseed/./src/pipeline/spec/pipes/label/label.ts","webpack://@visactor/vseed/./src/pipeline/spec/pipes/legend/legend.ts","webpack://@visactor/vseed/./src/pipeline/spec/pipes/legend/pivotLegend.ts","webpack://@visactor/vseed/./src/pipeline/spec/pipes/color/color.ts","webpack://@visactor/vseed/./src/pipeline/spec/pipes/pivotChart/pivotAdapter.ts","webpack://@visactor/vseed/./src/pipeline/spec/pipes/pivotChart/pivotIndicators.ts","webpack://@visactor/vseed/./src/pipeline/spec/pipes/pivotChart/pivotGridStyle.ts","webpack://@visactor/vseed/./src/pipeline/spec/pipes/pivotChart/pivotColumnDimensions.ts","webpack://@visactor/vseed/./src/pipeline/spec/pipes/pivotChart/pivotRowDimensions.ts","webpack://@visactor/vseed/./src/pipeline/spec/pipeline/line.ts","webpack://@visactor/vseed/./src/pipeline/spec/pipeline/column.ts","webpack://@visactor/vseed/./src/pipeline/spec/pipeline/columnParallel.ts","webpack://@visactor/vseed/./src/pipeline/spec/pipeline/columnPercent.ts","webpack://@visactor/vseed/./src/pipeline/spec/pipeline/bar.ts","webpack://@visactor/vseed/./src/pipeline/spec/pipeline/barParallel.ts","webpack://@visactor/vseed/./src/pipeline/spec/pipeline/barPercent.ts","webpack://@visactor/vseed/./src/pipeline/spec/pipeline/area.ts","webpack://@visactor/vseed/./src/pipeline/spec/pipeline/areaPercent.ts","webpack://@visactor/vseed/./src/pipeline/spec/pipeline/pie.ts","webpack://@visactor/vseed/./src/builder/builder/buildAdvanced.ts","webpack://@visactor/vseed/./src/builder/builder/buildSpec.ts","webpack://@visactor/vseed/./src/builder/builder/build.ts","webpack://@visactor/vseed/./src/builder/builder/builder.ts","webpack://@visactor/vseed/./src/builder/register/chartType.ts","webpack://@visactor/vseed/./src/theme/dark.ts","webpack://@visactor/vseed/./src/theme/light.ts","webpack://@visactor/vseed/./src/builder/register/theme.ts","webpack://@visactor/vseed/./src/builder/register/all.ts","webpack://@visactor/vseed/./src/types/properties/chartType/zChartType.ts","webpack://@visactor/vseed/./src/types/properties/dataset/dataset.ts","webpack://@visactor/vseed/./src/types/properties/dimensions/dimensions.ts","webpack://@visactor/vseed/./src/types/properties/measures/measures.ts","webpack://@visactor/vseed/./src/types/properties/datasetReshapeInfo/datasetReshapeInfo.ts","webpack://@visactor/vseed/./src/types/properties/encoding/encoding.ts","webpack://@visactor/vseed/./src/types/properties/baseConfig/backgroundColor.ts","webpack://@visactor/vseed/./src/types/properties/baseConfig/label.ts","webpack://@visactor/vseed/./src/types/properties/baseConfig/color.ts","webpack://@visactor/vseed/./src/types/properties/baseConfig/tooltip.ts","webpack://@visactor/vseed/./src/types/properties/baseConfig/legend.ts","webpack://@visactor/vseed/./src/types/properties/baseConfig/baseConfig.ts","webpack://@visactor/vseed/./src/types/properties/theme/customTheme.ts","webpack://@visactor/vseed/./src/types/properties/theme/theme.ts"],"sourcesContent":["// Reshape Measures\nexport const FoldMeasureName = '__MeaName__'\nexport const FoldMeasureValue = '__MeaValue__'\nexport const FoldMeasureId = '__MeaId__'\n\n// Reshape Dimensions\nexport const UnfoldDimensionGroup = '__DimGroup__'\n\nexport const Separator = '-'\n","import type { Dataset, Datum, Dimension, Measure } from 'src/types'\nimport type { UnfoldInfo } from 'src/types'\nimport { UnfoldDimensionGroup, Separator } from './constant'\nimport { unique } from 'remeda'\n\n/**\n * TODO: 优化展开维度的性能\n * 展开指定的维度\n * @description 第一步: 根据指定的维度, 将多个维度展开为N个指标(取决于维值去重后的数量), 随后合并成一个维度.\n */\nexport const unfoldDimensions = (\n dataset: Dataset,\n dimensions: Dimension[],\n measures: Measure[],\n unfoldStartIndex: number = 0,\n foldGroupName: string = UnfoldDimensionGroup,\n dimensionsSeparator: string = Separator,\n): {\n dataset: Dataset\n unfoldInfo: UnfoldInfo\n} => {\n if (unfoldStartIndex < 0 || unfoldStartIndex >= dimensions.length) {\n throw new Error('unfoldStartIndex is out of range')\n }\n\n const dimensionsToBeUnfolded = dimensions.slice(unfoldStartIndex)\n const unfoldInfo: UnfoldInfo = {\n groupName: foldGroupName,\n colorItems: [],\n }\n\n // 指标为空或维度为空, 则不检测\n if (dimensions.length === 0 || measures.length === 0) {\n return {\n dataset,\n unfoldInfo: {\n groupName: foldGroupName,\n colorItems: [],\n },\n }\n }\n\n const colorItems = []\n for (let i = 0; i < dataset.length; i++) {\n const datum = dataset[i]\n const colorItem = generateDimGroupName(dimensionsToBeUnfolded, datum, dimensionsSeparator)\n datum[foldGroupName] = colorItem\n colorItems.push(colorItem)\n }\n\n unfoldInfo.colorItems = unique(colorItems)\n return {\n dataset,\n unfoldInfo,\n }\n}\n\n/**\n * 生成维度组合名称\n * @param dimensionsToBeGrouped 待分组的维度\n * @param datum 数据项\n * @param dimensionsSeparator 维度分隔符\n * @returns 维度组合名称\n */\nexport const generateDimGroupName = (dimensionsToBeGrouped: Dimension[], datum: Datum, dimensionsSeparator: string) => {\n return dimensionsToBeGrouped.map((dim) => String(datum[dim.id])).join(dimensionsSeparator)\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport type { Dataset, FoldInfo, Measure, Measures } from 'src/types'\nimport { FoldMeasureId, FoldMeasureName, FoldMeasureValue } from './constant'\n\n/**\n * 折叠指定的指标\n * @description 合并指定的指标为1个, 无论多少个, 都能转换为1个, 取名为fold, 意为折叠后混合在一起.\n */\nexport const foldMeasures = (\n dataset: Dataset,\n measures: Measure[],\n measureId = FoldMeasureId,\n measureName = FoldMeasureName,\n measureValue = FoldMeasureValue,\n): {\n dataset: Dataset\n foldInfo: FoldInfo\n} => {\n const foldInfo: FoldInfo = {\n measureId,\n measureName,\n measureValue,\n foldMap: {},\n }\n const result: Dataset = new Array(dataset.length * measures.length) as Dataset\n let index = 0\n for (let i = 0; i < dataset.length; i++) {\n for (let j = 0; j < measures.length; j++) {\n const datum: Record<string, any> = { ...dataset[i] }\n\n const measure = measures[j]\n const { id, alias } = measure\n datum[measureId] = id\n datum[measureName] = alias\n datum[measureValue] = dataset[i][id] as unknown\n\n foldInfo.foldMap[id] = alias\n result[index++] = datum\n }\n }\n\n return {\n dataset: result,\n foldInfo,\n }\n}\n\n/**\n * 折叠指定的指标组, 至多支持2层\n * @param dataset\n * @param measures\n * @param measureId\n * @param measureName\n * @param measureValue\n * @returns\n */\nexport const foldMeasureGroups = (\n dataset: Dataset,\n measures: Required<Measures>,\n measureId = '__MeaId__',\n measureName = '__MeaName__',\n measureValue = '__MeaValue__',\n) => {\n const groups: Array<Measures> = []\n if (!measures) {\n return {\n dataset,\n }\n }\n\n // 没有分组, 直接折叠所有指标\n if (!measures.some((measure) => 'children' in measure)) {\n return foldMeasures(dataset, measures, measureId, measureName, measureValue)\n }\n\n measures.forEach((measure) => {\n if ('children' in measure && measure.children) {\n groups.push(measure.children)\n } else {\n groups.push([measure])\n }\n })\n\n // 一组返回一个dataset\n const datasetGroup = groups.map((measures) => {\n if (!measures) {\n return []\n }\n return foldMeasures(dataset, measures, measureId, measureName, measureValue)\n })\n\n return {\n datasetGroup,\n }\n}\n","import type { Dataset, Dimension, FoldInfo, Measure, UnfoldInfo } from 'src/types'\nimport { foldMeasures } from './foldMeasures'\nimport { UnfoldDimensionGroup, FoldMeasureId, FoldMeasureName, FoldMeasureValue } from './constant'\nimport { unfoldDimensions } from './unfoldDimensions'\n\nconst emptyReshapeResult: {\n dataset: Dataset\n foldInfo: FoldInfo\n unfoldInfo: UnfoldInfo\n} = {\n dataset: [],\n foldInfo: {\n foldMap: {},\n measureId: '',\n measureName: '',\n measureValue: '',\n },\n unfoldInfo: {\n colorItems: [],\n groupName: '',\n },\n}\n/**\n * 数据重塑为2个维度1个指标\n * @param dataset\n * @param dimensions\n * @param measures\n * @returns\n */\nexport const dataReshapeFor2D1M = (\n dataset: Dataset,\n dimensions: Dimension[],\n measures: Measure[],\n options?: {\n foldMeasureId?: string\n foldMeasureName?: string\n foldMeasureValue?: string\n unfoldDimensionGroup?: string\n },\n): {\n dataset: Dataset\n foldInfo: FoldInfo\n unfoldInfo: UnfoldInfo\n} => {\n const {\n foldMeasureId = FoldMeasureId,\n foldMeasureName = FoldMeasureName,\n foldMeasureValue = FoldMeasureValue,\n unfoldDimensionGroup = UnfoldDimensionGroup,\n } = options || {}\n if (dimensions.length === 0 && measures.length === 0) {\n return emptyReshapeResult\n }\n\n // 合并所有指标为1个指标\n const { dataset: foldedDataset, foldInfo } = foldMeasures(\n dataset,\n measures,\n foldMeasureId,\n foldMeasureName,\n foldMeasureValue,\n )\n\n if (dimensions.length === 0) {\n const { dataset: finalDataset, unfoldInfo } = unfoldDimensions(\n foldedDataset,\n [\n { id: foldMeasureId, alias: '指标Id', location: 'dimension' },\n { id: foldMeasureName, alias: '指标名称', location: 'dimension' },\n ],\n [{ id: foldMeasureValue, alias: '指标值' }],\n 1,\n unfoldDimensionGroup,\n )\n return { dataset: finalDataset, foldInfo, unfoldInfo }\n } else {\n // 展开指定的维度为指标\n const { dataset: finalDataset, unfoldInfo } = unfoldDimensions(\n foldedDataset,\n [...dimensions, { id: foldMeasureName, alias: '指标名称', location: 'dimension' }],\n [{ id: foldMeasureValue, alias: '指标值' }],\n 1,\n unfoldDimensionGroup,\n )\n return { dataset: finalDataset, foldInfo, unfoldInfo }\n }\n}\n","import type { Dataset, Dimension, FoldInfo, Measure, UnfoldInfo } from 'src/types'\nimport { foldMeasures } from './foldMeasures'\nimport { UnfoldDimensionGroup, FoldMeasureId, FoldMeasureName, FoldMeasureValue } from './constant'\nimport { unfoldDimensions } from './unfoldDimensions'\n\nconst emptyReshapeResult = {\n dataset: [],\n foldInfo: {\n foldMap: {},\n measureId: '',\n measureName: '',\n measureValue: '',\n },\n unfoldInfo: {\n groupName: '',\n colorItems: [],\n },\n}\n/**\n * 数据重塑为1个维度1个指标\n * @param dataset\n * @param dimensions\n * @param measures\n * @returns\n */\nexport const dataReshapeFor1D1M = (\n dataset: Dataset,\n dimensions: Dimension[],\n measures: Measure[],\n options?: {\n foldMeasureId?: string\n foldMeasureName?: string\n foldMeasureValue?: string\n unfoldDimensionGroup?: string\n },\n): {\n dataset: Dataset\n foldInfo: FoldInfo\n unfoldInfo: UnfoldInfo\n} => {\n const {\n foldMeasureId = FoldMeasureId,\n foldMeasureName = FoldMeasureName,\n foldMeasureValue = FoldMeasureValue,\n unfoldDimensionGroup = UnfoldDimensionGroup,\n } = options || {}\n\n if (dimensions.length === 0 && measures.length === 0) {\n return emptyReshapeResult\n }\n\n // 合并所有指标为1个指标\n const { dataset: foldedDataset, foldInfo } = foldMeasures(\n dataset,\n measures,\n foldMeasureId,\n foldMeasureName,\n foldMeasureValue,\n )\n\n if (dimensions.length === 0) {\n const { dataset: finalDataset, unfoldInfo } = unfoldDimensions(\n foldedDataset,\n [{ id: foldMeasureName, alias: '指标名称', location: 'dimension' }],\n [{ id: foldMeasureValue, alias: '指标值' }],\n 0,\n unfoldDimensionGroup,\n )\n return { dataset: finalDataset, foldInfo, unfoldInfo }\n } else {\n // 展开指定的维度为指标\n const { dataset: finalDataset, unfoldInfo } = unfoldDimensions(\n foldedDataset,\n [...dimensions, { id: foldMeasureName, alias: '指标名称', location: 'dimension' }],\n [{ id: foldMeasureValue, alias: '指标值' }],\n 0,\n unfoldDimensionGroup,\n )\n return { dataset: finalDataset, foldInfo, unfoldInfo }\n }\n}\n","import { dataReshapeFor2D1M } from '../../../../dataReshape'\nimport type { AdvancedPipe } from 'src/types'\n\n/**\n * 数据重塑, 将任意维度、任意指标, 重塑为2个维度1个指标.\n * @param advancedVSeed\n * @param context\n * @returns\n */\nexport const reshapeTo2D1M: AdvancedPipe = (advancedVSeed, context) => {\n const result = { ...advancedVSeed }\n const { vseed } = context\n const { dataset } = vseed\n const { dimensions, measures } = advancedVSeed\n\n if (!measures || !dimensions || !dataset) {\n return result\n }\n\n if (measures.length === 0) {\n throw new Error('measures can not be empty')\n }\n\n const { dataset: newDatasets, foldInfo, unfoldInfo } = dataReshapeFor2D1M(dataset, dimensions, measures)\n\n return {\n ...result,\n dataset: newDatasets,\n datasetReshapeInfo: [\n {\n id: '2D1M',\n foldInfo,\n unfoldInfo,\n },\n ],\n dimensions,\n measures,\n }\n}\n","import { dataReshapeFor1D1M } from '../../../../dataReshape'\nimport type { AdvancedPipe } from 'src/types'\n\n/**\n * 数据重塑, 将任意维度、任意指标, 重塑为2个维度1个指标.\n * @param advancedVSeed\n * @param context\n * @returns\n */\nexport const reshapeTo1D1M: AdvancedPipe = (advancedVSeed, context) => {\n const result = { ...advancedVSeed }\n const { vseed } = context\n const { dataset } = vseed\n const { dimensions, measures } = advancedVSeed\n if (!measures || !dimensions || !dataset) {\n return result\n }\n\n if (measures.length === 0) {\n throw new Error('measures can not be empty')\n }\n\n const { dataset: newDatasets, foldInfo, unfoldInfo } = dataReshapeFor1D1M(dataset, dimensions, measures)\n\n return {\n ...result,\n dataset: newDatasets,\n datasetReshapeInfo: [\n {\n id: '1D1M',\n foldInfo,\n unfoldInfo,\n },\n ],\n }\n}\n","import {\n FoldMeasureId,\n FoldMeasureName,\n FoldMeasureValue,\n UnfoldDimensionGroup,\n} from '../../../../dataReshape/constant'\nimport { dataReshapeFor1D1M } from '../../../../dataReshape'\nimport type { AdvancedPipe, Dataset, DatasetReshapeInfo, MeasureGroup } from 'src/types'\n\n/**\n * 数据重塑为透视结构, 如果存在指标分组, 则将数据按组划分. 如果存在行列维度, 则生成行列树结构.\n * @param advancedVSeed\n * @param context\n * @returns\n */\nexport const pivotReshapeTo1D1M: AdvancedPipe = (advancedVSeed, context) => {\n const result = { ...advancedVSeed }\n const { vseed } = context\n const { dataset } = vseed\n const { dimensions, measures } = advancedVSeed\n\n if (!measures || !dimensions) {\n return result\n }\n\n const measureGroups: MeasureGroup[] = []\n if (measures) {\n measures.forEach((measure: MeasureGroup) => {\n if (measure.children && measure.children.length > 0) {\n measureGroups.push(measure)\n }\n })\n }\n const newDatasets: Dataset = []\n const datasetReshapeInfo: DatasetReshapeInfo = []\n measureGroups.forEach((measureGroup) => {\n const measures = measureGroup.children\n if (!measures) {\n return\n }\n\n const commonDimensions = dimensions.filter((dim) => dim.location === 'dimension')\n const groupId = measureGroup.id\n const {\n dataset: newSubDataset,\n foldInfo,\n unfoldInfo,\n } = dataReshapeFor1D1M(dataset, commonDimensions, measures, {\n foldMeasureId: FoldMeasureId,\n foldMeasureName: FoldMeasureName,\n foldMeasureValue: FoldMeasureValue + groupId,\n unfoldDimensionGroup: UnfoldDimensionGroup,\n })\n const reshapeInfo = {\n id: groupId,\n foldInfo,\n unfoldInfo,\n }\n newDatasets.push(newSubDataset)\n datasetReshapeInfo.push(reshapeInfo)\n })\n\n return {\n ...result,\n dataset: newDatasets,\n datasetReshapeInfo: datasetReshapeInfo,\n }\n}\n","import {\n FoldMeasureId,\n FoldMeasureName,\n FoldMeasureValue,\n UnfoldDimensionGroup,\n} from '../../../../dataReshape/constant'\nimport { dataReshapeFor2D1M } from '../../../../dataReshape'\nimport type { AdvancedPipe, Dataset, DatasetReshapeInfo, MeasureGroup } from 'src/types'\n\n/**\n * 数据重塑为透视结构, 如果存在指标分组, 则将数据按组划分. 如果存在行列维度, 则生成行列树结构.\n * @param advancedVSeed\n * @param context\n * @returns\n */\nexport const pivotReshapeTo2D1M: AdvancedPipe = (advancedVSeed, context) => {\n const result = { ...advancedVSeed }\n const { vseed } = context\n const { dataset } = vseed\n const { dimensions, measures } = advancedVSeed\n\n if (!measures || !dimensions) {\n return result\n }\n\n const measureGroups: MeasureGroup[] = []\n if (measures) {\n measures.forEach((measure: MeasureGroup) => {\n if (measure.children && measure.children.length > 0) {\n measureGroups.push(measure)\n }\n })\n }\n const commonDimensions = dimensions.filter((dim) => dim.location === 'dimension')\n\n const newDatasets: Dataset = []\n const datasetReshapeInfo: DatasetReshapeInfo = []\n measureGroups.forEach((measureGroup) => {\n const measures = measureGroup.children\n if (!measures) {\n return\n }\n const groupId = measureGroup.id\n const {\n dataset: newSubDataset,\n foldInfo,\n unfoldInfo,\n } = dataReshapeFor2D1M(dataset, commonDimensions, measures, {\n foldMeasureId: FoldMeasureId + groupId,\n foldMeasureName: FoldMeasureName + groupId,\n foldMeasureValue: FoldMeasureValue + groupId,\n unfoldDimensionGroup: UnfoldDimensionGroup + groupId,\n })\n const reshapeInfo = {\n id: groupId,\n foldInfo,\n unfoldInfo,\n }\n newDatasets.push(newSubDataset)\n datasetReshapeInfo.push(reshapeInfo)\n })\n\n return {\n ...result,\n dataset: newDatasets,\n datasetReshapeInfo: datasetReshapeInfo,\n }\n}\n","import type { AdvancedPipe } from 'src/types'\nimport type { Encoding } from 'src/types'\n\nexport const encodingXY: AdvancedPipe = (advancedVSeed) => {\n const result = { ...advancedVSeed }\n const { datasetReshapeInfo, dimensions } = advancedVSeed\n if (!datasetReshapeInfo || !dimensions) {\n return result\n }\n\n const encoding = datasetReshapeInfo.reduce<Encoding>((prev, cur) => {\n const { foldInfo, unfoldInfo } = cur\n\n const isSingleDimension = dimensions.length === 0\n const x = [isSingleDimension ? foldInfo.measureName : dimensions[0].id]\n const y = [foldInfo.measureValue]\n const group = [isSingleDimension ? foldInfo.measureName : unfoldInfo.groupName]\n const color = [foldInfo.measureName]\n\n return [\n ...prev,\n {\n x,\n y,\n group,\n color,\n },\n ] as Encoding\n }, [])\n\n return {\n ...result,\n encoding,\n }\n}\n","import type { AdvancedPipe } from 'src/types'\nimport type { Encoding } from 'src/types'\n\nexport const encodingYX: AdvancedPipe = (advancedVSeed) => {\n const result = { ...advancedVSeed }\n const { datasetReshapeInfo, dimensions } = advancedVSeed\n if (!datasetReshapeInfo || !dimensions) {\n return result\n }\n\n const encoding = datasetReshapeInfo.reduce<Encoding>((prev, cur) => {\n const { foldInfo, unfoldInfo } = cur\n\n const isSingleDimension = dimensions.length === 0\n\n const y = [isSingleDimension ? foldInfo.measureName : dimensions[0].id]\n const x = [foldInfo.measureValue]\n const group = [isSingleDimension ? foldInfo.measureName : unfoldInfo.groupName]\n const color = [foldInfo.measureName]\n\n return [\n ...prev,\n {\n x,\n y,\n group,\n color,\n },\n ] as Encoding\n }, [])\n\n return {\n ...result,\n encoding,\n }\n}\n","import type { AdvancedPipe } from 'src/types'\nimport type { Encoding } from 'src/types'\n\nexport const encodingPolar: AdvancedPipe = (advancedVSeed) => {\n const result = { ...advancedVSeed }\n const { datasetReshapeInfo, dimensions } = advancedVSeed\n if (!datasetReshapeInfo || !dimensions) {\n return result\n }\n\n const encoding = datasetReshapeInfo.reduce<Encoding>((prev, cur) => {\n const { foldInfo, unfoldInfo } = cur\n\n const radius = [foldInfo.measureValue]\n const angle = [unfoldInfo.groupName]\n const group = [unfoldInfo.groupName]\n const color = [unfoldInfo.groupName]\n\n return [\n ...prev,\n {\n angle,\n radius,\n group,\n color,\n },\n ] as Encoding\n }, [])\n\n return {\n ...result,\n encoding,\n }\n}\n","import type { AdvancedPipe } from 'src/types'\n\nexport const initAdvancedVSeed: AdvancedPipe = (advancedVSeed, context) => {\n const { vseed } = context\n const { chartType = 'table' } = vseed\n return {\n ...advancedVSeed,\n chartType,\n }\n}\n","import type { ExecPipelineType, Pipe } from 'src/types'\n\n/**\n * 执行pipeline, 每个pipe负责构建结果的一部分, 构建完成后得到完整的目标结果\n * @param pipeline pipeline数组, 每个pipe负责构建结果的一部分\n * @param initialValue 初始值\n * @param context 上下文\n * @returns 执行后的结果\n */\nexport const execPipeline: ExecPipelineType = <T, U>(\n pipeline: Array<Pipe<T, U>>,\n context: U,\n initialValue: Partial<T> = {},\n): T => {\n const result = pipeline.reduce((prev, cur) => {\n return cur(prev, context)\n }, initialValue)\n return result as T\n}\n","import type { AdvancedVSeed, ChartType, MeasureGroup, VSeed } from 'src/types'\n\nexport const isVTable = (chartType: ChartType) => {\n return ['table', 'pivotTable'].includes(chartType)\n}\n\nexport const isVChart = (chartType: ChartType) => {\n return !isVTable(chartType)\n}\n\nexport const isPivotChart = (vseed: VSeed | AdvancedVSeed) => {\n const { measures, dimensions } = vseed\n \n const hasRowOrColumnDimension =\n dimensions &&\n dimensions.some((dimension) => dimension.location === 'rowDimension' || dimension.location === 'columnDimension')\n const hasMeasureGroup = measures && measures.find((measure: MeasureGroup) => measure && measure.children)\n\n return hasRowOrColumnDimension || hasMeasureGroup\n}\n","import { isPivotChart } from '../../../utils'\nimport type { AdvancedPipe, Datum, MeasureGroup } from 'src/types'\n\nexport const autoMeasures: AdvancedPipe = (advancedVSeed, context) => {\n const result = { ...advancedVSeed }\n const { vseed } = context\n const { measures, dataset } = vseed\n\n if (!dataset) {\n throw new Error('dataset is required')\n }\n\n if (dataset.length === 0) {\n return result\n }\n\n if (isPivotChart(vseed)) {\n return autoMeasureGroup(advancedVSeed, context)\n }\n\n if (measures) {\n result.measures = measures\n return result\n }\n\n const top100dataset = dataset.slice(0, 100)\n\n const sample = top100dataset.reduce<Datum>((prev, cur) => {\n return { ...prev, ...cur }\n }, {})\n\n result.measures = Object.keys(sample)\n .filter((key) => {\n return top100dataset.some((item) => typeof item[key] === 'number') && !['', null, undefined].includes(key)\n })\n .map((measure) => ({\n id: measure,\n alias: measure,\n }))\n\n return result\n}\n\nconst autoMeasureGroup: AdvancedPipe = (advancedVSeed, context) => {\n const { vseed } = context\n const { measures } = vseed\n const hasMeasureGroup = measures?.some((measure: MeasureGroup) => measure.children)\n\n if (!measures) {\n return advancedVSeed\n }\n\n // 没有指标组, 则自动添加一个指标组\n if (!hasMeasureGroup) {\n const newMeasures = [\n {\n id: 'measureGroup',\n alias: 'measureGroup',\n children: measures,\n },\n ]\n return {\n ...advancedVSeed,\n measures: newMeasures,\n }\n }\n\n // 存在指标组, 则任意连续的独立指标成组\n let currentGroup: MeasureGroup = createEmptyMeasureGroup()\n const measureGroups: MeasureGroup[] = []\n for (const measure of measures) {\n if ('children' in measure) {\n // 当前指标组之前的所有独立指标成组\n if (currentGroup.children?.length) {\n currentGroup.id = currentGroup.children.map((item) => item.id).join('-')\n currentGroup.alias = currentGroup.children.map((item) => item.alias).join('-')\n measureGroups.push(currentGroup)\n currentGroup = createEmptyMeasureGroup()\n }\n // 当前是指标组\n measureGroups.push(measure)\n } else {\n currentGroup.children?.push(measure)\n }\n }\n\n // 最后一组\n if (currentGroup.children?.length) {\n currentGroup.id = currentGroup.children.map((item) => item.id).join('-')\n currentGroup.alias = currentGroup.children.map((item) => item.alias).join('-')\n measureGroups.push(currentGroup)\n currentGroup = createEmptyMeasureGroup()\n }\n\n advancedVSeed.measures = measureGroups\n return advancedVSeed\n}\n\nconst createEmptyMeasureGroup = () => {\n return {\n id: '',\n alias: '',\n children: [],\n }\n}\n","import type { AdvancedPipe, Datum } from 'src/types'\n\nexport const autoDimensions: AdvancedPipe = (advancedVSeed, context) => {\n const result = { ...advancedVSeed }\n const { vseed } = context\n const { dimensions, dataset } = vseed\n\n const { measures = [] } = advancedVSeed\n if (!dataset) {\n throw new Error('dataset is required')\n }\n\n if (dataset.length === 0) {\n return result\n }\n\n if (dimensions) {\n result.dimensions = dimensions\n return result\n }\n\n const top100dataset = dataset.slice(0, 100)\n\n const sample = top100dataset.reduce<Datum>((prev, cur) => {\n return { ...prev, ...cur }\n }, {})\n\n result.dimensions = Object.keys(sample)\n .filter(\n (key) =>\n top100dataset.some((item) => typeof item[key] === 'string') &&\n !['', null, undefined].includes(key) &&\n !measures.some((measure) => measure.id === key),\n )\n .map((dim) => ({\n id: dim,\n alias: dim,\n location: 'dimension',\n }))\n\n return result\n}\n","import { pick } from 'remeda'\nimport type { AdvancedPipe, VChartBaseConfig, VTableBaseConfig } from 'src/types'\n\nexport const vchartBaseConfig: AdvancedPipe = (advancedVSeed, context) => {\n const { vseed } = context\n\n const result = {\n ...advancedVSeed,\n }\n\n const config: VChartBaseConfig = pick(vseed, ['backgroundColor', 'color', 'label', 'legend', 'tooltip'])\n\n result.baseConfig = {\n vchart: {\n ...config,\n },\n }\n return result\n}\n\nexport const vtableBaseConfig: AdvancedPipe = (advancedVSeed, context) => {\n const { vseed } = context\n const config: VTableBaseConfig = pick(vseed, ['backgroundColor'])\n\n return {\n ...advancedVSeed,\n baseConfig: {\n vtable: {\n ...config,\n },\n },\n }\n}\n","import { clone, mergeDeep } from 'remeda'\nimport type { AdvancedPipe } from 'src/types'\n\nexport const vchartTheme: AdvancedPipe = (advancedVSeed, context) => {\n const { customTheme, vseed } = context\n const { theme = 'light' } = vseed\n const result = {\n ...advancedVSeed,\n }\n\n if (!customTheme || !customTheme[theme]) {\n return result\n }\n const config = result.baseConfig?.vchart\n const themeConfig = customTheme?.[theme].baseConfig?.vchart\n\n if (!themeConfig || !config) {\n return result\n }\n\n const mergedConfig = mergeDeep(themeConfig, clone(config))\n result.baseConfig = {\n vchart: mergedConfig,\n }\n return result\n}\n\nexport const vtableTheme: AdvancedPipe = (advancedVSeed, context) => {\n const { customTheme, vseed } = context\n const { theme = 'light' } = vseed\n const result = {\n ...advancedVSeed,\n }\n\n if (!customTheme || !customTheme[theme]) {\n return result\n }\n\n const config = result.baseConfig?.vtable\n const themeConfig = customTheme?.[theme].baseConfig?.vtable\n\n if (!themeConfig || !config) {\n return result\n }\n\n const mergedConfig = mergeDeep(themeConfig, clone(config))\n result.baseConfig = {\n vchart: mergedConfig,\n }\n return result\n}\n","import type { AdvancedPipe, AdvancedPipeline, AdvancedPipelineContext, AdvancedVSeed } from 'src/types'\nimport { execPipeline, isPivotChart } from '../../../utils'\n\nexport const pivotAdapter = (pipeline: AdvancedPipeline, pivotPipeline: AdvancedPipeline): AdvancedPipe => {\n return (advancedVSeed, context) => {\n const { vseed } = context\n const usePivotChart = isPivotChart(vseed)\n\n if (usePivotChart) {\n return execPipeline<AdvancedVSeed, AdvancedPipelineContext>(pivotPipeline, context, advancedVSeed)\n }\n\n return execPipeline<AdvancedVSeed, AdvancedPipelineContext>(pipeline, context, advancedVSeed)\n }\n}\n","import type { AdvancedPipeline } from 'src/types'\nimport {\n autoDimensions,\n autoMeasures,\n encodingXY,\n initAdvancedVSeed,\n reshapeTo2D1M,\n vchartBaseConfig,\n vchartTheme,\n pivotAdapter,\n pivotReshapeTo2D1M,\n} from '../pipes'\n\nexport const lineAdvancedPipeline: AdvancedPipeline = [\n initAdvancedVSeed,\n autoMeasures,\n autoDimensions,\n pivotAdapter([reshapeTo2D1M], [pivotReshapeTo2D1M]),\n encodingXY,\n vchartBaseConfig,\n vchartTheme,\n]\n","import type { AdvancedPipeline } from 'src/types'\nimport {\n initAdvancedVSeed,\n encodingYX,\n vchartBaseConfig,\n vchartTheme,\n autoMeasures,\n autoDimensions,\n reshapeTo2D1M,\n pivotReshapeTo2D1M,\n pivotAdapter,\n} from '../pipes'\n\nexport const barAdvancedPipeline: AdvancedPipeline = [\n initAdvancedVSeed,\n autoMeasures,\n autoDimensions,\n pivotAdapter([reshapeTo2D1M], [pivotReshapeTo2D1M]),\n encodingYX,\n vchartBaseConfig,\n vchartTheme,\n]\n","import type { AdvancedPipeline } from 'src/types'\nimport {\n autoDimensions,\n autoMeasures,\n encodingYX,\n initAdvancedVSeed,\n reshapeTo2D1M,\n vchartBaseConfig,\n vchartTheme,\n pivotAdapter,\n pivotReshapeTo2D1M,\n} from '../pipes'\n\nexport const barParallelAdvancedPipeline: AdvancedPipeline = [\n initAdvancedVSeed,\n autoMeasures,\n autoDimensions,\n pivotAdapter([reshapeTo2D1M], [pivotReshapeTo2D1M]),\n encodingYX,\n vchartBaseConfig,\n vchartTheme,\n]\n","import type { AdvancedPipeline } from 'src/types'\nimport {\n autoDimensions,\n autoMeasures,\n encodingYX,\n initAdvancedVSeed,\n reshapeTo2D1M,\n vchartBaseConfig,\n vchartTheme,\n pivotAdapter,\n pivotReshapeTo2D1M\n} from '../pipes'\n\nexport const barPercentAdvancedPipeline: AdvancedPipeline = [\n initAdvancedVSeed,\n autoMeasures,\n autoDimensions,\n pivotAdapter([reshapeTo2D1M], [pivotReshapeTo2D1M]),\n encodingYX,\n vchartBaseConfig,\n vchartTheme,\n]\n","import type { AdvancedPipeline } from 'src/types'\nimport {\n autoDimensions,\n autoMeasures,\n encodingXY,\n initAdvancedVSeed,\n reshapeTo2D1M,\n vchartBaseConfig,\n vchartTheme,\n pivotAdapter,\n} from '../pipes'\nimport { pivotReshapeTo2D1M } from '../pipes/reshape/pivotReshapeTo2D1M'\n\nexport const columnAdvancedPipeline: AdvancedPipeline = [\n initAdvancedVSeed,\n autoMeasures,\n autoDimensions,\n pivotAdapter([reshapeTo2D1M], [pivotReshapeTo2D1M]),\n encodingXY,\n vchartBaseConfig,\n vchartTheme,\n]\n","import type { AdvancedPipeline } from 'src/types'\nimport {\n autoDimensions,\n autoMeasures,\n encodingXY,\n initAdvancedVSeed,\n reshapeTo2D1M,\n vchartBaseConfig,\n vchartTheme,\n pivotAdapter,\n pivotReshapeTo2D1M,\n} from '../pipes'\n\nexport const columnParallelAdvancedPipeline: AdvancedPipeline = [\n initAdvancedVSeed,\n autoMeasures,\n autoDimensions,\n pivotAdapter([reshapeTo2D1M], [pivotReshapeTo2D1M]),\n encodingXY,\n vchartBaseConfig,\n vchartTheme,\n]\n","import type { AdvancedPipeline } from 'src/types'\nimport {\n autoDimensions,\n autoMeasures,\n encodingXY,\n initAdvancedVSeed,\n vchartBaseConfig,\n vchartTheme,\n reshapeTo2D1M,\n pivotReshapeTo2D1M,\n pivotAdapter,\n} from '../pipes'\n\nexport const columnPercentAdvancedPipeline: AdvancedPipeline = [\n initAdvancedVSeed,\n autoMeasures,\n autoDimensions,\n pivotAdapter([reshapeTo2D1M], [pivotReshapeTo2D1M]),\n encodingXY,\n vchartBaseConfig,\n vchartTheme,\n]\n","import type { AdvancedPipeline } from 'src/types'\nimport {\n autoDimensions,\n autoMeasures,\n encodingXY,\n initAdvancedVSeed,\n pivotReshapeTo2D1M,\n reshapeTo2D1M,\n vchartBaseConfig,\n vchartTheme,\n pivotAdapter,\n} from '../pipes'\n\nexport const areaAdvancedPipeline: AdvancedPipeline = [\n initAdvancedVSeed,\n autoMeasures,\n autoDimensions,\n pivotAdapter([reshapeTo2D1M], [pivotReshapeTo2D1M]),\n encodingXY,\n vchartBaseConfig,\n vchartTheme,\n]\n","import type { AdvancedPipeline } from 'src/types'\nimport {\n autoDimensions,\n autoMeasures,\n encodingXY,\n initAdvancedVSeed,\n reshapeTo2D1M,\n vchartBaseConfig,\n vchartTheme,\n pivotAdapter,\n pivotReshapeTo2D1M,\n} from '../pipes'\n\nexport const areaPercentAdvancedPipeline: AdvancedPipeline = [\n initAdvancedVSeed,\n autoMeasures,\n autoDimensions,\n pivotAdapter([reshapeTo2D1M], [pivotReshapeTo2D1M]),\n encodingXY,\n vchartBaseConfig,\n vchartTheme,\n]\n","import type { AdvancedPipeline } from 'src/types'\nimport {\n autoDimensions,\n autoMeasures,\n initAdvancedVSeed,\n vchartBaseConfig,\n vchartTheme,\n pivotAdapter,\n reshapeTo1D1M,\n pivotReshapeTo1D1M,\n encodingPolar,\n} from '../pipes'\n\nexport const pieAdvancedPipeline: AdvancedPipeline = [\n initAdvancedVSeed,\n autoMeasures,\n autoDimensions,\n pivotAdapter([reshapeTo1D1M], [pivotReshapeTo1D1M]),\n encodingPolar,\n vchartBaseConfig,\n vchartTheme,\n]\n","import type { ISpec } from '@visactor/vchart'\nimport type { SpecPipe } from 'src/types'\n\nexport const dataset: SpecPipe = (spec, context) => {\n const { advancedVSeed } = context\n return {\n ...spec,\n data: {\n values: advancedVSeed.dataset,\n },\n } as ISpec\n}\n","import type { ISpec } from '@visactor/vchart'\nimport type { PivotChartConstructorOptions } from '@visactor/vtable'\nimport type { SpecPipe } from 'src/types'\n\nexport const datasetPivot: SpecPipe = (spec, context) => {\n const result = { ...spec } as PivotChartConstructorOptions\n const { advancedVSeed } = context\n const { dataset, datasetReshapeInfo } = advancedVSeed\n const records = dataset.reduce((pre, cur, index) => {\n const id = datasetReshapeInfo[index].id\n pre[id] = cur\n return pre\n }, {})\n return {\n ...result,\n records: records,\n } as PivotChartConstructorOptions\n}\n\nexport const datasetPivotPlaceholder: SpecPipe = (spec) => {\n return {\n ...spec,\n data: {\n id: 'placeholderDataId',\n },\n } as ISpec\n}\n","import type { IBarChartSpec } from '@visactor/vchart'\nimport type { SpecPipe } from 'src/types'\n\nexport const initColumn: SpecPipe = (spec, context) => {\n const result = { ...spec } as IBarChartSpec\n const { advancedVSeed } = context\n const { encoding } = advancedVSeed\n\n if (!encoding[0].y || !encoding[0].x || !encoding[0].group) {\n return result\n }\n\n result.type = 'bar'\n result.direction = 'vertical'\n result.xField = encoding[0].x[0]\n result.yField = encoding[0].y[0]\n result.seriesField = encoding[0].group[0]\n result.padding = 0\n return result\n}\n","import type { IBarChartSpec } from '@visactor/vchart'\nimport type { SpecPipe } from 'src/types'\n\nexport const initBar: SpecPipe = (spec, context) => {\n const result = { ...spec } as IBarChartSpec\n const { advancedVSeed } = context\n const { encoding } = advancedVSeed\n\n if (!encoding[0].y || !encoding[0].x || !encoding[0].group) {\n return result\n }\n\n result.type = 'bar'\n result.direction = 'horizontal'\n result.yField = encoding[0].y?.[0]\n result.xField = encoding[0].x?.[0]\n result.seriesField = encoding[0].group?.[0]\n result.padding = 0\n return result\n}\n","import type { IBarChartSpec } from '@visactor/vchart'\nimport type { SpecPipe } from 'src/types'\n\nexport const initBarParallel: SpecPipe = (spec, context) => {\n const result = { ...spec } as IBarChartSpec\n const { advancedVSeed } = context\n const { encoding, datasetReshapeInfo } = advancedVSeed\n const { unfoldInfo } = datasetReshapeInfo[0]\n\n if (!encoding[0].y || !encoding[0].x || !encoding[0].group) {\n return result\n }\n\n result.type = 'bar'\n result.direction = 'horizontal'\n result.yField = [encoding[0].y[0], unfoldInfo.groupName] as string[]\n result.xField = encoding[0].x[0]\n result.seriesField = encoding[0].group[0]\n result.padding = 0\n return result\n}\n","import type { IAreaChartSpec } from '@visactor/vchart'\nimport type { SpecPipe } from 'src/types'\n\nexport const initArea: SpecPipe = (spec, context) => {\n const result = { ...spec } as IAreaChartSpec\n const { advancedVSeed } = context\n const { encoding } = advancedVSeed\n\n if (!encoding[0].y || !encoding[0].x || !encoding[0].group) {\n return result\n }\n\n result.type = 'area'\n result.direction = 'vertical'\n result.xField = encoding[0].x[0]\n result.yField = encoding[0].y[0]\n result.seriesField = encoding[0].group[0]\n result.padding = 0\n return result\n}\n","import type { ILineChartSpec } from '@visactor/vchart'\nimport type { SpecPipe } from 'src/types'\n\nexport const initLine: SpecPipe = (spec, context) => {\n const result = { ...spec } as ILineChartSpec\n const { advancedVSeed } = context\n const { encoding } = advancedVSeed\n\n if (!encoding[0].y || !encoding[0].x || !encoding[0].group) {\n return result\n }\n\n result.type = 'line'\n result.direction = 'vertical'\n result.xField = encoding[0].x[0]\n result.yField = encoding[0].y[0]\n result.seriesField = encoding[0].group[0]\n result.padding = 0\n return result\n}\n","import type { IBarChartSpec } from '@visactor/vchart'\nimport type { SpecPipe } from 'src/types'\n\nexport const initColumnParallel: SpecPipe = (spec, context) => {\n const result = { ...spec } as IBarChartSpec\n const { advancedVSeed } = context\n const { encoding, datasetReshapeInfo } = advancedVSeed\n const { unfoldInfo } = datasetReshapeInfo[0]\n if (!encoding[0].y || !encoding[0].x || !encoding[0].group) {\n return result\n }\n\n result.type = 'bar'\n result.direction = 'vertical'\n result.xField = [encoding[0].x[0], unfoldInfo.groupName]\n result.yField = encoding[0].y[0]\n result.seriesField = encoding[0].group[0]\n result.padding = 0\n return result\n}\n","import type { IPieChartSpec } from '@visactor/vchart'\nimport type { SpecPipe } from 'src/types'\n\nexport const initPie: SpecPipe = (spec, context) => {\n const result = { ...spec } as IPieChartSpec\n const { advancedVSeed } = context\n const { encoding } = advancedVSeed\n\n if (!encoding[0].angle || !encoding[0].radius || !encoding[0].group) {\n return result\n }\n\n result.type = 'pie'\n result.outerRadius = 0.8\n result.innerRadius = 0\n result.valueField = encoding[0].radius[0]\n result.categoryField = encoding[0].angle[0]\n result.seriesField = encoding[0].group[0]\n result.padding = 0\n return result\n}\n","import type { PivotChartConstructorOptions } from '@visactor/vtable'\nimport type { SpecPipe } from 'src/types'\n\nexport const initPivot: SpecPipe = (spec) => {\n const result = { ...spec } as PivotChartConstructorOptions\n\n return {\n ...result,\n rows: [],\n columns: [],\n indicators: [],\n records: [],\n widthMode: 'adaptive',\n heightMode: 'adaptive',\n indicatorsAsCol: false,\n }\n}\n\n\n\nexport const pivotIndicatorsAsRow: SpecPipe = (spec) => {\n const result = { ...spec } as PivotChartConstructorOptions\n\n return {\n ...result,\n indicatorsAsCol: false,\n }\n}\n\nexport const pivotIndicatorsAsCol: SpecPipe = (spec) => {\n const result = { ...spec } as PivotChartConstructorOptions\n\n return {\n ...result,\n indicatorsAsCol: true,\n }\n}\n","import type { ISpec } from '@visactor/vchart'\nimport type { SpecPipe } from 'src/types'\n\nexport const xBand: SpecPipe = (spec) => {\n const result = { ...spec } as ISpec\n\n if (!result.axes) {\n result.axes = []\n }\n\n result.axes = [\n ...result.axes,\n {\n visible: true,\n type: 'band',\n orient: 'bottom',\n },\n ] as ISpec['axes']\n\n return result\n}\n","import type { ISpec } from '@visactor/vchart'\nimport type { SpecPipe } from 'src/types'\n\nexport const xLinear: SpecPipe = (spec) => {\n const result = { ...spec } as ISpec\n\n if (!result.axes) {\n result.axes = []\n }\n\n result.axes = [\n ...result.axes,\n {\n visible: true,\n type: 'linear',\n orient: 'bottom',\n nice: true,\n zero: true,\n },\n ] as ISpec['axes']\n\n return result\n}\n","import type { ISpec } from '@visactor/vchart'\nimport type { SpecPipe } from 'src/types'\n\nexport const yBand: SpecPipe = (spec) => {\n const result = { ...spec } as ISpec\n\n if (!result.axes) {\n result.axes = []\n }\n\n result.axes = [\n ...result.axes,\n {\n visible: true,\n type: 'band',\n orient: 'left',\n },\n ] as ISpec['axes']\n return result\n}\n","import type { ISpec } from '@visactor/vchart'\nimport type { SpecPipe } from 'src/types'\n\nexport const yLinear: SpecPipe = (spec) => {\n const result = { ...spec } as ISpec\n\n if (!result.axes) {\n result.axes = []\n }\n\n result.axes = [\n ...result.axes,\n {\n visible: true,\n type: 'linear',\n orient: 'left',\n nice: true,\n zero: true,\n },\n ] as ISpec['axes']\n\n return result\n}\n","import { IAreaChartSpec, IBarChartSpec } from '@visactor/vchart'\nimport { SpecPipe } from 'src/types'\n\nexport const percent: SpecPipe = (spec, context) => {\n const result = { ...spec } as IAreaChartSpec | IBarChartSpec\n result.percent = true\n return result\n}\n","import { IAreaChartSpec, IBarChartSpec } from '@visactor/vchart'\nimport { SpecPipe } from 'src/types'\n\nexport const stack: SpecPipe = (spec, context) => {\n const result = { ...spec } as IAreaChartSpec | IBarChartSpec\n result.stack = true\n return result\n}\n","import type { ISpec } from '@visactor/vchart'\nimport type { SpecPipe } from 'src/types'\n\nexport const backgroundColor: SpecPipe = (spec, context) => {\n const result = { ...spec } as ISpec\n const { advancedVSeed } = context\n const { baseConfig } = advancedVSeed\n if (!baseConfig?.vchart) {\n return result\n }\n const { backgroundColor } = baseConfig.vchart\n return {\n ...result,\n background: backgroundColor,\n }\n}\n","import type { SpecPipe, Tooltip } from 'src/types'\n\nconst defaultTooltip: Tooltip = {\n enable: true,\n}\n\nexport const tooltip: SpecPipe = (spec, context) => {\n const result = { ...spec }\n const { advancedVSeed } = context\n const baseConfig = advancedVSeed.baseConfig.vchart as { tooltip: Tooltip }\n const { tooltip = defaultTooltip } = baseConfig\n\n const { enable } = tooltip\n\n result.tooltip = {\n visible: enable,\n }\n return result\n}\n","import type { ILineChartSpec } from '@visactor/vchart'\nimport type { Label, SpecPipe } from 'src/types'\n\nexport const label: SpecPipe = (spec, context) => {\n const result = { ...spec } as ILineChartSpec\n const { advancedVSeed } = context\n const baseConfig = advancedVSeed.baseConfig.vchart\n\n if (!baseConfig || !baseConfig.label) {\n return result\n }\n\n const { label } = baseConfig\n const { enable } = label as Label\n\n result.label = {\n visible: enable,\n }\n return result\n}\n","import type { Legend, SpecPipe } from 'src/types'\n\nconst defaultLegend = {\n enable: true,\n}\n\nexport const legend: SpecPipe = (spec, context) => {\n const result = { ...spec }\n const { advancedVSeed } = context\n const baseConfig = advancedVSeed.baseConfig.vchart\n if (!baseConfig || !baseConfig.legend) {\n return result\n }\n\n const { legend = defaultLegend } = baseConfig\n const { enable } = legend as Legend\n\n result.legends = {\n visible: enable,\n }\n return result\n}\n","import type { PivotChartConstructorOptions } from '@visactor/vtable'\nimport type { IDiscreteTableLegendOption } from '@visactor/vtable/es/ts-types/component/legend'\nimport { unique } from 'remeda'\nimport type { Color, Legend, SpecPipe } from 'src/types'\n\nexport const pivotLegend: SpecPipe = (spec, context) => {\n const result = { ...spec } as PivotChartConstructorOptions\n const { advancedVSeed } = context\n const baseConfig = advancedVSeed.baseConfig.vchart\n if (!baseConfig || !baseConfig.legend) {\n return result\n }\n\n const { datasetReshapeInfo } = advancedVSeed\n const colorItems = unique(datasetReshapeInfo.flatMap((d) => d.unfoldInfo.colorItems))\n\n const { legend, color } = baseConfig\n const { enable } = legend as Legend\n const { colorScheme } = color as Color\n\n const legends: IDiscreteTableLegendOption = {\n visible: enable,\n alignSelf: 'end',\n type: 'discrete',\n position: 'middle',\n data: colorItems.map((d, index) => ({\n label: d,\n shape: {\n symbolType: 'square',\n fill: colorScheme[index],\n },\n })),\n item: {\n background: {\n visible: true,\n state: {\n selectedHover: {\n fill: '#000000',\n fillOpacity: 0.05,\n },\n },\n },\n label: {\n style: {\n fontSize: 12,\n fill: '#6F6F6F',\n },\n },\n },\n orient: 'bottom',\n } as unknown as IDiscreteTableLegendOption\n return { ...result, legends }\n}\n","import type { ILineChartSpec } from '@visactor/vchart'\nimport type { Color, SpecPipe } from 'src/types'\n\nexport const color: SpecPipe = (spec, context) => {\n const result = { ...spec } as ILineChartSpec\n const { advancedVSeed } = context\n const { datasetReshapeInfo } = advancedVSeed\n const { unfoldInfo } = datasetReshapeInfo[0]\n const baseConfig = advancedVSeed.baseConfig.vchart\n if (!baseConfig || !baseConfig.color) {\n return result\n }\n\n const { color } = baseConfig\n const { colorScheme, colorMapping } = color as Color\n\n result.color = {\n type: 'ordinal',\n domain: unfoldInfo.colorItems,\n range: colorScheme,\n specified: colorMapping,\n }\n return result\n}\n","import type { Spec, SpecPipe, SpecPipeline, SpecPipelineContext } from 'src/types'\nimport { execPipeline, isPivotChart } from '../../../utils'\n\nexport const pivotAdapter = (pipeline: SpecPipeline, pivotPipeline: SpecPipeline): SpecPipe => {\n return (spec, context) => {\n const { vseed } = context\n const usePivotChart = isPivotChart(vseed)\n\n if (usePivotChart) {\n return execPipeline<Spec, SpecPipelineContext>(pivotPipeline, context, spec)\n }\n\n return execPipeline<Spec, SpecPipelineContext>(pipeline, context, spec)\n }\n}\n","import type { PivotChartConstructorOptions } from '@visactor/vtable'\nimport { execPipeline } from '../../../utils'\nimport type { SpecPipe, SpecPipeline, SpecPipelineContext } from 'src/types'\nimport { unique } from 'remeda'\n\nexport const pivotIndicators =\n (chartPipeline: SpecPipeline): SpecPipe =>\n (spec, context) => {\n const result = { ...spec } as PivotChartConstructorOptions\n const { advancedVSeed } = context\n const { measures, datasetReshapeInfo, encoding } = advancedVSeed\n\n const colorItems = unique(datasetReshapeInfo.flatMap((d) => d.unfoldInfo.colorItems))\n\n const indicators = datasetReshapeInfo.map((reshapeInfo, index) => {\n const measure = measures?.find((d) => d.id === reshapeInfo.id)\n\n const newEncoding = [encoding[index]]\n const newDatasetReshapeInfo = [{ ...reshapeInfo, unfoldInfo: { ...reshapeInfo.unfoldInfo, colorItems } }]\n\n const newContext: SpecPipelineContext = {\n ...context,\n advancedVSeed: {\n ...advancedVSeed,\n datasetReshapeInfo: newDatasetReshapeInfo,\n encoding: newEncoding,\n },\n }\n\n const chartSpec = execPipeline(chartPipeline, newContext, {})\n return {\n indicatorKey: reshapeInfo.id,\n title: measure?.alias,\n cellType: 'chart',\n chartModule: 'vchart',\n chartSpec: chartSpec,\n style: {\n padding: [1, 1, 0, 1],\n },\n }\n })\n\n return {\n ...result,\n indicators: indicators,\n } as PivotChartConstructorOptions\n }\n\nexport const pivotIndicatorsAsRow: SpecPipe = (spec) => {\n const result = { ...spec } as PivotChartConstructorOptions\n\n return {\n ...result,\n indicatorsAsCol: false,\n }\n}\n\nexport const pivotIndicatorsAsCol: SpecPipe = (spec) => {\n const result = { ...spec } as PivotChartConstructorOptions\n\n return {\n ...result,\n indicatorsAsCol: true,\n }\n}\n","import type { PivotChartConstructorOptions } from '@visactor/vtable'\nimport type { SpecPipe } from 'src/types'\n\nexport const pivotGridStyle: SpecPipe = (spec) => {\n const result = { ...spec } as PivotChartConstructorOptions\n const transparent = 'rgba(0,0,0,0)'\n return {\n ...result,\n theme: {\n underlayBackgroundColor: transparent,\n bodyStyle: {\n borderColor: 'rgba(0,4,20,0.2)',\n borderLineWidth: [0, 0, 2, 0],\n bgColor: transparent,\n padding: [0, 0, 1, 0],\n },\n headerStyle: {\n borderColor: 'rgba(0,4,20,0.2)',\n fontSize: 12,\n color: '#333333',\n textAlign: 'center',\n borderLineWidth: 0,\n bgColor: transparent,\n hover: {\n cellBgColor: 'rgba(178,186,207, 0.2)',\n },\n },\n rowHeaderStyle: {\n borderColor: 'rgba(0,4,20,0.2)',\n fontSize: 12,\n color: '#333333',\n borderLineWidth: 0,\n bgColor: transparent,\n hover: {\n cellBgColor: 'rgba(178,186,207, 0.2)',\n },\n },\n cornerHeaderStyle: {\n borderColor: 'rgba(0,4,20,0.2)',\n textAlign: 'center',\n fontSize: 12,\n color: '#333333',\n fontWeight: 'bold',\n borderLineWidth: [0, 0, 0, 0],\n bgColor: transparent,\n hover: {\n cellBgColor: '',\n },\n },\n cornerRightTopCellStyle: {\n borderColor: 'rgba(0,4,20,0.2)',\n borderLineWidth: 0,\n bgColor: transparent,\n hover: {\n cellBgColor: '',\n },\n },\n cornerLeftBottomCellStyle: {\n borderColor: 'rgba(0,4,20,0.2)',\n borderLineWidth: 0,\n bgColor: transparent,\n hover: {\n cellBgColor: '',\n },\n },\n cornerRightBottomCellStyle: {\n borderColor: 'rgba(0,4,20,0.2)',\n borderLineWidth: 0,\n bgColor: transparent,\n hover: {\n cellBgColor: '',\n },\n },\n rightFrozenStyle: {\n borderColor: 'rgba(0,4,20,0.2)',\n borderLineWidth: 0,\n bgColor: transparent,\n hover: {\n cellBgColor: 'rgba(178,186,207, 0.2)',\n },\n },\n bottomFrozenStyle: {\n borderColor: 'rgba(0,4,20,0.2)',\n borderLineWidth: 0,\n bgColor: transparent,\n hover: {\n cellBgColor: 'rgba(178,186,207, 0.2)',\n },\n },\n selectionStyle: {\n cellBgColor: '',\n cellBorderColor: '',\n },\n frameStyle: {\n borderLineWidth: 0,\n bgColor: transparent,\n },\n },\n }\n}\n","import type { PivotChartConstructorOptions } from '@visactor/vtable'\nimport type { IBasicDimension } from '@visactor/vtable/es/ts-types/pivot-table/dimension/basic-dimension'\nimport type { SpecPipe } from 'src/types'\n\nexport const pivotColumnDimensions: SpecPipe = (spec, context) => {\n const result = { ...spec } as PivotChartConstructorOptions\n const { advancedVSeed } = context\n const { dimensions } = advancedVSeed\n if (!dimensions) {\n return result\n }\n const columnDimensions = dimensions.filter((dim) => dim.location === 'columnDimension')\n const columns: IBasicDimension[] = columnDimensions.map((dim) => ({\n dimensionKey: dim.id,\n title: dim.alias || dim.id,\n }))\n return {\n ...result,\n columns: columns,\n }\n}\n","import type { PivotChartConstructorOptions } from '@visactor/vtable'\nimport type { IBasicDimension } from '@visactor/vtable/es/ts-types/pivot-table/dimension/basic-dimension'\nimport type { SpecPipe } from 'src/types'\n\nexport const pivotRowDimensions: SpecPipe = (spec, context) => {\n const result = { ...spec } as PivotChartConstructorOptions\n const { advancedVSeed } = context\n const { dimensions } = advancedVSeed\n if (!dimensions) {\n return result\n }\n const rowDimensions = dimensions.filter((dim) => dim.location === 'rowDimension')\n const rows: IBasicDimension[] = rowDimensions.map((dim) => ({\n dimensionKey: dim.id,\n title: dim.alias || dim.id,\n }))\n return {\n ...result,\n rows: rows,\n }\n}\n","import type { SpecPipeline } from 'src/types'\nimport {\n dataset,\n xBand,\n yLinear,\n initLine,\n backgroundColor,\n label,\n tooltip,\n legend,\n color,\n initPivot,\n datasetPivot,\n datasetPivotPlaceholder,\n pivotLegend,\n pivotIndicators,\n pivotAdapter,\n pivotIndicatorsAsRow,\n pivotGridStyle,\n pivotColumnDimensions,\n pivotRowDimensions,\n} from '../pipes'\n\nconst line: SpecPipeline = [initLine, color, backgroundColor, dataset, xBand, yLinear, label, tooltip, legend]\n\nconst pivotLine: SpecPipeline = [\n initPivot,\n pivotGridStyle,\n pivotIndicatorsAsRow,\n datasetPivot,\n pivotIndicators([initLine, color, backgroundColor, datasetPivotPlaceholder, xBand, yLinear, label, tooltip]),\n pivotRowDimensions,\n pivotColumnDimensions,\n pivotLegend,\n]\n\nexport const lineSpecPipeline: SpecPipeline = [pivotAdapter(line, pivotLine)]\n","import type { SpecPipeline } from 'src/types'\nimport {\n initColumn,\n dataset,\n xBand,\n yLinear,\n backgroundColor,\n label,\n tooltip,\n legend,\n color,\n pivotAdapter,\n initPivot,\n datasetPivot,\n datasetPivotPlaceholder,\n pivotIndicators,\n pivotLegend,\n pivotIndicatorsAsRow,\n pivotGridStyle,\n pivotRowDimensions,\n pivotColumnDimensions,\n} from '../pipes'\n\nconst column: SpecPipeline = [initColumn, color, backgroundColor, dataset, xBand, yLinear, label, tooltip, legend]\n\nconst pivotColumn: SpecPipeline = [\n initPivot,\n pivotGridStyle,\n pivotIndicatorsAsRow,\n datasetPivot,\n pivotIndicators([initColumn, color, backgroundColor, datasetPivotPlaceholder, xBand, yLinear, label, tooltip]),\n pivotRowDimensions,\n pivotColumnDimensions,\n pivotLegend,\n]\n\nexport const columnSpecPipeline = [pivotAdapter(column, pivotColumn)]\n","import type { SpecPipeline } from 'src/types'\nimport {\n dataset,\n xBand,\n yLinear,\n initColumnParallel,\n backgroundColor,\n label,\n tooltip,\n legend,\n color,\n pivotIndicators,\n initPivot,\n datasetPivot,\n pivotAdapter,\n datasetPivotPlaceholder,\n pivotLegend,\n pivotIndicatorsAsRow,\n pivotGridStyle,\n pivotRowDimensions,\n pivotColumnDimensions,\n} from '../pipes'\n\nconst columnParallel: SpecPipeline = [\n initColumnParallel,\n color,\n backgroundColor,\n dataset,\n xBand,\n yLinear,\n label,\n tooltip,\n legend,\n]\n\nconst pivotColumnParallel: SpecPipeline = [\n initPivot,\n pivotGridStyle,\n pivotIndicatorsAsRow,\n datasetPivot,\n pivotIndicators([\n initColumnParallel,\n color,\n backgroundColor,\n datasetPivotPlaceholder,\n xBand,\n yLinear,\n label,\n tooltip,\n ]),\n pivotRowDimensions,\n pivotColumnDimensions,\n pivotLegend,\n]\n\nexport const columnParallelSpecPipeline: SpecPipeline = [pivotAdapter(columnParallel, pivotColumnParallel)]\n","import type { SpecPipeline } from 'src/types'\nimport {\n initColumn,\n dataset,\n xBand,\n yLinear,\n percent,\n backgroundColor,\n label,\n tooltip,\n legend,\n color,\n datasetPivotPlaceholder,\n pivotAdapter,\n initPivot,\n datasetPivot,\n pivotIndicators,\n pivotLegend,\n pivotIndicatorsAsRow,\n pivotGridStyle,\n pivotRowDimensions,\n pivotColumnDimensions,\n} from '../pipes'\n\nconst columnPercent: SpecPipeline = [\n initColumn,\n color,\n backgroundColor,\n percent,\n dataset,\n xBand,\n yLinear,\n label,\n tooltip,\n legend,\n]\n\nconst pivotColumnPercent: SpecPipeline = [\n initPivot,\n pivotGridStyle,\n pivotIndicatorsAsRow,\n datasetPivot,\n pivotIndicators([\n initColumn,\n color,\n percent,\n backgroundColor,\n datasetPivotPlaceholder,\n xBand,\n yLinear,\n label,\n tooltip,\n ]),\n pivotRowDimensions,\n pivotColumnDimensions,\n pivotLegend,\n]\n\nexport const columnPercentSpecPipeline: SpecPipeline = [pivotAdapter(columnPercent, pivotColumnPercent)]\n","import type { SpecPipeline } from 'src/types'\nimport {\n initBar,\n dataset,\n xLinear,\n yBand,\n backgroundColor,\n label,\n tooltip,\n legend,\n color,\n pivotAdapter,\n initPivot,\n datasetPivot,\n pivotIndicators,\n pivotLegend,\n datasetPivotPlaceholder,\n pivotIndicatorsAsCol,\n pivotGridStyle,\n pivotColumnDimensions,\n pivotRowDimensions,\n} from '../pipes'\n\nconst bar: SpecPipeline = [initBar, color, backgroundColor, dataset, xLinear, yBand, label, tooltip, legend]\n\nconst pivotBar: SpecPipeline = [\n initPivot,\n pivotGridStyle,\n pivotIndicatorsAsCol,\n datasetPivot,\n pivotIndicators([initBar, color, backgroundColor, datasetPivotPlaceholder, yBand, label, label, tooltip]),\n pivotRowDimensions,\n pivotColumnDimensions,\n pivotLegend,\n]\n\nexport const barSpecPipeline: SpecPipeline = [pivotAdapter(bar, pivotBar)]\n","import type { SpecPipeline } from 'src/types'\nimport {\n dataset,\n xLinear,\n yBand,\n initBarParallel,\n backgroundColor,\n label,\n tooltip,\n legend,\n color,\n datasetPivotPlaceholder,\n initPivot,\n datasetPivot,\n pivotLegend,\n pivotIndicators,\n pivotAdapter,\n pivotIndicatorsAsCol,\n pivotGridStyle,\n pivotRowDimensions,\n pivotColumnDimensions,\n} from '../pipes'\n\nconst barParallel: SpecPipeline = [\n initBarParallel,\n color,\n backgroundColor,\n dataset,\n xLinear,\n yBand,\n label,\n tooltip,\n legend,\n]\n\nconst pivotBarParallel: SpecPipeline = [\n initPivot,\n pivotGridStyle,\n pivotIndicatorsAsCol,\n datasetPivot,\n pivotIndicators([initBarParallel, color, backgroundColor, datasetPivotPlaceholder, yBand, xLinear, label, tooltip]),\n pivotRowDimensions,\n pivotColumnDimensions,\n pivotLegend,\n]\n\nexport const barParallelSpecPipeline: SpecPipeline = [pivotAdapter(barParallel, pivotBarParallel)]\n","import type { SpecPipeline } from 'src/types'\nimport {\n initBar,\n dataset,\n xLinear,\n yBand,\n percent,\n backgroundColor,\n label,\n tooltip,\n legend,\n color,\n pivotAdapter,\n initPivot,\n datasetPivot,\n pivotIndicators,\n pivotLegend,\n datasetPivotPlaceholder,\n pivotIndicatorsAsCol,\n pivotGridStyle,\n pivotRowDimensions,\n pivotColumnDimensions,\n} from '../pipes'\n\nconst barPercent: SpecPipeline = [\n initBar,\n color,\n backgroundColor,\n percent,\n dataset,\n xLinear,\n yBand,\n label,\n tooltip,\n legend,\n]\n\nconst pivotBarPercent: SpecPipeline = [\n initPivot,\n pivotGridStyle,\n pivotIndicatorsAsCol,\n datasetPivot,\n pivotIndicators([initBar, color, backgroundColor, percent, datasetPivotPlaceholder, yBand, xLinear, label, tooltip]),\n pivotRowDimensions,\n pivotColumnDimensions,\n pivotLegend,\n]\n\nexport const barPercentSpecPipeline: SpecPipeline = [pivotAdapter(barPercent, pivotBarPercent)]\n","import type { SpecPipeline } from 'src/types'\nimport {\n dataset,\n xBand,\n yLinear,\n initArea,\n stack,\n backgroundColor,\n label,\n tooltip,\n legend,\n color,\n datasetPivotPlaceholder,\n datasetPivot,\n pivotIndicators,\n pivotLegend,\n pivotAdapter,\n initPivot,\n pivotIndicatorsAsRow,\n pivotGridStyle,\n pivotColumnDimensions,\n pivotRowDimensions,\n} from '../pipes'\n\nconst area: SpecPipeline = [initArea, color, backgroundColor, stack, dataset, xBand, yLinear, label, tooltip, legend]\n\nconst pivotArea: SpecPipeline = [\n initPivot,\n pivotGridStyle,\n pivotIndicatorsAsRow,\n datasetPivot,\n pivotIndicators([initArea, color, backgroundColor, stack, datasetPivotPlaceholder, xBand, yLinear, label, tooltip]),\n pivotRowDimensions,\n pivotColumnDimensions,\n pivotLegend,\n]\n\nexport const areaSpecPipeline = [pivotAdapter(area, pivotArea)]\n","import type { SpecPipeline } from 'src/types'\nimport {\n percent,\n dataset,\n xBand,\n yLinear,\n initArea,\n backgroundColor,\n label,\n tooltip,\n legend,\n color,\n datasetPivotPlaceholder,\n datasetPivot,\n pivotIndicators,\n pivotLegend,\n pivotAdapter,\n initPivot,\n pivotIndicatorsAsRow,\n pivotGridStyle,\n pivotRowDimensions,\n pivotColumnDimensions,\n} from '../pipes'\n\nconst areaPercent: SpecPipeline = [\n initArea,\n color,\n backgroundColor,\n percent,\n dataset,\n xBand,\n yLinear,\n label,\n tooltip,\n legend,\n]\n\nconst pivotAreaPercent: SpecPipeline = [\n initPivot,\n pivotGridStyle,\n pivotIndicatorsAsRow,\n datasetPivot,\n pivotIndicators([initArea, color, backgroundColor, percent, datasetPivotPlaceholder, xBand, yLinear, label, tooltip]),\n pivotRowDimensions,\n pivotColumnDimensions,\n pivotLegend,\n]\n\nexport const areaPercentSpecPipeline = [pivotAdapter(areaPercent, pivotAreaPercent)]\n","import type { SpecPipeline } from 'src/types'\nimport {\n backgroundColor,\n color,\n dataset,\n datasetPivot,\n datasetPivotPlaceholder,\n initPie,\n initPivot,\n label,\n legend,\n pivotAdapter,\n pivotColumnDimensions,\n pivotGridStyle,\n pivotIndicators,\n pivotIndicatorsAsRow,\n pivotLegend,\n pivotRowDimensions,\n tooltip,\n} from '../pipes'\n\nconst pie: SpecPipeline = [initPie, color, backgroundColor, dataset, label, tooltip, legend]\n\nconst pivotPie: SpecPipeline = [\n initPivot,\n pivotGridStyle,\n pivotIndicatorsAsRow,\n datasetPivot,\n pivotIndicators([initPie, color, backgroundColor, datasetPivotPlaceholder, label, tooltip]),\n pivotRowDimensions,\n pivotColumnDimensions,\n pivotLegend,\n]\n\nexport const pieSpecPipeline: SpecPipeline = [pivotAdapter(pie, pivotPie)]\n","import type { AdvancedPipelineContext, AdvancedVSeed } from 'src/types'\nimport { execPipeline } from '../../pipeline'\nimport type { Builder } from './builder'\n\nexport const buildAdvanced = (builder: Builder): AdvancedVSeed | null => {\n const { chartType } = builder.vseed\n if (!chartType) {\n throw new Error('chartType is nil in buildAdvanced')\n }\n\n const pipeline = builder.getAdvancedPipeline(chartType)\n if (!pipeline) {\n throw new Error(`no advanced pipeline for chartType ${chartType}`)\n }\n\n const context: AdvancedPipelineContext = {\n vseed: builder.vseed,\n customTheme: builder.getThemeMap(),\n }\n\n try {\n return execPipeline<AdvancedVSeed, AdvancedPipelineContext>(pipeline, context)\n } catch (e) {\n console.error(e)\n throw new Error(`buildAdvanced error, see error info in console`)\n }\n}\n","import type { Spec } from 'src/types'\nimport type { Builder } from './builder'\nimport type { AdvancedVSeed, SpecPipelineContext } from 'src/types'\nimport { execPipeline } from '../../pipeline'\n\nexport const buildSpec = (builder: Builder, advancedVSeed: AdvancedVSeed): Spec => {\n const { chartType } = builder.vseed\n if (!chartType) {\n throw new Error('chartType is nil in buildSpec')\n }\n\n const pipeline = builder.getSpecPipeline(chartType)\n if (!pipeline) {\n throw new Error(`no spec pipeline for chartType ${chartType}`)\n }\n\n const context: SpecPipelineContext = {\n vseed: builder.vseed,\n advancedVSeed,\n }\n try {\n return execPipeline<Spec, SpecPipelineContext>(pipeline, context)\n } catch (e) {\n console.error(e)\n throw new Error(`buildSpec error, see error info in console`)\n }\n}\n","import type { Spec } from 'src/types'\nimport type { Builder } from './builder'\n\nexport const build = (builder: Builder): Spec => {\n console.log('debug vseed', builder.vseed)\n const advancedVSeed = builder.buildAdvanced()\n console.log('debug advancedVSeed', advancedVSeed)\n if (!advancedVSeed) {\n throw new Error('advancedVSeed is null')\n }\n const spec = builder.buildSpec(advancedVSeed)\n console.log('debug spec', spec)\n return spec\n}\n","import type {\n AdvancedPipeline,\n AdvancedVSeed,\n ChartType,\n CustomThemeConfig,\n SpecPipeline,\n VSeed,\n VSeedBuilder,\n} from 'src/types'\nimport { buildAdvanced } from './buildAdvanced'\nimport { buildSpec } from './buildSpec'\nimport { build } from './build'\n\nexport class Builder implements VSeedBuilder {\n private _vseed: VSeed\n private _advancedVSeed: AdvancedVSeed | null = null\n\n constructor(vseed: VSeed) {\n this._vseed = vseed\n }\n\n build = () => build(this)\n\n buildSpec = (advanced: AdvancedVSeed) => buildSpec(this, advanced)\n\n buildAdvanced = () => buildAdvanced(this)\n\n getAdvancedPipeline = (chartType: ChartType) => Builder._advancedPipelineMap[chartType] as AdvancedPipeline\n getSpecPipeline = (chartType: ChartType) => Builder._specPipelineMap[chartType] as SpecPipeline\n getTheme = (themeKey: string) => Builder._themeMap[themeKey]\n getThemeMap = () => Builder._themeMap\n\n get vseed() {\n return this._vseed\n }\n\n set vseed(value) {\n this._vseed = value\n }\n\n get advancedVSeed() {\n return this._advancedVSeed\n }\n\n set advancedVSeed(value) {\n this._advancedVSeed = value\n }\n\n static _advancedPipelineMap: Partial<Record<ChartType, AdvancedPipeline>> = {}\n static _specPipelineMap: Partial<Record<ChartType, SpecPipeline>> = {}\n static _themeMap: Record<string, CustomThemeConfig> = {}\n static from = (vseed: VSeed) => new Builder(vseed)\n}\n","import {\n areaAdvancedPipeline,\n areaPercentAdvancedPipeline,\n areaPercentSpecPipeline,\n areaSpecPipeline,\n barAdvancedPipeline,\n barParallelAdvancedPipeline,\n barParallelSpecPipeline,\n barPercentAdvancedPipeline,\n barPercentSpecPipeline,\n barSpecPipeline,\n columnAdvancedPipeline,\n columnParallelAdvancedPipeline,\n columnParallelSpecPipeline,\n columnPercentAdvancedPipeline,\n columnPercentSpecPipeline,\n columnSpecPipeline,\n lineAdvancedPipeline,\n lineSpecPipeline,\n pieAdvancedPipeline,\n pieSpecPipeline,\n} from '../../pipeline'\nimport { Builder } from '../builder'\n\nexport const registerAll = () => {\n registerLine()\n registerColumn()\n registerColumnParallel()\n registerColumnPercent()\n registerBar()\n registerBarParallel()\n registerBarPercent()\n registerArea()\n registerAreaPercent()\n}\n\nexport const registerColumn = () => {\n Builder._advancedPipelineMap['column'] = columnAdvancedPipeline\n Builder._specPipelineMap['column'] = columnSpecPipeline\n}\n\nexport const registerBar = () => {\n Builder._advancedPipelineMap['bar'] = barAdvancedPipeline\n Builder._specPipelineMap['bar'] = barSpecPipeline\n}\n\nexport const registerLine = () => {\n Builder._advancedPipelineMap['line'] = lineAdvancedPipeline\n Builder._specPipelineMap['line'] = lineSpecPipeline\n}\n\nexport const registerArea = () => {\n Builder._advancedPipelineMap['area'] = areaAdvancedPipeline\n Builder._specPipelineMap['area'] = areaSpecPipeline\n}\n\nexport const registerAreaPercent = () => {\n Builder._advancedPipelineMap['areaPercent'] = areaPercentAdvancedPipeline\n Builder._specPipelineMap['areaPercent'] = areaPercentSpecPipeline\n}\n\nexport const registerBarPercent = () => {\n Builder._advancedPipelineMap['barPercent'] = barPercentAdvancedPipeline\n Builder._specPipelineMap['barPercent'] = barPercentSpecPipeline\n}\n\nexport const registerColumnPercent = () => {\n Builder._advancedPipelineMap['columnPercent'] = columnPercentAdvancedPipeline\n Builder._specPipelineMap['columnPercent'] = columnPercentSpecPipeline\n}\n\nexport const registerColumnParallel = () => {\n Builder._advancedPipelineMap['columnParallel'] = columnParallelAdvancedPipeline\n Builder._specPipelineMap['columnParallel'] = columnParallelSpecPipeline\n}\n\nexport const registerBarParallel = () => {\n Builder._advancedPipelineMap['barParallel'] = barParallelAdvancedPipeline\n Builder._specPipelineMap['barParallel'] = barParallelSpecPipeline\n}\n\nexport const registerPie = () => {\n Builder._advancedPipelineMap['pie'] = pieAdvancedPipeline\n Builder._specPipelineMap['pie'] = pieSpecPipeline\n}\n","import type { CustomThemeConfig } from 'src/types'\n\nexport const darkTheme = (): CustomThemeConfig => {\n return {\n baseConfig: {\n vtable: {\n backgroundColor: '#141414',\n },\n vchart: {\n backgroundColor: '#141414',\n color: {\n colorScheme: [\n '#2E62F1',\n '#4DC36A',\n '#FF8406',\n '#FFCC00',\n '#4F44CF',\n '#5AC8FA',\n '#003A8C',\n '#B08AE2',\n '#FF6341',\n '#98DD62',\n ],\n },\n label: {\n enable: true,\n },\n tooltip: {\n enable: true,\n },\n legend: {\n enable: true,\n },\n },\n },\n }\n}\n","import type { CustomThemeConfig } from 'src/types'\n\nexport const lightTheme = (): CustomThemeConfig => {\n return {\n baseConfig: {\n vtable: {\n backgroundColor: '#ffffff',\n },\n vchart: {\n backgroundColor: '#ffffff',\n color: {\n colorScheme: [\n '#8D72F6',\n '#5766EC',\n '#66A3FE',\n '#51D5E6',\n '#4EC0B3',\n '#F9DF90',\n '#F9AD71',\n '#ED8888',\n '#E9A0C3',\n '#D77DD3',\n ],\n },\n label: {\n enable: true,\n },\n tooltip: {\n enable: true,\n },\n legend: {\n enable: true,\n },\n },\n },\n }\n}\n","import type { CustomThemeConfig } from 'src/types'\nimport { Builder } from '../builder'\nimport { darkTheme, lightTheme } from '../../theme'\n\nexport const registerCustomTheme = (key: string, themeConfig: CustomThemeConfig) => {\n Builder._themeMap[key] = themeConfig\n}\n\nexport const registerLightTheme = () => {\n registerCustomTheme('light', lightTheme())\n}\n\nexport const registerDarkTheme = () => {\n registerCustomTheme('dark', darkTheme())\n}\n","import {\n registerArea,\n registerAreaPercent,\n registerBar,\n registerBarParallel,\n registerBarPercent,\n registerColumn,\n registerColumnParallel,\n registerColumnPercent,\n registerLine,\n registerPie,\n} from './chartType'\nimport { registerDarkTheme, registerLightTheme } from './theme'\n\nexport const registerAll = () => {\n // ChartType\n registerLine()\n registerColumn()\n registerColumnParallel()\n registerColumnPercent()\n registerBar()\n registerBarParallel()\n registerBarPercent()\n registerArea()\n registerAreaPercent()\n registerPie()\n\n // Theme\n registerLightTheme()\n registerDarkTheme()\n}\n","import { z } from 'zod'\n\nexport type ChartType =\n | 'table'\n | 'pivotTable'\n | 'line'\n | 'column'\n | 'columnPercent'\n | 'columnParallel'\n | 'bar'\n | 'barPercent'\n | 'barParallel'\n | 'area'\n | 'areaPercent'\n | 'rose'\n | 'pie'\n | 'donut'\n | 'dualAxis'\n\nexport enum ChartTypeEnum {\n Table = 'table',\n PivotTable = 'pivotTable',\n Line = 'line',\n Column = 'column',\n ColumnPercent = 'columnPercent',\n ColumnParallel = 'columnParallel',\n Bar = 'bar',\n BarPercent = 'barPercent',\n BarParallel = 'barParallel',\n Area = 'area',\n AreaPercent = 'areaPercent',\n Rose = 'rose',\n Pie = 'pie',\n Donut = 'donut',\n DualAxis = 'dualAxis',\n}\n\nexport const zChartType = z.enum([\n 'table',\n 'pivotTable',\n 'line',\n 'column',\n 'columnPercent',\n 'columnParallel',\n 'bar',\n 'barPercent',\n 'barParallel',\n 'area',\n 'areaPercent',\n 'rose',\n 'pie',\n 'donut',\n 'dualAxis',\n])\n","import { z } from 'zod'\n\n/**\n * example dataset link:\n * [\n * { date: '2019', 20001:'type', profit:10, sales: null, },\n * { date: '2020', 20001:'type', profit:30, sales: -1.1, },\n * { date: '2021', 20001:'type', profit:30, sales: 1, },\n * { date: '2023', 20001:'type', profit:40, sales: undefined, },\n * { date: '2022', 20001:'type', profit:50, sales: 100, },\n * ]\n */\nexport const zDatum = z.record(z.string().or(z.number()), z.any())\nexport const zDataset = z.array(zDatum)\n\nexport type Datum = z.infer<typeof zDatum>\nexport type Dataset = z.infer<typeof zDataset>\n","import { z } from 'zod'\n\nexport const zDimension = z.object({\n id: z.string(),\n alias: z.string().optional(),\n visible: z.boolean().default(true).optional(),\n location: z.enum(['dimension', 'rowDimension', 'columnDimension']),\n})\n\nexport const zDimensions = z.array(zDimension).optional()\n\nexport type Dimension = z.infer<typeof zDimension>\n\nexport type Dimensions = z.infer<typeof zDimensions>\n","import { z } from 'zod'\n\nexport const zMeasure = z.object({\n id: z.string(),\n alias: z.string().optional(),\n visible: z.boolean().default(true).optional(),\n autoFormat: z.boolean().default(true).optional(),\n format: z\n .object({\n type: z\n .enum(['number', 'percent', 'permille'])\n .optional()\n .default('number'),\n ratio: z.number().optional().default(1),\n symbol: z.string().optional().default(''),\n thousandSeparator: z.boolean().optional().default(false),\n decimalPlaces: z.number().optional().default(2),\n round: z.enum(['round', 'floor', 'ceil']).optional().default('round'),\n prefix: z.string().optional().default(''),\n suffix: z.string().optional().default(''),\n })\n .optional(),\n})\n\nexport const zMeasureGroup = z.object({\n id: z.string(),\n alias: z.string().optional(),\n visible: z.boolean().default(true).optional(),\n get children() {\n return z.array(zMeasureGroup.or(zMeasure)).optional()\n },\n})\n\nexport const zMeasures = z.array(zMeasureGroup.or(zMeasure)).optional()\n\nexport type Measures = z.infer<typeof zMeasures>\nexport type Measure = z.infer<typeof zMeasure>\nexport type MeasureGroup = z.infer<typeof zMeasureGroup>\n","import { z } from 'zod'\n\nexport type FoldInfo = {\n foldMap: Record<string, string | undefined>\n measureId: string\n measureName: string\n measureValue: string\n}\n\nexport type UnfoldInfo = {\n groupName: string\n colorItems: string[]\n}\n\nexport const zFoldInfo = z.object({\n foldMap: z.record(z.string(), z.string().or(z.undefined())),\n measureId: z.string(),\n measureName: z.string(),\n measureValue: z.string(),\n})\nexport const zUnfoldInfo = z.object({\n colorItems: z.array(z.string()),\n groupName: z.string(),\n})\n\nexport const zDatasetReshapeInfo = z.array(\n z.object({\n id: z.string(),\n foldInfo: zFoldInfo,\n unfoldInfo: zUnfoldInfo,\n }),\n)\n\nexport type DatasetReshapeInfo = z.infer<typeof zDatasetReshapeInfo>\n","import { z } from 'zod'\n\nexport const zEncoding = z.array(\n z.object({\n x: z.array(z.string()).optional(),\n y: z.array(z.string()).optional(),\n color: z.array(z.string()).optional(),\n group: z.array(z.string()).optional(),\n angle: z.array(z.string()).optional(),\n radius: z.array(z.string()).optional(),\n tooltip: z.array(z.string()).optional(),\n }),\n)\n\nexport type Encoding = Array<{\n x?: string[]\n y?: string[]\n color?: string[]\n group?: string[]\n angle?: string[]\n radius?: string[]\n tooltip?: string[]\n}>\n","import { z } from 'zod'\nexport const zBackgroundColor = z.string().default('transparent').optional()\n\n/**\n * 图表的背景颜色\n * @default transparent 默认为透明背景\n * @description 背景颜色可以是颜色字符串, 例如'red', 'blue', 也可以是hex, rgb或rgba'#ff0000', 'rgba(255,0,0,0.5)'\n */\nexport type BackgroundColor = string | undefined\n","import { z } from 'zod'\n\nexport const zLabel = z.object({\n enable: z.boolean().default(true).optional(),\n})\n\nexport type Label = {\n /**\n * 标签功能是否开启\n * @default true\n */\n enable: boolean\n}\n","import { z } from 'zod'\n\nexport const zColor = z.object({\n colorScheme: z.array(z.string()).optional(),\n colorMapping: z.record(z.string(), z.string()).optional(),\n})\n\nexport type Color = {\n /**\n * 颜色配色方案\n * @description 颜色配色方案用于定义图表中不同元素的颜色\n * @example ['#FFCDD2,#F8BBD0,#E1BEE7,#D1C4E9,#C5CAE9,#BBDEFB,#B3E5FC,#B2EBF2,#B2DFDB,#C8E6C9,#DCEDC8,#F0F4C3,#FFF9C4,#FFECB3,#FFE0B2']\n */\n colorScheme: string[]\n /**\n * 颜色映射\n * @description 颜色映射用于将数据值映射到具体的颜色\n * @example\n * {\n * 'profit': 'red',\n * 'sales': 'blue',\n * }\n */\n colorMapping: Record<string, string>\n}\n","import { z } from 'zod'\n\nexport const zTooltip = z.object({\n enable: z.boolean().default(true).optional(),\n})\n\nexport type Tooltip = {\n /**\n * 提示信息功能是否开启\n * @default true\n */\n enable: boolean\n}\n","import { z } from 'zod'\n\nexport const zLegend = z.object({\n enable: z.boolean().default(true).optional(),\n})\n\nexport type Legend = {\n /**\n * 图例功能是否开启\n * @default true\n */\n enable: boolean\n}\n","import { z } from 'zod'\nimport { zBackgroundColor } from './backgroundColor'\nimport { zLabel } from './label'\nimport { zColor } from './color'\nimport { zTooltip } from './tooltip'\nimport { zLegend } from './legend'\n\nconst zVChartBaseConfig = z.object({\n backgroundColor: zBackgroundColor,\n label: zLabel.optional(),\n color: zColor.optional(),\n tooltip: zTooltip.optional(),\n legend: zLegend.optional(),\n})\n\nconst zVTableBaseConfig = z.object({\n backgroundColor: zBackgroundColor,\n})\n\nexport const zBaseConfig = z.object({\n vchart: zVChartBaseConfig.optional(),\n vtable: zVTableBaseConfig.optional(),\n})\n\nexport type VTableBaseConfig = z.infer<typeof zVTableBaseConfig>\nexport type VChartBaseConfig = z.infer<typeof zVChartBaseConfig>\n","import { z } from 'zod'\nimport { zBaseConfig } from '../baseConfig'\n\nexport const zCustomThemeConfig = z.object({\n baseConfig: zBaseConfig.optional(),\n})\n\nexport const zCustomTheme = z.record(z.string(), zCustomThemeConfig).optional()\n\nexport type CustomTheme = z.infer<typeof zCustomTheme>\nexport type CustomThemeConfig = z.infer<typeof zCustomThemeConfig>\n","import { z } from 'zod'\n\nexport const zTheme = z.string()\n\ntype Light = 'light' & { readonly brand: unique symbol }\ntype Dark = 'dark' & { readonly brand: unique symbol }\n\n/**\n * 主题\n * @default light\n * @description 内置 light、dark 两种主题, 新的主题可以通过registerTheme自定义主题.\n */\nexport type Theme = Light | Dark | string\n"],"names":["FoldMeasureName","FoldMeasureValue","FoldMeasureId","UnfoldDimensionGroup","Separator","unfoldDimensions","dataset","dimensions","measures","unfoldStartIndex","foldGroupName","dimensionsSeparator","Error","dimensionsToBeUnfolded","unfoldInfo","colorItems","i","datum","colorItem","generateDimGroupName","unique","dimensionsToBeGrouped","dim","String","foldMeasures","measureId","measureName","measureValue","foldInfo","result","Array","index","j","measure","id","alias","emptyReshapeResult","dataReshapeFor2D1M","options","foldMeasureId","foldMeasureName","foldMeasureValue","unfoldDimensionGroup","foldedDataset","finalDataset","dataReshapeFor1D1M","reshapeTo2D1M","advancedVSeed","context","vseed","newDatasets","reshapeTo1D1M","pivotReshapeTo1D1M","measureGroups","datasetReshapeInfo","measureGroup","commonDimensions","groupId","newSubDataset","reshapeInfo","pivotReshapeTo2D1M","encodingXY","encoding","prev","cur","isSingleDimension","x","y","group","color","encodingYX","encodingPolar","radius","angle","initAdvancedVSeed","chartType","execPipeline","pipeline","initialValue","isVTable","isVChart","isPivotChart","hasRowOrColumnDimension","dimension","hasMeasureGroup","autoMeasures","autoMeasureGroup","top100dataset","sample","Object","key","item","undefined","newMeasures","currentGroup","createEmptyMeasureGroup","autoDimensions","vchartBaseConfig","config","pick","vchartTheme","customTheme","theme","themeConfig","mergedConfig","mergeDeep","clone","pivotAdapter","pivotPipeline","usePivotChart","lineAdvancedPipeline","barAdvancedPipeline","barParallelAdvancedPipeline","barPercentAdvancedPipeline","columnAdvancedPipeline","columnParallelAdvancedPipeline","columnPercentAdvancedPipeline","areaAdvancedPipeline","areaPercentAdvancedPipeline","pieAdvancedPipeline","spec","datasetPivot","records","pre","datasetPivotPlaceholder","initColumn","initBar","initBarParallel","initArea","initLine","initColumnParallel","initPie","initPivot","xBand","xLinear","yBand","yLinear","percent","stack","backgroundColor","baseConfig","defaultTooltip","tooltip","enable","label","defaultLegend","legend","pivotLegend","d","colorScheme","legends","colorMapping","pivotIndicators","chartPipeline","indicators","newEncoding","newDatasetReshapeInfo","newContext","chartSpec","pivotIndicatorsAsRow","pivotIndicatorsAsCol","pivotGridStyle","transparent","pivotColumnDimensions","columnDimensions","columns","pivotRowDimensions","rowDimensions","rows","line","pivotLine","lineSpecPipeline","column","pivotColumn","columnSpecPipeline","columnParallel","pivotColumnParallel","columnParallelSpecPipeline","columnPercent","pivotColumnPercent","columnPercentSpecPipeline","bar","pivotBar","barSpecPipeline","barParallel","pivotBarParallel","barParallelSpecPipeline","barPercent","pivotBarPercent","barPercentSpecPipeline","area","pivotArea","areaSpecPipeline","areaPercent","pivotAreaPercent","areaPercentSpecPipeline","pie","pivotPie","pieSpecPipeline","buildAdvanced","builder","e","console","buildSpec","build","Builder","advanced","themeKey","value","registerColumn","registerBar","registerLine","registerArea","registerAreaPercent","registerBarPercent","registerColumnPercent","registerColumnParallel","registerBarParallel","registerPie","darkTheme","lightTheme","registerCustomTheme","registerLightTheme","registerDarkTheme","registerAll","zChartType","z","zDatum","zDataset","zDimension","zDimensions","zMeasure","zMeasureGroup","zMeasures","zFoldInfo","zUnfoldInfo","zDatasetReshapeInfo","zEncoding","zBackgroundColor","zLabel","zColor","zTooltip","zLegend","zVChartBaseConfig","zVTableBaseConfig","zBaseConfig","zCustomThemeConfig","zCustomTheme","zTheme"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"index.js","sources":["webpack://@visactor/vseed/./src/pipeline/advanced/pipes/init/initAdvancedVSeed.ts","webpack://@visactor/vseed/./src/pipeline/utils/pipeline.ts","webpack://@visactor/vseed/./src/pipeline/utils/chatType.ts","webpack://@visactor/vseed/./src/pipeline/advanced/pipes/init/autoMeasures.ts","webpack://@visactor/vseed/./src/pipeline/advanced/pipes/init/autoDimensions.ts","webpack://@visactor/vseed/./src/dataReshape/constant.ts","webpack://@visactor/vseed/./src/dataReshape/unfoldDimensions.ts","webpack://@visactor/vseed/./src/dataReshape/foldMeasures.ts","webpack://@visactor/vseed/./src/dataReshape/dataReshapeFor2D1M.ts","webpack://@visactor/vseed/./src/dataReshape/dataReshapeFor1D1M.ts","webpack://@visactor/vseed/./src/pipeline/advanced/pipes/reshape/reshapeTo2D1M.ts","webpack://@visactor/vseed/./src/pipeline/advanced/pipes/reshape/reshapeTo1D1M.ts","webpack://@visactor/vseed/./src/pipeline/advanced/pipes/reshape/pivotReshapeTo1D1M.ts","webpack://@visactor/vseed/./src/pipeline/advanced/pipes/reshape/pivotReshapeTo2D1M.ts","webpack://@visactor/vseed/./src/pipeline/advanced/pipes/encoding/encodingXY.ts","webpack://@visactor/vseed/./src/pipeline/advanced/pipes/encoding/encodingYX.ts","webpack://@visactor/vseed/./src/pipeline/advanced/pipes/encoding/encodingPolar.ts","webpack://@visactor/vseed/./src/pipeline/advanced/pipes/baseConfig/baseConfig.ts","webpack://@visactor/vseed/./src/pipeline/advanced/pipes/config/config.ts","webpack://@visactor/vseed/./src/pipeline/advanced/pipes/theme/theme.ts","webpack://@visactor/vseed/./src/pipeline/advanced/pipes/pivot/pivotAdapter.ts","webpack://@visactor/vseed/./src/pipeline/advanced/pipeline/line.ts","webpack://@visactor/vseed/./src/pipeline/advanced/pipeline/bar.ts","webpack://@visactor/vseed/./src/pipeline/advanced/pipeline/barParallel.ts","webpack://@visactor/vseed/./src/pipeline/advanced/pipeline/barPercent.ts","webpack://@visactor/vseed/./src/pipeline/advanced/pipeline/column.ts","webpack://@visactor/vseed/./src/pipeline/advanced/pipeline/columnParallel.ts","webpack://@visactor/vseed/./src/pipeline/advanced/pipeline/columnPercent.ts","webpack://@visactor/vseed/./src/pipeline/advanced/pipeline/area.ts","webpack://@visactor/vseed/./src/pipeline/advanced/pipeline/areaPercent.ts","webpack://@visactor/vseed/./src/pipeline/advanced/pipeline/pie.ts","webpack://@visactor/vseed/./src/pipeline/spec/pipes/dataset/dataset.ts","webpack://@visactor/vseed/./src/pipeline/spec/pipes/dataset/datasetPivot.ts","webpack://@visactor/vseed/./src/pipeline/spec/pipes/init/column.ts","webpack://@visactor/vseed/./src/pipeline/spec/pipes/init/bar.ts","webpack://@visactor/vseed/./src/pipeline/spec/pipes/init/barParallel.ts","webpack://@visactor/vseed/./src/pipeline/spec/pipes/init/area.ts","webpack://@visactor/vseed/./src/pipeline/spec/pipes/init/line.ts","webpack://@visactor/vseed/./src/pipeline/spec/pipes/init/columnParallel.ts","webpack://@visactor/vseed/./src/pipeline/spec/pipes/init/pie.ts","webpack://@visactor/vseed/./src/pipeline/spec/pipes/init/pivot.ts","webpack://@visactor/vseed/./src/pipeline/spec/pipes/axes/xBand.ts","webpack://@visactor/vseed/./src/pipeline/spec/pipes/axes/xLinear.ts","webpack://@visactor/vseed/./src/pipeline/spec/pipes/axes/yBand.ts","webpack://@visactor/vseed/./src/pipeline/spec/pipes/axes/yLinear.ts","webpack://@visactor/vseed/./src/pipeline/spec/pipes/percent/percent.ts","webpack://@visactor/vseed/./src/pipeline/spec/pipes/stack/stack.ts","webpack://@visactor/vseed/./src/pipeline/spec/pipes/backgroundColor/background.ts","webpack://@visactor/vseed/./src/pipeline/spec/pipes/tooltip/tooltip.ts","webpack://@visactor/vseed/./src/pipeline/spec/pipes/label/label.ts","webpack://@visactor/vseed/./src/pipeline/spec/pipes/legend/legend.ts","webpack://@visactor/vseed/./src/pipeline/spec/pipes/legend/pivotLegend.ts","webpack://@visactor/vseed/./src/pipeline/spec/pipes/color/color.ts","webpack://@visactor/vseed/./src/pipeline/spec/pipes/pivotChart/pivotAdapter.ts","webpack://@visactor/vseed/./src/pipeline/spec/pipes/pivotChart/pivotIndicators.ts","webpack://@visactor/vseed/./src/pipeline/spec/pipes/pivotChart/pivotGridStyle.ts","webpack://@visactor/vseed/./src/pipeline/spec/pipes/pivotChart/pivotColumnDimensions.ts","webpack://@visactor/vseed/./src/pipeline/spec/pipes/pivotChart/pivotRowDimensions.ts","webpack://@visactor/vseed/./src/pipeline/spec/pipeline/line.ts","webpack://@visactor/vseed/./src/pipeline/spec/pipeline/column.ts","webpack://@visactor/vseed/./src/pipeline/spec/pipeline/columnParallel.ts","webpack://@visactor/vseed/./src/pipeline/spec/pipeline/columnPercent.ts","webpack://@visactor/vseed/./src/pipeline/spec/pipeline/bar.ts","webpack://@visactor/vseed/./src/pipeline/spec/pipeline/barParallel.ts","webpack://@visactor/vseed/./src/pipeline/spec/pipeline/barPercent.ts","webpack://@visactor/vseed/./src/pipeline/spec/pipeline/area.ts","webpack://@visactor/vseed/./src/pipeline/spec/pipeline/areaPercent.ts","webpack://@visactor/vseed/./src/pipeline/spec/pipeline/pie.ts","webpack://@visactor/vseed/./src/builder/builder/buildAdvanced.ts","webpack://@visactor/vseed/./src/builder/builder/buildSpec.ts","webpack://@visactor/vseed/./src/builder/builder/build.ts","webpack://@visactor/vseed/./src/builder/builder/builder.ts","webpack://@visactor/vseed/./src/builder/register/chartType.ts","webpack://@visactor/vseed/./src/theme/dark.ts","webpack://@visactor/vseed/./src/theme/light.ts","webpack://@visactor/vseed/./src/builder/register/theme.ts","webpack://@visactor/vseed/./src/builder/register/all.ts","webpack://@visactor/vseed/./src/types/properties/chartType/chartType.ts","webpack://@visactor/vseed/./src/types/properties/dataset/dataset.ts","webpack://@visactor/vseed/./src/types/properties/dimensions/dimensions.ts","webpack://@visactor/vseed/./src/types/properties/measures/measures.ts","webpack://@visactor/vseed/./src/types/properties/datasetReshapeInfo/datasetReshapeInfo.ts","webpack://@visactor/vseed/./src/types/properties/encoding/encoding.ts","webpack://@visactor/vseed/./src/types/properties/baseConfig/backgroundColor.ts","webpack://@visactor/vseed/./src/types/properties/baseConfig/label.ts","webpack://@visactor/vseed/./src/types/properties/baseConfig/color.ts","webpack://@visactor/vseed/./src/types/properties/baseConfig/tooltip.ts","webpack://@visactor/vseed/./src/types/properties/baseConfig/legend.ts","webpack://@visactor/vseed/./src/types/properties/baseConfig/baseConfig.ts","webpack://@visactor/vseed/./src/types/properties/config/axis.ts","webpack://@visactor/vseed/./src/types/properties/config/bandAxis.ts","webpack://@visactor/vseed/./src/types/properties/config/linearAxis.ts","webpack://@visactor/vseed/./src/types/properties/config/config.ts","webpack://@visactor/vseed/./src/types/properties/theme/customTheme.ts","webpack://@visactor/vseed/./src/types/properties/theme/theme.ts"],"sourcesContent":["import type { AdvancedPipe } from 'src/types'\n\nexport const initAdvancedVSeed: AdvancedPipe = (advancedVSeed, context) => {\n const { vseed } = context\n const { chartType = 'table' } = vseed\n return {\n ...advancedVSeed,\n chartType,\n }\n}\n","import type { ExecPipelineType, Pipe } from 'src/types'\n\n/**\n * 执行pipeline, 每个pipe负责构建结果的一部分, 构建完成后得到完整的目标结果\n * @param pipeline pipeline数组, 每个pipe负责构建结果的一部分\n * @param initialValue 初始值\n * @param context 上下文\n * @returns 执行后的结果\n */\nexport const execPipeline: ExecPipelineType = <T, U>(\n pipeline: Array<Pipe<T, U>>,\n context: U,\n initialValue: Partial<T> = {},\n): T => {\n const result = pipeline.reduce((prev, cur) => {\n return cur(prev, context)\n }, initialValue)\n return result as T\n}\n","import type { AdvancedVSeed, ChartType, MeasureGroup, VSeed } from 'src/types'\n\nexport const isVTable = (chartType: ChartType) => {\n return ['table', 'pivotTable'].includes(chartType)\n}\n\nexport const isVChart = (chartType: ChartType) => {\n return !isVTable(chartType)\n}\n\nexport const isPivotChart = (vseed: VSeed | AdvancedVSeed) => {\n const { measures, dimensions } = vseed\n \n const hasRowOrColumnDimension =\n dimensions &&\n dimensions.some((dimension) => dimension.location === 'rowDimension' || dimension.location === 'columnDimension')\n const hasMeasureGroup = measures && measures.find((measure: MeasureGroup) => measure && measure.children)\n\n return hasRowOrColumnDimension || hasMeasureGroup\n}\n","import { isPivotChart } from '../../../utils'\nimport type { AdvancedPipe, Datum, MeasureGroup } from 'src/types'\n\nexport const autoMeasures: AdvancedPipe = (advancedVSeed, context) => {\n const result = { ...advancedVSeed }\n const { vseed } = context\n const { measures, dataset } = vseed\n\n if (!dataset) {\n throw new Error('dataset is required')\n }\n\n if (dataset.length === 0) {\n return result\n }\n\n if (isPivotChart(vseed)) {\n return autoMeasureGroup(advancedVSeed, context)\n }\n\n if (measures) {\n result.measures = measures\n return result\n }\n\n const top100dataset = dataset.slice(0, 100)\n\n const sample = top100dataset.reduce<Datum>((prev, cur) => {\n return { ...prev, ...cur }\n }, {})\n\n result.measures = Object.keys(sample)\n .filter((key) => {\n return top100dataset.some((item) => typeof item[key] === 'number') && !['', null, undefined].includes(key)\n })\n .map((measure) => ({\n id: measure,\n alias: measure,\n }))\n\n return result\n}\n\nconst autoMeasureGroup: AdvancedPipe = (advancedVSeed, context) => {\n const { vseed } = context\n const { measures } = vseed\n const hasMeasureGroup = measures?.some((measure: MeasureGroup) => measure.children)\n\n if (!measures) {\n return advancedVSeed\n }\n\n // 没有指标组, 则自动添加一个指标组\n if (!hasMeasureGroup) {\n const newMeasures = [\n {\n id: 'measureGroup',\n alias: 'measureGroup',\n children: measures,\n },\n ]\n return {\n ...advancedVSeed,\n measures: newMeasures,\n }\n }\n\n // 存在指标组, 则任意连续的独立指标成组\n let currentGroup: MeasureGroup = createEmptyMeasureGroup()\n const measureGroups: MeasureGroup[] = []\n for (const measure of measures) {\n if ('children' in measure) {\n // 当前指标组之前的所有独立指标成组\n if (currentGroup.children?.length) {\n currentGroup.id = currentGroup.children.map((item) => item.id).join('-')\n currentGroup.alias = currentGroup.children.map((item) => item.alias).join('-')\n measureGroups.push(currentGroup)\n currentGroup = createEmptyMeasureGroup()\n }\n // 当前是指标组\n measureGroups.push(measure)\n } else {\n currentGroup.children?.push(measure)\n }\n }\n\n // 最后一组\n if (currentGroup.children?.length) {\n currentGroup.id = currentGroup.children.map((item) => item.id).join('-')\n currentGroup.alias = currentGroup.children.map((item) => item.alias).join('-')\n measureGroups.push(currentGroup)\n currentGroup = createEmptyMeasureGroup()\n }\n\n advancedVSeed.measures = measureGroups\n return advancedVSeed\n}\n\nconst createEmptyMeasureGroup = () => {\n return {\n id: '',\n alias: '',\n children: [],\n }\n}\n","import type { AdvancedPipe, Datum } from 'src/types'\n\nexport const autoDimensions: AdvancedPipe = (advancedVSeed, context) => {\n const result = { ...advancedVSeed }\n const { vseed } = context\n const { dimensions, dataset } = vseed\n\n const { measures = [] } = advancedVSeed\n if (!dataset) {\n throw new Error('dataset is required')\n }\n\n if (dataset.length === 0) {\n return result\n }\n\n if (dimensions) {\n result.dimensions = dimensions\n return result\n }\n\n const top100dataset = dataset.slice(0, 100)\n\n const sample = top100dataset.reduce<Datum>((prev, cur) => {\n return { ...prev, ...cur }\n }, {})\n\n result.dimensions = Object.keys(sample)\n .filter(\n (key) =>\n top100dataset.some((item) => typeof item[key] === 'string') &&\n !['', null, undefined].includes(key) &&\n !measures.some((measure) => measure.id === key),\n )\n .map((dim) => ({\n id: dim,\n alias: dim,\n location: 'dimension',\n }))\n\n return result\n}\n","// Reshape Measures\nexport const FoldMeasureName = '__MeaName__'\nexport const FoldMeasureValue = '__MeaValue__'\nexport const FoldMeasureId = '__MeaId__'\n\n// Reshape Dimensions\nexport const UnfoldDimensionGroup = '__DimGroup__'\n\nexport const Separator = '-'\n","import type { Dataset, Datum, Dimension, Measure } from 'src/types'\nimport type { UnfoldInfo } from 'src/types'\nimport { UnfoldDimensionGroup, Separator } from './constant'\nimport { unique } from 'remeda'\n\n/**\n * TODO: 优化展开维度的性能\n * 展开指定的维度\n * @description 第一步: 根据指定的维度, 将多个维度展开为N个指标(取决于维值去重后的数量), 随后合并成一个维度.\n */\nexport const unfoldDimensions = (\n dataset: Dataset,\n dimensions: Dimension[],\n measures: Measure[],\n unfoldStartIndex: number = 0,\n foldGroupName: string = UnfoldDimensionGroup,\n dimensionsSeparator: string = Separator,\n): {\n dataset: Dataset\n unfoldInfo: UnfoldInfo\n} => {\n if (unfoldStartIndex < 0 || unfoldStartIndex >= dimensions.length) {\n throw new Error('unfoldStartIndex is out of range')\n }\n\n const dimensionsToBeUnfolded = dimensions.slice(unfoldStartIndex)\n const unfoldInfo: UnfoldInfo = {\n groupName: foldGroupName,\n colorItems: [],\n }\n\n // 指标为空或维度为空, 则不检测\n if (dimensions.length === 0 || measures.length === 0) {\n return {\n dataset,\n unfoldInfo: {\n groupName: foldGroupName,\n colorItems: [],\n },\n }\n }\n\n const colorItems = []\n for (let i = 0; i < dataset.length; i++) {\n const datum = dataset[i]\n const colorItem = generateDimGroupName(dimensionsToBeUnfolded, datum, dimensionsSeparator)\n datum[foldGroupName] = colorItem\n colorItems.push(colorItem)\n }\n\n unfoldInfo.colorItems = unique(colorItems)\n return {\n dataset,\n unfoldInfo,\n }\n}\n\n/**\n * 生成维度组合名称\n * @param dimensionsToBeGrouped 待分组的维度\n * @param datum 数据项\n * @param dimensionsSeparator 维度分隔符\n * @returns 维度组合名称\n */\nexport const generateDimGroupName = (dimensionsToBeGrouped: Dimension[], datum: Datum, dimensionsSeparator: string) => {\n return dimensionsToBeGrouped.map((dim) => String(datum[dim.id])).join(dimensionsSeparator)\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport type { Dataset, FoldInfo, Measure, Measures } from 'src/types'\nimport { FoldMeasureId, FoldMeasureName, FoldMeasureValue } from './constant'\n\n/**\n * 折叠指定的指标\n * @description 合并指定的指标为1个, 无论多少个, 都能转换为1个, 取名为fold, 意为折叠后混合在一起.\n */\nexport const foldMeasures = (\n dataset: Dataset,\n measures: Measure[],\n measureId = FoldMeasureId,\n measureName = FoldMeasureName,\n measureValue = FoldMeasureValue,\n): {\n dataset: Dataset\n foldInfo: FoldInfo\n} => {\n const foldInfo: FoldInfo = {\n measureId,\n measureName,\n measureValue,\n foldMap: {},\n }\n const result: Dataset = new Array(dataset.length * measures.length) as Dataset\n let index = 0\n for (let i = 0; i < dataset.length; i++) {\n for (let j = 0; j < measures.length; j++) {\n const datum: Record<string, any> = { ...dataset[i] }\n\n const measure = measures[j]\n const { id, alias } = measure\n datum[measureId] = id\n datum[measureName] = alias\n datum[measureValue] = dataset[i][id] as unknown\n\n foldInfo.foldMap[id] = alias\n result[index++] = datum\n }\n }\n\n return {\n dataset: result,\n foldInfo,\n }\n}\n\n/**\n * 折叠指定的指标组, 至多支持2层\n * @param dataset\n * @param measures\n * @param measureId\n * @param measureName\n * @param measureValue\n * @returns\n */\nexport const foldMeasureGroups = (\n dataset: Dataset,\n measures: Required<Measures>,\n measureId = '__MeaId__',\n measureName = '__MeaName__',\n measureValue = '__MeaValue__',\n) => {\n const groups: Array<Measures> = []\n if (!measures) {\n return {\n dataset,\n }\n }\n\n // 没有分组, 直接折叠所有指标\n if (!measures.some((measure) => 'children' in measure)) {\n return foldMeasures(dataset, measures, measureId, measureName, measureValue)\n }\n\n measures.forEach((measure) => {\n if ('children' in measure && measure.children) {\n groups.push(measure.children)\n } else {\n groups.push([measure])\n }\n })\n\n // 一组返回一个dataset\n const datasetGroup = groups.map((measures) => {\n if (!measures) {\n return []\n }\n return foldMeasures(dataset, measures, measureId, measureName, measureValue)\n })\n\n return {\n datasetGroup,\n }\n}\n","import type { Dataset, Dimension, FoldInfo, Measure, UnfoldInfo } from 'src/types'\nimport { foldMeasures } from './foldMeasures'\nimport { UnfoldDimensionGroup, FoldMeasureId, FoldMeasureName, FoldMeasureValue } from './constant'\nimport { unfoldDimensions } from './unfoldDimensions'\n\nconst emptyReshapeResult: {\n dataset: Dataset\n foldInfo: FoldInfo\n unfoldInfo: UnfoldInfo\n} = {\n dataset: [],\n foldInfo: {\n foldMap: {},\n measureId: '',\n measureName: '',\n measureValue: '',\n },\n unfoldInfo: {\n colorItems: [],\n groupName: '',\n },\n}\n/**\n * 数据重塑为2个维度1个指标\n * @param dataset\n * @param dimensions\n * @param measures\n * @returns\n */\nexport const dataReshapeFor2D1M = (\n dataset: Dataset,\n dimensions: Dimension[],\n measures: Measure[],\n options?: {\n foldMeasureId?: string\n foldMeasureName?: string\n foldMeasureValue?: string\n unfoldDimensionGroup?: string\n },\n): {\n dataset: Dataset\n foldInfo: FoldInfo\n unfoldInfo: UnfoldInfo\n} => {\n const {\n foldMeasureId = FoldMeasureId,\n foldMeasureName = FoldMeasureName,\n foldMeasureValue = FoldMeasureValue,\n unfoldDimensionGroup = UnfoldDimensionGroup,\n } = options || {}\n if (dimensions.length === 0 && measures.length === 0) {\n return emptyReshapeResult\n }\n\n // 合并所有指标为1个指标\n const { dataset: foldedDataset, foldInfo } = foldMeasures(\n dataset,\n measures,\n foldMeasureId,\n foldMeasureName,\n foldMeasureValue,\n )\n\n if (dimensions.length === 0) {\n const { dataset: finalDataset, unfoldInfo } = unfoldDimensions(\n foldedDataset,\n [\n { id: foldMeasureId, alias: '指标Id', location: 'dimension' },\n { id: foldMeasureName, alias: '指标名称', location: 'dimension' },\n ],\n [{ id: foldMeasureValue, alias: '指标值' }],\n 1,\n unfoldDimensionGroup,\n )\n return { dataset: finalDataset, foldInfo, unfoldInfo }\n } else {\n // 展开指定的维度为指标\n const { dataset: finalDataset, unfoldInfo } = unfoldDimensions(\n foldedDataset,\n [...dimensions, { id: foldMeasureName, alias: '指标名称', location: 'dimension' }],\n [{ id: foldMeasureValue, alias: '指标值' }],\n 1,\n unfoldDimensionGroup,\n )\n return { dataset: finalDataset, foldInfo, unfoldInfo }\n }\n}\n","import type { Dataset, Dimension, FoldInfo, Measure, UnfoldInfo } from 'src/types'\nimport { foldMeasures } from './foldMeasures'\nimport { UnfoldDimensionGroup, FoldMeasureId, FoldMeasureName, FoldMeasureValue } from './constant'\nimport { unfoldDimensions } from './unfoldDimensions'\n\nconst emptyReshapeResult = {\n dataset: [],\n foldInfo: {\n foldMap: {},\n measureId: '',\n measureName: '',\n measureValue: '',\n },\n unfoldInfo: {\n groupName: '',\n colorItems: [],\n },\n}\n/**\n * 数据重塑为1个维度1个指标\n * @param dataset\n * @param dimensions\n * @param measures\n * @returns\n */\nexport const dataReshapeFor1D1M = (\n dataset: Dataset,\n dimensions: Dimension[],\n measures: Measure[],\n options?: {\n foldMeasureId?: string\n foldMeasureName?: string\n foldMeasureValue?: string\n unfoldDimensionGroup?: string\n },\n): {\n dataset: Dataset\n foldInfo: FoldInfo\n unfoldInfo: UnfoldInfo\n} => {\n const {\n foldMeasureId = FoldMeasureId,\n foldMeasureName = FoldMeasureName,\n foldMeasureValue = FoldMeasureValue,\n unfoldDimensionGroup = UnfoldDimensionGroup,\n } = options || {}\n\n if (dimensions.length === 0 && measures.length === 0) {\n return emptyReshapeResult\n }\n\n // 合并所有指标为1个指标\n const { dataset: foldedDataset, foldInfo } = foldMeasures(\n dataset,\n measures,\n foldMeasureId,\n foldMeasureName,\n foldMeasureValue,\n )\n\n if (dimensions.length === 0) {\n const { dataset: finalDataset, unfoldInfo } = unfoldDimensions(\n foldedDataset,\n [{ id: foldMeasureName, alias: '指标名称', location: 'dimension' }],\n [{ id: foldMeasureValue, alias: '指标值' }],\n 0,\n unfoldDimensionGroup,\n )\n return { dataset: finalDataset, foldInfo, unfoldInfo }\n } else {\n // 展开指定的维度为指标\n const { dataset: finalDataset, unfoldInfo } = unfoldDimensions(\n foldedDataset,\n [...dimensions, { id: foldMeasureName, alias: '指标名称', location: 'dimension' }],\n [{ id: foldMeasureValue, alias: '指标值' }],\n 0,\n unfoldDimensionGroup,\n )\n return { dataset: finalDataset, foldInfo, unfoldInfo }\n }\n}\n","import { dataReshapeFor2D1M } from '../../../../dataReshape'\nimport type { AdvancedPipe } from 'src/types'\n\n/**\n * 数据重塑, 将任意维度、任意指标, 重塑为2个维度1个指标.\n * @param advancedVSeed\n * @param context\n * @returns\n */\nexport const reshapeTo2D1M: AdvancedPipe = (advancedVSeed, context) => {\n const result = { ...advancedVSeed }\n const { vseed } = context\n const { dataset } = vseed\n const { dimensions, measures } = advancedVSeed\n\n if (!measures || !dimensions || !dataset) {\n return result\n }\n\n if (measures.length === 0) {\n throw new Error('measures can not be empty')\n }\n\n const { dataset: newDatasets, foldInfo, unfoldInfo } = dataReshapeFor2D1M(dataset, dimensions, measures)\n\n return {\n ...result,\n dataset: newDatasets,\n datasetReshapeInfo: [\n {\n id: '2D1M',\n foldInfo,\n unfoldInfo,\n },\n ],\n dimensions,\n measures,\n }\n}\n","import { dataReshapeFor1D1M } from '../../../../dataReshape'\nimport type { AdvancedPipe } from 'src/types'\n\n/**\n * 数据重塑, 将任意维度、任意指标, 重塑为2个维度1个指标.\n * @param advancedVSeed\n * @param context\n * @returns\n */\nexport const reshapeTo1D1M: AdvancedPipe = (advancedVSeed, context) => {\n const result = { ...advancedVSeed }\n const { vseed } = context\n const { dataset } = vseed\n const { dimensions, measures } = advancedVSeed\n if (!measures || !dimensions || !dataset) {\n return result\n }\n\n if (measures.length === 0) {\n throw new Error('measures can not be empty')\n }\n\n const { dataset: newDatasets, foldInfo, unfoldInfo } = dataReshapeFor1D1M(dataset, dimensions, measures)\n\n return {\n ...result,\n dataset: newDatasets,\n datasetReshapeInfo: [\n {\n id: '1D1M',\n foldInfo,\n unfoldInfo,\n },\n ],\n }\n}\n","import {\n FoldMeasureId,\n FoldMeasureName,\n FoldMeasureValue,\n UnfoldDimensionGroup,\n} from '../../../../dataReshape/constant'\nimport { dataReshapeFor1D1M } from '../../../../dataReshape'\nimport type { AdvancedPipe, Dataset, DatasetReshapeInfo, MeasureGroup } from 'src/types'\n\n/**\n * 数据重塑为透视结构, 如果存在指标分组, 则将数据按组划分. 如果存在行列维度, 则生成行列树结构.\n * @param advancedVSeed\n * @param context\n * @returns\n */\nexport const pivotReshapeTo1D1M: AdvancedPipe = (advancedVSeed, context) => {\n const result = { ...advancedVSeed }\n const { vseed } = context\n const { dataset } = vseed\n const { dimensions, measures } = advancedVSeed\n\n if (!measures || !dimensions) {\n return result\n }\n\n const measureGroups: MeasureGroup[] = []\n if (measures) {\n measures.forEach((measure: MeasureGroup) => {\n if (measure.children && measure.children.length > 0) {\n measureGroups.push(measure)\n }\n })\n }\n const newDatasets: Dataset = []\n const datasetReshapeInfo: DatasetReshapeInfo = []\n measureGroups.forEach((measureGroup) => {\n const measures = measureGroup.children\n if (!measures) {\n return\n }\n\n const commonDimensions = dimensions.filter((dim) => dim.location === 'dimension')\n const groupId = measureGroup.id\n const {\n dataset: newSubDataset,\n foldInfo,\n unfoldInfo,\n } = dataReshapeFor1D1M(dataset, commonDimensions, measures, {\n foldMeasureId: FoldMeasureId,\n foldMeasureName: FoldMeasureName,\n foldMeasureValue: FoldMeasureValue + groupId,\n unfoldDimensionGroup: UnfoldDimensionGroup,\n })\n const reshapeInfo = {\n id: groupId,\n foldInfo,\n unfoldInfo,\n }\n newDatasets.push(newSubDataset)\n datasetReshapeInfo.push(reshapeInfo)\n })\n\n return {\n ...result,\n dataset: newDatasets,\n datasetReshapeInfo: datasetReshapeInfo,\n }\n}\n","import {\n FoldMeasureId,\n FoldMeasureName,\n FoldMeasureValue,\n UnfoldDimensionGroup,\n} from '../../../../dataReshape/constant'\nimport { dataReshapeFor2D1M } from '../../../../dataReshape'\nimport type { AdvancedPipe, Dataset, DatasetReshapeInfo, MeasureGroup } from 'src/types'\n\n/**\n * 数据重塑为透视结构, 如果存在指标分组, 则将数据按组划分. 如果存在行列维度, 则生成行列树结构.\n * @param advancedVSeed\n * @param context\n * @returns\n */\nexport const pivotReshapeTo2D1M: AdvancedPipe = (advancedVSeed, context) => {\n const result = { ...advancedVSeed }\n const { vseed } = context\n const { dataset } = vseed\n const { dimensions, measures } = advancedVSeed\n\n if (!measures || !dimensions) {\n return result\n }\n\n const measureGroups: MeasureGroup[] = []\n if (measures) {\n measures.forEach((measure: MeasureGroup) => {\n if (measure.children && measure.children.length > 0) {\n measureGroups.push(measure)\n }\n })\n }\n const commonDimensions = dimensions.filter((dim) => dim.location === 'dimension')\n\n const newDatasets: Dataset = []\n const datasetReshapeInfo: DatasetReshapeInfo = []\n measureGroups.forEach((measureGroup) => {\n const measures = measureGroup.children\n if (!measures) {\n return\n }\n const groupId = measureGroup.id\n const {\n dataset: newSubDataset,\n foldInfo,\n unfoldInfo,\n } = dataReshapeFor2D1M(dataset, commonDimensions, measures, {\n foldMeasureId: FoldMeasureId,\n foldMeasureName: FoldMeasureName,\n foldMeasureValue: FoldMeasureValue + groupId,\n unfoldDimensionGroup: UnfoldDimensionGroup,\n })\n const reshapeInfo = {\n id: groupId,\n foldInfo,\n unfoldInfo,\n }\n newDatasets.push(newSubDataset)\n datasetReshapeInfo.push(reshapeInfo)\n })\n\n return {\n ...result,\n dataset: newDatasets,\n datasetReshapeInfo: datasetReshapeInfo,\n }\n}\n","import type { AdvancedPipe } from 'src/types'\nimport type { Encoding } from 'src/types'\n\nexport const encodingXY: AdvancedPipe = (advancedVSeed) => {\n const result = { ...advancedVSeed }\n const { datasetReshapeInfo, dimensions } = advancedVSeed\n if (!datasetReshapeInfo || !dimensions) {\n return result\n }\n\n const encoding = datasetReshapeInfo.reduce<Encoding>((prev, cur) => {\n const { foldInfo, unfoldInfo } = cur\n\n const isSingleDimension = dimensions.length === 0\n const x = [isSingleDimension ? foldInfo.measureName : dimensions[0].id]\n const y = [foldInfo.measureValue]\n const group = [isSingleDimension ? foldInfo.measureName : unfoldInfo.groupName]\n const color = [foldInfo.measureName]\n\n return [\n ...prev,\n {\n x,\n y,\n group,\n color,\n },\n ] as Encoding\n }, [])\n\n return {\n ...result,\n encoding,\n }\n}\n","import type { AdvancedPipe } from 'src/types'\nimport type { Encoding } from 'src/types'\n\nexport const encodingYX: AdvancedPipe = (advancedVSeed) => {\n const result = { ...advancedVSeed }\n const { datasetReshapeInfo, dimensions } = advancedVSeed\n if (!datasetReshapeInfo || !dimensions) {\n return result\n }\n\n const encoding = datasetReshapeInfo.reduce<Encoding>((prev, cur) => {\n const { foldInfo, unfoldInfo } = cur\n\n const isSingleDimension = dimensions.length === 0\n\n const y = [isSingleDimension ? foldInfo.measureName : dimensions[0].id]\n const x = [foldInfo.measureValue]\n const group = [isSingleDimension ? foldInfo.measureName : unfoldInfo.groupName]\n const color = [foldInfo.measureName]\n\n return [\n ...prev,\n {\n x,\n y,\n group,\n color,\n },\n ] as Encoding\n }, [])\n\n return {\n ...result,\n encoding,\n }\n}\n","import type { AdvancedPipe } from 'src/types'\nimport type { Encoding } from 'src/types'\n\nexport const encodingPolar: AdvancedPipe = (advancedVSeed) => {\n const result = { ...advancedVSeed }\n const { datasetReshapeInfo, dimensions } = advancedVSeed\n if (!datasetReshapeInfo || !dimensions) {\n return result\n }\n\n const encoding = datasetReshapeInfo.reduce<Encoding>((prev, cur) => {\n const { foldInfo, unfoldInfo } = cur\n\n const radius = [foldInfo.measureValue]\n const angle = [unfoldInfo.groupName]\n const group = [unfoldInfo.groupName]\n const color = [unfoldInfo.groupName]\n\n return [\n ...prev,\n {\n angle,\n radius,\n group,\n color,\n },\n ] as Encoding\n }, [])\n\n return {\n ...result,\n encoding,\n }\n}\n","import { pick } from 'remeda'\nimport type { AdvancedPipe, VChartBaseConfig, VTableBaseConfig } from 'src/types'\n\nexport const vchartBaseConfig: AdvancedPipe = (advancedVSeed, context) => {\n const { vseed } = context\n\n const result = {\n ...advancedVSeed,\n }\n\n const config: VChartBaseConfig = pick(vseed, ['backgroundColor', 'color', 'label', 'legend', 'tooltip'])\n\n result.baseConfig = {\n vchart: {\n ...config,\n },\n }\n return result\n}\n\nexport const vtableBaseConfig: AdvancedPipe = (advancedVSeed, context) => {\n const { vseed } = context\n const config: VTableBaseConfig = pick(vseed, ['backgroundColor'])\n\n return {\n ...advancedVSeed,\n baseConfig: {\n vtable: {\n ...config,\n },\n },\n }\n}\n","import { pick } from 'remeda'\nimport type { AdvancedPipe, AdvancedVSeed, Config } from '../../../../types'\n\nexport const lineConfig: AdvancedPipe = (advancedVSeed, context) => {\n const { vseed } = context\n const { chartType } = vseed\n const result = {\n ...advancedVSeed,\n }\n\n const config = pick(vseed, ['xAxis', 'yAxis']) as Config['line']\n\n result.config = {\n ...(result.config || {}),\n [chartType]: {\n ...config,\n },\n }\n\n return result as AdvancedVSeed\n}\n\nexport const pieConfig: AdvancedPipe = (advancedVSeed, context) => {\n const { vseed } = context\n const { chartType } = vseed\n const result = {\n ...advancedVSeed,\n }\n\n const config = pick(vseed, []) as Config['pie']\n\n result.config = {\n ...(result.config || {}),\n [chartType]: {\n ...config,\n },\n }\n\n return result as AdvancedVSeed\n}\n\nexport const barConfig: AdvancedPipe = lineConfig\nexport const barParallelConfig: AdvancedPipe = lineConfig\nexport const barPercentConfig: AdvancedPipe = lineConfig\nexport const columnConfig: AdvancedPipe = lineConfig\nexport const columnParallelConfig: AdvancedPipe = lineConfig\nexport const columnPercentConfig: AdvancedPipe = lineConfig\nexport const areaConfig: AdvancedPipe = lineConfig\nexport const areaPercentConfig: AdvancedPipe = lineConfig\n","import { clone, mergeDeep } from 'remeda'\nimport type { AdvancedPipe, AdvancedVSeed } from 'src/types'\n\nexport const vchartTheme: AdvancedPipe = (advancedVSeed, context) => {\n const { customTheme, vseed } = context\n const { theme = 'light', chartType } = vseed\n const result = {\n ...advancedVSeed,\n } as AdvancedVSeed\n\n if (!customTheme || !customTheme[theme]) {\n return result\n }\n\n const baseConfigVChartTheme = customTheme?.[theme].baseConfig?.vchart\n if (baseConfigVChartTheme) {\n const baseConfigVChart = result.baseConfig?.vchart || {}\n const mergedConfig = mergeDeep(baseConfigVChartTheme, clone(baseConfigVChart))\n result.baseConfig = {\n vchart: mergedConfig,\n }\n }\n\n const chartConfigTheme = customTheme?.[theme].config?.[chartType]\n if (chartConfigTheme) {\n const chartConfig = result.config?.[chartType] || {}\n const mergedConfig = mergeDeep(chartConfigTheme, clone(chartConfig))\n result.config = {\n [chartType]: mergedConfig,\n }\n }\n\n return result\n}\n\nexport const vtableTheme: AdvancedPipe = (advancedVSeed, context) => {\n const { customTheme, vseed } = context\n const { theme = 'light', chartType } = vseed\n const result = {\n ...advancedVSeed,\n } as AdvancedVSeed\n\n if (!customTheme || !customTheme[theme]) {\n return result\n }\n\n const baseConfigVChartTheme = customTheme?.[theme].baseConfig?.vtable\n if (baseConfigVChartTheme) {\n const baseConfigVChart = result.baseConfig?.vchart || {}\n const mergedConfig = mergeDeep(baseConfigVChartTheme, clone(baseConfigVChart))\n result.baseConfig = {\n vtable: mergedConfig,\n }\n }\n\n const chartConfigTheme = customTheme?.[theme].config?.[chartType]\n if (chartConfigTheme) {\n const chartConfig = result.config?.[chartType] || {}\n const mergedConfig = mergeDeep(chartConfigTheme, clone(chartConfig))\n result.config = {\n [chartType]: mergedConfig,\n }\n }\n\n return result\n}\n","import type { AdvancedPipe, AdvancedPipeline, AdvancedPipelineContext, AdvancedVSeed } from 'src/types'\nimport { execPipeline, isPivotChart } from '../../../utils'\n\nexport const pivotAdapter = (pipeline: AdvancedPipeline, pivotPipeline: AdvancedPipeline): AdvancedPipe => {\n return (advancedVSeed, context) => {\n const { vseed } = context\n const usePivotChart = isPivotChart(vseed)\n\n if (usePivotChart) {\n return execPipeline<AdvancedVSeed, AdvancedPipelineContext>(pivotPipeline, context, advancedVSeed)\n }\n\n return execPipeline<AdvancedVSeed, AdvancedPipelineContext>(pipeline, context, advancedVSeed)\n }\n}\n","import type { AdvancedPipeline } from 'src/types'\nimport {\n autoDimensions,\n autoMeasures,\n encodingXY,\n initAdvancedVSeed,\n reshapeTo2D1M,\n vchartBaseConfig,\n vchartTheme,\n pivotAdapter,\n pivotReshapeTo2D1M,\n lineConfig,\n} from '../pipes'\n\nexport const lineAdvancedPipeline: AdvancedPipeline = [\n initAdvancedVSeed,\n autoMeasures,\n autoDimensions,\n pivotAdapter([reshapeTo2D1M], [pivotReshapeTo2D1M]),\n encodingXY,\n vchartBaseConfig,\n lineConfig,\n vchartTheme,\n]\n","import type { AdvancedPipeline } from 'src/types'\nimport {\n initAdvancedVSeed,\n encodingYX,\n vchartBaseConfig,\n vchartTheme,\n autoMeasures,\n autoDimensions,\n reshapeTo2D1M,\n pivotReshapeTo2D1M,\n pivotAdapter,\n barConfig,\n} from '../pipes'\n\nexport const barAdvancedPipeline: AdvancedPipeline = [\n initAdvancedVSeed,\n autoMeasures,\n autoDimensions,\n pivotAdapter([reshapeTo2D1M], [pivotReshapeTo2D1M]),\n encodingYX,\n barConfig,\n vchartBaseConfig,\n vchartTheme,\n]\n","import type { AdvancedPipeline } from 'src/types'\nimport {\n autoDimensions,\n autoMeasures,\n encodingYX,\n initAdvancedVSeed,\n reshapeTo2D1M,\n vchartBaseConfig,\n vchartTheme,\n pivotAdapter,\n pivotReshapeTo2D1M,\n barParallelConfig,\n} from '../pipes'\n\nexport const barParallelAdvancedPipeline: AdvancedPipeline = [\n initAdvancedVSeed,\n autoMeasures,\n autoDimensions,\n pivotAdapter([reshapeTo2D1M], [pivotReshapeTo2D1M]),\n encodingYX,\n barParallelConfig,\n vchartBaseConfig,\n vchartTheme,\n]\n","import type { AdvancedPipeline } from 'src/types'\nimport {\n autoDimensions,\n autoMeasures,\n encodingYX,\n initAdvancedVSeed,\n reshapeTo2D1M,\n vchartBaseConfig,\n vchartTheme,\n pivotAdapter,\n pivotReshapeTo2D1M,\n barPercentConfig\n} from '../pipes'\n\nexport const barPercentAdvancedPipeline: AdvancedPipeline = [\n initAdvancedVSeed,\n autoMeasures,\n autoDimensions,\n pivotAdapter([reshapeTo2D1M], [pivotReshapeTo2D1M]),\n encodingYX,\n barPercentConfig,\n vchartBaseConfig,\n vchartTheme,\n]\n","import type { AdvancedPipeline } from 'src/types'\nimport {\n autoDimensions,\n autoMeasures,\n encodingXY,\n initAdvancedVSeed,\n reshapeTo2D1M,\n vchartBaseConfig,\n vchartTheme,\n pivotAdapter,\n columnConfig,\n} from '../pipes'\nimport { pivotReshapeTo2D1M } from '../pipes/reshape/pivotReshapeTo2D1M'\n\nexport const columnAdvancedPipeline: AdvancedPipeline = [\n initAdvancedVSeed,\n autoMeasures,\n autoDimensions,\n pivotAdapter([reshapeTo2D1M], [pivotReshapeTo2D1M]),\n encodingXY,\n columnConfig,\n vchartBaseConfig,\n vchartTheme,\n]\n","import type { AdvancedPipeline } from 'src/types'\nimport {\n autoDimensions,\n autoMeasures,\n encodingXY,\n initAdvancedVSeed,\n reshapeTo2D1M,\n vchartBaseConfig,\n vchartTheme,\n pivotAdapter,\n pivotReshapeTo2D1M,\n columnParallelConfig,\n} from '../pipes'\n\nexport const columnParallelAdvancedPipeline: AdvancedPipeline = [\n initAdvancedVSeed,\n autoMeasures,\n autoDimensions,\n pivotAdapter([reshapeTo2D1M], [pivotReshapeTo2D1M]),\n encodingXY,\n columnParallelConfig,\n vchartBaseConfig,\n vchartTheme,\n]\n","import type { AdvancedPipeline } from 'src/types'\nimport {\n autoDimensions,\n autoMeasures,\n encodingXY,\n initAdvancedVSeed,\n vchartBaseConfig,\n vchartTheme,\n reshapeTo2D1M,\n pivotReshapeTo2D1M,\n pivotAdapter,\n columnPercentConfig,\n} from '../pipes'\n\nexport const columnPercentAdvancedPipeline: AdvancedPipeline = [\n initAdvancedVSeed,\n autoMeasures,\n autoDimensions,\n pivotAdapter([reshapeTo2D1M], [pivotReshapeTo2D1M]),\n encodingXY,\n columnPercentConfig,\n vchartBaseConfig,\n vchartTheme,\n]\n","import type { AdvancedPipeline } from 'src/types'\nimport {\n autoDimensions,\n autoMeasures,\n encodingXY,\n initAdvancedVSeed,\n pivotReshapeTo2D1M,\n reshapeTo2D1M,\n vchartBaseConfig,\n vchartTheme,\n pivotAdapter,\n areaConfig,\n} from '../pipes'\n\nexport const areaAdvancedPipeline: AdvancedPipeline = [\n initAdvancedVSeed,\n autoMeasures,\n autoDimensions,\n pivotAdapter([reshapeTo2D1M], [pivotReshapeTo2D1M]),\n encodingXY,\n areaConfig,\n vchartBaseConfig,\n vchartTheme,\n]\n","import type { AdvancedPipeline } from 'src/types'\nimport {\n autoDimensions,\n autoMeasures,\n encodingXY,\n initAdvancedVSeed,\n reshapeTo2D1M,\n vchartBaseConfig,\n vchartTheme,\n pivotAdapter,\n pivotReshapeTo2D1M,\n areaPercentConfig,\n} from '../pipes'\n\nexport const areaPercentAdvancedPipeline: AdvancedPipeline = [\n initAdvancedVSeed,\n autoMeasures,\n autoDimensions,\n pivotAdapter([reshapeTo2D1M], [pivotReshapeTo2D1M]),\n encodingXY,\n areaPercentConfig,\n vchartBaseConfig,\n vchartTheme,\n]\n","import type { AdvancedPipeline } from 'src/types'\nimport {\n autoDimensions,\n autoMeasures,\n initAdvancedVSeed,\n vchartBaseConfig,\n vchartTheme,\n pivotAdapter,\n reshapeTo1D1M,\n pivotReshapeTo1D1M,\n encodingPolar,\n pieConfig,\n} from '../pipes'\n\nexport const pieAdvancedPipeline: AdvancedPipeline = [\n initAdvancedVSeed,\n autoMeasures,\n autoDimensions,\n pivotAdapter([reshapeTo1D1M], [pivotReshapeTo1D1M]),\n encodingPolar,\n pieConfig,\n vchartBaseConfig,\n vchartTheme,\n]\n","import type { ISpec } from '@visactor/vchart'\nimport type { SpecPipe } from 'src/types'\n\nexport const dataset: SpecPipe = (spec, context) => {\n const { advancedVSeed } = context\n return {\n ...spec,\n data: {\n values: advancedVSeed.dataset,\n },\n } as ISpec\n}\n","import type { ISpec } from '@visactor/vchart'\nimport type { PivotChartConstructorOptions } from '@visactor/vtable'\nimport type { SpecPipe } from 'src/types'\n\nexport const datasetPivot: SpecPipe = (spec, context) => {\n const result = { ...spec } as PivotChartConstructorOptions\n const { advancedVSeed } = context\n const { dataset, datasetReshapeInfo } = advancedVSeed\n const records = dataset.reduce((pre, cur, index) => {\n const id = datasetReshapeInfo[index].id\n pre[id] = cur\n return pre\n }, {})\n return {\n ...result,\n records: records,\n } as PivotChartConstructorOptions\n}\n\nexport const datasetPivotPlaceholder: SpecPipe = (spec) => {\n return {\n ...spec,\n data: {\n id: 'placeholderDataId',\n },\n } as ISpec\n}\n","import type { IBarChartSpec } from '@visactor/vchart'\nimport type { SpecPipe } from 'src/types'\n\nexport const initColumn: SpecPipe = (spec, context) => {\n const result = { ...spec } as IBarChartSpec\n const { advancedVSeed } = context\n const { encoding } = advancedVSeed\n\n if (!encoding[0].y || !encoding[0].x || !encoding[0].group) {\n return result\n }\n\n result.type = 'bar'\n result.direction = 'vertical'\n result.xField = encoding[0].x[0]\n result.yField = encoding[0].y[0]\n result.seriesField = encoding[0].group[0]\n result.padding = 0\n result.region = [\n {\n clip: true,\n },\n ]\n return result\n}\n","import type { IBarChartSpec } from '@visactor/vchart'\nimport type { SpecPipe } from 'src/types'\n\nexport const initBar: SpecPipe = (spec, context) => {\n const result = { ...spec } as IBarChartSpec\n const { advancedVSeed } = context\n const { encoding } = advancedVSeed\n\n if (!encoding[0].y || !encoding[0].x || !encoding[0].group) {\n return result\n }\n\n result.type = 'bar'\n result.direction = 'horizontal'\n result.yField = encoding[0].y?.[0]\n result.xField = encoding[0].x?.[0]\n result.seriesField = encoding[0].group?.[0]\n result.padding = 0\n result.region = [\n {\n clip: true,\n },\n ]\n return result\n}\n","import type { IBarChartSpec } from '@visactor/vchart'\nimport type { SpecPipe } from 'src/types'\n\nexport const initBarParallel: SpecPipe = (spec, context) => {\n const result = { ...spec } as IBarChartSpec\n const { advancedVSeed } = context\n const { encoding, datasetReshapeInfo } = advancedVSeed\n const { unfoldInfo } = datasetReshapeInfo[0]\n\n if (!encoding[0].y || !encoding[0].x || !encoding[0].group) {\n return result\n }\n\n result.type = 'bar'\n result.direction = 'horizontal'\n result.yField = [encoding[0].y[0], unfoldInfo.groupName] as string[]\n result.xField = encoding[0].x[0]\n result.seriesField = encoding[0].group[0]\n result.padding = 0\n result.region = [\n {\n clip: true,\n },\n ]\n return result\n}\n","import type { IAreaChartSpec } from '@visactor/vchart'\nimport type { SpecPipe } from 'src/types'\n\nexport const initArea: SpecPipe = (spec, context) => {\n const result = { ...spec } as IAreaChartSpec\n const { advancedVSeed } = context\n const { encoding } = advancedVSeed\n\n if (!encoding[0].y || !encoding[0].x || !encoding[0].group) {\n return result\n }\n\n result.type = 'area'\n result.direction = 'vertical'\n result.xField = encoding[0].x[0]\n result.yField = encoding[0].y[0]\n result.seriesField = encoding[0].group[0]\n result.padding = 0\n result.region = [\n {\n clip: true,\n },\n ]\n return result\n}\n","import type { ILineChartSpec } from '@visactor/vchart'\nimport type { SpecPipe } from 'src/types'\n\nexport const initLine: SpecPipe = (spec, context) => {\n const result = { ...spec } as ILineChartSpec\n const { advancedVSeed } = context\n const { encoding } = advancedVSeed\n\n if (!encoding[0].y || !encoding[0].x || !encoding[0].group) {\n return result\n }\n\n result.type = 'line'\n result.direction = 'vertical'\n result.xField = encoding[0].x[0]\n result.yField = encoding[0].y[0]\n result.seriesField = encoding[0].group[0]\n result.padding = 0\n result.region = [\n {\n clip: true,\n },\n ]\n return result\n}\n","import type { IBarChartSpec } from '@visactor/vchart'\nimport type { SpecPipe } from 'src/types'\n\nexport const initColumnParallel: SpecPipe = (spec, context) => {\n const result = { ...spec } as IBarChartSpec\n const { advancedVSeed } = context\n const { encoding, datasetReshapeInfo } = advancedVSeed\n const { unfoldInfo } = datasetReshapeInfo[0]\n if (!encoding[0].y || !encoding[0].x || !encoding[0].group) {\n return result\n }\n\n result.type = 'bar'\n result.direction = 'vertical'\n result.xField = [encoding[0].x[0], unfoldInfo.groupName]\n result.yField = encoding[0].y[0]\n result.seriesField = encoding[0].group[0]\n result.padding = 0\n result.region = [\n {\n clip: true,\n },\n ]\n return result\n}\n","import type { IPieChartSpec } from '@visactor/vchart'\nimport type { SpecPipe } from 'src/types'\n\nexport const initPie: SpecPipe = (spec, context) => {\n const result = { ...spec } as IPieChartSpec\n const { advancedVSeed } = context\n const { encoding } = advancedVSeed\n\n if (!encoding[0].angle || !encoding[0].radius || !encoding[0].group) {\n return result\n }\n\n result.type = 'pie'\n result.outerRadius = 0.8\n result.innerRadius = 0\n result.valueField = encoding[0].radius[0]\n result.categoryField = encoding[0].angle[0]\n result.seriesField = encoding[0].group[0]\n result.padding = 0\n result.region = [\n {\n clip: true,\n },\n ]\n return result\n}\n","import type { PivotChartConstructorOptions } from '@visactor/vtable'\nimport type { SpecPipe } from 'src/types'\n\nexport const initPivot: SpecPipe = (spec) => {\n const result = { ...spec } as PivotChartConstructorOptions\n\n return {\n ...result,\n rows: [],\n columns: [],\n indicators: [],\n records: [],\n widthMode: 'adaptive',\n heightMode: 'adaptive',\n indicatorsAsCol: false,\n }\n}\n\n\n\nexport const pivotIndicatorsAsRow: SpecPipe = (spec) => {\n const result = { ...spec } as PivotChartConstructorOptions\n\n return {\n ...result,\n indicatorsAsCol: false,\n }\n}\n\nexport const pivotIndicatorsAsCol: SpecPipe = (spec) => {\n const result = { ...spec } as PivotChartConstructorOptions\n\n return {\n ...result,\n indicatorsAsCol: true,\n }\n}\n","import type { ICartesianBandAxisSpec, ISpec } from '@visactor/vchart'\nimport type { SpecPipe, XBandAxis } from 'src/types'\n\nexport const xBand: SpecPipe = (spec, context) => {\n const result = { ...spec } as ISpec\n const { advancedVSeed, vseed } = context\n const { chartType } = vseed\n const config = advancedVSeed.config?.[chartType]?.xAxis as XBandAxis\n\n if (!result.axes) {\n result.axes = []\n }\n\n if (!config) {\n result.axes = [\n ...result.axes,\n {\n visible: true,\n type: 'band',\n orient: 'bottom',\n },\n ] as ISpec['axes']\n return result\n }\n\n const {\n visible = true,\n label,\n tick,\n title,\n grid,\n line,\n labelAutoHide,\n labelAutoHideGap,\n labelAutoLimit,\n labelAutoLimitLength,\n labelAutoRotate,\n labelAutoRotateAngleRange,\n } = config\n\n const sampling = !(labelAutoHide || labelAutoRotate || labelAutoLimit)\n\n const bandAxis = {\n visible,\n type: 'band',\n orient: 'bottom',\n maxHeight: labelAutoLimitLength,\n sampling,\n hover: true,\n label: {\n visible: label?.visible,\n flush: true,\n space: 8,\n style: {\n maxLineWidth: labelAutoLimitLength,\n fill: label?.labelColor,\n angle: label?.labelAngle,\n fontSize: label?.labelFontSize,\n fontWeight: label?.labelFontWeight,\n },\n\n // 防重叠相关\n minGap: labelAutoHideGap,\n autoHide: labelAutoHide,\n autoHideMethod: 'greedy',\n autoHideSeparation: labelAutoHideGap,\n autoLimit: labelAutoLimit,\n autoRotate: labelAutoRotate,\n autoRotateAngle: labelAutoRotateAngleRange,\n lastVisible: true,\n },\n title: {\n visible: title?.visible,\n text: title?.titleText,\n style: {\n fill: title?.titleColor,\n fontSize: title?.titleFontSize,\n fontWeight: title?.titleFontWeight,\n },\n },\n tick: {\n visible: tick?.visible,\n tickSize: tick?.tickSize,\n inside: tick?.tickInside,\n style: {\n stroke: tick?.tickColor,\n },\n },\n grid: {\n visible: grid?.visible,\n style: {\n lineWidth: grid?.gridWidth,\n stroke: grid?.gridColor,\n },\n },\n domainLine: {\n visible: line?.visible,\n style: {\n lineWidth: line?.lineWidth,\n stroke: line?.lineColor,\n },\n },\n } as ICartesianBandAxisSpec\n\n result.axes = [...result.axes, bandAxis] as ISpec['axes']\n return result\n}\n","import type { ISpec } from '@visactor/vchart'\nimport type { SpecPipe, XLinearAxis } from 'src/types'\n\nexport const xLinear: SpecPipe = (spec, context) => {\n const result = { ...spec } as ISpec\n const { advancedVSeed, vseed } = context\n const { chartType } = vseed\n const config = advancedVSeed.config?.[chartType]?.xAxis as XLinearAxis\n\n if (!result.axes) {\n result.axes = []\n }\n\n if (!config) {\n result.axes = [\n ...result.axes,\n {\n visible: true,\n type: 'linear',\n orient: 'bottom',\n },\n ] as ISpec['axes']\n return result\n }\n\n const {\n visible = true,\n label,\n tick,\n title,\n grid,\n line,\n\n zero,\n nice,\n inverse,\n max,\n min,\n } = config\n\n const linearAxis = {\n visible,\n type: 'linear',\n orient: 'bottom',\n nice,\n zero,\n inverse,\n max,\n min,\n label: {\n visible: label?.visible,\n style: {\n fill: label?.labelColor,\n angle: label?.labelAngle,\n fontSize: label?.labelFontSize,\n fontWeight: label?.labelFontWeight,\n },\n },\n title: {\n visible: title?.visible,\n text: title?.titleText,\n style: {\n fill: title?.titleColor,\n fontSize: title?.titleFontSize,\n fontWeight: title?.titleFontWeight,\n },\n },\n tick: {\n visible: tick?.visible,\n tickSize: tick?.tickSize,\n inside: tick?.tickInside,\n style: {\n stroke: tick?.tickColor,\n },\n },\n grid: {\n visible: grid?.visible,\n style: {\n lineWidth: grid?.gridWidth,\n stroke: grid?.gridColor,\n },\n },\n domainLine: {\n visible: line?.visible,\n style: {\n lineWidth: line?.lineWidth,\n stroke: line?.lineColor,\n },\n },\n }\n\n result.axes = [...result.axes, linearAxis] as ISpec['axes']\n\n return result\n}\n","import type { ICartesianBandAxisSpec, ISpec } from '@visactor/vchart'\nimport type { SpecPipe, XBandAxis } from 'src/types'\n\nexport const yBand: SpecPipe = (spec, context) => {\n const result = { ...spec } as ISpec\n const { advancedVSeed, vseed } = context\n const { chartType } = vseed\n const config = advancedVSeed.config?.[chartType]?.yAxis as XBandAxis\n\n if (!result.axes) {\n result.axes = []\n }\n\n if (!config) {\n result.axes = [\n ...result.axes,\n {\n visible: true,\n type: 'band',\n orient: 'left',\n },\n ] as ISpec['axes']\n return result\n }\n\n const {\n visible = true,\n label,\n tick,\n title,\n grid,\n line,\n labelAutoHide,\n labelAutoHideGap,\n labelAutoLimit,\n labelAutoLimitLength,\n labelAutoRotate,\n labelAutoRotateAngleRange,\n } = config\n\n const sampling = !(labelAutoHide || labelAutoRotate || labelAutoLimit)\n\n const bandAxis = {\n visible,\n type: 'band',\n orient: 'left',\n maxWidth: labelAutoLimitLength,\n sampling,\n hover: true,\n label: {\n visible: label?.visible,\n flush: true,\n containerAlign: 'left',\n space: 8,\n style: {\n maxLineWidth: labelAutoLimitLength,\n fill: label?.labelColor,\n angle: label?.labelAngle,\n fontSize: label?.labelFontSize,\n fontWeight: label?.labelFontWeight,\n },\n // 防重叠相关\n minGap: labelAutoHideGap,\n autoHide: labelAutoHide,\n autoHideMethod: 'greedy',\n autoHideSeparation: labelAutoHideGap,\n autoLimit: labelAutoLimit,\n autoRotate: labelAutoRotate,\n autoRotateAngle: labelAutoRotateAngleRange,\n lastVisible: true,\n },\n title: {\n visible: title?.visible,\n text: title?.titleText,\n style: {\n fill: title?.titleColor,\n fontSize: title?.titleFontSize,\n fontWeight: title?.titleFontWeight,\n },\n },\n tick: {\n visible: tick?.visible,\n tickSize: tick?.tickSize,\n inside: tick?.tickInside,\n style: {\n stroke: tick?.tickColor,\n },\n },\n grid: {\n visible: grid?.visible,\n style: {\n lineWidth: grid?.gridWidth,\n stroke: grid?.gridColor,\n },\n },\n domainLine: {\n visible: line?.visible,\n style: {\n lineWidth: line?.lineWidth,\n stroke: line?.lineColor,\n },\n },\n } as ICartesianBandAxisSpec\n\n result.axes = [...result.axes, bandAxis] as ISpec['axes']\n return result\n}\n","import type { ISpec } from '@visactor/vchart'\nimport type { SpecPipe, YLinearAxis } from 'src/types'\n\nexport const yLinear: SpecPipe = (spec, context) => {\n const result = { ...spec } as ISpec\n const { advancedVSeed, vseed } = context\n const { chartType } = vseed\n const config = advancedVSeed.config?.[chartType]?.yAxis as YLinearAxis\n\n if (!result.axes) {\n result.axes = []\n }\n\n if (!config) {\n result.axes = [\n ...result.axes,\n {\n visible: true,\n type: 'linear',\n orient: 'left',\n },\n ] as ISpec['axes']\n return result\n }\n\n const {\n visible = true,\n label,\n tick,\n title,\n grid,\n line,\n\n zero,\n nice,\n inverse,\n max,\n min,\n } = config\n\n const linearAxis = {\n visible,\n type: 'linear',\n orient: 'left',\n nice,\n zero,\n inverse,\n max,\n min,\n label: {\n visible: label?.visible,\n style: {\n fill: label?.labelColor,\n angle: label?.labelAngle,\n fontSize: label?.labelFontSize,\n fontWeight: label?.labelFontWeight,\n },\n },\n title: {\n visible: title?.visible,\n text: title?.titleText,\n style: {\n fill: title?.titleColor,\n fontSize: title?.titleFontSize,\n fontWeight: title?.titleFontWeight,\n },\n },\n tick: {\n visible: tick?.visible,\n tickSize: tick?.tickSize,\n inside: tick?.tickInside,\n style: {\n stroke: tick?.tickColor,\n },\n },\n grid: {\n visible: grid?.visible,\n style: {\n lineWidth: grid?.gridWidth,\n stroke: grid?.gridColor,\n },\n },\n domainLine: {\n visible: line?.visible,\n style: {\n lineWidth: line?.lineWidth,\n stroke: line?.lineColor,\n },\n },\n }\n\n result.axes = [...result.axes, linearAxis] as ISpec['axes']\n\n return result\n}\n","import { IAreaChartSpec, IBarChartSpec } from '@visactor/vchart'\nimport { SpecPipe } from 'src/types'\n\nexport const percent: SpecPipe = (spec, context) => {\n const result = { ...spec } as IAreaChartSpec | IBarChartSpec\n result.percent = true\n return result\n}\n","import { IAreaChartSpec, IBarChartSpec } from '@visactor/vchart'\nimport { SpecPipe } from 'src/types'\n\nexport const stack: SpecPipe = (spec, context) => {\n const result = { ...spec } as IAreaChartSpec | IBarChartSpec\n result.stack = true\n return result\n}\n","import type { ISpec } from '@visactor/vchart'\nimport type { SpecPipe } from 'src/types'\n\nexport const backgroundColor: SpecPipe = (spec, context) => {\n const result = { ...spec } as ISpec\n const { advancedVSeed } = context\n const { baseConfig } = advancedVSeed\n if (!baseConfig?.vchart) {\n return result\n }\n const { backgroundColor } = baseConfig.vchart\n return {\n ...result,\n background: backgroundColor,\n }\n}\n","import type { SpecPipe, Tooltip } from 'src/types'\n\nconst defaultTooltip: Tooltip = {\n enable: true,\n}\n\nexport const tooltip: SpecPipe = (spec, context) => {\n const result = { ...spec }\n const { advancedVSeed } = context\n const baseConfig = advancedVSeed.baseConfig.vchart as { tooltip: Tooltip }\n const { tooltip = defaultTooltip } = baseConfig\n\n const { enable } = tooltip\n\n result.tooltip = {\n visible: enable,\n }\n return result\n}\n","import type { ILineChartSpec } from '@visactor/vchart'\nimport type { Label, SpecPipe } from 'src/types'\n\nexport const label: SpecPipe = (spec, context) => {\n const result = { ...spec } as ILineChartSpec\n const { advancedVSeed } = context\n const baseConfig = advancedVSeed.baseConfig.vchart\n\n if (!baseConfig || !baseConfig.label) {\n return result\n }\n\n const { label } = baseConfig\n const { enable } = label as Label\n\n result.label = {\n visible: enable,\n }\n return result\n}\n","import type { Legend, SpecPipe } from 'src/types'\n\nconst defaultLegend = {\n enable: true,\n}\n\nexport const legend: SpecPipe = (spec, context) => {\n const result = { ...spec }\n const { advancedVSeed } = context\n const baseConfig = advancedVSeed.baseConfig.vchart\n if (!baseConfig || !baseConfig.legend) {\n return result\n }\n\n const { legend = defaultLegend } = baseConfig\n const { enable } = legend as Legend\n\n result.legends = {\n visible: enable,\n }\n return result\n}\n","import type { PivotChartConstructorOptions } from '@visactor/vtable'\nimport type { IDiscreteTableLegendOption } from '@visactor/vtable/es/ts-types/component/legend'\nimport { unique } from 'remeda'\nimport type { Color, Legend, SpecPipe } from 'src/types'\n\nexport const pivotLegend: SpecPipe = (spec, context) => {\n const result = { ...spec } as PivotChartConstructorOptions\n const { advancedVSeed } = context\n const baseConfig = advancedVSeed.baseConfig.vchart\n if (!baseConfig || !baseConfig.legend) {\n return result\n }\n\n const { datasetReshapeInfo } = advancedVSeed\n const colorItems = unique(datasetReshapeInfo.flatMap((d) => d.unfoldInfo.colorItems))\n\n const { legend, color } = baseConfig\n const { enable } = legend as Legend\n const { colorScheme } = color as Color\n\n const legends: IDiscreteTableLegendOption = {\n visible: enable,\n alignSelf: 'end',\n type: 'discrete',\n position: 'middle',\n data: colorItems.map((d, index) => ({\n label: d,\n shape: {\n symbolType: 'square',\n fill: colorScheme[index],\n },\n })),\n item: {\n background: {\n visible: true,\n state: {\n selectedHover: {\n fill: '#000000',\n fillOpacity: 0.05,\n },\n },\n },\n label: {\n style: {\n fontSize: 12,\n fill: '#6F6F6F',\n },\n },\n },\n orient: 'bottom',\n } as unknown as IDiscreteTableLegendOption\n return { ...result, legends }\n}\n","import type { ILineChartSpec } from '@visactor/vchart'\nimport type { Color, SpecPipe } from 'src/types'\n\nexport const color: SpecPipe = (spec, context) => {\n const result = { ...spec } as ILineChartSpec\n const { advancedVSeed } = context\n const { datasetReshapeInfo } = advancedVSeed\n const { unfoldInfo } = datasetReshapeInfo[0]\n const baseConfig = advancedVSeed.baseConfig.vchart\n if (!baseConfig || !baseConfig.color) {\n return result\n }\n\n const { color } = baseConfig\n const { colorScheme, colorMapping } = color as Color\n\n result.color = {\n type: 'ordinal',\n domain: unfoldInfo.colorItems,\n range: colorScheme,\n specified: colorMapping,\n }\n return result\n}\n","import type { Spec, SpecPipe, SpecPipeline, SpecPipelineContext } from 'src/types'\nimport { execPipeline, isPivotChart } from '../../../utils'\n\nexport const pivotAdapter = (pipeline: SpecPipeline, pivotPipeline: SpecPipeline): SpecPipe => {\n return (spec, context) => {\n const { vseed } = context\n const usePivotChart = isPivotChart(vseed)\n\n if (usePivotChart) {\n return execPipeline<Spec, SpecPipelineContext>(pivotPipeline, context, spec)\n }\n\n return execPipeline<Spec, SpecPipelineContext>(pipeline, context, spec)\n }\n}\n","import type { PivotChartConstructorOptions } from '@visactor/vtable'\nimport { execPipeline } from '../../../utils'\nimport type { SpecPipe, SpecPipeline, SpecPipelineContext } from 'src/types'\nimport { unique } from 'remeda'\n\nexport const pivotIndicators =\n (chartPipeline: SpecPipeline): SpecPipe =>\n (spec, context) => {\n const result = { ...spec } as PivotChartConstructorOptions\n const { advancedVSeed } = context\n const { measures, datasetReshapeInfo, encoding } = advancedVSeed\n\n const colorItems = unique(datasetReshapeInfo.flatMap((d) => d.unfoldInfo.colorItems))\n\n const indicators = datasetReshapeInfo.map((reshapeInfo, index) => {\n const measure = measures?.find((d) => d.id === reshapeInfo.id)\n\n const newEncoding = [encoding[index]]\n const newDatasetReshapeInfo = [{ ...reshapeInfo, unfoldInfo: { ...reshapeInfo.unfoldInfo, colorItems } }]\n const newContext: SpecPipelineContext = {\n ...context,\n advancedVSeed: {\n ...advancedVSeed,\n datasetReshapeInfo: newDatasetReshapeInfo,\n encoding: newEncoding,\n },\n }\n\n const chartSpec = execPipeline(chartPipeline, newContext, {})\n return {\n indicatorKey: reshapeInfo.id,\n title: measure?.alias,\n cellType: 'chart',\n chartModule: 'vchart',\n chartSpec: chartSpec,\n style: {\n padding: [1, 1, 0, 1],\n },\n }\n })\n\n return {\n ...result,\n indicators: indicators,\n } as PivotChartConstructorOptions\n }\n\nexport const pivotIndicatorsAsRow: SpecPipe = (spec) => {\n const result = { ...spec } as PivotChartConstructorOptions\n\n return {\n ...result,\n indicatorsAsCol: false,\n }\n}\n\nexport const pivotIndicatorsAsCol: SpecPipe = (spec) => {\n const result = { ...spec } as PivotChartConstructorOptions\n\n return {\n ...result,\n indicatorsAsCol: true,\n }\n}\n","import type { PivotChartConstructorOptions } from '@visactor/vtable'\nimport type { SpecPipe } from 'src/types'\n\nexport const pivotGridStyle: SpecPipe = (spec) => {\n const result = { ...spec } as PivotChartConstructorOptions\n const transparent = 'rgba(0,0,0,0)'\n return {\n ...result,\n theme: {\n underlayBackgroundColor: transparent,\n bodyStyle: {\n borderColor: 'rgba(0,4,20,0.2)',\n borderLineWidth: [0, 0, 2, 0],\n bgColor: transparent,\n padding: [0, 0, 1, 0],\n },\n headerStyle: {\n borderColor: 'rgba(0,4,20,0.2)',\n fontSize: 12,\n color: '#333333',\n textAlign: 'center',\n borderLineWidth: 0,\n bgColor: transparent,\n hover: {\n cellBgColor: 'rgba(178,186,207, 0.2)',\n },\n },\n rowHeaderStyle: {\n borderColor: 'rgba(0,4,20,0.2)',\n fontSize: 12,\n color: '#333333',\n borderLineWidth: 0,\n bgColor: transparent,\n hover: {\n cellBgColor: 'rgba(178,186,207, 0.2)',\n },\n },\n cornerHeaderStyle: {\n borderColor: 'rgba(0,4,20,0.2)',\n textAlign: 'center',\n fontSize: 12,\n color: '#333333',\n fontWeight: 'bold',\n borderLineWidth: [0, 0, 0, 0],\n bgColor: transparent,\n hover: {\n cellBgColor: '',\n },\n },\n cornerRightTopCellStyle: {\n borderColor: 'rgba(0,4,20,0.2)',\n borderLineWidth: 0,\n bgColor: transparent,\n hover: {\n cellBgColor: '',\n },\n },\n cornerLeftBottomCellStyle: {\n borderColor: 'rgba(0,4,20,0.2)',\n borderLineWidth: 0,\n bgColor: transparent,\n hover: {\n cellBgColor: '',\n },\n },\n cornerRightBottomCellStyle: {\n borderColor: 'rgba(0,4,20,0.2)',\n borderLineWidth: 0,\n bgColor: transparent,\n hover: {\n cellBgColor: '',\n },\n },\n rightFrozenStyle: {\n borderColor: 'rgba(0,4,20,0.2)',\n borderLineWidth: 0,\n bgColor: transparent,\n hover: {\n cellBgColor: 'rgba(178,186,207, 0.2)',\n },\n },\n bottomFrozenStyle: {\n borderColor: 'rgba(0,4,20,0.2)',\n borderLineWidth: 0,\n bgColor: transparent,\n hover: {\n cellBgColor: 'rgba(178,186,207, 0.2)',\n },\n },\n selectionStyle: {\n cellBgColor: '',\n cellBorderColor: '',\n },\n frameStyle: {\n borderLineWidth: 0,\n bgColor: transparent,\n },\n },\n }\n}\n","import type { PivotChartConstructorOptions } from '@visactor/vtable'\nimport type { IBasicDimension } from '@visactor/vtable/es/ts-types/pivot-table/dimension/basic-dimension'\nimport type { SpecPipe } from 'src/types'\n\nexport const pivotColumnDimensions: SpecPipe = (spec, context) => {\n const result = { ...spec } as PivotChartConstructorOptions\n const { advancedVSeed } = context\n const { dimensions } = advancedVSeed\n if (!dimensions) {\n return result\n }\n const columnDimensions = dimensions.filter((dim) => dim.location === 'columnDimension')\n const columns: IBasicDimension[] = columnDimensions.map((dim) => ({\n dimensionKey: dim.id,\n title: dim.alias || dim.id,\n }))\n return {\n ...result,\n columns: columns,\n }\n}\n","import type { PivotChartConstructorOptions } from '@visactor/vtable'\nimport type { IBasicDimension } from '@visactor/vtable/es/ts-types/pivot-table/dimension/basic-dimension'\nimport type { SpecPipe } from 'src/types'\n\nexport const pivotRowDimensions: SpecPipe = (spec, context) => {\n const result = { ...spec } as PivotChartConstructorOptions\n const { advancedVSeed } = context\n const { dimensions } = advancedVSeed\n if (!dimensions) {\n return result\n }\n const rowDimensions = dimensions.filter((dim) => dim.location === 'rowDimension')\n const rows: IBasicDimension[] = rowDimensions.map((dim) => ({\n dimensionKey: dim.id,\n title: dim.alias || dim.id,\n }))\n return {\n ...result,\n rows: rows,\n }\n}\n","import type { SpecPipeline } from 'src/types'\nimport {\n dataset,\n xBand,\n yLinear,\n initLine,\n backgroundColor,\n label,\n tooltip,\n legend,\n color,\n initPivot,\n datasetPivot,\n datasetPivotPlaceholder,\n pivotLegend,\n pivotIndicators,\n pivotAdapter,\n pivotIndicatorsAsRow,\n pivotGridStyle,\n pivotColumnDimensions,\n pivotRowDimensions,\n} from '../pipes'\n\nconst line: SpecPipeline = [initLine, color, backgroundColor, dataset, xBand, yLinear, label, tooltip, legend]\n\nconst pivotLine: SpecPipeline = [\n initPivot,\n pivotGridStyle,\n pivotIndicatorsAsRow,\n datasetPivot,\n pivotIndicators([initLine, color, backgroundColor, datasetPivotPlaceholder, xBand, yLinear, label, tooltip]),\n pivotRowDimensions,\n pivotColumnDimensions,\n pivotLegend,\n]\n\nexport const lineSpecPipeline: SpecPipeline = [pivotAdapter(line, pivotLine)]\n","import type { SpecPipeline } from 'src/types'\nimport {\n initColumn,\n dataset,\n xBand,\n yLinear,\n backgroundColor,\n label,\n tooltip,\n legend,\n color,\n pivotAdapter,\n initPivot,\n datasetPivot,\n datasetPivotPlaceholder,\n pivotIndicators,\n pivotLegend,\n pivotIndicatorsAsRow,\n pivotGridStyle,\n pivotRowDimensions,\n pivotColumnDimensions,\n} from '../pipes'\n\nconst column: SpecPipeline = [initColumn, color, backgroundColor, dataset, xBand, yLinear, label, tooltip, legend]\n\nconst pivotColumn: SpecPipeline = [\n initPivot,\n pivotGridStyle,\n pivotIndicatorsAsRow,\n datasetPivot,\n pivotIndicators([initColumn, color, backgroundColor, datasetPivotPlaceholder, xBand, yLinear, label, tooltip]),\n pivotRowDimensions,\n pivotColumnDimensions,\n pivotLegend,\n]\n\nexport const columnSpecPipeline = [pivotAdapter(column, pivotColumn)]\n","import type { SpecPipeline } from 'src/types'\nimport {\n dataset,\n xBand,\n yLinear,\n initColumnParallel,\n backgroundColor,\n label,\n tooltip,\n legend,\n color,\n pivotIndicators,\n initPivot,\n datasetPivot,\n pivotAdapter,\n datasetPivotPlaceholder,\n pivotLegend,\n pivotIndicatorsAsRow,\n pivotGridStyle,\n pivotRowDimensions,\n pivotColumnDimensions,\n} from '../pipes'\n\nconst columnParallel: SpecPipeline = [\n initColumnParallel,\n color,\n backgroundColor,\n dataset,\n xBand,\n yLinear,\n label,\n tooltip,\n legend,\n]\n\nconst pivotColumnParallel: SpecPipeline = [\n initPivot,\n pivotGridStyle,\n pivotIndicatorsAsRow,\n datasetPivot,\n pivotIndicators([\n initColumnParallel,\n color,\n backgroundColor,\n datasetPivotPlaceholder,\n xBand,\n yLinear,\n label,\n tooltip,\n ]),\n pivotRowDimensions,\n pivotColumnDimensions,\n pivotLegend,\n]\n\nexport const columnParallelSpecPipeline: SpecPipeline = [pivotAdapter(columnParallel, pivotColumnParallel)]\n","import type { SpecPipeline } from 'src/types'\nimport {\n initColumn,\n dataset,\n xBand,\n yLinear,\n percent,\n backgroundColor,\n label,\n tooltip,\n legend,\n color,\n datasetPivotPlaceholder,\n pivotAdapter,\n initPivot,\n datasetPivot,\n pivotIndicators,\n pivotLegend,\n pivotIndicatorsAsRow,\n pivotGridStyle,\n pivotRowDimensions,\n pivotColumnDimensions,\n} from '../pipes'\n\nconst columnPercent: SpecPipeline = [\n initColumn,\n color,\n backgroundColor,\n percent,\n dataset,\n xBand,\n yLinear,\n label,\n tooltip,\n legend,\n]\n\nconst pivotColumnPercent: SpecPipeline = [\n initPivot,\n pivotGridStyle,\n pivotIndicatorsAsRow,\n datasetPivot,\n pivotIndicators([\n initColumn,\n color,\n percent,\n backgroundColor,\n datasetPivotPlaceholder,\n xBand,\n yLinear,\n label,\n tooltip,\n ]),\n pivotRowDimensions,\n pivotColumnDimensions,\n pivotLegend,\n]\n\nexport const columnPercentSpecPipeline: SpecPipeline = [pivotAdapter(columnPercent, pivotColumnPercent)]\n","import type { SpecPipeline } from 'src/types'\nimport {\n initBar,\n dataset,\n xLinear,\n yBand,\n backgroundColor,\n label,\n tooltip,\n legend,\n color,\n pivotAdapter,\n initPivot,\n datasetPivot,\n pivotIndicators,\n pivotLegend,\n datasetPivotPlaceholder,\n pivotIndicatorsAsCol,\n pivotGridStyle,\n pivotColumnDimensions,\n pivotRowDimensions,\n} from '../pipes'\n\nconst bar: SpecPipeline = [initBar, color, backgroundColor, dataset, xLinear, yBand, label, tooltip, legend]\n\nconst pivotBar: SpecPipeline = [\n initPivot,\n pivotGridStyle,\n pivotIndicatorsAsCol,\n datasetPivot,\n pivotIndicators([initBar, color, backgroundColor, datasetPivotPlaceholder, yBand, label, label, tooltip]),\n pivotRowDimensions,\n pivotColumnDimensions,\n pivotLegend,\n]\n\nexport const barSpecPipeline: SpecPipeline = [pivotAdapter(bar, pivotBar)]\n","import type { SpecPipeline } from 'src/types'\nimport {\n dataset,\n xLinear,\n yBand,\n initBarParallel,\n backgroundColor,\n label,\n tooltip,\n legend,\n color,\n datasetPivotPlaceholder,\n initPivot,\n datasetPivot,\n pivotLegend,\n pivotIndicators,\n pivotAdapter,\n pivotIndicatorsAsCol,\n pivotGridStyle,\n pivotRowDimensions,\n pivotColumnDimensions,\n} from '../pipes'\n\nconst barParallel: SpecPipeline = [\n initBarParallel,\n color,\n backgroundColor,\n dataset,\n xLinear,\n yBand,\n label,\n tooltip,\n legend,\n]\n\nconst pivotBarParallel: SpecPipeline = [\n initPivot,\n pivotGridStyle,\n pivotIndicatorsAsCol,\n datasetPivot,\n pivotIndicators([initBarParallel, color, backgroundColor, datasetPivotPlaceholder, yBand, xLinear, label, tooltip]),\n pivotRowDimensions,\n pivotColumnDimensions,\n pivotLegend,\n]\n\nexport const barParallelSpecPipeline: SpecPipeline = [pivotAdapter(barParallel, pivotBarParallel)]\n","import type { SpecPipeline } from 'src/types'\nimport {\n initBar,\n dataset,\n xLinear,\n yBand,\n percent,\n backgroundColor,\n label,\n tooltip,\n legend,\n color,\n pivotAdapter,\n initPivot,\n datasetPivot,\n pivotIndicators,\n pivotLegend,\n datasetPivotPlaceholder,\n pivotIndicatorsAsCol,\n pivotGridStyle,\n pivotRowDimensions,\n pivotColumnDimensions,\n} from '../pipes'\n\nconst barPercent: SpecPipeline = [\n initBar,\n color,\n backgroundColor,\n percent,\n dataset,\n xLinear,\n yBand,\n label,\n tooltip,\n legend,\n]\n\nconst pivotBarPercent: SpecPipeline = [\n initPivot,\n pivotGridStyle,\n pivotIndicatorsAsCol,\n datasetPivot,\n pivotIndicators([initBar, color, backgroundColor, percent, datasetPivotPlaceholder, yBand, xLinear, label, tooltip]),\n pivotRowDimensions,\n pivotColumnDimensions,\n pivotLegend,\n]\n\nexport const barPercentSpecPipeline: SpecPipeline = [pivotAdapter(barPercent, pivotBarPercent)]\n","import type { SpecPipeline } from 'src/types'\nimport {\n dataset,\n xBand,\n yLinear,\n initArea,\n stack,\n backgroundColor,\n label,\n tooltip,\n legend,\n color,\n datasetPivotPlaceholder,\n datasetPivot,\n pivotIndicators,\n pivotLegend,\n pivotAdapter,\n initPivot,\n pivotIndicatorsAsRow,\n pivotGridStyle,\n pivotColumnDimensions,\n pivotRowDimensions,\n} from '../pipes'\n\nconst area: SpecPipeline = [initArea, color, backgroundColor, stack, dataset, xBand, yLinear, label, tooltip, legend]\n\nconst pivotArea: SpecPipeline = [\n initPivot,\n pivotGridStyle,\n pivotIndicatorsAsRow,\n datasetPivot,\n pivotIndicators([initArea, color, backgroundColor, stack, datasetPivotPlaceholder, xBand, yLinear, label, tooltip]),\n pivotRowDimensions,\n pivotColumnDimensions,\n pivotLegend,\n]\n\nexport const areaSpecPipeline = [pivotAdapter(area, pivotArea)]\n","import type { SpecPipeline } from 'src/types'\nimport {\n percent,\n dataset,\n xBand,\n yLinear,\n initArea,\n backgroundColor,\n label,\n tooltip,\n legend,\n color,\n datasetPivotPlaceholder,\n datasetPivot,\n pivotIndicators,\n pivotLegend,\n pivotAdapter,\n initPivot,\n pivotIndicatorsAsRow,\n pivotGridStyle,\n pivotRowDimensions,\n pivotColumnDimensions,\n} from '../pipes'\n\nconst areaPercent: SpecPipeline = [\n initArea,\n color,\n backgroundColor,\n percent,\n dataset,\n xBand,\n yLinear,\n label,\n tooltip,\n legend,\n]\n\nconst pivotAreaPercent: SpecPipeline = [\n initPivot,\n pivotGridStyle,\n pivotIndicatorsAsRow,\n datasetPivot,\n pivotIndicators([initArea, color, backgroundColor, percent, datasetPivotPlaceholder, xBand, yLinear, label, tooltip]),\n pivotRowDimensions,\n pivotColumnDimensions,\n pivotLegend,\n]\n\nexport const areaPercentSpecPipeline = [pivotAdapter(areaPercent, pivotAreaPercent)]\n","import type { SpecPipeline } from 'src/types'\nimport {\n backgroundColor,\n color,\n dataset,\n datasetPivot,\n datasetPivotPlaceholder,\n initPie,\n initPivot,\n label,\n legend,\n pivotAdapter,\n pivotColumnDimensions,\n pivotGridStyle,\n pivotIndicators,\n pivotIndicatorsAsRow,\n pivotLegend,\n pivotRowDimensions,\n tooltip,\n} from '../pipes'\n\nconst pie: SpecPipeline = [initPie, color, backgroundColor, dataset, label, tooltip, legend]\n\nconst pivotPie: SpecPipeline = [\n initPivot,\n pivotGridStyle,\n pivotIndicatorsAsRow,\n datasetPivot,\n pivotIndicators([initPie, color, backgroundColor, datasetPivotPlaceholder, label, tooltip]),\n pivotRowDimensions,\n pivotColumnDimensions,\n pivotLegend,\n]\n\nexport const pieSpecPipeline: SpecPipeline = [pivotAdapter(pie, pivotPie)]\n","import type { AdvancedPipelineContext, AdvancedVSeed } from 'src/types'\nimport { execPipeline } from '../../pipeline'\nimport type { Builder } from './builder'\n\nexport const buildAdvanced = (builder: Builder): AdvancedVSeed | null => {\n const { chartType } = builder.vseed\n if (!chartType) {\n throw new Error('chartType is nil in buildAdvanced')\n }\n\n const pipeline = builder.getAdvancedPipeline(chartType)\n if (!pipeline) {\n throw new Error(`no advanced pipeline for chartType ${chartType}`)\n }\n\n const context: AdvancedPipelineContext = {\n vseed: builder.vseed,\n customTheme: builder.getThemeMap(),\n }\n\n try {\n return execPipeline<AdvancedVSeed, AdvancedPipelineContext>(pipeline, context)\n } catch (e) {\n console.error(e)\n throw new Error(`buildAdvanced error, see error info in console`)\n }\n}\n","import type { Spec } from 'src/types'\nimport type { Builder } from './builder'\nimport type { AdvancedVSeed, SpecPipelineContext } from 'src/types'\nimport { execPipeline } from '../../pipeline'\n\nexport const buildSpec = (builder: Builder, advancedVSeed: AdvancedVSeed): Spec => {\n const { chartType } = builder.vseed\n if (!chartType) {\n throw new Error('chartType is nil in buildSpec')\n }\n\n const pipeline = builder.getSpecPipeline(chartType)\n if (!pipeline) {\n throw new Error(`no spec pipeline for chartType ${chartType}`)\n }\n\n const context: SpecPipelineContext = {\n vseed: builder.vseed,\n advancedVSeed,\n }\n try {\n return execPipeline<Spec, SpecPipelineContext>(pipeline, context)\n } catch (e) {\n console.error(e)\n throw new Error(`buildSpec error, see error info in console`)\n }\n}\n","import type { Spec } from 'src/types'\nimport type { Builder } from './builder'\n\nexport const build = (builder: Builder): Spec => {\n console.log('debug vseed', builder.vseed)\n const advancedVSeed = builder.buildAdvanced()\n console.log('debug advancedVSeed', advancedVSeed)\n if (!advancedVSeed) {\n throw new Error('advancedVSeed is null')\n }\n const spec = builder.buildSpec(advancedVSeed)\n console.log('debug spec', spec)\n return spec\n}\n","import type {\n AdvancedPipeline,\n AdvancedVSeed,\n ChartType,\n CustomThemeConfig,\n SpecPipeline,\n VSeed,\n VSeedBuilder,\n} from 'src/types'\nimport { buildAdvanced } from './buildAdvanced'\nimport { buildSpec } from './buildSpec'\nimport { build } from './build'\n\nexport class Builder implements VSeedBuilder {\n private _vseed: VSeed\n private _advancedVSeed: AdvancedVSeed | null = null\n\n constructor(vseed: VSeed) {\n this._vseed = vseed\n }\n\n build = () => build(this)\n\n buildSpec = (advanced: AdvancedVSeed) => buildSpec(this, advanced)\n\n buildAdvanced = () => buildAdvanced(this)\n\n getAdvancedPipeline = (chartType: ChartType) => Builder._advancedPipelineMap[chartType] as AdvancedPipeline\n getSpecPipeline = (chartType: ChartType) => Builder._specPipelineMap[chartType] as SpecPipeline\n getTheme = (themeKey: string) => Builder._themeMap[themeKey]\n getThemeMap = () => Builder._themeMap\n\n get vseed() {\n return this._vseed\n }\n\n set vseed(value) {\n this._vseed = value\n }\n\n get advancedVSeed() {\n return this._advancedVSeed\n }\n\n set advancedVSeed(value) {\n this._advancedVSeed = value\n }\n\n static _advancedPipelineMap: Partial<Record<ChartType, AdvancedPipeline>> = {}\n static _specPipelineMap: Partial<Record<ChartType, SpecPipeline>> = {}\n static _themeMap: Record<string, CustomThemeConfig> = {}\n static from = (vseed: VSeed) => new Builder(vseed)\n}\n","import {\n areaAdvancedPipeline,\n areaPercentAdvancedPipeline,\n areaPercentSpecPipeline,\n areaSpecPipeline,\n barAdvancedPipeline,\n barParallelAdvancedPipeline,\n barParallelSpecPipeline,\n barPercentAdvancedPipeline,\n barPercentSpecPipeline,\n barSpecPipeline,\n columnAdvancedPipeline,\n columnParallelAdvancedPipeline,\n columnParallelSpecPipeline,\n columnPercentAdvancedPipeline,\n columnPercentSpecPipeline,\n columnSpecPipeline,\n lineAdvancedPipeline,\n lineSpecPipeline,\n pieAdvancedPipeline,\n pieSpecPipeline,\n} from '../../pipeline'\nimport { Builder } from '../builder'\n\nexport const registerAll = () => {\n registerLine()\n registerColumn()\n registerColumnParallel()\n registerColumnPercent()\n registerBar()\n registerBarParallel()\n registerBarPercent()\n registerArea()\n registerAreaPercent()\n}\n\nexport const registerColumn = () => {\n Builder._advancedPipelineMap['column'] = columnAdvancedPipeline\n Builder._specPipelineMap['column'] = columnSpecPipeline\n}\n\nexport const registerBar = () => {\n Builder._advancedPipelineMap['bar'] = barAdvancedPipeline\n Builder._specPipelineMap['bar'] = barSpecPipeline\n}\n\nexport const registerLine = () => {\n Builder._advancedPipelineMap['line'] = lineAdvancedPipeline\n Builder._specPipelineMap['line'] = lineSpecPipeline\n}\n\nexport const registerArea = () => {\n Builder._advancedPipelineMap['area'] = areaAdvancedPipeline\n Builder._specPipelineMap['area'] = areaSpecPipeline\n}\n\nexport const registerAreaPercent = () => {\n Builder._advancedPipelineMap['areaPercent'] = areaPercentAdvancedPipeline\n Builder._specPipelineMap['areaPercent'] = areaPercentSpecPipeline\n}\n\nexport const registerBarPercent = () => {\n Builder._advancedPipelineMap['barPercent'] = barPercentAdvancedPipeline\n Builder._specPipelineMap['barPercent'] = barPercentSpecPipeline\n}\n\nexport const registerColumnPercent = () => {\n Builder._advancedPipelineMap['columnPercent'] = columnPercentAdvancedPipeline\n Builder._specPipelineMap['columnPercent'] = columnPercentSpecPipeline\n}\n\nexport const registerColumnParallel = () => {\n Builder._advancedPipelineMap['columnParallel'] = columnParallelAdvancedPipeline\n Builder._specPipelineMap['columnParallel'] = columnParallelSpecPipeline\n}\n\nexport const registerBarParallel = () => {\n Builder._advancedPipelineMap['barParallel'] = barParallelAdvancedPipeline\n Builder._specPipelineMap['barParallel'] = barParallelSpecPipeline\n}\n\nexport const registerPie = () => {\n Builder._advancedPipelineMap['pie'] = pieAdvancedPipeline\n Builder._specPipelineMap['pie'] = pieSpecPipeline\n}\n","import type { CustomThemeConfig, YBandAxis, YLinearAxis } from 'src/types'\n\nexport const darkTheme = (): CustomThemeConfig => {\n const linearAxis: YLinearAxis = {\n nice: true,\n zero: true,\n label: {\n visible: true,\n labelAngle: 0,\n labelColor: '#E2E3E6',\n labelFontSize: 12,\n labelFontWeight: 400,\n },\n title: {\n visible: false,\n titleText: '',\n titleColor: '#FDFDFD',\n titleFontSize: 12,\n titleFontWeight: 400,\n },\n grid: {\n visible: true,\n gridColor: '#404349',\n gridWidth: 0.5,\n },\n tick: {\n visible: false,\n tickInside: false,\n tickSize: 4,\n tickColor: '#4B4F54',\n },\n line: {\n visible: false,\n lineColor: '#4B4F54',\n lineWidth: 1,\n },\n }\n const bandAxis: YBandAxis = {\n labelAutoHide: true,\n labelAutoHideGap: 4,\n labelAutoLimit: true,\n labelAutoLimitLength: 100,\n labelAutoRotate: true,\n labelAutoRotateAngleRange: [0, -45, -90],\n label: {\n visible: true,\n labelAngle: 0,\n labelColor: '#E2E3E6',\n labelFontSize: 12,\n labelFontWeight: 400,\n },\n title: {\n visible: false,\n titleText: '',\n titleColor: '#FDFDFD',\n titleFontSize: 12,\n titleFontWeight: 400,\n },\n grid: {\n visible: false,\n gridColor: '#404349',\n gridWidth: 0.5,\n },\n tick: {\n visible: false,\n tickInside: false,\n tickSize: 4,\n tickColor: '#4B4F54',\n },\n line: {\n visible: true,\n lineColor: '#4B4F54',\n lineWidth: 1,\n },\n }\n\n return {\n baseConfig: {\n vtable: {\n backgroundColor: '#141414',\n },\n vchart: {\n backgroundColor: '#141414',\n color: {\n colorScheme: [\n '#2E62F1',\n '#4DC36A',\n '#FF8406',\n '#FFCC00',\n '#4F44CF',\n '#5AC8FA',\n '#003A8C',\n '#B08AE2',\n '#FF6341',\n '#98DD62',\n ],\n },\n label: {\n enable: true,\n },\n tooltip: {\n enable: true,\n },\n legend: {\n enable: true,\n },\n },\n },\n config: {\n line: {\n xAxis: bandAxis,\n yAxis: linearAxis,\n },\n column: {\n xAxis: bandAxis,\n yAxis: linearAxis,\n },\n columnParallel: {\n xAxis: bandAxis,\n yAxis: linearAxis,\n },\n columnPercent: {\n xAxis: bandAxis,\n yAxis: linearAxis,\n },\n bar: {\n xAxis: linearAxis,\n yAxis: bandAxis,\n },\n barParallel: {\n xAxis: linearAxis,\n yAxis: bandAxis,\n },\n barPercent: {\n xAxis: linearAxis,\n yAxis: bandAxis,\n },\n area: {\n xAxis: bandAxis,\n yAxis: linearAxis,\n },\n areaPercent: {\n xAxis: bandAxis,\n yAxis: linearAxis,\n },\n },\n }\n}\n","import type { CustomThemeConfig, YBandAxis, YLinearAxis } from 'src/types'\n\nexport const lightTheme = (): CustomThemeConfig => {\n const linearAxis: YLinearAxis = {\n nice: true,\n zero: true,\n inverse: false,\n label: {\n visible: true,\n labelAngle: 0,\n labelColor: '#797B85',\n labelFontSize: 12,\n labelFontWeight: 400,\n },\n title: {\n visible: false,\n titleText: '',\n titleColor: '#646A73',\n titleFontSize: 12,\n titleFontWeight: 400,\n },\n grid: {\n visible: true,\n gridColor: 'rgba(54, 65, 89, 0.15)',\n gridWidth: 0.5,\n },\n tick: {\n visible: false,\n tickInside: false,\n tickSize: 4,\n tickColor: 'rgba(54, 65, 89, 0.30)',\n },\n line: {\n visible: false,\n lineColor: 'rgba(54, 65, 89, 0.30)',\n lineWidth: 1,\n },\n }\n const bandAxis: YBandAxis = {\n labelAutoHide: true,\n labelAutoHideGap: 4,\n labelAutoLimit: true,\n labelAutoLimitLength: 100,\n labelAutoRotate: true,\n labelAutoRotateAngleRange: [0, -45, -90],\n label: {\n visible: true,\n labelAngle: 0,\n labelColor: '#797B85',\n labelFontSize: 12,\n labelFontWeight: 400,\n },\n title: {\n visible: false,\n titleText: '',\n titleColor: '#646A73',\n titleFontSize: 12,\n titleFontWeight: 400,\n },\n grid: {\n visible: false,\n gridColor: 'rgba(54, 65, 89, 0.15)',\n gridWidth: 0.5,\n },\n tick: {\n visible: false,\n tickInside: false,\n tickSize: 4,\n tickColor: 'rgba(54, 65, 89, 0.30)',\n },\n line: {\n visible: true,\n lineColor: 'rgba(54, 65, 89, 0.30)',\n lineWidth: 1,\n },\n }\n\n const barBandAxis: YBandAxis = {\n ...bandAxis,\n labelAutoHide: false,\n labelAutoHideGap: 1,\n labelAutoLimit: false,\n labelAutoLimitLength: undefined,\n labelAutoRotate: false,\n labelAutoRotateAngleRange: [0, -45, -90],\n }\n\n return {\n baseConfig: {\n vtable: {\n backgroundColor: '#ffffff',\n },\n vchart: {\n backgroundColor: '#ffffff',\n color: {\n colorScheme: [\n '#8D72F6',\n '#5766EC',\n '#66A3FE',\n '#51D5E6',\n '#4EC0B3',\n '#F9DF90',\n '#F9AD71',\n '#ED8888',\n '#E9A0C3',\n '#D77DD3',\n ],\n },\n label: {\n enable: true,\n },\n tooltip: {\n enable: true,\n },\n legend: {\n enable: true,\n },\n },\n },\n config: {\n line: {\n xAxis: bandAxis,\n yAxis: linearAxis,\n },\n column: {\n xAxis: bandAxis,\n yAxis: linearAxis,\n },\n columnParallel: {\n xAxis: bandAxis,\n yAxis: linearAxis,\n },\n columnPercent: {\n xAxis: bandAxis,\n yAxis: linearAxis,\n },\n bar: {\n xAxis: linearAxis,\n yAxis: barBandAxis,\n },\n barParallel: {\n xAxis: linearAxis,\n yAxis: barBandAxis,\n },\n barPercent: {\n xAxis: linearAxis,\n yAxis: barBandAxis,\n },\n area: {\n xAxis: bandAxis,\n yAxis: linearAxis,\n },\n areaPercent: {\n xAxis: bandAxis,\n yAxis: linearAxis,\n },\n },\n }\n}\n","import type { CustomThemeConfig } from 'src/types'\nimport { Builder } from '../builder'\nimport { darkTheme, lightTheme } from '../../theme'\n\nexport const registerCustomTheme = (key: string, themeConfig: CustomThemeConfig) => {\n Builder._themeMap[key] = themeConfig\n}\n\nexport const registerLightTheme = () => {\n registerCustomTheme('light', lightTheme())\n}\n\nexport const registerDarkTheme = () => {\n registerCustomTheme('dark', darkTheme())\n}\n","import {\n registerArea,\n registerAreaPercent,\n registerBar,\n registerBarParallel,\n registerBarPercent,\n registerColumn,\n registerColumnParallel,\n registerColumnPercent,\n registerLine,\n registerPie,\n} from './chartType'\nimport { registerDarkTheme, registerLightTheme } from './theme'\n\nexport const registerAll = () => {\n // ChartType\n registerLine()\n registerColumn()\n registerColumnParallel()\n registerColumnPercent()\n registerBar()\n registerBarParallel()\n registerBarPercent()\n registerArea()\n registerAreaPercent()\n registerPie()\n\n // Theme\n registerLightTheme()\n registerDarkTheme()\n}\n","import { z } from 'zod'\n\nexport type ChartType =\n | 'table'\n | 'pivotTable'\n | 'line'\n | 'column'\n | 'columnPercent'\n | 'columnParallel'\n | 'bar'\n | 'barPercent'\n | 'barParallel'\n | 'area'\n | 'areaPercent'\n | 'rose'\n | 'pie'\n | 'donut'\n | 'dualAxis'\n\nexport enum ChartTypeEnum {\n Table = 'table',\n PivotTable = 'pivotTable',\n Line = 'line',\n Column = 'column',\n ColumnPercent = 'columnPercent',\n ColumnParallel = 'columnParallel',\n Bar = 'bar',\n BarPercent = 'barPercent',\n BarParallel = 'barParallel',\n Area = 'area',\n AreaPercent = 'areaPercent',\n Rose = 'rose',\n Pie = 'pie',\n Donut = 'donut',\n DualAxis = 'dualAxis',\n}\n\nexport const zChartType = z.enum([\n 'table',\n 'pivotTable',\n 'line',\n 'column',\n 'columnPercent',\n 'columnParallel',\n 'bar',\n 'barPercent',\n 'barParallel',\n 'area',\n 'areaPercent',\n 'rose',\n 'pie',\n 'donut',\n 'dualAxis',\n])\n","import { z } from 'zod'\n\n/**\n * example dataset link:\n * [\n * { date: '2019', 20001:'type', profit:10, sales: null, },\n * { date: '2020', 20001:'type', profit:30, sales: -1.1, },\n * { date: '2021', 20001:'type', profit:30, sales: 1, },\n * { date: '2023', 20001:'type', profit:40, sales: undefined, },\n * { date: '2022', 20001:'type', profit:50, sales: 100, },\n * ]\n */\nexport const zDatum = z.record(z.string().or(z.number()), z.any())\nexport const zDataset = z.array(zDatum)\n\nexport type Datum = z.infer<typeof zDatum>\nexport type Dataset = z.infer<typeof zDataset>\n","import { z } from 'zod'\n\nexport const zDimension = z.object({\n id: z.string(),\n alias: z.string().optional(),\n visible: z.boolean().default(true).optional(),\n location: z.enum(['dimension', 'rowDimension', 'columnDimension']),\n})\n\nexport const zDimensions = z.array(zDimension).optional()\n\nexport type Dimension = z.infer<typeof zDimension>\n\nexport type Dimensions = z.infer<typeof zDimensions>\n","import { z } from 'zod'\n\nexport const zMeasure = z.object({\n id: z.string(),\n alias: z.string().optional(),\n visible: z.boolean().default(true).optional(),\n autoFormat: z.boolean().default(true).optional(),\n format: z\n .object({\n type: z\n .enum(['number', 'percent', 'permille'])\n .optional()\n .default('number'),\n ratio: z.number().optional().default(1),\n symbol: z.string().optional().default(''),\n thousandSeparator: z.boolean().optional().default(false),\n decimalPlaces: z.number().optional().default(2),\n round: z.enum(['round', 'floor', 'ceil']).optional().default('round'),\n prefix: z.string().optional().default(''),\n suffix: z.string().optional().default(''),\n })\n .optional(),\n})\n\nexport const zMeasureGroup = z.object({\n id: z.string(),\n alias: z.string().optional(),\n visible: z.boolean().default(true).optional(),\n get children() {\n return z.array(zMeasureGroup.or(zMeasure)).optional()\n },\n})\n\nexport const zMeasures = z.array(zMeasureGroup.or(zMeasure)).optional()\n\nexport type Measures = z.infer<typeof zMeasures>\nexport type Measure = z.infer<typeof zMeasure>\nexport type MeasureGroup = z.infer<typeof zMeasureGroup>\n","import { z } from 'zod'\n\nexport type FoldInfo = {\n foldMap: Record<string, string | undefined>\n measureId: string\n measureName: string\n measureValue: string\n}\n\nexport type UnfoldInfo = {\n groupName: string\n colorItems: string[]\n}\n\nexport const zFoldInfo = z.object({\n foldMap: z.record(z.string(), z.string().or(z.undefined())),\n measureId: z.string(),\n measureName: z.string(),\n measureValue: z.string(),\n})\nexport const zUnfoldInfo = z.object({\n colorItems: z.array(z.string()),\n groupName: z.string(),\n})\n\nexport const zDatasetReshapeInfo = z.array(\n z.object({\n id: z.string(),\n foldInfo: zFoldInfo,\n unfoldInfo: zUnfoldInfo,\n }),\n)\n\nexport type DatasetReshapeInfo = z.infer<typeof zDatasetReshapeInfo>\n","import { z } from 'zod'\n\nexport const zEncoding = z.array(\n z.object({\n x: z.array(z.string()).optional(),\n y: z.array(z.string()).optional(),\n color: z.array(z.string()).optional(),\n group: z.array(z.string()).optional(),\n angle: z.array(z.string()).optional(),\n radius: z.array(z.string()).optional(),\n tooltip: z.array(z.string()).optional(),\n }),\n)\n\nexport type Encoding = Array<{\n x?: string[]\n y?: string[]\n color?: string[]\n group?: string[]\n angle?: string[]\n radius?: string[]\n tooltip?: string[]\n}>\n","import { z } from 'zod'\nexport const zBackgroundColor = z.string().default('transparent').optional()\n\n/**\n * 图表的背景颜色\n * @default transparent 默认为透明背景\n * @description 背景颜色可以是颜色字符串, 例如'red', 'blue', 也可以是hex, rgb或rgba'#ff0000', 'rgba(255,0,0,0.5)'\n */\nexport type BackgroundColor = string | undefined\n","import { z } from 'zod'\n\nexport const zLabel = z.object({\n enable: z.boolean().default(true).optional(),\n})\n\nexport type Label = {\n /**\n * 标签功能是否开启\n * @default true\n */\n enable: boolean\n}\n","import { z } from 'zod'\n\nexport const zColor = z.object({\n colorScheme: z.array(z.string()).optional(),\n colorMapping: z.record(z.string(), z.string()).optional(),\n})\n\nexport type Color = {\n /**\n * 颜色配色方案\n * @description 颜色配色方案用于定义图表中不同元素的颜色\n * @example ['#FFCDD2,#F8BBD0,#E1BEE7,#D1C4E9,#C5CAE9,#BBDEFB,#B3E5FC,#B2EBF2,#B2DFDB,#C8E6C9,#DCEDC8,#F0F4C3,#FFF9C4,#FFECB3,#FFE0B2']\n */\n colorScheme: string[]\n /**\n * 颜色映射\n * @description 颜色映射用于将数据值映射到具体的颜色\n * @example\n * {\n * 'profit': 'red',\n * 'sales': 'blue',\n * }\n */\n colorMapping: Record<string, string>\n}\n","import { z } from 'zod'\n\nexport const zTooltip = z.object({\n enable: z.boolean().default(true).optional(),\n})\n\nexport type Tooltip = {\n /**\n * 提示信息功能是否开启\n * @default true\n */\n enable: boolean\n}\n","import { z } from 'zod'\n\nexport const zLegend = z.object({\n enable: z.boolean().default(true).optional(),\n})\n\nexport type Legend = {\n /**\n * 图例功能是否开启\n * @default true\n */\n enable: boolean\n}\n","import { z } from 'zod'\nimport { zBackgroundColor } from './backgroundColor'\nimport { zLabel } from './label'\nimport { zColor } from './color'\nimport { zTooltip } from './tooltip'\nimport { zLegend } from './legend'\n\nconst zVChartBaseConfig = z.object({\n backgroundColor: zBackgroundColor,\n label: zLabel.optional(),\n color: zColor.optional(),\n tooltip: zTooltip.optional(),\n legend: zLegend.optional(),\n})\n\nconst zVTableBaseConfig = z.object({\n backgroundColor: zBackgroundColor,\n})\n\nexport const zBaseConfig = z.object({\n vchart: zVChartBaseConfig.optional(),\n vtable: zVTableBaseConfig.optional(),\n})\n\nexport type VTableBaseConfig = z.infer<typeof zVTableBaseConfig>\nexport type VChartBaseConfig = z.infer<typeof zVChartBaseConfig>\n","import { z } from 'zod'\n\nexport type Axis = {\n /**\n * 轴是否可见\n * @default true\n * @example true\n */\n visible?: boolean\n\n /**\n * 轴的最小值\n * @description 优先级高于 nice 与 zero\n * @default undefined\n * @example 100\n */\n min?: number\n\n /**\n * 轴的最大值\n * @description 优先级高于 nice 与 zero\n * @default undefined\n * @example 10000\n */\n max?: number\n\n /**\n * 是否自动调整轴的刻度间隔,使刻度标签更易读\n * @description 当配置了 min 和 max, 该配置项失效, 仅对数值轴生效\n * @default true\n * @example true\n */\n nice?: boolean\n\n /**\n * 轴是否反向展示\n * @description 仅对数值轴生效\n * @default false\n * @example false\n */\n inverse?: boolean\n\n /**\n * 是否在坐标轴上显示 0 值,\n * @description 当配置了 min 和 max, 该配置项失效, 仅对数值轴生效\n * @default true\n * @example true\n */\n zero?: boolean\n\n /**\n * 轴标签, 自动隐藏\n * @description 2个标签若重叠(间隔小于autoHideGap), 则自动隐藏导致重叠的标签. 仅对类目轴生效.\n * @default true\n */\n labelAutoHide?: boolean\n /**\n * 轴标签, 自动隐藏间隔\n * @description 若2个文本标签的间隔小于autoHideGap, 则自动隐藏导致重叠的标签. 仅对类目轴生��.\n * autoHide开启时, 使用autoHide, 设置在autoHideSeparation上\n * autoHide关闭时, 使用sampling采样, 设置在minGap上\n * @default 4\n */\n labelAutoHideGap?: number\n /**\n * 轴标签, 自动旋转\n * @description 当标签宽度超过轴长度时, 自动旋转标签. 仅对类目轴生效.\n * @default true\n */\n labelAutoRotate?: boolean\n /**\n * 轴标签, 自动旋转角度范围\n * @description 当自动旋转开启时, 标签旋转角度范围. 仅对类目轴生效.\n * @default [0, -45, -90]\n */\n labelAutoRotateAngleRange?: number[]\n /**\n * 轴标签, 自动限制长度,\n * @description 当标签宽度超过轴长度时, 超出部分省略号表示, 鼠标悬浮后可见标签, 自动限制标签宽度. 仅对类目轴生效.\n * @default true\n */\n labelAutoLimit?: boolean\n /**\n * 轴标签, 自动限制长度的最大长度\n * @description 当标签文本长度超过最大长度时, 超出部分省略号表示, 鼠标悬浮后可见标签. 仅对类目轴生效.\n * @default 100\n */\n labelAutoLimitLength?: number\n\n /**\n * X轴刻度标签\n * @default true\n */\n label?: {\n /**\n * 标签是否可见\n * @default true\n */\n visible?: boolean\n /**\n * 标签颜色\n * @default '#797B85'\n */\n labelColor?: string\n /**\n * 标签字体大小\n * @default 12\n */\n labelFontSize?: number\n /**\n * 标签字体粗细\n * @default 400\n */\n labelFontWeight?: number\n /**\n * 标签旋转角度\n * @default 0\n */\n labelAngle?: number\n }\n\n /**\n * X轴线\n * @example\n * {\n * visible: true,\n * lineColor: '#ffeecc',\n * lineWidth: 2,\n * }\n */\n line?: {\n /**\n * 轴线是否可见\n * @default true\n */\n visible?: boolean\n /**\n * 轴线颜色\n * @default 'rgba(54, 65, 89, 0.30)'\n */\n lineColor?: string\n /**\n * 轴线宽度\n * @default 1\n */\n lineWidth?: number\n }\n\n /**\n * X轴刻度\n * @default true\n */\n tick?: {\n /**\n * 刻度是否可见\n * @default true\n */\n visible?: boolean\n /**\n * 刻度是否朝内\n * @default false\n */\n tickInside?: boolean\n /**\n * 刻度颜色\n * @default 'rgba(54, 65, 89, 0.30)'\n */\n tickColor?: string\n /**\n * 刻度尺寸\n * @default 4\n */\n tickSize?: number\n }\n\n /**\n * X轴标题\n * @default false\n */\n title?: {\n /**\n * 标题是否可见\n * @default false\n */\n visible?: boolean\n /**\n * 标题文本, 默认跟随字段配置\n * @default ''\n */\n titleText?: string\n /**\n * 标题颜色\n * @default '#646A73'\n */\n titleColor?: string\n /**\n * 标题字体大小\n * @default 12\n */\n titleFontSize?: number\n /**\n * 标题字体粗细\n * @default 400\n */\n titleFontWeight?: number\n }\n\n /**\n * X轴网格线\n * @default false\n */\n grid?: {\n visible?: boolean\n /**\n * 网格线颜色\n * @default 'rgba(54, 65, 89, 0.15)'\n */\n gridColor?: string\n /**\n * 网格线宽度\n * @default 0.5\n */\n gridWidth?: number\n }\n}\n\nexport const zAxis = z.object({\n visible: z.boolean().default(true).optional(),\n\n min: z.number().optional(),\n max: z.number().optional(),\n nice: z.boolean().default(true).optional(),\n zero: z.boolean().default(true).optional(),\n inverse: z.boolean().default(false).optional(),\n\n labelAutoHide: z.boolean().default(true).optional(),\n labelAutoHideGap: z.number().default(4).optional(),\n labelAutoRotate: z.boolean().default(true).optional(),\n labelAutoRotateAngleRange: z.array(z.number()).default([0, -45, -90]).optional(),\n labelAutoLimit: z.boolean().default(true).optional(),\n labelAutoLimitLength: z.number().default(100).optional(),\n label: z\n .object({\n visible: z.boolean().default(true).optional(),\n labelColor: z.string().default('#797B85').optional(),\n labelFontSize: z.number().default(12).optional(),\n labelFontWeight: z.number().default(400).optional(),\n labelAngle: z.number().default(0).optional(),\n })\n .optional(),\n line: z\n .object({\n visible: z.boolean().default(true).optional(),\n lineColor: z.string().default('rgba(54, 65, 89, 0.30)').optional(),\n lineWidth: z.number().default(1).optional(),\n })\n .optional(),\n tick: z\n .object({\n visible: z.boolean().default(true).optional(),\n tickInside: z.boolean().default(false).optional(),\n tickColor: z.string().default('rgba(54, 65, 89, 0.30)').optional(),\n tickSize: z.number().default(4).optional(),\n })\n .optional(),\n title: z\n .object({\n visible: z.boolean().default(false).optional(),\n titleText: z.string().default('').optional(),\n titleColor: z.string().default('#646A73').optional(),\n titleFontSize: z.number().default(12).optional(),\n titleFontWeight: z.number().default(400).optional(),\n })\n .optional(),\n grid: z\n .object({\n visible: z.boolean().default(false).optional(),\n gridColor: z.string().default('rgba(54, 65, 89, 0.15)').optional(),\n gridWidth: z.number().default(0.5).optional(),\n })\n .optional(),\n})\n","import { z } from 'zod'\nimport type { Axis } from './axis'\n\nexport type XBandAxis = Omit<Axis, 'min' | 'max' | 'nice' | 'zero'>\nexport type YBandAxis = Omit<Axis, 'min' | 'max' | 'nice' | 'zero'>\n\nexport const zXBandAxis = z.object({\n visible: z.boolean().default(true).optional(),\n\n labelAutoHide: z.boolean().default(true).optional(),\n labelAutoHideGap: z.number().default(0).optional(),\n labelAutoRotate: z.boolean().default(true).optional(),\n labelAutoRotateAngleRange: z.array(z.number()).default([0, -45, -90]).optional(),\n labelAutoLimit: z.boolean().default(true).optional(),\n labelAutoLimitLength: z.number().default(100).optional(),\n label: z\n .object({\n visible: z.boolean().default(true).optional(),\n labelColor: z.string().default('#797B85').optional(),\n labelFontSize: z.number().default(12).optional(),\n labelFontWeight: z.number().default(400).optional(),\n labelAngle: z.number().default(0).optional(),\n })\n .optional(),\n line: z\n .object({\n visible: z.boolean().default(true).optional(),\n lineColor: z.string().default('rgba(54, 65, 89, 0.30)').optional(),\n lineWidth: z.number().default(1).optional(),\n })\n .optional(),\n tick: z\n .object({\n visible: z.boolean().default(true).optional(),\n tickInside: z.boolean().default(false).optional(),\n tickColor: z.string().default('rgba(54, 65, 89, 0.30)').optional(),\n tickSize: z.number().default(4).optional(),\n })\n .optional(),\n title: z\n .object({\n visible: z.boolean().default(false).optional(),\n titleText: z.string().default('').optional(),\n titleColor: z.string().default('#646A73').optional(),\n titleFontSize: z.number().default(12).optional(),\n titleFontWeight: z.number().default(400).optional(),\n })\n .optional(),\n grid: z\n .object({\n visible: z.boolean().default(false).optional(),\n gridColor: z.string().default('rgba(54, 65, 89, 0.15)').optional(),\n gridWidth: z.number().default(0.5).optional(),\n })\n .optional(),\n})\nexport const zYBandAxis = zXBandAxis\n","import { z } from 'zod'\nimport { type Axis } from './axis'\n\nexport type XLinearAxis = Omit<\n Axis,\n | 'labelAutoHide'\n | 'labelAutoHideGap'\n | 'labelAutoRotate'\n | 'labelAutoRotateAngleRange'\n | 'labelAutoLimit'\n | 'labelAutoLimitLength'\n>\nexport type YLinearAxis = Omit<\n Axis,\n | 'labelAutoHide'\n | 'labelAutoHideGap'\n | 'labelAutoRotate'\n | 'labelAutoRotateAngleRange'\n | 'labelAutoLimit'\n | 'labelAutoLimitLength'\n>\n\nexport const zXLinearAxis = z.object({\n visible: z.boolean().default(true).optional(),\n\n min: z.number().optional(),\n max: z.number().optional(),\n nice: z.boolean().default(true).optional(),\n zero: z.boolean().default(true).optional(),\n inverse: z.boolean().default(false).optional(),\n\n label: z\n .object({\n visible: z.boolean().default(true).optional(),\n labelColor: z.string().default('#797B85').optional(),\n labelFontSize: z.number().default(12).optional(),\n labelFontWeight: z.number().default(400).optional(),\n labelAngle: z.number().default(0).optional(),\n })\n .optional(),\n line: z\n .object({\n visible: z.boolean().default(true).optional(),\n lineColor: z.string().default('rgba(54, 65, 89, 0.30)').optional(),\n lineWidth: z.number().default(1).optional(),\n })\n .optional(),\n tick: z\n .object({\n visible: z.boolean().default(true).optional(),\n tickInside: z.boolean().default(false).optional(),\n tickColor: z.string().default('rgba(54, 65, 89, 0.30)').optional(),\n tickSize: z.number().default(4).optional(),\n })\n .optional(),\n title: z\n .object({\n visible: z.boolean().default(false).optional(),\n titleText: z.string().default('').optional(),\n titleColor: z.string().default('#646A73').optional(),\n titleFontSize: z.number().default(12).optional(),\n titleFontWeight: z.number().default(400).optional(),\n })\n .optional(),\n grid: z\n .object({\n visible: z.boolean().default(false).optional(),\n gridColor: z.string().default('rgba(54, 65, 89, 0.15)').optional(),\n gridWidth: z.number().default(0.5).optional(),\n })\n .optional(),\n})\n\nexport const zYLinearAxis = zXLinearAxis\n","import { z } from 'zod'\nimport { zXBandAxis, zYBandAxis } from './bandAxis'\nimport { zXLinearAxis, zYLinearAxis } from './linearAxis'\n\nexport const zConfig = z.object({\n line: z\n .object({\n xAxis: zXBandAxis,\n yAxis: zYLinearAxis,\n })\n .optional(),\n column: z\n .object({\n xAxis: zXBandAxis,\n yAxis: zYLinearAxis,\n })\n .optional(),\n columnParallel: z\n .object({\n xAxis: zXBandAxis,\n yAxis: zYLinearAxis,\n })\n .optional(),\n columnPercent: z\n .object({\n xAxis: zXBandAxis,\n yAxis: zYLinearAxis,\n })\n .optional(),\n bar: z\n .object({\n xAxis: zXLinearAxis,\n yAxis: zYBandAxis,\n })\n .optional(),\n barParallel: z\n .object({\n xAxis: zXLinearAxis,\n yAxis: zYBandAxis,\n })\n .optional(),\n barPercent: z\n .object({\n xAxis: zXLinearAxis,\n yAxis: zYBandAxis,\n })\n .optional(),\n area: z\n .object({\n xAxis: zXBandAxis,\n yAxis: zYLinearAxis,\n })\n .optional(),\n areaPercent: z\n .object({\n xAxis: zXBandAxis,\n yAxis: zYLinearAxis,\n })\n .optional(),\n pie: z.object({}).optional(),\n donut: z.object({}).optional(),\n rose: z.object({}).optional(),\n dualAxis: z.object({}).optional(),\n table: z.object({}).optional(),\n pivotTable: z.object({}).optional(),\n})\n\nexport type Config = z.infer<typeof zConfig>\n","import { z } from 'zod'\nimport { zBaseConfig } from '../baseConfig'\nimport { zConfig } from '../config'\n\nexport const zCustomThemeConfig = z.object({\n baseConfig: zBaseConfig.optional(),\n config: zConfig.optional(),\n})\n\nexport const zCustomTheme = z.record(z.string(), zCustomThemeConfig).optional()\n\nexport type CustomTheme = z.infer<typeof zCustomTheme>\nexport type CustomThemeConfig = z.infer<typeof zCustomThemeConfig>\n","import { z } from 'zod'\n\nexport const zTheme = z.string()\n\ntype Light = 'light' & { readonly brand: unique symbol }\ntype Dark = 'dark' & { readonly brand: unique symbol }\n\n/**\n * 主题\n * @default light\n * @description 内置 light、dark 两种主题, 新的主题可以通过registerTheme自定义主题.\n */\nexport type Theme = Light | Dark | string\n"],"names":["initAdvancedVSeed","advancedVSeed","context","vseed","chartType","execPipeline","pipeline","initialValue","result","prev","cur","isVTable","isVChart","isPivotChart","measures","dimensions","hasRowOrColumnDimension","dimension","hasMeasureGroup","measure","autoMeasures","dataset","Error","autoMeasureGroup","top100dataset","sample","Object","key","item","undefined","newMeasures","currentGroup","createEmptyMeasureGroup","measureGroups","autoDimensions","dim","FoldMeasureName","FoldMeasureValue","FoldMeasureId","UnfoldDimensionGroup","Separator","unfoldDimensions","unfoldStartIndex","foldGroupName","dimensionsSeparator","dimensionsToBeUnfolded","unfoldInfo","colorItems","i","datum","colorItem","generateDimGroupName","unique","dimensionsToBeGrouped","String","foldMeasures","measureId","measureName","measureValue","foldInfo","Array","index","j","id","alias","emptyReshapeResult","dataReshapeFor2D1M","options","foldMeasureId","foldMeasureName","foldMeasureValue","unfoldDimensionGroup","foldedDataset","finalDataset","dataReshapeFor1D1M","reshapeTo2D1M","newDatasets","reshapeTo1D1M","pivotReshapeTo1D1M","datasetReshapeInfo","measureGroup","commonDimensions","groupId","newSubDataset","reshapeInfo","pivotReshapeTo2D1M","encodingXY","encoding","isSingleDimension","x","y","group","color","encodingYX","encodingPolar","radius","angle","vchartBaseConfig","config","pick","lineConfig","pieConfig","barConfig","barParallelConfig","barPercentConfig","columnConfig","columnParallelConfig","columnPercentConfig","areaConfig","areaPercentConfig","vchartTheme","customTheme","theme","baseConfigVChartTheme","baseConfigVChart","mergedConfig","mergeDeep","clone","chartConfigTheme","chartConfig","pivotAdapter","pivotPipeline","usePivotChart","lineAdvancedPipeline","barAdvancedPipeline","barParallelAdvancedPipeline","barPercentAdvancedPipeline","columnAdvancedPipeline","columnParallelAdvancedPipeline","columnPercentAdvancedPipeline","areaAdvancedPipeline","areaPercentAdvancedPipeline","pieAdvancedPipeline","spec","datasetPivot","records","pre","datasetPivotPlaceholder","initColumn","initBar","initBarParallel","initArea","initLine","initColumnParallel","initPie","initPivot","xBand","visible","label","tick","title","grid","line","labelAutoHide","labelAutoHideGap","labelAutoLimit","labelAutoLimitLength","labelAutoRotate","labelAutoRotateAngleRange","sampling","bandAxis","xLinear","zero","nice","inverse","max","min","linearAxis","yBand","yLinear","percent","stack","backgroundColor","baseConfig","defaultTooltip","tooltip","enable","defaultLegend","legend","pivotLegend","d","colorScheme","legends","colorMapping","pivotIndicators","chartPipeline","indicators","newEncoding","newDatasetReshapeInfo","newContext","chartSpec","pivotIndicatorsAsRow","pivotIndicatorsAsCol","pivotGridStyle","transparent","pivotColumnDimensions","columnDimensions","columns","pivotRowDimensions","rowDimensions","rows","pivotLine","lineSpecPipeline","column","pivotColumn","columnSpecPipeline","columnParallel","pivotColumnParallel","columnParallelSpecPipeline","columnPercent","pivotColumnPercent","columnPercentSpecPipeline","bar","pivotBar","barSpecPipeline","barParallel","pivotBarParallel","barParallelSpecPipeline","barPercent","pivotBarPercent","barPercentSpecPipeline","area","pivotArea","areaSpecPipeline","areaPercent","pivotAreaPercent","areaPercentSpecPipeline","pie","pivotPie","pieSpecPipeline","buildAdvanced","builder","e","console","buildSpec","build","Builder","advanced","themeKey","value","registerColumn","registerBar","registerLine","registerArea","registerAreaPercent","registerBarPercent","registerColumnPercent","registerColumnParallel","registerBarParallel","registerPie","darkTheme","lightTheme","barBandAxis","registerCustomTheme","themeConfig","registerLightTheme","registerDarkTheme","registerAll","zChartType","z","zDatum","zDataset","zDimension","zDimensions","zMeasure","zMeasureGroup","zMeasures","zFoldInfo","zUnfoldInfo","zDatasetReshapeInfo","zEncoding","zBackgroundColor","zLabel","zColor","zTooltip","zLegend","zVChartBaseConfig","zVTableBaseConfig","zBaseConfig","zAxis","zXBandAxis","zYBandAxis","zXLinearAxis","zYLinearAxis","zConfig","zCustomThemeConfig","zCustomTheme","zTheme"],"mappings":"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"}
|