@visactor/vseed 0.5.4 → 0.5.6
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/register/all.js +3 -1
- package/dist/esm/builder/register/all.js.map +1 -1
- package/dist/esm/builder/register/chartType/hierarchySankey.d.ts +4 -0
- package/dist/esm/builder/register/chartType/hierarchySankey.js +9 -0
- package/dist/esm/builder/register/chartType/hierarchySankey.js.map +1 -0
- package/dist/esm/builder/register/chartType/index.d.ts +2 -0
- package/dist/esm/builder/register/chartType/index.js +2 -0
- package/dist/esm/builder/register/chartType/sankey.d.ts +1 -0
- package/dist/esm/builder/register/chartType/sankey.js +9 -0
- package/dist/esm/builder/register/chartType/sankey.js.map +1 -0
- package/dist/esm/dataReshape/constant.d.ts +2 -0
- package/dist/esm/dataReshape/constant.js +3 -1
- package/dist/esm/dataReshape/constant.js.map +1 -1
- package/dist/esm/dataReshape/unfoldDimensions.js +8 -2
- package/dist/esm/dataReshape/unfoldDimensions.js.map +1 -1
- package/dist/esm/index.d.ts +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/pipeline/advanced/chart/pipeline/hierarchySankey.d.ts +2 -0
- package/dist/esm/pipeline/advanced/chart/pipeline/hierarchySankey.js +33 -0
- package/dist/esm/pipeline/advanced/chart/pipeline/hierarchySankey.js.map +1 -0
- package/dist/esm/pipeline/advanced/chart/pipeline/index.d.ts +2 -0
- package/dist/esm/pipeline/advanced/chart/pipeline/index.js +2 -0
- package/dist/esm/pipeline/advanced/chart/pipeline/sankey.d.ts +2 -0
- package/dist/esm/pipeline/advanced/chart/pipeline/sankey.js +33 -0
- package/dist/esm/pipeline/advanced/chart/pipeline/sankey.js.map +1 -0
- package/dist/esm/pipeline/advanced/chart/pipes/config/hierarchySankey.d.ts +2 -0
- package/dist/esm/pipeline/advanced/chart/pipes/config/hierarchySankey.js +27 -0
- package/dist/esm/pipeline/advanced/chart/pipes/config/hierarchySankey.js.map +1 -0
- package/dist/esm/pipeline/advanced/chart/pipes/config/index.d.ts +2 -0
- package/dist/esm/pipeline/advanced/chart/pipes/config/index.js +2 -0
- package/dist/esm/pipeline/advanced/chart/pipes/config/index.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/config/sankey.d.ts +2 -0
- package/dist/esm/pipeline/advanced/chart/pipes/config/sankey.js +27 -0
- package/dist/esm/pipeline/advanced/chart/pipes/config/sankey.js.map +1 -0
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/index.d.ts +1 -0
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/index.js +1 -0
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/sankey.d.ts +3 -0
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/sankey.js +83 -0
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/sankey.js.map +1 -0
- package/dist/esm/pipeline/spec/chart/pipeline/hierarchySankey.d.ts +1 -0
- package/dist/esm/pipeline/spec/chart/pipeline/hierarchySankey.js +39 -0
- package/dist/esm/pipeline/spec/chart/pipeline/hierarchySankey.js.map +1 -0
- package/dist/esm/pipeline/spec/chart/pipeline/index.d.ts +2 -0
- package/dist/esm/pipeline/spec/chart/pipeline/index.js +2 -0
- package/dist/esm/pipeline/spec/chart/pipeline/sankey.d.ts +1 -0
- package/dist/esm/pipeline/spec/chart/pipeline/sankey.js +39 -0
- package/dist/esm/pipeline/spec/chart/pipeline/sankey.js.map +1 -0
- package/dist/esm/pipeline/spec/chart/pipes/annotation/annotationPointOfDualAxis.js +11 -2
- package/dist/esm/pipeline/spec/chart/pipes/annotation/annotationPointOfDualAxis.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/dataset/datasetHierarchy.js +5 -2
- package/dist/esm/pipeline/spec/chart/pipes/dataset/datasetHierarchy.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/dataset/datasetHierarchySankey.d.ts +4 -0
- package/dist/esm/pipeline/spec/chart/pipes/dataset/datasetHierarchySankey.js +136 -0
- package/dist/esm/pipeline/spec/chart/pipes/dataset/datasetHierarchySankey.js.map +1 -0
- package/dist/esm/pipeline/spec/chart/pipes/dataset/datasetPivotHierarchy.d.ts +1 -0
- package/dist/esm/pipeline/spec/chart/pipes/dataset/datasetPivotHierarchy.js +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/dataset/datasetPivotHierarchy.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/dataset/datasetPivotHierarchySankey.d.ts +2 -0
- package/dist/esm/pipeline/spec/chart/pipes/dataset/datasetPivotHierarchySankey.js +44 -0
- package/dist/esm/pipeline/spec/chart/pipes/dataset/datasetPivotHierarchySankey.js.map +1 -0
- package/dist/esm/pipeline/spec/chart/pipes/dataset/datasetPivotSankey.d.ts +2 -0
- package/dist/esm/pipeline/spec/chart/pipes/dataset/datasetPivotSankey.js +50 -0
- package/dist/esm/pipeline/spec/chart/pipes/dataset/datasetPivotSankey.js.map +1 -0
- package/dist/esm/pipeline/spec/chart/pipes/dataset/datasetSankey.d.ts +16 -0
- package/dist/esm/pipeline/spec/chart/pipes/dataset/datasetSankey.js +97 -0
- package/dist/esm/pipeline/spec/chart/pipes/dataset/datasetSankey.js.map +1 -0
- package/dist/esm/pipeline/spec/chart/pipes/dataset/index.d.ts +4 -0
- package/dist/esm/pipeline/spec/chart/pipes/dataset/index.js +4 -0
- package/dist/esm/pipeline/spec/chart/pipes/init/circlePacking.js +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/init/circlePacking.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/init/hierarchySankey.d.ts +2 -0
- package/dist/esm/pipeline/spec/chart/pipes/init/hierarchySankey.js +32 -0
- package/dist/esm/pipeline/spec/chart/pipes/init/hierarchySankey.js.map +1 -0
- package/dist/esm/pipeline/spec/chart/pipes/init/index.d.ts +2 -0
- package/dist/esm/pipeline/spec/chart/pipes/init/index.js +2 -0
- package/dist/esm/pipeline/spec/chart/pipes/init/sankey.d.ts +2 -0
- package/dist/esm/pipeline/spec/chart/pipes/init/sankey.js +33 -0
- package/dist/esm/pipeline/spec/chart/pipes/init/sankey.js.map +1 -0
- package/dist/esm/pipeline/spec/chart/pipes/init/sunburst.js +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/init/sunburst.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/init/treeMap.js +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/init/treeMap.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/label/index.d.ts +2 -0
- package/dist/esm/pipeline/spec/chart/pipes/label/index.js +2 -0
- package/dist/esm/pipeline/spec/chart/pipes/label/label.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/label/labelHierarchySankey.d.ts +17 -0
- package/dist/esm/pipeline/spec/chart/pipes/label/labelHierarchySankey.js +92 -0
- package/dist/esm/pipeline/spec/chart/pipes/label/labelHierarchySankey.js.map +1 -0
- package/dist/esm/pipeline/spec/chart/pipes/label/labelSankey.d.ts +2 -0
- package/dist/esm/pipeline/spec/chart/pipes/label/labelSankey.js +78 -0
- package/dist/esm/pipeline/spec/chart/pipes/label/labelSankey.js.map +1 -0
- package/dist/esm/pipeline/spec/chart/pipes/label/labelTreeMapLeaf.js +4 -4
- package/dist/esm/pipeline/spec/chart/pipes/label/labelTreeMapLeaf.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/legend/pivotColorLegend.js +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/legend/pivotColorLegend.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/legend/pivotDiscreteLegend.js +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/legend/pivotDiscreteLegend.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/markStyle/index.d.ts +1 -0
- package/dist/esm/pipeline/spec/chart/pipes/markStyle/index.js +1 -0
- package/dist/esm/pipeline/spec/chart/pipes/markStyle/sankeyInteractive.d.ts +2 -0
- package/dist/esm/pipeline/spec/chart/pipes/markStyle/sankeyInteractive.js +33 -0
- package/dist/esm/pipeline/spec/chart/pipes/markStyle/sankeyInteractive.js.map +1 -0
- package/dist/esm/pipeline/spec/chart/pipes/tooltip/index.d.ts +2 -0
- package/dist/esm/pipeline/spec/chart/pipes/tooltip/index.js +2 -0
- package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipHierarchySankey.d.ts +2 -0
- package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipHierarchySankey.js +150 -0
- package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipHierarchySankey.js.map +1 -0
- package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipSankey.d.ts +2 -0
- package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipSankey.js +75 -0
- package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipSankey.js.map +1 -0
- package/dist/esm/pipeline/utils/chatType.d.ts +2 -0
- package/dist/esm/pipeline/utils/chatType.js +3 -1
- package/dist/esm/pipeline/utils/chatType.js.map +1 -1
- package/dist/esm/pipeline/utils/constant.d.ts +2 -0
- package/dist/esm/pipeline/utils/constant.js +2 -0
- package/dist/esm/pipeline/utils/constant.js.map +1 -1
- package/dist/esm/pipeline/utils/measures/typeGuard.js +1 -1
- package/dist/esm/pipeline/utils/measures/typeGuard.js.map +1 -1
- package/dist/esm/theme/dark/dark.js +3 -1
- package/dist/esm/theme/dark/dark.js.map +1 -1
- package/dist/esm/theme/dark/hierarchy.d.ts +132 -0
- package/dist/esm/theme/dark/hierarchy.js +3 -1
- package/dist/esm/theme/dark/hierarchy.js.map +1 -1
- package/dist/esm/theme/light/hierarchy.d.ts +132 -0
- package/dist/esm/theme/light/hierarchy.js +3 -1
- package/dist/esm/theme/light/hierarchy.js.map +1 -1
- package/dist/esm/theme/light/light.js +3 -1
- package/dist/esm/theme/light/light.js.map +1 -1
- package/dist/esm/types/chartType/area/zArea.d.ts +4 -0
- package/dist/esm/types/chartType/areaPercent/zAreaPercent.d.ts +4 -0
- package/dist/esm/types/chartType/bar/zBar.d.ts +4 -0
- package/dist/esm/types/chartType/barParallel/zBarParallel.d.ts +4 -0
- package/dist/esm/types/chartType/barPercent/zBarPercent.d.ts +4 -0
- package/dist/esm/types/chartType/boxPlot/zBoxPlot.d.ts +4 -0
- package/dist/esm/types/chartType/circlePacking/zCirclePacking.d.ts +2 -0
- package/dist/esm/types/chartType/column/zColumn.d.ts +4 -0
- package/dist/esm/types/chartType/columnParallel/zColumnParallel.d.ts +4 -0
- package/dist/esm/types/chartType/columnPercent/zColumnPercent.d.ts +4 -0
- package/dist/esm/types/chartType/donut/zDonut.d.ts +4 -0
- package/dist/esm/types/chartType/dualAxis/zDualAxis.d.ts +2 -0
- package/dist/esm/types/chartType/funnel/zFunnel.d.ts +4 -0
- package/dist/esm/types/chartType/heatmap/zHeatmap.d.ts +2 -0
- package/dist/esm/types/chartType/hierarchySankey/hierarchySankey.d.ts +92 -0
- package/dist/esm/types/chartType/hierarchySankey/hierarchySankey.js +0 -0
- package/dist/esm/types/chartType/hierarchySankey/index.d.ts +2 -0
- package/dist/esm/types/chartType/hierarchySankey/index.js +1 -0
- package/dist/esm/types/chartType/hierarchySankey/zHierarchySankey.d.ts +422 -0
- package/dist/esm/types/chartType/hierarchySankey/zHierarchySankey.js +20 -0
- package/dist/esm/types/chartType/hierarchySankey/zHierarchySankey.js.map +1 -0
- package/dist/esm/types/chartType/histogram/zHistogram.d.ts +4 -0
- package/dist/esm/types/chartType/index.d.ts +2 -0
- package/dist/esm/types/chartType/index.js +2 -0
- package/dist/esm/types/chartType/line/zLine.d.ts +4 -0
- package/dist/esm/types/chartType/pie/zPie.d.ts +4 -0
- package/dist/esm/types/chartType/pivotTable/zPivotTable.d.ts +2 -0
- package/dist/esm/types/chartType/raceBar/zRaceBar.d.ts +4 -0
- package/dist/esm/types/chartType/raceColumn/zRaceColumn.d.ts +4 -0
- package/dist/esm/types/chartType/raceDonut/zRaceDonut.d.ts +4 -0
- package/dist/esm/types/chartType/raceLine/zRaceLine.d.ts +4 -0
- package/dist/esm/types/chartType/racePie/zRacePie.d.ts +4 -0
- package/dist/esm/types/chartType/raceScatter/zRaceScatter.d.ts +4 -0
- package/dist/esm/types/chartType/radar/zRadar.d.ts +4 -0
- package/dist/esm/types/chartType/rose/zRose.d.ts +4 -0
- package/dist/esm/types/chartType/roseParallel/zRoseParallel.d.ts +4 -0
- package/dist/esm/types/chartType/sankey/index.d.ts +2 -0
- package/dist/esm/types/chartType/sankey/index.js +1 -0
- package/dist/esm/types/chartType/sankey/sankey.d.ts +91 -0
- package/dist/esm/types/chartType/sankey/sankey.js +0 -0
- package/dist/esm/types/chartType/sankey/zSankey.d.ts +422 -0
- package/dist/esm/types/chartType/sankey/zSankey.js +20 -0
- package/dist/esm/types/chartType/sankey/zSankey.js.map +1 -0
- package/dist/esm/types/chartType/scatter/zScatter.d.ts +4 -0
- package/dist/esm/types/chartType/sunburst/zSunburst.d.ts +2 -0
- package/dist/esm/types/chartType/table/zTable.d.ts +2 -0
- package/dist/esm/types/chartType/treeMap/zTreeMap.d.ts +2 -0
- package/dist/esm/types/properties/chartType/chartType.d.ts +3 -1
- package/dist/esm/types/properties/chartType/chartType.js +2 -0
- package/dist/esm/types/properties/chartType/chartType.js.map +1 -1
- package/dist/esm/types/properties/config/config.d.ts +602 -0
- package/dist/esm/types/properties/config/config.js +4 -0
- package/dist/esm/types/properties/config/config.js.map +1 -1
- package/dist/esm/types/properties/config/hierarchySankey.d.ts +303 -0
- package/dist/esm/types/properties/config/hierarchySankey.js +18 -0
- package/dist/esm/types/properties/config/hierarchySankey.js.map +1 -0
- package/dist/esm/types/properties/config/index.d.ts +2 -0
- package/dist/esm/types/properties/config/index.js +2 -0
- package/dist/esm/types/properties/config/sankey.d.ts +303 -0
- package/dist/esm/types/properties/config/sankey.js +18 -0
- package/dist/esm/types/properties/config/sankey.js.map +1 -0
- package/dist/esm/types/properties/datasetReshapeInfo/datasetReshapeInfo.d.ts +2 -0
- package/dist/esm/types/properties/datasetReshapeInfo/zDatasetReshapeInfo.d.ts +4 -0
- package/dist/esm/types/properties/datasetReshapeInfo/zDatasetReshapeInfo.js +2 -0
- package/dist/esm/types/properties/datasetReshapeInfo/zDatasetReshapeInfo.js.map +1 -1
- package/dist/esm/types/properties/dimensions/index.d.ts +1 -0
- package/dist/esm/types/properties/dimensions/sankeyDimension.d.ts +15 -0
- package/dist/esm/types/properties/dimensions/sankeyDimension.js +0 -0
- package/dist/esm/types/properties/dimensions/zDimensions.d.ts +6 -0
- package/dist/esm/types/properties/encoding/dimensionEncoding.d.ts +3 -1
- package/dist/esm/types/properties/encoding/encoding.d.ts +8 -0
- package/dist/esm/types/properties/encoding/zDimensionEncoding.d.ts +4 -0
- package/dist/esm/types/properties/encoding/zDimensionEncoding.js +6 -2
- package/dist/esm/types/properties/encoding/zDimensionEncoding.js.map +1 -1
- package/dist/esm/types/properties/encoding/zEncoding.d.ts +4 -0
- package/dist/esm/types/properties/encoding/zEncoding.js +5 -1
- package/dist/esm/types/properties/encoding/zEncoding.js.map +1 -1
- package/dist/esm/types/properties/measures/index.d.ts +1 -0
- package/dist/esm/types/properties/measures/sankeyMeasure.d.ts +11 -0
- package/dist/esm/types/properties/measures/sankeyMeasure.js +0 -0
- package/dist/esm/types/properties/theme/customTheme.d.ts +3752 -2548
- package/dist/esm/types/vseed.d.ts +2 -2
- package/dist/esm/types/zVseed.js +3 -1
- package/dist/esm/types/zVseed.js.map +1 -1
- package/dist/umd/index.js +1309 -182
- package/dist/umd/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -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, registerRaceDonut, registerRaceLine, registerRacePie, 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, registerHierarchySankey, registerHistogram, registerLine, registerPie, registerPivotTable, registerRaceBar, registerRaceColumn, registerRaceDonut, registerRaceLine, registerRacePie, registerRaceScatter, registerRadar, registerRose, registerRoseParallel, registerSankey, registerScatter, registerSunburst, registerTable, registerTreeMap } from "./chartType/index.js";
|
|
2
2
|
import { registerDarkTheme, registerLightTheme } from "./theme/index.js";
|
|
3
3
|
const registerAll = ()=>{
|
|
4
4
|
registerTable();
|
|
@@ -32,6 +32,8 @@ const registerAll = ()=>{
|
|
|
32
32
|
registerTreeMap();
|
|
33
33
|
registerSunburst();
|
|
34
34
|
registerCirclePacking();
|
|
35
|
+
registerHierarchySankey();
|
|
36
|
+
registerSankey();
|
|
35
37
|
registerLightTheme();
|
|
36
38
|
registerDarkTheme();
|
|
37
39
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builder/register/all.js","sources":["../../../../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":";;
|
|
1
|
+
{"version":3,"file":"builder/register/all.js","sources":["../../../../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 registerHierarchySankey,\n registerSankey,\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 registerHierarchySankey()\n registerSankey()\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","registerHierarchySankey","registerSankey","registerLightTheme","registerDarkTheme"],"mappings":";;AAyCO,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;IACAC;IACAC;IAEAC;IACAC;AACF"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { hierarchySankeyAdvancedPipeline, hierarchySankeySpecPipeline } from "../../../pipeline/index.js";
|
|
2
|
+
import { Builder } from "../../builder/index.js";
|
|
3
|
+
const registerHierarchySankey = ()=>{
|
|
4
|
+
Builder.registerAdvancedPipeline('hierarchySankey', hierarchySankeyAdvancedPipeline);
|
|
5
|
+
Builder.registerSpecPipeline('hierarchySankey', hierarchySankeySpecPipeline);
|
|
6
|
+
};
|
|
7
|
+
export { registerHierarchySankey };
|
|
8
|
+
|
|
9
|
+
//# sourceMappingURL=hierarchySankey.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"builder/register/chartType/hierarchySankey.js","sources":["../../../../../src/builder/register/chartType/hierarchySankey.ts"],"sourcesContent":["import { hierarchySankeyAdvancedPipeline, hierarchySankeySpecPipeline } from '../../../pipeline'\nimport { Builder } from '../../builder'\n\n/**\n * @description 注册 HierarchySankey Chart 的构建管线。\n */\nexport const registerHierarchySankey = () => {\n Builder.registerAdvancedPipeline('hierarchySankey', hierarchySankeyAdvancedPipeline)\n Builder.registerSpecPipeline('hierarchySankey', hierarchySankeySpecPipeline)\n}\n"],"names":["registerHierarchySankey","Builder","hierarchySankeyAdvancedPipeline","hierarchySankeySpecPipeline"],"mappings":";;AAMO,MAAMA,0BAA0B;IACrCC,QAAQ,wBAAwB,CAAC,mBAAmBC;IACpDD,QAAQ,oBAAoB,CAAC,mBAAmBE;AAClD"}
|
|
@@ -29,3 +29,5 @@ export { registerHistogram } from './histogram';
|
|
|
29
29
|
export { registerTreeMap } from './treeMap';
|
|
30
30
|
export { registerSunburst } from './sunburst';
|
|
31
31
|
export { registerCirclePacking } from './circlePacking';
|
|
32
|
+
export { registerHierarchySankey } from './hierarchySankey';
|
|
33
|
+
export { registerSankey } from './sankey';
|
|
@@ -29,3 +29,5 @@ export { registerHistogram } from "./histogram.js";
|
|
|
29
29
|
export { registerTreeMap } from "./treeMap.js";
|
|
30
30
|
export { registerSunburst } from "./sunburst.js";
|
|
31
31
|
export { registerCirclePacking } from "./circlePacking.js";
|
|
32
|
+
export { registerHierarchySankey } from "./hierarchySankey.js";
|
|
33
|
+
export { registerSankey } from "./sankey.js";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const registerSankey: () => void;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { sankeyAdvancedPipeline, sankeySpecPipeline } from "../../../pipeline/index.js";
|
|
2
|
+
import { Builder } from "../../builder/index.js";
|
|
3
|
+
const registerSankey = ()=>{
|
|
4
|
+
Builder.registerAdvancedPipeline('sankey', sankeyAdvancedPipeline);
|
|
5
|
+
Builder.registerSpecPipeline('sankey', sankeySpecPipeline);
|
|
6
|
+
};
|
|
7
|
+
export { registerSankey };
|
|
8
|
+
|
|
9
|
+
//# sourceMappingURL=sankey.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"builder/register/chartType/sankey.js","sources":["../../../../../src/builder/register/chartType/sankey.ts"],"sourcesContent":["import { sankeyAdvancedPipeline, sankeySpecPipeline } from '../../../pipeline'\nimport { Builder } from '../../builder'\n\nexport const registerSankey = () => {\n Builder.registerAdvancedPipeline('sankey', sankeyAdvancedPipeline)\n Builder.registerSpecPipeline('sankey', sankeySpecPipeline)\n}\n"],"names":["registerSankey","Builder","sankeyAdvancedPipeline","sankeySpecPipeline"],"mappings":";;AAGO,MAAMA,iBAAiB;IAC5BC,QAAQ,wBAAwB,CAAC,UAAUC;IAC3CD,QAAQ,oBAAoB,CAAC,UAAUE;AACzC"}
|
|
@@ -20,6 +20,8 @@ export declare const PlayerEncoding = "__Dim_Player__";
|
|
|
20
20
|
export declare const ColorEncoding = "__Dim_Color__";
|
|
21
21
|
export declare const ColorIdEncoding = "__Dim_ColorId__";
|
|
22
22
|
export declare const HierarchyEncoding = "__Dim_Hierarchy__";
|
|
23
|
+
export declare const SourceEncoding = "__Dim_Source__";
|
|
24
|
+
export declare const TargetEncoding = "__Dim_Target__";
|
|
23
25
|
export declare const BoxPlotPivotIndicator = "__BoxPlot_Pivot_Indicator__";
|
|
24
26
|
export declare const Q1MeasureValue = "__Q1__";
|
|
25
27
|
export declare const Q3MeasureValue = "__Q3__";
|
|
@@ -20,6 +20,8 @@ const PlayerEncoding = '__Dim_Player__';
|
|
|
20
20
|
const ColorEncoding = '__Dim_Color__';
|
|
21
21
|
const ColorIdEncoding = '__Dim_ColorId__';
|
|
22
22
|
const HierarchyEncoding = '__Dim_Hierarchy__';
|
|
23
|
+
const SourceEncoding = '__Dim_Source__';
|
|
24
|
+
const TargetEncoding = '__Dim_Target__';
|
|
23
25
|
const BoxPlotPivotIndicator = '__BoxPlot_Pivot_Indicator__';
|
|
24
26
|
const Q1MeasureValue = '__Q1__';
|
|
25
27
|
const Q3MeasureValue = '__Q3__';
|
|
@@ -32,6 +34,6 @@ const BinEndMeasureId = '__BinEnd__';
|
|
|
32
34
|
const BinCountMeasureId = '__BinCount__';
|
|
33
35
|
const BinPercentageMeasureId = '__BinPercentage__';
|
|
34
36
|
const InnerRowIndex = '__row_index';
|
|
35
|
-
export { AngleEncoding, BinCountMeasureId, BinEndMeasureId, BinPercentageMeasureId, BinStartMeasureId, BoxPlotPivotIndicator, ColorEncoding, ColorIdEncoding, DetailEncoding, DimAxisType, FoldMeasureId, FoldMeasureName, FoldMeasureValue, FoldPrimaryMeasureValue, FoldSecondaryMeasureValue, FoldXMeasureId, FoldXMeasureValue, FoldYMeasureId, FoldYMeasureValue, HierarchyEncoding, InnerRowIndex, LowerWhisker, MeasureId, MeasureName, MedianMeasureId, ORIGINAL_DATA, OutliersMeasureId, PlayerEncoding, Q1MeasureValue, Q3MeasureValue, Separator, UpperWhisker, XEncoding, YEncoding };
|
|
37
|
+
export { AngleEncoding, BinCountMeasureId, BinEndMeasureId, BinPercentageMeasureId, BinStartMeasureId, BoxPlotPivotIndicator, ColorEncoding, ColorIdEncoding, DetailEncoding, DimAxisType, FoldMeasureId, FoldMeasureName, FoldMeasureValue, FoldPrimaryMeasureValue, FoldSecondaryMeasureValue, FoldXMeasureId, FoldXMeasureValue, FoldYMeasureId, FoldYMeasureValue, HierarchyEncoding, InnerRowIndex, LowerWhisker, MeasureId, MeasureName, MedianMeasureId, ORIGINAL_DATA, OutliersMeasureId, PlayerEncoding, Q1MeasureValue, Q3MeasureValue, Separator, SourceEncoding, TargetEncoding, UpperWhisker, XEncoding, YEncoding };
|
|
36
38
|
|
|
37
39
|
//# sourceMappingURL=constant.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dataReshape/constant.js","sources":["../../../src/dataReshape/constant.ts"],"sourcesContent":["// Reshape\nexport const ORIGINAL_DATA = '__OriginalData__'\nexport const Separator = '-'\n\n// Measures\nexport const FoldMeasureName = '__MeaName__'\nexport const FoldMeasureId = '__MeaId__'\nexport const FoldMeasureValue = '__MeaValue__'\nexport const MeasureId = FoldMeasureId\nexport const MeasureName = FoldMeasureName\n\n// Measures For DualAxis\nexport const FoldPrimaryMeasureValue = '__MeaPrimaryValue__'\nexport const FoldSecondaryMeasureValue = '__MeaSecondaryValue__'\nexport const DimAxisType = '__Dim_AxisType__'\n\n// Measures For Scatter\nexport const FoldXMeasureValue = '__MeaXValue__'\nexport const FoldYMeasureValue = '__MeaYValue__'\nexport const FoldXMeasureId = '__MeaXId__'\nexport const FoldYMeasureId = '__MeaYId__'\n// Encoding\nexport const XEncoding = '__Dim_X__'\nexport const YEncoding = '__Dim_Y__'\nexport const AngleEncoding = '__Dim_Angle__'\nexport const DetailEncoding = '__Dim_Detail__'\nexport const PlayerEncoding = '__Dim_Player__'\nexport const ColorEncoding = '__Dim_Color__'\nexport const ColorIdEncoding = '__Dim_ColorId__'\nexport const HierarchyEncoding = '__Dim_Hierarchy__'\n\n// Measures For boxPlot\nexport const BoxPlotPivotIndicator = '__BoxPlot_Pivot_Indicator__'\nexport const Q1MeasureValue = '__Q1__'\nexport const Q3MeasureValue = '__Q3__'\nexport const LowerWhisker = '__Lower_Whisker__'\nexport const UpperWhisker = '__Upper_Whisker__'\nexport const OutliersMeasureId = '__Outliers__'\nexport const MedianMeasureId = '__Meadian__'\n\n// Measures For Histogram\nexport const BinStartMeasureId = '__BinStart__'\nexport const BinEndMeasureId = '__BinEnd__'\nexport const BinCountMeasureId = '__BinCount__'\nexport const BinPercentageMeasureId = '__BinPercentage__'\n\n// Inner row index for code execute\nexport const InnerRowIndex = '__row_index'\n"],"names":["ORIGINAL_DATA","Separator","FoldMeasureName","FoldMeasureId","FoldMeasureValue","MeasureId","MeasureName","FoldPrimaryMeasureValue","FoldSecondaryMeasureValue","DimAxisType","FoldXMeasureValue","FoldYMeasureValue","FoldXMeasureId","FoldYMeasureId","XEncoding","YEncoding","AngleEncoding","DetailEncoding","PlayerEncoding","ColorEncoding","ColorIdEncoding","HierarchyEncoding","BoxPlotPivotIndicator","Q1MeasureValue","Q3MeasureValue","LowerWhisker","UpperWhisker","OutliersMeasureId","MedianMeasureId","BinStartMeasureId","BinEndMeasureId","BinCountMeasureId","BinPercentageMeasureId","InnerRowIndex"],"mappings":"AACO,MAAMA,gBAAgB;AACtB,MAAMC,YAAY;AAGlB,MAAMC,kBAAkB;AACxB,MAAMC,gBAAgB;AACtB,MAAMC,mBAAmB;AACzB,MAAMC,YAAYF;AAClB,MAAMG,cAAcJ;AAGpB,MAAMK,0BAA0B;AAChC,MAAMC,4BAA4B;AAClC,MAAMC,cAAc;AAGpB,MAAMC,oBAAoB;AAC1B,MAAMC,oBAAoB;AAC1B,MAAMC,iBAAiB;AACvB,MAAMC,iBAAiB;AAEvB,MAAMC,YAAY;AAClB,MAAMC,YAAY;AAClB,MAAMC,gBAAgB;AACtB,MAAMC,iBAAiB;AACvB,MAAMC,iBAAiB;AACvB,MAAMC,gBAAgB;AACtB,MAAMC,kBAAkB;AACxB,MAAMC,oBAAoB;
|
|
1
|
+
{"version":3,"file":"dataReshape/constant.js","sources":["../../../src/dataReshape/constant.ts"],"sourcesContent":["// Reshape\nexport const ORIGINAL_DATA = '__OriginalData__'\nexport const Separator = '-'\n\n// Measures\nexport const FoldMeasureName = '__MeaName__'\nexport const FoldMeasureId = '__MeaId__'\nexport const FoldMeasureValue = '__MeaValue__'\nexport const MeasureId = FoldMeasureId\nexport const MeasureName = FoldMeasureName\n\n// Measures For DualAxis\nexport const FoldPrimaryMeasureValue = '__MeaPrimaryValue__'\nexport const FoldSecondaryMeasureValue = '__MeaSecondaryValue__'\nexport const DimAxisType = '__Dim_AxisType__'\n\n// Measures For Scatter\nexport const FoldXMeasureValue = '__MeaXValue__'\nexport const FoldYMeasureValue = '__MeaYValue__'\nexport const FoldXMeasureId = '__MeaXId__'\nexport const FoldYMeasureId = '__MeaYId__'\n// Encoding\nexport const XEncoding = '__Dim_X__'\nexport const YEncoding = '__Dim_Y__'\nexport const AngleEncoding = '__Dim_Angle__'\nexport const DetailEncoding = '__Dim_Detail__'\nexport const PlayerEncoding = '__Dim_Player__'\nexport const ColorEncoding = '__Dim_Color__'\nexport const ColorIdEncoding = '__Dim_ColorId__'\nexport const HierarchyEncoding = '__Dim_Hierarchy__'\nexport const SourceEncoding = '__Dim_Source__'\nexport const TargetEncoding = '__Dim_Target__'\n\n// Measures For boxPlot\nexport const BoxPlotPivotIndicator = '__BoxPlot_Pivot_Indicator__'\nexport const Q1MeasureValue = '__Q1__'\nexport const Q3MeasureValue = '__Q3__'\nexport const LowerWhisker = '__Lower_Whisker__'\nexport const UpperWhisker = '__Upper_Whisker__'\nexport const OutliersMeasureId = '__Outliers__'\nexport const MedianMeasureId = '__Meadian__'\n\n// Measures For Histogram\nexport const BinStartMeasureId = '__BinStart__'\nexport const BinEndMeasureId = '__BinEnd__'\nexport const BinCountMeasureId = '__BinCount__'\nexport const BinPercentageMeasureId = '__BinPercentage__'\n\n// Inner row index for code execute\nexport const InnerRowIndex = '__row_index'\n"],"names":["ORIGINAL_DATA","Separator","FoldMeasureName","FoldMeasureId","FoldMeasureValue","MeasureId","MeasureName","FoldPrimaryMeasureValue","FoldSecondaryMeasureValue","DimAxisType","FoldXMeasureValue","FoldYMeasureValue","FoldXMeasureId","FoldYMeasureId","XEncoding","YEncoding","AngleEncoding","DetailEncoding","PlayerEncoding","ColorEncoding","ColorIdEncoding","HierarchyEncoding","SourceEncoding","TargetEncoding","BoxPlotPivotIndicator","Q1MeasureValue","Q3MeasureValue","LowerWhisker","UpperWhisker","OutliersMeasureId","MedianMeasureId","BinStartMeasureId","BinEndMeasureId","BinCountMeasureId","BinPercentageMeasureId","InnerRowIndex"],"mappings":"AACO,MAAMA,gBAAgB;AACtB,MAAMC,YAAY;AAGlB,MAAMC,kBAAkB;AACxB,MAAMC,gBAAgB;AACtB,MAAMC,mBAAmB;AACzB,MAAMC,YAAYF;AAClB,MAAMG,cAAcJ;AAGpB,MAAMK,0BAA0B;AAChC,MAAMC,4BAA4B;AAClC,MAAMC,cAAc;AAGpB,MAAMC,oBAAoB;AAC1B,MAAMC,oBAAoB;AAC1B,MAAMC,iBAAiB;AACvB,MAAMC,iBAAiB;AAEvB,MAAMC,YAAY;AAClB,MAAMC,YAAY;AAClB,MAAMC,gBAAgB;AACtB,MAAMC,iBAAiB;AACvB,MAAMC,iBAAiB;AACvB,MAAMC,gBAAgB;AACtB,MAAMC,kBAAkB;AACxB,MAAMC,oBAAoB;AAC1B,MAAMC,iBAAiB;AACvB,MAAMC,iBAAiB;AAGvB,MAAMC,wBAAwB;AAC9B,MAAMC,iBAAiB;AACvB,MAAMC,iBAAiB;AACvB,MAAMC,eAAe;AACrB,MAAMC,eAAe;AACrB,MAAMC,oBAAoB;AAC1B,MAAMC,kBAAkB;AAGxB,MAAMC,oBAAoB;AAC1B,MAAMC,kBAAkB;AACxB,MAAMC,oBAAoB;AAC1B,MAAMC,yBAAyB;AAG/B,MAAMC,gBAAgB"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AngleEncoding, ColorEncoding, ColorIdEncoding, DetailEncoding, HierarchyEncoding, MeasureId, MeasureName, PlayerEncoding, XEncoding, YEncoding } from "./constant.js";
|
|
1
|
+
import { AngleEncoding, ColorEncoding, ColorIdEncoding, DetailEncoding, HierarchyEncoding, MeasureId, MeasureName, PlayerEncoding, SourceEncoding, TargetEncoding, XEncoding, YEncoding } from "./constant.js";
|
|
2
2
|
const unfoldDimensions = (dataset, dimensions, encoding, options)=>{
|
|
3
3
|
const { separator, formatDimensionValue } = options;
|
|
4
4
|
const unfoldInfo = {
|
|
@@ -10,10 +10,12 @@ const unfoldDimensions = (dataset, dimensions, encoding, options)=>{
|
|
|
10
10
|
encodingColorId: ColorIdEncoding,
|
|
11
11
|
encodingPlayer: PlayerEncoding,
|
|
12
12
|
encodingHierarchy: HierarchyEncoding,
|
|
13
|
+
encodingSource: SourceEncoding,
|
|
14
|
+
encodingTarget: TargetEncoding,
|
|
13
15
|
colorItems: [],
|
|
14
16
|
colorIdMap: {}
|
|
15
17
|
};
|
|
16
|
-
const { color, x, y, detail, angle, player, hierarchy } = encoding;
|
|
18
|
+
const { color, x, y, detail, angle, player, hierarchy, source, target } = encoding;
|
|
17
19
|
const angleDimensions = angle ? dimensions.filter((dim)=>angle.includes(dim.id)) : [];
|
|
18
20
|
const xDimensions = x ? dimensions.filter((dim)=>x.includes(dim.id)) : [];
|
|
19
21
|
const yDimensions = y ? dimensions.filter((dim)=>y.includes(dim.id)) : [];
|
|
@@ -21,6 +23,8 @@ const unfoldDimensions = (dataset, dimensions, encoding, options)=>{
|
|
|
21
23
|
const detailDimensions = detail ? dimensions.filter((dim)=>detail.includes(dim.id)) : [];
|
|
22
24
|
const playerDimensions = player ? dimensions.filter((dim)=>player.includes(dim.id)) : [];
|
|
23
25
|
const hierarchyDimensions = hierarchy ? dimensions.filter((dim)=>hierarchy.includes(dim.id)) : [];
|
|
26
|
+
const sourceDimensions = source ? dimensions.filter((dim)=>source.includes(dim.id)) : [];
|
|
27
|
+
const targetDimensions = target ? dimensions.filter((dim)=>target.includes(dim.id)) : [];
|
|
24
28
|
const colorItems = new Set();
|
|
25
29
|
const colorIdMap = {};
|
|
26
30
|
for(let i = 0; i < dataset.length; i++){
|
|
@@ -32,6 +36,8 @@ const unfoldDimensions = (dataset, dimensions, encoding, options)=>{
|
|
|
32
36
|
applyEncoding(DetailEncoding, detailDimensions, datum, separator);
|
|
33
37
|
applyEncoding(PlayerEncoding, playerDimensions, datum, separator);
|
|
34
38
|
applyEncoding(HierarchyEncoding, hierarchyDimensions, datum, separator);
|
|
39
|
+
applyEncoding(SourceEncoding, sourceDimensions, datum, separator);
|
|
40
|
+
applyEncoding(TargetEncoding, targetDimensions, datum, separator);
|
|
35
41
|
if (!colorDimensions.length || !datum[ColorEncoding]) continue;
|
|
36
42
|
const colorId = String(datum[ColorEncoding] ?? '');
|
|
37
43
|
datum[ColorIdEncoding] = colorId;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dataReshape/unfoldDimensions.js","sources":["../../../src/dataReshape/unfoldDimensions.ts"],"sourcesContent":["import type { Dataset, Datum, Dimension, Encoding, UnfoldInfo } from 'src/types'\nimport {\n AngleEncoding,\n XEncoding,\n YEncoding,\n ColorEncoding,\n DetailEncoding,\n ColorIdEncoding,\n MeasureId,\n MeasureName,\n PlayerEncoding,\n HierarchyEncoding,\n} from './constant'\n\n/**\n * @description 展开并合并视觉通道的维度, 在foldMeasures后合并维度, 所以不需要进行笛卡尔积\n * @param dataset 原始数据集\n * @param dimensions 维度\n * @param encoding 编码\n * @param options\n * @returns\n */\nexport const unfoldDimensions = (\n dataset: Dataset,\n dimensions: Dimension[],\n encoding: Encoding,\n options: {\n foldMeasureId: string\n separator: string\n colorItemAsId: boolean\n formatDimensionValue?: (dimension: Dimension, value: unknown) => string\n },\n): {\n dataset: Dataset\n unfoldInfo: UnfoldInfo\n} => {\n const { separator, formatDimensionValue } = options\n\n const unfoldInfo: UnfoldInfo = {\n encodingAngle: AngleEncoding,\n encodingX: XEncoding,\n encodingY: YEncoding,\n encodingDetail: DetailEncoding,\n encodingColor: ColorEncoding,\n encodingColorId: ColorIdEncoding,\n encodingPlayer: PlayerEncoding,\n encodingHierarchy: HierarchyEncoding,\n\n colorItems: [],\n colorIdMap: {},\n }\n\n // 每个通道对应的维度\n const { color, x, y, detail, angle, player, hierarchy } = encoding\n const angleDimensions = angle ? dimensions.filter((dim) => angle.includes(dim.id)) : []\n const xDimensions = x ? dimensions.filter((dim) => x.includes(dim.id)) : []\n const yDimensions = y ? dimensions.filter((dim) => y.includes(dim.id)) : []\n const colorDimensions = color ? dimensions.filter((dim) => color.includes(dim.id)) : []\n const detailDimensions = detail ? dimensions.filter((dim) => detail.includes(dim.id)) : []\n const playerDimensions = player ? dimensions.filter((dim) => player.includes(dim.id)) : []\n const hierarchyDimensions = hierarchy ? dimensions.filter((dim) => hierarchy.includes(dim.id)) : []\n\n // 离散图例项\n const colorItems = new Set<string>()\n const colorIdMap: Record<string, { id: string; alias: string }> = {}\n\n // 遍历数据集, 按通道合并维度\n for (let i = 0; i < dataset.length; i++) {\n // 应用编码至Datum上\n const datum = dataset[i]\n\n /**\n * !important 这是全仓库, 最最最重要的五行代码, 贯穿VSeed整个生命周期, 是化繁为简的绝对核心\n * 1. 点睛之笔: 呼应foldMeasures, 此时此刻的datum一定是单点数据, 维度合并不可能造成任何冲突.\n * 2. 数据即通道\n * 3. 利用需要合并的维度, 直接进行join, 即可生成新的维度, 与指标彻底解耦;\n * 4. 以下通道均在一次遍历中完成, 不存在性能问题\n * 5. 以下通道均可放入多个维度\n */\n applyEncoding(AngleEncoding, angleDimensions, datum, separator)\n applyEncoding(XEncoding, xDimensions, datum, separator)\n applyEncoding(YEncoding, yDimensions, datum, separator)\n applyEncoding(ColorEncoding, colorDimensions, datum, separator)\n applyEncoding(DetailEncoding, detailDimensions, datum, separator)\n applyEncoding(PlayerEncoding, playerDimensions, datum, separator)\n applyEncoding(HierarchyEncoding, hierarchyDimensions, datum, separator)\n\n // 处理离散的颜色图例\n if (!colorDimensions.length || !datum[ColorEncoding]) {\n // 无颜色通道, 则跳过\n continue\n }\n const colorId = String(datum[ColorEncoding] ?? '')\n\n datum[ColorIdEncoding] = colorId\n\n colorIdMap[colorId] = {\n id: colorId,\n alias: getColorAliasItem(ColorEncoding, colorDimensions, datum, separator, formatDimensionValue),\n }\n colorItems.add(colorId)\n }\n\n unfoldInfo.colorItems = Array.from(colorItems)\n unfoldInfo.colorIdMap = colorIdMap\n\n return {\n dataset,\n unfoldInfo,\n }\n}\n\n/**\n * @description 应用编码至数据中, 此方法会原地修改数据\n * @param encoding 编码\n * @param dimensions 维度\n * @param datum 数据\n * @param separator 分隔符\n * @returns undefined\n */\nconst applyEncoding = (encoding: string, dimensions: Dimension[], datum: Datum, separator: string) => {\n if (encoding && dimensions.length) {\n datum[encoding] = dimensions.map((dim) => String(datum[dim.id])).join(separator)\n }\n}\n\nconst getColorAliasItem = (\n encoding: string,\n dimensions: Dimension[],\n datum: Datum,\n separator: string,\n formatDimensionValue?: (dimension: Dimension, value: unknown) => string,\n) => {\n if (encoding && dimensions.length) {\n return dimensions\n .map((dim) => {\n if (dim.id === MeasureId) {\n return String(datum[MeasureName])\n }\n\n const rawValue = datum[dim.id]\n return formatDimensionValue ? formatDimensionValue(dim, rawValue) : String(rawValue)\n })\n .join(separator)\n }\n return ''\n}\n"],"names":["unfoldDimensions","dataset","dimensions","encoding","options","separator","formatDimensionValue","unfoldInfo","AngleEncoding","XEncoding","YEncoding","DetailEncoding","ColorEncoding","ColorIdEncoding","PlayerEncoding","HierarchyEncoding","color","x","y","detail","angle","player","hierarchy","angleDimensions","dim","xDimensions","yDimensions","colorDimensions","detailDimensions","playerDimensions","hierarchyDimensions","colorItems","Set","colorIdMap","i","datum","applyEncoding","colorId","String","getColorAliasItem","Array","MeasureId","MeasureName","rawValue"],"mappings":";
|
|
1
|
+
{"version":3,"file":"dataReshape/unfoldDimensions.js","sources":["../../../src/dataReshape/unfoldDimensions.ts"],"sourcesContent":["import type { Dataset, Datum, Dimension, Encoding, UnfoldInfo } from 'src/types'\nimport {\n AngleEncoding,\n XEncoding,\n YEncoding,\n ColorEncoding,\n DetailEncoding,\n ColorIdEncoding,\n MeasureId,\n MeasureName,\n PlayerEncoding,\n HierarchyEncoding,\n SourceEncoding,\n TargetEncoding,\n} from './constant'\n\n/**\n * @description 展开并合并视觉通道的维度, 在foldMeasures后合并维度, 所以不需要进行笛卡尔积\n * @param dataset 原始数据集\n * @param dimensions 维度\n * @param encoding 编码\n * @param options\n * @returns\n */\nexport const unfoldDimensions = (\n dataset: Dataset,\n dimensions: Dimension[],\n encoding: Encoding,\n options: {\n foldMeasureId: string\n separator: string\n colorItemAsId: boolean\n formatDimensionValue?: (dimension: Dimension, value: unknown) => string\n },\n): {\n dataset: Dataset\n unfoldInfo: UnfoldInfo\n} => {\n const { separator, formatDimensionValue } = options\n\n const unfoldInfo: UnfoldInfo = {\n encodingAngle: AngleEncoding,\n encodingX: XEncoding,\n encodingY: YEncoding,\n encodingDetail: DetailEncoding,\n encodingColor: ColorEncoding,\n encodingColorId: ColorIdEncoding,\n encodingPlayer: PlayerEncoding,\n encodingHierarchy: HierarchyEncoding,\n encodingSource: SourceEncoding,\n encodingTarget: TargetEncoding,\n\n colorItems: [],\n colorIdMap: {},\n }\n\n // 每个通道对应的维度\n const { color, x, y, detail, angle, player, hierarchy, source, target } = encoding\n const angleDimensions = angle ? dimensions.filter((dim) => angle.includes(dim.id)) : []\n const xDimensions = x ? dimensions.filter((dim) => x.includes(dim.id)) : []\n const yDimensions = y ? dimensions.filter((dim) => y.includes(dim.id)) : []\n const colorDimensions = color ? dimensions.filter((dim) => color.includes(dim.id)) : []\n const detailDimensions = detail ? dimensions.filter((dim) => detail.includes(dim.id)) : []\n const playerDimensions = player ? dimensions.filter((dim) => player.includes(dim.id)) : []\n const hierarchyDimensions = hierarchy ? dimensions.filter((dim) => hierarchy.includes(dim.id)) : []\n const sourceDimensions = source ? dimensions.filter((dim) => source.includes(dim.id)) : []\n const targetDimensions = target ? dimensions.filter((dim) => target.includes(dim.id)) : []\n\n // 离散图例项\n const colorItems = new Set<string>()\n const colorIdMap: Record<string, { id: string; alias: string }> = {}\n\n // 遍历数据集, 按通道合并维度\n for (let i = 0; i < dataset.length; i++) {\n // 应用编码至Datum上\n const datum = dataset[i]\n\n /**\n * !important 这是全仓库, 最最最重要的五行代码, 贯穿VSeed整个生命周期, 是化繁为简的绝对核心\n * 1. 点睛之笔: 呼应foldMeasures, 此时此刻的datum一定是单点数据, 维度合并不可能造成任何冲突.\n * 2. 数据即通道\n * 3. 利用需要合并的维度, 直接进行join, 即可生成新的维度, 与指标彻底解耦;\n * 4. 以下通道均在一次遍历中完成, 不存在性能问题\n * 5. 以下通道均可放入多个维度\n */\n applyEncoding(AngleEncoding, angleDimensions, datum, separator)\n applyEncoding(XEncoding, xDimensions, datum, separator)\n applyEncoding(YEncoding, yDimensions, datum, separator)\n applyEncoding(ColorEncoding, colorDimensions, datum, separator)\n applyEncoding(DetailEncoding, detailDimensions, datum, separator)\n applyEncoding(PlayerEncoding, playerDimensions, datum, separator)\n applyEncoding(HierarchyEncoding, hierarchyDimensions, datum, separator)\n applyEncoding(SourceEncoding, sourceDimensions, datum, separator)\n applyEncoding(TargetEncoding, targetDimensions, datum, separator)\n\n // 处理离散的颜色图例\n if (!colorDimensions.length || !datum[ColorEncoding]) {\n // 无颜色通道, 则跳过\n continue\n }\n const colorId = String(datum[ColorEncoding] ?? '')\n\n datum[ColorIdEncoding] = colorId\n\n colorIdMap[colorId] = {\n id: colorId,\n alias: getColorAliasItem(ColorEncoding, colorDimensions, datum, separator, formatDimensionValue),\n }\n colorItems.add(colorId)\n }\n\n unfoldInfo.colorItems = Array.from(colorItems)\n unfoldInfo.colorIdMap = colorIdMap\n\n return {\n dataset,\n unfoldInfo,\n }\n}\n\n/**\n * @description 应用编码至数据中, 此方法会原地修改数据\n * @param encoding 编码\n * @param dimensions 维度\n * @param datum 数据\n * @param separator 分隔符\n * @returns undefined\n */\nconst applyEncoding = (encoding: string, dimensions: Dimension[], datum: Datum, separator: string) => {\n if (encoding && dimensions.length) {\n datum[encoding] = dimensions.map((dim) => String(datum[dim.id])).join(separator)\n }\n}\n\nconst getColorAliasItem = (\n encoding: string,\n dimensions: Dimension[],\n datum: Datum,\n separator: string,\n formatDimensionValue?: (dimension: Dimension, value: unknown) => string,\n) => {\n if (encoding && dimensions.length) {\n return dimensions\n .map((dim) => {\n if (dim.id === MeasureId) {\n return String(datum[MeasureName])\n }\n\n const rawValue = datum[dim.id]\n return formatDimensionValue ? formatDimensionValue(dim, rawValue) : String(rawValue)\n })\n .join(separator)\n }\n return ''\n}\n"],"names":["unfoldDimensions","dataset","dimensions","encoding","options","separator","formatDimensionValue","unfoldInfo","AngleEncoding","XEncoding","YEncoding","DetailEncoding","ColorEncoding","ColorIdEncoding","PlayerEncoding","HierarchyEncoding","SourceEncoding","TargetEncoding","color","x","y","detail","angle","player","hierarchy","source","target","angleDimensions","dim","xDimensions","yDimensions","colorDimensions","detailDimensions","playerDimensions","hierarchyDimensions","sourceDimensions","targetDimensions","colorItems","Set","colorIdMap","i","datum","applyEncoding","colorId","String","getColorAliasItem","Array","MeasureId","MeasureName","rawValue"],"mappings":"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"}
|
package/dist/esm/index.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ export { Builder } from './builder';
|
|
|
2
2
|
export { registerAll } from './builder/register/all';
|
|
3
3
|
export { updateAdvanced, updateSpec } from './builder/register/custom';
|
|
4
4
|
export { registerDarkTheme, registerLightTheme, registerCustomTheme } from './builder/register/theme';
|
|
5
|
-
export { registerArea, registerAreaPercent, registerBar, registerBarParallel, registerBarPercent, registerColumn, registerColumnParallel, registerColumnPercent, registerLine, registerPie, registerDonut, registerRose, registerRoseParallel, registerFunnel, registerScatter, registerTable, registerPivotTable, registerHeatmap, registerRadar, registerBoxPlot, registerHistogram, registerDualAxis, } from './builder/register/chartType';
|
|
5
|
+
export { registerArea, registerAreaPercent, registerBar, registerBarParallel, registerBarPercent, registerColumn, registerColumnParallel, registerColumnPercent, registerLine, registerPie, registerDonut, registerRose, registerRoseParallel, registerFunnel, registerScatter, registerTable, registerPivotTable, registerHeatmap, registerRadar, registerBoxPlot, registerHistogram, registerDualAxis, registerHierarchySankey, registerSankey, } from './builder/register/chartType';
|
|
6
6
|
export * from './pipeline';
|
|
7
7
|
export * from './types';
|
|
8
8
|
export * from './dataReshape';
|
package/dist/esm/index.js
CHANGED
|
@@ -8,4 +8,4 @@ export { Builder } from "./builder/index.js";
|
|
|
8
8
|
export { registerAll } from "./builder/register/all.js";
|
|
9
9
|
export { updateAdvanced, updateSpec } from "./builder/register/custom.js";
|
|
10
10
|
export { registerCustomTheme, registerDarkTheme, registerLightTheme } from "./builder/register/theme/index.js";
|
|
11
|
-
export { registerArea, registerAreaPercent, registerBar, registerBarParallel, registerBarPercent, registerBoxPlot, registerColumn, registerColumnParallel, registerColumnPercent, registerDonut, registerDualAxis, registerFunnel, registerHeatmap, registerHistogram, registerLine, registerPie, registerPivotTable, registerRadar, registerRose, registerRoseParallel, registerScatter, registerTable } from "./builder/register/chartType/index.js";
|
|
11
|
+
export { registerArea, registerAreaPercent, registerBar, registerBarParallel, registerBarPercent, registerBoxPlot, registerColumn, registerColumnParallel, registerColumnPercent, registerDonut, registerDualAxis, registerFunnel, registerHeatmap, registerHierarchySankey, registerHistogram, registerLine, registerPie, registerPivotTable, registerRadar, registerRose, registerRoseParallel, registerSankey, registerScatter, registerTable } from "./builder/register/chartType/index.js";
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { annotation, buildMeasures, defaultDimensions, defaultEncodingForHierarchy, defaultMeasureId, defaultMeasures, encodingAdapter, encodingForHierarchy, hierarchySankeyConfig, initAdvancedVSeed, page, pickDimensionsForReshape, pivotAdapter, pivotReshapeWithEncoding, reshapeWithEncoding, theme } from "../pipes/index.js";
|
|
2
|
+
const hierarchySankeyAdvancedPipeline = [
|
|
3
|
+
page,
|
|
4
|
+
initAdvancedVSeed,
|
|
5
|
+
defaultMeasures,
|
|
6
|
+
defaultDimensions,
|
|
7
|
+
defaultMeasureId,
|
|
8
|
+
encodingAdapter([
|
|
9
|
+
buildMeasures([
|
|
10
|
+
'size',
|
|
11
|
+
'detail'
|
|
12
|
+
]),
|
|
13
|
+
defaultEncodingForHierarchy
|
|
14
|
+
], [
|
|
15
|
+
buildMeasures([
|
|
16
|
+
'size',
|
|
17
|
+
'detail'
|
|
18
|
+
]),
|
|
19
|
+
encodingForHierarchy,
|
|
20
|
+
pickDimensionsForReshape
|
|
21
|
+
]),
|
|
22
|
+
pivotAdapter([
|
|
23
|
+
reshapeWithEncoding
|
|
24
|
+
], [
|
|
25
|
+
pivotReshapeWithEncoding
|
|
26
|
+
]),
|
|
27
|
+
hierarchySankeyConfig,
|
|
28
|
+
theme,
|
|
29
|
+
annotation
|
|
30
|
+
];
|
|
31
|
+
export { hierarchySankeyAdvancedPipeline };
|
|
32
|
+
|
|
33
|
+
//# sourceMappingURL=hierarchySankey.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pipeline/advanced/chart/pipeline/hierarchySankey.js","sources":["../../../../../../src/pipeline/advanced/chart/pipeline/hierarchySankey.ts"],"sourcesContent":["import type { AdvancedPipeline } from 'src/types'\nimport {\n initAdvancedVSeed,\n theme,\n annotation,\n encodingForHierarchy,\n buildMeasures,\n defaultMeasures,\n defaultDimensions,\n defaultMeasureId,\n encodingAdapter,\n defaultEncodingForHierarchy,\n pickDimensionsForReshape,\n page,\n hierarchySankeyConfig,\n pivotAdapter,\n reshapeWithEncoding,\n pivotReshapeWithEncoding,\n} from '../pipes'\n\nexport const hierarchySankeyAdvancedPipeline: AdvancedPipeline = [\n page,\n initAdvancedVSeed,\n defaultMeasures,\n defaultDimensions,\n defaultMeasureId,\n\n encodingAdapter(\n [buildMeasures(['size', 'detail']), defaultEncodingForHierarchy],\n [buildMeasures(['size', 'detail']), encodingForHierarchy, pickDimensionsForReshape],\n ),\n pivotAdapter([reshapeWithEncoding], [pivotReshapeWithEncoding]),\n\n hierarchySankeyConfig,\n theme,\n annotation,\n]\n"],"names":["hierarchySankeyAdvancedPipeline","page","initAdvancedVSeed","defaultMeasures","defaultDimensions","defaultMeasureId","encodingAdapter","buildMeasures","defaultEncodingForHierarchy","encodingForHierarchy","pickDimensionsForReshape","pivotAdapter","reshapeWithEncoding","pivotReshapeWithEncoding","hierarchySankeyConfig","theme","annotation"],"mappings":";AAoBO,MAAMA,kCAAoD;IAC/DC;IACAC;IACAC;IACAC;IACAC;IAEAC,gBACE;QAACC,cAAc;YAAC;YAAQ;SAAS;QAAGC;KAA4B,EAChE;QAACD,cAAc;YAAC;YAAQ;SAAS;QAAGE;QAAsBC;KAAyB;IAErFC,aAAa;QAACC;KAAoB,EAAE;QAACC;KAAyB;IAE9DC;IACAC;IACAC;CACD"}
|
|
@@ -27,3 +27,5 @@ export { raceDonutAdvancedPipeline } from './raceDonut';
|
|
|
27
27
|
export { treeMapAdvancedPipeline } from './treeMap';
|
|
28
28
|
export { sunburstAdvancedPipeline } from './sunburst';
|
|
29
29
|
export { circlePackingAdvancedPipeline } from './circlePacking';
|
|
30
|
+
export { hierarchySankeyAdvancedPipeline } from './hierarchySankey';
|
|
31
|
+
export { sankeyAdvancedPipeline } from './sankey';
|
|
@@ -27,3 +27,5 @@ export { raceDonutAdvancedPipeline } from "./raceDonut.js";
|
|
|
27
27
|
export { treeMapAdvancedPipeline } from "./treeMap.js";
|
|
28
28
|
export { sunburstAdvancedPipeline } from "./sunburst.js";
|
|
29
29
|
export { circlePackingAdvancedPipeline } from "./circlePacking.js";
|
|
30
|
+
export { hierarchySankeyAdvancedPipeline } from "./hierarchySankey.js";
|
|
31
|
+
export { sankeyAdvancedPipeline } from "./sankey.js";
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { annotation, buildMeasures, defaultDimensions, defaultEncodingForSankey, defaultMeasureId, defaultMeasures, encodingAdapter, encodingForSankey, initAdvancedVSeed, page, pickDimensionsForReshape, pivotAdapter, pivotReshapeWithEncoding, reshapeWithEncoding, sankeyConfig, theme } from "../pipes/index.js";
|
|
2
|
+
const sankeyAdvancedPipeline = [
|
|
3
|
+
page,
|
|
4
|
+
initAdvancedVSeed,
|
|
5
|
+
defaultMeasures,
|
|
6
|
+
defaultDimensions,
|
|
7
|
+
defaultMeasureId,
|
|
8
|
+
encodingAdapter([
|
|
9
|
+
buildMeasures([
|
|
10
|
+
'size',
|
|
11
|
+
'detail'
|
|
12
|
+
]),
|
|
13
|
+
defaultEncodingForSankey
|
|
14
|
+
], [
|
|
15
|
+
buildMeasures([
|
|
16
|
+
'size',
|
|
17
|
+
'detail'
|
|
18
|
+
]),
|
|
19
|
+
encodingForSankey,
|
|
20
|
+
pickDimensionsForReshape
|
|
21
|
+
]),
|
|
22
|
+
pivotAdapter([
|
|
23
|
+
reshapeWithEncoding
|
|
24
|
+
], [
|
|
25
|
+
pivotReshapeWithEncoding
|
|
26
|
+
]),
|
|
27
|
+
sankeyConfig,
|
|
28
|
+
theme,
|
|
29
|
+
annotation
|
|
30
|
+
];
|
|
31
|
+
export { sankeyAdvancedPipeline };
|
|
32
|
+
|
|
33
|
+
//# sourceMappingURL=sankey.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pipeline/advanced/chart/pipeline/sankey.js","sources":["../../../../../../src/pipeline/advanced/chart/pipeline/sankey.ts"],"sourcesContent":["import type { AdvancedPipeline } from 'src/types'\nimport {\n buildMeasures,\n defaultDimensions,\n defaultMeasureId,\n defaultMeasures,\n encodingAdapter,\n encodingForSankey,\n defaultEncodingForSankey,\n sankeyConfig,\n initAdvancedVSeed,\n page,\n pivotAdapter,\n pivotReshapeWithEncoding,\n reshapeWithEncoding,\n theme,\n annotation,\n pickDimensionsForReshape,\n} from '../pipes'\n\nexport const sankeyAdvancedPipeline: AdvancedPipeline = [\n page,\n initAdvancedVSeed,\n defaultMeasures,\n defaultDimensions,\n defaultMeasureId,\n\n encodingAdapter(\n [buildMeasures(['size', 'detail']), defaultEncodingForSankey],\n [buildMeasures(['size', 'detail']), encodingForSankey, pickDimensionsForReshape],\n ),\n pivotAdapter([reshapeWithEncoding], [pivotReshapeWithEncoding]),\n\n sankeyConfig,\n theme,\n annotation,\n]\n"],"names":["sankeyAdvancedPipeline","page","initAdvancedVSeed","defaultMeasures","defaultDimensions","defaultMeasureId","encodingAdapter","buildMeasures","defaultEncodingForSankey","encodingForSankey","pickDimensionsForReshape","pivotAdapter","reshapeWithEncoding","pivotReshapeWithEncoding","sankeyConfig","theme","annotation"],"mappings":";AAoBO,MAAMA,yBAA2C;IACtDC;IACAC;IACAC;IACAC;IACAC;IAEAC,gBACE;QAACC,cAAc;YAAC;YAAQ;SAAS;QAAGC;KAAyB,EAC7D;QAACD,cAAc;YAAC;YAAQ;SAAS;QAAGE;QAAmBC;KAAyB;IAElFC,aAAa;QAACC;KAAoB,EAAE;QAACC;KAAyB;IAE9DC;IACAC;IACAC;CACD"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { pick } from "remeda";
|
|
2
|
+
import { replaceNullToUndefined } from "../../../../utils/index.js";
|
|
3
|
+
const hierarchySankeyConfig = (advancedVSeed, context)=>{
|
|
4
|
+
const { vseed } = context;
|
|
5
|
+
const { chartType } = vseed;
|
|
6
|
+
const result = {
|
|
7
|
+
...advancedVSeed
|
|
8
|
+
};
|
|
9
|
+
const pickedConfig = pick(vseed, [
|
|
10
|
+
'backgroundColor',
|
|
11
|
+
'color',
|
|
12
|
+
'label',
|
|
13
|
+
'legend',
|
|
14
|
+
'tooltip'
|
|
15
|
+
]);
|
|
16
|
+
const config = replaceNullToUndefined(pickedConfig);
|
|
17
|
+
result.config = {
|
|
18
|
+
...result.config,
|
|
19
|
+
[chartType]: {
|
|
20
|
+
...config
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
export { hierarchySankeyConfig };
|
|
26
|
+
|
|
27
|
+
//# sourceMappingURL=hierarchySankey.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pipeline/advanced/chart/pipes/config/hierarchySankey.js","sources":["../../../../../../../src/pipeline/advanced/chart/pipes/config/hierarchySankey.ts"],"sourcesContent":["import { pick } from 'remeda'\nimport { replaceNullToUndefined } from 'src/pipeline/utils'\nimport type { AdvancedPipe, AdvancedVSeed, Config } from 'src/types'\n\nexport const hierarchySankeyConfig: AdvancedPipe = (advancedVSeed, context) => {\n const { vseed } = context\n const { chartType } = vseed\n const result = {\n ...advancedVSeed,\n }\n\n const pickedConfig = pick(vseed, [\n 'backgroundColor',\n 'color',\n 'label',\n 'legend',\n 'tooltip',\n ]) as Config['hierarchySankey']\n\n const config = replaceNullToUndefined(pickedConfig)\n\n result.config = {\n ...result.config,\n [chartType]: {\n ...config,\n },\n }\n\n return result as AdvancedVSeed\n}\n"],"names":["hierarchySankeyConfig","advancedVSeed","context","vseed","chartType","result","pickedConfig","pick","config","replaceNullToUndefined"],"mappings":";;AAIO,MAAMA,wBAAsC,CAACC,eAAeC;IACjE,MAAM,EAAEC,KAAK,EAAE,GAAGD;IAClB,MAAM,EAAEE,SAAS,EAAE,GAAGD;IACtB,MAAME,SAAS;QACb,GAAGJ,aAAa;IAClB;IAEA,MAAMK,eAAeC,KAAKJ,OAAO;QAC/B;QACA;QACA;QACA;QACA;KACD;IAED,MAAMK,SAASC,uBAAuBH;IAEtCD,OAAO,MAAM,GAAG;QACd,GAAGA,OAAO,MAAM;QAChB,CAACD,UAAU,EAAE;YACX,GAAGI,MAAM;QACX;IACF;IAEA,OAAOH;AACT"}
|
|
@@ -10,6 +10,8 @@ export { lineConfig, columnConfig, pieConfig, dualAxisConfig, scatterConfig, his
|
|
|
10
10
|
export { treeMapConfig } from './treeMap';
|
|
11
11
|
export { sunburstConfig } from './sunburst';
|
|
12
12
|
export { circlePackingConfig } from './circlePacking';
|
|
13
|
+
export { hierarchySankeyConfig } from './hierarchySankey';
|
|
14
|
+
export { sankeyConfig } from './sankey';
|
|
13
15
|
export declare const areaConfig: import("../../../../..").AdvancedPipe;
|
|
14
16
|
export declare const areaPercentConfig: import("../../../../..").AdvancedPipe;
|
|
15
17
|
export declare const barConfig: import("../../../../..").AdvancedPipe;
|
|
@@ -21,6 +21,8 @@ export { heatmapConfig } from "./heatmap.js";
|
|
|
21
21
|
export { treeMapConfig } from "./treeMap.js";
|
|
22
22
|
export { sunburstConfig } from "./sunburst.js";
|
|
23
23
|
export { circlePackingConfig } from "./circlePacking.js";
|
|
24
|
+
export { hierarchySankeyConfig } from "./hierarchySankey.js";
|
|
25
|
+
export { sankeyConfig } from "./sankey.js";
|
|
24
26
|
export { areaConfig, areaPercentConfig, barConfig, barParallelConfig, barPercentConfig, columnConfig, columnParallelConfig, columnPercentConfig, donutConfig, funnelConfig, lineConfig, pieConfig, radarConfig, roseConfig, roseParallelConfig };
|
|
25
27
|
|
|
26
28
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline/advanced/chart/pipes/config/index.js","sources":["../../../../../../../src/pipeline/advanced/chart/pipes/config/index.ts"],"sourcesContent":["import { lineConfig } from './line'\nimport { columnConfig } from './column'\nimport { pieConfig } from './pie'\nimport { dualAxisConfig } from './dualAxis'\nimport { scatterConfig } from './scatter'\nimport { histogramConfig } from './histogram'\nimport { boxplotConfig } from './boxplot'\nimport { heatmapConfig } from './heatmap'\n\nexport {\n lineConfig,\n columnConfig,\n pieConfig,\n dualAxisConfig,\n scatterConfig,\n histogramConfig,\n boxplotConfig,\n heatmapConfig,\n}\n\nexport { treeMapConfig } from './treeMap'\nexport { sunburstConfig } from './sunburst'\nexport { circlePackingConfig } from './circlePacking'\n\n// area\nexport const areaConfig = lineConfig\nexport const areaPercentConfig = lineConfig\n\n// bar\nexport const barConfig = columnConfig\nexport const barParallelConfig = columnConfig\nexport const barPercentConfig = columnConfig\n\n// column\nexport const columnParallelConfig = columnConfig\nexport const columnPercentConfig = columnConfig\n\n// donut, rose\nexport const donutConfig = pieConfig\nexport const roseConfig = pieConfig\nexport const roseParallelConfig = pieConfig\nexport const radarConfig = pieConfig\n\n// funnel, heatmap\nexport const funnelConfig = pieConfig\n// heatmapConfig 已独立导出\n"],"names":["areaConfig","lineConfig","areaPercentConfig","barConfig","columnConfig","barParallelConfig","barPercentConfig","columnParallelConfig","columnPercentConfig","donutConfig","pieConfig","roseConfig","roseParallelConfig","radarConfig","funnelConfig"],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"pipeline/advanced/chart/pipes/config/index.js","sources":["../../../../../../../src/pipeline/advanced/chart/pipes/config/index.ts"],"sourcesContent":["import { lineConfig } from './line'\nimport { columnConfig } from './column'\nimport { pieConfig } from './pie'\nimport { dualAxisConfig } from './dualAxis'\nimport { scatterConfig } from './scatter'\nimport { histogramConfig } from './histogram'\nimport { boxplotConfig } from './boxplot'\nimport { heatmapConfig } from './heatmap'\n\nexport {\n lineConfig,\n columnConfig,\n pieConfig,\n dualAxisConfig,\n scatterConfig,\n histogramConfig,\n boxplotConfig,\n heatmapConfig,\n}\n\nexport { treeMapConfig } from './treeMap'\nexport { sunburstConfig } from './sunburst'\nexport { circlePackingConfig } from './circlePacking'\nexport { hierarchySankeyConfig } from './hierarchySankey'\nexport { sankeyConfig } from './sankey'\n\n// area\nexport const areaConfig = lineConfig\nexport const areaPercentConfig = lineConfig\n\n// bar\nexport const barConfig = columnConfig\nexport const barParallelConfig = columnConfig\nexport const barPercentConfig = columnConfig\n\n// column\nexport const columnParallelConfig = columnConfig\nexport const columnPercentConfig = columnConfig\n\n// donut, rose\nexport const donutConfig = pieConfig\nexport const roseConfig = pieConfig\nexport const roseParallelConfig = pieConfig\nexport const radarConfig = pieConfig\n\n// funnel, heatmap\nexport const funnelConfig = pieConfig\n// heatmapConfig 已独立导出\n"],"names":["areaConfig","lineConfig","areaPercentConfig","barConfig","columnConfig","barParallelConfig","barPercentConfig","columnParallelConfig","columnPercentConfig","donutConfig","pieConfig","roseConfig","roseParallelConfig","radarConfig","funnelConfig"],"mappings":";;;AA2BO,MAAMA,aAAaC;AACnB,MAAMC,oBAAoBD;AAG1B,MAAME,YAAYC;AAClB,MAAMC,oBAAoBD;AAC1B,MAAME,mBAAmBF;AAGzB,MAAMG,uBAAuBH;AAC7B,MAAMI,sBAAsBJ;AAG5B,MAAMK,cAAcC;AACpB,MAAMC,aAAaD;AACnB,MAAME,qBAAqBF;AAC3B,MAAMG,cAAcH;AAGpB,MAAMI,eAAeJ"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { pick } from "remeda";
|
|
2
|
+
import { replaceNullToUndefined } from "../../../../utils/index.js";
|
|
3
|
+
const sankeyConfig = (advancedVSeed, context)=>{
|
|
4
|
+
const { vseed } = context;
|
|
5
|
+
const { chartType } = vseed;
|
|
6
|
+
const result = {
|
|
7
|
+
...advancedVSeed
|
|
8
|
+
};
|
|
9
|
+
const pickedConfig = pick(vseed, [
|
|
10
|
+
'backgroundColor',
|
|
11
|
+
'color',
|
|
12
|
+
'label',
|
|
13
|
+
'legend',
|
|
14
|
+
'tooltip'
|
|
15
|
+
]);
|
|
16
|
+
const config = replaceNullToUndefined(pickedConfig);
|
|
17
|
+
result.config = {
|
|
18
|
+
...result.config,
|
|
19
|
+
[chartType]: {
|
|
20
|
+
...config
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
export { sankeyConfig };
|
|
26
|
+
|
|
27
|
+
//# sourceMappingURL=sankey.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pipeline/advanced/chart/pipes/config/sankey.js","sources":["../../../../../../../src/pipeline/advanced/chart/pipes/config/sankey.ts"],"sourcesContent":["import { pick } from 'remeda'\nimport { replaceNullToUndefined } from 'src/pipeline/utils'\nimport type { AdvancedPipe, AdvancedVSeed, Config } from 'src/types'\n\nexport const sankeyConfig: AdvancedPipe = (advancedVSeed, context) => {\n const { vseed } = context\n const { chartType } = vseed\n const result = {\n ...advancedVSeed,\n }\n\n const pickedConfig = pick(vseed, ['backgroundColor', 'color', 'label', 'legend', 'tooltip']) as Config['sankey']\n const config = replaceNullToUndefined(pickedConfig)\n\n result.config = {\n ...result.config,\n [chartType]: {\n ...config,\n },\n }\n\n return result as AdvancedVSeed\n}\n"],"names":["sankeyConfig","advancedVSeed","context","vseed","chartType","result","pickedConfig","pick","config","replaceNullToUndefined"],"mappings":";;AAIO,MAAMA,eAA6B,CAACC,eAAeC;IACxD,MAAM,EAAEC,KAAK,EAAE,GAAGD;IAClB,MAAM,EAAEE,SAAS,EAAE,GAAGD;IACtB,MAAME,SAAS;QACb,GAAGJ,aAAa;IAClB;IAEA,MAAMK,eAAeC,KAAKJ,OAAO;QAAC;QAAmB;QAAS;QAAS;QAAU;KAAU;IAC3F,MAAMK,SAASC,uBAAuBH;IAEtCD,OAAO,MAAM,GAAG;QACd,GAAGA,OAAO,MAAM;QAChB,CAACD,UAAU,EAAE;YACX,GAAGI,MAAM;QACX;IACF;IAEA,OAAOH;AACT"}
|
|
@@ -18,3 +18,4 @@ export { encodingForRaceLine, defaultEncodingForRaceLine } from './raceLine';
|
|
|
18
18
|
export { encodingForRacePie, defaultEncodingForRacePie } from './racePie';
|
|
19
19
|
export { encodingForRaceDonut, defaultEncodingForRaceDonut } from './raceDonut';
|
|
20
20
|
export { encodingForHierarchy, defaultEncodingForHierarchy } from './hierarchy';
|
|
21
|
+
export { encodingForSankey, defaultEncodingForSankey } from './sankey';
|
|
@@ -18,3 +18,4 @@ export { defaultEncodingForRaceLine, encodingForRaceLine } from "./raceLine.js";
|
|
|
18
18
|
export { defaultEncodingForRacePie, encodingForRacePie } from "./racePie.js";
|
|
19
19
|
export { defaultEncodingForRaceDonut, encodingForRaceDonut } from "./raceDonut.js";
|
|
20
20
|
export { defaultEncodingForHierarchy, encodingForHierarchy } from "./hierarchy.js";
|
|
21
|
+
export { defaultEncodingForSankey, encodingForSankey } from "./sankey.js";
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { unique } from "remeda";
|
|
2
|
+
import { MeasureId } from "../../../../../dataReshape/index.js";
|
|
3
|
+
import { hasMultipleMeasureInSingleView } from "../../../../utils/index.js";
|
|
4
|
+
const defaultEncodingForSankey = (advancedVSeed)=>{
|
|
5
|
+
const { measures = [], reshapeMeasures = [], dimensions = [] } = advancedVSeed;
|
|
6
|
+
const encoding = {};
|
|
7
|
+
generateDefaultDimensionEncoding(dimensions, encoding, hasMultipleMeasureInSingleView(reshapeMeasures));
|
|
8
|
+
generateDefaultMeasureEncoding(measures, encoding);
|
|
9
|
+
return {
|
|
10
|
+
...advancedVSeed,
|
|
11
|
+
encoding
|
|
12
|
+
};
|
|
13
|
+
};
|
|
14
|
+
const encodingForSankey = (advancedVSeed)=>{
|
|
15
|
+
const { measures = [], reshapeMeasures = [], dimensions = [] } = advancedVSeed;
|
|
16
|
+
const hasDimensionEncoding = dimensions.some((item)=>item.encoding);
|
|
17
|
+
const hasMeasureEncoding = measures.some((item)=>item.encoding);
|
|
18
|
+
const encoding = {};
|
|
19
|
+
const hasMulti = hasMultipleMeasureInSingleView(reshapeMeasures);
|
|
20
|
+
if (hasDimensionEncoding) generateDimensionEncoding(dimensions, encoding, hasMulti);
|
|
21
|
+
else generateDefaultDimensionEncoding(dimensions, encoding, hasMulti);
|
|
22
|
+
if (hasMeasureEncoding) generateMeasureEncoding(measures, encoding);
|
|
23
|
+
else generateDefaultMeasureEncoding(measures, encoding);
|
|
24
|
+
return {
|
|
25
|
+
...advancedVSeed,
|
|
26
|
+
encoding
|
|
27
|
+
};
|
|
28
|
+
};
|
|
29
|
+
const generateDefaultDimensionEncoding = (dimensions, encoding, isMultiMeasure)=>{
|
|
30
|
+
const uniqueDimIds = unique(dimensions.map((d)=>d.id));
|
|
31
|
+
const sourceTargetDimIds = isMultiMeasure ? uniqueDimIds : uniqueDimIds.filter((d)=>d !== MeasureId);
|
|
32
|
+
encoding.source = sourceTargetDimIds.slice(0, 1);
|
|
33
|
+
encoding.target = sourceTargetDimIds.slice(1);
|
|
34
|
+
encoding.color = [];
|
|
35
|
+
encoding.detail = [];
|
|
36
|
+
encoding.tooltip = uniqueDimIds.filter((d)=>d !== MeasureId);
|
|
37
|
+
encoding.label = [];
|
|
38
|
+
encoding.row = [];
|
|
39
|
+
encoding.column = [];
|
|
40
|
+
};
|
|
41
|
+
const generateDimensionEncoding = (dimensions, encoding, isMultiMeasure)=>{
|
|
42
|
+
encoding.source = unique(dimensions.filter((item)=>'source' === item.encoding).map((item)=>item.id));
|
|
43
|
+
encoding.target = unique(dimensions.filter((item)=>'target' === item.encoding).map((item)=>item.id));
|
|
44
|
+
if (0 === encoding.source.length && dimensions[0]) encoding.source = [
|
|
45
|
+
dimensions[0].id
|
|
46
|
+
];
|
|
47
|
+
if (isMultiMeasure && !encoding.source.includes(MeasureId) && !encoding.target.includes(MeasureId)) encoding.target.push(MeasureId);
|
|
48
|
+
encoding.detail = unique(dimensions.filter((item)=>'detail' === item.encoding).map((item)=>item.id));
|
|
49
|
+
encoding.tooltip = unique(dimensions.map((item)=>item.id)).filter((d)=>d !== MeasureId);
|
|
50
|
+
encoding.label = unique(dimensions.filter((item)=>'label' === item.encoding).map((item)=>item.id));
|
|
51
|
+
encoding.row = unique(dimensions.filter((item)=>'row' === item.encoding).map((item)=>item.id));
|
|
52
|
+
encoding.column = unique(dimensions.filter((item)=>'column' === item.encoding).map((item)=>item.id));
|
|
53
|
+
};
|
|
54
|
+
const generateDefaultMeasureEncoding = (measures, encoding)=>{
|
|
55
|
+
encoding.size = unique(measures.filter((item)=>'size' === item.encoding || !item.encoding).map((item)=>item.id));
|
|
56
|
+
encoding.tooltip = unique([
|
|
57
|
+
...encoding.tooltip || [],
|
|
58
|
+
...measures.map((m)=>m.id)
|
|
59
|
+
]);
|
|
60
|
+
};
|
|
61
|
+
const generateMeasureEncoding = (measures, encoding)=>{
|
|
62
|
+
encoding.size = unique(measures.filter((item)=>'size' === item.encoding || !item.encoding).map((item)=>item.id));
|
|
63
|
+
const label = unique(measures.filter((item)=>'label' === item.encoding).map((item)=>item.id));
|
|
64
|
+
encoding.label = unique([
|
|
65
|
+
...encoding.label || [],
|
|
66
|
+
...label
|
|
67
|
+
]);
|
|
68
|
+
const tooltip = unique(measures.filter((item)=>'tooltip' === item.encoding).map((item)=>item.id));
|
|
69
|
+
encoding.tooltip = unique([
|
|
70
|
+
...encoding.tooltip || [],
|
|
71
|
+
...label,
|
|
72
|
+
...tooltip,
|
|
73
|
+
...encoding.size
|
|
74
|
+
]);
|
|
75
|
+
const detail = unique(measures.filter((item)=>'detail' === item.encoding).map((item)=>item.id));
|
|
76
|
+
encoding.detail = unique([
|
|
77
|
+
...encoding.detail || [],
|
|
78
|
+
...detail
|
|
79
|
+
]);
|
|
80
|
+
};
|
|
81
|
+
export { defaultEncodingForSankey, encodingForSankey };
|
|
82
|
+
|
|
83
|
+
//# sourceMappingURL=sankey.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pipeline/advanced/chart/pipes/encoding/sankey.js","sources":["../../../../../../../src/pipeline/advanced/chart/pipes/encoding/sankey.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'\n\nexport const defaultEncodingForSankey: 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 encodingForSankey: 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 = unique(dimensions.map((d) => d.id))\n const sourceTargetDimIds = isMultiMeasure ? uniqueDimIds : uniqueDimIds.filter((d) => d !== MeasureId)\n\n encoding.source = sourceTargetDimIds.slice(0, 1)\n encoding.target = sourceTargetDimIds.slice(1)\n encoding.color = []\n encoding.detail = []\n encoding.tooltip = uniqueDimIds.filter((d) => d !== MeasureId)\n encoding.label = []\n encoding.row = []\n encoding.column = []\n}\n\nconst generateDimensionEncoding = (dimensions: Dimensions, encoding: Encoding, isMultiMeasure: boolean) => {\n // source\n encoding.source = unique(dimensions.filter((item) => item.encoding === 'source').map((item) => item.id))\n\n // target\n encoding.target = unique(dimensions.filter((item) => item.encoding === 'target').map((item) => item.id))\n\n if (encoding.source.length === 0 && dimensions[0]) {\n encoding.source = [dimensions[0].id]\n }\n if (isMultiMeasure && !encoding.source.includes(MeasureId) && !encoding.target.includes(MeasureId)) {\n encoding.target.push(MeasureId)\n }\n\n // detail\n encoding.detail = unique(dimensions.filter((item) => item.encoding === 'detail').map((item) => item.id))\n\n // tooltip\n encoding.tooltip = unique(dimensions.map((item) => item.id)).filter((d) => d !== MeasureId)\n\n // label\n encoding.label = unique(dimensions.filter((item) => item.encoding === 'label').map((item) => item.id))\n\n encoding.row = unique(dimensions.filter((item) => item.encoding === 'row').map((item) => item.id))\n encoding.column = unique(dimensions.filter((item) => item.encoding === 'column').map((item) => item.id))\n}\n\n/**\n * --------------------指标--------------------\n */\nconst generateDefaultMeasureEncoding = (measures: Measures, encoding: Encoding) => {\n encoding.size = unique(measures.filter((item) => item.encoding === 'size' || !item.encoding).map((item) => item.id))\n encoding.tooltip = unique([...(encoding.tooltip || []), ...measures.map((m) => m.id)])\n}\n\nconst generateMeasureEncoding = (measures: Measures, encoding: Encoding) => {\n // size\n encoding.size = unique(measures.filter((item) => item.encoding === 'size' || !item.encoding).map((item) => item.id))\n\n // label\n const label = unique(measures.filter((item) => item.encoding === 'label').map((item) => item.id))\n encoding.label = unique([...(encoding.label || []), ...label])\n\n // tooltip\n const tooltip = unique(measures.filter((item) => item.encoding === 'tooltip').map((item) => item.id))\n encoding.tooltip = unique([...(encoding.tooltip || []), ...label, ...tooltip, ...encoding.size])\n\n // detail\n const detail = unique(measures.filter((item) => item.encoding === 'detail').map((item) => item.id))\n encoding.detail = unique([...(encoding.detail || []), ...detail])\n}\n"],"names":["defaultEncodingForSankey","advancedVSeed","measures","reshapeMeasures","dimensions","encoding","generateDefaultDimensionEncoding","hasMultipleMeasureInSingleView","generateDefaultMeasureEncoding","encodingForSankey","hasDimensionEncoding","item","hasMeasureEncoding","hasMulti","generateDimensionEncoding","generateMeasureEncoding","isMultiMeasure","uniqueDimIds","unique","d","sourceTargetDimIds","MeasureId","m","label","tooltip","detail"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const hierarchySankeySpecPipeline: import("../../../../types").SpecPipe[];
|