@visactor/vseed 0.4.3 → 0.4.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/index.cjs +2 -2
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/esm/builder/builder/builder.d.ts +2 -15248
- package/dist/esm/builder/builder/builder.js.map +1 -1
- package/dist/esm/builder/register/all.js +4 -1
- package/dist/esm/builder/register/all.js.map +1 -1
- package/dist/esm/builder/register/chartType/index.d.ts +3 -0
- package/dist/esm/builder/register/chartType/index.js +4 -1
- package/dist/esm/builder/register/chartType/raceDonut.d.ts +5 -0
- package/dist/esm/builder/register/chartType/raceDonut.js +9 -0
- package/dist/esm/builder/register/chartType/raceDonut.js.map +1 -0
- package/dist/esm/builder/register/chartType/raceLine.d.ts +5 -0
- package/dist/esm/builder/register/chartType/raceLine.js +9 -0
- package/dist/esm/builder/register/chartType/raceLine.js.map +1 -0
- package/dist/esm/builder/register/chartType/racePie.d.ts +5 -0
- package/dist/esm/builder/register/chartType/racePie.js +9 -0
- package/dist/esm/builder/register/chartType/racePie.js.map +1 -0
- package/dist/esm/pipeline/advanced/chart/pipeline/index.d.ts +3 -0
- package/dist/esm/pipeline/advanced/chart/pipeline/index.js +4 -1
- package/dist/esm/pipeline/advanced/chart/pipeline/raceDonut.d.ts +2 -0
- package/dist/esm/pipeline/advanced/chart/pipeline/raceDonut.js +33 -0
- package/dist/esm/pipeline/advanced/chart/pipeline/raceDonut.js.map +1 -0
- package/dist/esm/pipeline/advanced/chart/pipeline/raceLine.d.ts +2 -0
- package/dist/esm/pipeline/advanced/chart/pipeline/raceLine.js +36 -0
- package/dist/esm/pipeline/advanced/chart/pipeline/raceLine.js.map +1 -0
- package/dist/esm/pipeline/advanced/chart/pipeline/racePie.d.ts +2 -0
- package/dist/esm/pipeline/advanced/chart/pipeline/racePie.js +33 -0
- package/dist/esm/pipeline/advanced/chart/pipeline/racePie.js.map +1 -0
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/index.d.ts +3 -0
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/index.js +4 -1
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/raceBar.js +0 -3
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/raceBar.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/raceColumn.js +0 -3
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/raceColumn.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/raceDonut.d.ts +3 -0
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/raceDonut.js +74 -0
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/raceDonut.js.map +1 -0
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/raceLine.d.ts +3 -0
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/raceLine.js +89 -0
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/raceLine.js.map +1 -0
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/racePie.d.ts +3 -0
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/racePie.js +74 -0
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/racePie.js.map +1 -0
- package/dist/esm/pipeline/spec/chart/pipeline/index.d.ts +3 -0
- package/dist/esm/pipeline/spec/chart/pipeline/index.js +4 -1
- package/dist/esm/pipeline/spec/chart/pipeline/raceBar.js +2 -2
- package/dist/esm/pipeline/spec/chart/pipeline/raceBar.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipeline/raceColumn.js +2 -2
- package/dist/esm/pipeline/spec/chart/pipeline/raceColumn.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipeline/raceDonut.d.ts +2 -0
- package/dist/esm/pipeline/spec/chart/pipeline/raceDonut.js +21 -0
- package/dist/esm/pipeline/spec/chart/pipeline/raceDonut.js.map +1 -0
- package/dist/esm/pipeline/spec/chart/pipeline/raceLine.d.ts +2 -0
- package/dist/esm/pipeline/spec/chart/pipeline/raceLine.js +25 -0
- package/dist/esm/pipeline/spec/chart/pipeline/raceLine.js.map +1 -0
- package/dist/esm/pipeline/spec/chart/pipeline/racePie.d.ts +2 -0
- package/dist/esm/pipeline/spec/chart/pipeline/racePie.js +21 -0
- package/dist/esm/pipeline/spec/chart/pipeline/racePie.js.map +1 -0
- package/dist/esm/pipeline/spec/chart/pipeline/raceScatter.js +2 -2
- package/dist/esm/pipeline/spec/chart/pipeline/raceScatter.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/annotation/splitLine.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/legend/boxLegend.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/legend/heatmapColorLegend.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/markStyle/pointState.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/markStyle/pointStyle.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/player/index.d.ts +5 -3
- package/dist/esm/pipeline/spec/chart/pipes/player/index.js +5 -3
- package/dist/esm/pipeline/spec/chart/pipes/player/isPlayer.d.ts +2 -2
- package/dist/esm/pipeline/spec/chart/pipes/player/isPlayer.js +8 -7
- package/dist/esm/pipeline/spec/chart/pipes/player/isPlayer.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/player/{playerXY.d.ts → playerBar.d.ts} +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/player/{playerYX.js → playerBar.js} +6 -7
- package/dist/esm/pipeline/spec/chart/pipes/player/playerBar.js.map +1 -0
- package/dist/esm/pipeline/spec/chart/pipes/player/playerColumn.d.ts +2 -0
- package/dist/esm/pipeline/spec/chart/pipes/player/{playerXY.js → playerColumn.js} +6 -7
- package/dist/esm/pipeline/spec/chart/pipes/player/playerColumn.js.map +1 -0
- package/dist/esm/pipeline/spec/chart/pipes/player/{playerYX.d.ts → playerLine.d.ts} +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/player/playerLine.js +144 -0
- package/dist/esm/pipeline/spec/chart/pipes/player/playerLine.js.map +1 -0
- package/dist/esm/pipeline/spec/chart/pipes/player/{playerYY.d.ts → playerPie.d.ts} +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/player/playerPie.js +174 -0
- package/dist/esm/pipeline/spec/chart/pipes/player/playerPie.js.map +1 -0
- package/dist/esm/pipeline/spec/chart/pipes/player/playerScatter.d.ts +2 -0
- package/dist/esm/pipeline/spec/chart/pipes/player/{playerYY.js → playerScatter.js} +7 -7
- package/dist/esm/pipeline/spec/chart/pipes/player/playerScatter.js.map +1 -0
- package/dist/esm/pipeline/spec/table/pipes/corner/titleOnDimension.js.map +1 -1
- package/dist/esm/theme/dark/dark.js +10 -5
- package/dist/esm/theme/dark/dark.js.map +1 -1
- package/dist/esm/theme/dark/raceLine.d.ts +182 -0
- package/dist/esm/theme/dark/raceLine.js +39 -0
- package/dist/esm/theme/dark/raceLine.js.map +1 -0
- package/dist/esm/theme/dark/racePie.d.ts +157 -0
- package/dist/esm/theme/dark/racePie.js +18 -0
- package/dist/esm/theme/dark/racePie.js.map +1 -0
- package/dist/esm/theme/light/light.js +6 -1
- package/dist/esm/theme/light/light.js.map +1 -1
- package/dist/esm/theme/light/raceLine.d.ts +182 -0
- package/dist/esm/theme/light/raceLine.js +39 -0
- package/dist/esm/theme/light/raceLine.js.map +1 -0
- package/dist/esm/theme/light/racePie.d.ts +157 -0
- package/dist/esm/theme/light/racePie.js +18 -0
- package/dist/esm/theme/light/racePie.js.map +1 -0
- package/dist/esm/types/builder/builder.d.ts +1 -1
- package/dist/esm/types/builder/builder.js.map +1 -1
- package/dist/esm/types/chartType/column/zColumn.d.ts +1 -0
- package/dist/esm/types/chartType/columnParallel/zColumnParallel.d.ts +1 -0
- package/dist/esm/types/chartType/index.d.ts +7 -0
- package/dist/esm/types/chartType/index.js +3 -0
- package/dist/esm/types/chartType/raceBar/raceBar.d.ts +2 -2
- package/dist/esm/types/chartType/raceBar/zRaceBar.d.ts +1 -0
- package/dist/esm/types/chartType/raceColumn/raceColumn.d.ts +106 -3
- package/dist/esm/types/chartType/raceColumn/zRaceColumn.d.ts +1 -0
- package/dist/esm/types/chartType/raceDonut/index.d.ts +2 -0
- package/dist/esm/types/chartType/raceDonut/index.js +1 -0
- package/dist/esm/types/chartType/raceDonut/raceDonut.d.ts +75 -0
- package/dist/esm/types/chartType/raceDonut/zRaceDonut.d.ts +387 -0
- package/dist/esm/types/chartType/raceDonut/zRaceDonut.js +23 -0
- package/dist/esm/types/chartType/raceDonut/zRaceDonut.js.map +1 -0
- package/dist/esm/types/chartType/raceLine/index.d.ts +2 -0
- package/dist/esm/types/chartType/raceLine/index.js +1 -0
- package/dist/esm/types/chartType/raceLine/raceLine.d.ts +122 -0
- package/dist/esm/types/chartType/raceLine/raceLine.js +0 -0
- package/dist/esm/types/chartType/raceLine/zRaceLine.d.ts +1904 -0
- package/dist/esm/types/chartType/raceLine/zRaceLine.js +35 -0
- package/dist/esm/types/chartType/raceLine/zRaceLine.js.map +1 -0
- package/dist/esm/types/chartType/racePie/index.d.ts +2 -0
- package/dist/esm/types/chartType/racePie/index.js +1 -0
- package/dist/esm/types/chartType/racePie/racePie.d.ts +75 -0
- package/dist/esm/types/chartType/racePie/racePie.js +0 -0
- package/dist/esm/types/chartType/racePie/zRacePie.d.ts +387 -0
- package/dist/esm/types/chartType/racePie/zRacePie.js +23 -0
- package/dist/esm/types/chartType/racePie/zRacePie.js.map +1 -0
- package/dist/esm/types/chartType/raceScatter/raceScatter.d.ts +84 -0
- package/dist/esm/types/chartType/raceScatter/zRaceScatter.d.ts +1 -0
- package/dist/esm/types/chartType/sunburst/sunburst.d.ts +1 -1
- package/dist/esm/types/properties/chartType/chartType.d.ts +4 -1
- package/dist/esm/types/properties/chartType/chartType.js +3 -0
- package/dist/esm/types/properties/chartType/chartType.js.map +1 -1
- package/dist/esm/types/properties/config/config.d.ts +2276 -44
- package/dist/esm/types/properties/config/config.js +4 -1
- package/dist/esm/types/properties/config/config.js.map +1 -1
- package/dist/esm/types/properties/config/player/player.d.ts +2 -2
- package/dist/esm/types/properties/config/player/zPlayer.d.ts +1 -0
- package/dist/esm/types/properties/config/player/zPlayer.js +1 -0
- package/dist/esm/types/properties/config/player/zPlayer.js.map +1 -1
- package/dist/esm/types/properties/config/race.d.ts +2279 -44
- package/dist/esm/types/properties/config/race.js +10 -3
- package/dist/esm/types/properties/config/race.js.map +1 -1
- package/dist/esm/types/properties/dimensions/index.d.ts +3 -0
- package/dist/esm/types/properties/dimensions/raceDonutDimension.d.ts +14 -0
- package/dist/esm/types/properties/dimensions/raceDonutDimension.js +0 -0
- package/dist/esm/types/properties/dimensions/raceLineDimension.d.ts +15 -0
- package/dist/esm/types/properties/dimensions/raceLineDimension.js +0 -0
- package/dist/esm/types/properties/dimensions/racePieDimension.d.ts +14 -0
- package/dist/esm/types/properties/dimensions/racePieDimension.js +0 -0
- package/dist/esm/types/properties/measures/hierarchyMeasure.d.ts +10 -0
- package/dist/esm/types/properties/measures/hierarchyMeasure.js +0 -0
- package/dist/esm/types/properties/measures/index.d.ts +4 -1
- package/dist/esm/types/properties/measures/raceDonutMeasure.d.ts +2 -0
- package/dist/esm/types/properties/measures/raceDonutMeasure.js +0 -0
- package/dist/esm/types/properties/measures/raceLineMeasure.d.ts +2 -0
- package/dist/esm/types/properties/measures/raceLineMeasure.js +0 -0
- package/dist/esm/types/properties/measures/racePieMeasure.d.ts +2 -0
- package/dist/esm/types/properties/measures/racePieMeasure.js +0 -0
- package/dist/esm/types/properties/theme/customTheme.d.ts +7159 -2695
- package/dist/esm/types/vseed.d.ts +2 -2
- package/dist/esm/types/zVseed.d.ts +2 -5
- package/dist/esm/types/zVseed.js +7 -4
- package/dist/esm/types/zVseed.js.map +1 -1
- package/dist/umd/index.js +1029 -154
- package/dist/umd/index.js.map +1 -1
- package/package.json +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/player/playerXY.js.map +0 -1
- package/dist/esm/pipeline/spec/chart/pipes/player/playerYX.js.map +0 -1
- package/dist/esm/pipeline/spec/chart/pipes/player/playerYY.js.map +0 -1
- package/dist/esm/types/properties/measures/hierarchyMeasures.d.ts +0 -4
- /package/dist/esm/types/{properties/measures/hierarchyMeasures.js → chartType/raceDonut/raceDonut.js} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builder/builder/builder.js","sources":["webpack://@visactor/vseed/./src/builder/builder/builder.ts"],"sourcesContent":["import type {\n AdvancedPipe,\n AdvancedPipeline,\n AdvancedVSeed,\n ChartType,\n CustomThemeConfig,\n Locale,\n Spec,\n SpecPipe,\n SpecPipeline,\n VSeed,\n VSeedBuilder,\n} from 'src/types'\nimport { buildAdvanced } from './buildAdvanced'\nimport { buildSpec } from './buildSpec'\nimport { build } from './build'\nimport { prepare } from './prepare'\nimport { intl } from 'src/i18n'\nimport { getColorIdMap, getColorItems } from './advanced'\n\nexport class Builder implements VSeedBuilder {\n private _vseed: VSeed\n private _advancedVSeed: AdvancedVSeed | null = null\n private _spec: Spec | null = null\n private _performance: Record<string, string | number> = {}\n\n private _locale: Locale\n\n // prepare() 相关状态\n private _isPrepared: boolean = false\n\n /**\n * @description 初始化 Builder 实例。\n * @param vseed VSeed 数据对象,包含图表类型、数据和映射配置。\n */\n constructor(vseed: VSeed) {\n this._vseed = vseed\n this._locale = vseed.locale || intl.getLocale()\n }\n\n /**\n * @description 获取当前 Builder 使用的语言环境。\n * @returns 语言环境代码 (如 'zh-CN', 'en-US')。\n */\n get locale() {\n return this._locale\n }\n\n /**\n * @description 准备阶段 - 异步执行动态过滤器代码。\n *\n * 在 build() 之前调用,用于执行 dynamicFilter 中的 code。包含以下步骤:\n * 1. 检查是否存在需要执行的 dynamicFilter (有 code 字段)\n * 2. 如果存在,给 dataset 添加内部索引 __row_index\n * 3. 生成 AdvancedVSeed 中间配置\n * 4. 执行所有 dynamicFilter 的 code,将结果写入 filter.result\n * 5. 缓存 AdvancedVSeed,供后续 build() 使用\n *\n * **注意:**\n * - 此方法具有幂等性,多次调用不会重复执行\n * - 如果没有 dynamicFilter code,调用此方法无副作用\n * - 如果 dynamicFilter 只有静态 result 而没有 code,无需调用此方法\n *\n * @returns Promise<void>\n * @example\n * // 有 dynamicFilter code 的场景\n * const builder = VBI.from(data, 'table')\n * .dynamicFilter({ code: 'return data.filter(d => d.sales > 1000)' })\n *\n * await builder.prepare() // 异步执行 code\n * const spec = builder.build() // 同步构建 spec\n *\n * // 没有 dynamicFilter 的场景\n * const builder = VBI.from(data, 'table')\n * const spec = builder.build() // 直接构建,无需 prepare\n */\n prepare = async (): Promise<void> => prepare(this)\n\n /**\n * @description 生成最终的图表配置 (Spec)。\n *\n * 这是最常用的核心方法。拿到 Spec 后,直接传给 VChart 或 VTable 即可渲染图表。\n *\n * **注意:**\n * - 如果配置中包含 dynamicFilter code,需要先调用 prepare() 异步执行\n * - 如果已调用过 prepare(),build() 会复用缓存的结果,提升性能\n *\n * @returns VChart 或 VTable 的标准 Spec 对象。\n * @example\n * // 场景 1: 无 dynamicFilter,直接构建\n * const spec = builder.build();\n *\n * // 场景 2: 有 dynamicFilter code,先 prepare 再 build\n * await builder.prepare();\n * const spec = builder.build();\n */\n build = <T extends Spec>(): T => build(this) as T\n\n /**\n * @description 将中间层配置 (AdvancedVSeed) 转换为最终 Spec。\n * 仅当你需要深度定制中间层配置时使用。通常流程是:buildAdvanced() -> 修改配置 -> buildSpec()。\n * @param advanced 修改后的 AdvancedVSeed 对象。\n * @returns VChart 或 VTable 的标准 Spec 对象。\n */\n buildSpec = (advanced: AdvancedVSeed): Spec => buildSpec(this, advanced)\n\n /**\n * @description 生成中间层配置 (AdvancedVSeed)。\n * 中间层配置也就是常说的 \"图表模版\",它比原始 VSeed 更详细,暴露了更多图表细节(如坐标轴、图例的具体配置)。\n * 如果默认的 build() 结果不满足需求,可以先获取这个中间配置进行修改,再调用 buildSpec 生成最终结果。\n * @returns AdvancedVSeed 对象 (模版配置)。\n */\n buildAdvanced = (): AdvancedVSeed | null => buildAdvanced(this)\n\n /**\n * @description 获取数据中涉及颜色的字段信息。\n * 常用于生成图表的图例或颜色筛选器 UI。\n * @returns 颜色字段列表 (包含 id 和别名)。\n */\n getColorItems = () => getColorItems(this)\n\n /**\n * @description 获取颜色字段的详细映射表。\n * @returns Key 为颜色 ID,Value 为详细信息的对象。\n */\n getColorIdMap = () => getColorIdMap(this)\n\n /**\n * @description 获取当前的 VSeed 输入数据。\n */\n get vseed() {\n return this._vseed\n }\n\n /**\n * @description 更新 VSeed 输入数据。\n * 更新后,后续调用 build() 将基于新数据生成。\n * **注意:** 更新 vseed 后会清除 prepare() 的缓存状态。\n * @param value 新的 VSeed 对象。\n */\n set vseed(value) {\n this._vseed = value\n // 清除 prepare 缓存\n this._isPrepared = false\n }\n\n /**\n * @description 获取 prepare() 状态\n * @internal\n */\n get isPrepared() {\n return this._isPrepared\n }\n\n /**\n * @description 设置 prepare() 状态\n * @internal\n */\n set isPrepared(value: boolean) {\n this._isPrepared = value\n }\n\n /**\n * @description 获取当前的 AdvancedVSeed 中间配置对象。\n * @returns AdvancedVSeed 对象。\n */\n get advancedVSeed() {\n return this._advancedVSeed\n }\n\n /**\n * @description 设置 AdvancedVSeed 中间配置对象。\n * 通常用于缓存或复用已有的中间配置。\n * @param value 新的 AdvancedVSeed 对象。\n */\n set advancedVSeed(value) {\n this._advancedVSeed = value\n }\n\n /**\n * @description 获取当前生成的最终 Spec 对象。\n * @returns Spec 对象。\n */\n get spec() {\n return this._spec\n }\n\n /**\n * @description 设置 Spec 对象。\n * 通常用于缓存。\n * @param value 新的 Spec 对象。\n */\n set spec(value) {\n this._spec = value\n }\n\n /**\n * @description 获取构建过程中的性能统计信息。\n * @returns 包含各阶段耗时的对象 (单位: ms)。\n */\n get performance() {\n return this._performance\n }\n\n /**\n * @description 设置性能统计信息。\n * @param value 新的性能统计对象。\n */\n set performance(value) {\n this._performance = value\n }\n\n /**\n * @description [内部方法] 获取指定图表类型的模版构建管线。\n * 用于查看或调试该图表类型是如何从 VSeed 转换为 AdvancedVSeed 的。\n * @param chartType 图表类型 (如 'bar', 'line')。\n * @returns AdvancedPipeline 数组。\n */\n static getAdvancedPipeline = (chartType: ChartType) => {\n const customPipe = Builder._customAdvancedPipe[chartType] as AdvancedPipe\n const pipeline = Builder._advancedPipelineMap[chartType] as AdvancedPipeline\n if (customPipe) {\n pipeline.push(customPipe)\n }\n return pipeline\n }\n\n /**\n * @description [内部方法] 获取指定图表类型的 Spec 构建管线。\n * 用于查看或调试该图表类型是如何从 AdvancedVSeed 转换为 Spec 的。\n * @param chartType 图表类型。\n * @returns SpecPipeline 数组。\n */\n static getSpecPipeline = (chartType: ChartType) => {\n const customPipe = Builder._customSpecPipe[chartType] as SpecPipe\n const pipeline = Builder._specPipelineMap[chartType] as SpecPipeline\n if (customPipe) {\n pipeline.push(customPipe)\n }\n return pipeline\n }\n\n /**\n * @description 获取指定主题的配置。\n * @param themeKey 主题名称 (例如 'light', 'dark')。如果不传,默认为 'light'。\n * @returns 主题配置对象。\n */\n static getTheme = (themeKey?: string) => Builder._themeMap[themeKey || 'light']\n\n /**\n * @description 获取所有已注册的主题配置。\n * @returns 主题配置映射表。\n */\n static getThemeMap = () => Builder._themeMap\n\n /**\n * @description 静态工厂方法,用于便捷地创建 Builder 实例。\n * @param vseed VSeed 数据对象。\n * @returns 新的 Builder 实例。\n * @example\n * const builder = Builder.from(vseedJson);\n */\n static from = (vseed: VSeed) => new Builder(vseed)\n\n /**\n * @description [扩展方法] 注册一个新的图表类型(模版构建阶段)。\n * 如果你要让 Builder 支持一种全新的图表,需要在这里注册它的模版构建逻辑。\n * @param chartType 新图表类型的名称。\n * @param pipeline 处理管道数组。\n */\n static registerAdvancedPipeline = (chartType: ChartType, pipeline: AdvancedPipeline) => {\n Builder._advancedPipelineMap[chartType] = pipeline\n }\n\n /**\n * @description [扩展方法] 注册一个新的图表类型(Spec 构建阶段)。\n * 如果你要让 Builder 支持一种全新的图表,需要在这里注册它的 Spec 构建逻辑。\n * @param chartType 图表类型。\n * @param pipeline 处理管道数组。\n */\n static registerSpecPipeline = (chartType: ChartType, pipeline: SpecPipeline) => {\n Builder._specPipelineMap[chartType] = pipeline\n }\n\n /**\n * @description [扩展方法] 修改现有的图表模版构建逻辑。\n * 可以在现有图表的构建流程中插入自定义逻辑(Pipe),从而影响生成的 AdvancedVSeed。\n * @param chartType 目标图表类型。\n * @param pipe 自定义处理函数。\n */\n static updateAdvanced = (chartType: ChartType, pipe: AdvancedPipe) => {\n Builder._customAdvancedPipe[chartType] = pipe\n }\n\n /**\n * @description [扩展方法] 修改现有的图表 Spec 构建逻辑。\n * 可以在现有图表的构建流程中插入自定义逻辑(Pipe),从而影响生成的最终 Spec。\n * @param chartType 目标图表类型。\n * @param pipe 自定义处理函数。\n */\n static updateSpec = (chartType: ChartType, pipe: SpecPipe) => {\n Builder._customSpecPipe[chartType] = pipe\n }\n\n /**\n * @description [扩展方法] 注册自定义主题。\n * @param key 主题名称。\n * @param theme 主题配置对象。\n */\n static registerTheme = (key: string, theme: CustomThemeConfig) => {\n Builder._themeMap[key] = theme\n }\n\n private static _advancedPipelineMap: Partial<Record<ChartType, AdvancedPipeline>> = {}\n private static _specPipelineMap: Partial<Record<ChartType, SpecPipeline>> = {}\n private static _customAdvancedPipe: Partial<Record<ChartType, AdvancedPipe>> = {}\n private static _customSpecPipe: Partial<Record<ChartType, SpecPipe>> = {}\n private static _themeMap: Record<string, CustomThemeConfig> = {}\n}\n"],"names":["Builder","vseed","intl","prepare","build","advanced","buildSpec","buildAdvanced","getColorItems","getColorIdMap","value","chartType","customPipe","pipeline","themeKey","pipe","key","theme"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"builder/builder/builder.js","sources":["webpack://@visactor/vseed/./src/builder/builder/builder.ts"],"sourcesContent":["import type {\n AdvancedPipe,\n AdvancedPipeline,\n AdvancedVSeed,\n ChartType,\n CustomThemeConfig,\n Locale,\n Spec,\n SpecPipe,\n SpecPipeline,\n VSeed,\n VSeedBuilder,\n} from 'src/types'\nimport { buildAdvanced } from './buildAdvanced'\nimport { buildSpec } from './buildSpec'\nimport { build } from './build'\nimport { prepare } from './prepare'\nimport { intl } from 'src/i18n'\nimport { getColorIdMap, getColorItems } from './advanced'\n\nexport class Builder implements VSeedBuilder {\n private _vseed: VSeed\n private _advancedVSeed: AdvancedVSeed | null = null\n private _spec: Spec | null = null\n private _performance: Record<string, string | number> = {}\n\n private _locale: Locale\n\n // prepare() 相关状态\n private _isPrepared: boolean = false\n\n /**\n * @description 初始化 Builder 实例。\n * @param vseed VSeed 数据对象,包含图表类型、数据和映射配置。\n */\n constructor(vseed: VSeed) {\n this._vseed = vseed\n this._locale = vseed.locale || intl.getLocale()\n }\n\n /**\n * @description 获取当前 Builder 使用的语言环境。\n * @returns 语言环境代码 (如 'zh-CN', 'en-US')。\n */\n get locale() {\n return this._locale\n }\n\n /**\n * @description 准备阶段 - 异步执行动态过滤器代码。\n *\n * 在 build() 之前调用,用于执行 dynamicFilter 中的 code。包含以下步骤:\n * 1. 检查是否存在需要执行的 dynamicFilter (有 code 字段)\n * 2. 如果存在,给 dataset 添加内部索引 __row_index\n * 3. 生成 AdvancedVSeed 中间配置\n * 4. 执行所有 dynamicFilter 的 code,将结果写入 filter.result\n * 5. 缓存 AdvancedVSeed,供后续 build() 使用\n *\n * **注意:**\n * - 此方法具有幂等性,多次调用不会重复执行\n * - 如果没有 dynamicFilter code,调用此方法无副作用\n * - 如果 dynamicFilter 只有静态 result 而没有 code,无需调用此方法\n *\n * @returns Promise<void>\n * @example\n * // 有 dynamicFilter code 的场景\n * const builder = VBI.from(data, 'table')\n * .dynamicFilter({ code: 'return data.filter(d => d.sales > 1000)' })\n *\n * await builder.prepare() // 异步执行 code\n * const spec = builder.build() // 同步构建 spec\n *\n * // 没有 dynamicFilter 的场景\n * const builder = VBI.from(data, 'table')\n * const spec = builder.build() // 直接构建,无需 prepare\n */\n prepare = async (): Promise<void> => prepare(this)\n\n /**\n * @description 生成最终的图表配置 (Spec)。\n *\n * 这是最常用的核心方法。拿到 Spec 后,直接传给 VChart 或 VTable 即可渲染图表。\n *\n * **注意:**\n * - 如果配置中包含 dynamicFilter code,需要先调用 prepare() 异步执行\n * - 如果已调用过 prepare(),build() 会复用缓存的结果,提升性能\n *\n * @returns VChart 或 VTable 的标准 Spec 对象。\n * @example\n * // 场景 1: 无 dynamicFilter,直接构建\n * const spec = builder.build();\n *\n * // 场景 2: 有 dynamicFilter code,先 prepare 再 build\n * await builder.prepare();\n * const spec = builder.build();\n */\n build = <T extends Spec>(): T => build(this) as T\n\n /**\n * @description 将中间层配置 (AdvancedVSeed) 转换为最终 Spec。\n * 仅当你需要深度定制中间层配置时使用。通常流程是:buildAdvanced() -> 修改配置 -> buildSpec()。\n * @param advanced 修改后的 AdvancedVSeed 对象。\n * @returns VChart 或 VTable 的标准 Spec 对象。\n */\n buildSpec = (advanced: AdvancedVSeed): Spec => buildSpec(this, advanced)\n\n /**\n * @description 生成中间层配置 (AdvancedVSeed)。\n * 中间层配置也就是常说的 \"图表模版\",它比原始 VSeed 更详细,暴露了更多图表细节(如坐标轴、图例的具体配置)。\n * 如果默认的 build() 结果不满足需求,可以先获取这个中间配置进行修改,再调用 buildSpec 生成最终结果。\n * @returns AdvancedVSeed 对象 (模版配置)。\n */\n buildAdvanced = (): AdvancedVSeed | null => buildAdvanced(this)\n\n /**\n * @description 获取数据中涉及颜色的字段信息。\n * 常用于生成图表的图例或颜色筛选器 UI。\n * @returns 颜色字段列表 (包含 id 和别名)。\n */\n getColorItems = () => getColorItems(this)\n\n /**\n * @description 获取颜色字段的详细映射表。\n * @returns Key 为颜色 ID,Value 为详细信息的对象。\n */\n getColorIdMap = () => getColorIdMap(this)\n\n /**\n * @description 获取当前的 VSeed 输入数据。\n */\n get vseed() {\n return this._vseed\n }\n\n /**\n * @description 更新 VSeed 输入数据。\n * 更新后,后续调用 build() 将基于新数据生成。\n * **注意:** 更新 vseed 后会清除 prepare() 的缓存状态。\n * @param value 新的 VSeed 对象。\n */\n set vseed(value) {\n this._vseed = value\n // 清除 prepare 缓存\n this._isPrepared = false\n }\n\n /**\n * @description 获取 prepare() 状态\n * @internal\n */\n get isPrepared() {\n return this._isPrepared\n }\n\n /**\n * @description 设置 prepare() 状态\n * @internal\n */\n set isPrepared(value: boolean) {\n this._isPrepared = value\n }\n\n /**\n * @description 获取当前的 AdvancedVSeed 中间配置对象。\n * @returns AdvancedVSeed 对象。\n */\n get advancedVSeed() {\n return this._advancedVSeed\n }\n\n /**\n * @description 设置 AdvancedVSeed 中间配置对象。\n * 通常用于缓存或复用已有的中间配置。\n * @param value 新的 AdvancedVSeed 对象。\n */\n set advancedVSeed(value) {\n this._advancedVSeed = value\n }\n\n /**\n * @description 获取当前生成的最终 Spec 对象。\n * @returns Spec 对象。\n */\n get spec() {\n return this._spec\n }\n\n /**\n * @description 设置 Spec 对象。\n * 通常用于缓存。\n * @param value 新的 Spec 对象。\n */\n set spec(value) {\n this._spec = value\n }\n\n /**\n * @description 获取构建过程中的性能统计信息。\n * @returns 包含各阶段耗时的对象 (单位: ms)。\n */\n get performance() {\n return this._performance\n }\n\n /**\n * @description 设置性能统计信息。\n * @param value 新的性能统计对象。\n */\n set performance(value) {\n this._performance = value\n }\n\n /**\n * @description [内部方法] 获取指定图表类型的模版构建管线。\n * 用于查看或调试该图表类型是如何从 VSeed 转换为 AdvancedVSeed 的。\n * @param chartType 图表类型 (如 'bar', 'line')。\n * @returns AdvancedPipeline 数组。\n */\n static getAdvancedPipeline = (chartType: ChartType) => {\n const customPipe = Builder._customAdvancedPipe[chartType] as AdvancedPipe\n const pipeline = Builder._advancedPipelineMap[chartType] as AdvancedPipeline\n if (customPipe) {\n pipeline.push(customPipe)\n }\n return pipeline\n }\n\n /**\n * @description [内部方法] 获取指定图表类型的 Spec 构建管线。\n * 用于查看或调试该图表类型是如何从 AdvancedVSeed 转换为 Spec 的。\n * @param chartType 图表类型。\n * @returns SpecPipeline 数组。\n */\n static getSpecPipeline = (chartType: ChartType) => {\n const customPipe = Builder._customSpecPipe[chartType] as SpecPipe\n const pipeline = Builder._specPipelineMap[chartType] as SpecPipeline\n if (customPipe) {\n pipeline.push(customPipe)\n }\n return pipeline\n }\n\n /**\n * @description 获取指定主题的配置。\n * @param themeKey 主题名称 (例如 'light', 'dark')。如果不传,默认为 'light'。\n * @returns 主题配置对象。\n */\n static getTheme = (themeKey?: string): CustomThemeConfig => Builder._themeMap[themeKey || 'light']\n\n /**\n * @description 获取所有已注册的主题配置。\n * @returns 主题配置映射表。\n */\n static getThemeMap = (): Record<string, CustomThemeConfig> => Builder._themeMap\n\n /**\n * @description 静态工厂方法,用于便捷地创建 Builder 实例。\n * @param vseed VSeed 数据对象。\n * @returns 新的 Builder 实例。\n * @example\n * const builder = Builder.from(vseedJson);\n */\n static from = (vseed: VSeed) => new Builder(vseed)\n\n /**\n * @description [扩展方法] 注册一个新的图表类型(模版构建阶段)。\n * 如果你要让 Builder 支持一种全新的图表,需要在这里注册它的模版构建逻辑。\n * @param chartType 新图表类型的名称。\n * @param pipeline 处理管道数组。\n */\n static registerAdvancedPipeline = (chartType: ChartType, pipeline: AdvancedPipeline) => {\n Builder._advancedPipelineMap[chartType] = pipeline\n }\n\n /**\n * @description [扩展方法] 注册一个新的图表类型(Spec 构建阶段)。\n * 如果你要让 Builder 支持一种全新的图表,需要在这里注册它的 Spec 构建逻辑。\n * @param chartType 图表类型。\n * @param pipeline 处理管道数组。\n */\n static registerSpecPipeline = (chartType: ChartType, pipeline: SpecPipeline) => {\n Builder._specPipelineMap[chartType] = pipeline\n }\n\n /**\n * @description [扩展方法] 修改现有的图表模版构建逻辑。\n * 可以在现有图表的构建流程中插入自定义逻辑(Pipe),从而影响生成的 AdvancedVSeed。\n * @param chartType 目标图表类型。\n * @param pipe 自定义处理函数。\n */\n static updateAdvanced = (chartType: ChartType, pipe: AdvancedPipe) => {\n Builder._customAdvancedPipe[chartType] = pipe\n }\n\n /**\n * @description [扩展方法] 修改现有的图表 Spec 构建逻辑。\n * 可以在现有图表的构建流程中插入自定义逻辑(Pipe),从而影响生成的最终 Spec。\n * @param chartType 目标图表类型。\n * @param pipe 自定义处理函数。\n */\n static updateSpec = (chartType: ChartType, pipe: SpecPipe) => {\n Builder._customSpecPipe[chartType] = pipe\n }\n\n /**\n * @description [扩展方法] 注册自定义主题。\n * @param key 主题名称。\n * @param theme 主题配置对象。\n */\n static registerTheme = (key: string, theme: CustomThemeConfig) => {\n Builder._themeMap[key] = theme\n }\n\n private static _advancedPipelineMap: Partial<Record<ChartType, AdvancedPipeline>> = {}\n private static _specPipelineMap: Partial<Record<ChartType, SpecPipeline>> = {}\n private static _customAdvancedPipe: Partial<Record<ChartType, AdvancedPipe>> = {}\n private static _customSpecPipe: Partial<Record<ChartType, SpecPipe>> = {}\n private static _themeMap: Record<string, CustomThemeConfig> = {}\n}\n"],"names":["Builder","vseed","intl","prepare","build","advanced","buildSpec","buildAdvanced","getColorItems","getColorIdMap","value","chartType","customPipe","pipeline","themeKey","pipe","key","theme"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { registerArea, registerAreaPercent, registerBar, registerBarParallel, registerBarPercent, registerBoxPlot, registerCirclePacking, registerColumn, registerColumnParallel, registerColumnPercent, registerDonut, registerDualAxis, registerFunnel, registerHeatmap, registerHistogram, registerLine, registerPie, registerPivotTable, registerRaceBar, registerRaceColumn, registerRaceScatter, registerRadar, registerRose, registerRoseParallel, registerScatter, registerSunburst, registerTable, registerTreeMap } from "./chartType/index.js";
|
|
1
|
+
import { registerArea, registerAreaPercent, registerBar, registerBarParallel, registerBarPercent, registerBoxPlot, registerCirclePacking, registerColumn, registerColumnParallel, registerColumnPercent, registerDonut, registerDualAxis, registerFunnel, registerHeatmap, registerHistogram, registerLine, registerPie, registerPivotTable, registerRaceBar, registerRaceColumn, registerRaceDonut, registerRaceLine, registerRacePie, registerRaceScatter, registerRadar, registerRose, registerRoseParallel, registerScatter, registerSunburst, registerTable, registerTreeMap } from "./chartType/index.js";
|
|
2
2
|
import { registerDarkTheme, registerLightTheme } from "./theme/index.js";
|
|
3
3
|
const registerAll = ()=>{
|
|
4
4
|
registerTable();
|
|
@@ -11,6 +11,9 @@ const registerAll = ()=>{
|
|
|
11
11
|
registerRaceBar();
|
|
12
12
|
registerRaceColumn();
|
|
13
13
|
registerRaceScatter();
|
|
14
|
+
registerRaceLine();
|
|
15
|
+
registerRacePie();
|
|
16
|
+
registerRaceDonut();
|
|
14
17
|
registerBarParallel();
|
|
15
18
|
registerBarPercent();
|
|
16
19
|
registerArea();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builder/register/all.js","sources":["webpack://@visactor/vseed/./src/builder/register/all.ts"],"sourcesContent":["import {\n registerArea,\n registerAreaPercent,\n registerBar,\n registerRaceBar,\n registerRaceColumn,\n registerRaceScatter,\n registerBarParallel,\n registerBarPercent,\n registerColumn,\n registerColumnParallel,\n registerColumnPercent,\n registerLine,\n registerPie,\n registerDonut,\n registerRose,\n registerRoseParallel,\n registerFunnel,\n registerScatter,\n registerTable,\n registerPivotTable,\n registerHeatmap,\n registerRadar,\n registerDualAxis,\n registerBoxPlot,\n registerHistogram,\n registerTreeMap,\n registerSunburst,\n registerCirclePacking,\n} from './chartType'\nimport { registerDarkTheme, registerLightTheme } from './theme'\n/**\n * @description 注册所有内置的图表类型和主题。\n * 包括:表格、透视表、折线图、柱状图、饼图、散点图等所有支持的图表,以及浅色/深色主题。\n * 在初始化应用时调用此函数,以确保所有功能可用。\n */\nexport const registerAll = () => {\n // table\n registerTable()\n registerPivotTable()\n // cartesian\n registerLine()\n registerColumn()\n registerColumnParallel()\n registerColumnPercent()\n registerBar()\n registerRaceBar()\n registerRaceColumn()\n registerRaceScatter()\n registerBarParallel()\n registerBarPercent()\n registerArea()\n registerAreaPercent()\n registerScatter()\n registerDualAxis()\n // polar\n registerPie()\n registerDonut()\n registerRose()\n registerRoseParallel()\n registerRadar()\n // other\n registerFunnel()\n registerHeatmap()\n registerBoxPlot()\n registerHistogram()\n // hierarchy\n registerTreeMap()\n registerSunburst()\n registerCirclePacking()\n // theme\n registerLightTheme()\n registerDarkTheme()\n}\n"],"names":["registerAll","registerTable","registerPivotTable","registerLine","registerColumn","registerColumnParallel","registerColumnPercent","registerBar","registerRaceBar","registerRaceColumn","registerRaceScatter","registerBarParallel","registerBarPercent","registerArea","registerAreaPercent","registerScatter","registerDualAxis","registerPie","registerDonut","registerRose","registerRoseParallel","registerRadar","registerFunnel","registerHeatmap","registerBoxPlot","registerHistogram","registerTreeMap","registerSunburst","registerCirclePacking","registerLightTheme","registerDarkTheme"],"mappings":";;
|
|
1
|
+
{"version":3,"file":"builder/register/all.js","sources":["webpack://@visactor/vseed/./src/builder/register/all.ts"],"sourcesContent":["import {\n registerArea,\n registerAreaPercent,\n registerBar,\n registerRaceBar,\n registerRaceColumn,\n registerRaceScatter,\n registerRaceLine,\n registerRacePie,\n registerRaceDonut,\n registerBarParallel,\n registerBarPercent,\n registerColumn,\n registerColumnParallel,\n registerColumnPercent,\n registerLine,\n registerPie,\n registerDonut,\n registerRose,\n registerRoseParallel,\n registerFunnel,\n registerScatter,\n registerTable,\n registerPivotTable,\n registerHeatmap,\n registerRadar,\n registerDualAxis,\n registerBoxPlot,\n registerHistogram,\n registerTreeMap,\n registerSunburst,\n registerCirclePacking,\n} from './chartType'\nimport { registerDarkTheme, registerLightTheme } from './theme'\n/**\n * @description 注册所有内置的图表类型和主题。\n * 包括:表格、透视表、折线图、柱状图、饼图、散点图等所有支持的图表,以及浅色/深色主题。\n * 在初始化应用时调用此函数,以确保所有功能可用。\n */\nexport const registerAll = () => {\n // table\n registerTable()\n registerPivotTable()\n // cartesian\n registerLine()\n registerColumn()\n registerColumnParallel()\n registerColumnPercent()\n registerBar()\n registerRaceBar()\n registerRaceColumn()\n registerRaceScatter()\n registerRaceLine()\n registerRacePie()\n registerRaceDonut()\n registerBarParallel()\n registerBarPercent()\n registerArea()\n registerAreaPercent()\n registerScatter()\n registerDualAxis()\n // polar\n registerPie()\n registerDonut()\n registerRose()\n registerRoseParallel()\n registerRadar()\n // other\n registerFunnel()\n registerHeatmap()\n registerBoxPlot()\n registerHistogram()\n // hierarchy\n registerTreeMap()\n registerSunburst()\n registerCirclePacking()\n // theme\n registerLightTheme()\n registerDarkTheme()\n}\n"],"names":["registerAll","registerTable","registerPivotTable","registerLine","registerColumn","registerColumnParallel","registerColumnPercent","registerBar","registerRaceBar","registerRaceColumn","registerRaceScatter","registerRaceLine","registerRacePie","registerRaceDonut","registerBarParallel","registerBarPercent","registerArea","registerAreaPercent","registerScatter","registerDualAxis","registerPie","registerDonut","registerRose","registerRoseParallel","registerRadar","registerFunnel","registerHeatmap","registerBoxPlot","registerHistogram","registerTreeMap","registerSunburst","registerCirclePacking","registerLightTheme","registerDarkTheme"],"mappings":";;AAuCO,MAAMA,cAAc;IAEzBC;IACAC;IAEAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IAEAC;IACAC;IACAC;IACAC;IACAC;IAEAC;IACAC;IACAC;IACAC;IAEAC;IACAC;IACAC;IAEAC;IACAC;AACF"}
|
|
@@ -8,6 +8,9 @@ export { registerBar } from './bar';
|
|
|
8
8
|
export { registerRaceBar } from './raceBar';
|
|
9
9
|
export { registerRaceColumn } from './raceColumn';
|
|
10
10
|
export { registerRaceScatter } from './raceScatter';
|
|
11
|
+
export { registerRaceLine } from './raceLine';
|
|
12
|
+
export { registerRacePie } from './racePie';
|
|
13
|
+
export { registerRaceDonut } from './raceDonut';
|
|
11
14
|
export { registerBarPercent } from './barPercent';
|
|
12
15
|
export { registerBarParallel } from './barParallel';
|
|
13
16
|
export { registerArea } from './area';
|
|
@@ -8,6 +8,9 @@ import { registerBar } from "./bar.js";
|
|
|
8
8
|
import { registerRaceBar } from "./raceBar.js";
|
|
9
9
|
import { registerRaceColumn } from "./raceColumn.js";
|
|
10
10
|
import { registerRaceScatter } from "./raceScatter.js";
|
|
11
|
+
import { registerRaceLine } from "./raceLine.js";
|
|
12
|
+
import { registerRacePie } from "./racePie.js";
|
|
13
|
+
import { registerRaceDonut } from "./raceDonut.js";
|
|
11
14
|
import { registerBarPercent } from "./barPercent.js";
|
|
12
15
|
import { registerBarParallel } from "./barParallel.js";
|
|
13
16
|
import { registerArea } from "./area.js";
|
|
@@ -26,4 +29,4 @@ import { registerHistogram } from "./histogram.js";
|
|
|
26
29
|
import { registerTreeMap } from "./treeMap.js";
|
|
27
30
|
import { registerSunburst } from "./sunburst.js";
|
|
28
31
|
import { registerCirclePacking } from "./circlePacking.js";
|
|
29
|
-
export { registerArea, registerAreaPercent, registerBar, registerBarParallel, registerBarPercent, registerBoxPlot, registerCirclePacking, registerColumn, registerColumnParallel, registerColumnPercent, registerDonut, registerDualAxis, registerFunnel, registerHeatmap, registerHistogram, registerLine, registerPie, registerPivotTable, registerRaceBar, registerRaceColumn, registerRaceScatter, registerRadar, registerRose, registerRoseParallel, registerScatter, registerSunburst, registerTable, registerTreeMap };
|
|
32
|
+
export { registerArea, registerAreaPercent, registerBar, registerBarParallel, registerBarPercent, registerBoxPlot, registerCirclePacking, registerColumn, registerColumnParallel, registerColumnPercent, registerDonut, registerDualAxis, registerFunnel, registerHeatmap, registerHistogram, registerLine, registerPie, registerPivotTable, registerRaceBar, registerRaceColumn, registerRaceDonut, registerRaceLine, registerRacePie, registerRaceScatter, registerRadar, registerRose, registerRoseParallel, registerScatter, registerSunburst, registerTable, registerTreeMap };
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { raceDonutAdvancedPipeline, raceDonutSpecPipeline } from "../../../pipeline/index.js";
|
|
2
|
+
import { Builder } from "../../builder/index.js";
|
|
3
|
+
const registerRaceDonut = ()=>{
|
|
4
|
+
Builder.registerAdvancedPipeline('raceDonut', raceDonutAdvancedPipeline);
|
|
5
|
+
Builder.registerSpecPipeline('raceDonut', raceDonutSpecPipeline);
|
|
6
|
+
};
|
|
7
|
+
export { registerRaceDonut };
|
|
8
|
+
|
|
9
|
+
//# sourceMappingURL=raceDonut.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"builder/register/chartType/raceDonut.js","sources":["webpack://@visactor/vseed/./src/builder/register/chartType/raceDonut.ts"],"sourcesContent":["import { raceDonutSpecPipeline, raceDonutAdvancedPipeline } from '../../../pipeline'\nimport { Builder } from '../../builder'\n\n/**\n * @description 注册 RaceDonut Chart 的构建管线。\n * 注册后,Builder 将支持构建 RaceDonut Chart 的 Spec。\n */\nexport const registerRaceDonut = () => {\n Builder.registerAdvancedPipeline('raceDonut', raceDonutAdvancedPipeline)\n Builder.registerSpecPipeline('raceDonut', raceDonutSpecPipeline)\n}\n"],"names":["registerRaceDonut","Builder","raceDonutAdvancedPipeline","raceDonutSpecPipeline"],"mappings":";;AAOO,MAAMA,oBAAoB;IAC/BC,QAAQ,wBAAwB,CAAC,aAAaC;IAC9CD,QAAQ,oBAAoB,CAAC,aAAaE;AAC5C"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { raceLineAdvancedPipeline, raceLineSpecPipeline } from "../../../pipeline/index.js";
|
|
2
|
+
import { Builder } from "../../builder/index.js";
|
|
3
|
+
const registerRaceLine = ()=>{
|
|
4
|
+
Builder.registerAdvancedPipeline('raceLine', raceLineAdvancedPipeline);
|
|
5
|
+
Builder.registerSpecPipeline('raceLine', raceLineSpecPipeline);
|
|
6
|
+
};
|
|
7
|
+
export { registerRaceLine };
|
|
8
|
+
|
|
9
|
+
//# sourceMappingURL=raceLine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"builder/register/chartType/raceLine.js","sources":["webpack://@visactor/vseed/./src/builder/register/chartType/raceLine.ts"],"sourcesContent":["import { raceLineSpecPipeline, raceLineAdvancedPipeline } from '../../../pipeline'\nimport { Builder } from '../../builder'\n\n/**\n * @description 注册 RaceLine Chart 的构建管线。\n * 注册后,Builder 将支持构建 RaceLine Chart 的 Spec。\n */\nexport const registerRaceLine = () => {\n Builder.registerAdvancedPipeline('raceLine', raceLineAdvancedPipeline)\n Builder.registerSpecPipeline('raceLine', raceLineSpecPipeline)\n}\n"],"names":["registerRaceLine","Builder","raceLineAdvancedPipeline","raceLineSpecPipeline"],"mappings":";;AAOO,MAAMA,mBAAmB;IAC9BC,QAAQ,wBAAwB,CAAC,YAAYC;IAC7CD,QAAQ,oBAAoB,CAAC,YAAYE;AAC3C"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { racePieAdvancedPipeline, racePieSpecPipeline } from "../../../pipeline/index.js";
|
|
2
|
+
import { Builder } from "../../builder/index.js";
|
|
3
|
+
const registerRacePie = ()=>{
|
|
4
|
+
Builder.registerAdvancedPipeline('racePie', racePieAdvancedPipeline);
|
|
5
|
+
Builder.registerSpecPipeline('racePie', racePieSpecPipeline);
|
|
6
|
+
};
|
|
7
|
+
export { registerRacePie };
|
|
8
|
+
|
|
9
|
+
//# sourceMappingURL=racePie.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"builder/register/chartType/racePie.js","sources":["webpack://@visactor/vseed/./src/builder/register/chartType/racePie.ts"],"sourcesContent":["import { racePieSpecPipeline, racePieAdvancedPipeline } from '../../../pipeline'\nimport { Builder } from '../../builder'\n\n/**\n * @description 注册 RacePie Chart 的构建管线。\n * 注册后,Builder 将支持构建 RacePie Chart 的 Spec。\n */\nexport const registerRacePie = () => {\n Builder.registerAdvancedPipeline('racePie', racePieAdvancedPipeline)\n Builder.registerSpecPipeline('racePie', racePieSpecPipeline)\n}\n"],"names":["registerRacePie","Builder","racePieAdvancedPipeline","racePieSpecPipeline"],"mappings":";;AAOO,MAAMA,kBAAkB;IAC7BC,QAAQ,wBAAwB,CAAC,WAAWC;IAC5CD,QAAQ,oBAAoB,CAAC,WAAWE;AAC1C"}
|
|
@@ -21,6 +21,9 @@ export { histogramAdvancedPipeline } from './histogram';
|
|
|
21
21
|
export { raceBarAdvancedPipeline } from './raceBar';
|
|
22
22
|
export { raceColumnAdvancedPipeline } from './raceColumn';
|
|
23
23
|
export { raceScatterAdvancedPipeline } from './raceScatter';
|
|
24
|
+
export { raceLineAdvancedPipeline } from './raceLine';
|
|
25
|
+
export { racePieAdvancedPipeline } from './racePie';
|
|
26
|
+
export { raceDonutAdvancedPipeline } from './raceDonut';
|
|
24
27
|
export { treeMapAdvancedPipeline } from './treeMap';
|
|
25
28
|
export { sunburstAdvancedPipeline } from './sunburst';
|
|
26
29
|
export { circlePackingAdvancedPipeline } from './circlePacking';
|
|
@@ -21,7 +21,10 @@ import { histogramAdvancedPipeline } from "./histogram.js";
|
|
|
21
21
|
import { raceBarAdvancedPipeline } from "./raceBar.js";
|
|
22
22
|
import { raceColumnAdvancedPipeline } from "./raceColumn.js";
|
|
23
23
|
import { raceScatterAdvancedPipeline } from "./raceScatter.js";
|
|
24
|
+
import { raceLineAdvancedPipeline } from "./raceLine.js";
|
|
25
|
+
import { racePieAdvancedPipeline } from "./racePie.js";
|
|
26
|
+
import { raceDonutAdvancedPipeline } from "./raceDonut.js";
|
|
24
27
|
import { treeMapAdvancedPipeline } from "./treeMap.js";
|
|
25
28
|
import { sunburstAdvancedPipeline } from "./sunburst.js";
|
|
26
29
|
import { circlePackingAdvancedPipeline } from "./circlePacking.js";
|
|
27
|
-
export { areaAdvancedPipeline, areaPercentAdvancedPipeline, barAdvancedPipeline, barParallelAdvancedPipeline, barPercentAdvancedPipeline, boxplotAdvancedPipeline, circlePackingAdvancedPipeline, columnAdvancedPipeline, columnParallelAdvancedPipeline, columnPercentAdvancedPipeline, donutAdvancedPipeline, dualAxisAdvancedPipeline, funnelAdvancedPipeline, heatmapAdvancedPipeline, histogramAdvancedPipeline, lineAdvancedPipeline, pieAdvancedPipeline, raceBarAdvancedPipeline, raceColumnAdvancedPipeline, raceScatterAdvancedPipeline, radarAdvancedPipeline, roseAdvancedPipeline, roseParallelAdvancedPipeline, scatterAdvancedPipeline, sunburstAdvancedPipeline, treeMapAdvancedPipeline };
|
|
30
|
+
export { areaAdvancedPipeline, areaPercentAdvancedPipeline, barAdvancedPipeline, barParallelAdvancedPipeline, barPercentAdvancedPipeline, boxplotAdvancedPipeline, circlePackingAdvancedPipeline, columnAdvancedPipeline, columnParallelAdvancedPipeline, columnPercentAdvancedPipeline, donutAdvancedPipeline, dualAxisAdvancedPipeline, funnelAdvancedPipeline, heatmapAdvancedPipeline, histogramAdvancedPipeline, lineAdvancedPipeline, pieAdvancedPipeline, raceBarAdvancedPipeline, raceColumnAdvancedPipeline, raceDonutAdvancedPipeline, raceLineAdvancedPipeline, racePieAdvancedPipeline, raceScatterAdvancedPipeline, radarAdvancedPipeline, roseAdvancedPipeline, roseParallelAdvancedPipeline, scatterAdvancedPipeline, sunburstAdvancedPipeline, treeMapAdvancedPipeline };
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { annotation, buildMeasures, defaultDimensions, defaultEncodingForRaceDonut, defaultMeasureId, defaultMeasures, donutConfig, encodingAdapter, encodingForRaceDonut, initAdvancedVSeed, page, pickDimensionsForReshape, pivotAdapter, pivotReshapeWithEncoding, reshapeWithEncoding, theme } from "../pipes/index.js";
|
|
2
|
+
const raceDonutAdvancedPipeline = [
|
|
3
|
+
page,
|
|
4
|
+
initAdvancedVSeed,
|
|
5
|
+
defaultMeasures,
|
|
6
|
+
defaultDimensions,
|
|
7
|
+
defaultMeasureId,
|
|
8
|
+
encodingAdapter([
|
|
9
|
+
buildMeasures([
|
|
10
|
+
'angle',
|
|
11
|
+
'detail'
|
|
12
|
+
]),
|
|
13
|
+
defaultEncodingForRaceDonut
|
|
14
|
+
], [
|
|
15
|
+
buildMeasures([
|
|
16
|
+
'angle',
|
|
17
|
+
'detail'
|
|
18
|
+
]),
|
|
19
|
+
encodingForRaceDonut,
|
|
20
|
+
pickDimensionsForReshape
|
|
21
|
+
]),
|
|
22
|
+
pivotAdapter([
|
|
23
|
+
reshapeWithEncoding
|
|
24
|
+
], [
|
|
25
|
+
pivotReshapeWithEncoding
|
|
26
|
+
]),
|
|
27
|
+
donutConfig,
|
|
28
|
+
theme,
|
|
29
|
+
annotation
|
|
30
|
+
];
|
|
31
|
+
export { raceDonutAdvancedPipeline };
|
|
32
|
+
|
|
33
|
+
//# sourceMappingURL=raceDonut.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pipeline/advanced/chart/pipeline/raceDonut.js","sources":["webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipeline/raceDonut.ts"],"sourcesContent":["import type { AdvancedPipeline } from 'src/types'\nimport {\n initAdvancedVSeed,\n theme,\n buildMeasures,\n pivotAdapter,\n donutConfig,\n annotation,\n reshapeWithEncoding,\n pivotReshapeWithEncoding,\n defaultMeasures,\n defaultDimensions,\n defaultMeasureId,\n encodingAdapter,\n pickDimensionsForReshape,\n page,\n defaultEncodingForRaceDonut,\n encodingForRaceDonut,\n} from '../pipes'\n\nexport const raceDonutAdvancedPipeline: AdvancedPipeline = [\n page,\n initAdvancedVSeed,\n defaultMeasures,\n defaultDimensions,\n defaultMeasureId,\n\n encodingAdapter(\n [buildMeasures(['angle', 'detail']), defaultEncodingForRaceDonut],\n [buildMeasures(['angle', 'detail']), encodingForRaceDonut, pickDimensionsForReshape],\n ),\n pivotAdapter([reshapeWithEncoding], [pivotReshapeWithEncoding]),\n\n donutConfig,\n theme,\n annotation,\n]\n"],"names":["raceDonutAdvancedPipeline","page","initAdvancedVSeed","defaultMeasures","defaultDimensions","defaultMeasureId","encodingAdapter","buildMeasures","defaultEncodingForRaceDonut","encodingForRaceDonut","pickDimensionsForReshape","pivotAdapter","reshapeWithEncoding","pivotReshapeWithEncoding","donutConfig","theme","annotation"],"mappings":";AAoBO,MAAMA,4BAA8C;IACzDC;IACAC;IACAC;IACAC;IACAC;IAEAC,gBACE;QAACC,cAAc;YAAC;YAAS;SAAS;QAAGC;KAA4B,EACjE;QAACD,cAAc;YAAC;YAAS;SAAS;QAAGE;QAAsBC;KAAyB;IAEtFC,aAAa;QAACC;KAAoB,EAAE;QAACC;KAAyB;IAE9DC;IACAC;IACAC;CACD"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { annotation, buildMeasures, defaultDimensions, defaultEncodingForRaceLine, defaultMeasureId, defaultMeasures, encodingAdapter, encodingForRaceLine, initAdvancedVSeed, lineConfig, markStyle, page, pickDimensionsForReshape, pivotAdapter, pivotReshapeWithEncoding, reshapeWithEncoding, sortLegend, sortXBandAxis, theme } from "../pipes/index.js";
|
|
2
|
+
const raceLineAdvancedPipeline = [
|
|
3
|
+
page,
|
|
4
|
+
initAdvancedVSeed,
|
|
5
|
+
defaultMeasures,
|
|
6
|
+
defaultDimensions,
|
|
7
|
+
defaultMeasureId,
|
|
8
|
+
encodingAdapter([
|
|
9
|
+
buildMeasures([
|
|
10
|
+
'yAxis',
|
|
11
|
+
'detail'
|
|
12
|
+
]),
|
|
13
|
+
defaultEncodingForRaceLine
|
|
14
|
+
], [
|
|
15
|
+
buildMeasures([
|
|
16
|
+
'yAxis',
|
|
17
|
+
'detail'
|
|
18
|
+
]),
|
|
19
|
+
encodingForRaceLine,
|
|
20
|
+
pickDimensionsForReshape
|
|
21
|
+
]),
|
|
22
|
+
pivotAdapter([
|
|
23
|
+
reshapeWithEncoding
|
|
24
|
+
], [
|
|
25
|
+
pivotReshapeWithEncoding
|
|
26
|
+
]),
|
|
27
|
+
sortXBandAxis,
|
|
28
|
+
sortLegend,
|
|
29
|
+
lineConfig,
|
|
30
|
+
theme,
|
|
31
|
+
markStyle,
|
|
32
|
+
annotation
|
|
33
|
+
];
|
|
34
|
+
export { raceLineAdvancedPipeline };
|
|
35
|
+
|
|
36
|
+
//# sourceMappingURL=raceLine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pipeline/advanced/chart/pipeline/raceLine.js","sources":["webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipeline/raceLine.ts"],"sourcesContent":["import type { AdvancedPipeline } from 'src/types'\nimport {\n initAdvancedVSeed,\n theme,\n buildMeasures,\n pivotAdapter,\n lineConfig,\n markStyle,\n annotation,\n sortXBandAxis,\n sortLegend,\n reshapeWithEncoding,\n pivotReshapeWithEncoding,\n defaultMeasures,\n defaultDimensions,\n defaultMeasureId,\n encodingAdapter,\n pickDimensionsForReshape,\n page,\n defaultEncodingForRaceLine,\n encodingForRaceLine,\n} from '../pipes'\n\nexport const raceLineAdvancedPipeline: AdvancedPipeline = [\n page,\n initAdvancedVSeed,\n defaultMeasures,\n defaultDimensions,\n defaultMeasureId,\n\n encodingAdapter(\n [buildMeasures(['yAxis', 'detail']), defaultEncodingForRaceLine],\n [buildMeasures(['yAxis', 'detail']), encodingForRaceLine, pickDimensionsForReshape],\n ),\n pivotAdapter([reshapeWithEncoding], [pivotReshapeWithEncoding]),\n\n sortXBandAxis,\n sortLegend,\n lineConfig,\n theme,\n markStyle,\n annotation,\n]\n"],"names":["raceLineAdvancedPipeline","page","initAdvancedVSeed","defaultMeasures","defaultDimensions","defaultMeasureId","encodingAdapter","buildMeasures","defaultEncodingForRaceLine","encodingForRaceLine","pickDimensionsForReshape","pivotAdapter","reshapeWithEncoding","pivotReshapeWithEncoding","sortXBandAxis","sortLegend","lineConfig","theme","markStyle","annotation"],"mappings":";AAuBO,MAAMA,2BAA6C;IACxDC;IACAC;IACAC;IACAC;IACAC;IAEAC,gBACE;QAACC,cAAc;YAAC;YAAS;SAAS;QAAGC;KAA2B,EAChE;QAACD,cAAc;YAAC;YAAS;SAAS;QAAGE;QAAqBC;KAAyB;IAErFC,aAAa;QAACC;KAAoB,EAAE;QAACC;KAAyB;IAE9DC;IACAC;IACAC;IACAC;IACAC;IACAC;CACD"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { annotation, buildMeasures, defaultDimensions, defaultEncodingForRacePie, defaultMeasureId, defaultMeasures, encodingAdapter, encodingForRacePie, initAdvancedVSeed, page, pickDimensionsForReshape, pieConfig, pivotAdapter, pivotReshapeWithEncoding, reshapeWithEncoding, theme } from "../pipes/index.js";
|
|
2
|
+
const racePieAdvancedPipeline = [
|
|
3
|
+
page,
|
|
4
|
+
initAdvancedVSeed,
|
|
5
|
+
defaultMeasures,
|
|
6
|
+
defaultDimensions,
|
|
7
|
+
defaultMeasureId,
|
|
8
|
+
encodingAdapter([
|
|
9
|
+
buildMeasures([
|
|
10
|
+
'angle',
|
|
11
|
+
'detail'
|
|
12
|
+
]),
|
|
13
|
+
defaultEncodingForRacePie
|
|
14
|
+
], [
|
|
15
|
+
buildMeasures([
|
|
16
|
+
'angle',
|
|
17
|
+
'detail'
|
|
18
|
+
]),
|
|
19
|
+
encodingForRacePie,
|
|
20
|
+
pickDimensionsForReshape
|
|
21
|
+
]),
|
|
22
|
+
pivotAdapter([
|
|
23
|
+
reshapeWithEncoding
|
|
24
|
+
], [
|
|
25
|
+
pivotReshapeWithEncoding
|
|
26
|
+
]),
|
|
27
|
+
pieConfig,
|
|
28
|
+
theme,
|
|
29
|
+
annotation
|
|
30
|
+
];
|
|
31
|
+
export { racePieAdvancedPipeline };
|
|
32
|
+
|
|
33
|
+
//# sourceMappingURL=racePie.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pipeline/advanced/chart/pipeline/racePie.js","sources":["webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipeline/racePie.ts"],"sourcesContent":["import type { AdvancedPipeline } from 'src/types'\nimport {\n initAdvancedVSeed,\n theme,\n buildMeasures,\n pivotAdapter,\n pieConfig,\n annotation,\n reshapeWithEncoding,\n pivotReshapeWithEncoding,\n defaultMeasures,\n defaultDimensions,\n defaultMeasureId,\n encodingAdapter,\n pickDimensionsForReshape,\n page,\n defaultEncodingForRacePie,\n encodingForRacePie,\n} from '../pipes'\n\nexport const racePieAdvancedPipeline: AdvancedPipeline = [\n page,\n initAdvancedVSeed,\n defaultMeasures,\n defaultDimensions,\n defaultMeasureId,\n\n encodingAdapter(\n [buildMeasures(['angle', 'detail']), defaultEncodingForRacePie],\n [buildMeasures(['angle', 'detail']), encodingForRacePie, pickDimensionsForReshape],\n ),\n pivotAdapter([reshapeWithEncoding], [pivotReshapeWithEncoding]),\n\n pieConfig,\n theme,\n annotation,\n]\n"],"names":["racePieAdvancedPipeline","page","initAdvancedVSeed","defaultMeasures","defaultDimensions","defaultMeasureId","encodingAdapter","buildMeasures","defaultEncodingForRacePie","encodingForRacePie","pickDimensionsForReshape","pivotAdapter","reshapeWithEncoding","pivotReshapeWithEncoding","pieConfig","theme","annotation"],"mappings":";AAoBO,MAAMA,0BAA4C;IACvDC;IACAC;IACAC;IACAC;IACAC;IAEAC,gBACE;QAACC,cAAc;YAAC;YAAS;SAAS;QAAGC;KAA0B,EAC/D;QAACD,cAAc;YAAC;YAAS;SAAS;QAAGE;QAAoBC;KAAyB;IAEpFC,aAAa;QAACC;KAAoB,EAAE;QAACC;KAAyB;IAE9DC;IACAC;IACAC;CACD"}
|
|
@@ -14,4 +14,7 @@ export { encodingForBoxplot, defaultEncodingForBoxplot } from './boxplot';
|
|
|
14
14
|
export { encodingForRaceColumn, defaultEncodingForRaceColumn } from './raceColumn';
|
|
15
15
|
export { encodingForRaceBar, defaultEncodingForRaceBar } from './raceBar';
|
|
16
16
|
export { encodingForRaceScatter, defaultEncodingForRaceScatter } from './raceScatter';
|
|
17
|
+
export { encodingForRaceLine, defaultEncodingForRaceLine } from './raceLine';
|
|
18
|
+
export { encodingForRacePie, defaultEncodingForRacePie } from './racePie';
|
|
19
|
+
export { encodingForRaceDonut, defaultEncodingForRaceDonut } from './raceDonut';
|
|
17
20
|
export { encodingForHierarchy, defaultEncodingForHierarchy } from './hierarchy';
|
|
@@ -14,5 +14,8 @@ import { defaultEncodingForBoxplot, encodingForBoxplot } from "./boxplot.js";
|
|
|
14
14
|
import { defaultEncodingForRaceColumn, encodingForRaceColumn } from "./raceColumn.js";
|
|
15
15
|
import { defaultEncodingForRaceBar, encodingForRaceBar } from "./raceBar.js";
|
|
16
16
|
import { defaultEncodingForRaceScatter, encodingForRaceScatter } from "./raceScatter.js";
|
|
17
|
+
import { defaultEncodingForRaceLine, encodingForRaceLine } from "./raceLine.js";
|
|
18
|
+
import { defaultEncodingForRacePie, encodingForRacePie } from "./racePie.js";
|
|
19
|
+
import { defaultEncodingForRaceDonut, encodingForRaceDonut } from "./raceDonut.js";
|
|
17
20
|
import { defaultEncodingForHierarchy, encodingForHierarchy } from "./hierarchy.js";
|
|
18
|
-
export { defaultEncodingForBar, defaultEncodingForBoxplot, defaultEncodingForColumn, defaultEncodingForDualAxis, defaultEncodingForFunnel, defaultEncodingForHeatmap, defaultEncodingForHierarchy, defaultEncodingForHistogram, defaultEncodingForLine, defaultEncodingForPie, defaultEncodingForRaceBar, defaultEncodingForRaceColumn, defaultEncodingForRaceScatter, defaultEncodingForRadar, defaultEncodingForRose, defaultEncodingForScatter, encodingAdapter, encodingForBar, encodingForBoxplot, encodingForColumn, encodingForDualAxis, encodingForFunnel, encodingForHeatmap, encodingForHierarchy, encodingForHistogram, encodingForLine, encodingForPie, encodingForRaceBar, encodingForRaceColumn, encodingForRaceScatter, encodingForRadar, encodingForRose, encodingForScatter };
|
|
21
|
+
export { defaultEncodingForBar, defaultEncodingForBoxplot, defaultEncodingForColumn, defaultEncodingForDualAxis, defaultEncodingForFunnel, defaultEncodingForHeatmap, defaultEncodingForHierarchy, defaultEncodingForHistogram, defaultEncodingForLine, defaultEncodingForPie, defaultEncodingForRaceBar, defaultEncodingForRaceColumn, defaultEncodingForRaceDonut, defaultEncodingForRaceLine, defaultEncodingForRacePie, defaultEncodingForRaceScatter, defaultEncodingForRadar, defaultEncodingForRose, defaultEncodingForScatter, encodingAdapter, encodingForBar, encodingForBoxplot, encodingForColumn, encodingForDualAxis, encodingForFunnel, encodingForHeatmap, encodingForHierarchy, encodingForHistogram, encodingForLine, encodingForPie, encodingForRaceBar, encodingForRaceColumn, encodingForRaceDonut, encodingForRaceLine, encodingForRacePie, encodingForRaceScatter, encodingForRadar, encodingForRose, encodingForScatter };
|
|
@@ -41,9 +41,6 @@ const generateDefaultDimensionEncoding = (dimensions, encoding, isMultiMeasure)=
|
|
|
41
41
|
};
|
|
42
42
|
const generateDimensionEncoding = (dimensions, encoding, isMultiMeasure)=>{
|
|
43
43
|
encoding.player = unique(dimensions.filter((item)=>'player' === item.encoding).map((item)=>item.id));
|
|
44
|
-
if (0 === encoding.player.length) encoding.player = [
|
|
45
|
-
dimensions[0].id
|
|
46
|
-
];
|
|
47
44
|
encoding.y = unique(dimensions.filter((item)=>'yAxis' === item.encoding).map((item)=>item.id));
|
|
48
45
|
if (0 === encoding.y.length) encoding.y = [
|
|
49
46
|
dimensions[1].id
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline/advanced/chart/pipes/encoding/raceBar.js","sources":["webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/encoding/raceBar.ts"],"sourcesContent":["import { unique } from 'remeda'\nimport { MeasureId } from 'src/dataReshape'\nimport { hasMultipleMeasureInSingleView } from 'src/pipeline/utils'\nimport type { AdvancedPipe, Dimension, Dimensions, Encoding, Measure, Measures } from 'src/types'\nimport { addColorToEncoding } from './color'\nimport { addDefaultColorEncoding } from './color/addColorToEncoding'\n\nexport const defaultEncodingForRaceBar: AdvancedPipe = (advancedVSeed) => {\n const { measures = [], reshapeMeasures = [], dimensions = [] } = advancedVSeed\n const encoding: Encoding = {}\n generateDefaultDimensionEncoding(dimensions, encoding, hasMultipleMeasureInSingleView(reshapeMeasures))\n generateDefaultMeasureEncoding(measures, encoding)\n return { ...advancedVSeed, encoding }\n}\n\nexport const encodingForRaceBar: AdvancedPipe = (advancedVSeed) => {\n const { measures = [], reshapeMeasures = [], dimensions = [] } = advancedVSeed\n\n const hasDimensionEncoding = dimensions.some((item: Dimension) => item.encoding)\n const hasMeasureEncoding = measures.some((item: Measure) => item.encoding)\n const encoding: Encoding = {}\n const hasMulti = hasMultipleMeasureInSingleView(reshapeMeasures)\n\n if (hasDimensionEncoding) {\n generateDimensionEncoding(dimensions, encoding, hasMulti)\n } else {\n generateDefaultDimensionEncoding(dimensions, encoding, hasMulti)\n }\n\n if (hasMeasureEncoding) {\n generateMeasureEncoding(measures, encoding)\n } else {\n generateDefaultMeasureEncoding(measures, encoding)\n }\n\n return { ...advancedVSeed, encoding }\n}\n\n/**\n * --------------------维度--------------------\n */\nconst generateDefaultDimensionEncoding = (dimensions: Dimensions, encoding: Encoding, isMultiMeasure: boolean) => {\n const uniqueDimIds: string[] = unique(dimensions.map((d) => d.id))\n encoding.player = uniqueDimIds.slice(0, 1) // 第一个维度用于播放\n encoding.y = uniqueDimIds.slice(1, 2) // 第二个维度用于离散的Y轴\n addDefaultColorEncoding(uniqueDimIds, encoding, isMultiMeasure)\n encoding.detail = encoding.color\n encoding.tooltip = uniqueDimIds.filter((d) => d !== MeasureId) // 展示指标名称之外的所有维度\n encoding.label = [] // 默认不展示标签\n encoding.row = [] // 默认不进行行透视\n encoding.column = [] // 默认不进行列透视\n}\nconst generateDimensionEncoding = (dimensions: Dimensions, encoding: Encoding, isMultiMeasure: boolean) => {\n // player\n encoding.player = unique(dimensions.filter((item) => item.encoding === 'player').map((item) => item.id))\n
|
|
1
|
+
{"version":3,"file":"pipeline/advanced/chart/pipes/encoding/raceBar.js","sources":["webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/encoding/raceBar.ts"],"sourcesContent":["import { unique } from 'remeda'\nimport { MeasureId } from 'src/dataReshape'\nimport { hasMultipleMeasureInSingleView } from 'src/pipeline/utils'\nimport type { AdvancedPipe, Dimension, Dimensions, Encoding, Measure, Measures } from 'src/types'\nimport { addColorToEncoding } from './color'\nimport { addDefaultColorEncoding } from './color/addColorToEncoding'\n\nexport const defaultEncodingForRaceBar: AdvancedPipe = (advancedVSeed) => {\n const { measures = [], reshapeMeasures = [], dimensions = [] } = advancedVSeed\n const encoding: Encoding = {}\n generateDefaultDimensionEncoding(dimensions, encoding, hasMultipleMeasureInSingleView(reshapeMeasures))\n generateDefaultMeasureEncoding(measures, encoding)\n return { ...advancedVSeed, encoding }\n}\n\nexport const encodingForRaceBar: AdvancedPipe = (advancedVSeed) => {\n const { measures = [], reshapeMeasures = [], dimensions = [] } = advancedVSeed\n\n const hasDimensionEncoding = dimensions.some((item: Dimension) => item.encoding)\n const hasMeasureEncoding = measures.some((item: Measure) => item.encoding)\n const encoding: Encoding = {}\n const hasMulti = hasMultipleMeasureInSingleView(reshapeMeasures)\n\n if (hasDimensionEncoding) {\n generateDimensionEncoding(dimensions, encoding, hasMulti)\n } else {\n generateDefaultDimensionEncoding(dimensions, encoding, hasMulti)\n }\n\n if (hasMeasureEncoding) {\n generateMeasureEncoding(measures, encoding)\n } else {\n generateDefaultMeasureEncoding(measures, encoding)\n }\n\n return { ...advancedVSeed, encoding }\n}\n\n/**\n * --------------------维度--------------------\n */\nconst generateDefaultDimensionEncoding = (dimensions: Dimensions, encoding: Encoding, isMultiMeasure: boolean) => {\n const uniqueDimIds: string[] = unique(dimensions.map((d) => d.id))\n encoding.player = uniqueDimIds.slice(0, 1) // 第一个维度用于播放\n encoding.y = uniqueDimIds.slice(1, 2) // 第二个维度用于离散的Y轴\n addDefaultColorEncoding(uniqueDimIds, encoding, isMultiMeasure)\n encoding.detail = encoding.color\n encoding.tooltip = uniqueDimIds.filter((d) => d !== MeasureId) // 展示指标名称之外的所有维度\n encoding.label = [] // 默认不展示标签\n encoding.row = [] // 默认不进行行透视\n encoding.column = [] // 默认不进行列透视\n}\nconst generateDimensionEncoding = (dimensions: Dimensions, encoding: Encoding, isMultiMeasure: boolean) => {\n // player\n encoding.player = unique(dimensions.filter((item) => item.encoding === 'player').map((item) => item.id))\n\n // y\n encoding.y = unique(dimensions.filter((item) => item.encoding === 'yAxis').map((item) => item.id))\n if (encoding.y.length === 0) {\n encoding.y = [dimensions[1].id]\n }\n\n // color\n addColorToEncoding(dimensions, encoding, isMultiMeasure)\n\n // detail\n encoding.detail = unique(dimensions.filter((item) => item.encoding === 'detail').map((item) => item.id))\n if (encoding.detail.length === 0) {\n encoding.detail = encoding.color\n }\n\n // tooltip\n encoding.tooltip = unique(dimensions.map((item) => item.id))\n encoding.tooltip = encoding.tooltip.filter((d) => d !== MeasureId)\n\n // label\n encoding.label = unique(dimensions.filter((item) => item.encoding === 'label').map((item) => item.id))\n encoding.label = encoding.label.filter((d) => d !== MeasureId)\n}\n\n/**\n * --------------------指标--------------------\n */\nconst generateDefaultMeasureEncoding = (measures: Measures, encoding: Encoding) => {\n encoding.x = unique(measures.filter((item) => item.encoding === 'xAxis' || !item.encoding).map((item) => item.id))\n}\nconst generateMeasureEncoding = (measures: Measures, encoding: Encoding) => {\n // x\n encoding.x = unique(measures.filter((item) => item.encoding === 'xAxis' || !item.encoding).map((item) => item.id))\n\n // color\n const color = unique(measures.filter((item) => item.encoding === 'color').map((item) => item.id))\n if (color.length > 0) {\n encoding.color = color\n }\n\n // label\n const label = unique(measures.filter((item) => item.encoding === 'label').map((item) => item.id))\n encoding.label = unique([...(encoding.label || []), ...label])\n\n // tooltip\n const tooltip = unique(measures.filter((item) => item.encoding === 'tooltip').map((item) => item.id))\n encoding.tooltip = unique([...(encoding.tooltip || []), ...label, ...tooltip, ...color])\n}\n"],"names":["defaultEncodingForRaceBar","advancedVSeed","measures","reshapeMeasures","dimensions","encoding","generateDefaultDimensionEncoding","hasMultipleMeasureInSingleView","generateDefaultMeasureEncoding","encodingForRaceBar","hasDimensionEncoding","item","hasMeasureEncoding","hasMulti","generateDimensionEncoding","generateMeasureEncoding","isMultiMeasure","uniqueDimIds","unique","d","addDefaultColorEncoding","MeasureId","addColorToEncoding","color","label","tooltip"],"mappings":";;;;;AAOO,MAAMA,4BAA0C,CAACC;IACtD,MAAM,EAAEC,WAAW,EAAE,EAAEC,kBAAkB,EAAE,EAAEC,aAAa,EAAE,EAAE,GAAGH;IACjE,MAAMI,WAAqB,CAAC;IAC5BC,iCAAiCF,YAAYC,UAAUE,+BAA+BJ;IACtFK,+BAA+BN,UAAUG;IACzC,OAAO;QAAE,GAAGJ,aAAa;QAAEI;IAAS;AACtC;AAEO,MAAMI,qBAAmC,CAACR;IAC/C,MAAM,EAAEC,WAAW,EAAE,EAAEC,kBAAkB,EAAE,EAAEC,aAAa,EAAE,EAAE,GAAGH;IAEjE,MAAMS,uBAAuBN,WAAW,IAAI,CAAC,CAACO,OAAoBA,KAAK,QAAQ;IAC/E,MAAMC,qBAAqBV,SAAS,IAAI,CAAC,CAACS,OAAkBA,KAAK,QAAQ;IACzE,MAAMN,WAAqB,CAAC;IAC5B,MAAMQ,WAAWN,+BAA+BJ;IAEhD,IAAIO,sBACFI,0BAA0BV,YAAYC,UAAUQ;SAEhDP,iCAAiCF,YAAYC,UAAUQ;IAGzD,IAAID,oBACFG,wBAAwBb,UAAUG;SAElCG,+BAA+BN,UAAUG;IAG3C,OAAO;QAAE,GAAGJ,aAAa;QAAEI;IAAS;AACtC;AAKA,MAAMC,mCAAmC,CAACF,YAAwBC,UAAoBW;IACpF,MAAMC,eAAyBC,OAAOd,WAAW,GAAG,CAAC,CAACe,IAAMA,EAAE,EAAE;IAChEd,SAAS,MAAM,GAAGY,aAAa,KAAK,CAAC,GAAG;IACxCZ,SAAS,CAAC,GAAGY,aAAa,KAAK,CAAC,GAAG;IACnCG,wBAAwBH,cAAcZ,UAAUW;IAChDX,SAAS,MAAM,GAAGA,SAAS,KAAK;IAChCA,SAAS,OAAO,GAAGY,aAAa,MAAM,CAAC,CAACE,IAAMA,MAAME;IACpDhB,SAAS,KAAK,GAAG,EAAE;IACnBA,SAAS,GAAG,GAAG,EAAE;IACjBA,SAAS,MAAM,GAAG,EAAE;AACtB;AACA,MAAMS,4BAA4B,CAACV,YAAwBC,UAAoBW;IAE7EX,SAAS,MAAM,GAAGa,OAAOd,WAAW,MAAM,CAAC,CAACO,OAASA,AAAkB,aAAlBA,KAAK,QAAQ,EAAe,GAAG,CAAC,CAACA,OAASA,KAAK,EAAE;IAGtGN,SAAS,CAAC,GAAGa,OAAOd,WAAW,MAAM,CAAC,CAACO,OAASA,AAAkB,YAAlBA,KAAK,QAAQ,EAAc,GAAG,CAAC,CAACA,OAASA,KAAK,EAAE;IAChG,IAAIN,AAAsB,MAAtBA,SAAS,CAAC,CAAC,MAAM,EACnBA,SAAS,CAAC,GAAG;QAACD,UAAU,CAAC,EAAE,CAAC,EAAE;KAAC;IAIjCkB,mBAAmBlB,YAAYC,UAAUW;IAGzCX,SAAS,MAAM,GAAGa,OAAOd,WAAW,MAAM,CAAC,CAACO,OAASA,AAAkB,aAAlBA,KAAK,QAAQ,EAAe,GAAG,CAAC,CAACA,OAASA,KAAK,EAAE;IACtG,IAAIN,AAA2B,MAA3BA,SAAS,MAAM,CAAC,MAAM,EACxBA,SAAS,MAAM,GAAGA,SAAS,KAAK;IAIlCA,SAAS,OAAO,GAAGa,OAAOd,WAAW,GAAG,CAAC,CAACO,OAASA,KAAK,EAAE;IAC1DN,SAAS,OAAO,GAAGA,SAAS,OAAO,CAAC,MAAM,CAAC,CAACc,IAAMA,MAAME;IAGxDhB,SAAS,KAAK,GAAGa,OAAOd,WAAW,MAAM,CAAC,CAACO,OAASA,AAAkB,YAAlBA,KAAK,QAAQ,EAAc,GAAG,CAAC,CAACA,OAASA,KAAK,EAAE;IACpGN,SAAS,KAAK,GAAGA,SAAS,KAAK,CAAC,MAAM,CAAC,CAACc,IAAMA,MAAME;AACtD;AAKA,MAAMb,iCAAiC,CAACN,UAAoBG;IAC1DA,SAAS,CAAC,GAAGa,OAAOhB,SAAS,MAAM,CAAC,CAACS,OAASA,AAAkB,YAAlBA,KAAK,QAAQ,IAAgB,CAACA,KAAK,QAAQ,EAAE,GAAG,CAAC,CAACA,OAASA,KAAK,EAAE;AAClH;AACA,MAAMI,0BAA0B,CAACb,UAAoBG;IAEnDA,SAAS,CAAC,GAAGa,OAAOhB,SAAS,MAAM,CAAC,CAACS,OAASA,AAAkB,YAAlBA,KAAK,QAAQ,IAAgB,CAACA,KAAK,QAAQ,EAAE,GAAG,CAAC,CAACA,OAASA,KAAK,EAAE;IAGhH,MAAMY,QAAQL,OAAOhB,SAAS,MAAM,CAAC,CAACS,OAASA,AAAkB,YAAlBA,KAAK,QAAQ,EAAc,GAAG,CAAC,CAACA,OAASA,KAAK,EAAE;IAC/F,IAAIY,MAAM,MAAM,GAAG,GACjBlB,SAAS,KAAK,GAAGkB;IAInB,MAAMC,QAAQN,OAAOhB,SAAS,MAAM,CAAC,CAACS,OAASA,AAAkB,YAAlBA,KAAK,QAAQ,EAAc,GAAG,CAAC,CAACA,OAASA,KAAK,EAAE;IAC/FN,SAAS,KAAK,GAAGa,OAAO;WAAKb,SAAS,KAAK,IAAI,EAAE;WAAMmB;KAAM;IAG7D,MAAMC,UAAUP,OAAOhB,SAAS,MAAM,CAAC,CAACS,OAASA,AAAkB,cAAlBA,KAAK,QAAQ,EAAgB,GAAG,CAAC,CAACA,OAASA,KAAK,EAAE;IACnGN,SAAS,OAAO,GAAGa,OAAO;WAAKb,SAAS,OAAO,IAAI,EAAE;WAAMmB;WAAUC;WAAYF;KAAM;AACzF"}
|
|
@@ -41,9 +41,6 @@ const generateDefaultDimensionEncoding = (dimensions, encoding, isMultiMeasure)=
|
|
|
41
41
|
};
|
|
42
42
|
const generateDimensionEncoding = (dimensions, encoding, isMultiMeasure)=>{
|
|
43
43
|
encoding.player = unique(dimensions.filter((item)=>'player' === item.encoding).map((item)=>item.id));
|
|
44
|
-
if (0 === encoding.player.length) encoding.player = [
|
|
45
|
-
dimensions[0].id
|
|
46
|
-
];
|
|
47
44
|
encoding.x = unique(dimensions.filter((item)=>'xAxis' === item.encoding).map((item)=>item.id));
|
|
48
45
|
if (0 === encoding.x.length) encoding.x = [
|
|
49
46
|
dimensions[1].id
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline/advanced/chart/pipes/encoding/raceColumn.js","sources":["webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/encoding/raceColumn.ts"],"sourcesContent":["import { unique } from 'remeda'\nimport { MeasureId } from 'src/dataReshape'\nimport { hasMultipleMeasureInSingleView } from 'src/pipeline/utils'\nimport type { AdvancedPipe, Dimension, Dimensions, Encoding, Measure, Measures } from 'src/types'\nimport { addColorToEncoding } from './color'\nimport { addDefaultColorEncoding } from './color/addColorToEncoding'\n\nexport const defaultEncodingForRaceColumn: AdvancedPipe = (advancedVSeed) => {\n const { measures = [], reshapeMeasures = [], dimensions = [] } = advancedVSeed\n const encoding: Encoding = {}\n generateDefaultDimensionEncoding(dimensions, encoding, hasMultipleMeasureInSingleView(reshapeMeasures))\n generateDefaultMeasureEncoding(measures, encoding)\n return { ...advancedVSeed, encoding }\n}\n\nexport const encodingForRaceColumn: AdvancedPipe = (advancedVSeed) => {\n const { measures = [], reshapeMeasures = [], dimensions = [] } = advancedVSeed\n\n const hasDimensionEncoding = dimensions.some((item: Dimension) => item.encoding)\n const hasMeasureEncoding = measures.some((item: Measure) => item.encoding)\n const encoding: Encoding = {}\n const hasMulti = hasMultipleMeasureInSingleView(reshapeMeasures)\n\n if (hasDimensionEncoding) {\n generateDimensionEncoding(dimensions, encoding, hasMulti)\n } else {\n generateDefaultDimensionEncoding(dimensions, encoding, hasMulti)\n }\n\n if (hasMeasureEncoding) {\n generateMeasureEncoding(measures, encoding)\n } else {\n generateDefaultMeasureEncoding(measures, encoding)\n }\n\n return { ...advancedVSeed, encoding }\n}\n\n/**\n * --------------------维度--------------------\n */\nconst generateDefaultDimensionEncoding = (dimensions: Dimensions, encoding: Encoding, isMultiMeasure: boolean) => {\n const uniqueDimIds: string[] = unique(dimensions.map((d) => d.id))\n\n encoding.player = uniqueDimIds.slice(0, 1) // 第1个维度放置于player\n encoding.x = uniqueDimIds.slice(1, 2) // 第2个维度放置于X轴\n addDefaultColorEncoding(uniqueDimIds, encoding, isMultiMeasure)\n encoding.detail = encoding.color\n encoding.tooltip = uniqueDimIds.filter((d) => d !== MeasureId) // 展示指标名称之外的所有维度\n encoding.label = [] // 默认不展示标签\n encoding.row = [] // 默认不进行行透视\n encoding.column = [] // 默认不进行列透视\n}\nconst generateDimensionEncoding = (dimensions: Dimensions, encoding: Encoding, isMultiMeasure: boolean) => {\n // player\n encoding.player = unique(dimensions.filter((item) => item.encoding === 'player').map((item) => item.id))\n
|
|
1
|
+
{"version":3,"file":"pipeline/advanced/chart/pipes/encoding/raceColumn.js","sources":["webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/encoding/raceColumn.ts"],"sourcesContent":["import { unique } from 'remeda'\nimport { MeasureId } from 'src/dataReshape'\nimport { hasMultipleMeasureInSingleView } from 'src/pipeline/utils'\nimport type { AdvancedPipe, Dimension, Dimensions, Encoding, Measure, Measures } from 'src/types'\nimport { addColorToEncoding } from './color'\nimport { addDefaultColorEncoding } from './color/addColorToEncoding'\n\nexport const defaultEncodingForRaceColumn: AdvancedPipe = (advancedVSeed) => {\n const { measures = [], reshapeMeasures = [], dimensions = [] } = advancedVSeed\n const encoding: Encoding = {}\n generateDefaultDimensionEncoding(dimensions, encoding, hasMultipleMeasureInSingleView(reshapeMeasures))\n generateDefaultMeasureEncoding(measures, encoding)\n return { ...advancedVSeed, encoding }\n}\n\nexport const encodingForRaceColumn: AdvancedPipe = (advancedVSeed) => {\n const { measures = [], reshapeMeasures = [], dimensions = [] } = advancedVSeed\n\n const hasDimensionEncoding = dimensions.some((item: Dimension) => item.encoding)\n const hasMeasureEncoding = measures.some((item: Measure) => item.encoding)\n const encoding: Encoding = {}\n const hasMulti = hasMultipleMeasureInSingleView(reshapeMeasures)\n\n if (hasDimensionEncoding) {\n generateDimensionEncoding(dimensions, encoding, hasMulti)\n } else {\n generateDefaultDimensionEncoding(dimensions, encoding, hasMulti)\n }\n\n if (hasMeasureEncoding) {\n generateMeasureEncoding(measures, encoding)\n } else {\n generateDefaultMeasureEncoding(measures, encoding)\n }\n\n return { ...advancedVSeed, encoding }\n}\n\n/**\n * --------------------维度--------------------\n */\nconst generateDefaultDimensionEncoding = (dimensions: Dimensions, encoding: Encoding, isMultiMeasure: boolean) => {\n const uniqueDimIds: string[] = unique(dimensions.map((d) => d.id))\n\n encoding.player = uniqueDimIds.slice(0, 1) // 第1个维度放置于player\n encoding.x = uniqueDimIds.slice(1, 2) // 第2个维度放置于X轴\n addDefaultColorEncoding(uniqueDimIds, encoding, isMultiMeasure)\n encoding.detail = encoding.color\n encoding.tooltip = uniqueDimIds.filter((d) => d !== MeasureId) // 展示指标名称之外的所有维度\n encoding.label = [] // 默认不展示标签\n encoding.row = [] // 默认不进行行透视\n encoding.column = [] // 默认不进行列透视\n}\nconst generateDimensionEncoding = (dimensions: Dimensions, encoding: Encoding, isMultiMeasure: boolean) => {\n // player\n encoding.player = unique(dimensions.filter((item) => item.encoding === 'player').map((item) => item.id))\n\n // x\n encoding.x = unique(dimensions.filter((item) => item.encoding === 'xAxis').map((item) => item.id))\n if (encoding.x.length === 0) {\n encoding.x = [dimensions[1].id]\n }\n\n // color\n addColorToEncoding(dimensions, encoding, isMultiMeasure)\n\n // detail\n encoding.detail = unique(dimensions.filter((item) => item.encoding === 'detail').map((item) => item.id))\n if (encoding.detail.length === 0) {\n encoding.detail = encoding.color\n }\n\n // tooltip\n encoding.tooltip = unique(dimensions.map((item) => item.id))\n encoding.tooltip = encoding.tooltip.filter((d) => d !== MeasureId)\n\n // label\n encoding.label = unique(dimensions.filter((item) => item.encoding === 'label').map((item) => item.id))\n encoding.label = encoding.label.filter((d) => d !== MeasureId)\n}\n\n/**\n * --------------------指标--------------------\n */\nconst generateDefaultMeasureEncoding = (measures: Measures, encoding: Encoding) => {\n encoding.y = unique(measures.filter((item) => item.encoding === 'yAxis' || !item.encoding).map((item) => item.id))\n}\nconst generateMeasureEncoding = (measures: Measures, encoding: Encoding) => {\n // y\n encoding.y = unique(measures.filter((item) => item.encoding === 'yAxis' || !item.encoding).map((item) => item.id))\n\n // color\n const color = unique(measures.filter((item) => item.encoding === 'color').map((item) => item.id))\n if (color.length > 0) {\n encoding.color = color\n }\n\n // label\n const label = unique(measures.filter((item) => item.encoding === 'label').map((item) => item.id))\n encoding.label = unique([...(encoding.label || []), ...label])\n\n // tooltip\n const tooltip = unique(measures.filter((item) => item.encoding === 'tooltip').map((item) => item.id))\n encoding.tooltip = unique([...(encoding.tooltip || []), ...label, ...tooltip, ...color])\n}\n"],"names":["defaultEncodingForRaceColumn","advancedVSeed","measures","reshapeMeasures","dimensions","encoding","generateDefaultDimensionEncoding","hasMultipleMeasureInSingleView","generateDefaultMeasureEncoding","encodingForRaceColumn","hasDimensionEncoding","item","hasMeasureEncoding","hasMulti","generateDimensionEncoding","generateMeasureEncoding","isMultiMeasure","uniqueDimIds","unique","d","addDefaultColorEncoding","MeasureId","addColorToEncoding","color","label","tooltip"],"mappings":"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"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { unique } from "remeda";
|
|
2
|
+
import { MeasureId } from "../../../../../dataReshape/index.js";
|
|
3
|
+
import { hasMultipleMeasureInSingleView } from "../../../../utils/index.js";
|
|
4
|
+
import { addColorToEncoding } from "./color/index.js";
|
|
5
|
+
import { addDefaultColorEncoding } from "./color/addColorToEncoding.js";
|
|
6
|
+
const defaultEncodingForRaceDonut = (advancedVSeed)=>{
|
|
7
|
+
const { measures = [], reshapeMeasures = [], dimensions = [] } = advancedVSeed;
|
|
8
|
+
const encoding = {};
|
|
9
|
+
generateDefaultDimensionEncoding(dimensions, encoding, hasMultipleMeasureInSingleView(reshapeMeasures));
|
|
10
|
+
generateDefaultMeasureEncoding(measures, encoding);
|
|
11
|
+
return {
|
|
12
|
+
...advancedVSeed,
|
|
13
|
+
encoding
|
|
14
|
+
};
|
|
15
|
+
};
|
|
16
|
+
const encodingForRaceDonut = (advancedVSeed)=>{
|
|
17
|
+
const { measures = [], reshapeMeasures = [], dimensions = [] } = advancedVSeed;
|
|
18
|
+
const hasDimensionEncoding = dimensions.some((item)=>item.encoding);
|
|
19
|
+
const hasMeasureEncoding = measures.some((item)=>item.encoding);
|
|
20
|
+
const encoding = {};
|
|
21
|
+
const hasMulti = hasMultipleMeasureInSingleView(reshapeMeasures);
|
|
22
|
+
if (hasDimensionEncoding) generateDimensionEncoding(dimensions, encoding, hasMulti);
|
|
23
|
+
else generateDefaultDimensionEncoding(dimensions, encoding, hasMulti);
|
|
24
|
+
if (hasMeasureEncoding) generateMeasureEncoding(measures, encoding);
|
|
25
|
+
else generateDefaultMeasureEncoding(measures, encoding);
|
|
26
|
+
return {
|
|
27
|
+
...advancedVSeed,
|
|
28
|
+
encoding
|
|
29
|
+
};
|
|
30
|
+
};
|
|
31
|
+
const generateDefaultDimensionEncoding = (dimensions, encoding, isMultiMeasure)=>{
|
|
32
|
+
const uniqueDimIds = unique(dimensions.map((d)=>d.id));
|
|
33
|
+
encoding.player = uniqueDimIds.slice(0, 1);
|
|
34
|
+
encoding.color = uniqueDimIds.slice(1, 2);
|
|
35
|
+
addDefaultColorEncoding(uniqueDimIds, encoding, isMultiMeasure);
|
|
36
|
+
encoding.detail = encoding.color;
|
|
37
|
+
encoding.tooltip = uniqueDimIds.filter((d)=>d !== MeasureId);
|
|
38
|
+
encoding.label = [];
|
|
39
|
+
encoding.row = [];
|
|
40
|
+
encoding.column = [];
|
|
41
|
+
};
|
|
42
|
+
const generateDimensionEncoding = (dimensions, encoding, isMultiMeasure)=>{
|
|
43
|
+
encoding.player = unique(dimensions.filter((item)=>'player' === item.encoding).map((item)=>item.id));
|
|
44
|
+
addColorToEncoding(dimensions, encoding, isMultiMeasure);
|
|
45
|
+
encoding.detail = unique(dimensions.filter((item)=>'detail' === item.encoding).map((item)=>item.id));
|
|
46
|
+
if (0 === encoding.detail.length) encoding.detail = encoding.color;
|
|
47
|
+
encoding.tooltip = unique(dimensions.map((item)=>item.id));
|
|
48
|
+
encoding.tooltip = encoding.tooltip.filter((d)=>d !== MeasureId);
|
|
49
|
+
encoding.label = unique(dimensions.filter((item)=>'label' === item.encoding).map((item)=>item.id));
|
|
50
|
+
encoding.label = encoding.label.filter((d)=>d !== MeasureId);
|
|
51
|
+
};
|
|
52
|
+
const generateDefaultMeasureEncoding = (measures, encoding)=>{
|
|
53
|
+
encoding.angle = unique(measures.filter((item)=>'angle' === item.encoding || !item.encoding).map((item)=>item.id));
|
|
54
|
+
};
|
|
55
|
+
const generateMeasureEncoding = (measures, encoding)=>{
|
|
56
|
+
encoding.angle = unique(measures.filter((item)=>'angle' === item.encoding || !item.encoding).map((item)=>item.id));
|
|
57
|
+
const color = unique(measures.filter((item)=>'color' === item.encoding).map((item)=>item.id));
|
|
58
|
+
if (color.length > 0) encoding.color = color;
|
|
59
|
+
const label = unique(measures.filter((item)=>'label' === item.encoding).map((item)=>item.id));
|
|
60
|
+
encoding.label = unique([
|
|
61
|
+
...encoding.label || [],
|
|
62
|
+
...label
|
|
63
|
+
]);
|
|
64
|
+
const tooltip = unique(measures.filter((item)=>'tooltip' === item.encoding).map((item)=>item.id));
|
|
65
|
+
encoding.tooltip = unique([
|
|
66
|
+
...encoding.tooltip || [],
|
|
67
|
+
...label,
|
|
68
|
+
...tooltip,
|
|
69
|
+
...color
|
|
70
|
+
]);
|
|
71
|
+
};
|
|
72
|
+
export { defaultEncodingForRaceDonut, encodingForRaceDonut };
|
|
73
|
+
|
|
74
|
+
//# sourceMappingURL=raceDonut.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pipeline/advanced/chart/pipes/encoding/raceDonut.js","sources":["webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/encoding/raceDonut.ts"],"sourcesContent":["import { unique } from 'remeda'\nimport { MeasureId } from 'src/dataReshape'\nimport { hasMultipleMeasureInSingleView } from 'src/pipeline/utils'\nimport type { AdvancedPipe, Dimension, Dimensions, Encoding, Measure, Measures } from 'src/types'\nimport { addColorToEncoding } from './color'\nimport { addDefaultColorEncoding } from './color/addColorToEncoding'\n\nexport const defaultEncodingForRaceDonut: AdvancedPipe = (advancedVSeed) => {\n const { measures = [], reshapeMeasures = [], dimensions = [] } = advancedVSeed\n const encoding: Encoding = {}\n generateDefaultDimensionEncoding(dimensions, encoding, hasMultipleMeasureInSingleView(reshapeMeasures))\n generateDefaultMeasureEncoding(measures, encoding)\n return { ...advancedVSeed, encoding }\n}\n\nexport const encodingForRaceDonut: AdvancedPipe = (advancedVSeed) => {\n const { measures = [], reshapeMeasures = [], dimensions = [] } = advancedVSeed\n\n const hasDimensionEncoding = dimensions.some((item: Dimension) => item.encoding)\n const hasMeasureEncoding = measures.some((item: Measure) => item.encoding)\n const encoding: Encoding = {}\n const hasMulti = hasMultipleMeasureInSingleView(reshapeMeasures)\n\n if (hasDimensionEncoding) {\n generateDimensionEncoding(dimensions, encoding, hasMulti)\n } else {\n generateDefaultDimensionEncoding(dimensions, encoding, hasMulti)\n }\n\n if (hasMeasureEncoding) {\n generateMeasureEncoding(measures, encoding)\n } else {\n generateDefaultMeasureEncoding(measures, encoding)\n }\n\n return { ...advancedVSeed, encoding }\n}\n\n/**\n * --------------------维度--------------------\n */\nconst generateDefaultDimensionEncoding = (dimensions: Dimensions, encoding: Encoding, isMultiMeasure: boolean) => {\n const uniqueDimIds: string[] = unique(dimensions.map((d) => d.id))\n encoding.player = uniqueDimIds.slice(0, 1) // 第一个维度用于播放\n encoding.color = uniqueDimIds.slice(1, 2) // 第二个维度用于颜色\n addDefaultColorEncoding(uniqueDimIds, encoding, isMultiMeasure)\n encoding.detail = encoding.color\n encoding.tooltip = uniqueDimIds.filter((d) => d !== MeasureId) // 展示指标名称之外的所有维度\n encoding.label = [] // 默认不展示标签\n encoding.row = [] // 默认不进行行透视\n encoding.column = [] // 默认不进行列透视\n}\nconst generateDimensionEncoding = (dimensions: Dimensions, encoding: Encoding, isMultiMeasure: boolean) => {\n // player\n encoding.player = unique(dimensions.filter((item) => item.encoding === 'player').map((item) => item.id))\n\n // color\n addColorToEncoding(dimensions, encoding, isMultiMeasure)\n\n // detail\n encoding.detail = unique(dimensions.filter((item) => item.encoding === 'detail').map((item) => item.id))\n if (encoding.detail.length === 0) {\n encoding.detail = encoding.color\n }\n\n // tooltip\n encoding.tooltip = unique(dimensions.map((item) => item.id))\n encoding.tooltip = encoding.tooltip.filter((d) => d !== MeasureId)\n\n // label\n encoding.label = unique(dimensions.filter((item) => item.encoding === 'label').map((item) => item.id))\n encoding.label = encoding.label.filter((d) => d !== MeasureId)\n}\n\n/**\n * --------------------指标--------------------\n */\nconst generateDefaultMeasureEncoding = (measures: Measures, encoding: Encoding) => {\n encoding.angle = unique(measures.filter((item) => item.encoding === 'angle' || !item.encoding).map((item) => item.id))\n}\nconst generateMeasureEncoding = (measures: Measures, encoding: Encoding) => {\n // angle\n encoding.angle = unique(measures.filter((item) => item.encoding === 'angle' || !item.encoding).map((item) => item.id))\n\n // color\n const color = unique(measures.filter((item) => item.encoding === 'color').map((item) => item.id))\n if (color.length > 0) {\n encoding.color = color\n }\n\n // label\n const label = unique(measures.filter((item) => item.encoding === 'label').map((item) => item.id))\n encoding.label = unique([...(encoding.label || []), ...label])\n\n // tooltip\n const tooltip = unique(measures.filter((item) => item.encoding === 'tooltip').map((item) => item.id))\n encoding.tooltip = unique([...(encoding.tooltip || []), ...label, ...tooltip, ...color])\n}\n"],"names":["defaultEncodingForRaceDonut","advancedVSeed","measures","reshapeMeasures","dimensions","encoding","generateDefaultDimensionEncoding","hasMultipleMeasureInSingleView","generateDefaultMeasureEncoding","encodingForRaceDonut","hasDimensionEncoding","item","hasMeasureEncoding","hasMulti","generateDimensionEncoding","generateMeasureEncoding","isMultiMeasure","uniqueDimIds","unique","d","addDefaultColorEncoding","MeasureId","addColorToEncoding","color","label","tooltip"],"mappings":"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"}
|