@visactor/vseed 0.0.13 → 0.0.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["webpack://@visactor/vseed/webpack/runtime/define_property_getters","webpack://@visactor/vseed/webpack/runtime/has_own_property","webpack://@visactor/vseed/webpack/runtime/make_namespace_object","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/i18n/i18n.ts","webpack://@visactor/vseed/./src/pipeline/utils/format/createNumFormatter.ts","webpack://@visactor/vseed/./src/pipeline/utils/format/createFormatter.ts","webpack://@visactor/vseed/./src/pipeline/utils/measures/findMeasureById.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/pipes/markStyle/markStyle.ts","webpack://@visactor/vseed/./src/pipeline/advanced/pipes/annotation/annotation.ts","webpack://@visactor/vseed/./src/pipeline/advanced/pipes/i18n/locale.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/constant.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/stack/stackCornerRadius.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/discreteLegend.ts","webpack://@visactor/vseed/./src/pipeline/spec/pipes/legend/pivotDiscreteLegend.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/dataSelector/selector.ts","webpack://@visactor/vseed/./src/pipeline/spec/pipes/markStyle/barStyle.ts","webpack://@visactor/vseed/./src/pipeline/spec/pipes/markStyle/pointStyle.ts","webpack://@visactor/vseed/./src/pipeline/spec/pipes/markStyle/lineStyle.ts","webpack://@visactor/vseed/./src/pipeline/spec/pipes/markStyle/areaStyle.ts","webpack://@visactor/vseed/./src/pipeline/spec/pipes/annotation/utils.ts","webpack://@visactor/vseed/./src/pipeline/spec/pipes/annotation/annotationPoint.ts","webpack://@visactor/vseed/./src/pipeline/spec/pipes/annotation/annotationVerticalLine.ts","webpack://@visactor/vseed/./src/pipeline/spec/pipes/annotation/annotationHorizontalLine.ts","webpack://@visactor/vseed/./src/pipeline/spec/pipes/annotation/annotationArea.ts","webpack://@visactor/vseed/./src/pipeline/spec/pipes/annotation/annotationAreaBand.ts","webpack://@visactor/vseed/./src/pipeline/spec/pipes/crosshair/verticalCrosshairLine.ts","webpack://@visactor/vseed/./src/pipeline/spec/pipes/crosshair/verticalCrosshairRect.ts","webpack://@visactor/vseed/./src/pipeline/spec/pipes/crosshair/horizontalCrosshairRect.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/light.ts","webpack://@visactor/vseed/./src/theme/dark.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/format/numFormat.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/crosshair.ts","webpack://@visactor/vseed/./src/types/properties/config/stackCornerRadius.ts","webpack://@visactor/vseed/./src/types/properties/config/config.ts","webpack://@visactor/vseed/./src/types/dataSelector/selector.ts","webpack://@visactor/vseed/./src/types/properties/annotation/annotationPoint.ts","webpack://@visactor/vseed/./src/types/properties/annotation/annotationVerticalLine.ts","webpack://@visactor/vseed/./src/types/properties/annotation/annotationHorizontalLine.ts","webpack://@visactor/vseed/./src/types/properties/annotation/annotationArea.ts","webpack://@visactor/vseed/./src/types/properties/annotation/annotation.ts","webpack://@visactor/vseed/./src/types/properties/markStyle/barStyle.ts","webpack://@visactor/vseed/./src/types/properties/markStyle/pointStyle.ts","webpack://@visactor/vseed/./src/types/properties/markStyle/lineStyle.ts","webpack://@visactor/vseed/./src/types/properties/markStyle/areaStyle.ts","webpack://@visactor/vseed/./src/types/properties/markStyle/markStyle.ts","webpack://@visactor/vseed/./src/types/properties/theme/customTheme.ts","webpack://@visactor/vseed/./src/types/properties/theme/theme.ts"],"sourcesContent":["__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n }\n }\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\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 { isNullish } from 'remeda'\nimport translateMap from './i18n.json'\nimport type { Locale, TranslateRecordType } from '../types'\n\nclass Intl {\n private static instance: Intl\n\n private translateMap: TranslateRecordType = translateMap as unknown as TranslateRecordType\n private locale: Locale = 'zh-CN'\n\n canTranslate = (value: string) => !!this.translateMap[value]\n\n /**\n * @example i18n`指标名称`\n */\n i18n = (segments: TemplateStringsArray, ...values: Array<number | string>) => {\n const text = segments.map((segment, index) => segment + (values[index] || '')).join('')\n\n const translatedText = this.translateMap?.[text]?.[this.locale]\n if (isNullish(translatedText)) {\n console.warn(`i18n ${this.locale} no translate: ${text}`)\n return text\n }\n return translatedText\n }\n\n setLocale = (locale: Locale): void => {\n this.locale = locale\n }\n\n getLocale: () => Locale = () => this.locale\n\n public static getInstance() {\n if (!Intl.instance) {\n Intl.instance = new Intl()\n }\n\n return Intl.instance\n }\n}\n\nconst intl = Intl.getInstance()\n\nconst i18n = intl.i18n\n\nexport { intl, i18n }\n","import { intl } from '../../../i18n'\nimport type { Formatter, Locale, NumFormat } from 'src/types'\n\nexport const createNumFormatter = (format: NumFormat): Formatter => {\n const {\n type = 'number',\n ratio = 1,\n symbol = '',\n thousandSeparator = true,\n decimalPlaces = 2,\n round = 'round',\n prefix = '',\n suffix = '',\n } = format || {}\n\n return (value?: number | string) => {\n let num = Number(value)\n let typeSymbol = ''\n if (Number.isNaN(num)) {\n return num.toString()\n }\n\n // apply ratio for percent/permille\n if (type === 'percent') {\n num *= 100\n typeSymbol = '%'\n } else if (type === 'permille') {\n num *= 1000\n typeSymbol = '‰'\n } else if (type === 'number') {\n num = num / (ratio || 1)\n }\n\n // rounding\n const multiplier = 10 ** decimalPlaces\n num = Math[round](num * multiplier) / multiplier\n\n let numStr = num.toFixed(decimalPlaces)\n\n // add thousand separator\n if (thousandSeparator) {\n const parts = numStr.split('.')\n parts[0] = parts[0].replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',')\n numStr = parts.join('.')\n }\n\n // add symbol, typeSymbol, prefix and suffix\n return `${prefix}${numStr}${typeSymbol}${symbol}${suffix}`\n }\n}\n\nexport const autoNumFormatter = (value?: number | string, locale: Locale = intl.getLocale()): string => {\n if (value === undefined || value === null) return String(value)\n const num = Number(value)\n if (Number.isNaN(num)) return String(value)\n\n const countDecimalPlaces = (num: number) => {\n if (Number.isInteger(num)) return 0\n\n const str = num.toString()\n if (str.indexOf('e-') > -1) {\n return parseInt(str.split('e-')[1])\n }\n\n const decimalPart = str.split('.')[1]\n if (!decimalPart) return 0\n\n const decimalPlaces = decimalPart.replace(/0+$/, '').length\n return Math.max(2, decimalPlaces)\n }\n\n const numFormat: NumFormat = {\n type: 'number',\n decimalPlaces: countDecimalPlaces(num),\n round: 'round',\n thousandSeparator: true,\n }\n\n const rules = NUMBER_FORMAT_RULES[locale] || NUMBER_FORMAT_RULES['default']\n\n for (const rule of rules) {\n if (num >= rule.threshold) {\n numFormat.ratio = rule.ratio\n numFormat.symbol = rule.symbol\n break // 使用第一个匹配的规则\n }\n }\n\n return createNumFormatter(numFormat)(value)\n}\n\nconst NUMBER_FORMAT_RULES = {\n 'zh-CN': [\n { threshold: 100000000, ratio: 100000000, symbol: '亿' },\n { threshold: 10000, ratio: 10000, symbol: '万' },\n ],\n 'en-US': [\n { threshold: 1000000000, ratio: 1000000000, symbol: 'B' },\n { threshold: 1000000, ratio: 1000000, symbol: 'M' },\n { threshold: 1000, ratio: 1000, symbol: 'K' },\n ],\n default: [\n { threshold: 1000000000, ratio: 1000000000, symbol: 'B' },\n { threshold: 1000000, ratio: 1000000, symbol: 'M' },\n { threshold: 1000, ratio: 1000, symbol: 'K' },\n ],\n}\n","import type { Formatter, Locale, NumFormat } from 'src/types'\nimport { autoNumFormatter, createNumFormatter } from './createNumFormatter'\n\nexport const createFormatter = (format: Partial<NumFormat>): Formatter => {\n return createNumFormatter(format)\n}\n\nexport const autoFormatter = (value?: number | string, locale?: Locale): string => {\n return autoNumFormatter(value, locale)\n}\n","import type { Measure, MeasureGroup, Measures } from 'src/types'\n\nexport function findMeasureById(measures: Measures, id: string): Measure | undefined {\n if (!measures) return undefined\n\n // Use a stack to avoid recursion\n const stack: (Measure | MeasureGroup)[] = [...measures]\n\n while (stack.length > 0) {\n const current = stack.pop()\n\n if (!current) continue\n\n // Check if current item matches the ID\n if (current.id === id && !('children' in current)) {\n return current\n }\n\n // If it's a group with children, add them to the stack\n if ('children' in current && current.children) {\n stack.push(...current.children)\n }\n }\n\n return undefined\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.alias = currentGroup.children.map((item) => item.alias).join('-')\n currentGroup.id = currentGroup.alias + currentGroup.children.map((item) => item.id).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.alias = currentGroup.children.map((item) => item.alias).join('-')\n currentGroup.id = currentGroup.alias + currentGroup.children.map((item) => item.id).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\nexport const ORIGINAL_DATA = '__OriginalData__'\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, ORIGINAL_DATA } from './constant'\nimport { omit } from 'remeda'\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 const ids = measures.map((d) => d.id)\n for (let i = 0; i < dataset.length; i++) {\n for (let j = 0; j < measures.length; j++) {\n const datum: Record<string, any> = omit({ ...dataset[i] }, ids)\n\n datum[ORIGINAL_DATA] = dataset[i]\n\n const measure = measures[j]\n const { id, alias } = measure\n\n datum[id] = dataset[i][id] as unknown\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'\nimport { i18n } from '../i18n'\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: i18n`指标Id`, location: 'dimension' },\n { id: foldMeasureName, alias: i18n`指标名称`, location: 'dimension' },\n ],\n [{ id: foldMeasureValue, alias: i18n`指标值` }],\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: i18n`指标名称`, location: 'dimension' }],\n [{ id: foldMeasureValue, alias: i18n`指标值` }],\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'\nimport { i18n } from '../i18n'\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: i18n`指标名称`, location: 'dimension' }],\n [{ id: foldMeasureValue, alias: i18n`指标值` }],\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: i18n`指标名称`, location: 'dimension' }],\n [{ id: foldMeasureValue, alias: i18n`指标值` }],\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 === 1\n const isZeroDimension = dimensions.length === 0\n const x = [isZeroDimension ? foldInfo.measureName : dimensions[0].id]\n const y = [foldInfo.measureValue]\n const group = [isSingleDimension || isZeroDimension ? 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 isZeroDimension = dimensions.length === 0\n const isSingleDimension = dimensions.length === 1\n const y = [isZeroDimension ? foldInfo.measureName : dimensions[0].id]\n const x = [foldInfo.measureValue]\n const group = [isSingleDimension || isZeroDimension ? 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', 'crosshairLine']) 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 columnConfig: 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', 'crosshairRect', 'stackCornerRadius']) as Config['column']\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 areaConfig: AdvancedPipe = lineConfig\nexport const areaPercentConfig: AdvancedPipe = lineConfig\n\nexport const barConfig: AdvancedPipe = columnConfig\nexport const barParallelConfig: AdvancedPipe = columnConfig\nexport const barPercentConfig: AdvancedPipe = columnConfig\nexport const columnParallelConfig: AdvancedPipe = columnConfig\nexport const columnPercentConfig: AdvancedPipe = columnConfig\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 { pick } from 'remeda'\nimport type { AdvancedPipe, AdvancedVSeed } from 'src/types'\n\nexport const markStyle: AdvancedPipe = (advancedVSeed, context) => {\n const { vseed } = context\n\n const markStyle = pick(vseed, ['barStyle', 'pointStyle', 'lineStyle', 'areaStyle']) as AdvancedVSeed['markStyle']\n\n return { ...advancedVSeed, markStyle }\n}\n","import { pick } from 'remeda'\nimport type { AdvancedPipe, AdvancedVSeed } from 'src/types'\n\nexport const annotation: AdvancedPipe = (advancedVSeed, context) => {\n const { vseed } = context\n\n const annotation = pick(vseed, [\n 'annotationPoint',\n 'annotationHorizontalLine',\n 'annotationVerticalLine',\n 'annotationArea',\n ]) as AdvancedVSeed['annotation']\n\n return { ...advancedVSeed, annotation }\n}\n","import type { AdvancedPipe } from 'src/types'\n\nexport const locale: AdvancedPipe = (advancedVSeed, context) => {\n const { vseed } = context\n const { locale } = vseed\n\n return {\n ...advancedVSeed,\n locale: locale || 'zh-CN',\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 annotation,\n markStyle,\n locale,\n} from '../pipes'\n\nexport const lineAdvancedPipeline: AdvancedPipeline = [\n initAdvancedVSeed,\n locale,\n autoMeasures,\n autoDimensions,\n pivotAdapter([reshapeTo2D1M], [pivotReshapeTo2D1M]),\n encodingXY,\n vchartBaseConfig,\n lineConfig,\n vchartTheme,\n markStyle,\n annotation\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 markStyle,\n annotation,\n locale,\n} from '../pipes'\n\nexport const barAdvancedPipeline: AdvancedPipeline = [\n initAdvancedVSeed,\n locale,\n autoMeasures,\n autoDimensions,\n pivotAdapter([reshapeTo2D1M], [pivotReshapeTo2D1M]),\n encodingYX,\n barConfig,\n vchartBaseConfig,\n vchartTheme,\n markStyle,\n annotation,\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 markStyle,\n annotation,\n locale,\n} from '../pipes'\n\nexport const barParallelAdvancedPipeline: AdvancedPipeline = [\n initAdvancedVSeed,\n locale,\n autoMeasures,\n autoDimensions,\n pivotAdapter([reshapeTo2D1M], [pivotReshapeTo2D1M]),\n encodingYX,\n barParallelConfig,\n vchartBaseConfig,\n vchartTheme,\n markStyle,\n annotation,\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 markStyle,\n annotation,\n locale,\n} from '../pipes'\n\nexport const barPercentAdvancedPipeline: AdvancedPipeline = [\n initAdvancedVSeed,\n locale,\n autoMeasures,\n autoDimensions,\n pivotAdapter([reshapeTo2D1M], [pivotReshapeTo2D1M]),\n encodingYX,\n barPercentConfig,\n vchartBaseConfig,\n vchartTheme,\n markStyle,\n annotation,\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 markStyle,\n annotation,\n locale,\n} from '../pipes'\nimport { pivotReshapeTo2D1M } from '../pipes/reshape/pivotReshapeTo2D1M'\n\nexport const columnAdvancedPipeline: AdvancedPipeline = [\n initAdvancedVSeed,\n locale,\n autoMeasures,\n autoDimensions,\n pivotAdapter([reshapeTo2D1M], [pivotReshapeTo2D1M]),\n encodingXY,\n columnConfig,\n vchartBaseConfig,\n vchartTheme,\n markStyle,\n annotation,\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 markStyle,\n annotation,\n locale,\n} from '../pipes'\n\nexport const columnParallelAdvancedPipeline: AdvancedPipeline = [\n initAdvancedVSeed,\n locale,\n autoMeasures,\n autoDimensions,\n pivotAdapter([reshapeTo2D1M], [pivotReshapeTo2D1M]),\n encodingXY,\n columnParallelConfig,\n vchartBaseConfig,\n vchartTheme,\n markStyle,\n annotation,\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 markStyle,\n annotation,\n locale,\n} from '../pipes'\n\nexport const columnPercentAdvancedPipeline: AdvancedPipeline = [\n initAdvancedVSeed,\n locale,\n autoMeasures,\n autoDimensions,\n pivotAdapter([reshapeTo2D1M], [pivotReshapeTo2D1M]),\n encodingXY,\n columnPercentConfig,\n vchartBaseConfig,\n vchartTheme,\n markStyle,\n annotation,\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 annotation,\n markStyle,\n locale,\n} from '../pipes'\n\nexport const areaAdvancedPipeline: AdvancedPipeline = [\n initAdvancedVSeed,\n locale,\n autoMeasures,\n autoDimensions,\n pivotAdapter([reshapeTo2D1M], [pivotReshapeTo2D1M]),\n encodingXY,\n areaConfig,\n vchartBaseConfig,\n vchartTheme,\n markStyle,\n annotation,\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 annotation,\n markStyle,\n locale,\n} from '../pipes'\n\nexport const areaPercentAdvancedPipeline: AdvancedPipeline = [\n initAdvancedVSeed,\n locale,\n autoMeasures,\n autoDimensions,\n pivotAdapter([reshapeTo2D1M], [pivotReshapeTo2D1M]),\n encodingXY,\n areaPercentConfig,\n vchartBaseConfig,\n vchartTheme,\n markStyle,\n annotation\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 annotation,\n locale,\n} from '../pipes'\n\nexport const pieAdvancedPipeline: AdvancedPipeline = [\n initAdvancedVSeed,\n locale,\n autoMeasures,\n autoDimensions,\n pivotAdapter([reshapeTo1D1M], [pivotReshapeTo1D1M]),\n encodingPolar,\n pieConfig,\n vchartBaseConfig,\n vchartTheme,\n annotation\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 paddingInner: [0.15, 0.1],\n paddingOuter: [0.075, 0.1],\n } as ICartesianBandAxisSpec\n\n result.axes = [...result.axes, bandAxis] as ISpec['axes']\n return result\n}\n","// 标注层 z-index \nexport const ANNOTATION_Z_INDEX = 1000\n// 线性轴 顶部空隙 预留5px\nexport const LINEAR_AXIS_INNER_OFFSET_TOP = 7","import type { ISpec } from '@visactor/vchart'\nimport { LINEAR_AXIS_INNER_OFFSET_TOP } from '../../../constant'\nimport type { SpecPipe, XLinearAxis } from 'src/types'\nimport { autoFormatter } from '../../../utils'\n\nexport const xLinear: SpecPipe = (spec, context) => {\n const result = { ...spec } as ISpec\n const { advancedVSeed, vseed } = context\n const { chartType } = vseed\n const { locale } = advancedVSeed\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 formatMethod: (value: string) => {\n return autoFormatter(value, locale)\n },\n style: {\n fill: label?.labelColor,\n angle: label?.labelAngle,\n fontSize: label?.labelFontSize,\n fontWeight: label?.labelFontWeight,\n },\n },\n title: {\n visible: title?.visible,\n text: title?.titleText,\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 innerOffset: {\n top: LINEAR_AXIS_INNER_OFFSET_TOP,\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 paddingInner: [0.15, 0.1],\n paddingOuter: [0.075, 0.1],\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 { LINEAR_AXIS_INNER_OFFSET_TOP } from '../../../constant'\nimport { autoFormatter } from '../../../utils'\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 { locale } = advancedVSeed\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 formatMethod: (value: string) => {\n return autoFormatter(value, locale)\n },\n style: {\n fill: label?.labelColor,\n angle: label?.labelAngle,\n fontSize: label?.labelFontSize,\n fontWeight: label?.labelFontWeight,\n },\n },\n title: {\n visible: title?.visible,\n text: title?.titleText,\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 innerOffset: {\n top: LINEAR_AXIS_INNER_OFFSET_TOP,\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 type { IAreaChartSpec, IBarChartSpec } from '@visactor/vchart'\nimport type { SpecPipe } from 'src/types'\n\nexport const stackInverse: SpecPipe = (spec) => {\n const result = { ...spec } as IAreaChartSpec | IBarChartSpec\n result.stackInverse = true\n return result\n}\n","import type { SpecPipe, StackCornerRadius } from 'src/types'\n\nexport const stackCornerRadius: SpecPipe = (spec, context) => {\n const { advancedVSeed, vseed } = context\n const { chartType } = vseed\n const stackCornerRadius = advancedVSeed.config?.[chartType as 'column']?.stackCornerRadius as StackCornerRadius\n\n return {\n ...spec,\n stackCornerRadius,\n }\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 { isEmpty } from 'remeda'\nimport { autoFormatter, createFormatter, findMeasureById } from '../../../utils'\nimport 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 { measures, datasetReshapeInfo } = advancedVSeed\n const baseConfig = advancedVSeed.baseConfig.vchart as { tooltip: Tooltip }\n const { tooltip = defaultTooltip } = baseConfig\n const { enable } = tooltip\n\n const { measureId, measureName, measureValue } = datasetReshapeInfo[0].foldInfo\n result.tooltip = {\n visible: enable,\n mark: {\n content: [\n {\n visible: true,\n key: (datum) => (datum && (datum[measureName] as string)) || '',\n value: (datum) => {\n if (!datum) {\n return ''\n }\n const value = datum[measureValue] as string | number\n const id = datum[measureId] as string\n const measure = findMeasureById(measures, id)\n if (!measure) {\n return String(value)\n }\n\n const { format = {}, autoFormat = true } = measure\n\n if (!isEmpty(format)) {\n const formatter = createFormatter(format)\n return formatter(value)\n }\n if (autoFormat) {\n return autoFormatter(value)\n }\n return String(value)\n },\n },\n ],\n },\n dimension: {\n content: [\n {\n visible: true,\n key: (datum) => (datum && (datum[measureName] as string)) || '',\n value: (datum) => {\n if (!datum) {\n return ''\n }\n const value = datum[measureValue] as string | number\n const id = datum[measureId] as string\n const measure = findMeasureById(measures, id)\n if (!measure) {\n return String(value)\n }\n\n const { format = {}, autoFormat = true } = measure\n\n if (!isEmpty(format)) {\n const formatter = createFormatter(format)\n return formatter(value)\n }\n if (autoFormat) {\n return autoFormatter(value)\n }\n return String(value)\n },\n },\n ],\n },\n }\n return result\n}\n","import type { ILineChartSpec } from '@visactor/vchart'\nimport type { ILineLikeLabelSpec } from '@visactor/vchart/esm/series/mixin/interface'\nimport { autoFormatter, createFormatter, findMeasureById } from '../../../utils'\nimport type { Datum, Label, SpecPipe } from 'src/types'\nimport { isEmpty } from 'remeda'\n\nexport const label: SpecPipe = (spec, context) => {\n const result = { ...spec } as ILineChartSpec\n const { advancedVSeed } = context\n const { measures, datasetReshapeInfo, locale } = advancedVSeed\n const baseConfig = advancedVSeed.baseConfig.vchart\n\n if (!baseConfig || !baseConfig.label) {\n return result\n }\n\n const { measureId } = datasetReshapeInfo[0].foldInfo\n const { label } = baseConfig\n const { enable } = label as Label\n\n result.label = {\n visible: enable,\n formatMethod: (value: string, datum: Datum) => {\n const id = datum[measureId] as string\n const measure = findMeasureById(measures, id)\n if (!measure) {\n return value\n }\n\n const { format = {}, autoFormat = true } = measure\n\n if (!isEmpty(format)) {\n const formatter = createFormatter(format)\n return formatter(value)\n }\n if (autoFormat) {\n return autoFormatter(value, locale)\n }\n return String(value)\n },\n } as ILineLikeLabelSpec\n return result\n}\n","import type { Legend, SpecPipe } from 'src/types'\n\nexport const discreteLegend: 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 } = baseConfig\n const {\n enable,\n position = 'bottom',\n labelFontColor,\n labelFontSize = 12,\n labelFontWeight,\n maxSize,\n border,\n shapeType = 'rectRound',\n } = (legend || {}) as Legend\n\n const orient = ['bottom', 'bottomLeft', 'bottomRight', 'bl', 'br'].includes(position)\n ? 'bottom'\n : ['top', 'topLeft', 'topRight', 'tl', 'tr'].includes(position)\n ? 'top'\n : ['left', 'leftTop', 'leftBottom', 'lt', 'lb'].includes(position)\n ? 'left'\n : 'right'\n\n const legendPosition = ['topLeft', 'bottomLeft', 'leftTop', 'rightTop', 'lt', 'rt', 'tl', 'bl'].includes(position)\n ? 'start'\n : ['topRight', 'bottomRight', 'leftBottom', 'rightBottom', 'lb', 'rb', 'rt', 'br'].includes(position)\n ? 'end'\n : 'middle'\n\n result.legends = {\n type: 'discrete',\n visible: enable,\n maxCol: maxSize,\n maxRow: maxSize,\n autoPage: true,\n orient,\n position: legendPosition,\n data: border\n ? (items) => {\n return items.map((item) => {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n item.shape.outerBorder = {\n stroke: item.shape.fill,\n distance: 3,\n lineWidth: 1,\n }\n return item\n })\n }\n : undefined,\n item: {\n focus: true,\n focusIconStyle: {\n size: labelFontSize + 2,\n fill: labelFontColor,\n fontWeight: labelFontWeight,\n },\n shape: {\n space: border ? 6 : 4,\n style: {\n symbolType: shapeType,\n size: border ? 8 : 10,\n },\n },\n label: {\n style: {\n fontSize: labelFontSize,\n fill: labelFontColor,\n fontWeight: labelFontWeight,\n },\n },\n background: {\n state: {\n selectedHover: {\n fill: labelFontColor,\n fillOpacity: 0.05,\n },\n },\n },\n },\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 pivotDiscreteLegend: 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 { colorScheme } = color as Color\n\n const {\n enable,\n position = 'bottom',\n labelFontColor,\n labelFontSize = 12,\n labelFontWeight,\n maxSize,\n border,\n shapeType = 'rectRound',\n } = (legend || {}) as Legend\n\n const orient = ['bottom', 'bottomLeft', 'bottomRight', 'bl', 'br'].includes(position)\n ? 'bottom'\n : ['top', 'topLeft', 'topRight', 'tl', 'tr'].includes(position)\n ? 'top'\n : ['left', 'leftTop', 'leftBottom', 'lt', 'lb'].includes(position)\n ? 'left'\n : 'right'\n\n const legendPosition = ['topLeft', 'bottomLeft', 'leftTop', 'rightTop', 'lt', 'rt', 'tl', 'bl'].includes(position)\n ? 'start'\n : ['topRight', 'bottomRight', 'leftBottom', 'rightBottom', 'lb', 'rb', 'rt', 'br'].includes(position)\n ? 'end'\n : 'middle'\n\n const legends: IDiscreteTableLegendOption = {\n visible: enable,\n type: 'discrete',\n orient,\n position: legendPosition,\n maxCol: maxSize,\n maxRow: maxSize,\n data: colorItems.map((d, index) => ({\n label: d,\n shape: {\n outerBorder: border\n ? {\n stroke: colorScheme[index],\n distance: 3,\n lineWidth: 1,\n }\n : undefined,\n fill: colorScheme[index],\n },\n })),\n\n item: {\n focus: true,\n focusIconStyle: {\n size: labelFontSize + 2,\n fill: labelFontColor,\n fontWeight: labelFontWeight,\n },\n shape: {\n space: border ? 6 : 4,\n style: {\n symbolType: shapeType,\n size: border ? 8 : 10,\n },\n },\n label: {\n style: {\n fontSize: labelFontSize,\n fill: labelFontColor,\n fontWeight: labelFontWeight,\n },\n },\n background: {\n state: {\n selectedHover: {\n fill: labelFontColor,\n fillOpacity: 0.05,\n },\n },\n },\n },\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\n const hoverBackgroundColor = 'rgba(178,186,207, 0.2)'\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 hover: {\n cellBgColor: 'transparent',\n },\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: hoverBackgroundColor,\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: hoverBackgroundColor,\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: hoverBackgroundColor,\n },\n },\n cornerRightTopCellStyle: {\n borderColor: 'rgba(0,4,20,0.2)',\n borderLineWidth: 0,\n bgColor: transparent,\n hover: {\n cellBgColor: hoverBackgroundColor,\n },\n },\n cornerLeftBottomCellStyle: {\n borderColor: 'rgba(0,4,20,0.2)',\n borderLineWidth: 0,\n bgColor: transparent,\n hover: {\n cellBgColor: hoverBackgroundColor,\n },\n },\n cornerRightBottomCellStyle: {\n borderColor: 'rgba(0,4,20,0.2)',\n borderLineWidth: 0,\n bgColor: transparent,\n hover: {\n cellBgColor: hoverBackgroundColor,\n },\n },\n rightFrozenStyle: {\n borderColor: 'rgba(0,4,20,0.2)',\n borderLineWidth: 0,\n bgColor: transparent,\n hover: {\n cellBgColor: hoverBackgroundColor,\n },\n },\n bottomFrozenStyle: {\n borderColor: 'rgba(0,4,20,0.2)',\n borderLineWidth: 0,\n bgColor: transparent,\n hover: {\n cellBgColor: hoverBackgroundColor,\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 { Datum } from 'src/types'\nimport type {\n DimensionSelector,\n MeasureSelector,\n PartialDatumSelector,\n Selector,\n Selectors,\n ValueSelector,\n} from '../types/dataSelector'\nimport { omit } from 'remeda'\n\nexport const selector = (vchartDatum: Datum, selector: Selector | Selectors | undefined | null) => {\n // 无有效选择器, 则认为全部匹配成功\n if (!selector) {\n return true\n }\n\n // 过滤掉 vchart 相关字段\n const vchartKeys = Object.keys(vchartDatum).filter((k) => k.toLocaleLowerCase().startsWith('__vchart'))\n const datum = omit(vchartDatum, vchartKeys) as Datum\n\n // 统一处理选择器为数组\n const selectors = (Array.isArray(selector) ? selector : [selector]) as Selectors\n\n for (const selector of selectors) {\n // 1. 字符串或数字\n if (isValueSelector(selector)) {\n if (Object.values(datum).find((v) => v === selector)) {\n return true\n }\n }\n\n // 2. 指标选择器\n else if (isMeasureSelector(selector)) {\n const op = selector.operator || selector.op\n const selectorValueArr = Array.isArray(selector.value) ? selector.value : [selector.value]\n\n switch (op) {\n case '=':\n case '==':\n if (datum[selector.field] === selectorValueArr[0]) {\n return true\n }\n break\n case '!=':\n if (datum[selector.field] !== selectorValueArr[0]) {\n return true\n }\n break\n case '>':\n if (datum[selector.field] > selectorValueArr[0]) {\n return true\n }\n break\n case '<':\n if (datum[selector.field] < selectorValueArr[0]) {\n return true\n }\n break\n case '>=':\n if (datum[selector.field] >= selectorValueArr[0]) {\n return true\n }\n break\n case '<=':\n if (datum[selector.field] <= selectorValueArr[0]) {\n return true\n }\n break\n case 'between':\n if (\n Array.isArray(selector.value) &&\n datum[selector.field] >= selectorValueArr[0] &&\n datum[selector.field] <= selectorValueArr[1]\n ) {\n return true\n }\n break\n default:\n break\n }\n }\n // 3. 维度选择器\n else if (isDimensionSelector(selector)) {\n const op = selector.operator || selector.op\n const selectorValueArr = Array.isArray(selector.value) ? selector.value : [selector.value]\n switch (op) {\n case 'in':\n if (selectorValueArr.includes(datum[selector.field] as string | number)) {\n return true\n }\n break\n case 'not in':\n if (!selectorValueArr.includes(datum[selector.field] as string | number)) {\n return true\n }\n break\n default:\n break\n }\n }\n // 4. 部分数据对象选择器\n else if (isPartialDatumSelector(selector)) {\n if (Object.keys(selector).every((key) => datum[key] === selector[key])) {\n return true\n }\n }\n }\n\n return false\n}\n\nexport const isValueSelector = (selector: Selector): selector is ValueSelector => {\n return typeof selector === 'string' || typeof selector === 'number'\n}\n\nexport const isPartialDatumSelector = (selector: Selector): selector is PartialDatumSelector => {\n return typeof selector === 'object' && selector !== null\n}\n\nexport const isMeasureSelector = (selector: Selector): selector is MeasureSelector => {\n return (\n typeof selector === 'object' &&\n selector !== null &&\n 'field' in selector &&\n ('operator' in selector || 'op' in selector) &&\n 'value' in selector &&\n (['=', '==', '!=', '>', '<', '>=', '<=', 'between'].includes(selector.operator as string) ||\n ['=', '==', '!=', '>', '<', '>=', '<=', 'between'].includes(selector.op as string))\n )\n}\n\nexport const isDimensionSelector = (selector: Selector): selector is DimensionSelector => {\n return (\n typeof selector === 'object' &&\n selector !== null &&\n 'field' in selector &&\n ('operator' in selector || 'op' in selector) &&\n 'value' in selector &&\n (['in', 'not in'].includes(selector.operator as string) || ['in', 'not in'].includes(selector.op as string))\n )\n}\n","import type { IBarChartSpec } from '@visactor/vchart'\nimport { selector } from '../../../../dataSelector'\nimport type { BarStyle, Datum, SpecPipe } from 'src/types'\nimport type { ISeriesMarkAttributeContext } from '@visactor/vchart/esm/compile/mark'\n\nexport const barStyle: SpecPipe = (spec, context) => {\n const { advancedVSeed } = context\n const { markStyle, encoding } = advancedVSeed\n const { barStyle } = markStyle\n\n const result = {\n ...spec,\n bar: {\n state: {\n hover: {\n stroke: (datum, context: ISeriesMarkAttributeContext) => {\n const field = encoding[0]?.group?.[0] as string\n const color = context.seriesColor(datum[field] as string)\n return color\n },\n lineWidth: 4,\n fillOpacity: 0.6,\n },\n },\n },\n } as IBarChartSpec\n\n if (!barStyle) {\n return result\n }\n\n const barStyles = (Array.isArray(barStyle) ? barStyle : [barStyle]) as BarStyle[]\n\n const customMap = barStyles.reduce<object>((result, style, index) => {\n const { barBorderColor, barBorderStyle, barBorderWidth, barColor, barColorOpacity, barRadius } = style\n\n const lineDash = barBorderStyle === 'dashed' ? [5, 2] : barBorderStyle === 'dotted' ? [2, 5] : [0, 0]\n return {\n ...result,\n [`custom${index + 1}`]: {\n // 优先级: 后者覆盖前者\n level: index + 1,\n filter: (datum: Datum) => {\n if (selector(datum, style.selector)) {\n return true\n }\n return false\n },\n style: {\n fill: barColor,\n fillOpacity: barColorOpacity,\n stroke: barBorderColor,\n lineWidth: barBorderWidth,\n lineDash: lineDash,\n cornerRadius: barRadius,\n },\n },\n }\n }, {})\n\n return {\n ...result,\n bar: {\n state: {\n ...customMap,\n },\n },\n }\n}\n","import type { IAreaChartSpec } from '@visactor/vchart'\nimport { selector } from '../../../../dataSelector'\nimport type { Datum, PointStyle, SpecPipe } from 'src/types'\n\nexport const pointStyle: SpecPipe = (spec, context) => {\n const { advancedVSeed } = context\n const { markStyle } = advancedVSeed\n const { pointStyle } = markStyle\n const result = {\n ...spec,\n point: {\n state: {\n dimension_hover: {\n scaleX: 1.4,\n scaleY: 1.4,\n },\n },\n },\n } as IAreaChartSpec\n\n if (!pointStyle) {\n return result\n }\n\n const pointStyles = (Array.isArray(pointStyle) ? pointStyle : [pointStyle]) as PointStyle[]\n\n const customMap = pointStyles.reduce<object>((result, style, index) => {\n const { pointBorderColor, pointBorderStyle, pointBorderWidth, pointColor, pointColorOpacity, pointSize } = style\n\n const lineDash = pointBorderStyle === 'dashed' ? [5, 2] : pointBorderStyle === 'dotted' ? [2, 5] : [0, 0]\n return {\n ...result,\n [`custom${index + 1}`]: {\n // 优先级: 后者覆盖前者\n level: index + 1,\n filter: (datum: Datum) => {\n if (selector(datum, style.selector)) {\n return true\n }\n return false\n },\n style: {\n size: pointSize,\n fill: pointColor,\n fillOpacity: pointColorOpacity,\n stroke: pointBorderColor,\n lineWidth: pointBorderWidth,\n lineDash: lineDash,\n },\n },\n }\n }, {})\n\n return {\n ...result,\n point: {\n state: {\n ...customMap,\n },\n },\n }\n}\n","import type { IAreaChartSpec } from '@visactor/vchart'\nimport { selector } from '../../../../dataSelector'\nimport type { Datum, LineStyle, SpecPipe } from 'src/types'\nimport { groupBy } from 'remeda'\n\nexport const lineStyle: SpecPipe = (spec, context) => {\n const { advancedVSeed } = context\n const { markStyle, encoding, dataset } = advancedVSeed\n const { lineStyle } = markStyle\n if (!lineStyle) {\n return spec\n }\n const result = { ...spec } as IAreaChartSpec\n\n const lineStyles = (Array.isArray(lineStyle) ? lineStyle : [lineStyle]) as LineStyle[]\n\n const group = encoding[0]?.group?.[0]\n const lineGroups = groupBy(dataset, (d) => d[group ?? ''] as string)\n\n const customMap = lineStyles.reduce<object>((result, style, index) => {\n const { lineColor, lineColorOpacity, lineSmooth, lineStyle, lineWidth } = style\n\n const dashSegment = (lineWidth ?? 2) * 2\n const dashGap = lineWidth ?? 2\n\n const lineDash =\n lineStyle === 'dashed' ? [dashSegment, dashSegment] : lineStyle === 'dotted' ? [dashGap / 2, dashGap * 2] : [0, 0]\n\n const curveType = lineSmooth ? 'monotone' : 'linear'\n\n return {\n ...result,\n [`custom${index + 1}`]: {\n // 优先级: 后者覆盖前者\n level: index + 1,\n filter: (datum: Datum) => {\n const lineData = lineGroups[datum[group ?? ''] as string]\n for (const d of lineData) {\n if (selector(d, style.selector)) {\n return true\n }\n }\n return false\n },\n style: {\n curveType: curveType,\n fill: lineColor,\n fillOpacity: lineColorOpacity,\n stroke: lineColor,\n lineWidth: lineWidth,\n lineDash: lineDash,\n },\n },\n }\n }, {})\n\n return {\n ...result,\n line: {\n state: {\n ...customMap,\n },\n },\n }\n}\n","import type { IAreaChartSpec } from '@visactor/vchart'\nimport { selector } from '../../../../dataSelector'\nimport type { AreaStyle, Datum, SpecPipe } from 'src/types'\nimport { groupBy } from 'remeda'\n\nexport const areaStyle: SpecPipe = (spec, context) => {\n const { advancedVSeed } = context\n const { markStyle, encoding, dataset } = advancedVSeed\n const { areaStyle } = markStyle\n if (!areaStyle) {\n return spec\n }\n const result = { ...spec } as IAreaChartSpec\n\n const areaStyles = (Array.isArray(areaStyle) ? areaStyle : [areaStyle]) as AreaStyle[]\n\n const group = encoding[0]?.group?.[0]\n const lineGroups = groupBy(dataset, (d) => d[group ?? ''] as string)\n\n const customMap = areaStyles.reduce<object>((result, style, index) => {\n const { areaColor, areaColorOpacity } = style\n\n return {\n ...result,\n [`custom${index + 1}`]: {\n // 优先级: 后者覆盖前者\n level: index + 1,\n filter: (datum: Datum) => {\n const lineData = lineGroups[datum[group ?? ''] as string]\n for (const d of lineData) {\n if (selector(d, style.selector)) {\n return true\n }\n }\n return false\n },\n style: {\n fill: areaColor,\n fillOpacity: areaColorOpacity,\n },\n },\n }\n }, {})\n\n return {\n ...result,\n area: {\n state: {\n ...customMap,\n },\n },\n }\n}\n","import type { Datum } from \"src/types\"\n\nexport const isSubset = (sub: Datum, obj: Datum) => {\n return Object.entries(sub).every(([key, value]) => {\n if (typeof value === 'string') {\n return obj[key] === value\n }\n if (typeof value === 'number') {\n return obj[key] === value\n }\n return true\n })\n}\n","import type { ICartesianSeries, ILineChartSpec } from '@visactor/vchart'\nimport { selector } from '../../../../dataSelector'\nimport type { Datum, SpecPipe } from 'src/types'\nimport { isSubset } from './utils'\nimport { ANNOTATION_Z_INDEX } from '../../../constant'\n\nexport const annotationPoint: SpecPipe = (spec, context) => {\n const { advancedVSeed } = context\n const { annotation } = advancedVSeed\n\n if (!annotation || !annotation.annotationPoint) {\n return spec\n }\n\n const { annotationPoint } = annotation\n const annotationPointList = Array.isArray(annotationPoint) ? annotationPoint : [annotationPoint]\n\n const markPoint = annotationPointList.flatMap((annotationPoint) => {\n const {\n selector: selectorPoint,\n text = '',\n textColor = '#ffffff',\n textFontSize = 12,\n textFontWeight = 400,\n textAlign = 'center',\n textBaseline = 'middle',\n backgroundBorderColor,\n backgroundBorderRadius = 4,\n backgroundBorderWidth = 1,\n backgroundColor = '#212121',\n backgroundPadding = 2,\n backgroundVisible = true,\n offsetX = 0,\n offsetY = 0,\n } = annotationPoint\n\n const dataset = advancedVSeed.dataset.flat()\n const selectedData = dataset.filter((datum) => selector(datum, selectorPoint))\n\n return selectedData.map((datum) => {\n return {\n zIndex: ANNOTATION_Z_INDEX,\n regionRelative: true,\n position: (data: Datum[], context: ICartesianSeries) => {\n const targetDatum = data.find((item) => isSubset(datum, item))\n if (targetDatum) {\n const { x, y } = context.dataToPosition(targetDatum) as { x: number; y: number }\n return {\n x,\n y,\n }\n }\n },\n\n itemLine: {\n visible: false,\n },\n itemContent: {\n offsetY,\n offsetX,\n text: {\n visible: true,\n text: text,\n style: {\n textAlign: textAlign,\n textBaseline: textBaseline,\n fill: textColor,\n fontSize: textFontSize,\n fontWeight: textFontWeight,\n },\n labelBackground: {\n visible: backgroundVisible,\n padding: backgroundPadding,\n style: {\n cornerRadius: backgroundBorderRadius ?? 4,\n fill: backgroundColor,\n stroke: backgroundBorderColor,\n strokeWidth: backgroundBorderWidth,\n },\n },\n },\n },\n }\n })\n }) as ILineChartSpec['markPoint']\n\n return {\n ...spec,\n markPoint,\n }\n}\n","import type { ILineChartSpec, IMarkLineSpec } from '@visactor/vchart'\nimport { selector } from '../../../../dataSelector'\nimport type { SpecPipe } from 'src/types'\nimport { isArray, isNumber, isString } from 'remeda'\nimport { ANNOTATION_Z_INDEX } from '../../../constant'\n\nexport const annotationVerticalLine: SpecPipe = (spec, context) => {\n const { advancedVSeed } = context\n const { annotation, encoding } = advancedVSeed\n\n if (!annotation || !annotation.annotationVerticalLine) {\n return spec\n }\n\n const { annotationVerticalLine } = annotation\n const annotationVerticalLineList = Array.isArray(annotationVerticalLine)\n ? annotationVerticalLine\n : [annotationVerticalLine]\n\n const positionMap = {\n outsideStart: 'start',\n outsideEnd: 'end',\n outsideMiddle: 'middle',\n insideStart: 'insideStartTop',\n insideMiddle: 'insideMiddleTop',\n insideEnd: 'insideEndTop',\n }\n const markLine = annotationVerticalLineList.flatMap((annotationVerticalLine) => {\n const {\n selector: selectorPoint,\n xValue,\n text = '',\n textPosition = 'insideEnd',\n textColor = '#ffffff',\n textFontSize = 12,\n textFontWeight = 400,\n textAlign = 'right',\n textBaseline = 'top',\n backgroundBorderColor,\n backgroundBorderRadius = 4,\n backgroundBorderWidth = 1,\n backgroundColor = '#212121',\n backgroundPadding = 2,\n backgroundVisible = true,\n offsetX = 0,\n offsetY = 0,\n lineColor = '#212121',\n lineStyle = 'dashed',\n lineVisible = true,\n lineWidth = 1,\n } = annotationVerticalLine\n\n const dataset = advancedVSeed.dataset.flat()\n\n const generateOneMarkLine = (x: number | string) => ({\n x: x as string,\n zIndex: ANNOTATION_Z_INDEX,\n line: {\n visible: lineVisible,\n style: {\n offsetX,\n offsetY,\n stroke: lineColor,\n lineStyle: lineStyle,\n lineWidth: lineWidth,\n lineDash: lineStyle === 'dashed' ? [5, 2] : lineStyle === 'dotted' ? [2, 5] : [0],\n },\n },\n label: {\n text: text,\n position: positionMap[textPosition],\n style: {\n offsetX,\n offsetY,\n visible: true,\n textAlign: textAlign,\n textBaseline: textBaseline,\n fill: textColor,\n fontSize: textFontSize,\n fontWeight: textFontWeight,\n },\n labelBackground: {\n visible: backgroundVisible,\n padding: backgroundPadding,\n style: {\n offsetX,\n offsetY,\n cornerRadius: backgroundBorderRadius ?? 4,\n fill: backgroundColor,\n stroke: backgroundBorderColor,\n strokeWidth: backgroundBorderWidth,\n },\n },\n },\n endSymbol: {\n visible: true,\n style: {\n fill: lineColor,\n },\n },\n })\n\n if ((!selectorPoint && isArray(xValue)) || isString(xValue) || isNumber(xValue)) {\n const xValueArr = Array.isArray(xValue) ? xValue : [xValue]\n return xValueArr.map(generateOneMarkLine)\n }\n\n const selectedData = dataset.filter((datum) => selector(datum, selectorPoint))\n\n return selectedData.map((datum) => {\n const x = encoding[0]?.x?.[0]\n if (!x) {\n return {}\n }\n return generateOneMarkLine(datum[x] as string)\n })\n }) as IMarkLineSpec[]\n\n const specMarkLine = ((spec as ILineChartSpec).markLine as IMarkLineSpec[]) || []\n const newMarkLine = [...specMarkLine, ...(markLine || [])]\n\n return {\n ...spec,\n markLine: newMarkLine,\n }\n}\n","import type { ILineChartSpec, IMarkLineSpec } from '@visactor/vchart'\nimport { selector } from '../../../../dataSelector'\nimport type { SpecPipe } from 'src/types'\nimport { isArray, isNumber, isString } from 'remeda'\nimport { ANNOTATION_Z_INDEX } from '../../../constant'\n\nexport const annotationHorizontalLine: SpecPipe = (spec, context) => {\n const { advancedVSeed } = context\n const { annotation, encoding } = advancedVSeed\n\n if (!annotation || !annotation.annotationHorizontalLine) {\n return spec\n }\n\n const { annotationHorizontalLine } = annotation\n const annotationVerticalLineList = Array.isArray(annotationHorizontalLine)\n ? annotationHorizontalLine\n : [annotationHorizontalLine]\n\n const positionMap = {\n outsideStart: 'start',\n outsideEnd: 'end',\n outsideMiddle: 'middle',\n insideStart: 'insideStartTop',\n insideMiddle: 'insideMiddleTop',\n insideEnd: 'insideEndTop',\n }\n\n const markLine = annotationVerticalLineList.flatMap((annotationVerticalLine) => {\n const {\n selector: selectorPoint,\n yValue,\n text = '',\n textPosition = 'insideEnd',\n textColor = '#ffffff',\n textFontSize = 12,\n textFontWeight = 400,\n textAlign = 'center',\n textBaseline = 'bottom',\n backgroundBorderColor,\n backgroundBorderRadius = 4,\n backgroundBorderWidth = 1,\n backgroundColor = '#212121',\n backgroundPadding = 2,\n backgroundVisible = true,\n offsetX = 0,\n offsetY = 0,\n lineColor = '#212121',\n lineStyle = 'dashed',\n lineVisible = true,\n lineWidth = 1,\n } = annotationVerticalLine\n\n const dataset = advancedVSeed.dataset.flat()\n\n const generateOneMarkLine = (y: string | number) => {\n return {\n y,\n zIndex: ANNOTATION_Z_INDEX,\n line: {\n visible: lineVisible,\n style: {\n offsetX,\n offsetY,\n stroke: lineColor,\n lineStyle: lineStyle,\n lineWidth: lineWidth,\n lineDash: lineStyle === 'dashed' ? [5, 2] : lineStyle === 'dotted' ? [2, 5] : [0],\n },\n },\n label: {\n text: text,\n position: positionMap[textPosition],\n style: {\n offsetX,\n offsetY,\n visible: true,\n textAlign: textAlign,\n textBaseline: textBaseline,\n fill: textColor,\n fontSize: textFontSize,\n fontWeight: textFontWeight,\n },\n labelBackground: {\n visible: backgroundVisible,\n padding: backgroundPadding,\n style: {\n offsetX,\n offsetY,\n cornerRadius: backgroundBorderRadius ?? 4,\n fill: backgroundColor,\n stroke: backgroundBorderColor,\n strokeWidth: backgroundBorderWidth,\n },\n },\n },\n endSymbol: {\n visible: true,\n style: {\n fill: lineColor,\n },\n },\n }\n }\n\n if ((!selectorPoint && isArray(yValue)) || isString(yValue) || isNumber(yValue)) {\n const yValueArr = Array.isArray(yValue) ? yValue : [yValue]\n return yValueArr.map(generateOneMarkLine)\n }\n\n const selectedData = dataset.filter((datum) => selector(datum, selectorPoint))\n\n return selectedData.map((datum) => {\n const y = encoding[0]?.y?.[0]\n if (!y) {\n return {}\n }\n return generateOneMarkLine(datum[y] as string)\n })\n }) as IMarkLineSpec[]\n const specMarkLine = ((spec as ILineChartSpec).markLine as IMarkLineSpec[]) || []\n const newMarkLine = [...specMarkLine, ...(markLine || [])]\n return {\n ...spec,\n markLine: newMarkLine,\n }\n}\n","import type { ICartesianSeries, ILineChartSpec } from '@visactor/vchart'\nimport { selector } from '../../../../dataSelector'\nimport type { Datum, SpecPipe } from 'src/types'\nimport { isSubset } from './utils'\nimport { ANNOTATION_Z_INDEX } from '../../../constant'\n\nexport const annotationArea: SpecPipe = (spec, context) => {\n const { advancedVSeed } = context\n const { annotation } = advancedVSeed\n\n if (!annotation || !annotation.annotationArea) {\n return spec\n }\n\n const { annotationArea } = annotation\n const annotationAreaList = Array.isArray(annotationArea) ? annotationArea : [annotationArea]\n\n const positionMap = {\n top: 'insideTop',\n topRight: 'insideTopRight',\n topLeft: 'insideTopLeft',\n bottom: 'insideBottom',\n bottomLeft: 'insideBottomLeft',\n bottomRight: 'insideBottomRight',\n left: 'insideLeft',\n right: 'insideRight',\n }\n\n const markArea = annotationAreaList.flatMap((annotationArea) => {\n const {\n selector: selectorPoint,\n text = '',\n textPosition = 'top',\n textColor = '#ffffff',\n textFontSize = 12,\n textFontWeight = 400,\n textAlign = 'center',\n textBaseline = 'top',\n backgroundBorderColor,\n backgroundBorderRadius = 4,\n backgroundBorderWidth = 1,\n backgroundColor = '#191d24',\n backgroundPadding = 4,\n backgroundVisible = true,\n outerPadding = 0,\n areaColor = '#888888',\n areaColorOpacity = 0.15,\n areaBorderColor,\n areaBorderRadius,\n areaBorderWidth,\n } = annotationArea\n\n const dataset = advancedVSeed.dataset.flat()\n const selectedData = dataset.filter((datum) => selector(datum, selectorPoint))\n\n return {\n zIndex: ANNOTATION_Z_INDEX,\n regionRelative: true,\n positions: (data: Datum[], context: ICartesianSeries) => {\n const positionData = data.filter((item) => selectedData.some((datum) => isSubset(datum, item)))\n const xyList = positionData.map((datum) => context.dataToPosition(datum) as { x: number; y: number })\n\n const yAxisHelper = context.getYAxisHelper() as unknown as {\n getBandwidth: (depth?: number) => number\n getScale: () => {\n range: () => number[]\n }\n }\n const xAxisHelper = context.getXAxisHelper() as unknown as {\n getBandwidth: (depth?: number) => number\n getScale: () => {\n range: () => number[]\n }\n }\n\n if (typeof xAxisHelper?.getBandwidth === 'function') {\n const yScale = yAxisHelper.getScale()\n\n const minX = Math.min(...xyList.map((item) => item.x)) - outerPadding\n const maxX = Math.max(...xyList.map((item) => item.x)) + outerPadding\n const minY = Math.min(...yScale.range())\n const maxY = Math.max(...yScale.range())\n return [\n // 左上\n {\n x: minX,\n y: minY,\n },\n // 右上\n {\n x: maxX,\n y: minY,\n },\n // 右下\n {\n x: maxX,\n y: maxY,\n },\n // 左下\n {\n x: minX,\n y: maxY,\n },\n ]\n }\n\n if (typeof yAxisHelper?.getBandwidth === 'function') {\n const xScale = xAxisHelper.getScale()\n\n const minY = Math.min(...xyList.map((item) => item.y)) - outerPadding\n const maxY = Math.max(...xyList.map((item) => item.y)) + outerPadding\n const minX = Math.min(...xScale.range())\n const maxX = Math.max(...xScale.range())\n\n return [\n // 左上\n {\n x: minX,\n y: minY,\n },\n // 右上\n {\n x: maxX,\n y: minY,\n },\n // 右下\n {\n x: maxX,\n y: maxY,\n },\n // 左下\n {\n x: minX,\n y: maxY,\n },\n ]\n }\n\n return []\n },\n label: {\n position: positionMap[textPosition],\n visible: true,\n text: text,\n style: {\n textAlign: textAlign,\n textBaseline: textBaseline,\n fill: textColor,\n fontSize: textFontSize,\n fontWeight: textFontWeight,\n },\n\n labelBackground: {\n visible: backgroundVisible,\n padding: backgroundPadding,\n style: {\n cornerRadius: backgroundBorderRadius ?? 4,\n fill: backgroundColor,\n stroke: backgroundBorderColor,\n strokeWidth: backgroundBorderWidth,\n },\n },\n },\n area: {\n style: {\n visible: true,\n fill: areaColor,\n fillOpacity: areaColorOpacity,\n stroke: areaBorderColor,\n strokeWidth: areaBorderWidth,\n cornerRadius: areaBorderRadius,\n },\n },\n }\n }) as ILineChartSpec['markArea']\n\n return {\n ...spec,\n markArea: markArea,\n }\n}\n","import type { ICartesianSeries, ILineChartSpec } from '@visactor/vchart'\nimport { selector } from '../../../../dataSelector'\nimport type { Datum, SpecPipe } from 'src/types'\nimport { isSubset } from './utils'\nimport { ANNOTATION_Z_INDEX } from '../../../constant'\n\nexport const annotationAreaBand: SpecPipe = (spec, context) => {\n const { advancedVSeed } = context\n const { annotation } = advancedVSeed\n\n if (!annotation || !annotation.annotationArea) {\n return spec\n }\n\n const { annotationArea } = annotation\n const annotationAreaList = Array.isArray(annotationArea) ? annotationArea : [annotationArea]\n\n const positionMap = {\n top: 'insideTop',\n topRight: 'insideTopRight',\n topLeft: 'insideTopLeft',\n bottom: 'insideBottom',\n bottomLeft: 'insideBottomLeft',\n bottomRight: 'insideBottomRight',\n left: 'insideLeft',\n right: 'insideRight',\n }\n\n const markArea = annotationAreaList.flatMap((annotationArea) => {\n const {\n selector: selectorPoint,\n text = '',\n textPosition = 'top',\n textColor = '#ffffff',\n textFontSize = 12,\n textFontWeight = 400,\n textAlign = 'center',\n textBaseline = 'top',\n backgroundBorderColor,\n backgroundBorderRadius = 4,\n backgroundBorderWidth = 1,\n backgroundColor = '#191d24',\n backgroundPadding = 4,\n backgroundVisible = true,\n outerPadding = 8,\n areaColor = '#888888',\n areaColorOpacity = 0.15,\n areaBorderColor,\n areaBorderRadius,\n areaBorderWidth,\n } = annotationArea\n\n const dataset = advancedVSeed.dataset.flat()\n const selectedData = dataset.filter((datum) => selector(datum, selectorPoint))\n\n return {\n zIndex: ANNOTATION_Z_INDEX,\n regionRelative: true,\n positions: (data: Datum[], context: ICartesianSeries) => {\n const positionData = data.filter((item) => selectedData.some((datum) => isSubset(datum, item)))\n const xyList = positionData.map((datum) => context.dataToPosition(datum) as { x: number; y: number })\n\n const yAxisHelper = context.getYAxisHelper() as unknown as {\n getBandwidth: (depth?: number) => number\n getScale: () => {\n range: () => number[]\n }\n }\n const xAxisHelper = context.getXAxisHelper() as unknown as {\n getBandwidth: (depth?: number) => number\n getScale: () => {\n range: () => number[]\n }\n }\n\n if (typeof xAxisHelper?.getBandwidth === 'function') {\n const depth = context.fieldX.length ?? 0\n const xBandWidth = xAxisHelper?.getBandwidth?.(depth - 1)\n const yScale = yAxisHelper.getScale()\n\n const minX = Math.min(...xyList.map((item) => item.x)) - outerPadding\n const maxX = Math.max(...xyList.map((item) => item.x)) + xBandWidth + outerPadding\n const minY = Math.min(...yScale.range())\n const maxY = Math.max(...yScale.range())\n return [\n // 左上\n {\n x: minX,\n y: minY,\n },\n // 右上\n {\n x: maxX,\n y: minY,\n },\n // 右下\n {\n x: maxX,\n y: maxY,\n },\n // 左下\n {\n x: minX,\n y: maxY,\n },\n ]\n }\n\n if (typeof yAxisHelper?.getBandwidth === 'function') {\n const depth = context.fieldY.length ?? 0\n const yBandWidth = yAxisHelper?.getBandwidth?.(depth - 1)\n const xScale = xAxisHelper.getScale()\n\n const minY = Math.min(...xyList.map((item) => item.y)) - outerPadding\n const maxY = Math.max(...xyList.map((item) => item.y)) + yBandWidth + outerPadding\n const minX = Math.min(...xScale.range())\n const maxX = Math.max(...xScale.range())\n\n return [\n // 左上\n {\n x: minX,\n y: minY,\n },\n // 右上\n {\n x: maxX,\n y: minY,\n },\n // 右下\n {\n x: maxX,\n y: maxY,\n },\n // 左下\n {\n x: minX,\n y: maxY,\n },\n ]\n }\n\n return []\n },\n label: {\n position: positionMap[textPosition],\n visible: true,\n text: text,\n style: {\n textAlign: textAlign,\n textBaseline: textBaseline,\n fill: textColor,\n fontSize: textFontSize,\n fontWeight: textFontWeight,\n },\n\n labelBackground: {\n visible: backgroundVisible,\n padding: backgroundPadding,\n style: {\n cornerRadius: backgroundBorderRadius ?? 4,\n fill: backgroundColor,\n stroke: backgroundBorderColor,\n strokeWidth: backgroundBorderWidth,\n },\n },\n },\n area: {\n style: {\n visible: true,\n fill: areaColor,\n fillOpacity: areaColorOpacity,\n stroke: areaBorderColor,\n strokeWidth: areaBorderWidth,\n cornerRadius: areaBorderRadius,\n },\n },\n }\n }) as ILineChartSpec['markArea']\n\n return {\n ...spec,\n markArea: markArea,\n }\n}\n","import type { ICartesianCrosshairSpec, ILineChartSpec } from '@visactor/vchart'\nimport type { SpecPipe } from 'src/types'\n\nexport const verticalCrosshairLine: SpecPipe = (spec, context) => {\n const result = { ...spec } as ILineChartSpec\n const { advancedVSeed, vseed } = context\n const { chartType } = vseed\n\n const config = advancedVSeed.config?.[chartType as 'line']?.crosshairLine\n if (!config) {\n return result\n }\n\n if (!result.crosshair) {\n result.crosshair = {}\n }\n\n const { visible = true, lineColor, labelColor, labelVisible, labelBackgroundColor } = config\n\n const crosshair = result.crosshair as ICartesianCrosshairSpec\n crosshair.xField = {\n visible,\n line: {\n type: 'line',\n style: {\n lineWidth: 1,\n opacity: 1,\n stroke: lineColor,\n lineDash: [4, 2],\n },\n },\n label: {\n visible: labelVisible,\n labelBackground: {\n visible: labelVisible,\n style: {\n fill: labelBackgroundColor,\n },\n },\n style: {\n fill: labelColor,\n },\n },\n }\n\n return result\n}\n","import type { ICartesianCrosshairSpec, ILineChartSpec } from '@visactor/vchart'\nimport type { SpecPipe } from 'src/types'\n\nexport const verticalCrosshairRect: SpecPipe = (spec, context) => {\n const result = { ...spec } as ILineChartSpec\n const { advancedVSeed, vseed } = context\n const { chartType } = vseed\n\n const config = advancedVSeed.config?.[chartType as 'column']?.crosshairRect\n if (!config) {\n return result\n }\n\n if (!result.crosshair) {\n result.crosshair = {}\n }\n\n const { visible = true, rectColor, labelColor, labelVisible, labelBackgroundColor } = config\n const crosshair = result.crosshair as ICartesianCrosshairSpec\n crosshair.xField = {\n visible,\n line: {\n type: 'rect',\n style: {\n lineWidth: 0,\n opacity: 0.2,\n fill: rectColor,\n },\n },\n label: {\n visible: labelVisible,\n labelBackground: {\n visible: labelVisible,\n style: {\n fill: labelBackgroundColor,\n },\n },\n style: {\n fill: labelColor,\n },\n },\n }\n\n return result\n}\n","import type { ICartesianCrosshairSpec, ILineChartSpec } from '@visactor/vchart'\nimport type { SpecPipe } from 'src/types'\n\nexport const horizontalCrosshairRect: SpecPipe = (spec, context) => {\n const result = { ...spec } as ILineChartSpec\n const { advancedVSeed, vseed } = context\n const { chartType } = vseed\n\n const config = advancedVSeed.config?.[chartType as 'column']?.crosshairRect\n if (!config) {\n return result\n }\n\n if (!result.crosshair) {\n result.crosshair = {}\n }\n\n const { visible = true, rectColor, labelColor, labelVisible, labelBackgroundColor } = config\n const crosshair = result.crosshair as ICartesianCrosshairSpec\n crosshair.yField = {\n visible,\n line: {\n type: 'rect',\n style: {\n lineWidth: 0,\n opacity: 0.2,\n fill: rectColor,\n },\n },\n label: {\n visible: labelVisible,\n labelBackground: {\n visible: labelVisible,\n style: {\n fill: labelBackgroundColor,\n },\n },\n style: {\n fill: labelColor,\n },\n },\n }\n\n return result\n}\n","import type { SpecPipeline } from 'src/types'\nimport {\n dataset,\n xBand,\n yLinear,\n initLine,\n backgroundColor,\n label,\n tooltip,\n discreteLegend,\n color,\n initPivot,\n datasetPivot,\n datasetPivotPlaceholder,\n pivotDiscreteLegend,\n pivotIndicators,\n pivotAdapter,\n pivotIndicatorsAsRow,\n pivotGridStyle,\n pivotColumnDimensions,\n pivotRowDimensions,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationArea,\n pointStyle,\n lineStyle,\n verticalCrosshairLine,\n} from '../pipes'\n\nconst line: SpecPipeline = [\n initLine,\n color,\n backgroundColor,\n dataset,\n xBand,\n yLinear,\n label,\n tooltip,\n verticalCrosshairLine,\n discreteLegend,\n pointStyle,\n lineStyle,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationArea,\n]\n\nconst pivotLine: SpecPipeline = [\n initPivot,\n pivotGridStyle,\n pivotIndicatorsAsRow,\n datasetPivot,\n pivotIndicators([\n initLine,\n color,\n backgroundColor,\n datasetPivotPlaceholder,\n xBand,\n yLinear,\n label,\n tooltip,\n verticalCrosshairLine,\n pointStyle,\n lineStyle,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationArea,\n ]),\n pivotRowDimensions,\n pivotColumnDimensions,\n pivotDiscreteLegend,\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 discreteLegend,\n color,\n pivotAdapter,\n initPivot,\n datasetPivot,\n datasetPivotPlaceholder,\n pivotIndicators,\n pivotDiscreteLegend,\n pivotIndicatorsAsRow,\n pivotGridStyle,\n pivotRowDimensions,\n pivotColumnDimensions,\n stackInverse,\n barStyle,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationAreaBand,\n verticalCrosshairRect,\n stackCornerRadius,\n} from '../pipes'\n\nconst column: SpecPipeline = [\n initColumn,\n stackCornerRadius,\n stackInverse,\n color,\n backgroundColor,\n dataset,\n xBand,\n yLinear,\n label,\n tooltip,\n verticalCrosshairRect,\n discreteLegend,\n barStyle,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationAreaBand,\n]\n\nconst pivotColumn: SpecPipeline = [\n initPivot,\n pivotGridStyle,\n pivotIndicatorsAsRow,\n datasetPivot,\n pivotIndicators([\n initColumn,\n stackCornerRadius,\n stackInverse,\n color,\n backgroundColor,\n datasetPivotPlaceholder,\n xBand,\n yLinear,\n label,\n tooltip,\n verticalCrosshairRect,\n barStyle,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationAreaBand,\n ]),\n pivotRowDimensions,\n pivotColumnDimensions,\n pivotDiscreteLegend,\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 discreteLegend,\n color,\n pivotIndicators,\n initPivot,\n datasetPivot,\n pivotAdapter,\n datasetPivotPlaceholder,\n pivotDiscreteLegend,\n pivotIndicatorsAsRow,\n pivotGridStyle,\n pivotRowDimensions,\n pivotColumnDimensions,\n barStyle,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationAreaBand,\n verticalCrosshairRect,\n stackCornerRadius,\n} from '../pipes'\n\nconst columnParallel: SpecPipeline = [\n initColumnParallel,\n stackCornerRadius,\n color,\n backgroundColor,\n dataset,\n xBand,\n yLinear,\n label,\n tooltip,\n discreteLegend,\n verticalCrosshairRect,\n barStyle,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationAreaBand,\n]\n\nconst pivotColumnParallel: SpecPipeline = [\n initPivot,\n pivotGridStyle,\n pivotIndicatorsAsRow,\n datasetPivot,\n pivotIndicators([\n initColumnParallel,\n stackCornerRadius,\n color,\n backgroundColor,\n datasetPivotPlaceholder,\n xBand,\n yLinear,\n label,\n tooltip,\n verticalCrosshairRect,\n barStyle,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationAreaBand,\n ]),\n pivotRowDimensions,\n pivotColumnDimensions,\n pivotDiscreteLegend,\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 discreteLegend,\n color,\n datasetPivotPlaceholder,\n pivotAdapter,\n initPivot,\n datasetPivot,\n pivotIndicators,\n pivotDiscreteLegend,\n pivotIndicatorsAsRow,\n pivotGridStyle,\n pivotRowDimensions,\n pivotColumnDimensions,\n stackInverse,\n barStyle,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationAreaBand,\n verticalCrosshairRect,\n stackCornerRadius,\n} from '../pipes'\n\nconst columnPercent: SpecPipeline = [\n initColumn,\n stackCornerRadius,\n stackInverse,\n color,\n backgroundColor,\n percent,\n dataset,\n xBand,\n yLinear,\n label,\n tooltip,\n verticalCrosshairRect,\n discreteLegend,\n barStyle,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationAreaBand,\n]\n\nconst pivotColumnPercent: SpecPipeline = [\n initPivot,\n pivotGridStyle,\n pivotIndicatorsAsRow,\n datasetPivot,\n pivotIndicators([\n initColumn,\n stackCornerRadius,\n stackInverse,\n color,\n percent,\n backgroundColor,\n datasetPivotPlaceholder,\n xBand,\n yLinear,\n label,\n tooltip,\n verticalCrosshairRect,\n barStyle,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationAreaBand,\n ]),\n pivotRowDimensions,\n pivotColumnDimensions,\n pivotDiscreteLegend,\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 discreteLegend,\n color,\n pivotAdapter,\n initPivot,\n datasetPivot,\n pivotIndicators,\n pivotDiscreteLegend,\n datasetPivotPlaceholder,\n pivotIndicatorsAsCol,\n pivotGridStyle,\n pivotColumnDimensions,\n pivotRowDimensions,\n barStyle,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationAreaBand,\n horizontalCrosshairRect,\n stackCornerRadius,\n} from '../pipes'\n\nconst bar: SpecPipeline = [\n initBar,\n stackCornerRadius,\n color,\n backgroundColor,\n dataset,\n xLinear,\n yBand,\n label,\n tooltip,\n horizontalCrosshairRect,\n discreteLegend,\n barStyle,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationAreaBand,\n]\n\nconst pivotBar: SpecPipeline = [\n initPivot,\n pivotGridStyle,\n pivotIndicatorsAsCol,\n datasetPivot,\n pivotIndicators([\n initBar,\n stackCornerRadius,\n color,\n backgroundColor,\n datasetPivotPlaceholder,\n yBand,\n label,\n label,\n tooltip,\n horizontalCrosshairRect,\n barStyle,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationAreaBand,\n ]),\n pivotRowDimensions,\n pivotColumnDimensions,\n pivotDiscreteLegend,\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 discreteLegend,\n color,\n datasetPivotPlaceholder,\n initPivot,\n datasetPivot,\n pivotDiscreteLegend,\n pivotIndicators,\n pivotAdapter,\n pivotIndicatorsAsCol,\n pivotGridStyle,\n pivotRowDimensions,\n pivotColumnDimensions,\n barStyle,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationAreaBand,\n horizontalCrosshairRect,\n stackCornerRadius,\n} from '../pipes'\n\nconst barParallel: SpecPipeline = [\n initBarParallel,\n stackCornerRadius,\n color,\n backgroundColor,\n dataset,\n xLinear,\n yBand,\n label,\n tooltip,\n horizontalCrosshairRect,\n discreteLegend,\n barStyle,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationAreaBand,\n]\n\nconst pivotBarParallel: SpecPipeline = [\n initPivot,\n pivotGridStyle,\n pivotIndicatorsAsCol,\n datasetPivot,\n pivotIndicators([\n initBarParallel,\n stackCornerRadius,\n color,\n backgroundColor,\n datasetPivotPlaceholder,\n yBand,\n xLinear,\n label,\n tooltip,\n horizontalCrosshairRect,\n barStyle,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationAreaBand,\n ]),\n pivotRowDimensions,\n pivotColumnDimensions,\n pivotDiscreteLegend,\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 discreteLegend,\n color,\n pivotAdapter,\n initPivot,\n datasetPivot,\n pivotIndicators,\n pivotDiscreteLegend,\n datasetPivotPlaceholder,\n pivotIndicatorsAsCol,\n pivotGridStyle,\n pivotRowDimensions,\n pivotColumnDimensions,\n barStyle,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationAreaBand,\n horizontalCrosshairRect,\n stackCornerRadius,\n} from '../pipes'\n\nconst barPercent: SpecPipeline = [\n initBar,\n stackCornerRadius,\n color,\n backgroundColor,\n percent,\n dataset,\n xLinear,\n yBand,\n label,\n tooltip,\n horizontalCrosshairRect,\n discreteLegend,\n barStyle,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationAreaBand,\n]\n\nconst pivotBarPercent: SpecPipeline = [\n initPivot,\n pivotGridStyle,\n pivotIndicatorsAsCol,\n datasetPivot,\n pivotIndicators([\n initBar,\n stackCornerRadius,\n color,\n backgroundColor,\n percent,\n datasetPivotPlaceholder,\n yBand,\n xLinear,\n label,\n tooltip,\n horizontalCrosshairRect,\n barStyle,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationAreaBand,\n ]),\n pivotRowDimensions,\n pivotColumnDimensions,\n pivotDiscreteLegend,\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 stackInverse,\n backgroundColor,\n label,\n tooltip,\n discreteLegend,\n color,\n datasetPivotPlaceholder,\n datasetPivot,\n pivotIndicators,\n pivotDiscreteLegend,\n pivotAdapter,\n initPivot,\n pivotIndicatorsAsRow,\n pivotGridStyle,\n pivotColumnDimensions,\n pivotRowDimensions,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationArea,\n pointStyle,\n lineStyle,\n areaStyle,\n verticalCrosshairLine,\n} from '../pipes'\n\nconst area: SpecPipeline = [\n initArea,\n stackInverse,\n color,\n backgroundColor,\n dataset,\n xBand,\n yLinear,\n label,\n tooltip,\n verticalCrosshairLine,\n discreteLegend,\n pointStyle,\n lineStyle,\n areaStyle,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationArea,\n]\n\nconst pivotArea: SpecPipeline = [\n initPivot,\n pivotGridStyle,\n pivotIndicatorsAsRow,\n datasetPivot,\n pivotIndicators([\n initArea,\n color,\n backgroundColor,\n stackInverse,\n datasetPivotPlaceholder,\n xBand,\n yLinear,\n label,\n tooltip,\n verticalCrosshairLine,\n pointStyle,\n lineStyle,\n areaStyle,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationArea,\n ]),\n pivotRowDimensions,\n pivotColumnDimensions,\n pivotDiscreteLegend,\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 discreteLegend,\n color,\n datasetPivotPlaceholder,\n datasetPivot,\n pivotIndicators,\n pivotDiscreteLegend,\n pivotAdapter,\n initPivot,\n pivotIndicatorsAsRow,\n pivotGridStyle,\n pivotRowDimensions,\n pivotColumnDimensions,\n stackInverse,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationArea,\n pointStyle,\n lineStyle,\n areaStyle,\n verticalCrosshairLine,\n} from '../pipes'\n\nconst areaPercent: SpecPipeline = [\n initArea,\n stackInverse,\n color,\n backgroundColor,\n percent,\n dataset,\n xBand,\n yLinear,\n label,\n tooltip,\n verticalCrosshairLine,\n discreteLegend,\n pointStyle,\n lineStyle,\n areaStyle,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationArea,\n]\n\nconst pivotAreaPercent: SpecPipeline = [\n initPivot,\n\n pivotGridStyle,\n pivotIndicatorsAsRow,\n datasetPivot,\n pivotIndicators([\n initArea,\n stackInverse,\n color,\n backgroundColor,\n percent,\n datasetPivotPlaceholder,\n xBand,\n yLinear,\n label,\n tooltip,\n verticalCrosshairLine,\n pointStyle,\n lineStyle,\n areaStyle,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationArea,\n ]),\n pivotRowDimensions,\n pivotColumnDimensions,\n pivotDiscreteLegend,\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 discreteLegend,\n pivotAdapter,\n pivotColumnDimensions,\n pivotGridStyle,\n pivotIndicators,\n pivotIndicatorsAsRow,\n pivotDiscreteLegend,\n pivotRowDimensions,\n tooltip,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationArea,\n} from '../pipes'\n\nconst pie: SpecPipeline = [\n initPie,\n color,\n backgroundColor,\n dataset,\n label,\n tooltip,\n discreteLegend,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationArea,\n]\n\nconst pivotPie: SpecPipeline = [\n initPivot,\n pivotGridStyle,\n pivotIndicatorsAsRow,\n datasetPivot,\n pivotIndicators([\n initPie,\n color,\n backgroundColor,\n datasetPivotPlaceholder,\n label,\n tooltip,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationArea,\n ]),\n pivotRowDimensions,\n pivotColumnDimensions,\n pivotDiscreteLegend,\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 builder.advancedVSeed = advancedVSeed\n // console.log('debug advancedVSeed', advancedVSeed)\n if (!advancedVSeed) {\n throw new Error('advancedVSeed is null')\n }\n const spec = builder.buildSpec(advancedVSeed)\n builder.spec = spec\n // console.log('debug spec', spec)\n return spec\n}\n","import type {\n AdvancedPipeline,\n AdvancedVSeed,\n ChartType,\n CustomThemeConfig,\n Spec,\n SpecPipeline,\n VSeed,\n VSeedBuilder,\n} from 'src/types'\nimport { buildAdvanced } from './buildAdvanced'\nimport { buildSpec } from './buildSpec'\nimport { build } from './build'\nimport { intl } from '../../i18n'\n\nexport class Builder implements VSeedBuilder {\n private _vseed: VSeed\n private _advancedVSeed: AdvancedVSeed | null = null\n private _spec: Spec | null = null\n\n constructor(vseed: VSeed) {\n this._vseed = vseed\n this._vseed.locale = vseed.locale || intl.getLocale()\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 get spec() {\n return this._spec\n }\n\n set spec(value) {\n this._spec = 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 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: '#36415926',\n gridWidth: 0.5,\n },\n tick: {\n visible: false,\n tickInside: false,\n tickSize: 4,\n tickColor: '#3641594d',\n },\n line: {\n visible: false,\n lineColor: '#3641594d',\n lineWidth: 1,\n },\n }\n const bandAxis: YBandAxis = {\n labelAutoHide: true,\n labelAutoHideGap: 4,\n labelAutoLimit: true,\n labelAutoLimitLength: 100,\n labelAutoRotate: false,\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: '#36415926',\n gridWidth: 0.5,\n },\n tick: {\n visible: false,\n tickInside: false,\n tickSize: 4,\n tickColor: '#3641594d',\n },\n line: {\n visible: true,\n lineColor: '#3641594d',\n lineWidth: 1,\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 const crosshairLine = {\n visible: true,\n labelVisible: true,\n lineColor: '#3641594d',\n labelColor: '#ffffff',\n labelBackgroundColor: '#364159',\n }\n const crosshairRect = {\n visible: true,\n labelVisible: true,\n rectColor: '#3641594d',\n labelColor: '#ffffff',\n labelBackgroundColor: '#364159',\n }\n\n return {\n baseConfig: {\n vtable: {\n backgroundColor: 'transparent',\n },\n vchart: {\n backgroundColor: 'transparent',\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 border: true,\n maxSize: 1,\n shapeType: 'rectRound',\n position: 'rt',\n labelFontColor: '#646A73',\n labelFontSize: 12,\n labelFontWeight: 400,\n },\n },\n },\n config: {\n line: {\n xAxis: bandAxis,\n yAxis: linearAxis,\n crosshairLine,\n },\n column: {\n xAxis: bandAxis,\n yAxis: linearAxis,\n crosshairRect,\n stackCornerRadius: [4, 4, 0, 0],\n },\n columnParallel: {\n xAxis: bandAxis,\n yAxis: linearAxis,\n crosshairRect,\n stackCornerRadius: [4, 4, 0, 0],\n },\n columnPercent: {\n xAxis: bandAxis,\n yAxis: linearAxis,\n crosshairRect,\n stackCornerRadius: [4, 4, 0, 0],\n },\n bar: {\n xAxis: linearAxis,\n yAxis: barBandAxis,\n crosshairRect,\n stackCornerRadius: [0, 4, 4, 0],\n },\n barParallel: {\n xAxis: linearAxis,\n yAxis: barBandAxis,\n crosshairRect,\n stackCornerRadius: [0, 4, 4, 0],\n },\n barPercent: {\n xAxis: linearAxis,\n yAxis: barBandAxis,\n crosshairRect,\n stackCornerRadius: [0, 4, 4, 0],\n },\n area: {\n xAxis: bandAxis,\n yAxis: linearAxis,\n crosshairLine,\n },\n areaPercent: {\n xAxis: bandAxis,\n yAxis: linearAxis,\n crosshairLine,\n },\n },\n }\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: false,\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 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 const crosshairLine = {\n visible: true,\n labelVisible: true,\n lineColor: '#E2E3E6',\n labelColor: '#4B4F54',\n labelBackgroundColor: '#ffffff',\n }\n const crosshairRect = {\n visible: true,\n labelVisible: true,\n lineColor: '#E2E3E6',\n labelColor: '#4B4F54',\n labelBackgroundColor: '#ffffff',\n }\n\n return {\n baseConfig: {\n vtable: {\n backgroundColor: 'transparent',\n },\n vchart: {\n backgroundColor: 'transparent',\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 border: true,\n maxSize: 1,\n position: 'rt',\n shapeType: 'rectRound',\n labelFontColor: '#FDFDFD',\n labelFontSize: 12,\n labelFontWeight: 400,\n },\n },\n },\n config: {\n line: {\n xAxis: bandAxis,\n yAxis: linearAxis,\n crosshairLine: crosshairLine,\n },\n column: {\n xAxis: bandAxis,\n yAxis: linearAxis,\n crosshairRect: crosshairRect,\n stackCornerRadius: [4, 4, 0, 0],\n },\n columnParallel: {\n xAxis: bandAxis,\n yAxis: linearAxis,\n crosshairRect: crosshairRect,\n stackCornerRadius: [4, 4, 0, 0],\n },\n columnPercent: {\n xAxis: bandAxis,\n yAxis: linearAxis,\n crosshairRect: crosshairRect,\n stackCornerRadius: [4, 4, 0, 0],\n },\n bar: {\n xAxis: linearAxis,\n yAxis: barBandAxis,\n crosshairRect: crosshairRect,\n stackCornerRadius: [0, 4, 4, 0],\n },\n barParallel: {\n xAxis: linearAxis,\n yAxis: barBandAxis,\n crosshairRect: crosshairRect,\n stackCornerRadius: [0, 4, 4, 0],\n },\n barPercent: {\n xAxis: linearAxis,\n yAxis: barBandAxis,\n crosshairRect: crosshairRect,\n stackCornerRadius: [0, 4, 4, 0],\n },\n area: {\n xAxis: bandAxis,\n yAxis: linearAxis,\n crosshairLine: crosshairLine,\n },\n areaPercent: {\n xAxis: bandAxis,\n yAxis: linearAxis,\n crosshairLine: crosshairLine,\n },\n },\n }\n}\n","import type { CustomThemeConfig } from 'src/types'\nimport { Builder } from '../builder'\nimport { darkTheme, lightTheme } from '../../theme'\n\nexport const registerCustomTheme = (\n key: string,\n themeConfig:\n | CustomThemeConfig\n | ((props: { lightTheme: CustomThemeConfig; darkTheme: CustomThemeConfig }) => CustomThemeConfig),\n) => {\n const customTheme =\n typeof themeConfig === 'function' ? themeConfig({ lightTheme: lightTheme(), darkTheme: darkTheme() }) : themeConfig\n Builder._themeMap[key] = customTheme\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 zNumFormat = z\n .object({\n type: z.enum(['number', 'percent', 'permille']).default('number').optional(),\n ratio: z.number().default(1).optional(),\n symbol: z.string().default('').optional(),\n thousandSeparator: z.boolean().default(false).optional(),\n decimalPlaces: z.number().default(2).optional(),\n round: z.enum(['round', 'floor', 'ceil']).default('round').optional(),\n prefix: z.string().default('').optional(),\n suffix: z.string().default('').optional(),\n })\n .optional()\n\nexport type NumFormat = z.infer<typeof zNumFormat>\n","import { z } from 'zod'\nimport { zNumFormat } from './format/numFormat'\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: zNumFormat.default({}).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 type Legend = {\n /**\n * 图例功能是否开启\n * @default true\n * @example enable: true\n */\n enable?: boolean\n /**\n * 图例边框是否开启\n * @default true\n * @example border: true\n */\n border?: boolean\n /**\n * 图例最大列数 或 图例最大行数\n * @default 1\n * @description\n * 如果图例在水平方向上, maxSize控制显示的列数\n * 如果图例在垂直方向上, maxSize控制显示的行数\n * @example maxSize: 2\n */\n maxSize?: number\n /**\n * 图例字体大小\n * @default 12\n * @example labelFontSize: 10\n */\n labelFontSize?: number\n /**\n * 图例字体颜色\n * @default '#fff'\n * @example labelFontColor: '#212121'\n */\n labelFontColor?: string\n /**\n * 图例字体粗细\n * @default 400\n * @example labelFontWeight: 400\n */\n labelFontWeight?: number | string\n /**\n * 图例形状\n * @default 'rectRound'\n * @example shapeType: 'circle'\n */\n shapeType?:\n | 'circle'\n | 'cross'\n | 'diamond'\n | 'square'\n | 'arrow'\n | 'arrow2Left'\n | 'arrow2Right'\n | 'wedge'\n | 'thinTriangle'\n | 'triangle'\n | 'triangleUp'\n | 'triangleDown'\n | 'triangleRight'\n | 'triangleLeft'\n | 'stroke'\n | 'star'\n | 'wye'\n | 'rect'\n | 'arrowLeft'\n | 'arrowRight'\n | 'rectRound'\n | 'roundLine'\n /**\n * 图例位置\n * @default 'top'\n * @example position: 'rightTop'\n */\n position?:\n | 'left'\n | 'leftTop'\n | 'leftBottom'\n | 'lt'\n | 'lb'\n | 'top'\n | 'topLeft'\n | 'topRight'\n | 'tl'\n | 'tr'\n | 'right'\n | 'rightTop'\n | 'rightBottom'\n | 'rt'\n | 'rb'\n | 'bottom'\n | 'bottomLeft'\n | 'bottomRight'\n | 'bl'\n | 'br'\n}\n\nexport const zLegend = z.object({\n enable: z.boolean().default(true).optional(),\n border: z.boolean().default(true).optional(),\n maxSize: z.number().default(1).optional(),\n shapeType: z\n .enum([\n 'circle',\n 'cross',\n 'diamond',\n 'square',\n 'arrow',\n 'arrow2Left',\n 'arrow2Right',\n 'wedge',\n 'thinTriangle',\n 'triangle',\n 'triangleUp',\n 'triangleDown',\n 'triangleRight',\n 'triangleLeft',\n 'stroke',\n 'star',\n 'wye',\n 'rect',\n 'arrowLeft',\n 'arrowRight',\n 'rectRound',\n 'roundLine',\n ])\n .default('rectRound')\n .optional(),\n position: z\n .enum([\n 'left',\n 'leftTop',\n 'leftBottom',\n 'lt',\n 'lb',\n 'top',\n 'topLeft',\n 'topRight',\n 'tl',\n 'tr',\n 'right',\n 'rightTop',\n 'rightBottom',\n 'rt',\n 'rb',\n 'bottom',\n 'bottomLeft',\n 'bottomRight',\n 'bl',\n 'br',\n ])\n .default('bottom')\n .optional(),\n labelFontSize: z.number().default(12).optional(),\n labelFontColor: z.string().default('#fff').optional(),\n labelFontWeight: z.number().or(z.string()).default(400).optional(),\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'\n\nexport const zCrosshairLine = z.object({\n visible: z.boolean().optional(),\n lineColor: z.string().optional(),\n labelColor: z.string().optional(),\n labelVisible: z.boolean().optional(),\n labelBackgroundColor: z.string().optional(),\n})\n\nexport type CrosshairLine = z.infer<typeof zCrosshairLine>\n\nexport const zCrosshairRect = z.object({\n visible: z.boolean().optional(),\n rectColor: z.string().optional(),\n labelColor: z.string().optional(),\n labelVisible: z.boolean().optional(),\n labelBackgroundColor: z.string().optional(),\n})\n\nexport type CrosshairRect = z.infer<typeof zCrosshairLine>\n","import { z } from 'zod'\n\nexport const zStackCornerRadius = z.number().or(z.array(z.number())).default([3, 3, 0, 0])\n\nexport type StackCornerRadius = z.infer<typeof zStackCornerRadius>\n","import { z } from 'zod'\nimport { zXBandAxis, zYBandAxis } from './bandAxis'\nimport { zXLinearAxis, zYLinearAxis } from './linearAxis'\nimport { zCrosshairLine, zCrosshairRect } from './crosshair'\nimport { zStackCornerRadius } from './stackCornerRadius'\n\nexport const zConfig = z.object({\n line: z\n .object({\n xAxis: zXBandAxis.optional(),\n yAxis: zYLinearAxis.optional(),\n crosshairLine: zCrosshairLine.optional(),\n })\n .optional(),\n column: z\n .object({\n xAxis: zXBandAxis.optional(),\n yAxis: zYLinearAxis.optional(),\n crosshairRect: zCrosshairRect.optional(),\n stackCornerRadius: zStackCornerRadius.optional(),\n })\n .optional(),\n columnParallel: z\n .object({\n xAxis: zXBandAxis.optional(),\n yAxis: zYLinearAxis.optional(),\n crosshairRect: zCrosshairRect.optional(),\n stackCornerRadius: zStackCornerRadius.optional(),\n })\n .optional(),\n columnPercent: z\n .object({\n xAxis: zXBandAxis.optional(),\n yAxis: zYLinearAxis.optional(),\n crosshairRect: zCrosshairRect.optional(),\n stackCornerRadius: zStackCornerRadius.optional(),\n })\n .optional(),\n bar: z\n .object({\n xAxis: zXLinearAxis.optional(),\n yAxis: zYBandAxis.optional(),\n crosshairRect: zCrosshairRect.optional(),\n stackCornerRadius: zStackCornerRadius.optional(),\n })\n .optional(),\n barParallel: z\n .object({\n xAxis: zXLinearAxis.optional(),\n yAxis: zYBandAxis.optional(),\n crosshairRect: zCrosshairRect.optional(),\n stackCornerRadius: zStackCornerRadius.optional(),\n })\n .optional(),\n barPercent: z\n .object({\n xAxis: zXLinearAxis.optional(),\n yAxis: zYBandAxis.optional(),\n crosshairRect: zCrosshairRect.optional(),\n stackCornerRadius: zStackCornerRadius.optional(),\n })\n .optional(),\n area: z\n .object({\n xAxis: zXBandAxis.optional(),\n yAxis: zYLinearAxis.optional(),\n crosshairLine: zCrosshairLine.optional(),\n })\n .optional(),\n areaPercent: z\n .object({\n xAxis: zXBandAxis.optional(),\n yAxis: zYLinearAxis.optional(),\n crosshairLine: zCrosshairLine.optional(),\n })\n .optional(),\n\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 type { Datum } from '../properties'\n\nexport type ValueSelector = string | number\n\nexport type PartialDatumSelector = Datum\n\nexport type MeasureSelector = {\n field: string\n operator?: '=' | '==' | '!=' | '>' | '<' | '>=' | '<=' | 'between'\n op?: '=' | '==' | '!=' | '>' | '<' | '>=' | '<=' | 'between'\n value: string | number | Array<string | number>\n}\n\nexport type DimensionSelector = {\n field: string\n operator?: 'in' | 'not in'\n op?: 'in' | 'not in'\n value: string | number | Array<string | number>\n}\n\nexport type Selector = ValueSelector | PartialDatumSelector | MeasureSelector | DimensionSelector\n\nexport type Selectors = Array<Selector>\n\nexport const zSelector = z.union([\n z.string(),\n z.number(),\n z.object({\n field: z.string(),\n operator: z.enum(['=', '==', '!=', '>', '<', '>=', '<=', 'between']).optional(),\n op: z.enum(['=', '==', '!=', '>', '<', '>=', '<=', 'between']).optional(),\n value: z.union([z.string(), z.number(), z.array(z.union([z.string(), z.number()]))]),\n }),\n z.object({\n field: z.string(),\n operator: z.enum(['in', 'not in']).optional(),\n op: z.enum(['in', 'not in']).optional(),\n value: z.union([z.string(), z.number(), z.array(z.union([z.string(), z.number()]))]),\n }),\n])\n\nexport const zSelectors = z.array(zSelector)\n","import { zSelector, zSelectors, type Selector, type Selectors } from '../../dataSelector'\nimport { z } from 'zod'\n\nexport type AnnotationPoint = {\n /**\n * 依赖选择的数据, 进行数据标记.\n */\n selector: Selector | Selectors\n /**\n * 标注的文本\n * @description 标注的文本\n * @default ''\n * @example '标注文本'\n */\n text?: string | string[]\n /**\n * 文本颜色\n * @description 文本颜色\n * @default '#ffffff'\n * @example 'red'\n */\n textColor?: string\n /**\n * 文本字体大小\n * @description 文本字体大小\n * @default 12\n * @example 12\n */\n textFontSize?: number\n /**\n * 文本字体重量\n * @description 文本字体重量\n * @default 400\n * @example 400\n */\n textFontWeight?: number\n\n /**\n * 文本对齐方式\n * @description 文本对齐方式\n * @default 'left'\n * @example 'left'\n */\n textAlign?: 'left' | 'right' | 'center'\n /**\n * 文本垂直对齐方式\n * @description 文本垂直对齐方式\n * @default 'middle'\n * @example 'middle'\n */\n textBaseline?: 'top' | 'middle' | 'bottom'\n\n /**\n * 文本Y方向的, 偏移量\n * @description 文本Y方向的, 偏移量, 支持正负\n * @default 0\n * @example offsetY: 10\n */\n offsetY?: number\n /**\n * 文本X方向的, 偏移量\n * @description 文本X方向的, 偏移量, 支持正负\n * @default 0\n * @example offsetX: -10\n */\n offsetX?: number\n /**\n * 背景可见\n * @description 背景可见\n * @default true\n * @example true\n */\n backgroundVisible?: boolean\n /**\n * 背景颜色\n * @description 背景颜色\n * @default '#212121'\n * @example 'red'\n */\n backgroundColor?: string\n /**\n * 背景边框颜色\n * @description 背景边框颜色\n * @default 'red'\n * @example 'red'\n */\n backgroundBorderColor?: string\n /**\n * 背景边框宽度\n * @description 背景边框宽度\n * @default 1\n * @example 2\n */\n backgroundBorderWidth?: number\n /**\n * 背景边框圆角\n * @description 背景边框圆角\n * @default 4\n * @example 4\n */\n backgroundBorderRadius?: number\n /**\n * 背景内边距\n * @description 背景内边距\n * @default 4\n * @example 4\n */\n backgroundPadding?: number\n}\n\nexport const zAnnotationPoint = z.object({\n selector: z.union([zSelector, zSelectors]),\n text: z.string().or(z.array(z.string())).optional(),\n textColor: z.string().default('#ffffff').optional(),\n textFontSize: z.number().default(12).optional(),\n textFontWeight: z.number().default(400).optional(),\n textAlign: z.enum(['left', 'right', 'center']).default('center').optional(),\n textBaseline: z.enum(['top', 'middle', 'bottom']).default('middle').optional(),\n backgroundVisible: z.boolean().default(true).optional(),\n backgroundColor: z.string().default('#212121').optional(),\n backgroundBorderColor: z.string().optional(),\n backgroundBorderWidth: z.number().default(1).optional(),\n backgroundBorderRadius: z.number().default(4).optional(),\n backgroundPadding: z.number().optional(),\n offsetY: z.number().default(0).optional(),\n offsetX: z.number().default(0).optional(),\n})\n","import { zSelector, zSelectors, type Selector, type Selectors } from '../../dataSelector'\nimport { z } from 'zod'\n\nexport type AnnotationVerticalLine = {\n /**\n * 依赖选择的数据, 进行数据标记.\n */\n selector?: Selector | Selectors\n /**\n * 固定的x值, 用于标注垂直线\n * @description 类目轴在x方向, 则可输入维值, 数值轴在x方向, 则可输入具体的数值\n * @default []\n */\n xValue?: (number | string) | (number | string)[]\n /**\n * 标注的文本\n * @description 标注的文本\n * @default ''\n * @example '标注文本'\n */\n text?: string | string[]\n /**\n * 文本位置\n * @description 标注线的标签位置(标签相对线的相对位置)。\n * @default 'insideEnd'\n * @example 'outsideEnd'\n */\n textPosition?: 'outsideStart' | 'outsideEnd' | 'outsideMiddle' | 'insideStart' | 'insideMiddle' | 'insideEnd'\n /**\n * 文本颜色\n * @description 文本颜色\n * @default '#ffffff'\n * @example 'red'\n */\n textColor?: string\n /**\n * 文本字体大小\n * @description 文本字体大小\n * @default 12\n * @example 12\n */\n textFontSize?: number\n /**\n * 文本字体重量\n * @description 文本字体重量\n * @default 400\n * @example 400\n */\n textFontWeight?: number\n /**\n * 文本对齐方式\n * @description 文本对齐方式\n * @default 'right'\n * @example 'left'\n */\n textAlign?: 'left' | 'right' | 'center'\n /**\n * 文本垂直对齐方式\n * @description 文本垂直对齐方式\n * @default 'top'\n * @example 'middle'\n */\n textBaseline?: 'top' | 'middle' | 'bottom'\n /**\n * 文本Y方向的, 偏移量\n * @description 文本Y方向的, 偏移量, 支持正负\n * @default 0\n * @example offsetY: 10\n */\n offsetY?: number\n /**\n * 文本X方向的, 偏移量\n * @description 文本X方向的, 偏移量, 支持正负\n * @default 0\n * @example offsetX: -10\n */\n offsetX?: number\n /**\n * 线可见\n * @description 线可见\n * @default true\n * @example true\n */\n lineVisible?: boolean\n /**\n * 线颜色\n * @description 线颜色\n * @default 'red'\n * @example 'red'\n */\n lineColor?: string\n /**\n * 线宽度\n * @description 线宽度\n * @default 2\n * @example 2\n */\n lineWidth?: number\n /**\n * 线样式\n * @description 线样式\n * @default 'solid'\n * @example 'solid'\n */\n lineStyle?: 'solid' | 'dashed' | 'dotted'\n /**\n * 背景可见\n * @description 背景可见\n * @default true\n * @example true\n */\n backgroundVisible?: boolean\n /**\n * 背景颜色\n * @description 背景颜色\n * @default '#212121'\n * @example 'red'\n */\n backgroundColor?: string\n /**\n * 背景边框颜色\n * @description 背景边框颜色\n * @default 'red'\n * @example 'red'\n */\n backgroundBorderColor?: string\n /**\n * 背景边框宽度\n * @description 背景边框宽度\n * @default 1\n * @example 2\n */\n backgroundBorderWidth?: number\n /**\n * 背景边框圆角\n * @description 背景边框圆角\n * @default 4\n * @example 4\n */\n backgroundBorderRadius?: number\n /**\n * 背景内边距\n * @description 背景内边距\n * @default 4\n * @example 4\n */\n backgroundPadding?: number\n}\n\nexport const zAnnotationVerticalLine = z.object({\n selector: z.union([zSelector, zSelectors]).optional(),\n xValue: z.union([z.number(), z.string(), z.array(z.union([z.number(), z.string()]))]).optional(),\n text: z.string().or(z.array(z.string())).optional(),\n textPosition: z\n .enum(['outsideStart', 'outsideEnd', 'outsideMiddle', 'insideStart', 'insideMiddle', 'insideEnd'])\n .default('insideEnd')\n .optional(),\n textColor: z.string().default('#ffffff').optional(),\n textFontSize: z.number().default(12).optional(),\n textFontWeight: z.number().default(400).optional(),\n textAlign: z.enum(['left', 'right', 'center']).default('right').optional(),\n textBaseline: z.enum(['top', 'middle', 'bottom']).default('top').optional(),\n lineVisible: z.boolean().optional(),\n lineColor: z.string().optional(),\n lineWidth: z.number().optional(),\n lineStyle: z.union([z.literal('solid'), z.literal('dashed'), z.literal('dotted')]).optional(),\n backgroundVisible: z.boolean().default(true).optional(),\n backgroundColor: z.string().default('#212121').optional(),\n backgroundBorderColor: z.string().optional(),\n backgroundBorderWidth: z.number().default(1).optional(),\n backgroundBorderRadius: z.number().default(4).optional(),\n backgroundPadding: z.number().optional(),\n offsetY: z.number().default(0).optional(),\n offsetX: z.number().default(0).optional(),\n})\n","import { zSelector, zSelectors, type Selector, type Selectors } from '../../dataSelector'\nimport { z } from 'zod'\n\nexport type AnnotationHorizontalLine = {\n /**\n * 依赖选择的数据, 进行数据标记.\n */\n selector?: Selector | Selectors\n /**\n * 固定的y值, 用于标注水平线\n * @description 类目轴在y方向, 则可输入维值, 数值轴在y方向, 则可输入具体的数值\n * @default []\n */\n yValue?: (number | string) | (number | string)[]\n /**\n * 标注的文本\n * @description 标注的文本\n * @default ''\n * @example '标注文本'\n */\n text?: string | string[]\n /**\n * 文本位置\n * @description 标注线的标签位置(标签相对线的相对位置)。\n * @default 'insideEnd'\n * @example 'outsideEnd'\n */\n textPosition?: 'outsideStart' | 'outsideEnd' | 'outsideMiddle' | 'insideStart' | 'insideMiddle' | 'insideEnd'\n /**\n * 文本颜色\n * @description 文本颜色\n * @default '#ffffff'\n * @example 'red'\n */\n textColor?: string\n /**\n * 文本字体大小\n * @description 文本字体大小\n * @default 12\n * @example 12\n */\n textFontSize?: number\n /**\n * 文本字体重量\n * @description 文本字体重量\n * @default 400\n * @example 400\n */\n textFontWeight?: number\n\n /**\n * 文本对齐方式\n * @description 文本对齐方式\n * @default 'left'\n * @example 'center'\n */\n textAlign?: 'left' | 'right' | 'center'\n /**\n * 文本垂直对齐方式\n * @description 文本垂直对齐方式\n * @default 'bottom'\n * @example 'middle'\n */\n textBaseline?: 'top' | 'middle' | 'bottom'\n /**\n * 文本Y方向的, 偏移量\n * @description 文本Y方向的, 偏移量, 支持正负\n * @default 0\n * @example offsetY: 10\n */\n offsetY?: number\n /**\n * 文本X方向的, 偏移量\n * @description 文本X方向的, 偏移量, 支持正负\n * @default 0\n * @example offsetX: -10\n */\n offsetX?: number\n /**\n * 线可见\n * @description 线可见\n * @default true\n * @example true\n */\n lineVisible?: boolean\n /**\n * 线颜色\n * @description 线颜色\n * @default 'red'\n * @example 'red'\n */\n lineColor?: string\n /**\n * 线宽度\n * @description 线宽度\n * @default 2\n * @example 2\n */\n lineWidth?: number\n /**\n * 线样式\n * @description 线样式\n * @default 'solid'\n * @example 'solid'\n */\n lineStyle?: 'solid' | 'dashed' | 'dotted'\n /**\n * 背景可见\n * @description 背景可见\n * @default true\n * @example true\n */\n backgroundVisible?: boolean\n /**\n * 背景颜色\n * @description 背景颜色\n * @default '#212121'\n * @example 'red'\n */\n backgroundColor?: string\n /**\n * 背景边框颜色\n * @description 背景边框颜色\n * @default 'red'\n * @example 'red'\n */\n backgroundBorderColor?: string\n /**\n * 背景边框宽度\n * @description 背景边框宽度\n * @default 1\n * @example 2\n */\n backgroundBorderWidth?: number\n /**\n * 背景边框圆角\n * @description 背景边框圆角\n * @default 4\n * @example 4\n */\n backgroundBorderRadius?: number\n /**\n * 背景内边距\n * @description 背景内边距\n * @default 4\n * @example 4\n */\n backgroundPadding?: number\n}\n\nexport const zAnnotationHorizontalLine = z.object({\n selector: z.union([zSelector, zSelectors]).optional(),\n yValue: z.union([z.number(), z.string(), z.array(z.union([z.number(), z.string()]))]).optional(),\n text: z.string().or(z.array(z.string())).optional(),\n textPosition: z\n .enum(['outsideStart', 'outsideEnd', 'outsideMiddle', 'insideStart', 'insideMiddle', 'insideEnd'])\n .default('insideMiddle')\n .optional(),\n textColor: z.string().default('#ffffff').optional(),\n textFontSize: z.number().default(12).optional(),\n textFontWeight: z.number().default(400).optional(),\n textAlign: z.enum(['left', 'right', 'center']).default('center').optional(),\n textBaseline: z.enum(['top', 'middle', 'bottom']).default('bottom').optional(),\n lineVisible: z.boolean().optional(),\n lineColor: z.string().optional(),\n lineWidth: z.number().optional(),\n lineStyle: z.union([z.literal('solid'), z.literal('dashed'), z.literal('dotted')]).optional(),\n backgroundVisible: z.boolean().default(true).optional(),\n backgroundColor: z.string().default('#212121').optional(),\n backgroundBorderColor: z.string().optional(),\n backgroundBorderWidth: z.number().default(1).optional(),\n backgroundBorderRadius: z.number().default(4).optional(),\n backgroundPadding: z.number().optional(),\n offsetY: z.number().default(0).optional(),\n offsetX: z.number().default(0).optional(),\n})\n","import { zSelector, zSelectors, type Selector, type Selectors } from '../../dataSelector'\nimport { z } from 'zod'\n\nexport type AnnotationArea = {\n /**\n * 依赖选择的数据, 进行数据标记.\n */\n selector: Selector | Selectors\n\n /**\n * 标注的文本\n * @description 标注的文本\n * @default ''\n * @example '标注文本'\n */\n text?: string | string[]\n\n /**\n * 文本位置\n * @description 文本位置\n * @default 'top'\n * @example 'top'\n */\n textPosition?: 'top' | 'topRight' | 'topLeft' | 'bottom' | 'bottomLeft' | 'bottomRight' | 'left' | 'right'\n\n /**\n * 文本颜色\n * @description 文本颜色\n * @default '#ffffff'\n * @example 'red'\n */\n textColor?: string\n /**\n * 文本字体大小\n * @description 文本字体大小\n * @default 12\n * @example 12\n */\n textFontSize?: number\n /**\n * 文本字体重量\n * @description 文本字体重量\n * @default 400\n * @example 400\n */\n textFontWeight?: number\n\n /**\n * 文本对齐方式\n * @description 文本对齐方式\n * @default 'left'\n * @example 'left'\n */\n textAlign?: 'left' | 'right' | 'center'\n /**\n * 文本垂直对齐方式\n * @description 文本垂直对齐方式\n * @default 'middle'\n * @example 'middle'\n */\n textBaseline?: 'top' | 'middle' | 'bottom'\n /**\n * 背景可见\n * @description 背景可见\n * @default true\n * @example true\n */\n backgroundVisible?: boolean\n /**\n * 背景颜色\n * @description 背景颜色\n * @default '#212121'\n * @example 'red'\n */\n backgroundColor?: string\n /**\n * 背景边框颜色\n * @description 背景边框颜色\n * @default 'red'\n * @example 'red'\n */\n backgroundBorderColor?: string\n /**\n * 背景边框宽度\n * @description 背景边框宽度\n * @default 1\n * @example 2\n */\n backgroundBorderWidth?: number\n /**\n * 背景边框圆角\n * @description 背景边框圆角\n * @default 4\n * @example 4\n */\n backgroundBorderRadius?: number\n /**\n * 背景内边距\n * @description 背景内边距\n * @default 4\n * @example 4\n */\n backgroundPadding?: number\n\n /**\n * 面积区域颜色\n * @description 面积区域颜色\n * @default 'red'\n * @example 'red'\n */\n areaColor?: string\n /**\n * 面积区域颜色透明度\n * @description 面积区域颜色透明度\n * @default 0.5\n * @example 0.5\n */\n areaColorOpacity?: number\n /**\n * 面积区域边框颜色\n * @description 面积区域边框颜色\n * @default 'red'\n * @example 'red'\n */\n areaBorderColor?: number\n /**\n * 面积区域边框宽度\n * @description 面积区域边框宽度\n * @default 2\n * @example 2\n */\n areaBorderWidth?: number\n /**\n * 面积区域边框圆角\n * @description 面积区域边框圆角\n * @default 4\n * @example 4\n */\n areaBorderRadius?: number\n /**\n * 面积区域的边距\n * @description 面积区域的边距\n * @default 8\n * @example 0\n */\n outerPadding?: number\n}\n\nexport const zAnnotationArea = z.object({\n selector: z.union([zSelector, zSelectors]),\n textPosition: z\n .enum(['top', 'topRight', 'topLeft', 'bottom', 'bottomLeft', 'bottomRight', 'left', 'right'])\n .default('top')\n .optional(),\n text: z.string().or(z.array(z.string())).optional(),\n textColor: z.string().default('#ffffff').optional(),\n textFontSize: z.number().default(12).optional(),\n textFontWeight: z.number().default(400).optional(),\n textAlign: z.enum(['left', 'right', 'center']).default('center').optional(),\n textBaseline: z.enum(['top', 'middle', 'bottom']).default('middle').optional(),\n\n backgroundVisible: z.boolean().default(true).optional(),\n backgroundColor: z.string().default('#212121').optional(),\n backgroundBorderColor: z.string().optional(),\n backgroundBorderWidth: z.number().default(1).optional(),\n backgroundBorderRadius: z.number().default(4).optional(),\n backgroundPadding: z.number().optional(),\n\n areaColor: z.string().default('red').optional(),\n areaColorOpacity: z.number().default(0.5).optional(),\n areaBorderColor: z.number().optional(),\n areaBorderWidth: z.number().default(2).optional(),\n areaBorderRadius: z.number().default(4).optional(),\n\n outerPadding: z.number().optional(),\n})\n","import { z } from 'zod'\nimport { zAnnotationPoint } from './annotationPoint'\nimport { zAnnotationVerticalLine } from './annotationVerticalLine'\nimport { zAnnotationHorizontalLine } from './annotationHorizontalLine'\nimport { zAnnotationArea } from './annotationArea'\n\nexport const zAnnotation = z.object({\n annotationPoint: zAnnotationPoint.or(z.array(zAnnotationPoint)).optional(),\n annotationVerticalLine: zAnnotationVerticalLine.or(z.array(zAnnotationVerticalLine)).optional(),\n annotationHorizontalLine: zAnnotationHorizontalLine.or(z.array(zAnnotationHorizontalLine)).optional(),\n annotationArea: zAnnotationArea.or(z.array(zAnnotationArea)).optional(),\n})\n\nexport type Annotation = z.infer<typeof zAnnotation>\n","import { z } from 'zod'\nimport { zSelector, zSelectors, type Selector, type Selectors } from '../../dataSelector'\n\nexport type BarStyle = {\n /**\n * 数据选择器\n * @description\n * 若配置selector, 提供数值 selector, 局部数据 selector, 条件维度 selector, 条件指标 selector 共四类数据匹配能力\n * 若未配置selector, 则样式全局生效.\n * @type {Selector | Selectors}\n * @example 数值选择器\n * selector = \"tool\"\n * selector = [\"tool\", \"book\"]\n * selector = 100\n * selector = [100, 200]\n * @example 局部数据选择器\n * selector = { profit: 100 }\n * selector = [{ profit: 100 }, { profit: 200 }]\n * @example 条件维度选择器\n * selector = {\n * field: 'category',\n * operator: 'in',\n * value: 'tool'\n * }\n * selector = {\n * field: 'category',\n * operator: 'not in',\n * value: 'book'\n * }\n * @example 条件指标选择器\n * selector = {\n * field: 'profit',\n * operator: '>=',\n * value: 100\n * }\n * selector = {\n * field: 'profit',\n * operator: 'between'\n * value: [100, 300]\n * }\n */\n selector?: Selector | Selectors\n\n /**\n * 柱状图颜色\n * @description 柱状图颜色\n * @type {string}\n * @default #000000\n */\n barColor?: string\n /**\n * 柱状图颜色透明度\n * @description 柱状图颜色透明度\n * @type {number}\n * @default 1\n */\n barColorOpacity?: number\n /**\n * 柱状图边框颜色\n * @description 柱状图边框颜色\n * @type {string}\n * @default #000000\n */\n barBorderColor?: string\n /**\n * 柱状图边框宽度\n * @description 柱状图边框宽度\n * @type {number}\n * @default 0\n */\n barBorderWidth?: number\n /**\n * 柱状图边框样式\n * @description 柱状图边框样式\n * @type {number}\n * @default solid\n * @example solid\n * @example dashed\n * @example dotted\n */\n barBorderStyle?: 'solid' | 'dashed' | 'dotted'\n /**\n * 柱状图圆角\n * @description 柱状图圆角\n * @type {number | number[]}\n * @default 0\n * @example 4\n * @example [0, 0, 10, 10]\n */\n barRadius?: number | number[]\n}\n\nexport const zBarStyle = z.object({\n selector: z.union([zSelector, zSelectors]).optional(),\n barColor: z.string().optional(),\n barColorOpacity: z.number().optional(),\n barBorderColor: z.string().optional(),\n barBorderWidth: z.number().optional(),\n barBorderStyle: z.union([z.literal('solid'), z.literal('dashed'), z.literal('dotted')]).optional(),\n barRadius: z.union([z.number(), z.array(z.number())]).optional(),\n})\n","import { z } from 'zod'\nimport { zSelector, zSelectors, type Selector, type Selectors } from '../../dataSelector'\n\nexport type PointStyle = {\n /**\n * 数据选择器\n * @description\n * 若配置selector, 提供数值 selector, 局部数据 selector, 条件维度 selector, 条件指标 selector 共四类数据匹配能力\n * 若未配置selector, 则样式全局生效.\n * @type {Selector | Selectors}\n * @example 数值选择器\n * selector = \"tool\"\n * selector = [\"tool\", \"book\"]\n * selector = 100\n * selector = [100, 200]\n * @example 局部数据选择器\n * selector = { profit: 100 }\n * selector = [{ profit: 100 }, { profit: 200 }]\n * @example 条件维度选择器\n * selector = {\n * field: 'category',\n * operator: 'in',\n * value: 'tool'\n * }\n * selector = {\n * field: 'category',\n * operator: 'not in',\n * value: 'book'\n * }\n * @example 条件指标选择器\n * selector = {\n * field: 'profit',\n * operator: '>=',\n * value: 100\n * }\n * selector = {\n * field: 'profit',\n * operator: 'between'\n * value: [100, 300]\n * }\n */\n selector?: Selector | Selectors\n\n /**\n * 点大小\n * @description 点大小\n * @type {number}\n * @default 10\n */\n pointSize?: number\n /**\n * 柱状图颜色\n * @description 柱状图颜色\n * @type {string}\n * @default #000000\n */\n pointColor?: string\n /**\n * 柱状图颜色透明度\n * @description 柱状图颜色透明度\n * @type {number}\n * @default 1\n */\n pointColorOpacity?: number\n /**\n * 柱状图边框颜色\n * @description 柱状图边框颜色\n * @type {string}\n * @default #000000\n */\n pointBorderColor?: string\n /**\n * 柱状图边框宽度\n * @description 柱状图边框宽度\n * @type {number}\n * @default 0\n */\n pointBorderWidth?: number\n /**\n * 柱状图边框样式\n * @description 柱状图边框样式\n * @type {number}\n * @default solid\n * @example solid\n * @example dashed\n * @example dotted\n */\n pointBorderStyle?: 'solid' | 'dashed' | 'dotted'\n}\n\nexport const zPointStyle = z.object({\n selector: z.union([zSelector, zSelectors]).optional(),\n pointSize: z.number().optional(),\n pointColor: z.string().optional(),\n pointColorOpacity: z.number().optional(),\n pointBorderColor: z.string().optional(),\n pointBorderWidth: z.number().optional(),\n pointBorderStyle: z.union([z.enum(['solid', 'dashed', 'dotted'])]).optional(),\n})\n","import { z } from 'zod'\nimport { zSelector, zSelectors, type Selector, type Selectors } from '../../dataSelector'\n\nexport type LineStyle = {\n /**\n * 数据选择器\n * @description\n * 若配置selector, 提供数值 selector, 局部数据 selector, 条件维度 selector, 条件指标 selector 共四类数据匹配能力\n * 若未配置selector, 则样式全局生效.\n * @type {Selector | Selectors}\n * @example 数值选择器\n * selector = \"tool\"\n * selector = [\"tool\", \"book\"]\n * selector = 100\n * selector = [100, 200]\n * @example 局部数据选择器\n * selector = { profit: 100 }\n * selector = [{ profit: 100 }, { profit: 200 }]\n * @example 条件维度选择器\n * selector = {\n * field: 'category',\n * operator: 'in',\n * value: 'tool'\n * }\n * selector = {\n * field: 'category',\n * operator: 'not in',\n * value: 'book'\n * }\n * @example 条件指标选择器\n * selector = {\n * field: 'profit',\n * operator: '>=',\n * value: 100\n * }\n * selector = {\n * field: 'profit',\n * operator: 'between'\n * value: [100, 300]\n * }\n */\n selector?: Selector | Selectors\n\n /**\n * 折线图是否平滑\n * @description 折线图是否平滑\n * @type {boolean}\n * @default true\n */\n lineSmooth?: boolean\n\n /**\n * 柱状图颜色\n * @description 柱状图颜色\n * @type {string}\n * @default {undefined} follow series color\n */\n lineColor?: string\n /**\n * 柱状图颜色透明度\n * @description 柱状图颜色透明度\n * @type {number}\n * @default 1\n */\n lineColorOpacity?: number\n /**\n * 柱状图边框宽度\n * @description 柱状图边框宽度\n * @type {number}\n * @default 1\n */\n lineWidth?: number\n /**\n * 柱状图边框样式\n * @description 柱状图边框样式\n * @type {number}\n * @default solid\n * @example solid\n * @example dashed\n * @example dotted\n */\n lineStyle?: 'solid' | 'dashed' | 'dotted'\n}\n\nexport const zLineStyle = z.object({\n selector: z.union([zSelector, zSelectors]).optional(),\n lineSmooth: z.boolean().default(true).optional(),\n lineColor: z.string().optional(),\n lineColorOpacity: z.number().optional(),\n lineWidth: z.number().optional(),\n lineStyle: z.union([z.enum(['solid', 'dashed', 'dotted'])]).optional(),\n})\n","import { z } from 'zod'\nimport { zSelector, zSelectors, type Selector, type Selectors } from '../../dataSelector'\n\nexport type AreaStyle = {\n /**\n * 数据选择器\n * @description\n * 若配置selector, 提供数值 selector, 局部数据 selector, 条件维度 selector, 条件指标 selector 共四类数据匹配能力\n * 若未配置selector, 则样式全局生效.\n * @type {Selector | Selectors}\n * @example 数值选择器\n * selector = \"tool\"\n * selector = [\"tool\", \"book\"]\n * selector = 100\n * selector = [100, 200]\n * @example 局部数据选择器\n * selector = { profit: 100 }\n * selector = [{ profit: 100 }, { profit: 200 }]\n * @example 条件维度选择器\n * selector = {\n * field: 'category',\n * operator: 'in',\n * value: 'tool'\n * }\n * selector = {\n * field: 'category',\n * operator: 'not in',\n * value: 'book'\n * }\n * @example 条件指标选择器\n * selector = {\n * field: 'profit',\n * operator: '>=',\n * value: 100\n * }\n * selector = {\n * field: 'profit',\n * operator: 'between'\n * value: [100, 300]\n * }\n */\n selector?: Selector | Selectors\n\n /**\n * 面积图元的颜色\n * @description 面积图元的颜色\n * @type {string}\n * @default {undefined} follow series color\n */\n areaColor?: string\n /**\n * 面积图元的颜色透明度\n * @description 面积图元的颜色透明度\n * @type {number}\n * @default 1\n */\n areaColorOpacity?: number\n}\n\nexport const zAreaStyle = z.object({\n selector: z.union([zSelector, zSelectors]).optional(),\n areaColor: z.string().optional(),\n areaColorOpacity: z.number().optional(),\n})\n","import { z } from 'zod'\nimport { zBarStyle } from './barStyle'\nimport { zPointStyle } from './pointStyle'\nimport { zLineStyle } from './lineStyle'\nimport { zAreaStyle } from './areaStyle'\n\nexport const zMarkStyle = z.object({\n barStyle: zBarStyle.or(z.array(zBarStyle)).optional(),\n pointStyle: zPointStyle.or(z.array(zPointStyle)).optional(),\n lineStyle: zLineStyle.or(z.array(zLineStyle)).optional(),\n areaStyle: zAreaStyle.or(z.array(zAreaStyle)).optional(),\n})\n\nexport type MarkStyle = z.infer<typeof zMarkStyle>\n","import { z } from 'zod'\nimport { zBaseConfig } from '../baseConfig'\nimport { zConfig } from '../config'\nimport { zAnnotation } from '../annotation'\nimport { zMarkStyle } from '../markStyle'\n\nexport const zCustomThemeConfig = z.object({\n baseConfig: zBaseConfig.optional(),\n config: zConfig.optional(),\n annotation: zAnnotation.optional(),\n markStyle: zMarkStyle.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":["__webpack_require__","definition","key","Object","obj","prop","Symbol","initAdvancedVSeed","advancedVSeed","context","vseed","chartType","execPipeline","pipeline","initialValue","result","prev","cur","isVTable","isVChart","isPivotChart","measures","dimensions","hasRowOrColumnDimension","dimension","hasMeasureGroup","measure","Intl","translateMap","value","segments","values","text","segment","index","translatedText","isNullish","console","locale","intl","i18n","createNumFormatter","format","type","ratio","symbol","thousandSeparator","decimalPlaces","round","prefix","suffix","num","Number","typeSymbol","multiplier","Math","numStr","parts","autoNumFormatter","String","countDecimalPlaces","str","parseInt","decimalPart","numFormat","rules","NUMBER_FORMAT_RULES","rule","createFormatter","autoFormatter","findMeasureById","id","stack","current","autoMeasures","dataset","Error","autoMeasureGroup","top100dataset","sample","item","undefined","newMeasures","currentGroup","createEmptyMeasureGroup","measureGroups","autoDimensions","dim","FoldMeasureName","FoldMeasureValue","FoldMeasureId","UnfoldDimensionGroup","Separator","ORIGINAL_DATA","unfoldDimensions","unfoldStartIndex","foldGroupName","dimensionsSeparator","dimensionsToBeUnfolded","unfoldInfo","colorItems","i","datum","colorItem","generateDimGroupName","unique","dimensionsToBeGrouped","foldMeasures","measureId","measureName","measureValue","foldInfo","Array","ids","d","j","omit","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","isZeroDimension","x","y","group","color","encodingYX","encodingPolar","radius","angle","vchartBaseConfig","config","pick","lineConfig","columnConfig","pieConfig","areaConfig","areaPercentConfig","barConfig","barParallelConfig","barPercentConfig","columnParallelConfig","columnPercentConfig","vchartTheme","customTheme","theme","baseConfigVChartTheme","baseConfigVChart","mergedConfig","mergeDeep","clone","chartConfigTheme","chartConfig","pivotAdapter","pivotPipeline","usePivotChart","markStyle","annotation","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","ANNOTATION_Z_INDEX","LINEAR_AXIS_INNER_OFFSET_TOP","xLinear","zero","nice","inverse","max","min","linearAxis","yBand","yLinear","percent","stackInverse","stackCornerRadius","backgroundColor","baseConfig","defaultTooltip","tooltip","enable","autoFormat","isEmpty","formatter","discreteLegend","legend","position","labelFontColor","labelFontSize","labelFontWeight","maxSize","border","shapeType","orient","legendPosition","items","pivotDiscreteLegend","colorScheme","legends","colorMapping","pivotIndicators","chartPipeline","indicators","newEncoding","newDatasetReshapeInfo","newContext","chartSpec","pivotIndicatorsAsRow","pivotIndicatorsAsCol","pivotGridStyle","transparent","hoverBackgroundColor","pivotColumnDimensions","columnDimensions","columns","pivotRowDimensions","rowDimensions","rows","selector","vchartDatum","vchartKeys","k","selectors","isValueSelector","v","isMeasureSelector","op","selectorValueArr","isDimensionSelector","isPartialDatumSelector","barStyle","field","barStyles","customMap","style","barBorderColor","barBorderStyle","barBorderWidth","barColor","barColorOpacity","barRadius","lineDash","pointStyle","pointStyles","pointBorderColor","pointBorderStyle","pointBorderWidth","pointColor","pointColorOpacity","pointSize","lineStyle","lineStyles","lineGroups","groupBy","lineColor","lineColorOpacity","lineSmooth","lineWidth","dashSegment","dashGap","curveType","lineData","areaStyle","areaStyles","areaColor","areaColorOpacity","isSubset","sub","annotationPoint","annotationPointList","markPoint","selectorPoint","textColor","textFontSize","textFontWeight","textAlign","textBaseline","backgroundBorderColor","backgroundBorderRadius","backgroundBorderWidth","backgroundPadding","backgroundVisible","offsetX","offsetY","selectedData","data","targetDatum","annotationVerticalLine","annotationVerticalLineList","positionMap","markLine","xValue","textPosition","lineVisible","generateOneMarkLine","isArray","isString","isNumber","xValueArr","specMarkLine","newMarkLine","annotationHorizontalLine","yValue","yValueArr","annotationArea","annotationAreaList","markArea","outerPadding","areaBorderColor","areaBorderRadius","areaBorderWidth","positionData","xyList","yAxisHelper","xAxisHelper","yScale","minX","maxX","minY","maxY","xScale","annotationAreaBand","depth","xBandWidth","yBandWidth","verticalCrosshairLine","labelColor","labelVisible","labelBackgroundColor","crosshair","verticalCrosshairRect","rectColor","horizontalCrosshairRect","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","buildSpec","build","Builder","advanced","themeKey","registerColumn","registerBar","registerLine","registerArea","registerAreaPercent","registerBarPercent","registerColumnPercent","registerColumnParallel","registerBarParallel","registerPie","lightTheme","barBandAxis","crosshairLine","crosshairRect","darkTheme","registerCustomTheme","themeConfig","registerLightTheme","registerDarkTheme","registerAll","zChartType","z","zDatum","zDataset","zDimension","zDimensions","zNumFormat","zMeasure","zMeasureGroup","zMeasures","zFoldInfo","zUnfoldInfo","zDatasetReshapeInfo","zEncoding","zBackgroundColor","zLabel","zColor","zTooltip","zLegend","zVChartBaseConfig","zVTableBaseConfig","zBaseConfig","zAxis","zXBandAxis","zYBandAxis","zXLinearAxis","zYLinearAxis","zCrosshairLine","zCrosshairRect","zStackCornerRadius","zConfig","zSelector","zSelectors","zAnnotationPoint","zAnnotationVerticalLine","zAnnotationHorizontalLine","zAnnotationArea","zAnnotation","zBarStyle","zPointStyle","zLineStyle","zAreaStyle","zMarkStyle","zCustomThemeConfig","zCustomTheme","zTheme"],"mappings":"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CAQ;IACAkB;IACAmB;IACAc;IACAG;CACD;AAED,MAAM6B,YAA0B;IAC9B3L;IACA+D;IACAF;IACAxE;IACAiE,gBAAgB;QACdzD;QACApD;QACAqF;QACAtC;QACAS;QACAyB;QACAvB;QACA8B;QACAkJ;QACAnF;QACAQ;QACAkB;QACAmB;QACAc;QACAG;KACD;IACDzF;IACAH;IACAhB;CACD;AAEM,MAAM0I,mBAAiC;IAACvN,0BAAakC,WAAMoL;CAAW;AC7C7E,MAAME,SAAuB;IAC3BpM;IACAoC;IACAD;IACAnF;IACAqF;IACA5J;IACA+H;IACAyB;IACAvB;IACA8B;IACAuJ;IACAlJ;IACA8C;IACAsC;IACAmB;IACAc;IACAoB;CACD;AAED,MAAMe,cAA4B;IAChC9L;IACA+D;IACAF;IACAxE;IACAiE,gBAAgB;QACd7D;QACAoC;QACAD;QACAnF;QACAqF;QACAtC;QACAS;QACAyB;QACAvB;QACA8B;QACAuJ;QACApG;QACAsC;QACAmB;QACAc;QACAoB;KACD;IACD1G;IACAH;IACAhB;CACD;AAEM,MAAM6I,qBAAqB;IAAC1N,0BAAawN,QAAQC;CAAa;ACjDrE,MAAME,iBAA+B;IACnClM;IACA+B;IACApF;IACAqF;IACA5J;IACA+H;IACAyB;IACAvB;IACA8B;IACAK;IACAkJ;IACApG;IACAsC;IACAmB;IACAc;IACAoB;CACD;AAED,MAAMkB,sBAAoC;IACxCjM;IACA+D;IACAF;IACAxE;IACAiE,gBAAgB;QACdxD;QACA+B;QACApF;QACAqF;QACAtC;QACAS;QACAyB;QACAvB;QACA8B;QACAuJ;QACApG;QACAsC;QACAmB;QACAc;QACAoB;KACD;IACD1G;IACAH;IACAhB;CACD;AAEM,MAAMgJ,6BAA2C;IAAC7N,0BAAa2N,gBAAgBC;CAAqB;AC5C3G,MAAME,gBAA8B;IAClC1M;IACAoC;IACAD;IACAnF;IACAqF;IACAH;IACAzJ;IACA+H;IACAyB;IACAvB;IACA8B;IACAuJ;IACAlJ;IACA8C;IACAsC;IACAmB;IACAc;IACAoB;CACD;AAED,MAAMqB,qBAAmC;IACvCpM;IACA+D;IACAF;IACAxE;IACAiE,gBAAgB;QACd7D;QACAoC;QACAD;QACAnF;QACAkF;QACAG;QACAtC;QACAS;QACAyB;QACAvB;QACA8B;QACAuJ;QACApG;QACAsC;QACAmB;QACAc;QACAoB;KACD;IACD1G;IACAH;IACAhB;CACD;AAEM,MAAMmJ,4BAA0C;IAAChO,0BAAa8N,eAAeC;CAAoB;ACpDxG,MAAME,MAAoB;IACxB5M;IACAmC;IACApF;IACAqF;IACA5J;IACAgJ;IACAO;IACAtB;IACA8B;IACAyJ;IACApJ;IACA8C;IACAsC;IACAmB;IACAc;IACAoB;CACD;AAED,MAAMwB,WAAyB;IAC7BvM;IACA+D;IACAD;IACAzE;IACAiE,gBAAgB;QACd5D;QACAmC;QACApF;QACAqF;QACAtC;QACAiC;QACAtB;QACAA;QACA8B;QACAyJ;QACAtG;QACAsC;QACAmB;QACAc;QACAoB;KACD;IACD1G;IACAH;IACAhB;CACD;AAEM,MAAMsJ,kBAAgC;IAACnO,0BAAaiO,KAAKC;CAAU;AC9C1E,MAAME,cAA4B;IAChC9M;IACAkC;IACApF;IACAqF;IACA5J;IACAgJ;IACAO;IACAtB;IACA8B;IACAyJ;IACApJ;IACA8C;IACAsC;IACAmB;IACAc;IACAoB;CACD;AAED,MAAM2B,mBAAiC;IACrC1M;IACA+D;IACAD;IACAzE;IACAiE,gBAAgB;QACd3D;QACAkC;QACApF;QACAqF;QACAtC;QACAiC;QACAP;QACAf;QACA8B;QACAyJ;QACAtG;QACAsC;QACAmB;QACAc;QACAoB;KACD;IACD1G;IACAH;IACAhB;CACD;AAEM,MAAMyJ,0BAAwC;IAACtO,0BAAaoO,aAAaC;CAAkB;AC7ClG,MAAME,aAA2B;IAC/BlN;IACAmC;IACApF;IACAqF;IACAH;IACAzJ;IACAgJ;IACAO;IACAtB;IACA8B;IACAyJ;IACApJ;IACA8C;IACAsC;IACAmB;IACAc;IACAoB;CACD;AAED,MAAM8B,kBAAgC;IACpC7M;IACA+D;IACAD;IACAzE;IACAiE,gBAAgB;QACd5D;QACAmC;QACApF;QACAqF;QACAH;QACAnC;QACAiC;QACAP;QACAf;QACA8B;QACAyJ;QACAtG;QACAsC;QACAmB;QACAc;QACAoB;KACD;IACD1G;IACAH;IACAhB;CACD;AAEM,MAAM4J,yBAAuC;IAACzO,0BAAauO,YAAYC;CAAiB;AC/C/F,MAAME,YAAqB;IACzBnN;IACAgC;IACAnF;IACAqF;IACA5J;IACA+H;IACAyB;IACAvB;IACA8B;IACAkJ;IACA7I;IACA0D;IACAQ;IACAY;IACAM;IACAmB;IACAc;IACAG;CACD;AAED,MAAMkD,YAA0B;IAC9BhN;IACA+D;IACAF;IACAxE;IACAiE,gBAAgB;QACd1D;QACAnD;QACAqF;QACAF;QACApC;QACAS;QACAyB;QACAvB;QACA8B;QACAkJ;QACAnF;QACAQ;QACAY;QACAM;QACAmB;QACAc;QACAG;KACD;IACDzF;IACAH;IACAhB;CACD;AAEM,MAAM+J,mBAAmB;IAAC5O,0BAAa0O,WAAMC;CAAW;ACjD/D,MAAME,cAA4B;IAChCtN;IACAgC;IACAnF;IACAqF;IACAH;IACAzJ;IACA+H;IACAyB;IACAvB;IACA8B;IACAkJ;IACA7I;IACA0D;IACAQ;IACAY;IACAM;IACAmB;IACAc;IACAG;CACD;AAED,MAAMqD,mBAAiC;IACrCnN;IAEA+D;IACAF;IACAxE;IACAiE,gBAAgB;QACd1D;QACAgC;QACAnF;QACAqF;QACAH;QACAnC;QACAS;QACAyB;QACAvB;QACA8B;QACAkJ;QACAnF;QACAQ;QACAY;QACAM;QACAmB;QACAc;QACAG;KACD;IACDzF;IACAH;IACAhB;CACD;AAEM,MAAMkK,0BAA0B;IAAC/O,0BAAa6O,aAAaC;CAAkB;AC7DpF,MAAME,MAAoB;IACxBtN;IACAtD;IACAqF;IACA5J;IACAiI;IACA8B;IACAK;IACAoF;IACAmB;IACAc;IACAG;CACD;AAED,MAAMwD,WAAyB;IAC7BtN;IACA+D;IACAF;IACAxE;IACAiE,gBAAgB;QACdvD;QACAtD;QACAqF;QACAtC;QACAW;QACA8B;QACAyF;QACAmB;QACAc;QACAG;KACD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"}
1
+ {"version":3,"file":"index.cjs","sources":["webpack://@visactor/vseed/webpack/runtime/define_property_getters","webpack://@visactor/vseed/webpack/runtime/has_own_property","webpack://@visactor/vseed/webpack/runtime/make_namespace_object","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/i18n/i18n.ts","webpack://@visactor/vseed/./src/pipeline/utils/format/createNumFormatter.ts","webpack://@visactor/vseed/./src/pipeline/utils/format/createFormatter.ts","webpack://@visactor/vseed/./src/pipeline/utils/measures/findMeasureById.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/pipes/markStyle/markStyle.ts","webpack://@visactor/vseed/./src/pipeline/advanced/pipes/annotation/annotation.ts","webpack://@visactor/vseed/./src/pipeline/advanced/pipes/i18n/locale.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/constant.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/stack/stackCornerRadius.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/discreteLegend.ts","webpack://@visactor/vseed/./src/pipeline/spec/pipes/legend/pivotDiscreteLegend.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/dataSelector/selector.ts","webpack://@visactor/vseed/./src/pipeline/spec/pipes/markStyle/barStyle.ts","webpack://@visactor/vseed/./src/pipeline/spec/pipes/markStyle/pointStyle.ts","webpack://@visactor/vseed/./src/pipeline/spec/pipes/markStyle/lineStyle.ts","webpack://@visactor/vseed/./src/pipeline/spec/pipes/markStyle/areaStyle.ts","webpack://@visactor/vseed/./src/pipeline/spec/pipes/annotation/utils.ts","webpack://@visactor/vseed/./src/pipeline/spec/pipes/annotation/annotationPoint.ts","webpack://@visactor/vseed/./src/pipeline/spec/pipes/annotation/annotationVerticalLine.ts","webpack://@visactor/vseed/./src/pipeline/spec/pipes/annotation/annotationHorizontalLine.ts","webpack://@visactor/vseed/./src/pipeline/spec/pipes/annotation/annotationArea.ts","webpack://@visactor/vseed/./src/pipeline/spec/pipes/annotation/annotationAreaBand.ts","webpack://@visactor/vseed/./src/pipeline/spec/pipes/crosshair/verticalCrosshairLine.ts","webpack://@visactor/vseed/./src/pipeline/spec/pipes/crosshair/verticalCrosshairRect.ts","webpack://@visactor/vseed/./src/pipeline/spec/pipes/crosshair/horizontalCrosshairRect.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/light.ts","webpack://@visactor/vseed/./src/theme/dark.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/format/numFormat.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/crosshair.ts","webpack://@visactor/vseed/./src/types/properties/config/stackCornerRadius.ts","webpack://@visactor/vseed/./src/types/properties/config/config.ts","webpack://@visactor/vseed/./src/types/dataSelector/selector.ts","webpack://@visactor/vseed/./src/types/properties/annotation/annotationPoint.ts","webpack://@visactor/vseed/./src/types/properties/annotation/annotationVerticalLine.ts","webpack://@visactor/vseed/./src/types/properties/annotation/annotationHorizontalLine.ts","webpack://@visactor/vseed/./src/types/properties/annotation/annotationArea.ts","webpack://@visactor/vseed/./src/types/properties/annotation/annotation.ts","webpack://@visactor/vseed/./src/types/properties/markStyle/barStyle.ts","webpack://@visactor/vseed/./src/types/properties/markStyle/pointStyle.ts","webpack://@visactor/vseed/./src/types/properties/markStyle/lineStyle.ts","webpack://@visactor/vseed/./src/types/properties/markStyle/areaStyle.ts","webpack://@visactor/vseed/./src/types/properties/markStyle/markStyle.ts","webpack://@visactor/vseed/./src/types/properties/theme/customTheme.ts","webpack://@visactor/vseed/./src/types/properties/theme/theme.ts"],"sourcesContent":["__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n }\n }\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\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 { isNullish } from 'remeda'\nimport translateMap from './i18n.json'\nimport type { Locale, TranslateRecordType } from '../types'\n\nclass Intl {\n private static instance: Intl\n\n private translateMap: TranslateRecordType = translateMap as unknown as TranslateRecordType\n private locale: Locale = 'zh-CN'\n\n canTranslate = (value: string) => !!this.translateMap[value]\n\n /**\n * @example i18n`指标名称`\n */\n i18n = (segments: TemplateStringsArray, ...values: Array<number | string>) => {\n const text = segments.map((segment, index) => segment + (values[index] || '')).join('')\n\n const translatedText = this.translateMap?.[text]?.[this.locale]\n if (isNullish(translatedText)) {\n console.warn(`i18n ${this.locale} no translate: ${text}`)\n return text\n }\n return translatedText\n }\n\n setLocale = (locale: Locale): void => {\n this.locale = locale\n }\n\n getLocale: () => Locale = () => this.locale\n\n public static getInstance() {\n if (!Intl.instance) {\n Intl.instance = new Intl()\n }\n\n return Intl.instance\n }\n}\n\nconst intl = Intl.getInstance()\n\nconst i18n = intl.i18n\n\nexport { intl, i18n }\n","import { intl } from '../../../i18n'\nimport type { Formatter, Locale, NumFormat } from 'src/types'\n\nexport const createNumFormatter = (format: NumFormat): Formatter => {\n const {\n type = 'number',\n ratio = 1,\n symbol = '',\n thousandSeparator = true,\n decimalPlaces = 2,\n round = 'round',\n prefix = '',\n suffix = '',\n } = format || {}\n\n return (value?: number | string) => {\n let num = Number(value)\n let typeSymbol = ''\n if (Number.isNaN(num)) {\n return num.toString()\n }\n\n // apply ratio for percent/permille\n if (type === 'percent') {\n num *= 100\n typeSymbol = '%'\n } else if (type === 'permille') {\n num *= 1000\n typeSymbol = '‰'\n } else if (type === 'number') {\n num = num / (ratio || 1)\n }\n\n // rounding\n const multiplier = 10 ** decimalPlaces\n num = Math[round](num * multiplier) / multiplier\n\n let numStr = num.toFixed(decimalPlaces)\n\n // add thousand separator\n if (thousandSeparator) {\n const parts = numStr.split('.')\n parts[0] = parts[0].replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',')\n numStr = parts.join('.')\n }\n\n // add symbol, typeSymbol, prefix and suffix\n return `${prefix}${numStr}${typeSymbol}${symbol}${suffix}`\n }\n}\n\nexport const autoNumFormatter = (value?: number | string, locale: Locale = intl.getLocale()): string => {\n if (value === undefined || value === null) return String(value)\n const num = Number(value)\n if (Number.isNaN(num)) return String(value)\n\n const countDecimalPlaces = (num: number) => {\n if (Number.isInteger(num)) return 0\n\n const str = num.toString()\n if (str.indexOf('e-') > -1) {\n return parseInt(str.split('e-')[1])\n }\n\n const decimalPart = str.split('.')[1]\n if (!decimalPart) return 0\n\n const decimalPlaces = decimalPart.replace(/0+$/, '').length\n return Math.max(2, decimalPlaces)\n }\n\n const numFormat: NumFormat = {\n type: 'number',\n decimalPlaces: countDecimalPlaces(num),\n round: 'round',\n thousandSeparator: true,\n }\n\n const rules = NUMBER_FORMAT_RULES[locale] || NUMBER_FORMAT_RULES['default']\n\n for (const rule of rules) {\n if (num >= rule.threshold) {\n numFormat.ratio = rule.ratio\n numFormat.symbol = rule.symbol\n break // 使用第一个匹配的规则\n }\n }\n\n return createNumFormatter(numFormat)(value)\n}\n\nconst NUMBER_FORMAT_RULES = {\n 'zh-CN': [\n { threshold: 100000000, ratio: 100000000, symbol: '亿' },\n { threshold: 10000, ratio: 10000, symbol: '万' },\n ],\n 'en-US': [\n { threshold: 1000000000, ratio: 1000000000, symbol: 'B' },\n { threshold: 1000000, ratio: 1000000, symbol: 'M' },\n { threshold: 1000, ratio: 1000, symbol: 'K' },\n ],\n default: [\n { threshold: 1000000000, ratio: 1000000000, symbol: 'B' },\n { threshold: 1000000, ratio: 1000000, symbol: 'M' },\n { threshold: 1000, ratio: 1000, symbol: 'K' },\n ],\n}\n","import type { Formatter, Locale, NumFormat } from 'src/types'\nimport { autoNumFormatter, createNumFormatter } from './createNumFormatter'\n\nexport const createFormatter = (format: Partial<NumFormat>): Formatter => {\n return createNumFormatter(format)\n}\n\nexport const autoFormatter = (value?: number | string, locale?: Locale): string => {\n return autoNumFormatter(value, locale)\n}\n","import type { Measure, MeasureGroup, Measures } from 'src/types'\n\nexport function findMeasureById(measures: Measures, id: string): Measure | undefined {\n if (!measures) return undefined\n\n // Use a stack to avoid recursion\n const stack: (Measure | MeasureGroup)[] = [...measures]\n\n while (stack.length > 0) {\n const current = stack.pop()\n\n if (!current) continue\n\n // Check if current item matches the ID\n if (current.id === id && !('children' in current)) {\n return current\n }\n\n // If it's a group with children, add them to the stack\n if ('children' in current && current.children) {\n stack.push(...current.children)\n }\n }\n\n return undefined\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.alias = currentGroup.children.map((item) => item.alias).join('-')\n currentGroup.id = currentGroup.alias + currentGroup.children.map((item) => item.id).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.alias = currentGroup.children.map((item) => item.alias).join('-')\n currentGroup.id = currentGroup.alias + currentGroup.children.map((item) => item.id).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__'\nexport const UnfoldDimensionGroupId = '__DimGroupID__'\n\nexport const Separator = '-'\n\nexport const ORIGINAL_DATA = '__OriginalData__'\n","import type { Dataset, Datum, Dimension, Measure } from 'src/types'\nimport type { UnfoldInfo } from 'src/types'\nimport { UnfoldDimensionGroup, Separator, UnfoldDimensionGroupId, FoldMeasureId } 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 unfoldGroupName: string = UnfoldDimensionGroup,\n unfoldGroupId: string = UnfoldDimensionGroupId,\n foldMeasureId: string = FoldMeasureId,\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: unfoldGroupName,\n groupId: unfoldGroupId,\n colorItems: [],\n colorIdMap: {},\n }\n\n // 指标为空或维度为空, 则不检测\n if (dimensions.length === 0 || measures.length === 0) {\n return {\n dataset,\n unfoldInfo: {\n groupName: unfoldGroupName,\n groupId: unfoldGroupId,\n colorItems: [],\n colorIdMap: {},\n },\n }\n }\n\n const colorItems = []\n const colorMap: Record<string, string> = {}\n for (let i = 0; i < dataset.length; i++) {\n const datum = dataset[i]\n const colorName = generateDimGroupName(dimensionsToBeUnfolded, datum, dimensionsSeparator)\n const colorId = colorName + ((datum[foldMeasureId] as string) || '')\n datum[unfoldGroupName] = colorName\n datum[unfoldGroupId] = colorId\n colorItems.push(colorId)\n colorMap[colorId] = colorName\n }\n\n unfoldInfo.colorItems = unique(colorItems)\n unfoldInfo.colorIdMap = colorMap\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, ORIGINAL_DATA } from './constant'\nimport { omit } from 'remeda'\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 const ids = measures.map((d) => d.id)\n for (let i = 0; i < dataset.length; i++) {\n for (let j = 0; j < measures.length; j++) {\n const datum: Record<string, any> = omit({ ...dataset[i] }, ids)\n\n datum[ORIGINAL_DATA] = dataset[i]\n\n const measure = measures[j]\n const { id, alias } = measure\n\n datum[id] = dataset[i][id] as unknown\n datum[measureId] = id\n datum[measureName] = alias || id\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 {\n UnfoldDimensionGroup,\n FoldMeasureId,\n FoldMeasureName,\n FoldMeasureValue,\n UnfoldDimensionGroupId,\n} from './constant'\nimport { unfoldDimensions } from './unfoldDimensions'\nimport { i18n } from '../i18n'\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 groupName: '',\n groupId: '',\n colorItems: [],\n colorIdMap: {},\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 unfoldDimensionGroupId?: 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 unfoldDimensionGroupId = UnfoldDimensionGroupId,\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: i18n`指标Id`, location: 'dimension' },\n { id: foldMeasureName, alias: i18n`指标名称`, location: 'dimension' },\n ],\n [{ id: foldMeasureValue, alias: i18n`指标值` }],\n 1,\n unfoldDimensionGroup,\n unfoldDimensionGroupId,\n foldMeasureId,\n )\n return { dataset: finalDataset, foldInfo, unfoldInfo }\n } else {\n // 展开指定的维度为指标\n const { dataset: finalDataset, unfoldInfo } = unfoldDimensions(\n foldedDataset,\n [...dimensions, { id: foldMeasureName, alias: i18n`指标名称`, location: 'dimension' }],\n [{ id: foldMeasureValue, alias: i18n`指标值` }],\n 1,\n unfoldDimensionGroup,\n unfoldDimensionGroupId,\n foldMeasureId,\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 {\n UnfoldDimensionGroup,\n FoldMeasureId,\n FoldMeasureName,\n FoldMeasureValue,\n UnfoldDimensionGroupId,\n} from './constant'\nimport { unfoldDimensions } from './unfoldDimensions'\nimport { i18n } from '../i18n'\n\nconst emptyReshapeResult = {\n dataset: [],\n foldInfo: {\n foldMap: {},\n measureId: '',\n measureName: '',\n measureValue: '',\n },\n unfoldInfo: {\n groupName: '',\n groupId: '',\n colorItems: [],\n colorIdMap: {},\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 unfoldDimensionGroupId?: 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 unfoldDimensionGroupId = UnfoldDimensionGroupId,\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: i18n`指标名称`, location: 'dimension' }],\n [{ id: foldMeasureValue, alias: i18n`指标值` }],\n 0,\n unfoldDimensionGroup,\n unfoldDimensionGroupId,\n foldMeasureId,\n )\n return { dataset: finalDataset, foldInfo, unfoldInfo }\n } else {\n // 展开指定的维度为指标\n const { dataset: finalDataset, unfoldInfo } = unfoldDimensions(\n foldedDataset,\n [...dimensions, { id: foldMeasureName, alias: i18n`指标名称`, location: 'dimension' }],\n [{ id: foldMeasureValue, alias: i18n`指标值` }],\n 0,\n unfoldDimensionGroup,\n unfoldDimensionGroupId,\n foldMeasureId,\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 isZeroDimension = dimensions.length === 0\n const x = [isZeroDimension ? foldInfo.measureName : dimensions[0].id]\n const y = [foldInfo.measureValue]\n const group = [unfoldInfo.groupId]\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 isZeroDimension = dimensions.length === 0\n const y = [isZeroDimension ? foldInfo.measureName : dimensions[0].id]\n const x = [foldInfo.measureValue]\n const group = [unfoldInfo.groupId]\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.groupId]\n const group = [unfoldInfo.groupId]\n const color = [unfoldInfo.groupId]\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', 'crosshairLine']) 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 columnConfig: 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', 'crosshairRect', 'stackCornerRadius']) as Config['column']\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 areaConfig: AdvancedPipe = lineConfig\nexport const areaPercentConfig: AdvancedPipe = lineConfig\n\nexport const barConfig: AdvancedPipe = columnConfig\nexport const barParallelConfig: AdvancedPipe = columnConfig\nexport const barPercentConfig: AdvancedPipe = columnConfig\nexport const columnParallelConfig: AdvancedPipe = columnConfig\nexport const columnPercentConfig: AdvancedPipe = columnConfig\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 { pick } from 'remeda'\nimport type { AdvancedPipe, AdvancedVSeed } from 'src/types'\n\nexport const markStyle: AdvancedPipe = (advancedVSeed, context) => {\n const { vseed } = context\n\n const markStyle = pick(vseed, ['barStyle', 'pointStyle', 'lineStyle', 'areaStyle']) as AdvancedVSeed['markStyle']\n\n return { ...advancedVSeed, markStyle }\n}\n","import { pick } from 'remeda'\nimport type { AdvancedPipe, AdvancedVSeed } from 'src/types'\n\nexport const annotation: AdvancedPipe = (advancedVSeed, context) => {\n const { vseed } = context\n\n const annotation = pick(vseed, [\n 'annotationPoint',\n 'annotationHorizontalLine',\n 'annotationVerticalLine',\n 'annotationArea',\n ]) as AdvancedVSeed['annotation']\n\n return { ...advancedVSeed, annotation }\n}\n","import type { AdvancedPipe } from 'src/types'\n\nexport const locale: AdvancedPipe = (advancedVSeed, context) => {\n const { vseed } = context\n const { locale } = vseed\n\n return {\n ...advancedVSeed,\n locale: locale || 'zh-CN',\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 annotation,\n markStyle,\n locale,\n} from '../pipes'\n\nexport const lineAdvancedPipeline: AdvancedPipeline = [\n initAdvancedVSeed,\n locale,\n autoMeasures,\n autoDimensions,\n pivotAdapter([reshapeTo2D1M], [pivotReshapeTo2D1M]),\n encodingXY,\n vchartBaseConfig,\n lineConfig,\n vchartTheme,\n markStyle,\n annotation\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 markStyle,\n annotation,\n locale,\n} from '../pipes'\n\nexport const barAdvancedPipeline: AdvancedPipeline = [\n initAdvancedVSeed,\n locale,\n autoMeasures,\n autoDimensions,\n pivotAdapter([reshapeTo2D1M], [pivotReshapeTo2D1M]),\n encodingYX,\n barConfig,\n vchartBaseConfig,\n vchartTheme,\n markStyle,\n annotation,\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 markStyle,\n annotation,\n locale,\n} from '../pipes'\n\nexport const barParallelAdvancedPipeline: AdvancedPipeline = [\n initAdvancedVSeed,\n locale,\n autoMeasures,\n autoDimensions,\n pivotAdapter([reshapeTo2D1M], [pivotReshapeTo2D1M]),\n encodingYX,\n barParallelConfig,\n vchartBaseConfig,\n vchartTheme,\n markStyle,\n annotation,\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 markStyle,\n annotation,\n locale,\n} from '../pipes'\n\nexport const barPercentAdvancedPipeline: AdvancedPipeline = [\n initAdvancedVSeed,\n locale,\n autoMeasures,\n autoDimensions,\n pivotAdapter([reshapeTo2D1M], [pivotReshapeTo2D1M]),\n encodingYX,\n barPercentConfig,\n vchartBaseConfig,\n vchartTheme,\n markStyle,\n annotation,\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 markStyle,\n annotation,\n locale,\n} from '../pipes'\nimport { pivotReshapeTo2D1M } from '../pipes/reshape/pivotReshapeTo2D1M'\n\nexport const columnAdvancedPipeline: AdvancedPipeline = [\n initAdvancedVSeed,\n locale,\n autoMeasures,\n autoDimensions,\n pivotAdapter([reshapeTo2D1M], [pivotReshapeTo2D1M]),\n encodingXY,\n columnConfig,\n vchartBaseConfig,\n vchartTheme,\n markStyle,\n annotation,\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 markStyle,\n annotation,\n locale,\n} from '../pipes'\n\nexport const columnParallelAdvancedPipeline: AdvancedPipeline = [\n initAdvancedVSeed,\n locale,\n autoMeasures,\n autoDimensions,\n pivotAdapter([reshapeTo2D1M], [pivotReshapeTo2D1M]),\n encodingXY,\n columnParallelConfig,\n vchartBaseConfig,\n vchartTheme,\n markStyle,\n annotation,\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 markStyle,\n annotation,\n locale,\n} from '../pipes'\n\nexport const columnPercentAdvancedPipeline: AdvancedPipeline = [\n initAdvancedVSeed,\n locale,\n autoMeasures,\n autoDimensions,\n pivotAdapter([reshapeTo2D1M], [pivotReshapeTo2D1M]),\n encodingXY,\n columnPercentConfig,\n vchartBaseConfig,\n vchartTheme,\n markStyle,\n annotation,\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 annotation,\n markStyle,\n locale,\n} from '../pipes'\n\nexport const areaAdvancedPipeline: AdvancedPipeline = [\n initAdvancedVSeed,\n locale,\n autoMeasures,\n autoDimensions,\n pivotAdapter([reshapeTo2D1M], [pivotReshapeTo2D1M]),\n encodingXY,\n areaConfig,\n vchartBaseConfig,\n vchartTheme,\n markStyle,\n annotation,\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 annotation,\n markStyle,\n locale,\n} from '../pipes'\n\nexport const areaPercentAdvancedPipeline: AdvancedPipeline = [\n initAdvancedVSeed,\n locale,\n autoMeasures,\n autoDimensions,\n pivotAdapter([reshapeTo2D1M], [pivotReshapeTo2D1M]),\n encodingXY,\n areaPercentConfig,\n vchartBaseConfig,\n vchartTheme,\n markStyle,\n annotation\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 annotation,\n locale,\n} from '../pipes'\n\nexport const pieAdvancedPipeline: AdvancedPipeline = [\n initAdvancedVSeed,\n locale,\n autoMeasures,\n autoDimensions,\n pivotAdapter([reshapeTo1D1M], [pivotReshapeTo1D1M]),\n encodingPolar,\n pieConfig,\n vchartBaseConfig,\n vchartTheme,\n annotation\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 paddingInner: [0.15, 0.1],\n paddingOuter: [0.075, 0.1],\n } as ICartesianBandAxisSpec\n\n result.axes = [...result.axes, bandAxis] as ISpec['axes']\n return result\n}\n","// 标注层 z-index \nexport const ANNOTATION_Z_INDEX = 1000\n// 线性轴 顶部空隙 预留5px\nexport const LINEAR_AXIS_INNER_OFFSET_TOP = 7","import type { ISpec } from '@visactor/vchart'\nimport { LINEAR_AXIS_INNER_OFFSET_TOP } from '../../../constant'\nimport type { SpecPipe, XLinearAxis } from 'src/types'\nimport { autoFormatter } from '../../../utils'\n\nexport const xLinear: SpecPipe = (spec, context) => {\n const result = { ...spec } as ISpec\n const { advancedVSeed, vseed } = context\n const { chartType } = vseed\n const { locale } = advancedVSeed\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 formatMethod: (value: string) => {\n return autoFormatter(value, locale)\n },\n style: {\n fill: label?.labelColor,\n angle: label?.labelAngle,\n fontSize: label?.labelFontSize,\n fontWeight: label?.labelFontWeight,\n },\n },\n title: {\n visible: title?.visible,\n text: title?.titleText,\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 innerOffset: {\n top: LINEAR_AXIS_INNER_OFFSET_TOP,\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 paddingInner: [0.15, 0.1],\n paddingOuter: [0.075, 0.1],\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 { LINEAR_AXIS_INNER_OFFSET_TOP } from '../../../constant'\nimport { autoFormatter } from '../../../utils'\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 { locale } = advancedVSeed\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 formatMethod: (value: string) => {\n return autoFormatter(value, locale)\n },\n style: {\n fill: label?.labelColor,\n angle: label?.labelAngle,\n fontSize: label?.labelFontSize,\n fontWeight: label?.labelFontWeight,\n },\n },\n title: {\n visible: title?.visible,\n text: title?.titleText,\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 innerOffset: {\n top: LINEAR_AXIS_INNER_OFFSET_TOP,\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 type { IAreaChartSpec, IBarChartSpec } from '@visactor/vchart'\nimport type { SpecPipe } from 'src/types'\n\nexport const stackInverse: SpecPipe = (spec) => {\n const result = { ...spec } as IAreaChartSpec | IBarChartSpec\n result.stackInverse = true\n return result\n}\n","import type { SpecPipe, StackCornerRadius } from 'src/types'\n\nexport const stackCornerRadius: SpecPipe = (spec, context) => {\n const { advancedVSeed, vseed } = context\n const { chartType } = vseed\n const stackCornerRadius = advancedVSeed.config?.[chartType as 'column']?.stackCornerRadius as StackCornerRadius\n\n return {\n ...spec,\n stackCornerRadius,\n }\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 { isEmpty } from 'remeda'\nimport { autoFormatter, createFormatter, findMeasureById } from '../../../utils'\nimport 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 { measures, datasetReshapeInfo } = advancedVSeed\n const baseConfig = advancedVSeed.baseConfig.vchart as { tooltip: Tooltip }\n const { tooltip = defaultTooltip } = baseConfig\n const { enable } = tooltip\n\n const { measureId, measureName, measureValue } = datasetReshapeInfo[0].foldInfo\n result.tooltip = {\n visible: enable,\n mark: {\n content: [\n {\n visible: true,\n key: (datum) => (datum && (datum[measureName] as string)) || '',\n value: (datum) => {\n if (!datum) {\n return ''\n }\n const value = datum[measureValue] as string | number\n const id = datum[measureId] as string\n const measure = findMeasureById(measures, id)\n if (!measure) {\n return String(value)\n }\n\n const { format = {}, autoFormat = true } = measure\n\n if (!isEmpty(format)) {\n const formatter = createFormatter(format)\n return formatter(value)\n }\n if (autoFormat) {\n return autoFormatter(value)\n }\n return String(value)\n },\n },\n ],\n },\n dimension: {\n content: [\n {\n visible: true,\n key: (datum) => (datum && (datum[measureName] as string)) || '',\n value: (datum) => {\n if (!datum) {\n return ''\n }\n const value = datum[measureValue] as string | number\n const id = datum[measureId] as string\n const measure = findMeasureById(measures, id)\n if (!measure) {\n return String(value)\n }\n\n const { format = {}, autoFormat = true } = measure\n\n if (!isEmpty(format)) {\n const formatter = createFormatter(format)\n return formatter(value)\n }\n if (autoFormat) {\n return autoFormatter(value)\n }\n return String(value)\n },\n },\n ],\n },\n }\n return result\n}\n","import type { ILineChartSpec } from '@visactor/vchart'\nimport type { ILineLikeLabelSpec } from '@visactor/vchart/esm/series/mixin/interface'\nimport { autoFormatter, createFormatter, findMeasureById } from '../../../utils'\nimport type { Datum, Label, SpecPipe } from 'src/types'\nimport { isEmpty } from 'remeda'\n\nexport const label: SpecPipe = (spec, context) => {\n const result = { ...spec } as ILineChartSpec\n const { advancedVSeed } = context\n const { measures, datasetReshapeInfo, locale } = advancedVSeed\n const baseConfig = advancedVSeed.baseConfig.vchart\n\n if (!baseConfig || !baseConfig.label) {\n return result\n }\n\n const { measureId, measureValue } = datasetReshapeInfo[0].foldInfo\n // const { groupId, groupName } = datasetReshapeInfo[0].unfoldInfo\n const { label } = baseConfig\n const { enable } = label as Label\n\n result.label = {\n visible: enable,\n formatMethod: (value: string, datum: Datum) => {\n const result = []\n\n const formatValue = (value: number) => {\n const id = datum[measureId] as string\n const measure = findMeasureById(measures, id)\n if (!measure) {\n return value\n }\n\n const { format = {}, autoFormat = true } = measure\n\n if (!isEmpty(format)) {\n const formatter = createFormatter(format)\n return formatter(value)\n }\n if (autoFormat) {\n return autoFormatter(value, locale)\n }\n return String(value)\n }\n\n result.push(formatValue(datum[measureValue] as number))\n\n return result.join(' ')\n },\n } as ILineLikeLabelSpec\n return result\n}\n","import type { StringOrNumber } from '@visactor/vchart'\nimport type { Legend, SpecPipe } from 'src/types'\n\nexport const discreteLegend: SpecPipe = (spec, context) => {\n const result = { ...spec }\n const { advancedVSeed } = context\n const { datasetReshapeInfo } = advancedVSeed\n const { unfoldInfo } = datasetReshapeInfo[0]\n const baseConfig = advancedVSeed.baseConfig.vchart\n if (!baseConfig || !baseConfig.legend) {\n return result\n }\n\n const { legend } = baseConfig\n const {\n enable,\n position = 'bottom',\n labelFontColor,\n labelFontSize = 12,\n labelFontWeight,\n maxSize,\n border,\n shapeType = 'rectRound',\n } = (legend || {}) as Legend\n\n const orient = ['bottom', 'bottomLeft', 'bottomRight', 'bl', 'br'].includes(position)\n ? 'bottom'\n : ['top', 'topLeft', 'topRight', 'tl', 'tr'].includes(position)\n ? 'top'\n : ['left', 'leftTop', 'leftBottom', 'lt', 'lb'].includes(position)\n ? 'left'\n : 'right'\n\n const legendPosition = ['topLeft', 'bottomLeft', 'leftTop', 'rightTop', 'lt', 'rt', 'tl', 'bl'].includes(position)\n ? 'start'\n : ['topRight', 'bottomRight', 'leftBottom', 'rightBottom', 'lb', 'rb', 'rt', 'br'].includes(position)\n ? 'end'\n : 'middle'\n\n result.legends = {\n type: 'discrete',\n visible: enable,\n maxCol: maxSize,\n maxRow: maxSize,\n autoPage: true,\n orient,\n position: legendPosition,\n data: border\n ? (items) => {\n return items.map((item) => {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n item.shape.outerBorder = {\n stroke: item.shape.fill,\n distance: 3,\n lineWidth: 1,\n }\n return item\n })\n }\n : undefined,\n item: {\n focus: true,\n focusIconStyle: {\n size: labelFontSize + 2,\n fill: labelFontColor,\n fontWeight: labelFontWeight,\n },\n shape: {\n space: border ? 6 : 4,\n style: {\n symbolType: shapeType,\n size: border ? 8 : 10,\n },\n },\n label: {\n formatMethod: (value: StringOrNumber) => {\n return unfoldInfo.colorIdMap[String(value)] ?? value\n },\n style: {\n fontSize: labelFontSize,\n fill: labelFontColor,\n fontWeight: labelFontWeight,\n },\n },\n background: {\n state: {\n selectedHover: {\n fill: labelFontColor,\n fillOpacity: 0.05,\n },\n },\n },\n },\n }\n return result\n}\n","import type { StringOrNumber } from '@visactor/vchart'\nimport 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 pivotDiscreteLegend: 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 colorIdMap = datasetReshapeInfo.reduce<Record<string, string>>((prev, cur) => {\n return { ...prev, ...cur.unfoldInfo.colorIdMap }\n }, {})\n\n const { legend, color } = baseConfig\n const { colorScheme } = color as Color\n\n const {\n enable,\n position = 'bottom',\n labelFontColor,\n labelFontSize = 12,\n labelFontWeight,\n maxSize,\n border,\n shapeType = 'rectRound',\n } = (legend || {}) as Legend\n\n const orient = ['bottom', 'bottomLeft', 'bottomRight', 'bl', 'br'].includes(position)\n ? 'bottom'\n : ['top', 'topLeft', 'topRight', 'tl', 'tr'].includes(position)\n ? 'top'\n : ['left', 'leftTop', 'leftBottom', 'lt', 'lb'].includes(position)\n ? 'left'\n : 'right'\n\n const legendPosition = ['topLeft', 'bottomLeft', 'leftTop', 'rightTop', 'lt', 'rt', 'tl', 'bl'].includes(position)\n ? 'start'\n : ['topRight', 'bottomRight', 'leftBottom', 'rightBottom', 'lb', 'rb', 'rt', 'br'].includes(position)\n ? 'end'\n : 'middle'\n\n const legends: IDiscreteTableLegendOption = {\n visible: enable,\n type: 'discrete',\n orient,\n position: legendPosition,\n maxCol: maxSize,\n maxRow: maxSize,\n data: colorItems.map((d, index) => ({\n label: d,\n shape: {\n outerBorder: border\n ? {\n stroke: colorScheme[index],\n distance: 3,\n lineWidth: 1,\n }\n : undefined,\n fill: colorScheme[index],\n },\n })),\n\n item: {\n focus: true,\n focusIconStyle: {\n size: labelFontSize + 2,\n fill: labelFontColor,\n fontWeight: labelFontWeight,\n },\n shape: {\n space: border ? 6 : 4,\n style: {\n symbolType: shapeType,\n size: border ? 8 : 10,\n },\n },\n label: {\n formatMethod: (value: StringOrNumber) => {\n return colorIdMap[String(value)] ?? value\n },\n style: {\n fontSize: labelFontSize,\n fill: labelFontColor,\n fontWeight: labelFontWeight,\n },\n },\n background: {\n state: {\n selectedHover: {\n fill: labelFontColor,\n fillOpacity: 0.05,\n },\n },\n },\n },\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 const mappingList: Array<[string, string]> = []\n if (colorMapping) {\n Object.entries(colorMapping).forEach(([key, value]) => {\n const idMap = Object.entries(unfoldInfo.colorIdMap).filter(([_, v]) => key === v)\n\n for (const [colorId] of idMap) {\n mappingList.push([colorId, value])\n }\n })\n }\n\n result.color = {\n type: 'ordinal',\n domain: unfoldInfo.colorItems,\n range: colorScheme,\n specified: Object.fromEntries(mappingList),\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\n const hoverBackgroundColor = 'rgba(178,186,207, 0.2)'\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 hover: {\n cellBgColor: 'transparent',\n },\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: hoverBackgroundColor,\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: hoverBackgroundColor,\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: hoverBackgroundColor,\n },\n },\n cornerRightTopCellStyle: {\n borderColor: 'rgba(0,4,20,0.2)',\n borderLineWidth: 0,\n bgColor: transparent,\n hover: {\n cellBgColor: hoverBackgroundColor,\n },\n },\n cornerLeftBottomCellStyle: {\n borderColor: 'rgba(0,4,20,0.2)',\n borderLineWidth: 0,\n bgColor: transparent,\n hover: {\n cellBgColor: hoverBackgroundColor,\n },\n },\n cornerRightBottomCellStyle: {\n borderColor: 'rgba(0,4,20,0.2)',\n borderLineWidth: 0,\n bgColor: transparent,\n hover: {\n cellBgColor: hoverBackgroundColor,\n },\n },\n rightFrozenStyle: {\n borderColor: 'rgba(0,4,20,0.2)',\n borderLineWidth: 0,\n bgColor: transparent,\n hover: {\n cellBgColor: hoverBackgroundColor,\n },\n },\n bottomFrozenStyle: {\n borderColor: 'rgba(0,4,20,0.2)',\n borderLineWidth: 0,\n bgColor: transparent,\n hover: {\n cellBgColor: hoverBackgroundColor,\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 { Datum } from 'src/types'\nimport type {\n DimensionSelector,\n MeasureSelector,\n PartialDatumSelector,\n Selector,\n Selectors,\n ValueSelector,\n} from '../types/dataSelector'\nimport { omit } from 'remeda'\n\nexport const selector = (vchartDatum: Datum, selector: Selector | Selectors | undefined | null) => {\n // 无有效选择器, 则认为全部匹配成功\n if (!selector) {\n return true\n }\n\n // 过滤掉 vchart 相关字段\n const vchartKeys = Object.keys(vchartDatum).filter((k) => k.toLocaleLowerCase().startsWith('__vchart'))\n const datum = omit(vchartDatum, vchartKeys) as Datum\n\n // 统一处理选择器为数组\n const selectors = (Array.isArray(selector) ? selector : [selector]) as Selectors\n\n for (const selector of selectors) {\n // 1. 字符串或数字\n if (isValueSelector(selector)) {\n if (Object.values(datum).find((v) => v === selector)) {\n return true\n }\n }\n\n // 2. 指标选择器\n else if (isMeasureSelector(selector)) {\n const op = selector.operator || selector.op\n const selectorValueArr = Array.isArray(selector.value) ? selector.value : [selector.value]\n\n switch (op) {\n case '=':\n case '==':\n if (datum[selector.field] === selectorValueArr[0]) {\n return true\n }\n break\n case '!=':\n if (datum[selector.field] !== selectorValueArr[0]) {\n return true\n }\n break\n case '>':\n if (datum[selector.field] > selectorValueArr[0]) {\n return true\n }\n break\n case '<':\n if (datum[selector.field] < selectorValueArr[0]) {\n return true\n }\n break\n case '>=':\n if (datum[selector.field] >= selectorValueArr[0]) {\n return true\n }\n break\n case '<=':\n if (datum[selector.field] <= selectorValueArr[0]) {\n return true\n }\n break\n case 'between':\n if (\n Array.isArray(selector.value) &&\n datum[selector.field] >= selectorValueArr[0] &&\n datum[selector.field] <= selectorValueArr[1]\n ) {\n return true\n }\n break\n default:\n break\n }\n }\n // 3. 维度选择器\n else if (isDimensionSelector(selector)) {\n const op = selector.operator || selector.op\n const selectorValueArr = Array.isArray(selector.value) ? selector.value : [selector.value]\n switch (op) {\n case 'in':\n if (selectorValueArr.includes(datum[selector.field] as string | number)) {\n return true\n }\n break\n case 'not in':\n if (!selectorValueArr.includes(datum[selector.field] as string | number)) {\n return true\n }\n break\n default:\n break\n }\n }\n // 4. 部分数据对象选择器\n else if (isPartialDatumSelector(selector)) {\n if (Object.keys(selector).every((key) => datum[key] === selector[key])) {\n return true\n }\n }\n }\n\n return false\n}\n\nexport const isValueSelector = (selector: Selector): selector is ValueSelector => {\n return typeof selector === 'string' || typeof selector === 'number'\n}\n\nexport const isPartialDatumSelector = (selector: Selector): selector is PartialDatumSelector => {\n return typeof selector === 'object' && selector !== null\n}\n\nexport const isMeasureSelector = (selector: Selector): selector is MeasureSelector => {\n return (\n typeof selector === 'object' &&\n selector !== null &&\n 'field' in selector &&\n ('operator' in selector || 'op' in selector) &&\n 'value' in selector &&\n (['=', '==', '!=', '>', '<', '>=', '<=', 'between'].includes(selector.operator as string) ||\n ['=', '==', '!=', '>', '<', '>=', '<=', 'between'].includes(selector.op as string))\n )\n}\n\nexport const isDimensionSelector = (selector: Selector): selector is DimensionSelector => {\n return (\n typeof selector === 'object' &&\n selector !== null &&\n 'field' in selector &&\n ('operator' in selector || 'op' in selector) &&\n 'value' in selector &&\n (['in', 'not in'].includes(selector.operator as string) || ['in', 'not in'].includes(selector.op as string))\n )\n}\n","import type { IBarChartSpec } from '@visactor/vchart'\nimport { selector } from '../../../../dataSelector'\nimport type { BarStyle, Datum, SpecPipe } from 'src/types'\nimport type { ISeriesMarkAttributeContext } from '@visactor/vchart/esm/compile/mark'\n\nexport const barStyle: SpecPipe = (spec, context) => {\n const { advancedVSeed } = context\n const { markStyle, encoding } = advancedVSeed\n const { barStyle } = markStyle\n\n const result = {\n ...spec,\n bar: {\n state: {\n hover: {\n stroke: (datum, context: ISeriesMarkAttributeContext) => {\n const field = encoding[0]?.group?.[0] as string\n const color = context.seriesColor(datum[field] as string)\n return color\n },\n lineWidth: 4,\n fillOpacity: 0.6,\n },\n },\n },\n } as IBarChartSpec\n\n if (!barStyle) {\n return result\n }\n\n const barStyles = (Array.isArray(barStyle) ? barStyle : [barStyle]) as BarStyle[]\n\n const customMap = barStyles.reduce<object>((result, style, index) => {\n const { barBorderColor, barBorderStyle, barBorderWidth, barColor, barColorOpacity, barRadius } = style\n\n const lineDash = barBorderStyle === 'dashed' ? [5, 2] : barBorderStyle === 'dotted' ? [2, 5] : [0, 0]\n return {\n ...result,\n [`custom${index + 1}`]: {\n // 优先级: 后者覆盖前者\n level: index + 1,\n filter: (datum: Datum) => {\n if (selector(datum, style.selector)) {\n return true\n }\n return false\n },\n style: {\n fill: barColor,\n fillOpacity: barColorOpacity,\n stroke: barBorderColor,\n lineWidth: barBorderWidth,\n lineDash: lineDash,\n cornerRadius: barRadius,\n },\n },\n }\n }, {})\n\n return {\n ...result,\n bar: {\n state: {\n ...customMap,\n },\n },\n }\n}\n","import type { IAreaChartSpec } from '@visactor/vchart'\nimport { selector } from '../../../../dataSelector'\nimport type { Datum, PointStyle, SpecPipe } from 'src/types'\n\nexport const pointStyle: SpecPipe = (spec, context) => {\n const { advancedVSeed } = context\n const { markStyle } = advancedVSeed\n const { pointStyle } = markStyle\n const result = {\n ...spec,\n point: {\n state: {\n dimension_hover: {\n scaleX: 1.4,\n scaleY: 1.4,\n },\n },\n },\n } as IAreaChartSpec\n\n if (!pointStyle) {\n return result\n }\n\n const pointStyles = (Array.isArray(pointStyle) ? pointStyle : [pointStyle]) as PointStyle[]\n\n const customMap = pointStyles.reduce<object>((result, style, index) => {\n const { pointBorderColor, pointBorderStyle, pointBorderWidth, pointColor, pointColorOpacity, pointSize } = style\n\n const lineDash = pointBorderStyle === 'dashed' ? [5, 2] : pointBorderStyle === 'dotted' ? [2, 5] : [0, 0]\n return {\n ...result,\n [`custom${index + 1}`]: {\n // 优先级: 后者覆盖前者\n level: index + 1,\n filter: (datum: Datum) => {\n if (selector(datum, style.selector)) {\n return true\n }\n return false\n },\n style: {\n size: pointSize,\n fill: pointColor,\n fillOpacity: pointColorOpacity,\n stroke: pointBorderColor,\n lineWidth: pointBorderWidth,\n lineDash: lineDash,\n },\n },\n }\n }, {})\n\n return {\n ...result,\n point: {\n state: {\n ...customMap,\n },\n },\n }\n}\n","import type { IAreaChartSpec } from '@visactor/vchart'\nimport { selector } from '../../../../dataSelector'\nimport type { Datum, LineStyle, SpecPipe } from 'src/types'\nimport { groupBy } from 'remeda'\n\nexport const lineStyle: SpecPipe = (spec, context) => {\n const { advancedVSeed } = context\n const { markStyle, encoding, dataset } = advancedVSeed\n const { lineStyle } = markStyle\n if (!lineStyle) {\n return spec\n }\n const result = { ...spec } as IAreaChartSpec\n\n const lineStyles = (Array.isArray(lineStyle) ? lineStyle : [lineStyle]) as LineStyle[]\n\n const group = encoding[0]?.group?.[0]\n const lineGroups = groupBy(dataset, (d) => d[group ?? ''] as string)\n\n const customMap = lineStyles.reduce<object>((result, style, index) => {\n const { lineColor, lineColorOpacity, lineSmooth, lineStyle, lineWidth } = style\n\n const dashSegment = (lineWidth ?? 2) * 2\n const dashGap = lineWidth ?? 2\n\n const lineDash =\n lineStyle === 'dashed' ? [dashSegment, dashSegment] : lineStyle === 'dotted' ? [dashGap / 2, dashGap * 2] : [0, 0]\n\n const curveType = lineSmooth ? 'monotone' : 'linear'\n\n return {\n ...result,\n [`custom${index + 1}`]: {\n // 优先级: 后者覆盖前者\n level: index + 1,\n filter: (datum: Datum) => {\n const lineData = lineGroups[datum[group ?? ''] as string]\n for (const d of lineData) {\n if (selector(d, style.selector)) {\n return true\n }\n }\n return false\n },\n style: {\n curveType: curveType,\n strokeOpacity: lineColorOpacity,\n stroke: lineColor,\n lineWidth: lineWidth,\n lineDash: lineDash,\n },\n },\n }\n }, {})\n\n return {\n ...result,\n line: {\n state: {\n ...customMap,\n },\n },\n }\n}\n","import type { IAreaChartSpec } from '@visactor/vchart'\nimport { selector } from '../../../../dataSelector'\nimport type { AreaStyle, Datum, SpecPipe } from 'src/types'\nimport { groupBy } from 'remeda'\n\nexport const areaStyle: SpecPipe = (spec, context) => {\n const { advancedVSeed } = context\n const { markStyle, encoding, dataset } = advancedVSeed\n const { areaStyle } = markStyle\n if (!areaStyle) {\n return spec\n }\n const result = { ...spec } as IAreaChartSpec\n\n const areaStyles = (Array.isArray(areaStyle) ? areaStyle : [areaStyle]) as AreaStyle[]\n\n const group = encoding[0]?.group?.[0]\n const lineGroups = groupBy(dataset, (d) => d[group ?? ''] as string)\n\n const customMap = areaStyles.reduce<object>((result, style, index) => {\n const { areaColor, areaColorOpacity } = style\n\n return {\n ...result,\n [`custom${index + 1}`]: {\n // 优先级: 后者覆盖前者\n level: index + 1,\n filter: (datum: Datum) => {\n const lineData = lineGroups[datum[group ?? ''] as string]\n for (const d of lineData) {\n if (selector(d, style.selector)) {\n return true\n }\n }\n return false\n },\n style: {\n fill: areaColor,\n fillOpacity: areaColorOpacity,\n },\n },\n }\n }, {})\n\n return {\n ...result,\n area: {\n state: {\n ...customMap,\n },\n },\n }\n}\n","import type { Datum } from \"src/types\"\n\nexport const isSubset = (sub: Datum, obj: Datum) => {\n return Object.entries(sub).every(([key, value]) => {\n if (typeof value === 'string') {\n return obj[key] === value\n }\n if (typeof value === 'number') {\n return obj[key] === value\n }\n return true\n })\n}\n","import type { ICartesianSeries, ILineChartSpec } from '@visactor/vchart'\nimport { selector } from '../../../../dataSelector'\nimport type { Datum, SpecPipe } from 'src/types'\nimport { isSubset } from './utils'\nimport { ANNOTATION_Z_INDEX } from '../../../constant'\n\nexport const annotationPoint: SpecPipe = (spec, context) => {\n const { advancedVSeed } = context\n const { annotation } = advancedVSeed\n\n if (!annotation || !annotation.annotationPoint) {\n return spec\n }\n\n const { annotationPoint } = annotation\n const annotationPointList = Array.isArray(annotationPoint) ? annotationPoint : [annotationPoint]\n\n const markPoint = annotationPointList.flatMap((annotationPoint) => {\n const {\n selector: selectorPoint,\n text = '',\n textColor = '#ffffff',\n textFontSize = 12,\n textFontWeight = 400,\n textAlign = 'center',\n textBaseline = 'middle',\n backgroundBorderColor,\n backgroundBorderRadius = 4,\n backgroundBorderWidth = 1,\n backgroundColor = '#212121',\n backgroundPadding = 2,\n backgroundVisible = true,\n offsetX = 0,\n offsetY = 0,\n } = annotationPoint\n\n const dataset = advancedVSeed.dataset.flat()\n const selectedData = dataset.filter((datum) => selector(datum, selectorPoint))\n\n return selectedData.map((datum) => {\n return {\n zIndex: ANNOTATION_Z_INDEX,\n regionRelative: true,\n position: (data: Datum[], context: ICartesianSeries) => {\n const targetDatum = data.find((item) => isSubset(datum, item))\n if (targetDatum) {\n const { x, y } = context.dataToPosition(targetDatum) as { x: number; y: number }\n return {\n x,\n y,\n }\n }\n },\n\n itemLine: {\n visible: false,\n },\n itemContent: {\n offsetY,\n offsetX,\n text: {\n visible: true,\n text: text,\n style: {\n textAlign: textAlign,\n textBaseline: textBaseline,\n fill: textColor,\n fontSize: textFontSize,\n fontWeight: textFontWeight,\n },\n labelBackground: {\n visible: backgroundVisible,\n padding: backgroundPadding,\n style: {\n cornerRadius: backgroundBorderRadius ?? 4,\n fill: backgroundColor,\n stroke: backgroundBorderColor,\n strokeWidth: backgroundBorderWidth,\n },\n },\n },\n },\n }\n })\n }) as ILineChartSpec['markPoint']\n\n return {\n ...spec,\n markPoint,\n }\n}\n","import type { ILineChartSpec, IMarkLineSpec } from '@visactor/vchart'\nimport { selector } from '../../../../dataSelector'\nimport type { SpecPipe } from 'src/types'\nimport { isArray, isNumber, isString } from 'remeda'\nimport { ANNOTATION_Z_INDEX } from '../../../constant'\n\nexport const annotationVerticalLine: SpecPipe = (spec, context) => {\n const { advancedVSeed } = context\n const { annotation, encoding } = advancedVSeed\n\n if (!annotation || !annotation.annotationVerticalLine) {\n return spec\n }\n\n const { annotationVerticalLine } = annotation\n const annotationVerticalLineList = Array.isArray(annotationVerticalLine)\n ? annotationVerticalLine\n : [annotationVerticalLine]\n\n const positionMap = {\n outsideStart: 'start',\n outsideEnd: 'end',\n outsideMiddle: 'middle',\n insideStart: 'insideStartTop',\n insideMiddle: 'insideMiddleTop',\n insideEnd: 'insideEndTop',\n }\n const markLine = annotationVerticalLineList.flatMap((annotationVerticalLine) => {\n const {\n selector: selectorPoint,\n xValue,\n text = '',\n textPosition = 'insideEnd',\n textColor = '#ffffff',\n textFontSize = 12,\n textFontWeight = 400,\n textAlign = 'right',\n textBaseline = 'top',\n backgroundBorderColor,\n backgroundBorderRadius = 4,\n backgroundBorderWidth = 1,\n backgroundColor = '#212121',\n backgroundPadding = 2,\n backgroundVisible = true,\n offsetX = 0,\n offsetY = 0,\n lineColor = '#212121',\n lineStyle = 'dashed',\n lineVisible = true,\n lineWidth = 1,\n } = annotationVerticalLine\n\n const dataset = advancedVSeed.dataset.flat()\n\n const generateOneMarkLine = (x: number | string) => ({\n x: x as string,\n zIndex: ANNOTATION_Z_INDEX,\n line: {\n visible: lineVisible,\n style: {\n offsetX,\n offsetY,\n stroke: lineColor,\n lineStyle: lineStyle,\n lineWidth: lineWidth,\n lineDash: lineStyle === 'dashed' ? [5, 2] : lineStyle === 'dotted' ? [2, 5] : [0],\n },\n },\n label: {\n text: text,\n position: positionMap[textPosition],\n style: {\n offsetX,\n offsetY,\n visible: true,\n textAlign: textAlign,\n textBaseline: textBaseline,\n fill: textColor,\n fontSize: textFontSize,\n fontWeight: textFontWeight,\n },\n labelBackground: {\n visible: backgroundVisible,\n padding: backgroundPadding,\n style: {\n offsetX,\n offsetY,\n cornerRadius: backgroundBorderRadius ?? 4,\n fill: backgroundColor,\n stroke: backgroundBorderColor,\n strokeWidth: backgroundBorderWidth,\n },\n },\n },\n endSymbol: {\n visible: true,\n style: {\n fill: lineColor,\n },\n },\n })\n\n if ((!selectorPoint && isArray(xValue)) || isString(xValue) || isNumber(xValue)) {\n const xValueArr = Array.isArray(xValue) ? xValue : [xValue]\n return xValueArr.map(generateOneMarkLine)\n }\n\n const selectedData = dataset.filter((datum) => selector(datum, selectorPoint))\n\n return selectedData.map((datum) => {\n const x = encoding[0]?.x?.[0]\n if (!x) {\n return {}\n }\n return generateOneMarkLine(datum[x] as string)\n })\n }) as IMarkLineSpec[]\n\n const specMarkLine = ((spec as ILineChartSpec).markLine as IMarkLineSpec[]) || []\n const newMarkLine = [...specMarkLine, ...(markLine || [])]\n\n return {\n ...spec,\n markLine: newMarkLine,\n }\n}\n","import type { ILineChartSpec, IMarkLineSpec } from '@visactor/vchart'\nimport { selector } from '../../../../dataSelector'\nimport type { SpecPipe } from 'src/types'\nimport { isArray, isNumber, isString } from 'remeda'\nimport { ANNOTATION_Z_INDEX } from '../../../constant'\n\nexport const annotationHorizontalLine: SpecPipe = (spec, context) => {\n const { advancedVSeed } = context\n const { annotation, encoding } = advancedVSeed\n\n if (!annotation || !annotation.annotationHorizontalLine) {\n return spec\n }\n\n const { annotationHorizontalLine } = annotation\n const annotationVerticalLineList = Array.isArray(annotationHorizontalLine)\n ? annotationHorizontalLine\n : [annotationHorizontalLine]\n\n const positionMap = {\n outsideStart: 'start',\n outsideEnd: 'end',\n outsideMiddle: 'middle',\n insideStart: 'insideStartTop',\n insideMiddle: 'insideMiddleTop',\n insideEnd: 'insideEndTop',\n }\n\n const markLine = annotationVerticalLineList.flatMap((annotationVerticalLine) => {\n const {\n selector: selectorPoint,\n yValue,\n text = '',\n textPosition = 'insideEnd',\n textColor = '#ffffff',\n textFontSize = 12,\n textFontWeight = 400,\n textAlign = 'center',\n textBaseline = 'bottom',\n backgroundBorderColor,\n backgroundBorderRadius = 4,\n backgroundBorderWidth = 1,\n backgroundColor = '#212121',\n backgroundPadding = 2,\n backgroundVisible = true,\n offsetX = 0,\n offsetY = 0,\n lineColor = '#212121',\n lineStyle = 'dashed',\n lineVisible = true,\n lineWidth = 1,\n } = annotationVerticalLine\n\n const dataset = advancedVSeed.dataset.flat()\n\n const generateOneMarkLine = (y: string | number) => {\n return {\n y,\n zIndex: ANNOTATION_Z_INDEX,\n line: {\n visible: lineVisible,\n style: {\n offsetX,\n offsetY,\n stroke: lineColor,\n lineStyle: lineStyle,\n lineWidth: lineWidth,\n lineDash: lineStyle === 'dashed' ? [5, 2] : lineStyle === 'dotted' ? [2, 5] : [0],\n },\n },\n label: {\n text: text,\n position: positionMap[textPosition],\n style: {\n offsetX,\n offsetY,\n visible: true,\n textAlign: textAlign,\n textBaseline: textBaseline,\n fill: textColor,\n fontSize: textFontSize,\n fontWeight: textFontWeight,\n },\n labelBackground: {\n visible: backgroundVisible,\n padding: backgroundPadding,\n style: {\n offsetX,\n offsetY,\n cornerRadius: backgroundBorderRadius ?? 4,\n fill: backgroundColor,\n stroke: backgroundBorderColor,\n strokeWidth: backgroundBorderWidth,\n },\n },\n },\n endSymbol: {\n visible: true,\n style: {\n fill: lineColor,\n },\n },\n }\n }\n\n if ((!selectorPoint && isArray(yValue)) || isString(yValue) || isNumber(yValue)) {\n const yValueArr = Array.isArray(yValue) ? yValue : [yValue]\n return yValueArr.map(generateOneMarkLine)\n }\n\n const selectedData = dataset.filter((datum) => selector(datum, selectorPoint))\n\n return selectedData.map((datum) => {\n const y = encoding[0]?.y?.[0]\n if (!y) {\n return {}\n }\n return generateOneMarkLine(datum[y] as string)\n })\n }) as IMarkLineSpec[]\n const specMarkLine = ((spec as ILineChartSpec).markLine as IMarkLineSpec[]) || []\n const newMarkLine = [...specMarkLine, ...(markLine || [])]\n return {\n ...spec,\n markLine: newMarkLine,\n }\n}\n","import type { ICartesianSeries, ILineChartSpec } from '@visactor/vchart'\nimport { selector } from '../../../../dataSelector'\nimport type { Datum, SpecPipe } from 'src/types'\nimport { isSubset } from './utils'\nimport { ANNOTATION_Z_INDEX } from '../../../constant'\n\nexport const annotationArea: SpecPipe = (spec, context) => {\n const { advancedVSeed } = context\n const { annotation } = advancedVSeed\n\n if (!annotation || !annotation.annotationArea) {\n return spec\n }\n\n const { annotationArea } = annotation\n const annotationAreaList = Array.isArray(annotationArea) ? annotationArea : [annotationArea]\n\n const positionMap = {\n top: 'insideTop',\n topRight: 'insideTopRight',\n topLeft: 'insideTopLeft',\n bottom: 'insideBottom',\n bottomLeft: 'insideBottomLeft',\n bottomRight: 'insideBottomRight',\n left: 'insideLeft',\n right: 'insideRight',\n }\n\n const markArea = annotationAreaList.flatMap((annotationArea) => {\n const {\n selector: selectorPoint,\n text = '',\n textPosition = 'top',\n textColor = '#ffffff',\n textFontSize = 12,\n textFontWeight = 400,\n textAlign = 'center',\n textBaseline = 'top',\n backgroundBorderColor,\n backgroundBorderRadius = 4,\n backgroundBorderWidth = 1,\n backgroundColor = '#191d24',\n backgroundPadding = 10,\n backgroundVisible = true,\n outerPadding = 4,\n areaColor = '#888888',\n areaColorOpacity = 0.15,\n areaBorderColor,\n areaBorderRadius,\n areaBorderWidth,\n } = annotationArea\n\n const dataset = advancedVSeed.dataset.flat()\n const selectedData = dataset.filter((datum) => selector(datum, selectorPoint))\n\n return {\n zIndex: ANNOTATION_Z_INDEX,\n regionRelative: true,\n positions: (data: Datum[], context: ICartesianSeries) => {\n const positionData = data.filter((item) => selectedData.some((datum) => isSubset(datum, item)))\n const xyList = positionData.map((datum) => context.dataToPosition(datum) as { x: number; y: number })\n\n const yAxisHelper = context.getYAxisHelper() as unknown as {\n getBandwidth: (depth?: number) => number\n getScale: () => {\n range: () => number[]\n }\n }\n const xAxisHelper = context.getXAxisHelper() as unknown as {\n getBandwidth: (depth?: number) => number\n getScale: () => {\n range: () => number[]\n }\n }\n\n if (typeof xAxisHelper?.getBandwidth === 'function') {\n const yScale = yAxisHelper.getScale()\n\n const minX = Math.min(...xyList.map((item) => item.x)) - outerPadding\n const maxX = Math.max(...xyList.map((item) => item.x)) + outerPadding\n const minY = Math.min(...yScale.range())\n const maxY = Math.max(...yScale.range())\n return [\n // 左上\n {\n x: minX,\n y: minY,\n },\n // 右上\n {\n x: maxX,\n y: minY,\n },\n // 右下\n {\n x: maxX,\n y: maxY,\n },\n // 左下\n {\n x: minX,\n y: maxY,\n },\n ]\n }\n\n if (typeof yAxisHelper?.getBandwidth === 'function') {\n const xScale = xAxisHelper.getScale()\n\n const minY = Math.min(...xyList.map((item) => item.y)) - outerPadding\n const maxY = Math.max(...xyList.map((item) => item.y)) + outerPadding\n const minX = Math.min(...xScale.range())\n const maxX = Math.max(...xScale.range())\n\n return [\n // 左上\n {\n x: minX,\n y: minY,\n },\n // 右上\n {\n x: maxX,\n y: minY,\n },\n // 右下\n {\n x: maxX,\n y: maxY,\n },\n // 左下\n {\n x: minX,\n y: maxY,\n },\n ]\n }\n\n return []\n },\n label: {\n position: positionMap[textPosition],\n visible: true,\n text: text,\n style: {\n textAlign: textAlign,\n textBaseline: textBaseline,\n fill: textColor,\n fontSize: textFontSize,\n fontWeight: textFontWeight,\n },\n\n labelBackground: {\n visible: backgroundVisible,\n padding: backgroundPadding,\n style: {\n cornerRadius: backgroundBorderRadius ?? 4,\n fill: backgroundColor,\n stroke: backgroundBorderColor,\n strokeWidth: backgroundBorderWidth,\n },\n },\n },\n area: {\n style: {\n visible: true,\n fill: areaColor,\n fillOpacity: areaColorOpacity,\n stroke: areaBorderColor,\n strokeWidth: areaBorderWidth,\n cornerRadius: areaBorderRadius,\n },\n },\n }\n }) as ILineChartSpec['markArea']\n\n return {\n ...spec,\n markArea: markArea,\n }\n}\n","import type { ICartesianSeries, ILineChartSpec } from '@visactor/vchart'\nimport { selector } from '../../../../dataSelector'\nimport type { Datum, SpecPipe } from 'src/types'\nimport { isSubset } from './utils'\nimport { ANNOTATION_Z_INDEX } from '../../../constant'\n\nexport const annotationAreaBand: SpecPipe = (spec, context) => {\n const { advancedVSeed } = context\n const { annotation } = advancedVSeed\n\n if (!annotation || !annotation.annotationArea) {\n return spec\n }\n\n const { annotationArea } = annotation\n const annotationAreaList = Array.isArray(annotationArea) ? annotationArea : [annotationArea]\n\n const positionMap = {\n top: 'insideTop',\n topRight: 'insideTopRight',\n topLeft: 'insideTopLeft',\n bottom: 'insideBottom',\n bottomLeft: 'insideBottomLeft',\n bottomRight: 'insideBottomRight',\n left: 'insideLeft',\n right: 'insideRight',\n }\n\n const markArea = annotationAreaList.flatMap((annotationArea) => {\n const {\n selector: selectorPoint,\n text = '',\n textPosition = 'top',\n textColor = '#ffffff',\n textFontSize = 12,\n textFontWeight = 400,\n textAlign = 'center',\n textBaseline = 'top',\n backgroundBorderColor,\n backgroundBorderRadius = 4,\n backgroundBorderWidth = 1,\n backgroundColor = '#191d24',\n backgroundPadding = 4,\n backgroundVisible = true,\n outerPadding = 8,\n areaColor = '#888888',\n areaColorOpacity = 0.15,\n areaBorderColor,\n areaBorderRadius,\n areaBorderWidth,\n } = annotationArea\n\n const dataset = advancedVSeed.dataset.flat()\n const selectedData = dataset.filter((datum) => selector(datum, selectorPoint))\n\n return {\n zIndex: ANNOTATION_Z_INDEX,\n regionRelative: true,\n positions: (data: Datum[], context: ICartesianSeries) => {\n const positionData = data.filter((item) => selectedData.some((datum) => isSubset(datum, item)))\n const xyList = positionData.map((datum) => context.dataToPosition(datum) as { x: number; y: number })\n\n const yAxisHelper = context.getYAxisHelper() as unknown as {\n getBandwidth: (depth?: number) => number\n getScale: () => {\n range: () => number[]\n }\n }\n const xAxisHelper = context.getXAxisHelper() as unknown as {\n getBandwidth: (depth?: number) => number\n getScale: () => {\n range: () => number[]\n }\n }\n\n if (typeof xAxisHelper?.getBandwidth === 'function') {\n const depth = context.fieldX.length ?? 0\n const xBandWidth = xAxisHelper?.getBandwidth?.(depth - 1)\n const yScale = yAxisHelper.getScale()\n\n const minX = Math.min(...xyList.map((item) => item.x)) - outerPadding\n const maxX = Math.max(...xyList.map((item) => item.x)) + xBandWidth + outerPadding\n const minY = Math.min(...yScale.range())\n const maxY = Math.max(...yScale.range())\n return [\n // 左上\n {\n x: minX,\n y: minY,\n },\n // 右上\n {\n x: maxX,\n y: minY,\n },\n // 右下\n {\n x: maxX,\n y: maxY,\n },\n // 左下\n {\n x: minX,\n y: maxY,\n },\n ]\n }\n\n if (typeof yAxisHelper?.getBandwidth === 'function') {\n const depth = context.fieldY.length ?? 0\n const yBandWidth = yAxisHelper?.getBandwidth?.(depth - 1)\n const xScale = xAxisHelper.getScale()\n\n const minY = Math.min(...xyList.map((item) => item.y)) - outerPadding\n const maxY = Math.max(...xyList.map((item) => item.y)) + yBandWidth + outerPadding\n const minX = Math.min(...xScale.range())\n const maxX = Math.max(...xScale.range())\n\n return [\n // 左上\n {\n x: minX,\n y: minY,\n },\n // 右上\n {\n x: maxX,\n y: minY,\n },\n // 右下\n {\n x: maxX,\n y: maxY,\n },\n // 左下\n {\n x: minX,\n y: maxY,\n },\n ]\n }\n\n return []\n },\n label: {\n position: positionMap[textPosition],\n visible: true,\n text: text,\n style: {\n textAlign: textAlign,\n textBaseline: textBaseline,\n fill: textColor,\n fontSize: textFontSize,\n fontWeight: textFontWeight,\n },\n\n labelBackground: {\n visible: backgroundVisible,\n padding: backgroundPadding,\n style: {\n cornerRadius: backgroundBorderRadius ?? 4,\n fill: backgroundColor,\n stroke: backgroundBorderColor,\n strokeWidth: backgroundBorderWidth,\n },\n },\n },\n area: {\n style: {\n visible: true,\n fill: areaColor,\n fillOpacity: areaColorOpacity,\n stroke: areaBorderColor,\n strokeWidth: areaBorderWidth,\n cornerRadius: areaBorderRadius,\n },\n },\n }\n }) as ILineChartSpec['markArea']\n\n return {\n ...spec,\n markArea: markArea,\n }\n}\n","import type { ICartesianCrosshairSpec, ILineChartSpec } from '@visactor/vchart'\nimport type { SpecPipe } from 'src/types'\n\nexport const verticalCrosshairLine: SpecPipe = (spec, context) => {\n const result = { ...spec } as ILineChartSpec\n const { advancedVSeed, vseed } = context\n const { chartType } = vseed\n\n const config = advancedVSeed.config?.[chartType as 'line']?.crosshairLine\n if (!config) {\n return result\n }\n\n if (!result.crosshair) {\n result.crosshair = {}\n }\n\n const { visible = true, lineColor, labelColor, labelVisible, labelBackgroundColor } = config\n\n const crosshair = result.crosshair as ICartesianCrosshairSpec\n crosshair.xField = {\n visible,\n line: {\n type: 'line',\n style: {\n lineWidth: 1,\n opacity: 1,\n stroke: lineColor,\n lineDash: [4, 2],\n },\n },\n label: {\n visible: labelVisible,\n labelBackground: {\n visible: labelVisible,\n style: {\n fill: labelBackgroundColor,\n },\n },\n style: {\n fill: labelColor,\n },\n },\n }\n\n return result\n}\n","import type { ICartesianCrosshairSpec, ILineChartSpec } from '@visactor/vchart'\nimport type { SpecPipe } from 'src/types'\n\nexport const verticalCrosshairRect: SpecPipe = (spec, context) => {\n const result = { ...spec } as ILineChartSpec\n const { advancedVSeed, vseed } = context\n const { chartType } = vseed\n\n const config = advancedVSeed.config?.[chartType as 'column']?.crosshairRect\n if (!config) {\n return result\n }\n\n if (!result.crosshair) {\n result.crosshair = {}\n }\n\n const { visible = true, rectColor, labelColor, labelVisible, labelBackgroundColor } = config\n const crosshair = result.crosshair as ICartesianCrosshairSpec\n crosshair.xField = {\n visible,\n line: {\n type: 'rect',\n style: {\n lineWidth: 0,\n opacity: 0.2,\n fill: rectColor,\n },\n },\n label: {\n visible: labelVisible,\n labelBackground: {\n visible: labelVisible,\n style: {\n fill: labelBackgroundColor,\n },\n },\n style: {\n fill: labelColor,\n },\n },\n }\n\n return result\n}\n","import type { ICartesianCrosshairSpec, ILineChartSpec } from '@visactor/vchart'\nimport type { SpecPipe } from 'src/types'\n\nexport const horizontalCrosshairRect: SpecPipe = (spec, context) => {\n const result = { ...spec } as ILineChartSpec\n const { advancedVSeed, vseed } = context\n const { chartType } = vseed\n\n const config = advancedVSeed.config?.[chartType as 'column']?.crosshairRect\n if (!config) {\n return result\n }\n\n if (!result.crosshair) {\n result.crosshair = {}\n }\n\n const { visible = true, rectColor, labelColor, labelVisible, labelBackgroundColor } = config\n const crosshair = result.crosshair as ICartesianCrosshairSpec\n crosshair.yField = {\n visible,\n line: {\n type: 'rect',\n style: {\n lineWidth: 0,\n opacity: 0.2,\n fill: rectColor,\n },\n },\n label: {\n visible: labelVisible,\n labelBackground: {\n visible: labelVisible,\n style: {\n fill: labelBackgroundColor,\n },\n },\n style: {\n fill: labelColor,\n },\n },\n }\n\n return result\n}\n","import type { SpecPipeline } from 'src/types'\nimport {\n dataset,\n xBand,\n yLinear,\n initLine,\n backgroundColor,\n label,\n tooltip,\n discreteLegend,\n color,\n initPivot,\n datasetPivot,\n datasetPivotPlaceholder,\n pivotDiscreteLegend,\n pivotIndicators,\n pivotAdapter,\n pivotIndicatorsAsRow,\n pivotGridStyle,\n pivotColumnDimensions,\n pivotRowDimensions,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationArea,\n pointStyle,\n lineStyle,\n verticalCrosshairLine,\n} from '../pipes'\n\nconst line: SpecPipeline = [\n initLine,\n color,\n backgroundColor,\n dataset,\n xBand,\n yLinear,\n label,\n tooltip,\n verticalCrosshairLine,\n discreteLegend,\n pointStyle,\n lineStyle,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationArea,\n]\n\nconst pivotLine: SpecPipeline = [\n initPivot,\n pivotGridStyle,\n pivotIndicatorsAsRow,\n datasetPivot,\n pivotIndicators([\n initLine,\n color,\n backgroundColor,\n datasetPivotPlaceholder,\n xBand,\n yLinear,\n label,\n tooltip,\n verticalCrosshairLine,\n pointStyle,\n lineStyle,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationArea,\n ]),\n pivotRowDimensions,\n pivotColumnDimensions,\n pivotDiscreteLegend,\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 discreteLegend,\n color,\n pivotAdapter,\n initPivot,\n datasetPivot,\n datasetPivotPlaceholder,\n pivotIndicators,\n pivotDiscreteLegend,\n pivotIndicatorsAsRow,\n pivotGridStyle,\n pivotRowDimensions,\n pivotColumnDimensions,\n stackInverse,\n barStyle,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationAreaBand,\n verticalCrosshairRect,\n stackCornerRadius,\n} from '../pipes'\n\nconst column: SpecPipeline = [\n initColumn,\n stackCornerRadius,\n stackInverse,\n color,\n backgroundColor,\n dataset,\n xBand,\n yLinear,\n label,\n tooltip,\n verticalCrosshairRect,\n discreteLegend,\n barStyle,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationAreaBand,\n]\n\nconst pivotColumn: SpecPipeline = [\n initPivot,\n pivotGridStyle,\n pivotIndicatorsAsRow,\n datasetPivot,\n pivotIndicators([\n initColumn,\n stackCornerRadius,\n stackInverse,\n color,\n backgroundColor,\n datasetPivotPlaceholder,\n xBand,\n yLinear,\n label,\n tooltip,\n verticalCrosshairRect,\n barStyle,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationAreaBand,\n ]),\n pivotRowDimensions,\n pivotColumnDimensions,\n pivotDiscreteLegend,\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 discreteLegend,\n color,\n pivotIndicators,\n initPivot,\n datasetPivot,\n pivotAdapter,\n datasetPivotPlaceholder,\n pivotDiscreteLegend,\n pivotIndicatorsAsRow,\n pivotGridStyle,\n pivotRowDimensions,\n pivotColumnDimensions,\n barStyle,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationAreaBand,\n verticalCrosshairRect,\n stackCornerRadius,\n} from '../pipes'\n\nconst columnParallel: SpecPipeline = [\n initColumnParallel,\n stackCornerRadius,\n color,\n backgroundColor,\n dataset,\n xBand,\n yLinear,\n label,\n tooltip,\n discreteLegend,\n verticalCrosshairRect,\n barStyle,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationAreaBand,\n]\n\nconst pivotColumnParallel: SpecPipeline = [\n initPivot,\n pivotGridStyle,\n pivotIndicatorsAsRow,\n datasetPivot,\n pivotIndicators([\n initColumnParallel,\n stackCornerRadius,\n color,\n backgroundColor,\n datasetPivotPlaceholder,\n xBand,\n yLinear,\n label,\n tooltip,\n verticalCrosshairRect,\n barStyle,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationAreaBand,\n ]),\n pivotRowDimensions,\n pivotColumnDimensions,\n pivotDiscreteLegend,\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 discreteLegend,\n color,\n datasetPivotPlaceholder,\n pivotAdapter,\n initPivot,\n datasetPivot,\n pivotIndicators,\n pivotDiscreteLegend,\n pivotIndicatorsAsRow,\n pivotGridStyle,\n pivotRowDimensions,\n pivotColumnDimensions,\n stackInverse,\n barStyle,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationAreaBand,\n verticalCrosshairRect,\n stackCornerRadius,\n} from '../pipes'\n\nconst columnPercent: SpecPipeline = [\n initColumn,\n stackCornerRadius,\n stackInverse,\n color,\n backgroundColor,\n percent,\n dataset,\n xBand,\n yLinear,\n label,\n tooltip,\n verticalCrosshairRect,\n discreteLegend,\n barStyle,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationAreaBand,\n]\n\nconst pivotColumnPercent: SpecPipeline = [\n initPivot,\n pivotGridStyle,\n pivotIndicatorsAsRow,\n datasetPivot,\n pivotIndicators([\n initColumn,\n stackCornerRadius,\n stackInverse,\n color,\n percent,\n backgroundColor,\n datasetPivotPlaceholder,\n xBand,\n yLinear,\n label,\n tooltip,\n verticalCrosshairRect,\n barStyle,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationAreaBand,\n ]),\n pivotRowDimensions,\n pivotColumnDimensions,\n pivotDiscreteLegend,\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 discreteLegend,\n color,\n pivotAdapter,\n initPivot,\n datasetPivot,\n pivotIndicators,\n pivotDiscreteLegend,\n datasetPivotPlaceholder,\n pivotIndicatorsAsCol,\n pivotGridStyle,\n pivotColumnDimensions,\n pivotRowDimensions,\n barStyle,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationAreaBand,\n horizontalCrosshairRect,\n stackCornerRadius,\n} from '../pipes'\n\nconst bar: SpecPipeline = [\n initBar,\n stackCornerRadius,\n color,\n backgroundColor,\n dataset,\n xLinear,\n yBand,\n label,\n tooltip,\n horizontalCrosshairRect,\n discreteLegend,\n barStyle,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationAreaBand,\n]\n\nconst pivotBar: SpecPipeline = [\n initPivot,\n pivotGridStyle,\n pivotIndicatorsAsCol,\n datasetPivot,\n pivotIndicators([\n initBar,\n stackCornerRadius,\n color,\n backgroundColor,\n datasetPivotPlaceholder,\n yBand,\n label,\n label,\n tooltip,\n horizontalCrosshairRect,\n barStyle,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationAreaBand,\n ]),\n pivotRowDimensions,\n pivotColumnDimensions,\n pivotDiscreteLegend,\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 discreteLegend,\n color,\n datasetPivotPlaceholder,\n initPivot,\n datasetPivot,\n pivotDiscreteLegend,\n pivotIndicators,\n pivotAdapter,\n pivotIndicatorsAsCol,\n pivotGridStyle,\n pivotRowDimensions,\n pivotColumnDimensions,\n barStyle,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationAreaBand,\n horizontalCrosshairRect,\n stackCornerRadius,\n} from '../pipes'\n\nconst barParallel: SpecPipeline = [\n initBarParallel,\n stackCornerRadius,\n color,\n backgroundColor,\n dataset,\n xLinear,\n yBand,\n label,\n tooltip,\n horizontalCrosshairRect,\n discreteLegend,\n barStyle,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationAreaBand,\n]\n\nconst pivotBarParallel: SpecPipeline = [\n initPivot,\n pivotGridStyle,\n pivotIndicatorsAsCol,\n datasetPivot,\n pivotIndicators([\n initBarParallel,\n stackCornerRadius,\n color,\n backgroundColor,\n datasetPivotPlaceholder,\n yBand,\n xLinear,\n label,\n tooltip,\n horizontalCrosshairRect,\n barStyle,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationAreaBand,\n ]),\n pivotRowDimensions,\n pivotColumnDimensions,\n pivotDiscreteLegend,\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 discreteLegend,\n color,\n pivotAdapter,\n initPivot,\n datasetPivot,\n pivotIndicators,\n pivotDiscreteLegend,\n datasetPivotPlaceholder,\n pivotIndicatorsAsCol,\n pivotGridStyle,\n pivotRowDimensions,\n pivotColumnDimensions,\n barStyle,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationAreaBand,\n horizontalCrosshairRect,\n stackCornerRadius,\n} from '../pipes'\n\nconst barPercent: SpecPipeline = [\n initBar,\n stackCornerRadius,\n color,\n backgroundColor,\n percent,\n dataset,\n xLinear,\n yBand,\n label,\n tooltip,\n horizontalCrosshairRect,\n discreteLegend,\n barStyle,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationAreaBand,\n]\n\nconst pivotBarPercent: SpecPipeline = [\n initPivot,\n pivotGridStyle,\n pivotIndicatorsAsCol,\n datasetPivot,\n pivotIndicators([\n initBar,\n stackCornerRadius,\n color,\n backgroundColor,\n percent,\n datasetPivotPlaceholder,\n yBand,\n xLinear,\n label,\n tooltip,\n horizontalCrosshairRect,\n barStyle,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationAreaBand,\n ]),\n pivotRowDimensions,\n pivotColumnDimensions,\n pivotDiscreteLegend,\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 stackInverse,\n backgroundColor,\n label,\n tooltip,\n discreteLegend,\n color,\n datasetPivotPlaceholder,\n datasetPivot,\n pivotIndicators,\n pivotDiscreteLegend,\n pivotAdapter,\n initPivot,\n pivotIndicatorsAsRow,\n pivotGridStyle,\n pivotColumnDimensions,\n pivotRowDimensions,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationArea,\n pointStyle,\n lineStyle,\n areaStyle,\n verticalCrosshairLine,\n} from '../pipes'\n\nconst area: SpecPipeline = [\n initArea,\n stackInverse,\n color,\n backgroundColor,\n dataset,\n xBand,\n yLinear,\n label,\n tooltip,\n verticalCrosshairLine,\n discreteLegend,\n pointStyle,\n lineStyle,\n areaStyle,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationArea,\n]\n\nconst pivotArea: SpecPipeline = [\n initPivot,\n pivotGridStyle,\n pivotIndicatorsAsRow,\n datasetPivot,\n pivotIndicators([\n initArea,\n color,\n backgroundColor,\n stackInverse,\n datasetPivotPlaceholder,\n xBand,\n yLinear,\n label,\n tooltip,\n verticalCrosshairLine,\n pointStyle,\n lineStyle,\n areaStyle,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationArea,\n ]),\n pivotRowDimensions,\n pivotColumnDimensions,\n pivotDiscreteLegend,\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 discreteLegend,\n color,\n datasetPivotPlaceholder,\n datasetPivot,\n pivotIndicators,\n pivotDiscreteLegend,\n pivotAdapter,\n initPivot,\n pivotIndicatorsAsRow,\n pivotGridStyle,\n pivotRowDimensions,\n pivotColumnDimensions,\n stackInverse,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationArea,\n pointStyle,\n lineStyle,\n areaStyle,\n verticalCrosshairLine,\n} from '../pipes'\n\nconst areaPercent: SpecPipeline = [\n initArea,\n stackInverse,\n color,\n backgroundColor,\n percent,\n dataset,\n xBand,\n yLinear,\n label,\n tooltip,\n verticalCrosshairLine,\n discreteLegend,\n pointStyle,\n lineStyle,\n areaStyle,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationArea,\n]\n\nconst pivotAreaPercent: SpecPipeline = [\n initPivot,\n\n pivotGridStyle,\n pivotIndicatorsAsRow,\n datasetPivot,\n pivotIndicators([\n initArea,\n stackInverse,\n color,\n backgroundColor,\n percent,\n datasetPivotPlaceholder,\n xBand,\n yLinear,\n label,\n tooltip,\n verticalCrosshairLine,\n pointStyle,\n lineStyle,\n areaStyle,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationArea,\n ]),\n pivotRowDimensions,\n pivotColumnDimensions,\n pivotDiscreteLegend,\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 discreteLegend,\n pivotAdapter,\n pivotColumnDimensions,\n pivotGridStyle,\n pivotIndicators,\n pivotIndicatorsAsRow,\n pivotDiscreteLegend,\n pivotRowDimensions,\n tooltip,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationArea,\n} from '../pipes'\n\nconst pie: SpecPipeline = [\n initPie,\n color,\n backgroundColor,\n dataset,\n label,\n tooltip,\n discreteLegend,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationArea,\n]\n\nconst pivotPie: SpecPipeline = [\n initPivot,\n pivotGridStyle,\n pivotIndicatorsAsRow,\n datasetPivot,\n pivotIndicators([\n initPie,\n color,\n backgroundColor,\n datasetPivotPlaceholder,\n label,\n tooltip,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationArea,\n ]),\n pivotRowDimensions,\n pivotColumnDimensions,\n pivotDiscreteLegend,\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 builder.advancedVSeed = advancedVSeed\n // console.log('debug advancedVSeed', advancedVSeed)\n if (!advancedVSeed) {\n throw new Error('advancedVSeed is null')\n }\n const spec = builder.buildSpec(advancedVSeed)\n builder.spec = spec\n // console.log('debug spec', spec)\n return spec\n}\n","import type {\n AdvancedPipeline,\n AdvancedVSeed,\n ChartType,\n CustomThemeConfig,\n Spec,\n SpecPipeline,\n VSeed,\n VSeedBuilder,\n} from 'src/types'\nimport { buildAdvanced } from './buildAdvanced'\nimport { buildSpec } from './buildSpec'\nimport { build } from './build'\nimport { intl } from '../../i18n'\n\nexport class Builder implements VSeedBuilder {\n private _vseed: VSeed\n private _advancedVSeed: AdvancedVSeed | null = null\n private _spec: Spec | null = null\n\n constructor(vseed: VSeed) {\n this._vseed = vseed\n this._vseed.locale = vseed.locale || intl.getLocale()\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 get spec() {\n return this._spec\n }\n\n set spec(value) {\n this._spec = 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 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: '#36415926',\n gridWidth: 0.5,\n },\n tick: {\n visible: false,\n tickInside: false,\n tickSize: 4,\n tickColor: '#3641594d',\n },\n line: {\n visible: false,\n lineColor: '#3641594d',\n lineWidth: 1,\n },\n }\n const bandAxis: YBandAxis = {\n labelAutoHide: true,\n labelAutoHideGap: 4,\n labelAutoLimit: true,\n labelAutoLimitLength: 100,\n labelAutoRotate: false,\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: '#36415926',\n gridWidth: 0.5,\n },\n tick: {\n visible: false,\n tickInside: false,\n tickSize: 4,\n tickColor: '#3641594d',\n },\n line: {\n visible: true,\n lineColor: '#3641594d',\n lineWidth: 1,\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 const crosshairLine = {\n visible: true,\n labelVisible: true,\n lineColor: '#3641594d',\n labelColor: '#ffffff',\n labelBackgroundColor: '#364159',\n }\n const crosshairRect = {\n visible: true,\n labelVisible: true,\n rectColor: '#3641594d',\n labelColor: '#ffffff',\n labelBackgroundColor: '#364159',\n }\n\n return {\n baseConfig: {\n vtable: {\n backgroundColor: 'transparent',\n },\n vchart: {\n backgroundColor: 'transparent',\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 border: true,\n maxSize: 1,\n shapeType: 'rectRound',\n position: 'rt',\n labelFontColor: '#646A73',\n labelFontSize: 12,\n labelFontWeight: 400,\n },\n },\n },\n config: {\n line: {\n xAxis: bandAxis,\n yAxis: linearAxis,\n crosshairLine,\n },\n column: {\n xAxis: bandAxis,\n yAxis: linearAxis,\n crosshairRect,\n stackCornerRadius: [4, 4, 0, 0],\n },\n columnParallel: {\n xAxis: bandAxis,\n yAxis: linearAxis,\n crosshairRect,\n stackCornerRadius: [4, 4, 0, 0],\n },\n columnPercent: {\n xAxis: bandAxis,\n yAxis: linearAxis,\n crosshairRect,\n stackCornerRadius: [4, 4, 0, 0],\n },\n bar: {\n xAxis: linearAxis,\n yAxis: barBandAxis,\n crosshairRect,\n stackCornerRadius: [0, 4, 4, 0],\n },\n barParallel: {\n xAxis: linearAxis,\n yAxis: barBandAxis,\n crosshairRect,\n stackCornerRadius: [0, 4, 4, 0],\n },\n barPercent: {\n xAxis: linearAxis,\n yAxis: barBandAxis,\n crosshairRect,\n stackCornerRadius: [0, 4, 4, 0],\n },\n area: {\n xAxis: bandAxis,\n yAxis: linearAxis,\n crosshairLine,\n },\n areaPercent: {\n xAxis: bandAxis,\n yAxis: linearAxis,\n crosshairLine,\n },\n },\n }\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: false,\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 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 const crosshairLine = {\n visible: true,\n labelVisible: true,\n lineColor: '#E2E3E6',\n labelColor: '#4B4F54',\n labelBackgroundColor: '#ffffff',\n }\n const crosshairRect = {\n visible: true,\n labelVisible: true,\n lineColor: '#E2E3E6',\n labelColor: '#4B4F54',\n labelBackgroundColor: '#ffffff',\n }\n\n return {\n baseConfig: {\n vtable: {\n backgroundColor: 'transparent',\n },\n vchart: {\n backgroundColor: 'transparent',\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 border: true,\n maxSize: 1,\n position: 'rt',\n shapeType: 'rectRound',\n labelFontColor: '#FDFDFD',\n labelFontSize: 12,\n labelFontWeight: 400,\n },\n },\n },\n config: {\n line: {\n xAxis: bandAxis,\n yAxis: linearAxis,\n crosshairLine: crosshairLine,\n },\n column: {\n xAxis: bandAxis,\n yAxis: linearAxis,\n crosshairRect: crosshairRect,\n stackCornerRadius: [4, 4, 0, 0],\n },\n columnParallel: {\n xAxis: bandAxis,\n yAxis: linearAxis,\n crosshairRect: crosshairRect,\n stackCornerRadius: [4, 4, 0, 0],\n },\n columnPercent: {\n xAxis: bandAxis,\n yAxis: linearAxis,\n crosshairRect: crosshairRect,\n stackCornerRadius: [4, 4, 0, 0],\n },\n bar: {\n xAxis: linearAxis,\n yAxis: barBandAxis,\n crosshairRect: crosshairRect,\n stackCornerRadius: [0, 4, 4, 0],\n },\n barParallel: {\n xAxis: linearAxis,\n yAxis: barBandAxis,\n crosshairRect: crosshairRect,\n stackCornerRadius: [0, 4, 4, 0],\n },\n barPercent: {\n xAxis: linearAxis,\n yAxis: barBandAxis,\n crosshairRect: crosshairRect,\n stackCornerRadius: [0, 4, 4, 0],\n },\n area: {\n xAxis: bandAxis,\n yAxis: linearAxis,\n crosshairLine: crosshairLine,\n },\n areaPercent: {\n xAxis: bandAxis,\n yAxis: linearAxis,\n crosshairLine: crosshairLine,\n },\n },\n }\n}\n","import type { CustomThemeConfig } from 'src/types'\nimport { Builder } from '../builder'\nimport { darkTheme, lightTheme } from '../../theme'\n\nexport const registerCustomTheme = (\n key: string,\n themeConfig:\n | CustomThemeConfig\n | ((props: { lightTheme: CustomThemeConfig; darkTheme: CustomThemeConfig }) => CustomThemeConfig),\n) => {\n const customTheme =\n typeof themeConfig === 'function' ? themeConfig({ lightTheme: lightTheme(), darkTheme: darkTheme() }) : themeConfig\n Builder._themeMap[key] = customTheme\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 zNumFormat = z\n .object({\n type: z.enum(['number', 'percent', 'permille']).default('number').optional(),\n ratio: z.number().default(1).optional(),\n symbol: z.string().default('').optional(),\n thousandSeparator: z.boolean().default(false).optional(),\n decimalPlaces: z.number().default(2).optional(),\n round: z.enum(['round', 'floor', 'ceil']).default('round').optional(),\n prefix: z.string().default('').optional(),\n suffix: z.string().default('').optional(),\n })\n .optional()\n\nexport type NumFormat = z.infer<typeof zNumFormat>\n","import { z } from 'zod'\nimport { zNumFormat } from './format/numFormat'\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: zNumFormat.default({}).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 groupId: string\n colorItems: string[]\n colorIdMap: Record<string, 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 groupId: z.string(),\n colorIdMap: z.record(z.string(), 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 type Legend = {\n /**\n * 图例功能是否开启\n * @default true\n * @example enable: true\n */\n enable?: boolean\n /**\n * 图例边框是否开启\n * @default true\n * @example border: true\n */\n border?: boolean\n /**\n * 图例最大列数 或 图例最大行数\n * @default 1\n * @description\n * 如果图例在水平方向上, maxSize控制显示的列数\n * 如果图例在垂直方向上, maxSize控制显示的行数\n * @example maxSize: 2\n */\n maxSize?: number\n /**\n * 图例字体大小\n * @default 12\n * @example labelFontSize: 10\n */\n labelFontSize?: number\n /**\n * 图例字体颜色\n * @default '#fff'\n * @example labelFontColor: '#212121'\n */\n labelFontColor?: string\n /**\n * 图例字体粗细\n * @default 400\n * @example labelFontWeight: 400\n */\n labelFontWeight?: number | string\n /**\n * 图例形状\n * @default 'rectRound'\n * @example shapeType: 'circle'\n */\n shapeType?:\n | 'circle'\n | 'cross'\n | 'diamond'\n | 'square'\n | 'arrow'\n | 'arrow2Left'\n | 'arrow2Right'\n | 'wedge'\n | 'thinTriangle'\n | 'triangle'\n | 'triangleUp'\n | 'triangleDown'\n | 'triangleRight'\n | 'triangleLeft'\n | 'stroke'\n | 'star'\n | 'wye'\n | 'rect'\n | 'arrowLeft'\n | 'arrowRight'\n | 'rectRound'\n | 'roundLine'\n /**\n * 图例位置\n * @default 'top'\n * @example position: 'rightTop'\n */\n position?:\n | 'left'\n | 'leftTop'\n | 'leftBottom'\n | 'lt'\n | 'lb'\n | 'top'\n | 'topLeft'\n | 'topRight'\n | 'tl'\n | 'tr'\n | 'right'\n | 'rightTop'\n | 'rightBottom'\n | 'rt'\n | 'rb'\n | 'bottom'\n | 'bottomLeft'\n | 'bottomRight'\n | 'bl'\n | 'br'\n}\n\nexport const zLegend = z.object({\n enable: z.boolean().default(true).optional(),\n border: z.boolean().default(true).optional(),\n maxSize: z.number().default(1).optional(),\n shapeType: z\n .enum([\n 'circle',\n 'cross',\n 'diamond',\n 'square',\n 'arrow',\n 'arrow2Left',\n 'arrow2Right',\n 'wedge',\n 'thinTriangle',\n 'triangle',\n 'triangleUp',\n 'triangleDown',\n 'triangleRight',\n 'triangleLeft',\n 'stroke',\n 'star',\n 'wye',\n 'rect',\n 'arrowLeft',\n 'arrowRight',\n 'rectRound',\n 'roundLine',\n ])\n .default('rectRound')\n .optional(),\n position: z\n .enum([\n 'left',\n 'leftTop',\n 'leftBottom',\n 'lt',\n 'lb',\n 'top',\n 'topLeft',\n 'topRight',\n 'tl',\n 'tr',\n 'right',\n 'rightTop',\n 'rightBottom',\n 'rt',\n 'rb',\n 'bottom',\n 'bottomLeft',\n 'bottomRight',\n 'bl',\n 'br',\n ])\n .default('bottom')\n .optional(),\n labelFontSize: z.number().default(12).optional(),\n labelFontColor: z.string().default('#fff').optional(),\n labelFontWeight: z.number().or(z.string()).default(400).optional(),\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'\n\nexport const zCrosshairLine = z.object({\n visible: z.boolean().optional(),\n lineColor: z.string().optional(),\n labelColor: z.string().optional(),\n labelVisible: z.boolean().optional(),\n labelBackgroundColor: z.string().optional(),\n})\n\nexport type CrosshairLine = z.infer<typeof zCrosshairLine>\n\nexport const zCrosshairRect = z.object({\n visible: z.boolean().optional(),\n rectColor: z.string().optional(),\n labelColor: z.string().optional(),\n labelVisible: z.boolean().optional(),\n labelBackgroundColor: z.string().optional(),\n})\n\nexport type CrosshairRect = z.infer<typeof zCrosshairLine>\n","import { z } from 'zod'\n\nexport const zStackCornerRadius = z.number().or(z.array(z.number())).default([3, 3, 0, 0])\n\nexport type StackCornerRadius = z.infer<typeof zStackCornerRadius>\n","import { z } from 'zod'\nimport { zXBandAxis, zYBandAxis } from './bandAxis'\nimport { zXLinearAxis, zYLinearAxis } from './linearAxis'\nimport { zCrosshairLine, zCrosshairRect } from './crosshair'\nimport { zStackCornerRadius } from './stackCornerRadius'\n\nexport const zConfig = z.object({\n line: z\n .object({\n xAxis: zXBandAxis.optional(),\n yAxis: zYLinearAxis.optional(),\n crosshairLine: zCrosshairLine.optional(),\n })\n .optional(),\n column: z\n .object({\n xAxis: zXBandAxis.optional(),\n yAxis: zYLinearAxis.optional(),\n crosshairRect: zCrosshairRect.optional(),\n stackCornerRadius: zStackCornerRadius.optional(),\n })\n .optional(),\n columnParallel: z\n .object({\n xAxis: zXBandAxis.optional(),\n yAxis: zYLinearAxis.optional(),\n crosshairRect: zCrosshairRect.optional(),\n stackCornerRadius: zStackCornerRadius.optional(),\n })\n .optional(),\n columnPercent: z\n .object({\n xAxis: zXBandAxis.optional(),\n yAxis: zYLinearAxis.optional(),\n crosshairRect: zCrosshairRect.optional(),\n stackCornerRadius: zStackCornerRadius.optional(),\n })\n .optional(),\n bar: z\n .object({\n xAxis: zXLinearAxis.optional(),\n yAxis: zYBandAxis.optional(),\n crosshairRect: zCrosshairRect.optional(),\n stackCornerRadius: zStackCornerRadius.optional(),\n })\n .optional(),\n barParallel: z\n .object({\n xAxis: zXLinearAxis.optional(),\n yAxis: zYBandAxis.optional(),\n crosshairRect: zCrosshairRect.optional(),\n stackCornerRadius: zStackCornerRadius.optional(),\n })\n .optional(),\n barPercent: z\n .object({\n xAxis: zXLinearAxis.optional(),\n yAxis: zYBandAxis.optional(),\n crosshairRect: zCrosshairRect.optional(),\n stackCornerRadius: zStackCornerRadius.optional(),\n })\n .optional(),\n area: z\n .object({\n xAxis: zXBandAxis.optional(),\n yAxis: zYLinearAxis.optional(),\n crosshairLine: zCrosshairLine.optional(),\n })\n .optional(),\n areaPercent: z\n .object({\n xAxis: zXBandAxis.optional(),\n yAxis: zYLinearAxis.optional(),\n crosshairLine: zCrosshairLine.optional(),\n })\n .optional(),\n\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 type { Datum } from '../properties'\n\nexport type ValueSelector = string | number\n\nexport type PartialDatumSelector = Datum\n\nexport type MeasureSelector = {\n field: string\n operator?: '=' | '==' | '!=' | '>' | '<' | '>=' | '<=' | 'between'\n op?: '=' | '==' | '!=' | '>' | '<' | '>=' | '<=' | 'between'\n value: string | number | Array<string | number>\n}\n\nexport type DimensionSelector = {\n field: string\n operator?: 'in' | 'not in'\n op?: 'in' | 'not in'\n value: string | number | Array<string | number>\n}\n\nexport type Selector = ValueSelector | PartialDatumSelector | MeasureSelector | DimensionSelector\n\nexport type Selectors = Array<Selector>\n\nexport const zSelector = z.union([\n z.string(),\n z.number(),\n z.object({\n field: z.string(),\n operator: z.enum(['=', '==', '!=', '>', '<', '>=', '<=', 'between']).optional(),\n op: z.enum(['=', '==', '!=', '>', '<', '>=', '<=', 'between']).optional(),\n value: z.union([z.string(), z.number(), z.array(z.union([z.string(), z.number()]))]),\n }),\n z.object({\n field: z.string(),\n operator: z.enum(['in', 'not in']).optional(),\n op: z.enum(['in', 'not in']).optional(),\n value: z.union([z.string(), z.number(), z.array(z.union([z.string(), z.number()]))]),\n }),\n])\n\nexport const zSelectors = z.array(zSelector)\n","import { zSelector, zSelectors, type Selector, type Selectors } from '../../dataSelector'\nimport { z } from 'zod'\n\nexport type AnnotationPoint = {\n /**\n * 依赖选择的数据, 进行数据标记.\n */\n selector: Selector | Selectors\n /**\n * 标注的文本\n * @description 标注的文本\n * @default ''\n * @example '标注文本'\n */\n text?: string | string[]\n /**\n * 文本颜色\n * @description 文本颜色\n * @default '#ffffff'\n * @example 'red'\n */\n textColor?: string\n /**\n * 文本字体大小\n * @description 文本字体大小\n * @default 12\n * @example 12\n */\n textFontSize?: number\n /**\n * 文本字体重量\n * @description 文本字体重量\n * @default 400\n * @example 400\n */\n textFontWeight?: number\n\n /**\n * 文本对齐方式\n * @description 文本对齐方式\n * @default 'left'\n * @example 'left'\n */\n textAlign?: 'left' | 'right' | 'center'\n /**\n * 文本垂直对齐方式\n * @description 文本垂直对齐方式\n * @default 'middle'\n * @example 'middle'\n */\n textBaseline?: 'top' | 'middle' | 'bottom'\n\n /**\n * 文本Y方向的, 偏移量\n * @description 文本Y方向的, 偏移量, 支持正负\n * @default 0\n * @example offsetY: 10\n */\n offsetY?: number\n /**\n * 文本X方向的, 偏移量\n * @description 文本X方向的, 偏移量, 支持正负\n * @default 0\n * @example offsetX: -10\n */\n offsetX?: number\n /**\n * 背景可见\n * @description 背景可见\n * @default true\n * @example true\n */\n backgroundVisible?: boolean\n /**\n * 背景颜色\n * @description 背景颜色\n * @default '#212121'\n * @example 'red'\n */\n backgroundColor?: string\n /**\n * 背景边框颜色\n * @description 背景边框颜色\n * @default 'red'\n * @example 'red'\n */\n backgroundBorderColor?: string\n /**\n * 背景边框宽度\n * @description 背景边框宽度\n * @default 1\n * @example 2\n */\n backgroundBorderWidth?: number\n /**\n * 背景边框圆角\n * @description 背景边框圆角\n * @default 4\n * @example 4\n */\n backgroundBorderRadius?: number\n /**\n * 背景内边距\n * @description 背景内边距\n * @default 4\n * @example 4\n */\n backgroundPadding?: number\n}\n\nexport const zAnnotationPoint = z.object({\n selector: z.union([zSelector, zSelectors]),\n text: z.string().or(z.array(z.string())).optional(),\n textColor: z.string().default('#ffffff').optional(),\n textFontSize: z.number().default(12).optional(),\n textFontWeight: z.number().default(400).optional(),\n textAlign: z.enum(['left', 'right', 'center']).default('center').optional(),\n textBaseline: z.enum(['top', 'middle', 'bottom']).default('middle').optional(),\n backgroundVisible: z.boolean().default(true).optional(),\n backgroundColor: z.string().default('#212121').optional(),\n backgroundBorderColor: z.string().optional(),\n backgroundBorderWidth: z.number().default(1).optional(),\n backgroundBorderRadius: z.number().default(4).optional(),\n backgroundPadding: z.number().optional(),\n offsetY: z.number().default(0).optional(),\n offsetX: z.number().default(0).optional(),\n})\n","import { zSelector, zSelectors, type Selector, type Selectors } from '../../dataSelector'\nimport { z } from 'zod'\n\nexport type AnnotationVerticalLine = {\n /**\n * 依赖选择的数据, 进行数据标记.\n */\n selector?: Selector | Selectors\n /**\n * 固定的x值, 用于标注垂直线\n * @description 类目轴在x方向, 则可输入维值, 数值轴在x方向, 则可输入具体的数值\n * @default []\n */\n xValue?: (number | string) | (number | string)[]\n /**\n * 标注的文本\n * @description 标注的文本\n * @default ''\n * @example '标注文本'\n */\n text?: string | string[]\n /**\n * 文本位置\n * @description 标注线的标签位置(标签相对线的相对位置)。\n * @default 'insideEnd'\n * @example 'outsideEnd'\n */\n textPosition?: 'outsideStart' | 'outsideEnd' | 'outsideMiddle' | 'insideStart' | 'insideMiddle' | 'insideEnd'\n /**\n * 文本颜色\n * @description 文本颜色\n * @default '#ffffff'\n * @example 'red'\n */\n textColor?: string\n /**\n * 文本字体大小\n * @description 文本字体大小\n * @default 12\n * @example 12\n */\n textFontSize?: number\n /**\n * 文本字体重量\n * @description 文本字体重量\n * @default 400\n * @example 400\n */\n textFontWeight?: number\n /**\n * 文本对齐方式\n * @description 文本对齐方式\n * @default 'right'\n * @example 'left'\n */\n textAlign?: 'left' | 'right' | 'center'\n /**\n * 文本垂直对齐方式\n * @description 文本垂直对齐方式\n * @default 'top'\n * @example 'middle'\n */\n textBaseline?: 'top' | 'middle' | 'bottom'\n /**\n * 文本Y方向的, 偏移量\n * @description 文本Y方向的, 偏移量, 支持正负\n * @default 0\n * @example offsetY: 10\n */\n offsetY?: number\n /**\n * 文本X方向的, 偏移量\n * @description 文本X方向的, 偏移量, 支持正负\n * @default 0\n * @example offsetX: -10\n */\n offsetX?: number\n /**\n * 线可见\n * @description 线可见\n * @default true\n * @example true\n */\n lineVisible?: boolean\n /**\n * 线颜色\n * @description 线颜色\n * @default 'red'\n * @example 'red'\n */\n lineColor?: string\n /**\n * 线宽度\n * @description 线宽度\n * @default 2\n * @example 2\n */\n lineWidth?: number\n /**\n * 线样式\n * @description 线样式\n * @default 'solid'\n * @example 'solid'\n */\n lineStyle?: 'solid' | 'dashed' | 'dotted'\n /**\n * 背景可见\n * @description 背景可见\n * @default true\n * @example true\n */\n backgroundVisible?: boolean\n /**\n * 背景颜色\n * @description 背景颜色\n * @default '#212121'\n * @example 'red'\n */\n backgroundColor?: string\n /**\n * 背景边框颜色\n * @description 背景边框颜色\n * @default 'red'\n * @example 'red'\n */\n backgroundBorderColor?: string\n /**\n * 背景边框宽度\n * @description 背景边框宽度\n * @default 1\n * @example 2\n */\n backgroundBorderWidth?: number\n /**\n * 背景边框圆角\n * @description 背景边框圆角\n * @default 4\n * @example 4\n */\n backgroundBorderRadius?: number\n /**\n * 背景内边距\n * @description 背景内边距\n * @default 4\n * @example 4\n */\n backgroundPadding?: number\n}\n\nexport const zAnnotationVerticalLine = z.object({\n selector: z.union([zSelector, zSelectors]).optional(),\n xValue: z.union([z.number(), z.string(), z.array(z.union([z.number(), z.string()]))]).optional(),\n text: z.string().or(z.array(z.string())).optional(),\n textPosition: z\n .enum(['outsideStart', 'outsideEnd', 'outsideMiddle', 'insideStart', 'insideMiddle', 'insideEnd'])\n .default('insideEnd')\n .optional(),\n textColor: z.string().default('#ffffff').optional(),\n textFontSize: z.number().default(12).optional(),\n textFontWeight: z.number().default(400).optional(),\n textAlign: z.enum(['left', 'right', 'center']).default('right').optional(),\n textBaseline: z.enum(['top', 'middle', 'bottom']).default('top').optional(),\n lineVisible: z.boolean().optional(),\n lineColor: z.string().optional(),\n lineWidth: z.number().optional(),\n lineStyle: z.union([z.literal('solid'), z.literal('dashed'), z.literal('dotted')]).optional(),\n backgroundVisible: z.boolean().default(true).optional(),\n backgroundColor: z.string().default('#212121').optional(),\n backgroundBorderColor: z.string().optional(),\n backgroundBorderWidth: z.number().default(1).optional(),\n backgroundBorderRadius: z.number().default(4).optional(),\n backgroundPadding: z.number().optional(),\n offsetY: z.number().default(0).optional(),\n offsetX: z.number().default(0).optional(),\n})\n","import { zSelector, zSelectors, type Selector, type Selectors } from '../../dataSelector'\nimport { z } from 'zod'\n\nexport type AnnotationHorizontalLine = {\n /**\n * 依赖选择的数据, 进行数据标记.\n */\n selector?: Selector | Selectors\n /**\n * 固定的y值, 用于标注水平线\n * @description 类目轴在y方向, 则可输入维值, 数值轴在y方向, 则可输入具体的数值\n * @default []\n */\n yValue?: (number | string) | (number | string)[]\n /**\n * 标注的文本\n * @description 标注的文本\n * @default ''\n * @example '标注文本'\n */\n text?: string | string[]\n /**\n * 文本位置\n * @description 标注线的标签位置(标签相对线的相对位置)。\n * @default 'insideEnd'\n * @example 'outsideEnd'\n */\n textPosition?: 'outsideStart' | 'outsideEnd' | 'outsideMiddle' | 'insideStart' | 'insideMiddle' | 'insideEnd'\n /**\n * 文本颜色\n * @description 文本颜色\n * @default '#ffffff'\n * @example 'red'\n */\n textColor?: string\n /**\n * 文本字体大小\n * @description 文本字体大小\n * @default 12\n * @example 12\n */\n textFontSize?: number\n /**\n * 文本字体重量\n * @description 文本字体重量\n * @default 400\n * @example 400\n */\n textFontWeight?: number\n\n /**\n * 文本对齐方式\n * @description 文本对齐方式\n * @default 'left'\n * @example 'center'\n */\n textAlign?: 'left' | 'right' | 'center'\n /**\n * 文本垂直对齐方式\n * @description 文本垂直对齐方式\n * @default 'bottom'\n * @example 'middle'\n */\n textBaseline?: 'top' | 'middle' | 'bottom'\n /**\n * 文本Y方向的, 偏移量\n * @description 文本Y方向的, 偏移量, 支持正负\n * @default 0\n * @example offsetY: 10\n */\n offsetY?: number\n /**\n * 文本X方向的, 偏移量\n * @description 文本X方向的, 偏移量, 支持正负\n * @default 0\n * @example offsetX: -10\n */\n offsetX?: number\n /**\n * 线可见\n * @description 线可见\n * @default true\n * @example true\n */\n lineVisible?: boolean\n /**\n * 线颜色\n * @description 线颜色\n * @default 'red'\n * @example 'red'\n */\n lineColor?: string\n /**\n * 线宽度\n * @description 线宽度\n * @default 2\n * @example 2\n */\n lineWidth?: number\n /**\n * 线样式\n * @description 线样式\n * @default 'solid'\n * @example 'solid'\n */\n lineStyle?: 'solid' | 'dashed' | 'dotted'\n /**\n * 背景可见\n * @description 背景可见\n * @default true\n * @example true\n */\n backgroundVisible?: boolean\n /**\n * 背景颜色\n * @description 背景颜色\n * @default '#212121'\n * @example 'red'\n */\n backgroundColor?: string\n /**\n * 背景边框颜色\n * @description 背景边框颜色\n * @default 'red'\n * @example 'red'\n */\n backgroundBorderColor?: string\n /**\n * 背景边框宽度\n * @description 背景边框宽度\n * @default 1\n * @example 2\n */\n backgroundBorderWidth?: number\n /**\n * 背景边框圆角\n * @description 背景边框圆角\n * @default 4\n * @example 4\n */\n backgroundBorderRadius?: number\n /**\n * 背景内边距\n * @description 背景内边距\n * @default 4\n * @example 4\n */\n backgroundPadding?: number\n}\n\nexport const zAnnotationHorizontalLine = z.object({\n selector: z.union([zSelector, zSelectors]).optional(),\n yValue: z.union([z.number(), z.string(), z.array(z.union([z.number(), z.string()]))]).optional(),\n text: z.string().or(z.array(z.string())).optional(),\n textPosition: z\n .enum(['outsideStart', 'outsideEnd', 'outsideMiddle', 'insideStart', 'insideMiddle', 'insideEnd'])\n .default('insideMiddle')\n .optional(),\n textColor: z.string().default('#ffffff').optional(),\n textFontSize: z.number().default(12).optional(),\n textFontWeight: z.number().default(400).optional(),\n textAlign: z.enum(['left', 'right', 'center']).default('center').optional(),\n textBaseline: z.enum(['top', 'middle', 'bottom']).default('bottom').optional(),\n lineVisible: z.boolean().optional(),\n lineColor: z.string().optional(),\n lineWidth: z.number().optional(),\n lineStyle: z.union([z.literal('solid'), z.literal('dashed'), z.literal('dotted')]).optional(),\n backgroundVisible: z.boolean().default(true).optional(),\n backgroundColor: z.string().default('#212121').optional(),\n backgroundBorderColor: z.string().optional(),\n backgroundBorderWidth: z.number().default(1).optional(),\n backgroundBorderRadius: z.number().default(4).optional(),\n backgroundPadding: z.number().optional(),\n offsetY: z.number().default(0).optional(),\n offsetX: z.number().default(0).optional(),\n})\n","import { zSelector, zSelectors, type Selector, type Selectors } from '../../dataSelector'\nimport { z } from 'zod'\n\nexport type AnnotationArea = {\n /**\n * 依赖选择的数据, 进行数据标记.\n */\n selector: Selector | Selectors\n\n /**\n * 标注的文本\n * @description 标注的文本\n * @default ''\n * @example '标注文本'\n */\n text?: string | string[]\n\n /**\n * 文本位置\n * @description 文本位置\n * @default 'top'\n * @example 'top'\n */\n textPosition?: 'top' | 'topRight' | 'topLeft' | 'bottom' | 'bottomLeft' | 'bottomRight' | 'left' | 'right'\n\n /**\n * 文本颜色\n * @description 文本颜色\n * @default '#ffffff'\n * @example 'red'\n */\n textColor?: string\n /**\n * 文本字体大小\n * @description 文本字体大小\n * @default 12\n * @example 12\n */\n textFontSize?: number\n /**\n * 文本字体重量\n * @description 文本字体重量\n * @default 400\n * @example 400\n */\n textFontWeight?: number\n\n /**\n * 文本对齐方式\n * @description 文本对齐方式\n * @default 'left'\n * @example 'left'\n */\n textAlign?: 'left' | 'right' | 'center'\n /**\n * 文本垂直对齐方式\n * @description 文本垂直对齐方式\n * @default 'middle'\n * @example 'middle'\n */\n textBaseline?: 'top' | 'middle' | 'bottom'\n /**\n * 背景可见\n * @description 背景可见\n * @default true\n * @example true\n */\n backgroundVisible?: boolean\n /**\n * 背景颜色\n * @description 背景颜色\n * @default '#212121'\n * @example 'red'\n */\n backgroundColor?: string\n /**\n * 背景边框颜色\n * @description 背景边框颜色\n * @default 'red'\n * @example 'red'\n */\n backgroundBorderColor?: string\n /**\n * 背景边框宽度\n * @description 背景边框宽度\n * @default 1\n * @example 2\n */\n backgroundBorderWidth?: number\n /**\n * 背景边框圆角\n * @description 背景边框圆角\n * @default 4\n * @example 4\n */\n backgroundBorderRadius?: number\n /**\n * 背景内边距\n * @description 背景内边距\n * @default 4\n * @example 4\n */\n backgroundPadding?: number\n\n /**\n * 面积区域颜色\n * @description 面积区域颜色\n * @default 'red'\n * @example 'red'\n */\n areaColor?: string\n /**\n * 面积区域颜色透明度\n * @description 面积区域颜色透明度\n * @default 0.5\n * @example 0.5\n */\n areaColorOpacity?: number\n /**\n * 面积区域边框颜色\n * @description 面积区域边框颜色\n * @default 'red'\n * @example 'red'\n */\n areaBorderColor?: number\n /**\n * 面积区域边框宽度\n * @description 面积区域边框宽度\n * @default 2\n * @example 2\n */\n areaBorderWidth?: number\n /**\n * 面积区域边框圆角\n * @description 面积区域边框圆角\n * @default 4\n * @example 4\n */\n areaBorderRadius?: number\n /**\n * 面积区域的边距\n * @description 面积区域的边距\n * @default 8\n * @example 0\n */\n outerPadding?: number\n}\n\nexport const zAnnotationArea = z.object({\n selector: z.union([zSelector, zSelectors]),\n textPosition: z\n .enum(['top', 'topRight', 'topLeft', 'bottom', 'bottomLeft', 'bottomRight', 'left', 'right'])\n .default('top')\n .optional(),\n text: z.string().or(z.array(z.string())).optional(),\n textColor: z.string().default('#ffffff').optional(),\n textFontSize: z.number().default(12).optional(),\n textFontWeight: z.number().default(400).optional(),\n textAlign: z.enum(['left', 'right', 'center']).default('center').optional(),\n textBaseline: z.enum(['top', 'middle', 'bottom']).default('middle').optional(),\n\n backgroundVisible: z.boolean().default(true).optional(),\n backgroundColor: z.string().default('#212121').optional(),\n backgroundBorderColor: z.string().optional(),\n backgroundBorderWidth: z.number().default(1).optional(),\n backgroundBorderRadius: z.number().default(4).optional(),\n backgroundPadding: z.number().optional(),\n\n areaColor: z.string().default('red').optional(),\n areaColorOpacity: z.number().default(0.5).optional(),\n areaBorderColor: z.number().optional(),\n areaBorderWidth: z.number().default(2).optional(),\n areaBorderRadius: z.number().default(4).optional(),\n\n outerPadding: z.number().optional(),\n})\n","import { z } from 'zod'\nimport { zAnnotationPoint } from './annotationPoint'\nimport { zAnnotationVerticalLine } from './annotationVerticalLine'\nimport { zAnnotationHorizontalLine } from './annotationHorizontalLine'\nimport { zAnnotationArea } from './annotationArea'\n\nexport const zAnnotation = z.object({\n annotationPoint: zAnnotationPoint.or(z.array(zAnnotationPoint)).optional(),\n annotationVerticalLine: zAnnotationVerticalLine.or(z.array(zAnnotationVerticalLine)).optional(),\n annotationHorizontalLine: zAnnotationHorizontalLine.or(z.array(zAnnotationHorizontalLine)).optional(),\n annotationArea: zAnnotationArea.or(z.array(zAnnotationArea)).optional(),\n})\n\nexport type Annotation = z.infer<typeof zAnnotation>\n","import { z } from 'zod'\nimport { zSelector, zSelectors, type Selector, type Selectors } from '../../dataSelector'\n\nexport type BarStyle = {\n /**\n * 数据选择器\n * @description\n * 若配置selector, 提供数值 selector, 局部数据 selector, 条件维度 selector, 条件指标 selector 共四类数据匹配能力\n * 若未配置selector, 则样式全局生效.\n * @type {Selector | Selectors}\n * @example 数值选择器\n * selector = \"tool\"\n * selector = [\"tool\", \"book\"]\n * selector = 100\n * selector = [100, 200]\n * @example 局部数据选择器\n * selector = { profit: 100 }\n * selector = [{ profit: 100 }, { profit: 200 }]\n * @example 条件维度选择器\n * selector = {\n * field: 'category',\n * operator: 'in',\n * value: 'tool'\n * }\n * selector = {\n * field: 'category',\n * operator: 'not in',\n * value: 'book'\n * }\n * @example 条件指标选择器\n * selector = {\n * field: 'profit',\n * operator: '>=',\n * value: 100\n * }\n * selector = {\n * field: 'profit',\n * operator: 'between'\n * value: [100, 300]\n * }\n */\n selector?: Selector | Selectors\n\n /**\n * 柱状图颜色\n * @description 柱状图颜色\n * @type {string}\n * @default #000000\n */\n barColor?: string\n /**\n * 柱状图颜色透明度\n * @description 柱状图颜色透明度\n * @type {number}\n * @default 1\n */\n barColorOpacity?: number\n /**\n * 柱状图边框颜色\n * @description 柱状图边框颜色\n * @type {string}\n * @default #000000\n */\n barBorderColor?: string\n /**\n * 柱状图边框宽度\n * @description 柱状图边框宽度\n * @type {number}\n * @default 0\n */\n barBorderWidth?: number\n /**\n * 柱状图边框样式\n * @description 柱状图边框样式\n * @type {number}\n * @default solid\n * @example solid\n * @example dashed\n * @example dotted\n */\n barBorderStyle?: 'solid' | 'dashed' | 'dotted'\n /**\n * 柱状图圆角\n * @description 柱状图圆角\n * @type {number | number[]}\n * @default 0\n * @example 4\n * @example [0, 0, 10, 10]\n */\n barRadius?: number | number[]\n}\n\nexport const zBarStyle = z.object({\n selector: z.union([zSelector, zSelectors]).optional(),\n barColor: z.string().optional(),\n barColorOpacity: z.number().optional(),\n barBorderColor: z.string().optional(),\n barBorderWidth: z.number().optional(),\n barBorderStyle: z.union([z.literal('solid'), z.literal('dashed'), z.literal('dotted')]).optional(),\n barRadius: z.union([z.number(), z.array(z.number())]).optional(),\n})\n","import { z } from 'zod'\nimport { zSelector, zSelectors, type Selector, type Selectors } from '../../dataSelector'\n\nexport type PointStyle = {\n /**\n * 数据选择器\n * @description\n * 若配置selector, 提供数值 selector, 局部数据 selector, 条件维度 selector, 条件指标 selector 共四类数据匹配能力\n * 若未配置selector, 则样式全局生效.\n * @type {Selector | Selectors}\n * @example 数值选择器\n * selector = \"tool\"\n * selector = [\"tool\", \"book\"]\n * selector = 100\n * selector = [100, 200]\n * @example 局部数据选择器\n * selector = { profit: 100 }\n * selector = [{ profit: 100 }, { profit: 200 }]\n * @example 条件维度选择器\n * selector = {\n * field: 'category',\n * operator: 'in',\n * value: 'tool'\n * }\n * selector = {\n * field: 'category',\n * operator: 'not in',\n * value: 'book'\n * }\n * @example 条件指标选择器\n * selector = {\n * field: 'profit',\n * operator: '>=',\n * value: 100\n * }\n * selector = {\n * field: 'profit',\n * operator: 'between'\n * value: [100, 300]\n * }\n */\n selector?: Selector | Selectors\n\n /**\n * 点大小\n * @description 点大小\n * @type {number}\n * @default 10\n */\n pointSize?: number\n /**\n * 柱状图颜色\n * @description 柱状图颜色\n * @type {string}\n * @default #000000\n */\n pointColor?: string\n /**\n * 柱状图颜色透明度\n * @description 柱状图颜色透明度\n * @type {number}\n * @default 1\n */\n pointColorOpacity?: number\n /**\n * 柱状图边框颜色\n * @description 柱状图边框颜色\n * @type {string}\n * @default #000000\n */\n pointBorderColor?: string\n /**\n * 柱状图边框宽度\n * @description 柱状图边框宽度\n * @type {number}\n * @default 0\n */\n pointBorderWidth?: number\n /**\n * 柱状图边框样式\n * @description 柱状图边框样式\n * @type {number}\n * @default solid\n * @example solid\n * @example dashed\n * @example dotted\n */\n pointBorderStyle?: 'solid' | 'dashed' | 'dotted'\n}\n\nexport const zPointStyle = z.object({\n selector: z.union([zSelector, zSelectors]).optional(),\n pointSize: z.number().optional(),\n pointColor: z.string().optional(),\n pointColorOpacity: z.number().optional(),\n pointBorderColor: z.string().optional(),\n pointBorderWidth: z.number().optional(),\n pointBorderStyle: z.union([z.enum(['solid', 'dashed', 'dotted'])]).optional(),\n})\n","import { z } from 'zod'\nimport { zSelector, zSelectors, type Selector, type Selectors } from '../../dataSelector'\n\nexport type LineStyle = {\n /**\n * 数据选择器\n * @description\n * 若配置selector, 提供数值 selector, 局部数据 selector, 条件维度 selector, 条件指标 selector 共四类数据匹配能力\n * 若未配置selector, 则样式全局生效.\n * @type {Selector | Selectors}\n * @example 数值选择器\n * selector = \"tool\"\n * selector = [\"tool\", \"book\"]\n * selector = 100\n * selector = [100, 200]\n * @example 局部数据选择器\n * selector = { profit: 100 }\n * selector = [{ profit: 100 }, { profit: 200 }]\n * @example 条件维度选择器\n * selector = {\n * field: 'category',\n * operator: 'in',\n * value: 'tool'\n * }\n * selector = {\n * field: 'category',\n * operator: 'not in',\n * value: 'book'\n * }\n * @example 条件指标选择器\n * selector = {\n * field: 'profit',\n * operator: '>=',\n * value: 100\n * }\n * selector = {\n * field: 'profit',\n * operator: 'between'\n * value: [100, 300]\n * }\n */\n selector?: Selector | Selectors\n\n /**\n * 折线图是否平滑\n * @description 折线图是否平滑\n * @type {boolean}\n * @default true\n */\n lineSmooth?: boolean\n\n /**\n * 柱状图颜色\n * @description 柱状图颜色\n * @type {string}\n * @default {undefined} follow series color\n */\n lineColor?: string\n /**\n * 柱状图颜色透明度\n * @description 柱状图颜色透明度\n * @type {number}\n * @default 1\n */\n lineColorOpacity?: number\n /**\n * 柱状图边框宽度\n * @description 柱状图边框宽度\n * @type {number}\n * @default 1\n */\n lineWidth?: number\n /**\n * 柱状图边框样式\n * @description 柱状图边框样式\n * @type {number}\n * @default solid\n * @example solid\n * @example dashed\n * @example dotted\n */\n lineStyle?: 'solid' | 'dashed' | 'dotted'\n}\n\nexport const zLineStyle = z.object({\n selector: z.union([zSelector, zSelectors]).optional(),\n lineSmooth: z.boolean().default(true).optional(),\n lineColor: z.string().optional(),\n lineColorOpacity: z.number().optional(),\n lineWidth: z.number().optional(),\n lineStyle: z.union([z.enum(['solid', 'dashed', 'dotted'])]).optional(),\n})\n","import { z } from 'zod'\nimport { zSelector, zSelectors, type Selector, type Selectors } from '../../dataSelector'\n\nexport type AreaStyle = {\n /**\n * 数据选择器\n * @description\n * 若配置selector, 提供数值 selector, 局部数据 selector, 条件维度 selector, 条件指标 selector 共四类数据匹配能力\n * 若未配置selector, 则样式全局生效.\n * @type {Selector | Selectors}\n * @example 数值选择器\n * selector = \"tool\"\n * selector = [\"tool\", \"book\"]\n * selector = 100\n * selector = [100, 200]\n * @example 局部数据选择器\n * selector = { profit: 100 }\n * selector = [{ profit: 100 }, { profit: 200 }]\n * @example 条件维度选择器\n * selector = {\n * field: 'category',\n * operator: 'in',\n * value: 'tool'\n * }\n * selector = {\n * field: 'category',\n * operator: 'not in',\n * value: 'book'\n * }\n * @example 条件指标选择器\n * selector = {\n * field: 'profit',\n * operator: '>=',\n * value: 100\n * }\n * selector = {\n * field: 'profit',\n * operator: 'between'\n * value: [100, 300]\n * }\n */\n selector?: Selector | Selectors\n\n /**\n * 面积图元的颜色\n * @description 面积图元的颜色\n * @type {string}\n * @default {undefined} follow series color\n */\n areaColor?: string\n /**\n * 面积图元的颜色透明度\n * @description 面积图元的颜色透明度\n * @type {number}\n * @default 1\n */\n areaColorOpacity?: number\n}\n\nexport const zAreaStyle = z.object({\n selector: z.union([zSelector, zSelectors]).optional(),\n areaColor: z.string().optional(),\n areaColorOpacity: z.number().optional(),\n})\n","import { z } from 'zod'\nimport { zBarStyle } from './barStyle'\nimport { zPointStyle } from './pointStyle'\nimport { zLineStyle } from './lineStyle'\nimport { zAreaStyle } from './areaStyle'\n\nexport const zMarkStyle = z.object({\n barStyle: zBarStyle.or(z.array(zBarStyle)).optional(),\n pointStyle: zPointStyle.or(z.array(zPointStyle)).optional(),\n lineStyle: zLineStyle.or(z.array(zLineStyle)).optional(),\n areaStyle: zAreaStyle.or(z.array(zAreaStyle)).optional(),\n})\n\nexport type MarkStyle = z.infer<typeof zMarkStyle>\n","import { z } from 'zod'\nimport { zBaseConfig } from '../baseConfig'\nimport { zConfig } from '../config'\nimport { zAnnotation } from '../annotation'\nimport { zMarkStyle } from '../markStyle'\n\nexport const zCustomThemeConfig = z.object({\n baseConfig: zBaseConfig.optional(),\n config: zConfig.optional(),\n annotation: zAnnotation.optional(),\n markStyle: zMarkStyle.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":["__webpack_require__","definition","key","Object","obj","prop","Symbol","initAdvancedVSeed","advancedVSeed","context","vseed","chartType","execPipeline","pipeline","initialValue","result","prev","cur","isVTable","isVChart","isPivotChart","measures","dimensions","hasRowOrColumnDimension","dimension","hasMeasureGroup","measure","Intl","translateMap","value","segments","values","text","segment","index","translatedText","isNullish","console","locale","intl","i18n","createNumFormatter","format","type","ratio","symbol","thousandSeparator","decimalPlaces","round","prefix","suffix","num","Number","typeSymbol","multiplier","Math","numStr","parts","autoNumFormatter","String","countDecimalPlaces","str","parseInt","decimalPart","numFormat","rules","NUMBER_FORMAT_RULES","rule","createFormatter","autoFormatter","findMeasureById","id","stack","current","autoMeasures","dataset","Error","autoMeasureGroup","top100dataset","sample","item","undefined","newMeasures","currentGroup","createEmptyMeasureGroup","measureGroups","autoDimensions","dim","FoldMeasureName","FoldMeasureValue","FoldMeasureId","UnfoldDimensionGroup","UnfoldDimensionGroupId","Separator","ORIGINAL_DATA","unfoldDimensions","unfoldStartIndex","unfoldGroupName","unfoldGroupId","foldMeasureId","dimensionsSeparator","dimensionsToBeUnfolded","unfoldInfo","colorItems","colorMap","i","datum","colorName","generateDimGroupName","colorId","unique","dimensionsToBeGrouped","foldMeasures","measureId","measureName","measureValue","foldInfo","Array","ids","d","j","omit","alias","emptyReshapeResult","dataReshapeFor2D1M","options","foldMeasureName","foldMeasureValue","unfoldDimensionGroup","unfoldDimensionGroupId","foldedDataset","finalDataset","dataReshapeFor1D1M","reshapeTo2D1M","newDatasets","reshapeTo1D1M","pivotReshapeTo1D1M","datasetReshapeInfo","measureGroup","commonDimensions","groupId","newSubDataset","reshapeInfo","pivotReshapeTo2D1M","encodingXY","encoding","isZeroDimension","x","y","group","color","encodingYX","encodingPolar","radius","angle","vchartBaseConfig","config","pick","lineConfig","columnConfig","pieConfig","areaConfig","areaPercentConfig","barConfig","barParallelConfig","barPercentConfig","columnParallelConfig","columnPercentConfig","vchartTheme","customTheme","theme","baseConfigVChartTheme","baseConfigVChart","mergedConfig","mergeDeep","clone","chartConfigTheme","chartConfig","pivotAdapter","pivotPipeline","usePivotChart","markStyle","annotation","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","ANNOTATION_Z_INDEX","LINEAR_AXIS_INNER_OFFSET_TOP","xLinear","zero","nice","inverse","max","min","linearAxis","yBand","yLinear","percent","stackInverse","stackCornerRadius","backgroundColor","baseConfig","defaultTooltip","tooltip","enable","autoFormat","isEmpty","formatter","formatValue","discreteLegend","legend","position","labelFontColor","labelFontSize","labelFontWeight","maxSize","border","shapeType","orient","legendPosition","items","pivotDiscreteLegend","colorIdMap","colorScheme","legends","colorMapping","mappingList","idMap","_","v","pivotIndicators","chartPipeline","indicators","newEncoding","newDatasetReshapeInfo","newContext","chartSpec","pivotIndicatorsAsRow","pivotIndicatorsAsCol","pivotGridStyle","transparent","hoverBackgroundColor","pivotColumnDimensions","columnDimensions","columns","pivotRowDimensions","rowDimensions","rows","selector","vchartDatum","vchartKeys","k","selectors","isValueSelector","isMeasureSelector","op","selectorValueArr","isDimensionSelector","isPartialDatumSelector","barStyle","field","barStyles","customMap","style","barBorderColor","barBorderStyle","barBorderWidth","barColor","barColorOpacity","barRadius","lineDash","pointStyle","pointStyles","pointBorderColor","pointBorderStyle","pointBorderWidth","pointColor","pointColorOpacity","pointSize","lineStyle","lineStyles","lineGroups","groupBy","lineColor","lineColorOpacity","lineSmooth","lineWidth","dashSegment","dashGap","curveType","lineData","areaStyle","areaStyles","areaColor","areaColorOpacity","isSubset","sub","annotationPoint","annotationPointList","markPoint","selectorPoint","textColor","textFontSize","textFontWeight","textAlign","textBaseline","backgroundBorderColor","backgroundBorderRadius","backgroundBorderWidth","backgroundPadding","backgroundVisible","offsetX","offsetY","selectedData","data","targetDatum","annotationVerticalLine","annotationVerticalLineList","positionMap","markLine","xValue","textPosition","lineVisible","generateOneMarkLine","isArray","isString","isNumber","xValueArr","specMarkLine","newMarkLine","annotationHorizontalLine","yValue","yValueArr","annotationArea","annotationAreaList","markArea","outerPadding","areaBorderColor","areaBorderRadius","areaBorderWidth","positionData","xyList","yAxisHelper","xAxisHelper","yScale","minX","maxX","minY","maxY","xScale","annotationAreaBand","depth","xBandWidth","yBandWidth","verticalCrosshairLine","labelColor","labelVisible","labelBackgroundColor","crosshair","verticalCrosshairRect","rectColor","horizontalCrosshairRect","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","buildSpec","build","Builder","advanced","themeKey","registerColumn","registerBar","registerLine","registerArea","registerAreaPercent","registerBarPercent","registerColumnPercent","registerColumnParallel","registerBarParallel","registerPie","lightTheme","barBandAxis","crosshairLine","crosshairRect","darkTheme","registerCustomTheme","themeConfig","registerLightTheme","registerDarkTheme","registerAll","zChartType","z","zDatum","zDataset","zDimension","zDimensions","zNumFormat","zMeasure","zMeasureGroup","zMeasures","zFoldInfo","zUnfoldInfo","zDatasetReshapeInfo","zEncoding","zBackgroundColor","zLabel","zColor","zTooltip","zLegend","zVChartBaseConfig","zVTableBaseConfig","zBaseConfig","zAxis","zXBandAxis","zYBandAxis","zXLinearAxis","zYLinearAxis","zCrosshairLine","zCrosshairRect","zStackCornerRadius","zConfig","zSelector","zSelectors","zAnnotationPoint","zAnnotationVerticalLine","zAnnotationHorizontalLine","zAnnotationArea","zAnnotation","zBarStyle","zPointStyle","zLineStyle","zAreaStyle","zMarkStyle","zCustomThemeConfig","zCustomTheme","zTheme"],"mappings":"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8B;QACAuJ;QACAnF;QACAQ;QACAkB;QACAmB;QACAc;QACAG;KACD;IACDxF;IACAH;IACArB;CACD;AAEM,MAAM8I,mBAAiC;IAAC5N,0BAAakC,WAAMyL;CAAW;AC7C7E,MAAME,SAAuB;IAC3BzM;IACAoC;IACAD;IACAnF;IACAqF;IACAhK;IACAmI;IACAyB;IACAvB;IACA8B;IACA4J;IACAtJ;IACAkD;IACAsC;IACAmB;IACAc;IACAoB;CACD;AAED,MAAMe,cAA4B;IAChCnM;IACAqE;IACAF;IACA9E;IACAuE,gBAAgB;QACdnE;QACAoC;QACAD;QACAnF;QACAqF;QACAtC;QACAS;QACAyB;QACAvB;QACA8B;QACA4J;QACApG;QACAsC;QACAmB;QACAc;QACAoB;KACD;IACDzG;IACAH;IACArB;CACD;AAEM,MAAMiJ,qBAAqB;IAAC/N,0BAAa6N,QAAQC;CAAa;ACjDrE,MAAME,iBAA+B;IACnCvM;IACA+B;IACApF;IACAqF;IACAhK;IACAmI;IACAyB;IACAvB;IACA8B;IACAM;IACAsJ;IACApG;IACAsC;IACAmB;IACAc;IACAoB;CACD;AAED,MAAMkB,sBAAoC;IACxCtM;IACAqE;IACAF;IACA9E;IACAuE,gBAAgB;QACd9D;QACA+B;QACApF;QACAqF;QACAtC;QACAS;QACAyB;QACAvB;QACA8B;QACA4J;QACApG;QACAsC;QACAmB;QACAc;QACAoB;KACD;IACDzG;IACAH;IACArB;CACD;AAEM,MAAMoJ,6BAA2C;IAAClO,0BAAagO,gBAAgBC;CAAqB;AC5C3G,MAAME,gBAA8B;IAClC/M;IACAoC;IACAD;IACAnF;IACAqF;IACAH;IACA7J;IACAmI;IACAyB;IACAvB;IACA8B;IACA4J;IACAtJ;IACAkD;IACAsC;IACAmB;IACAc;IACAoB;CACD;AAED,MAAMqB,qBAAmC;IACvCzM;IACAqE;IACAF;IACA9E;IACAuE,gBAAgB;QACdnE;QACAoC;QACAD;QACAnF;QACAkF;QACAG;QACAtC;QACAS;QACAyB;QACAvB;QACA8B;QACA4J;QACApG;QACAsC;QACAmB;QACAc;QACAoB;KACD;IACDzG;IACAH;IACArB;CACD;AAEM,MAAMuJ,4BAA0C;IAACrO,0BAAamO,eAAeC;CAAoB;ACpDxG,MAAME,MAAoB;IACxBjN;IACAmC;IACApF;IACAqF;IACAhK;IACAoJ;IACAO;IACAtB;IACA8B;IACA8J;IACAxJ;IACAkD;IACAsC;IACAmB;IACAc;IACAoB;CACD;AAED,MAAMwB,WAAyB;IAC7B5M;IACAqE;IACAD;IACA/E;IACAuE,gBAAgB;QACdlE;QACAmC;QACApF;QACAqF;QACAtC;QACAiC;QACAtB;QACAA;QACA8B;QACA8J;QACAtG;QACAsC;QACAmB;QACAc;QACAoB;KACD;IACDzG;IACAH;IACArB;CACD;AAEM,MAAM0J,kBAAgC;IAACxO,0BAAasO,KAAKC;CAAU;AC9C1E,MAAME,cAA4B;IAChCnN;IACAkC;IACApF;IACAqF;IACAhK;IACAoJ;IACAO;IACAtB;IACA8B;IACA8J;IACAxJ;IACAkD;IACAsC;IACAmB;IACAc;IACAoB;CACD;AAED,MAAM2B,mBAAiC;IACrC/M;IACAqE;IACAD;IACA/E;IACAuE,gBAAgB;QACdjE;QACAkC;QACApF;QACAqF;QACAtC;QACAiC;QACAP;QACAf;QACA8B;QACA8J;QACAtG;QACAsC;QACAmB;QACAc;QACAoB;KACD;IACDzG;IACAH;IACArB;CACD;AAEM,MAAM6J,0BAAwC;IAAC3O,0BAAayO,aAAaC;CAAkB;AC7ClG,MAAME,aAA2B;IAC/BvN;IACAmC;IACApF;IACAqF;IACAH;IACA7J;IACAoJ;IACAO;IACAtB;IACA8B;IACA8J;IACAxJ;IACAkD;IACAsC;IACAmB;IACAc;IACAoB;CACD;AAED,MAAM8B,kBAAgC;IACpClN;IACAqE;IACAD;IACA/E;IACAuE,gBAAgB;QACdlE;QACAmC;QACApF;QACAqF;QACAH;QACAnC;QACAiC;QACAP;QACAf;QACA8B;QACA8J;QACAtG;QACAsC;QACAmB;QACAc;QACAoB;KACD;IACDzG;IACAH;IACArB;CACD;AAEM,MAAMgK,yBAAuC;IAAC9O,0BAAa4O,YAAYC;CAAiB;AC/C/F,MAAME,YAAqB;IACzBxN;IACAgC;IACAnF;IACAqF;IACAhK;IACAmI;IACAyB;IACAvB;IACA8B;IACAuJ;IACAjJ;IACA8D;IACAQ;IACAY;IACAM;IACAmB;IACAc;IACAG;CACD;AAED,MAAMkD,YAA0B;IAC9BrN;IACAqE;IACAF;IACA9E;IACAuE,gBAAgB;QACdhE;QACAnD;QACAqF;QACAF;QACApC;QACAS;QACAyB;QACAvB;QACA8B;QACAuJ;QACAnF;QACAQ;QACAY;QACAM;QACAmB;QACAc;QACAG;KACD;IACDxF;IACAH;IACArB;CACD;AAEM,MAAMmK,mBAAmB;IAACjP,0BAAa+O,WAAMC;CAAW;ACjD/D,MAAME,cAA4B;IAChC3N;IACAgC;IACAnF;IACAqF;IACAH;IACA7J;IACAmI;IACAyB;IACAvB;IACA8B;IACAuJ;IACAjJ;IACA8D;IACAQ;IACAY;IACAM;IACAmB;IACAc;IACAG;CACD;AAED,MAAMqD,mBAAiC;IACrCxN;IAEAqE;IACAF;IACA9E;IACAuE,gBAAgB;QACdhE;QACAgC;QACAnF;QACAqF;QACAH;QACAnC;QACAS;QACAyB;QACAvB;QACA8B;QACAuJ;QACAnF;QACAQ;QACAY;QACAM;QACAmB;QACAc;QACAG;KACD;IACDxF;IACAH;IACArB;CACD;AAEM,MAAMsK,0BAA0B;IAACpP,0BAAakP,aAAaC;CAAkB;AC7DpF,MAAME,MAAoB;IACxB3N;IACAtD;IACAqF;IACAhK;IACAqI;IACA8B;IACAM;IACAwF;IACAmB;IACAc;IACAG;CACD;AAED,MAAMwD,WAAyB;IAC7B3N;IACAqE;IACAF;IACA9E;IACAuE,gBAAgB;QACd7D;QACAtD;QACAqF;QACAtC;QACAW;QACA8B;QACA8F;QACAmB;QACAc;QACAG;KACD;IACDxF;IACAH;IACArB;CACD;AAEM,MAAMyK,kBAAgC;IAACvP,0BAAaqP,KAAKC;CAAU;ACzDnE,MAAME,gBAAgB,CAACC;IAC5B,MAAM,EAAEha,SAAS,EAAE,GAAGga,QAAQ,KAAK;IACnC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"}