@visactor/vseed 0.0.4 → 0.0.5

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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["webpack://@visactor/vseed/./src/dataReshape/constant.ts","webpack://@visactor/vseed/./src/dataReshape/unfoldDimensions.ts","webpack://@visactor/vseed/./src/dataReshape/foldMeasures.ts","webpack://@visactor/vseed/./src/dataReshape/dataReshapeFor2D1M.ts","webpack://@visactor/vseed/./src/dataReshape/dataReshapeFor1D1M.ts","webpack://@visactor/vseed/./src/pipeline/advanced/pipes/reshape/reshapeTo2D1M.ts","webpack://@visactor/vseed/./src/pipeline/advanced/pipes/encoding/encodingCartesian.ts","webpack://@visactor/vseed/./src/pipeline/advanced/pipes/init/initAdvancedVSeed.ts","webpack://@visactor/vseed/./src/pipeline/advanced/pipes/init/autoMeasures.ts","webpack://@visactor/vseed/./src/pipeline/advanced/pipes/init/autoDimensions.ts","webpack://@visactor/vseed/./src/pipeline/advanced/pipes/baseConfig/baseConfig.ts","webpack://@visactor/vseed/./src/pipeline/advanced/pipes/theme/theme.ts","webpack://@visactor/vseed/./src/pipeline/advanced/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/spec/pipes/dataset/dataset.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/axes/xBand.ts","webpack://@visactor/vseed/./src/pipeline/spec/pipes/axes/xLinear.ts","webpack://@visactor/vseed/./src/pipeline/spec/pipes/axes/yBand.ts","webpack://@visactor/vseed/./src/pipeline/spec/pipes/axes/yLinear.ts","webpack://@visactor/vseed/./src/pipeline/spec/pipes/percent/percent.ts","webpack://@visactor/vseed/./src/pipeline/spec/pipes/stack/stack.ts","webpack://@visactor/vseed/./src/pipeline/spec/pipes/backgroundColor/background.ts","webpack://@visactor/vseed/./src/pipeline/spec/pipes/tooltip/tooltip.ts","webpack://@visactor/vseed/./src/pipeline/spec/pipes/label/label.ts","webpack://@visactor/vseed/./src/pipeline/spec/pipes/legend/legend.ts","webpack://@visactor/vseed/./src/pipeline/spec/pipes/color/color.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/utils/pipeline.ts","webpack://@visactor/vseed/./src/pipeline/utils/chatType.ts","webpack://@visactor/vseed/./src/builder/builder/buildAdvanced.ts","webpack://@visactor/vseed/./src/builder/builder/buildSpec.ts","webpack://@visactor/vseed/./src/builder/builder/build.ts","webpack://@visactor/vseed/./src/builder/builder/builder.ts","webpack://@visactor/vseed/./src/builder/register/chartType.ts","webpack://@visactor/vseed/./src/theme/dark.ts","webpack://@visactor/vseed/./src/theme/light.ts","webpack://@visactor/vseed/./src/builder/register/theme.ts","webpack://@visactor/vseed/./src/builder/register/all.ts","webpack://@visactor/vseed/./src/types/properties/chartType/zChartType.ts","webpack://@visactor/vseed/./src/types/properties/dataset/dataset.ts","webpack://@visactor/vseed/./src/types/properties/dimensions/dimensions.ts","webpack://@visactor/vseed/./src/types/properties/measures/measures.ts","webpack://@visactor/vseed/./src/types/properties/datasetReshapeInfo/datasetReshapeInfo.ts","webpack://@visactor/vseed/./src/types/properties/encoding/encoding.ts","webpack://@visactor/vseed/./src/types/properties/baseConfig/backgroundColor.ts","webpack://@visactor/vseed/./src/types/properties/baseConfig/label.ts","webpack://@visactor/vseed/./src/types/properties/baseConfig/color.ts","webpack://@visactor/vseed/./src/types/properties/baseConfig/tooltip.ts","webpack://@visactor/vseed/./src/types/properties/baseConfig/legend.ts","webpack://@visactor/vseed/./src/types/properties/baseConfig/baseConfig.ts","webpack://@visactor/vseed/./src/types/properties/theme/customTheme.ts","webpack://@visactor/vseed/./src/types/properties/theme/theme.ts"],"sourcesContent":["// Reshape Measures\nexport const FoldMeasureName = '__MeaName__'\nexport const FoldMeasureValue = '__MeaValue__'\nexport const FoldMeasureId = '__MeaId__'\n\n// Reshape Dimensions\nexport const FoldDimensionGroup = '__DimGroup__'\n\nexport const Separator = '-'\n","import type { Dataset, Datum, Dimension, Measure } from 'src/types'\nimport type { UnfoldInfo } from 'src/types'\nimport { FoldDimensionGroup, Separator } from './constant'\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 = FoldDimensionGroup,\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 = colorItems\n return {\n dataset,\n unfoldInfo,\n }\n}\n\n/**\n * 生成维度组合名称\n * @param dimensionsToBeGrouped 待分组的维度\n * @param datum 数据项\n * @param dimensionsSeparator 维度分隔符\n * @returns 维度组合名称\n */\nexport const generateDimGroupName = (dimensionsToBeGrouped: Dimension[], datum: Datum, dimensionsSeparator: string) => {\n return dimensionsToBeGrouped.map((dim) => String(datum[dim.id])).join(dimensionsSeparator)\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport type { Dataset, FoldInfo, Measure, Measures } from 'src/types'\nimport { FoldMeasureId, FoldMeasureName, FoldMeasureValue } from './constant'\n\n/**\n * 折叠指定的指标\n * @description 合并指定的指标为1个, 无论多少个, 都能转换为1个, 取名为fold, 意为折叠后混合在一起.\n */\nexport const foldMeasures = (\n dataset: Dataset,\n measures: Measure[],\n measureId = FoldMeasureId,\n measureName = FoldMeasureName,\n measureValue = FoldMeasureValue,\n): {\n dataset: Dataset\n foldInfo: FoldInfo\n} => {\n const foldInfo: FoldInfo = {\n measureId,\n measureName,\n measureValue,\n foldMap: {},\n }\n const result: Dataset = new Array(dataset.length * measures.length) as Dataset\n let index = 0\n for (let i = 0; i < dataset.length; i++) {\n for (let j = 0; j < measures.length; j++) {\n const datum: Record<string, any> = { ...dataset[i] }\n\n const measure = measures[j]\n const { id, alias } = measure\n datum[measureId] = id\n datum[measureName] = alias\n datum[measureValue] = dataset[i][id] as unknown\n\n foldInfo.foldMap[id] = alias\n result[index++] = datum\n }\n }\n\n return {\n dataset: result,\n foldInfo,\n }\n}\n\n/**\n * 折叠指定的指标组, 至多支持2层\n * @param dataset\n * @param measures\n * @param measureId\n * @param measureName\n * @param measureValue\n * @returns\n */\nexport const foldMeasureGroups = (\n dataset: Dataset,\n measures: Required<Measures>,\n measureId = '__MeaId__',\n measureName = '__MeaName__',\n measureValue = '__MeaValue__',\n) => {\n const groups: Array<Measures> = []\n if (!measures) {\n return {\n dataset,\n }\n }\n\n // 没有分组, 直接折叠所有指标\n if (!measures.some((measure) => 'children' in measure)) {\n return foldMeasures(dataset, measures, measureId, measureName, measureValue)\n }\n\n measures.forEach((measure) => {\n if ('children' in measure && measure.children) {\n groups.push(measure.children)\n } else {\n groups.push([measure])\n }\n })\n\n // 一组返回一个dataset\n const datasetGroup = groups.map((measures) => {\n if (!measures) {\n return []\n }\n return foldMeasures(dataset, measures, measureId, measureName, measureValue)\n })\n\n return {\n datasetGroup,\n }\n}\n","import type { Dataset, Dimension, FoldInfo, Measure, UnfoldInfo } from 'src/types'\nimport { foldMeasures } from './foldMeasures'\nimport { FoldDimensionGroup, FoldMeasureId, FoldMeasureName, FoldMeasureValue } from './constant'\nimport { unfoldDimensions } from './unfoldDimensions'\n\nconst emptyReshapeResult: {\n dataset: Dataset\n foldInfo: FoldInfo\n unfoldInfo: UnfoldInfo\n} = {\n dataset: [],\n foldInfo: {\n foldMap: {},\n measureId: '',\n measureName: '',\n measureValue: '',\n },\n unfoldInfo: {\n colorItems: [],\n groupName: ''\n },\n}\n/**\n * 数据重塑为2个维度1个指标\n * @param dataset\n * @param dimensions\n * @param measures\n * @returns\n */\nexport const dataReshapeFor2D1M = (\n dataset: Dataset,\n dimensions: Dimension[],\n measures: Measure[],\n): {\n dataset: Dataset\n foldInfo: FoldInfo\n unfoldInfo: UnfoldInfo\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 [\n { id: FoldMeasureId, alias: '指标Id', location: 'dimension' },\n { id: FoldMeasureName, alias: '指标名称', location: 'dimension' },\n ],\n [{ id: FoldMeasureValue, alias: '指标值' }],\n 1,\n FoldDimensionGroup,\n )\n return { dataset: finalDataset, foldInfo, unfoldInfo }\n } else {\n // 展开指定的维度为指标\n const { dataset: finalDataset, unfoldInfo } = unfoldDimensions(\n foldedDataset,\n [...dimensions, { id: FoldMeasureName, alias: '指标名称', location: 'dimension' }],\n [{ id: FoldMeasureValue, alias: '指标值' }],\n 1,\n FoldDimensionGroup,\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 { FoldDimensionGroup, FoldMeasureId, FoldMeasureName, FoldMeasureValue } from './constant'\nimport { unfoldDimensions } from './unfoldDimensions'\n\nconst emptyReshapeResult = {\n dataset: [],\n foldInfo: {\n foldMap: {},\n measureId: '',\n measureName: '',\n measureValue: '',\n },\n unfoldInfo: {\n groupName: '',\n colorItems: [],\n },\n}\n/**\n * 数据重塑为1个维度1个指标\n * @param dataset\n * @param dimensions\n * @param measures\n * @returns\n */\nexport const dataReshapeFor1D1M = (\n dataset: Dataset,\n dimensions: Dimension[],\n measures: Measure[],\n): {\n dataset: Dataset\n foldInfo: FoldInfo\n unfoldInfo: UnfoldInfo\n} => {\n if (dimensions.length === 0 && measures.length === 0) {\n return emptyReshapeResult\n }\n\n // 合并所有指标为1个指标\n const { dataset: foldedDataset, foldInfo } = foldMeasures(\n dataset,\n measures,\n FoldMeasureId,\n FoldMeasureName,\n FoldMeasureValue,\n )\n\n if (dimensions.length === 0) {\n const { dataset: finalDataset, unfoldInfo } = unfoldDimensions(\n foldedDataset,\n [{ id: FoldMeasureName, alias: '指标名称', location: 'dimension' }],\n [{ id: FoldMeasureValue, alias: '指标值' }],\n 0,\n FoldDimensionGroup,\n )\n return { dataset: finalDataset, foldInfo, unfoldInfo }\n } else {\n // 展开指定的维度为指标\n const { dataset: finalDataset, unfoldInfo } = unfoldDimensions(\n foldedDataset,\n [...dimensions, { id: FoldMeasureName, alias: '指标名称', location: 'dimension' }],\n [{ id: FoldMeasureValue, alias: '指标值' }],\n 0,\n FoldDimensionGroup,\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 foldInfo,\n unfoldInfo,\n },\n dimensions,\n measures,\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 { foldInfo, unfoldInfo } = datasetReshapeInfo\n\n const isSingleDimension = dimensions.length === 0\n\n const x = [isSingleDimension ? foldInfo.measureName : dimensions[0].id]\n const y = [foldInfo.measureValue]\n const group = [isSingleDimension ? foldInfo.measureName : unfoldInfo.groupName]\n const color = [foldInfo.measureName]\n const encoding = [\n {\n x,\n y,\n group,\n color,\n },\n ] as Encoding\n\n return {\n ...result,\n encoding,\n }\n}\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 { foldInfo, unfoldInfo } = datasetReshapeInfo\n\n const isSingleDimension = dimensions.length === 0\n\n const y = [isSingleDimension ? foldInfo.measureName : dimensions[0].id]\n const x = [foldInfo.measureValue]\n const group = [isSingleDimension ? foldInfo.measureName : unfoldInfo.groupName]\n const color = [foldInfo.measureName]\n const encoding = [\n {\n x,\n y,\n group,\n color,\n },\n ] as Encoding\n\n return {\n ...result,\n encoding,\n }\n}\n","import type { AdvancedPipe } from 'src/types'\n\nexport const initAdvancedVSeed: AdvancedPipe = (advancedVSeed, context) => {\n const { vseed } = context\n const { chartType = 'table' } = vseed\n return {\n ...advancedVSeed,\n chartType,\n }\n}\n","import type { AdvancedPipe, Datum } 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 (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","import type { AdvancedPipe, Datum } from 'src/types'\n\nexport const autoDimensions: AdvancedPipe = (advancedVSeed, context) => {\n const result = { ...advancedVSeed }\n const { vseed } = context\n const { dimensions, dataset } = vseed\n\n const { measures = [] } = advancedVSeed\n if (!dataset) {\n throw new Error('dataset is required')\n }\n\n if (dataset.length === 0) {\n return result\n }\n\n if (dimensions) {\n result.dimensions = dimensions\n return result\n }\n\n const top100dataset = dataset.slice(0, 100)\n\n const sample = top100dataset.reduce<Datum>((prev, cur) => {\n return { ...prev, ...cur }\n }, {})\n\n result.dimensions = Object.keys(sample)\n .filter(\n (key) =>\n top100dataset.some((item) => typeof item[key] === 'string') &&\n !['', null, undefined].includes(key) &&\n !measures.some((measure) => measure.id === key),\n )\n .map((dim) => ({\n id: dim,\n alias: dim,\n location: 'dimension',\n }))\n\n return result\n}\n","import { pick } from 'remeda'\nimport type { AdvancedPipe, VChartBaseConfig, VTableBaseConfig } from 'src/types'\n\nexport const vchartBaseConfig: AdvancedPipe = (advancedVSeed, context) => {\n const { vseed } = context\n\n const result = {\n ...advancedVSeed,\n }\n\n const config: VChartBaseConfig = pick(vseed, ['backgroundColor', 'color', 'label', 'legend', 'tooltip'])\n\n result.baseConfig = {\n vchart: {\n ...config,\n },\n }\n return result\n}\n\nexport const vtableBaseConfig: AdvancedPipe = (advancedVSeed, context) => {\n const { vseed } = context\n const config: VTableBaseConfig = pick(vseed, ['backgroundColor'])\n\n return {\n ...advancedVSeed,\n baseConfig: {\n vtable: {\n ...config,\n },\n },\n }\n}\n","import { clone, mergeDeep } from 'remeda'\nimport type { AdvancedPipe } from 'src/types'\n\nexport const vchartTheme: AdvancedPipe = (advancedVSeed, context) => {\n const { customTheme, vseed } = context\n const { theme = 'light' } = vseed\n const result = {\n ...advancedVSeed,\n }\n\n if (!customTheme || !customTheme[theme]) {\n return result\n }\n const config = result.baseConfig?.vchart\n const themeConfig = customTheme?.[theme].baseConfig?.vchart\n\n if (!themeConfig || !config) {\n return result\n }\n\n const mergedConfig = mergeDeep(themeConfig, clone(config))\n result.baseConfig = {\n vchart: mergedConfig,\n }\n return result\n}\n\nexport const vtableTheme: AdvancedPipe = (advancedVSeed, context) => {\n const { customTheme, vseed } = context\n const { theme = 'light' } = vseed\n const result = {\n ...advancedVSeed,\n }\n\n if (!customTheme || !customTheme[theme]) {\n return result\n }\n\n const config = result.baseConfig?.vtable\n const themeConfig = customTheme?.[theme].baseConfig?.vtable\n\n if (!themeConfig || !config) {\n return result\n }\n\n const mergedConfig = mergeDeep(themeConfig, clone(config))\n result.baseConfig = {\n vchart: mergedConfig,\n }\n return result\n}\n","import type { AdvancedPipeline } from 'src/types'\nimport {\n autoDimensions,\n autoMeasures,\n encodingXY,\n initAdvancedVSeed,\n reshapeTo2D1M,\n vchartBaseConfig,\n vchartTheme,\n} from '../pipes'\n\nexport const lineAdvancedPipeline: AdvancedPipeline = [\n initAdvancedVSeed,\n autoMeasures,\n autoDimensions,\n reshapeTo2D1M,\n encodingXY,\n vchartBaseConfig,\n vchartTheme,\n]\n","import type { AdvancedPipeline } from 'src/types'\nimport {\n initAdvancedVSeed,\n encodingYX,\n reshapeTo2D1M,\n vchartBaseConfig,\n vchartTheme,\n autoMeasures,\n autoDimensions,\n} from '../pipes'\n\nexport const barAdvancedPipeline: AdvancedPipeline = [\n initAdvancedVSeed,\n autoMeasures,\n autoDimensions,\n reshapeTo2D1M,\n encodingYX,\n vchartBaseConfig,\n vchartTheme,\n]\n","import type { AdvancedPipeline } from 'src/types'\nimport {\n autoDimensions,\n autoMeasures,\n encodingYX,\n initAdvancedVSeed,\n reshapeTo2D1M,\n vchartBaseConfig,\n vchartTheme,\n} from '../pipes'\n\nexport const barParallelAdvancedPipeline: AdvancedPipeline = [\n initAdvancedVSeed,\n autoMeasures,\n autoDimensions,\n reshapeTo2D1M,\n encodingYX,\n vchartBaseConfig,\n vchartTheme,\n]\n","import type { AdvancedPipeline } from 'src/types'\nimport { autoDimensions, autoMeasures, encodingYX, initAdvancedVSeed, reshapeTo2D1M, vchartBaseConfig, vchartTheme } from '../pipes'\n\nexport const barPercentAdvancedPipeline: AdvancedPipeline = [\n initAdvancedVSeed,\n autoMeasures,\n autoDimensions,\n reshapeTo2D1M,\n encodingYX,\n vchartBaseConfig,\n vchartTheme,\n]\n","import type { AdvancedPipeline } from 'src/types'\nimport {\n autoDimensions,\n autoMeasures,\n encodingXY,\n initAdvancedVSeed,\n reshapeTo2D1M,\n vchartBaseConfig,\n vchartTheme,\n} from '../pipes'\n\nexport const columnAdvancedPipeline: AdvancedPipeline = [\n initAdvancedVSeed,\n autoMeasures,\n autoDimensions,\n reshapeTo2D1M,\n encodingXY,\n vchartBaseConfig,\n vchartTheme,\n]\n","import type { AdvancedPipeline } from 'src/types'\nimport {\n autoDimensions,\n autoMeasures,\n encodingXY,\n initAdvancedVSeed,\n reshapeTo2D1M,\n vchartBaseConfig,\n vchartTheme,\n} from '../pipes'\n\nexport const columnParallelAdvancedPipeline: AdvancedPipeline = [\n initAdvancedVSeed,\n autoMeasures,\n autoDimensions,\n reshapeTo2D1M,\n encodingXY,\n vchartBaseConfig,\n vchartTheme,\n]\n","import type { AdvancedPipeline } from 'src/types'\nimport {\n autoDimensions,\n autoMeasures,\n encodingXY,\n initAdvancedVSeed,\n reshapeTo2D1M,\n vchartBaseConfig,\n vchartTheme,\n} from '../pipes'\n\nexport const columnPercentAdvancedPipeline: AdvancedPipeline = [\n initAdvancedVSeed,\n autoMeasures,\n autoDimensions,\n reshapeTo2D1M,\n encodingXY,\n vchartBaseConfig,\n vchartTheme,\n]\n","import type { AdvancedPipeline } from 'src/types'\nimport { autoDimensions, autoMeasures, encodingXY, initAdvancedVSeed, reshapeTo2D1M, vchartBaseConfig, vchartTheme } from '../pipes'\n\nexport const areaAdvancedPipeline: AdvancedPipeline = [\n initAdvancedVSeed,\n autoMeasures,\n autoDimensions,\n reshapeTo2D1M,\n encodingXY,\n vchartBaseConfig,\n vchartTheme,\n]\n","import type { AdvancedPipeline } from 'src/types'\nimport {\n autoDimensions,\n autoMeasures,\n encodingXY,\n initAdvancedVSeed,\n reshapeTo2D1M,\n vchartBaseConfig,\n vchartTheme,\n} from '../pipes'\n\nexport const areaPercentAdvancedPipeline: AdvancedPipeline = [\n initAdvancedVSeed,\n autoMeasures,\n autoDimensions,\n reshapeTo2D1M,\n encodingXY,\n vchartBaseConfig,\n vchartTheme,\n]\n","import type { ISpec } from '@visactor/vchart'\nimport type { SpecPipe } from 'src/types'\n\nexport const dataset: SpecPipe = (spec, context) => {\n const { advancedVSeed } = context\n return {\n ...spec,\n data: {\n values: advancedVSeed.dataset,\n },\n } as ISpec\n}\n","import type { IBarChartSpec } from '@visactor/vchart'\nimport type { SpecPipe } from 'src/types'\n\nexport const initColumn: SpecPipe = (spec, context) => {\n const result = { ...spec } as IBarChartSpec\n const { advancedVSeed } = context\n const { encoding } = advancedVSeed\n\n if (!encoding[0].y || !encoding[0].x || !encoding[0].group) {\n return result\n }\n\n result.type = 'bar'\n result.direction = 'vertical'\n result.xField = encoding[0].x[0]\n result.yField = encoding[0].y[0]\n result.seriesField = encoding[0].group[0]\n result.padding = 0\n return result\n}\n","import type { IBarChartSpec } from '@visactor/vchart'\nimport type { SpecPipe } from 'src/types'\n\nexport const initBar: SpecPipe = (spec, context) => {\n const result = { ...spec } as IBarChartSpec\n const { advancedVSeed } = context\n const { encoding } = advancedVSeed\n\n if (!encoding[0].y || !encoding[0].x || !encoding[0].group) {\n return result\n }\n\n result.type = 'bar'\n result.direction = 'horizontal'\n result.yField = encoding[0].y?.[0]\n result.xField = encoding[0].x?.[0]\n result.seriesField = encoding[0].group?.[0]\n result.padding = 0\n return result\n}\n","import type { IBarChartSpec } from '@visactor/vchart'\nimport type { SpecPipe } from 'src/types'\n\nexport const initBarParallel: SpecPipe = (spec, context) => {\n const result = { ...spec } as IBarChartSpec\n const { advancedVSeed } = context\n const { encoding, datasetReshapeInfo } = advancedVSeed\n const { unfoldInfo } = datasetReshapeInfo\n\n if (!encoding[0].y || !encoding[0].x || !encoding[0].group) {\n return result\n }\n\n result.type = 'bar'\n result.direction = 'horizontal'\n result.yField = [encoding[0].y[0], unfoldInfo.groupName] as string[]\n result.xField = encoding[0].x[0]\n result.seriesField = encoding[0].group[0]\n result.padding = 0\n return result\n}\n","import type { IAreaChartSpec } from '@visactor/vchart'\nimport type { SpecPipe } from 'src/types'\n\nexport const initArea: SpecPipe = (spec, context) => {\n const result = { ...spec } as IAreaChartSpec\n const { advancedVSeed } = context\n const { encoding } = advancedVSeed\n\n if (!encoding[0].y || !encoding[0].x || !encoding[0].group) {\n return result\n }\n\n result.type = 'area'\n result.direction = 'vertical'\n result.xField = encoding[0].x[0]\n result.yField = encoding[0].y[0]\n result.seriesField = encoding[0].group[0]\n result.padding = 0\n return result\n}\n","import type { ILineChartSpec } from '@visactor/vchart'\nimport type { SpecPipe } from 'src/types'\n\nexport const initLine: SpecPipe = (spec, context) => {\n const result = { ...spec } as ILineChartSpec\n const { advancedVSeed } = context\n const { encoding } = advancedVSeed\n\n if (!encoding[0].y || !encoding[0].x || !encoding[0].group) {\n return result\n }\n\n result.type = 'line'\n result.direction = 'vertical'\n result.xField = encoding[0].x[0]\n result.yField = encoding[0].y[0]\n result.seriesField = encoding[0].group[0]\n result.padding = 0\n return result\n}\n","import type { IBarChartSpec } from '@visactor/vchart'\nimport type { SpecPipe } from 'src/types'\n\nexport const initColumnParallel: SpecPipe = (spec, context) => {\n const result = { ...spec } as IBarChartSpec\n const { advancedVSeed } = context\n const { encoding, datasetReshapeInfo } = advancedVSeed\n const { unfoldInfo } = datasetReshapeInfo\n if (!encoding[0].y || !encoding[0].x || !encoding[0].group) {\n return result\n }\n\n result.type = 'bar'\n result.direction = 'vertical'\n result.xField = [encoding[0].x[0], unfoldInfo.groupName]\n result.yField = encoding[0].y[0]\n result.seriesField = encoding[0].group[0]\n result.padding = 0\n return result\n}\n","import type { ISpec } from '@visactor/vchart'\nimport type { SpecPipe } from 'src/types'\n\nexport const xBand: SpecPipe = (spec) => {\n const result = { ...spec } as ISpec\n\n if (!result.axes) {\n result.axes = []\n }\n\n result.axes = [\n ...result.axes,\n {\n visible: true,\n type: 'band',\n orient: 'bottom',\n },\n ] as ISpec['axes']\n\n return result\n}\n","import type { ISpec } from '@visactor/vchart'\nimport type { SpecPipe } from 'src/types'\n\nexport const xLinear: SpecPipe = (spec) => {\n const result = { ...spec } as ISpec\n\n if (!result.axes) {\n result.axes = []\n }\n\n result.axes = [\n ...result.axes,\n {\n visible: true,\n type: 'linear',\n orient: 'bottom',\n },\n ] as ISpec['axes']\n\n return result\n}\n","import type { ISpec } from '@visactor/vchart'\nimport type { SpecPipe } from 'src/types'\n\nexport const yBand: SpecPipe = (spec) => {\n const result = { ...spec } as ISpec\n\n if (!result.axes) {\n result.axes = []\n }\n\n result.axes = [\n ...result.axes,\n {\n visible: true,\n type: 'band',\n orient: 'left',\n },\n ] as ISpec['axes']\n return result\n}\n","import type { ISpec } from '@visactor/vchart'\nimport type { SpecPipe } from 'src/types'\n\nexport const yLinear: SpecPipe = (spec) => {\n const result = { ...spec } as ISpec\n\n if (!result.axes) {\n result.axes = []\n }\n\n result.axes = [\n ...result.axes,\n {\n visible: true,\n type: 'linear',\n orient: 'left',\n },\n ] as ISpec['axes']\n\n return result\n}\n","import { IAreaChartSpec, IBarChartSpec } from '@visactor/vchart'\nimport { SpecPipe } from 'src/types'\n\nexport const percent: SpecPipe = (spec, context) => {\n const result = { ...spec } as IAreaChartSpec | IBarChartSpec\n result.percent = true\n return result\n}\n","import { IAreaChartSpec, IBarChartSpec } from '@visactor/vchart'\nimport { SpecPipe } from 'src/types'\n\nexport const stack: SpecPipe = (spec, context) => {\n const result = { ...spec } as IAreaChartSpec | IBarChartSpec\n result.stack = true\n return result\n}\n","import type { ISpec } from '@visactor/vchart'\nimport type { SpecPipe } from 'src/types'\n\nexport const backgroundColor: SpecPipe = (spec, context) => {\n const result = { ...spec } as ISpec\n const { advancedVSeed } = context\n const { baseConfig } = advancedVSeed\n if (!baseConfig?.vchart) {\n return result\n }\n const { backgroundColor } = baseConfig.vchart\n return {\n ...result,\n background: backgroundColor,\n }\n}\n","import type { SpecPipe, Tooltip } from 'src/types'\n\nconst defaultTooltip: Tooltip = {\n enable: true,\n}\n\nexport const tooltip: SpecPipe = (spec, context) => {\n const result = { ...spec }\n const { advancedVSeed } = context\n const baseConfig = advancedVSeed.baseConfig.vchart as { tooltip: Tooltip }\n const { tooltip = defaultTooltip } = baseConfig\n\n const { enable } = tooltip\n\n result.tooltip = {\n visible: enable,\n }\n return result\n}\n","import type { ILineChartSpec } from '@visactor/vchart'\nimport type { Label, SpecPipe } from 'src/types'\n\nexport const label: SpecPipe = (spec, context) => {\n const result = { ...spec } as ILineChartSpec\n const { advancedVSeed } = context\n const baseConfig = advancedVSeed.baseConfig.vchart\n\n if (!baseConfig || !baseConfig.label) {\n return result\n }\n\n const { label } = baseConfig\n const { enable } = label as Label\n\n result.label = {\n visible: enable,\n }\n return result\n}\n","import type { Legend, SpecPipe } from 'src/types'\n\nconst defaultLegend = {\n enable: true,\n}\n\nexport const legend: SpecPipe = (spec, context) => {\n const result = { ...spec }\n const { advancedVSeed } = context\n const baseConfig = advancedVSeed.baseConfig.vchart\n if (!baseConfig || !baseConfig.legend) {\n return result\n }\n\n const { legend = defaultLegend } = baseConfig\n const { enable } = legend as Legend\n\n result.legends = {\n visible: enable,\n }\n return result\n}\n","import type { 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\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 { SpecPipeline } from 'src/types'\nimport { dataset, xBand, yLinear, initLine, backgroundColor, label, tooltip, legend, color } from '../pipes'\n\nexport const lineSpecPipeline: SpecPipeline = [\n initLine,\n color,\n backgroundColor,\n dataset,\n xBand,\n yLinear,\n label,\n tooltip,\n legend,\n]\n","import type { SpecPipeline } from 'src/types'\nimport { initColumn, dataset, xBand, yLinear, backgroundColor, label, tooltip, legend, color } from '../pipes'\n\nexport const columnSpecPipeline: SpecPipeline = [\n initColumn,\n color,\n backgroundColor,\n dataset,\n xBand,\n yLinear,\n label,\n tooltip,\n legend,\n]\n","import type { SpecPipeline } from 'src/types'\nimport { dataset, xBand, yLinear, initColumnParallel, backgroundColor, label, tooltip, legend, color } from '../pipes'\n\nexport const columnParallelSpecPipeline: SpecPipeline = [\n initColumnParallel,\n color,\n backgroundColor,\n dataset,\n xBand,\n yLinear,\n label,\n tooltip,\n legend,\n]\n","import type { SpecPipeline } from 'src/types'\nimport { initColumn, dataset, xBand, yLinear, percent, backgroundColor, label, tooltip, legend, color } from '../pipes'\n\nexport const columnPercentSpecPipeline: SpecPipeline = [\n initColumn,\n color,\n backgroundColor,\n percent,\n dataset,\n xBand,\n yLinear,\n label,\n tooltip,\n legend,\n]\n","import type { SpecPipeline } from 'src/types'\nimport { initBar, dataset, xLinear, yBand, backgroundColor, label, tooltip, legend, color } from '../pipes'\n\nexport const barSpecPipeline: SpecPipeline = [\n initBar,\n color,\n backgroundColor,\n dataset,\n xLinear,\n yBand,\n label,\n tooltip,\n legend,\n]\n","import type { SpecPipeline } from 'src/types'\nimport { dataset, xLinear, yBand, initBarParallel, backgroundColor, label, tooltip, legend, color } from '../pipes'\n\nexport const barParallelSpecPipeline: SpecPipeline = [\n initBarParallel,\n color,\n backgroundColor,\n dataset,\n xLinear,\n yBand,\n label,\n tooltip,\n legend,\n]\n","import type { SpecPipeline } from 'src/types'\nimport { initBar, dataset, xLinear, yBand, percent, backgroundColor, label, tooltip, legend, color } from '../pipes'\n\nexport const barPercentSpecPipeline: SpecPipeline = [\n initBar,\n color,\n backgroundColor,\n percent,\n dataset,\n xLinear,\n yBand,\n label,\n tooltip,\n legend,\n]\n","import type { SpecPipeline } from 'src/types'\nimport { dataset, xBand, yLinear, initArea, stack, backgroundColor, label, tooltip, legend, color } from '../pipes'\n\nexport const areaSpecPipeline: SpecPipeline = [\n initArea,\n color,\n backgroundColor,\n stack,\n dataset,\n xBand,\n yLinear,\n label,\n tooltip,\n legend,\n]\n","import type { SpecPipeline } from 'src/types'\nimport { percent, dataset, xBand, yLinear, initArea, backgroundColor, label, tooltip, legend, color } from '../pipes'\n\nexport const areaPercentSpecPipeline: SpecPipeline = [\n initArea,\n color,\n backgroundColor,\n percent,\n dataset,\n xBand,\n yLinear,\n label,\n tooltip,\n legend,\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 { ChartType } 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","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 { ISpec } from '@visactor/vchart'\nimport type { Builder } from './builder'\nimport type { AdvancedVSeed, SpecPipelineContext } from 'src/types'\nimport { execPipeline } from '../../pipeline'\n\nexport const buildSpec = (\n builder: Builder,\n advancedVSeed: AdvancedVSeed,\n): ISpec => {\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<ISpec, 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 { ISpec } from '@visactor/vchart'\nimport type { Builder } from './builder'\n\nexport const build = (builder: Builder): ISpec => {\n console.log('debug vseed', builder.vseed)\n const advancedVSeed = builder.buildAdvanced()\n console.log('debug advancedVSeed', advancedVSeed)\n if (!advancedVSeed) {\n throw new Error('advancedVSeed is null')\n }\n const spec = builder.buildSpec(advancedVSeed)\n console.log('debug spec', spec)\n return spec\n}\n","import type {\n AdvancedPipeline,\n AdvancedVSeed,\n ChartType,\n CustomThemeConfig,\n SpecPipeline,\n VSeed,\n VSeedBuilder,\n} from 'src/types'\nimport { buildAdvanced } from './buildAdvanced'\nimport { buildSpec } from './buildSpec'\nimport { build } from './build'\n\nexport class Builder implements VSeedBuilder {\n private _vseed: VSeed\n private _advancedVSeed: AdvancedVSeed | null = null\n\n constructor(vseed: VSeed) {\n this._vseed = vseed\n }\n\n build = () => build(this)\n\n buildSpec = (advanced: AdvancedVSeed) => buildSpec(this, advanced)\n\n buildAdvanced = () => buildAdvanced(this)\n\n getAdvancedPipeline = (chartType: ChartType) => Builder._advancedPipelineMap[chartType] as AdvancedPipeline\n getSpecPipeline = (chartType: ChartType) => Builder._specPipelineMap[chartType] as SpecPipeline\n getTheme = (themeKey: string) => Builder._themeMap[themeKey]\n getThemeMap = () => Builder._themeMap\n\n get vseed() {\n return this._vseed\n }\n\n set vseed(value) {\n this._vseed = value\n }\n\n get advancedVSeed() {\n return this._advancedVSeed\n }\n\n set advancedVSeed(value) {\n this._advancedVSeed = value\n }\n\n static _advancedPipelineMap: Partial<Record<ChartType, AdvancedPipeline>> = {}\n static _specPipelineMap: Partial<Record<ChartType, SpecPipeline>> = {}\n static _themeMap: Record<string, CustomThemeConfig> = {}\n static from = (vseed: VSeed) => new Builder(vseed)\n}\n","import {\n areaAdvancedPipeline,\n areaPercentAdvancedPipeline,\n areaPercentSpecPipeline,\n areaSpecPipeline,\n barAdvancedPipeline,\n barParallelAdvancedPipeline,\n barParallelSpecPipeline,\n barPercentAdvancedPipeline,\n barPercentSpecPipeline,\n barSpecPipeline,\n columnAdvancedPipeline,\n columnParallelAdvancedPipeline,\n columnParallelSpecPipeline,\n columnPercentAdvancedPipeline,\n columnPercentSpecPipeline,\n columnSpecPipeline,\n lineAdvancedPipeline,\n lineSpecPipeline,\n} 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","import type { CustomThemeConfig } from 'src/types'\n\nexport const darkTheme = (): CustomThemeConfig => {\n return {\n baseConfig: {\n vtable: {\n backgroundColor: '#141414',\n },\n vchart: {\n backgroundColor: '#141414',\n color: {\n colorScheme: [\n '#2E62F1',\n '#4DC36A',\n '#FF8406',\n '#FFCC00',\n '#4F44CF',\n '#5AC8FA',\n '#003A8C',\n '#B08AE2',\n '#FF6341',\n '#98DD62',\n ],\n },\n label: {\n enable: true,\n },\n tooltip: {\n enable: true,\n },\n legend: {\n enable: true,\n },\n },\n },\n }\n}\n","import type { CustomThemeConfig } from 'src/types'\n\nexport const lightTheme = (): CustomThemeConfig => {\n return {\n baseConfig: {\n vtable: {\n backgroundColor: '#ffffff',\n },\n vchart: {\n backgroundColor: '#ffffff',\n color: {\n colorScheme: [\n '#8D72F6',\n '#5766EC',\n '#66A3FE',\n '#51D5E6',\n '#4EC0B3',\n '#F9DF90',\n '#F9AD71',\n '#ED8888',\n '#E9A0C3',\n '#D77DD3',\n ],\n },\n label: {\n enable: true,\n },\n tooltip: {\n enable: true,\n },\n legend: {\n enable: true,\n },\n },\n },\n }\n}\n","import type { CustomThemeConfig } from 'src/types'\nimport { Builder } from '../builder'\nimport { darkTheme, lightTheme } from '../../theme'\n\nexport const registerCustomTheme = (key: string, themeConfig: CustomThemeConfig) => {\n Builder._themeMap[key] = themeConfig\n}\n\nexport const registerLightTheme = () => {\n registerCustomTheme('light', lightTheme())\n}\n\nexport const registerDarkTheme = () => {\n registerCustomTheme('dark', darkTheme())\n}\n","import {\n registerArea,\n registerAreaPercent,\n registerBar,\n registerBarParallel,\n registerBarPercent,\n registerColumn,\n registerColumnParallel,\n registerColumnPercent,\n registerLine,\n} 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\n // Theme\n registerLightTheme()\n registerDarkTheme()\n}\n","import { z } from 'zod'\n\nexport type ChartType =\n | 'table'\n | 'pivotTable'\n | 'line'\n | 'column'\n | 'columnPercent'\n | 'columnParallel'\n | 'bar'\n | 'barPercent'\n | 'barParallel'\n | 'area'\n | 'areaPercent'\n | 'rose'\n | 'pie'\n | 'donut'\n | 'dualAxis'\n\nexport enum ChartTypeEnum {\n Table = 'table',\n PivotTable = 'pivotTable',\n Line = 'line',\n Column = 'column',\n ColumnPercent = 'columnPercent',\n ColumnParallel = 'columnParallel',\n Bar = 'bar',\n BarPercent = 'barPercent',\n BarParallel = 'barParallel',\n Area = 'area',\n AreaPercent = 'areaPercent',\n Rose = 'rose',\n Pie = 'pie',\n Donut = 'donut',\n DualAxis = 'dualAxis',\n}\n\nexport const zChartType = z.enum([\n 'table',\n 'pivotTable',\n 'line',\n 'column',\n 'columnPercent',\n 'columnParallel',\n 'bar',\n 'barPercent',\n 'barParallel',\n 'area',\n 'areaPercent',\n 'rose',\n 'pie',\n 'donut',\n 'dualAxis',\n])\n","import { z } from 'zod'\n\n/**\n * example dataset link:\n * [\n * { date: '2019', 20001:'type', profit:10, sales: null, },\n * { date: '2020', 20001:'type', profit:30, sales: -1.1, },\n * { date: '2021', 20001:'type', profit:30, sales: 1, },\n * { date: '2023', 20001:'type', profit:40, sales: undefined, },\n * { date: '2022', 20001:'type', profit:50, sales: 100, },\n * ]\n */\nexport const zDatum = z.record(z.string().or(z.number()), z.any())\nexport const zDataset = z.array(zDatum)\n\nexport type Datum = z.infer<typeof zDatum>\nexport type Dataset = z.infer<typeof zDataset>\n","import { z } from 'zod'\n\nexport const zDimension = z.object({\n id: z.string(),\n alias: z.string().optional(),\n visible: z.boolean().default(true).optional(),\n location: z.enum(['dimension', 'rowDimension', 'columnDimension']),\n})\n\nexport const zDimensions = z.array(zDimension).optional()\n\nexport type Dimension = z.infer<typeof zDimension>\n\nexport type Dimensions = z.infer<typeof zDimensions>\n","import { z } from 'zod'\n\nexport const zMeasure = z.object({\n id: z.string(),\n alias: z.string().optional(),\n visible: z.boolean().default(true).optional(),\n autoFormat: z.boolean().default(true).optional(),\n format: z\n .object({\n type: z\n .enum(['number', 'percent', 'permille'])\n .optional()\n .default('number'),\n ratio: z.number().optional().default(1),\n symbol: z.string().optional().default(''),\n thousandSeparator: z.boolean().optional().default(false),\n decimalPlaces: z.number().optional().default(2),\n round: z.enum(['round', 'floor', 'ceil']).optional().default('round'),\n prefix: z.string().optional().default(''),\n suffix: z.string().optional().default(''),\n })\n .optional(),\n})\n\nexport const zMeasureGroup = z.object({\n id: z.string(),\n alias: z.string().optional(),\n visible: z.boolean().default(true).optional(),\n get children() {\n return z.array(zMeasureGroup.or(zMeasure)).optional()\n },\n})\n\nexport const zMeasures = z.array(zMeasureGroup.or(zMeasure)).optional()\n\nexport type Measures = z.infer<typeof zMeasures>\nexport type Measure = z.infer<typeof zMeasure>\nexport type MeasureGroup = z.infer<typeof zMeasureGroup>\n","import { z } from 'zod'\n\nexport type FoldInfo = {\n foldMap: Record<string, string | undefined>\n measureId: string\n measureName: string\n measureValue: string\n}\n\nexport type UnfoldInfo = {\n groupName: string\n colorItems: string[]\n}\n\nexport const zFoldInfo = z.object({\n foldMap: z.record(z.string(), z.string().or(z.undefined())),\n measureId: z.string(),\n measureName: z.string(),\n measureValue: z.string(),\n})\nexport const zUnfoldInfo = z.object({\n colorItems: z.array(z.string()),\n groupName: z.string(),\n})\n\nexport const zDatasetReshapeInfo = z.object({\n foldInfo: zFoldInfo,\n unfoldInfo: zUnfoldInfo,\n})\n\nexport type DatasetReshapeInfo = z.infer<typeof zDatasetReshapeInfo>\n","import { z } from 'zod'\n\nexport const zEncoding = z.array(\n z.object({\n x: z.array(z.string()).optional(),\n y: z.array(z.string()).optional(),\n color: z.array(z.string()).optional(),\n group: z.array(z.string()).optional(),\n angle: z.array(z.string()).optional(),\n radius: z.array(z.string()).optional(),\n tooltip: z.array(z.string()).optional(),\n }),\n)\n\nexport type Encoding = Array<{\n x?: string[]\n y?: string[]\n color?: string[]\n group?: string[]\n angle?: string[]\n radius?: string[]\n tooltip?: string[]\n}>\n","import { z } from 'zod'\nexport const zBackgroundColor = z.string().default('transparent').optional()\n\n/**\n * 图表的背景颜色\n * @default transparent 默认为透明背景\n * @description 背景颜色可以是颜色字符串, 例如'red', 'blue', 也可以是hex, rgb或rgba'#ff0000', 'rgba(255,0,0,0.5)'\n */\nexport type BackgroundColor = string | undefined\n","import { z } from 'zod'\n\nexport const zLabel = z.object({\n enable: z.boolean().default(true).optional(),\n})\n\nexport type Label = {\n /**\n * 标签功能是否开启\n * @default true\n */\n enable: boolean\n}\n","import { z } from 'zod'\n\nexport const zColor = z.object({\n colorScheme: z.array(z.string()).optional(),\n colorMapping: z.record(z.string(), z.string()).optional(),\n})\n\nexport type Color = {\n /**\n * 颜色配色方案\n * @description 颜色配色方案用于定义图表中不同元素的颜色\n * @example ['#FFCDD2,#F8BBD0,#E1BEE7,#D1C4E9,#C5CAE9,#BBDEFB,#B3E5FC,#B2EBF2,#B2DFDB,#C8E6C9,#DCEDC8,#F0F4C3,#FFF9C4,#FFECB3,#FFE0B2']\n */\n colorScheme: string[]\n /**\n * 颜色映射\n * @description 颜色映射用于将数据值映射到具体的颜色\n * @example\n * {\n * 'profit': 'red',\n * 'sales': 'blue',\n * }\n */\n colorMapping: Record<string, string>\n}\n","import { z } from 'zod'\n\nexport const zTooltip = z.object({\n enable: z.boolean().default(true).optional(),\n})\n\nexport type Tooltip = {\n /**\n * 提示信息功能是否开启\n * @default true\n */\n enable: boolean\n}\n","import { z } from 'zod'\n\nexport const zLegend = z.object({\n enable: z.boolean().default(true).optional(),\n})\n\nexport type Legend = {\n /**\n * 图例功能是否开启\n * @default true\n */\n enable: boolean\n}\n","import { z } from 'zod'\nimport { zBackgroundColor } from './backgroundColor'\nimport { zLabel } from './label'\nimport { zColor } from './color'\nimport { zTooltip } from './tooltip'\nimport { zLegend } from './legend'\n\nconst zVChartBaseConfig = z.object({\n backgroundColor: zBackgroundColor,\n label: zLabel.optional(),\n color: zColor.optional(),\n tooltip: zTooltip.optional(),\n legend: zLegend.optional(),\n})\n\nconst zVTableBaseConfig = z.object({\n backgroundColor: zBackgroundColor,\n})\n\nexport const zBaseConfig = z.object({\n vchart: zVChartBaseConfig.optional(),\n vtable: zVTableBaseConfig.optional(),\n})\n\nexport type VTableBaseConfig = z.infer<typeof zVTableBaseConfig>\nexport type VChartBaseConfig = z.infer<typeof zVChartBaseConfig>\n","import { z } from 'zod'\nimport { zBaseConfig } from '../baseConfig'\n\nexport const zCustomThemeConfig = z.object({\n baseConfig: zBaseConfig.optional(),\n})\n\nexport const zCustomTheme = z.record(z.string(), zCustomThemeConfig).optional()\n\nexport type CustomTheme = z.infer<typeof zCustomTheme>\nexport type CustomThemeConfig = z.infer<typeof zCustomThemeConfig>\n","import { z } from 'zod'\n\nexport const zTheme = z.string()\n\ntype Light = 'light' & { readonly brand: unique symbol }\ntype Dark = 'dark' & { readonly brand: unique symbol }\n\n/**\n * 主题\n * @default light\n * @description 内置 light、dark 两种主题, 新的主题可以通过registerTheme自定义主题.\n */\nexport type Theme = Light | Dark | string\n"],"names":["FoldMeasureName","FoldMeasureValue","FoldMeasureId","FoldDimensionGroup","Separator","unfoldDimensions","dataset","dimensions","measures","unfoldStartIndex","foldGroupName","dimensionsSeparator","Error","dimensionsToBeUnfolded","unfoldInfo","colorItems","i","datum","colorItem","generateDimGroupName","dimensionsToBeGrouped","dim","String","foldMeasures","measureId","measureName","measureValue","foldInfo","result","Array","index","j","measure","id","alias","emptyReshapeResult","dataReshapeFor2D1M","foldedDataset","finalDataset","dataReshapeFor1D1M","reshapeTo2D1M","advancedVSeed","context","vseed","newDatasets","encodingXY","datasetReshapeInfo","isSingleDimension","x","y","group","color","encoding","encodingYX","initAdvancedVSeed","chartType","autoMeasures","top100dataset","sample","prev","cur","Object","key","item","undefined","autoDimensions","vchartBaseConfig","config","pick","vchartTheme","customTheme","theme","themeConfig","mergedConfig","mergeDeep","clone","lineAdvancedPipeline","barAdvancedPipeline","barParallelAdvancedPipeline","barPercentAdvancedPipeline","columnAdvancedPipeline","columnParallelAdvancedPipeline","columnPercentAdvancedPipeline","areaAdvancedPipeline","areaPercentAdvancedPipeline","spec","initColumn","initBar","initBarParallel","initArea","initLine","initColumnParallel","xBand","xLinear","yBand","yLinear","percent","stack","backgroundColor","baseConfig","defaultTooltip","tooltip","enable","label","defaultLegend","legend","colorScheme","colorMapping","lineSpecPipeline","columnSpecPipeline","columnParallelSpecPipeline","columnPercentSpecPipeline","barSpecPipeline","barParallelSpecPipeline","barPercentSpecPipeline","areaSpecPipeline","areaPercentSpecPipeline","execPipeline","pipeline","initialValue","isVTable","isVChart","buildAdvanced","builder","e","console","buildSpec","build","Builder","advanced","themeKey","value","registerColumn","registerBar","registerLine","registerArea","registerAreaPercent","registerBarPercent","registerColumnPercent","registerColumnParallel","registerBarParallel","darkTheme","lightTheme","registerCustomTheme","registerLightTheme","registerDarkTheme","registerAll","zChartType","z","zDatum","zDataset","zDimension","zDimensions","zMeasure","zMeasureGroup","zMeasures","zFoldInfo","zUnfoldInfo","zDatasetReshapeInfo","zEncoding","zBackgroundColor","zLabel","zColor","zTooltip","zLegend","zVChartBaseConfig","zVTableBaseConfig","zBaseConfig","zCustomThemeConfig","zCustomTheme","zTheme"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@visactor/vseed",
3
- "version": "0.0.4",
3
+ "version": "0.0.5",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": {
@@ -1 +0,0 @@
1
- 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
@@ -1 +0,0 @@
1
- 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
@@ -1 +0,0 @@
1
- eJxdy7EKwjAURuFXufyThXDNTaSUbHawk+LkXmwGweSGaIdSfHdxKrh+h7PiXmYE7MQ1NNbUHuhYyjPS2dO1KgxSTFoXBAg7oaGnPfmWraWhh0HWKd5ifT00I8BZlo4FBstY8+YXfdNJ5zz9jpK2IJY7djAo/yyeBZ8v8aktWQ==
@@ -1 +0,0 @@
1
- eJyLjgUAARUAuQ==
@@ -1 +0,0 @@
1
- eJztfYtyHMd16K+0wFveXXq0ePCpXS1kAiBSrCslKolW2QWgmMHuABxzMQvPzlIAQVTRES1SsSgxFUtRZN9YShzbcdkS4yjXNCnZHxMAJP/i3n5OP07PY7EAZxegXcJOP0+fPq8+fbp7YWss9LqdXtj0xmpbY+tudHWsNjb+3a4XdseXNyOv5QZNb/z1sPMDrxl1x9960/Na4+tu85q76nXHr3fxZzdsjvtBy9uoRt0xZ+yHPS/cHKttbbOfb7hvj9XGxpwxbyMaq41F3bFtZ6zdcVte2B2rLWyx32O1seWe3478oNZ9u/kiS+QlL+H2x2pTDocRLOsH6z3ch7ex3gkjdBKthJ01VKqO49ItLywtBkZWtLnudaGMdX/da/uBB+W13Mh9w+teddfB7Oiqt+aVxhyM3F47EaK6FSQoR8AEZcpAgc0SqOqLwZgz1o3cMLoQjdUmz505fXri1NTpl06dOuWMeUFLTz3tjHXWI78TdOmk+t3X/ah5day24ra7njPW3Qya4sMLww6Z1iVnbN1vjdVOn506d9YZW+cfZ85vL207gyI7gqmiE9962Fn3wsiXyQwDnkhrWoHmVTeMLm+u20sYJK7lE6RZc93WdYzyFsF0iZCInXalASVQ0xmQms4WmZowgxSTmrZQyw2vXcYAom2J48Nr8ZRuoba/ejXSC5FEeEoTWq1na3ak5p9zYTFJwGRWSPV0170mlN6L/HY3jbFFw5D6IC1DGbTpkaIEJkyLTggJZk3orfrdiOT1bYeINkZqbiUzqZjzu4V6wUqn3Zrz17ygi5EoiV09Sxb/OOc1z+32Qk+uIifLxSVEzHfCqbnJ1xQloGfaq04mVZ2kVUHtk2ec9ZwDre9jpPa66UNN4JWzQ8cr1L6O7b1iMkyimayuj7peBGYB/BTnrhnMYzTKiOBSsNKBSnlBs9Pyg1Uob9nterOdYMUHc+miLUWIx8O2rQvxuME8iMGAkSe0Kw8dKibGDmVKg+9ryXoOZKnzRWYpssgg1nNh+Mhfi9eEW2i21406a8Tep1MjBJ4QCaXFQMxWsxN0I3mN0EDlSg1opTGNthYDhEIv6oUB/Y1QTAE1noTQ9chdbntSAi7XvLYadnpBa7bT7oQ1VDqxQv6VHF5oW/y6Tjgib32EmjRLqsbS3mzigdTQgpyDUOnE+blzU/Nn5TZo+plzZ89enDXTz569cGr+IlB+cu7MRaCd0xdnJ2ZOmenzL83NvzQBpV+YOzdppl+cO3/+/Hkg/aULE7NA+3Pnzs3NaelL0te29LvtLnttDWteQGcwCnuepVrU6bQjfz1/xba36gWtvPX4L/p3ezHYBqUqSM6NadaXSrvIRr/0H0DFcS0bNaplt7WJAQg7vUnHLAwRupZrIXn5n4381TIwK6hlYLbQ2gFZRC0Ds4taBmYdvQzERmoZmKW0MiB7qWUYq8FFlsxknSaQhQXjfzJvZGsP5s39tAgybeYGNa6Q+JsxdX0x2B5BOwH74kbJTIj9jYdmJUyexv/r30rQ6/djJUxdPDs1D2jl03Ozp85eALT4/PnTE4A1MD8/OzsBaP3T86dPz84DVsWF2fPzQPsTE6cunAesk5mJ8xcuTkH9nj11GoD/pfNzc2enjqyVoFLzYRgJjBgHaSSY9M3/DcpIgKlfLQNzgloG5gq9DMQhWl8gt6hlYM5Ry8BcpJaBOUqHGeIutQzjtGMj4dCNhJcKbCSIHSuyB1NM79wW8ja85usMUsl5am56byG/+9ZlPMcO/jWLxZhUoXnV5c490J2c1k89d0ejSSx8m6+Y9AJGRSTHI0gTPILThTdeh2aqjuBE8c1ivl1azLliiyoK4qt+QM1fnnAh9Fwj4XUvbHpBpKTPdtq9tQBIet0N3Xbba0NZQDszbqh/W4pJDW8nbfRsxb3Gi0pHGjL36MVpc0D0C99wMVq90G5Lxdx226aGFCSrGAbRq+PWhlgLVhWUQviEkIkgVNYPBpdQsyYyR1IkFDqOZAvNUPCkmYgjSkDStlcYqemTQ0TMLf7CzKPqj5uj27EOEkETDprvtFt4Y9ZBLC7CQd8lgRU4EfTXsTazBpOI4vNytMZfhZ3eOu2dlb3UUj7/2sWiQ0p4y233ZMlB/CtuEMld5IuKWQyoj8ZbW4822QS+QQgaNagyZPvXNbRAXVYcL2L5Scbq4vUtX6uu8dHUUKmkpuEhmalkXCKZNtMLjJ6wS2Zda4H4Vy5F3lpXQIjrby8G4ydPLgb/36za++jB3r0vnt25t/v5P+w8fDS58/C3Tx5/tfvoV/jX3vt39j67Q8p9Z90N3TU+XiVJYExO5bv+NI16s8jHuOHNNWJjGqis4JZTJUkUvdViImVD433WOKWS9EpNm6o5MQZpujiV68iNSR2bDtyx7K+gcgxJte0Fq9FV1Gg00AT61rcEIEpGBamuPZOomLcQ/xkfR7v37+7+6f/uvXdr7+fv0Ylg8yNmhWFwKx4ahtVrCS6WuLShMGOZQtKSEBujj32qnGekEfYzUgmtkuQKHUgCpgRCzGH4gdsWo+gFyjh0Pi1zH406eJ66sIX8Vs0UHG7bd7s1VKLY3L1/78mvH5Qc1O40XaxRaqgkwC6h7aWE9uiY9QZvfa1UmxC/AClHsyqq59eGjhUhj2XEENpBXrvrcaxiEvrPj3a/vrX3/p3dLz598ultytg7Dx/FFHTQyK9Wq/HsO+gIzYXh9c+lFeuHoBbrferFerpaNBUjoBph9WhTkXY1CalKeQMG1JY2jWlqTdYUdfs+P7WJMmhNLs+RzHO8yXhvaV/aK1GD1QWyuARKV2L7UWNiwEJ35eaMSj0VKcrY9ykvtaFpe17AngUkMM1STOAtji0u9s6emjiH/5wnf86cnphbXOyde2l+YnEM2i6BhKx1F2SpD5BjmyAzzBOnZhfHkoCYcACxyKcSgfunSJZKyqSpZYRMV5N7kiEoYOL0rihelF35ooMmKFX/HhPbKBDbqG1A2j0lU8eekqH3lAxy9V04nwvgX9HMynSXy9RzdrlMHbtcjl0ug131x0rLWKBj0aSuzi+17Et9J6GlflwHor19+xAmj/05hfHnHMpcHPtzCu/PAbUxqJHT/DmHoJOT/DlTx/6co+LPEXpe/mdZrF5q9b2oPl7697f0nyzW0v/Yz3RMbAXxM50faj+TTt6F9zK5UW9NcTYxOkxyK7FGsvqgILv0TQ/bMVEnhL1FsQF1+W/m/qaGdr7+ZPf9j6lEooLoyae39279+uk735BSoKyitlHL6zZDn9AOevK73+08vLX3+3+vob3P/rR37wuthoN2H7y7+8tPhZVG2915+OivhSlS3v3w4913/2vn0Qe4yK2vdz94jM27+x9giD568OzOhxUHPfv0w937HzCj5u79nYe3RJNVyHNimNWD9ZtwhnwTMxyhmxoKemvLXogabNcaZ/9VbM52o9APVlHDtvKJYRAzKVUSaSk+m2zeGR129DKaQDdvGmNC0w1kWGbCJouuhp23UeC9jS5i8VAuGdX9Lur0ItRZQaEbrHqliuTEYda0aP1yZ8ajEHstpHTbbftNz4C5EjcCDzpeEUmLCmVSEkKvhKNJmM5P/uPR3t2Phc5+8h+PHLR79593Ht7b+7dbe//9kzTP182b2TxfQmW0NPWQvjUODc4yQCQffjRmJa6AGmxffaUTonLbi5CPCbyOfPQyh5ANp478b39bc1u1sDDEs0lLLvhLcq7oBjXQqhd4oRt5c/6aGEIZpg6HNutALFMRa+De2oKCjyXUiDvUJ7663uteLYtvmU5jtFcVtMQfi8b5ZXXq4hakU6axPH7y01/s3b3PZPDj21jEETcMvGTFiCBj8lpo988/3r377pPHtzUBLVa+vTW+XP78T3BzsdZg4vnuu88+/emT3/1KWQYjGDpd5kJzSBbHEPSqpKXQ1rj2TBCGFf3MONh6dc1dL+OOSfE3Sc0ypYqWv1b1W0uVSvUHHT8ow0Rk8yDl1rz1kVe8KE3vrvSCJoY5xUnCmQcLGUOTNJAbrvbWvCAS0nMancI+E5G+cGoJvdBooOsdv4Um0CtqTg3vDSsCAW7ztNrmaWubp3GbEDlAzAV2dUbt6oy1qzO4K9GY5DUZjB7vU5erHqd9q/O63E4P0OJ9KTsGY124xXLp831q9NSFoHWNB56JzjD4JCSIVSO4gAS0MlX+de5DDrOof8NdZ1oAdb3IQZgBUidptkAdoh3dIFARlW4T1GGbDpp5fWXPz62PgH2A+jcPEmdXv3sjxQRoTOc1AFKuDhhuj4rsxy+MN2X8JPK6bT+IXmz5XXxUH32HuD2IwfMizRoPOi96G+ttv+lHL7rBJrFALW4YIMLH2Pmz+lb2H5wj7Vf9/Se7H34mrDN5h0q255iBpRZjOzYO2vunz55+8Wj3l5/uPvgHkvDsnW+evvPN029+t3fvX0UpbM7dv7fz8BGeYQft3f4QO5dJ/7v3P9j74x9xJz//zc7DW0//+4+g10TZIE3ymNi8ImL/kDk61L0TaRdRzRdqTN5NVItwN27eiJXY8xEPUS0Tmxhr2k7PmuH0XjN9yvpG6nbcV8jiqhiIqEEsrAth6G6WVe2JTuq2RAW5XXlsRPkyW3iinxW5KP8DWv4H6GW9zzr6gVRBUeE19IbX7IStl+kqzEFusDmNMUc2FIRy56vmuDbrAjVEZws/WFKL4FgCFjlAdjRYQckR0ltbEHODlbffAjO5bidNgSXIxC0p9siC31rCuO4F14LO20EMv9DxbIZJQa1xOsMLZGK+/W3WcG/NdKyADoIaq6/t04NuAlCOPHl820FP7/zX7i8/3fvpl3vv/2hq9z//LmX7W93oVtIutYBEjFQgmWAyNYBNEihELWeVKm94P+z5odd6mUujaUO8lK5cec1zL7WuXCkBwoXm4g8tn4sWWoB80RIVTVAQc7tbo+wawyE8Ynhp8IKxek324skUgRcjf/h87+fvURvNQU9+9tXeB//O5lnatzc6q3Y7a165zD4J3KXmVb/dCr2ghPyAD7WiQ5W2gx/LP0X0KaiTfWMCoJVOeNFtXlVhkmIeQPCkiIcqz5eED8U/NcSNYovgLqtchXP8UkVGfUXgfufhrSePbz/9y093f/Yv1KkR84oU6tH1IkK4eG1CWydmZTzv6kBNghDIl84nHciUVBIETbzNYEZH9Wl5oYFaTPVhMZhQkr1kerpA75YsxQC/0JTqF5qy+oWmuAvqNZBIBuE0MyZTk6ID8aDJxKG4gWAnkG6lwZaaxVrTLDbVPyRbbfmMtXo8u8JI69tzwmukGWqaj0h1uAAOJMVS05xCdagt0HYDS1pMOK0saMkllVEMuqSCFrtOq5Jk0WlFLYadVGobEuemp0ez8WQwYH/PkBh6VkEo7LznIQ1lo3DQslA1KQcuCVWDVJFIqxylwh1rszVSHM5W128uYzTZHG1MpxijaMDWjzoSu00qvIZoH1Yp/Zdom8oywggD1GsDV+lqy1/6b6kCiJ5KvK+RaM7mMWgNLMFkhmTD1gTtoOa4kuZYJ2NTBWsuL+7piQJ7cY0HmsxHeYp6+diNOQNUB92IvbQ3gNi35PeWmMc3biJ7C+BtZwODMIHkXgJJbnKYSK7Az6aaTxU4Ce8WVMebcZ58BeQNpYEbuVtgYKReNXnDVgImz/6gqqd3ONr0Gl/GX2iipfdTzwhgHUTvqY5T5GsY5Ufk5AmeUS/8V6ooOQa19lGT9JcGncaaWttNo8WUEqydV/Hd9vLzxPhbaSelBG+H3EAvFyMJaktpZTi/0/vxZfaiKSrPJ5SC+T77zNTzTE09Hev1dITWs2Cqng0BdjmEjbJhl0Pc4C2mFNpCN8Q++Q15IR9/yidTzTcyGRO8Jsx6fdudLjrAJmC67wue0aYhcXlzMYmIC3kOpTRBN2bBe6dvpJS12kKpXYwwFcQBS4UmA+kEFHi6HXqFF6/C4mo30utZVnI52hhxWqHL02ITinJ0zlxbq+TBC9+wl05c3ifUHClS0B4L4o/cFIYGtOcFDYGe8Kwgf80Hx5IIlViL2zCOiCyUyLNrJQeV1v3rnYjULi1V/aDZ7rW8btxKhUXd6P3RN4Oy9vcCh1Bv2Pq2HDgkI85VchbzEUkp0tBoKjhA5hRNH6DROzSqZBfr8LMN/ywo21yU3sDC8+Eg/GXhIbHB+N6vn37+Ph+Zg/a+/HDn4W/x99OvfvH0q3/b+5fbu48fPXn8j3v/8vMnn97eeXjr2Tu/2b37roNozu4X7+/dvY8PBf35n3bvPsCfH32FQ8x/9gXZqcT15H1E3pP4sffRA7LHlLVjuTE/8CPfbdNdt927/2f31z/ZvfW1XKLZCSJvI0I7D/9+5+FP9j6+o4aq09HTQ04xrHrcmvy4WM1AM2qgly876LvTJJRtXZSjoWK4JM2mQWsMoBr6LvmUR1BDr7sh/nr5Mgmm3KYBrpe1UDQRkSDIMfRavaZXLq+H3nUHNXuhHIjE+LXZC3k+hYDGCTkKBBVJbLFu3C66DEQJHROPlXiQlXbkbfAYaXw+5G1wBbYB7IRvWYJaEkhI2fqzEhHfitPoSN2YC/mlRCOqHcSjeiKlkBb2FsKwXWDAAq8l6i8yLrthQullN9QK8xemkivxUnpl+mRVSl1aSK7aJC9iJVSjBcwqGaBVCwJNpMKslJMbcEPPTaiHs/Xi6b1JpWwrnywkUM9FA/V9EYFeOw8V1PsgA7NOfjoA2shJCPWclKCXz0cKIyV1Da+GFzQ7LT8o9o7eRQakNEMcbsWjkVwO9mUk1RmpqVefRR0GZfvmOvgssa5oqXCwFE7TX4nVUnVXcm1Tby27oaWK3R6wV0i2BRLqwQrVUiFBmSbUyKBIk6bXVBLJ82tXTNkm2KqUMs1wPfMUW9R9hjmGVX36JOvKL2mWLYoywzSPlKQ03iUmwT2FkZGau9cavQSeyTYeIpWfLhWlWvxNWge1xZO1cp1qHGKluXuA92+xL/Sat8mvHXJQFENbMwcQ+18YsNUrpAI+ZXDN28QHCKQGIC+z+dwuBkH2LRswlktkoCV5wOUK6MM2H+5NbxwjtOTEeOVNgzcjJcxRva9J0p3U9jlS5ib2YmSZCMgbbpkIyR2edSKSWlcnIrlxYCJGzrViyC+xyVA0GUZmClrCOTzDslbT82UVJfKMRGA5ztNt61g9H2ozCUZYVfMsIw1eiEtZiXDaLR85OwFaq+kj5RrJkFNEZGilVenEFyGZFZRFAOBH0UEZjF+SL1cUqUzGAKVxtIF5FCNq1owbGglwI/Gb8mo6fszeTJGK2pUPhUsdtZDSrjYbWGCXmKXMLmwCqExpoivNG1xdntkkSGfcMA+Y2ErGnQC8mgygVDEraK/SbYXMsBFaxX1AJJ8MnVI1K3yYGvLAR4x4cgwTEKnJ8ClV88DHqDUvmHzhwLu0SKV0oC0N5aDOPkYgra8YyfUFv7WZrNAr0im/MJA7T1QOWUSDtbGcg2EStI/R8KWyBIFFW2Yaj725PMTVx3DkZT+ni74GktCQMQRwJQKaZol2mdUoMy0y0BxLtMWshliSFWYzwQz7y2Z8pVleSWZXis2VYHBB1hZsaiU401Qrq57NzLIts7iVZSywqJVVVxO5oQUmx2YSnM0tIC2XWFxmmrU12e7SsqjpBSTKFawrTsn6MtfI/Vlfda2VfAZYErDcAMsIaYIBlgqjxQZLdg0EXh7wEm2wVACtZlgSiMIMywhiohmWCqLVEksDUTYDckCa0RLLBHcGYyyFUvsYRGZjLAv5pttj6XKhjzHktMcyCotMJlmG8cg2TL4BZTfJsg4pm1WWRmV9jCiHVZaJ0DIYZiPrmdT+Fs0tSbdW8CSCfi2eSIZJUkT8Ov3SdzRIquE3i6uTX4xaJCcZuIFDUMYhkLf85HSjAu5cL4zTjIJ6IcXp1na7XWE5+mvrbY9ESSrwU7yth/51N/LQFTL3NVpCyXBlJNZUnKKbKOgRaxP/kZ5TCXvNqBOW5UalN3T8bpX2hxqI/F2M71ekg+OLMPJVxjUqUjZBUgOVOWgaVHFNXJDUdhAvK7cjZkfpjqfK3a56ZhRS0smIRAklapE7WKGV4qqn7uVm6koXXmo36jqSdCG2Ysjm0P+ON/7UdsVWEi+2JNd/zV0X6DOqCOTRaS7rl3NKpCCRQFeUv07CbC2Ew+7o4rVwLwqtWnpTymi9qvWh3pUSABTdyI38JoLmPQ58Z9cKx8LIIIJpGhovt6hNb1Jr8lwDLfHZMe43NuShUZeInAbSGLsxTe4NZNNPMxO2Ta9gerzS8lb8wLvCQtw2uTxbHPtO9+3m+FWvvY6V1pVxveDiWD23lDVqWMWsUdKQs3WLmOUPb5nEDhO8eoWXjeYtdK9WTiD9ZPI3YUjigBQuAB7WkNWAfHWjPqdMRi+OMVkw5rAYf/kGMHsllaXHHKKNMlUlU4prYOtSUjbZK2OqIQ0IBcMagnRP9mY56SqwqZopU2OA4iJNykfeMiqrrP0pmsbal11bZe2HyCnSAVdMcvum1srVLlZeDPVGk3JDgDEjvVC6GBgdcetRplsJD7jTLXLlW2JNDXsZa0XSyNKLY7FHcEDZtzFtyvhK7kXP1BAsekQ4httuF23Fo+yaY2eSY9mVVtJn3FD/5stYIx2oTr0LQBLYiOJbUXJe1WIL4ngXeXljRAs5UHiSeYVY1piD8fHYgh6lGAQ2NioWlXHF4Vly+lwcWmW31RRSA+lMITKQwiDy0mnLRlgWqlK90hBB1fdNUZm3V3SCOgIbLmzYgtZgatMakQiuL4dZkXWH/NgUv+G/MLpjfBwx2MRlVRpta3fe64+J2EvDT4vYy+vPmJBD+jF48c01QBPqq5O0Hf6wGmtKqSO/RVl6UTvhsG+c6OIhFSkJFXSs1AeGFL1TDScJPDg5dDyY5apgM6kwXCrU1Q2him50FL8ucXfrT3iJlx00Zw57Rx2/jEqN/Nb0ovycEHf2LarvCAHJ7NoGnr6tQ2S+Py492xm3Jj/QSVPx8zBmUM4NaYQ3qp1lPOtldag3qiEZbPlGlbZUrjgo/l3thOUbVTHucqVScbSxSxUNBMB5DAtKJn6ARoVdwYUKvTz+G1WXPLIRt0b7khBndKR3Zd7dDCKMPvwWX+q8GKivrkog6x2R2bV04wcrXvgyLtFZgWCZthiUKnHr4sk+9/uf/aT5T6YAOw1ghBljSKCBbFRgoQOwswxUYKcDKyWwrmy6YQrUDWeGSTdIdyRrd8oWXyGoFKBfltuQeaHlrbi9dlQuRaEbdNfdEIcZVKp0ntw2XTfyi252f/bnp5//5smnt5++8/7eP3/57F9//vS9P/BnqEg7SGoGPXv8ydMvfrnz8NGzWx/uffIBrWS+WiU3tvvhlzuP/33vE/75+3968rtf7Tz8g4N2/vyT3V/9XSn0WvjKsuV2D19dtvOnX4gaV70NB4Wry3t3Pw5Xl93SiZWViYmJCVwaf5enzpxxJvD/qmcqJfV+IyLHTDSZGrI/mbW/CTgybEZvRi4+d+nTy6541qWqF+B74bB8Xu502p4bSJMdhT1PnmNQsYp2qVeK8CCiXIiZ4e9/8fSdb/Y++XL3/q92v761e/9Lli2xIt15JJQew8Ogsbt0UqjZMtx8Ax59/UHfhJCeHSg+YccZ0EXptiv2GVmYx5d1Comr1+QeEtjAbJo0Cll35uFjTYfJnKU3qNqqUu60tZ40Rmtttkeelc1yoN9gynTsZ8E/aEDuG/ujzefSzdPxz+LzurFM4LAbhOObqyHyOGBNWVLJPIzQdb/r51F+CLU7TRcn4Cpe0FsrL5QEOokJ13l7Tv6mEaNx0pJ1FRzfdd2IF1QiNUlMqDjRFrQ8b9paq5tUrdvn+tc+T+BMZZirfmYLmq94z1ueOSlVnUIpQ59LmrVkWc9mn88EwXNq+AUPNTAKeaNJuriJ1UnsvFgMqNmLN4iw95leH4G+RTbo3FYnaG+i5dANWjXUC/wf9jzU3Vxb7rRxJAXzRIXXcEVyNUS2evHadufh42f/+om6mCUQAM8sv/vjJ998QXP/59aPcHdo5+Evn/z6Hm3EQXsfPyD3reIvukB9duvTp3+5w3e6yPCf3vnt7hef7vzpPVquCqxJOZooTm7SEd4UPtN+BIiJ+dFmE/HGjHgEc+iY5TXx5PDz0MxuL+rMd8I1N8pRaYVXoLJcU1SIULfIJSWY0g96a8teSG6lZ2de6M81v42vp69INWTFLRKFO4U1VBGKJsT6Cg+B5iioEdUm4/JUSFhwGfcj9RBd7fS6btASe2gqwoDahEfiBlpe019z26+33abXTQN1Shoa9i1JlhP5xohbaXc6BJlNz2+XluAR0NJxa+uht+Jv5Bl4t7eSq8Z2hZNF2tJPeSjp+dA/Dp7l79gaIePCAJEBJRsMr/EnfjU63U4eqWLVZGxU1RlKQ6r1ybOmwRr2CnD5eFLASiS7TyvXJvEO18btS/JJss+QekLuGSYzsYO57NOShSA006lUjNMtHG7IwvzSsB95OACJ2L9MNKSihj0mI7VUJjC1VCI9U7Gsy9F+JGkOWcpFaZr/JlGEHi5DyaIUgWcQ8ok+KZLaOu78AnW0/VXShgt7ZHL4DGL+XubAt1zihrU9l70P7z/55aOdv3y+96Mvn9vOi23YA916gZd8Z4eJxPkDb+zvMNA390J4Gy4+jYsY6Ph2i2s1krNA/osQuS808mqoNDUx+VLJQVMTExOTtRLGQslB62FnxY9qkxMO6rptrDHxWSeHmJ1G/akJW/1Tcf0XJ6uTtvqTGepbK5+yVT4dVxY777ZGpmyNnJEgmJgQ1Zegl43Y63fg7gaNFuJGBwkkcoNNcu0rGGijeCVxs1DAFOvMiJHqrU0bZUWjYERVZgP7mMIOlcLQ/gnMFsplUthoi3PxsgX/MQwCXZ058TZFPHVYcetqfAMM+TPt6M2M5UgsYcayJKIwY1k3WKXWRoayodvye3Aso1mYWaSZSm/jP4ZwlTBNX54jqN14RQ4pRmhT+yaI0tIIQrQ0MnAtjQ5QS2QDUVK3+3SGAMRzTDj9EQ62fUdcWsoBde6yV7wDqunxdBjsAwinY83qK7vP7jz5/Z+fXzQdONjjFZ1K1OLYpvSi/RARNg0eE885N/AU3+TPFbMP7aXim6jELlQnv8XrR9JX/DKPnBg/JURS6XNE/KdWRX16iCSxR4LEb61G2OlKEIufrU7QE2VaPbd9YcNXHqnGLtgYAxfxFyF0/sCz/HTz6wITOEPCC8ll10xS7NBbuvgdnhxLUmp8g5+GNLlMfIecjkRSil67STDJv6VmJayKXKlBGcX0zjF6ByVFtEiRGpSxTvLf6HTJiAnuGYYYatj3HEY/iXwg80DT2CyQZD4jDnieSqJMxVsuT4oxD9IEKHiH8AyiNUaogUMTaxK6TARJmIlxIuNCQQDeQ84lqa+7oUa6DTR+8sSVK69/942LV66cHI+fs1WKCf+2krqwOEawuDiG7wtcHIvoRx0uGvMCL78upVgqvUouVqHF6SUrloKU/nnRJvtKLMwQr9YRiclV2YxqdUWqpfKMG/Iay/invZgG27KUklBJg2pZTrJUwxzLy7vkd0JBDSpXTrJUwxzPy4fkt5U8JLqwFyPygRds0Q9bUcYporT4Vh8zVurh0/rlLSh22CJZVNkCSBdFvmgSBpYxFikjyxlA0kCyRpE2kLxRJI4sc1SpgxRVuDTiJppyXk7ElhfeRpOD7tVTWvIjfEqOUova79Kjh/hbKaG31jTa4Ps60gUjNEXtiZ67kboiCcTKYuz2FuE36fSAeQRDGUnNGDWNxcZjqLGx6Wtt7hqgRyG1zHgZzsZkhHkTmGt8NNCajY+FSIN9jgUKtElo8jpZZ9RMRBpRRBFbnelQpi1CwVGpjn29iLYjAM6x1oJWpK8TKFmZoZ7ODfV0dqhn44d6FoaoZ+eHrByRwhMpXJGBL5I4gy3vs/JFhjGB8RKJTWbmjGy8MXIeC8ubzMtu4U6Ls9dGwWdGwHuq/cCPyNVdbMfQQRt4gYFTNmfcoOXo9OZQZnE41TuMth3KJfKRNoyorukC1F6dqCHtsmNiQ3K4hFJyAK1A0jjgZCeAwU52AQj4QuPJGkxSVnjJaBGgB48anUv1R4kZLlRsyPiAMaLiRMWKjBcZMypuOHYWg6WjwMjq0mLoeTqmV0qmm5xsMRnpN+wNnL3trz3YOR24TzIH0wuC3pQIvU+mP1Tc6fyf8CS6IgoAdPUhFSQ5sKlIiCMrFfiNvIqKL7hYMB4mSBINi+zET3zM0uFJPKCWJPBYjO9/z+Esar6mEdJLhy53puYmX3PiFVZsE0qJ9OJN5WVZu3lge7ClZo5WEiImhMa4gLGbo9AGn2FQNmGidafCI/cDwK8BZoIhw5DJtLBhVZUtJhYBPIKYhHBpYNOCTwWjR0y+UOfjKIiX50nwoByBn+U6FiP7EiMwUodMipweXimirl3w/kVBZceAViz08vFu5DavHcByRX++0b5IEfftJy9NKKDPb5EyUHTp/K9jS+N6jqEsq5EYT4e1MhkZnlc2SIee+eMVrWOn7HV+9f9B+SvMFzfT3BUZZAGH+kClweHiz+KzMNEHuSwyCwcZccfioY+FBZ2WgsqGA/VZfO/7h++zgN8KP9x1Bhv3ga8zvvf9Q1hnwAg9nDUGQ+TxGmM4hMmADY0Dsi8GbFg8X2PiYGyIgRkPx+ZCbnMB/6eg/D1yxgIexLGpMDBTAULnsaHw/ESJFFB9LFEOR6JIKD8WLAMTLAlYPZYvz9uzcZSjMp6fh6MYgRkjJWWSETsSguZcgQVN0kmn5nC8B2YcyxPPUBnvD77ZxHOY6dYNUv41d33dD1ZTH91LvZ6Bw6Rdz0DfAXv243tP3/vD3sd/2vv8LstQbmQ3Sz356W92Hn1A71enz5btPPz9zsN7u/ff3/3xO0+++uzJp7fF+2WkPX4x1kLpxPz87NzclHNi/vzMzNyEc+Li5MzFi+ecE3OTs6cvvuScmD0zewH/nZmZuzg/45yYOXXxzPysc2Jm6uLM/BT+Ozc/N+OcmD1/8ezsS86JudmLc7PnnRPzE/OnZ085J+bn51+aPY3/XpydId8XJ2amSksUlHFjMuSbZXTU7H3y2e6D23ak0HyGjgfv7n30YO/eF7u3vqbpu3cf7P74jzvf/KMNHexzi/1FJXr5VamG6FNsIp3chIWT6dNsLH1bH5KgF/A10um+79GASTo/Ue+DrFMOtQyf5EtZwhVN7h1gPNqB6HlwkXZsNw10dXZsLRVHZhT3MFzutRhMPFoIYl/rrCwcnCmyddhDWgHxIMex5hEVuhRSR5IppHXIY1nhiPihkCNmLGuxXcfZN5tFwFWGYM0DCWrNFdGWMbb1UOLZDhNzCT7fAYW5FieSbQgFQuGPxwzyoP3BhbjGaBzkwXurMDjcQ/gHFtkKY63/Q/mJkuCAjuifGV5JYN35KbRAGNWNn+Pd5YPZ9xmJ/eUhljKmvVHsjeV+ztRpCpPprQO8AkRCY2aDo9/LPwZpbBweyhKO5ycaG/u98+PYzEgWAAWOgx3QaVr8+wBYHkOVjdcJADmZ/NAOzw4GO1CIqp2tBUKKE9s+fPyMGanlherfgnLyJUwLgmq+c93vus2oE45TeyvmZFZ8hg5JvqWTpgCKF2egBiqzEjVeuVJjvTamEQsHCbqdtldtd1bLpZa33FtFBJklB7G6VfJd4YUj5MpmKGqIcuQvt1HLFUvrSu2So36TSv4KKr+gJvM71qOrYedtFHhvo4uYrMolFRa/S14po6+mbscQd8mIVUAxFspm5wDEuHbJIX8qdGFC7sbG30YgQ+IsVBrTIl4hI9brcfnMiK9b+0jGPauXgP48UxC/2hoPIOM82AcgT4V6UzlOwheUj74w4xNdUKGmL2FnO0HkbUQOUlavyYaLtwGYONXqOFOs7MmU/UlHDo5FSqrQ3iRErQhNDKd4sAZtS2RN5k8IMlHGLsTiZjD3+G3kByqMQqDFna/HJgTvd9Uz/AfluHcBEK9phedvg46QDHE/K51QGu//2hK/t//WhK5JJ910CzFq4BGAiIq9moo7bgT1ulFn7TIN6pIGSVJec9f5C3G04yjc5G0ykSBT0cuaD8cC13SZj9fhY6CDQ003al5F5RhrXDoRkVD2KhZcqrRGCjuo63n0J/KDlQ6ebtaaQKUtPi4LZxhrSgu5q+oohZ5l5WCSdL9kDSmJ3JQtg2YQ92AIHIKzqZNyCjlnI2nWEetQImoLYQMEy4E1aRai23oCnvISr/RS++jrYWy4FFQHD3BhASt3JkXltSyX7ANQ7JD8oosWRB5U1dU13UGQQdP0N35CFFr4HIYOx51m1t8yQvvW3cTK3qfehmY2i852NbQzmZminMnMgOR0QAqZUMLzU8acmBkG9YXY89LLlFSz62QLtfalj7MT7aB0sYLz4qndjCSaTeWeHTqVa/rlu+M+VomFUbmMrU8KpclcsiXB8XEWdu9C6e4G0Y9G+rp4j9PIItclQhnm+1VGkfjBKSOLv2hlZvD3p4wc+qYP4P0yUVK34QTKIEiBMjhWoDyKFigHeMrIihgoT7xuZEMNlCXeO7Jx5DmII89MDANHKgE5hedKFvgAETCPf8jDsfGxUJDB8DquBLqETYgguhEg5eIYCSiQuglUR4QY/aiYFAmcdZAWXEZeTF1bSoyPVEdO1otDBx/G1QyYTPOCWc8Jp14+C6B2yj0DHnnAqcWnXMmwIdqiqGSr7W2Lly1B4oELj+YEaqKHi+6izqMc1RgfPZLmiifOumHkdX03sE1yHy2NJgUoa5NiKx56daLKmfitZUkcs9Ay5RXQECggHr5XCorXlbUK+JCMLNrxm8takVcV/8k48wIC4AM9a69BJ+g0GwbqqSgASqTgQK8BIUEvA2FBL5MVDaPJbprAZXZ0UblOibiWpkpJl+lcZExaKkzSCiCFZ+utnru73JR0ehgoSRLcdBFfVCJqW58DB6nAVnzkZxH7jIo6hyQ4U5oT8i0zPovGlovQFLnQptbKpt7KptHKpmgFJBYYrnomwOqpkNUzgTbyhMk8i0Wlzcj6CLuFaOwVRn4qiSO4qBNJgJMFP/Pnw2oCLDyaE6gZjcQXWtRJVG4zuR65y21PO0WY5GHOUf9ITLV0g2Oh51s5OkomLU5R1pfSzkPC9OdvLoEawBskzpwZBmqQJDfbOCwqGTDwpMmJ93/BibZXGPmpJPu8RZ1IApw0K3yvHpxEuPDIT6C2HV/UqdTAVAQnz7HNbKa6Iz/RLPajqBPMwJMmJ47fAWfVXiH3VA7fjftsg0PdmC3MpNpPIDlozo16a2BUsn7llzI29egKDtZUQ1tF2J8WUEzpBgciomq1qp6Nk04kbtHoRBLPyVqSM1vS3SQx3TUQC0uWi67xDfcGWlgihYzARhKJyZqxRzDzfvwuCr0f9vxQO3eEW2Flqm0vWI2uokajgSYqWmQvxYBeUQxIKo7LVeMc1JDGndwkHXzUWZ+cmOBwNzimqt223/TKEw6anJioyBW69O7vhlqzGnqtXtN7mVDKdLm8HnrXHdTshfHcCkjIrNIC1Wq12QvppG47aGubdQWN62/IbdXVa95mt0yBYOHJ1RW/HXlhmUeDlq95m7hbKTpUAbXbWfPKZT/y1ghwmJQ7Kwh/L1zzNpfIjJTotdWlCvrWt+J2XlgolRxyjM1BvaDlrfiB11qq+kGz3Wt5XdqxUoFTFuuUfZJ+2e+q3yI94rosspaPa81dL+NZJ8XLIhDWb9XwJIswXLftu101qd1pulg21lBJ4JDdNI62KwLJCmEkncLVokzsnKyFXcecHONEZ2k1bNjK2lp+IndrZVPYW4611jk8O5erIdWpjG5wJlDf5Pd0nq9naj4H7yu4TGR+mesFHch8H6cwOiDljdRmL4zTOF1Q6SDOK2cSD1wwEL5sTFulQGM6VQagFxZUOEslDXAiFdQkISLiZFNYWGVEYxqQEJVYKDSmyxpGdcFgFQ8JQkLCfEU7Hi4IKSFKftSMNSNYbwjstSyGmjGufm21FCMsPoDSQCXiSCvJRpguG3TdwE8x81b4aagkXWXGXmZWV+lqJ3E8KrskqDz5NCtvMFaDSewFnvscDvYyYjUL+SQQP/2J91Zn8dzkOwbK7jjip7qysCJBQ3xaEFNrlxzly7Q66lLw3K4GssyE2grKslyievENGrlyCZ+RAhdCvHwvWOm0W6KcWT0uHLvJ9QarcVaVYlSstaRKN28i6bNKEJa6YhIcy9xHDQkMI58+e+MoL9owROHabpdOrLI4acrPMCFCADVU6oQtP3Db3DpoddZcP6hJ2KL1LkXemrhW0g1WvZoCCM3Ac+uv+Fg4y4DFR0JzWPAcWo22stnrXUZQppluJS3dXM9AXVqVVAJTyuehMdngz0pmkB2EdIMapjZdhaQTnGrmaoRmJ7asBJdIdAmEp5JAHqtwiNWWzYXHT2MUVIHtw4HHR/Z83Xdr4iphi/OuAB45DqPuj5McDvzn0PvipDGleuK4By4WWay7PhxxQW9t2Qv5Ijzd/8adXLIPTXa7qX40lqP70tTkfj1mr8Uoe+7+sgR2Kqr/y+CuZA47Sp6vZGbU/F4mPLk9YSoTHoQnjA+2onIs7OTSuRbi3f06sobYZNGPVBX3OblLM27Yxyo7z/KaHTYaxAJbBjb3+pqf54NW1cKc4YUWJpaqm2RBIqdsGCk4DmI91VRhQiNibit6Ik3yoodekzyD20Clq53Qv9EJIrctF9mc9z1yC6sC3yvVhYklqdQGVGpDL9X1Qt/rQkXJYPTi626LYK2BJnJqYH4Ozb7mve6G6AqH4MqVTUf+2lC+CGyKQjiwpbKdUGRFvT9KSVGSAMHoOy8wzailBNmUZSzrZFQhKobcDXrzJlJLNhroesdvoQn0Cv9RU4osTCypfW5AfW7oRGntcyO9zw2jT5WkyzrZQGRuBYDVSAOCFDMAkZjlaGk82zFy4xB1QfVg6vaNWvxiLCJS9V980DxlPd/3Mt70zDnShnR6OI3sFMRiC4xzSXbycl+Xk8UtHVf0u2/6wWrbE6ENyla6snCRq2FxsmDWfUWAwe3zv3bXPFSTmsT877eW4qawNFzQq73ltnueVIhLkTx9Sv4/Uh0nS01yn6LRt1ZOKCPxyoLQIBvC/N4Uv0hX4kt+gWGb/F3CdhSnXmVNHW8A0knWnleSNv4s9P397x3T94Doe3Nw9L1xTN956dtq0MaS3KTtgfmR8hI74DzKQO8p9mcfZK8MIwfdK/U2YjIgg+qfBWgjS0rrm2rrIFdA9QR79AUZxChQL4Jj7BDaqppMpDCSzk46U0GsJTGY5MhROwfjLBTukjksJvdt/T5Z6f6dY8Y6EMbaPFDG2jhmrMIwVr7F5fDdnutH2j1BBV1RHpJnVb1MqTBOVudgwpmK4aO97oWR31Q9tMLttaAAszCx5NhN5UTvbi6v7SB9ttr9XM8tZCkfLfUZvFQ0X66gLYtXdcGU/4LQ4qx01ZhGekkOVoj6Dt4POsSq6lhFrQWFUU3F3v9L1C06xxddhzx/3TE0e3hpcl+f+mMxfsgBHMfLDe3W2MII9ANZaxRHI6REhCzoLG9Zb2B80/OUC+kxI89Nb8i3Ej935XGkFh7pQSSWpcdmn0uPjKrtWGf1qbNwYlGVVZ+H+/JqK9zN8z/YV5yFB7uUfqRXHq/SF/6O1x3ynB8vPIZUiONHFooqxPF7EIcgxHE3gxDiCrhDLMTZ4yMjLcTJUyPHQlyd82MhPiRC3PLEi/KKSdGEOo2PYcvU+U6ovsBCnoOm/5eKWV9WTxDv4ydPLgboJNr76MHevS+e3bm3+/k/OGj3wbs7jx/v3f7wyeOvdh/96n9u/Yh+7r1/Z++zOw6i5XYePpraefhbWmZy5+FvaXaVNPiddTd01wyfj8iIZfpJ9B1KiPhM8MlxTeUos/ScL1A0z13D96+J04hJykkUUiOX6Kd26jTLmWv4WKlxVlV023QDFHQitOwhb2092gTekxdDruEW5ujvrpMcLaXSLD/06oAIqmQJCQVhULIkb04tFugCSp4QA6vEqCIZNJogDgcvJj/W3geP1ovIc8jOckU4q512n2E23pONhTzMl2IapPNgXj6EQxQPmhVzxbol8GQqX1q4U+fROH1bbllnVZldY+pKsmTAd+tHw5KZHAJLZvLIWzKTo2HJHBk7ZnI47JjMdkomDhwmO2Xy2E4ZETslA6sV2E4ZefvDfOKU/imazcGshlcJcKm3j1LKbXkrbq8d0TpcOngBvtK2hqKwh2/XMU/b0vHv0x+e0/s94OtD6RAyH71tcwSpCLNfKEpxSAqwum6XTY3iUKeZ3VgwX/e7PsE+bSHrNZ8J06lOKHDyTQzuubi6B39npza3KSoi1xQbTnptllXnszG5wASrqMvjnB4NkUreG2aP4RZUol46uL1FNnBTlGbeUaQbiULiMcrDWNXvo8Rp5PGLRWNbj2dpNjxJZzaAoGBBv0w9MBOK3kXbpo8Ri+RO6HtBVEOl5U4UddZKiu2+JAawUMI9lZZyX7DI31XmWOtXZFlxB+EP3CVTUWhFIzKPbsIITUQrjFzDKFs6slKFPxbN/hZUsHCmd9Bl7THoBFuNFa2JOlmttohXLKrZhsXBVgymwIncZSQGraLDMMUsxhirrwY1qIgcjA12WW80xQiLgRgWKyznlNhNJ9aAajsZk3JsO1lspxm3sGvRg7Sc8LBHxm5adoPWIVpNGHejbjOpKD22mLLIks2jug7bPCrrsLa3Eg1cnmwer8I4ao8liiZRjqZ1snkUrJNssiSfJDnylslBS5HzQyZF2u6y16b/LaoY6fMg4at4TPleCSRoeN6HCfPtxC1m2IvDo8q+FYdLZ9x5I0Xxxhv+oe67kaz9enzMyRki/02uWYGEDwI20YDJSdgzw6W1LTN1XoC5GbTTZygEohYDGeGn+uh/iyYUt1Cz3Qk8HLsSrnpznhc7tUNvzWu5/YQ5KnxGifgyHnz/7xU3e92os3aZvr+YGDZIsEwPsa5ejUpQ+KDO0+BLv1LU3wtS74TtpO8F0t9SojiMLxVlDM+YJ+a5V6RICOZfxs0KCSF1+EqVdQlWFyDL9QnI5GdGqU1ooSV6F6RRllp1KOGUWcMVSVgrwo1LbAJgTWk6SWzrRESebT7KRJSRjCIuc/sjI1Z9ZMgIjDRNk3j6Xo8kwbJEcJIXimivV+IxOOiKhP4rBAVXrFo3mVT1HR0btSrl8oeU5iXbTEaHoN6yiSOIprVHd4A68LM7RkFoN8zKHkqnerrZWzlxbtWmTb7ThpjcFDzapDqAGZnC1pkmsh/uVo1HiMFtTJ5uRtr0xTHLDjHLkmk8iiwrD3xkWXb0V34xvqSfxVsDrvvNa3nWfQ56i7ijZiRZ+dZlTLJxSva1YVynf9seMOf7s9VlkVczhokaBFdl0p2DFkrLbvMavsoiaM3i5xlKDio1+Q/iHCE/SGAx/sXCZEpL6jvdSaau4DL81nBs8EonqjKvnw4I0QbSdEpIQ9qS7WyaOUtI8lRJuKHjq2mKUkFXfEY39SgaxA7wokAZZMazXWlntPo9+9UEkR23YdKqlNc0Uhj1yimMjKUkTs80aSmnttD2YsSMxcnbi6lKJJHOBzcrubFroAQ4CwbRt5XGrZSegD8Jhxo6R1T/SltR617Y9IKI/y2e1lWvF3Ny38ecb4+boWHg16Khm+adzIz/WZc4ZjSkrznl2J+JKw9ohwYEqg/r9NxIcEc3cpvX6H+POmcQJBwmX5AO++MKXnWwPCEDdGQ5QlPg0nfRGOTgA6I0XAyCOfq6QnNZXk7abvcwN8Iybcdt6aPUNsKlPbnkSzPiZmp6k1meiNWheG53WCYhW3ZFlTXnFneDpfq8DNxW8gYsZJqxXLcvJExeNmN5NIQfu2WC/z16Ek/cwpFZ0qWIMENmkMboF+5M9l7gx067NS0QiF8xojgtJFGaJFP4LS9psiRdOIBcJA0FGE6GQeVekh4aly39P/iVjDY=
@@ -1,52 +0,0 @@
1
- {
2
- "client": {
3
- "enableRoutes": [
4
- "Overall",
5
- "Compile.WebpackLoaders",
6
- "Compile.WebpackPlugins",
7
- "Bundle.ModuleGraph",
8
- "Bundle.BundleSize"
9
- ]
10
- },
11
- "data": {
12
- "hash": "0833528598e48572e281414ef142960a",
13
- "root": "/Users/bytedance/Projects/VSeed/packages/vseed",
14
- "envinfo": [
15
- "/Users/bytedance/Projects/VSeed/packages/vseed/dist/.rsdoctor/envinfo/0"
16
- ],
17
- "pid": 46276,
18
- "errors": [
19
- "/Users/bytedance/Projects/VSeed/packages/vseed/dist/.rsdoctor/errors/0"
20
- ],
21
- "configs": [
22
- "/Users/bytedance/Projects/VSeed/packages/vseed/dist/.rsdoctor/configs/0"
23
- ],
24
- "summary": [
25
- "/Users/bytedance/Projects/VSeed/packages/vseed/dist/.rsdoctor/summary/0"
26
- ],
27
- "resolver": [
28
- "/Users/bytedance/Projects/VSeed/packages/vseed/dist/.rsdoctor/resolver/0"
29
- ],
30
- "loader": [
31
- "/Users/bytedance/Projects/VSeed/packages/vseed/dist/.rsdoctor/loader/0"
32
- ],
33
- "moduleGraph": [
34
- "/Users/bytedance/Projects/VSeed/packages/vseed/dist/.rsdoctor/moduleGraph/0"
35
- ],
36
- "chunkGraph": [
37
- "/Users/bytedance/Projects/VSeed/packages/vseed/dist/.rsdoctor/chunkGraph/0"
38
- ],
39
- "moduleCodeMap": [
40
- "/Users/bytedance/Projects/VSeed/packages/vseed/dist/.rsdoctor/moduleCodeMap/0"
41
- ],
42
- "plugin": [
43
- "/Users/bytedance/Projects/VSeed/packages/vseed/dist/.rsdoctor/plugin/0"
44
- ],
45
- "packageGraph": [
46
- "/Users/bytedance/Projects/VSeed/packages/vseed/dist/.rsdoctor/packageGraph/0"
47
- ],
48
- "otherReports": [
49
- "/Users/bytedance/Projects/VSeed/packages/vseed/dist/.rsdoctor/otherReports/0"
50
- ]
51
- }
52
- }