@visactor/vseed 0.5.5 → 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/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 +1303 -185
- package/dist/umd/index.js.map +1 -1
- package/package.json +1 -1
package/dist/umd/index.js
CHANGED
|
@@ -995,9 +995,11 @@
|
|
|
995
995
|
donutAdvancedPipeline: ()=>donutAdvancedPipeline,
|
|
996
996
|
scatterAdvancedPipeline: ()=>scatterAdvancedPipeline,
|
|
997
997
|
zLineConfig: ()=>zLineConfig,
|
|
998
|
-
|
|
998
|
+
zSankeyConfig: ()=>zSankeyConfig,
|
|
999
999
|
FoldXMeasureValue: ()=>FoldXMeasureValue,
|
|
1000
|
+
zScatter: ()=>zScatter,
|
|
1000
1001
|
zSelectors: ()=>zSelectors,
|
|
1002
|
+
SourceEncoding: ()=>SourceEncoding,
|
|
1001
1003
|
pivotTableAdvancedPipeline: ()=>pivotTableAdvancedPipeline,
|
|
1002
1004
|
zAnnotationAreaConfig: ()=>zAnnotationAreaConfig,
|
|
1003
1005
|
selectByPartial: ()=>selectByPartial,
|
|
@@ -1013,6 +1015,7 @@
|
|
|
1013
1015
|
findAllMeasures: ()=>findAllMeasures,
|
|
1014
1016
|
zFunnelConfig: ()=>zFunnelConfig,
|
|
1015
1017
|
zUnfoldInfo: ()=>zUnfoldInfo,
|
|
1018
|
+
hierarchySankeySpecPipeline: ()=>hierarchySankeySpecPipeline,
|
|
1016
1019
|
registerColumnPercent: ()=>registerColumnPercent,
|
|
1017
1020
|
zPivotTableConfig: ()=>zPivotTableConfig,
|
|
1018
1021
|
registerRose: ()=>registerRose,
|
|
@@ -1038,6 +1041,7 @@
|
|
|
1038
1041
|
zCustomThemeConfig: ()=>zCustomThemeConfig,
|
|
1039
1042
|
zScatterAnimation: ()=>zScatterAnimation,
|
|
1040
1043
|
zSunburstConfig: ()=>zSunburstConfig,
|
|
1044
|
+
zSankey: ()=>zSankey,
|
|
1041
1045
|
zFieldSelector: ()=>zFieldSelector,
|
|
1042
1046
|
zMeasureEncoding: ()=>zMeasureEncoding,
|
|
1043
1047
|
raceLineSpecPipeline: ()=>raceLineSpecPipeline,
|
|
@@ -1116,6 +1120,7 @@
|
|
|
1116
1120
|
columnSpecPipeline: ()=>columnSpecPipeline,
|
|
1117
1121
|
isRectungularCoordinate: ()=>isRectungularCoordinate,
|
|
1118
1122
|
BinCountMeasureId: ()=>BinCountMeasureId,
|
|
1123
|
+
isSankey: ()=>isSankey,
|
|
1119
1124
|
pivotTableSpecPipeline: ()=>pivotTableSpecPipeline,
|
|
1120
1125
|
registerRoseParallel: ()=>registerRoseParallel,
|
|
1121
1126
|
terminateWorkerPool: ()=>terminateWorkerPool,
|
|
@@ -1152,6 +1157,7 @@
|
|
|
1152
1157
|
registerColumnParallel: ()=>registerColumnParallel,
|
|
1153
1158
|
zRaceScatter: ()=>zRaceScatter,
|
|
1154
1159
|
zRowOrColumnTotalConfig: ()=>zRowOrColumnTotalConfig,
|
|
1160
|
+
isHierarchySankey: ()=>isHierarchySankey,
|
|
1155
1161
|
isDimensionSelector: ()=>isDimensionSelector,
|
|
1156
1162
|
isRowWithFieldDynamicFilter: ()=>isRowWithFieldDynamicFilter,
|
|
1157
1163
|
BAND_AXIS_INNER_OFFSET_IN_PIVOT: ()=>2,
|
|
@@ -1243,6 +1249,7 @@
|
|
|
1243
1249
|
checkVSeed: ()=>checkVSeed,
|
|
1244
1250
|
zDimensionEncoding: ()=>zDimensionEncoding,
|
|
1245
1251
|
zBodyCellStyle: ()=>zBodyCellStyle,
|
|
1252
|
+
sankeySpecPipeline: ()=>sankeySpecPipeline,
|
|
1246
1253
|
barAdvancedPipeline: ()=>barAdvancedPipeline,
|
|
1247
1254
|
zDifferenceSelector: ()=>zDifferenceSelector,
|
|
1248
1255
|
zTreeMap: ()=>zTreeMap,
|
|
@@ -1262,16 +1269,16 @@
|
|
|
1262
1269
|
raceBarAdvancedPipeline: ()=>raceBarAdvancedPipeline,
|
|
1263
1270
|
Builder: ()=>Builder,
|
|
1264
1271
|
tableAdvancedPipeline: ()=>tableAdvancedPipeline,
|
|
1265
|
-
|
|
1272
|
+
registerHierarchySankey: ()=>registerHierarchySankey,
|
|
1266
1273
|
raceDonutSpecPipeline: ()=>raceDonutSpecPipeline,
|
|
1267
|
-
|
|
1274
|
+
selectByValue: ()=>selectByValue,
|
|
1268
1275
|
MeasureId: ()=>MeasureId,
|
|
1269
1276
|
registerBarParallel: ()=>registerBarParallel,
|
|
1270
1277
|
zAnnotationVerticalLine: ()=>zAnnotationVerticalLine,
|
|
1271
|
-
|
|
1278
|
+
zDimensionGroup: ()=>zDimensionGroup,
|
|
1272
1279
|
registerDonut: ()=>registerDonut,
|
|
1273
1280
|
findTreeNodesBy: ()=>findTreeNodesBy,
|
|
1274
|
-
|
|
1281
|
+
zMeasureTree: ()=>zMeasureTree,
|
|
1275
1282
|
registerBoxPlot: ()=>registerBoxPlot,
|
|
1276
1283
|
sunburstSpecPipeline: ()=>sunburstSpecPipeline,
|
|
1277
1284
|
zAnnotation: ()=>zAnnotation,
|
|
@@ -1279,31 +1286,34 @@
|
|
|
1279
1286
|
ANNOTATION_Z_INDEX: ()=>1000,
|
|
1280
1287
|
pieAdvancedPipeline: ()=>pieAdvancedPipeline,
|
|
1281
1288
|
zColumnPercent: ()=>zColumnPercent,
|
|
1282
|
-
|
|
1289
|
+
zRadar: ()=>zRadar,
|
|
1283
1290
|
createFormatter: ()=>createFormatter,
|
|
1284
|
-
|
|
1291
|
+
zTable: ()=>zTable,
|
|
1285
1292
|
columnPercentSpecPipeline: ()=>columnPercentSpecPipeline,
|
|
1286
1293
|
racePieSpecPipeline: ()=>racePieSpecPipeline,
|
|
1287
1294
|
a: ()=>i18n_a,
|
|
1288
1295
|
zSelector: ()=>zSelector,
|
|
1289
|
-
|
|
1296
|
+
zTotalType: ()=>zTotalType,
|
|
1290
1297
|
registerHeatmap: ()=>registerHeatmap,
|
|
1298
|
+
zXBandAxis: ()=>zXBandAxis,
|
|
1291
1299
|
zMeasures: ()=>zMeasures,
|
|
1292
1300
|
zLine: ()=>zLine,
|
|
1293
1301
|
FoldMeasureName: ()=>FoldMeasureName,
|
|
1294
1302
|
zPage: ()=>zPage,
|
|
1295
1303
|
zRaceDonut: ()=>zRaceDonut,
|
|
1296
1304
|
pieSpecPipeline: ()=>pieSpecPipeline,
|
|
1297
|
-
|
|
1305
|
+
registerSankey: ()=>registerSankey,
|
|
1298
1306
|
barPercentSpecPipeline: ()=>barPercentSpecPipeline,
|
|
1307
|
+
zBarGapInGroup: ()=>zBarGapInGroup,
|
|
1299
1308
|
zColumnParallel: ()=>zColumnParallel,
|
|
1300
1309
|
zDatasetReshapeInfo: ()=>zDatasetReshapeInfo,
|
|
1301
1310
|
zAnalysis: ()=>zAnalysis,
|
|
1302
1311
|
heatmapSpecPipeline: ()=>heatmapSpecPipeline,
|
|
1303
1312
|
isPivot: ()=>chatType_isPivot,
|
|
1304
1313
|
raceBarSpecPipeline: ()=>raceBarSpecPipeline,
|
|
1305
|
-
|
|
1314
|
+
hierarchySankeyAdvancedPipeline: ()=>hierarchySankeyAdvancedPipeline,
|
|
1306
1315
|
updateAdvanced: ()=>updateAdvanced,
|
|
1316
|
+
registerColumn: ()=>registerColumn,
|
|
1307
1317
|
zPlayer: ()=>zPlayer,
|
|
1308
1318
|
zDimensionLinkage: ()=>zDimensionLinkage,
|
|
1309
1319
|
preorderTraverse: ()=>preorderTraverse,
|
|
@@ -1321,7 +1331,9 @@
|
|
|
1321
1331
|
zColumn: ()=>zColumn,
|
|
1322
1332
|
PlayerEncoding: ()=>PlayerEncoding,
|
|
1323
1333
|
radarAdvancedPipeline: ()=>radarAdvancedPipeline,
|
|
1334
|
+
TargetEncoding: ()=>TargetEncoding,
|
|
1324
1335
|
zBarParallelConfig: ()=>zBarParallelConfig,
|
|
1336
|
+
zHierarchySankeyConfig: ()=>zHierarchySankeyConfig,
|
|
1325
1337
|
zAnnotationConfig: ()=>zAnnotationConfig,
|
|
1326
1338
|
selectorWithDynamicFilter: ()=>selectorWithDynamicFilter,
|
|
1327
1339
|
registerCustomTheme: ()=>registerCustomTheme,
|
|
@@ -1349,11 +1361,13 @@
|
|
|
1349
1361
|
isBarLikeChart: ()=>isBarLikeChart,
|
|
1350
1362
|
columnParallelAdvancedPipeline: ()=>columnParallelAdvancedPipeline,
|
|
1351
1363
|
deleteDimensionTreeByCallback: ()=>deleteDimensionTreeByCallback,
|
|
1364
|
+
sankeyAdvancedPipeline: ()=>sankeyAdvancedPipeline,
|
|
1352
1365
|
zBarConfig: ()=>zBarConfig,
|
|
1353
1366
|
zChartDynamicFilter: ()=>zChartDynamicFilter,
|
|
1354
1367
|
zNumFormat: ()=>zNumFormat,
|
|
1355
1368
|
zPieLabel: ()=>zPieLabel,
|
|
1356
1369
|
zStackCornerRadius: ()=>zStackCornerRadius,
|
|
1370
|
+
zHierarchySankey: ()=>zHierarchySankey,
|
|
1357
1371
|
zDualAxisConfig: ()=>zDualAxisConfig,
|
|
1358
1372
|
columnPercentAdvancedPipeline: ()=>columnPercentAdvancedPipeline,
|
|
1359
1373
|
barPercentAdvancedPipeline: ()=>barPercentAdvancedPipeline,
|
|
@@ -1537,6 +1551,8 @@
|
|
|
1537
1551
|
const ColorEncoding = '__Dim_Color__';
|
|
1538
1552
|
const ColorIdEncoding = '__Dim_ColorId__';
|
|
1539
1553
|
const HierarchyEncoding = '__Dim_Hierarchy__';
|
|
1554
|
+
const SourceEncoding = '__Dim_Source__';
|
|
1555
|
+
const TargetEncoding = '__Dim_Target__';
|
|
1540
1556
|
const BoxPlotPivotIndicator = '__BoxPlot_Pivot_Indicator__';
|
|
1541
1557
|
const LowerWhisker = '__Lower_Whisker__';
|
|
1542
1558
|
const UpperWhisker = '__Upper_Whisker__';
|
|
@@ -3134,6 +3150,8 @@ self.R = R;
|
|
|
3134
3150
|
Donut: 'donut',
|
|
3135
3151
|
Radar: 'radar',
|
|
3136
3152
|
CirclePacking: 'circlePacking',
|
|
3153
|
+
Sankey: 'sankey',
|
|
3154
|
+
HierarchySankey: 'hierarchySankey',
|
|
3137
3155
|
Sunburst: 'sunburst',
|
|
3138
3156
|
TreeMap: 'treeMap',
|
|
3139
3157
|
RaceBar: 'raceBar',
|
|
@@ -3153,7 +3171,7 @@ self.R = R;
|
|
|
3153
3171
|
const isMeasures = (measures)=>measures.every(isMeasure);
|
|
3154
3172
|
const isPositionMeasure = (measure, chartType)=>{
|
|
3155
3173
|
if (!measure.encoding) return true;
|
|
3156
|
-
if (ChartTypeEnum.Funnel === chartType || ChartTypeEnum.CirclePacking === chartType || ChartTypeEnum.Sunburst === chartType || ChartTypeEnum.TreeMap === chartType) return 'size' === measure.encoding;
|
|
3174
|
+
if (ChartTypeEnum.Funnel === chartType || ChartTypeEnum.CirclePacking === chartType || ChartTypeEnum.Sankey === chartType || ChartTypeEnum.HierarchySankey === chartType || ChartTypeEnum.Sunburst === chartType || ChartTypeEnum.TreeMap === chartType) return 'size' === measure.encoding;
|
|
3157
3175
|
if (chartType === ChartTypeEnum.Heatmap) return 'color' === measure.encoding;
|
|
3158
3176
|
if ([
|
|
3159
3177
|
ChartTypeEnum.Pie,
|
|
@@ -3202,6 +3220,8 @@ self.R = R;
|
|
|
3202
3220
|
const isAreaPercent = (vseed)=>vseed.chartType === ChartTypeEnum.AreaPercent;
|
|
3203
3221
|
const isColumnPercent = (vseed)=>vseed.chartType === ChartTypeEnum.ColumnPercent;
|
|
3204
3222
|
const isBarPercent = (vseed)=>vseed.chartType === ChartTypeEnum.BarPercent;
|
|
3223
|
+
const isSankey = (vseed)=>vseed.chartType === ChartTypeEnum.Sankey;
|
|
3224
|
+
const isHierarchySankey = (vseed)=>vseed.chartType === ChartTypeEnum.HierarchySankey;
|
|
3205
3225
|
const isBarLikeChart = (vseed)=>vseed.chartType === ChartTypeEnum.Bar || vseed.chartType === ChartTypeEnum.RaceBar || vseed.chartType === ChartTypeEnum.BarPercent || vseed.chartType === ChartTypeEnum.BarParallel;
|
|
3206
3226
|
const isVTable = (vseed)=>[
|
|
3207
3227
|
'table',
|
|
@@ -5439,10 +5459,12 @@ self.R = R;
|
|
|
5439
5459
|
encodingColorId: ColorIdEncoding,
|
|
5440
5460
|
encodingPlayer: PlayerEncoding,
|
|
5441
5461
|
encodingHierarchy: HierarchyEncoding,
|
|
5462
|
+
encodingSource: SourceEncoding,
|
|
5463
|
+
encodingTarget: TargetEncoding,
|
|
5442
5464
|
colorItems: [],
|
|
5443
5465
|
colorIdMap: {}
|
|
5444
5466
|
};
|
|
5445
|
-
const { color, x, y, detail, angle, player, hierarchy } = encoding;
|
|
5467
|
+
const { color, x, y, detail, angle, player, hierarchy, source, target } = encoding;
|
|
5446
5468
|
const angleDimensions = angle ? dimensions.filter((dim)=>angle.includes(dim.id)) : [];
|
|
5447
5469
|
const xDimensions = x ? dimensions.filter((dim)=>x.includes(dim.id)) : [];
|
|
5448
5470
|
const yDimensions = y ? dimensions.filter((dim)=>y.includes(dim.id)) : [];
|
|
@@ -5450,6 +5472,8 @@ self.R = R;
|
|
|
5450
5472
|
const detailDimensions = detail ? dimensions.filter((dim)=>detail.includes(dim.id)) : [];
|
|
5451
5473
|
const playerDimensions = player ? dimensions.filter((dim)=>player.includes(dim.id)) : [];
|
|
5452
5474
|
const hierarchyDimensions = hierarchy ? dimensions.filter((dim)=>hierarchy.includes(dim.id)) : [];
|
|
5475
|
+
const sourceDimensions = source ? dimensions.filter((dim)=>source.includes(dim.id)) : [];
|
|
5476
|
+
const targetDimensions = target ? dimensions.filter((dim)=>target.includes(dim.id)) : [];
|
|
5453
5477
|
const colorItems = new Set();
|
|
5454
5478
|
const colorIdMap = {};
|
|
5455
5479
|
for(let i = 0; i < dataset.length; i++){
|
|
@@ -5461,6 +5485,8 @@ self.R = R;
|
|
|
5461
5485
|
applyEncoding(DetailEncoding, detailDimensions, datum, separator);
|
|
5462
5486
|
applyEncoding(PlayerEncoding, playerDimensions, datum, separator);
|
|
5463
5487
|
applyEncoding(HierarchyEncoding, hierarchyDimensions, datum, separator);
|
|
5488
|
+
applyEncoding(SourceEncoding, sourceDimensions, datum, separator);
|
|
5489
|
+
applyEncoding(TargetEncoding, targetDimensions, datum, separator);
|
|
5464
5490
|
if (!colorDimensions.length || !datum[ColorEncoding]) continue;
|
|
5465
5491
|
const colorId = String(datum[ColorEncoding] ?? '');
|
|
5466
5492
|
datum[ColorIdEncoding] = colorId;
|
|
@@ -13017,7 +13043,7 @@ self.R = R;
|
|
|
13017
13043
|
const { advancedVSeed } = context;
|
|
13018
13044
|
const { chartType } = advancedVSeed;
|
|
13019
13045
|
const baseConfig = advancedVSeed.config[chartType];
|
|
13020
|
-
if (!baseConfig || !baseConfig.legend) return result;
|
|
13046
|
+
if (!baseConfig || !baseConfig.legend || !baseConfig.color) return result;
|
|
13021
13047
|
const { datasetReshapeInfo } = advancedVSeed;
|
|
13022
13048
|
const colorItems = chunk_QJLMYOTX_i(datasetReshapeInfo.flatMap((d)=>d.unfoldInfo.colorItems));
|
|
13023
13049
|
const colorIdMap = datasetReshapeInfo.reduce((prev, cur)=>({
|
|
@@ -13133,7 +13159,7 @@ self.R = R;
|
|
|
13133
13159
|
const { advancedVSeed } = context;
|
|
13134
13160
|
const { chartType } = advancedVSeed;
|
|
13135
13161
|
const baseConfig = advancedVSeed.config[chartType];
|
|
13136
|
-
if (!baseConfig || !baseConfig.legend) return result;
|
|
13162
|
+
if (!baseConfig || !baseConfig.legend || !baseConfig.color) return result;
|
|
13137
13163
|
const { datasetReshapeInfo } = advancedVSeed;
|
|
13138
13164
|
const max = Math.max(...datasetReshapeInfo.map((d)=>d.foldInfo.statistics.colorMax));
|
|
13139
13165
|
const min = Math.min(...datasetReshapeInfo.map((d)=>d.foldInfo.statistics.colorMin));
|
|
@@ -22923,7 +22949,7 @@ self.R = R;
|
|
|
22923
22949
|
const { datasetReshapeInfo } = advancedVSeed;
|
|
22924
22950
|
const { foldInfo } = datasetReshapeInfo[0];
|
|
22925
22951
|
result.type = 'treemap';
|
|
22926
|
-
result.categoryField = '
|
|
22952
|
+
result.categoryField = 'key';
|
|
22927
22953
|
result.valueField = foldInfo.measureValue;
|
|
22928
22954
|
result.padding = 0;
|
|
22929
22955
|
result.animationEnter = {
|
|
@@ -22986,10 +23012,13 @@ self.R = R;
|
|
|
22986
23012
|
for(let i = 0; i < hierarchyFields.length; i++){
|
|
22987
23013
|
const field = hierarchyFields[i];
|
|
22988
23014
|
const value = String(datum[field]);
|
|
22989
|
-
|
|
23015
|
+
const nodeName = field === measureId && measureName && void 0 !== datum[measureName] ? String(datum[measureName]) : value;
|
|
23016
|
+
let child = currentNode.children.find((c)=>String(c[field]) === value);
|
|
22990
23017
|
if (!child) {
|
|
22991
23018
|
child = {
|
|
22992
|
-
name:
|
|
23019
|
+
name: nodeName,
|
|
23020
|
+
key: value,
|
|
23021
|
+
field,
|
|
22993
23022
|
children: []
|
|
22994
23023
|
};
|
|
22995
23024
|
for(let j = 0; j <= i; j++)child[hierarchyFields[j]] = datum[hierarchyFields[j]];
|
|
@@ -23076,14 +23105,14 @@ self.R = R;
|
|
|
23076
23105
|
});
|
|
23077
23106
|
const percentFormatter = createFormatter(percentFormat);
|
|
23078
23107
|
if (result.label) result.label.formatMethod = (_, datum)=>{
|
|
23079
|
-
const nodeName = datum.
|
|
23108
|
+
const nodeName = datum.value;
|
|
23080
23109
|
const dataArray = datum.datum;
|
|
23081
23110
|
if (!dataArray || !Array.isArray(dataArray)) return '';
|
|
23082
|
-
const findDataNode = (nodes,
|
|
23111
|
+
const findDataNode = (nodes, value)=>{
|
|
23083
23112
|
for (const node of nodes){
|
|
23084
|
-
if (node.
|
|
23113
|
+
if (node.value === value) return node;
|
|
23085
23114
|
if (node.children) {
|
|
23086
|
-
const found = findDataNode(node.children,
|
|
23115
|
+
const found = findDataNode(node.children, value);
|
|
23087
23116
|
if (found) return found;
|
|
23088
23117
|
}
|
|
23089
23118
|
}
|
|
@@ -23414,7 +23443,7 @@ self.R = R;
|
|
|
23414
23443
|
const { datasetReshapeInfo, encoding } = advancedVSeed;
|
|
23415
23444
|
const { foldInfo } = datasetReshapeInfo[0];
|
|
23416
23445
|
result.type = 'sunburst';
|
|
23417
|
-
result.categoryField = '
|
|
23446
|
+
result.categoryField = 'key';
|
|
23418
23447
|
result.valueField = foldInfo.measureValue;
|
|
23419
23448
|
result.outerRadius = 1;
|
|
23420
23449
|
result.innerRadius = 0;
|
|
@@ -23659,7 +23688,7 @@ self.R = R;
|
|
|
23659
23688
|
const { datasetReshapeInfo } = advancedVSeed;
|
|
23660
23689
|
const { foldInfo } = datasetReshapeInfo[0];
|
|
23661
23690
|
result.type = 'circlePacking';
|
|
23662
|
-
result.categoryField = '
|
|
23691
|
+
result.categoryField = 'key';
|
|
23663
23692
|
result.valueField = foldInfo.measureValue;
|
|
23664
23693
|
result.circlePacking = {
|
|
23665
23694
|
style: {
|
|
@@ -23755,169 +23784,1188 @@ self.R = R;
|
|
|
23755
23784
|
Builder.registerAdvancedPipeline('circlePacking', circlePackingAdvancedPipeline);
|
|
23756
23785
|
Builder.registerSpecPipeline('circlePacking', circlePackingSpecPipeline);
|
|
23757
23786
|
};
|
|
23758
|
-
const
|
|
23759
|
-
|
|
23760
|
-
|
|
23761
|
-
|
|
23762
|
-
|
|
23763
|
-
|
|
23764
|
-
|
|
23765
|
-
|
|
23766
|
-
|
|
23767
|
-
|
|
23768
|
-
|
|
23769
|
-
|
|
23770
|
-
|
|
23771
|
-
|
|
23772
|
-
|
|
23773
|
-
|
|
23774
|
-
|
|
23787
|
+
const hierarchySankeyConfig = (advancedVSeed, context)=>{
|
|
23788
|
+
const { vseed } = context;
|
|
23789
|
+
const { chartType } = vseed;
|
|
23790
|
+
const result = {
|
|
23791
|
+
...advancedVSeed
|
|
23792
|
+
};
|
|
23793
|
+
const pickedConfig = chunk_2T7K3PFL_i(vseed, [
|
|
23794
|
+
'backgroundColor',
|
|
23795
|
+
'color',
|
|
23796
|
+
'label',
|
|
23797
|
+
'legend',
|
|
23798
|
+
'tooltip'
|
|
23799
|
+
]);
|
|
23800
|
+
const config = replaceNullToUndefined(pickedConfig);
|
|
23801
|
+
result.config = {
|
|
23802
|
+
...result.config,
|
|
23803
|
+
[chartType]: {
|
|
23804
|
+
...config
|
|
23775
23805
|
}
|
|
23776
|
-
}
|
|
23777
|
-
|
|
23778
|
-
...getDefaultTableConfig(),
|
|
23779
|
-
borderColor: '#e3e5eb',
|
|
23780
|
-
bodyFontColor: '#141414',
|
|
23781
|
-
headerFontColor: '#21252c',
|
|
23782
|
-
headerBackgroundColor: '#f6f7f9',
|
|
23783
|
-
hoverBodyBackgroundColor: '#bedaff',
|
|
23784
|
-
hoverBodyInlineBackgroundColor: '#bedaff33',
|
|
23785
|
-
hoverHeaderBackgroundColor: '#D9DDE4',
|
|
23786
|
-
hoverHeaderInlineBackgroundColor: '#D9DDE455',
|
|
23787
|
-
selectedBorderColor: '#4080ff',
|
|
23788
|
-
selectedBackgroundColor: '#bedaff33',
|
|
23789
|
-
backgroundColor: 'transparent',
|
|
23790
|
-
barAxisColor: '#9EAFC6'
|
|
23791
|
-
});
|
|
23792
|
-
const getDarkTableConfig = ()=>({
|
|
23793
|
-
...getDefaultTableConfig(),
|
|
23794
|
-
borderColor: '#4b4e53',
|
|
23795
|
-
bodyFontColor: '#fdfdfd',
|
|
23796
|
-
headerFontColor: '#fdfdfd',
|
|
23797
|
-
headerBackgroundColor: '#36393e',
|
|
23798
|
-
hoverBodyBackgroundColor: '#4284ff66',
|
|
23799
|
-
hoverBodyInlineBackgroundColor: '#4284ff10',
|
|
23800
|
-
hoverHeaderBackgroundColor: '#6f7984cc',
|
|
23801
|
-
hoverHeaderInlineBackgroundColor: '#4b4f54',
|
|
23802
|
-
selectedBorderColor: '#3073f2',
|
|
23803
|
-
selectedBackgroundColor: '#4284ff33',
|
|
23804
|
-
barAxisColor: '#9EAFC6'
|
|
23805
|
-
});
|
|
23806
|
-
const pickPivotChartGridConfig = (tableConfig)=>({
|
|
23807
|
-
outlineBorderLineWidth: 0,
|
|
23808
|
-
frameCornerRadius: 0,
|
|
23809
|
-
borderColor: tableConfig.borderColor,
|
|
23810
|
-
bodyFontColor: tableConfig.bodyFontColor,
|
|
23811
|
-
headerFontColor: tableConfig.headerFontColor,
|
|
23812
|
-
headerBackgroundColor: 'transparent',
|
|
23813
|
-
hoverHeaderBackgroundColor: tableConfig.hoverHeaderBackgroundColor,
|
|
23814
|
-
hoverHeaderInlineBackgroundColor: tableConfig.hoverHeaderInlineBackgroundColor,
|
|
23815
|
-
titleFontColor: tableConfig.headerFontColor,
|
|
23816
|
-
titleFontSize: tableConfig.headerFontSize,
|
|
23817
|
-
titleFontWeight: 'bold'
|
|
23818
|
-
});
|
|
23819
|
-
const getLightPivotChartGridConfig = ()=>{
|
|
23820
|
-
const res = pickPivotChartGridConfig(getLightTableConfig());
|
|
23821
|
-
res.hoverHeaderInlineBackgroundColor = '#D9DDE446';
|
|
23822
|
-
res.chartGridColor = '#F0F1F6';
|
|
23823
|
-
res.axisLabelColor = '#BCC1CB';
|
|
23824
|
-
return res;
|
|
23806
|
+
};
|
|
23807
|
+
return result;
|
|
23825
23808
|
};
|
|
23826
|
-
const
|
|
23827
|
-
|
|
23828
|
-
|
|
23829
|
-
|
|
23809
|
+
const hierarchySankeyAdvancedPipeline = [
|
|
23810
|
+
page_page_page,
|
|
23811
|
+
initAdvancedVSeed_initAdvancedVSeed,
|
|
23812
|
+
default_defaultMeasures_defaultMeasures,
|
|
23813
|
+
defaultDimensions_defaultDimensions,
|
|
23814
|
+
defaultMeasureId,
|
|
23815
|
+
encodingAdapter([
|
|
23816
|
+
buildMeasures([
|
|
23817
|
+
'size',
|
|
23818
|
+
'detail'
|
|
23819
|
+
]),
|
|
23820
|
+
defaultEncodingForHierarchy
|
|
23821
|
+
], [
|
|
23822
|
+
buildMeasures([
|
|
23823
|
+
'size',
|
|
23824
|
+
'detail'
|
|
23825
|
+
]),
|
|
23826
|
+
encodingForHierarchy,
|
|
23827
|
+
pickDimensionsForReshape
|
|
23828
|
+
]),
|
|
23829
|
+
pivotAdapter([
|
|
23830
|
+
reshapeWithEncoding
|
|
23831
|
+
], [
|
|
23832
|
+
pivotReshapeWithEncoding
|
|
23833
|
+
]),
|
|
23834
|
+
hierarchySankeyConfig,
|
|
23835
|
+
theme_theme,
|
|
23836
|
+
annotation_annotation
|
|
23837
|
+
];
|
|
23838
|
+
const initHierarchySankey = (spec, context)=>{
|
|
23839
|
+
const result = {
|
|
23840
|
+
...spec
|
|
23841
|
+
};
|
|
23842
|
+
const { advancedVSeed } = context;
|
|
23843
|
+
const { datasetReshapeInfo } = advancedVSeed;
|
|
23844
|
+
const { foldInfo } = datasetReshapeInfo[0];
|
|
23845
|
+
result.type = 'sankey';
|
|
23846
|
+
result.nodeKey = (datum)=>datum?.key;
|
|
23847
|
+
result.categoryField = 'key';
|
|
23848
|
+
result.valueField = foldInfo.measureValue;
|
|
23849
|
+
result.nodeAlign = 'justify';
|
|
23850
|
+
result.nodeGap = 8;
|
|
23851
|
+
result.nodeWidth = 12;
|
|
23852
|
+
result.minNodeHeight = 4;
|
|
23853
|
+
result.iterations = 0;
|
|
23854
|
+
result.padding = {
|
|
23855
|
+
top: 0,
|
|
23856
|
+
left: 2,
|
|
23857
|
+
bottom: 0,
|
|
23858
|
+
right: 2
|
|
23859
|
+
};
|
|
23860
|
+
result.link = {
|
|
23861
|
+
style: {
|
|
23862
|
+
pathType: 'smooth'
|
|
23863
|
+
}
|
|
23864
|
+
};
|
|
23865
|
+
return result;
|
|
23830
23866
|
};
|
|
23831
|
-
const
|
|
23832
|
-
|
|
23833
|
-
|
|
23834
|
-
|
|
23835
|
-
|
|
23836
|
-
|
|
23837
|
-
}
|
|
23838
|
-
|
|
23839
|
-
|
|
23840
|
-
|
|
23841
|
-
|
|
23842
|
-
|
|
23843
|
-
|
|
23844
|
-
|
|
23845
|
-
|
|
23846
|
-
|
|
23847
|
-
|
|
23848
|
-
|
|
23849
|
-
|
|
23850
|
-
lineColor: '#21252C'
|
|
23851
|
-
});
|
|
23852
|
-
const getLightCrosshairRect = ()=>({
|
|
23853
|
-
visible: true,
|
|
23854
|
-
labelVisible: true,
|
|
23855
|
-
labelColor: '#ffffff',
|
|
23856
|
-
labelBackgroundColor: '#364159',
|
|
23857
|
-
rectColor: '#D9DDE4'
|
|
23858
|
-
});
|
|
23859
|
-
const getLightColorScheme = ()=>[
|
|
23860
|
-
'#8D72F6',
|
|
23861
|
-
'#5766EC',
|
|
23862
|
-
'#66A3FE',
|
|
23863
|
-
'#51D5E6',
|
|
23864
|
-
'#4EC0B3',
|
|
23865
|
-
'#F9DF90',
|
|
23866
|
-
'#F9AD71',
|
|
23867
|
-
'#ED8888',
|
|
23868
|
-
'#E9A0C3',
|
|
23869
|
-
'#D77DD3'
|
|
23870
|
-
];
|
|
23871
|
-
const getDarkColorScheme = ()=>[
|
|
23872
|
-
'#2E62F1',
|
|
23873
|
-
'#4DC36A',
|
|
23874
|
-
'#FF8406',
|
|
23875
|
-
'#FFCC00',
|
|
23876
|
-
'#4F44CF',
|
|
23877
|
-
'#5AC8FA',
|
|
23878
|
-
'#003A8C',
|
|
23879
|
-
'#B08AE2',
|
|
23880
|
-
'#FF6341',
|
|
23881
|
-
'#98DD62'
|
|
23882
|
-
];
|
|
23883
|
-
const getLightLinearColorScheme = ()=>[
|
|
23884
|
-
'#C2CEFF',
|
|
23885
|
-
'#5766EC'
|
|
23886
|
-
];
|
|
23887
|
-
const getDarkLinearColorScheme = ()=>[
|
|
23888
|
-
'#A0CEFF',
|
|
23889
|
-
'#2E62F1'
|
|
23867
|
+
const datasetHierarchySankey = (spec, context)=>{
|
|
23868
|
+
const result = {
|
|
23869
|
+
...spec
|
|
23870
|
+
};
|
|
23871
|
+
const { advancedVSeed } = context;
|
|
23872
|
+
const { dataset, datasetReshapeInfo, measures } = advancedVSeed;
|
|
23873
|
+
const { foldInfo, unfoldInfo } = datasetReshapeInfo[0];
|
|
23874
|
+
const hierarchyFields = advancedVSeed.encoding?.hierarchy || [];
|
|
23875
|
+
const measureKeys = findAllMeasures(measures).map((m)=>m.id);
|
|
23876
|
+
const nodes = buildHierarchySankeyNodes(dataset, hierarchyFields, foldInfo, unfoldInfo, measureKeys);
|
|
23877
|
+
result.data = [
|
|
23878
|
+
{
|
|
23879
|
+
id: 'data',
|
|
23880
|
+
values: [
|
|
23881
|
+
{
|
|
23882
|
+
nodes
|
|
23883
|
+
}
|
|
23884
|
+
]
|
|
23885
|
+
}
|
|
23890
23886
|
];
|
|
23891
|
-
|
|
23892
|
-
|
|
23893
|
-
|
|
23894
|
-
|
|
23895
|
-
|
|
23896
|
-
}
|
|
23897
|
-
|
|
23898
|
-
|
|
23899
|
-
|
|
23900
|
-
|
|
23901
|
-
|
|
23902
|
-
|
|
23903
|
-
|
|
23904
|
-
|
|
23905
|
-
|
|
23906
|
-
|
|
23907
|
-
|
|
23908
|
-
|
|
23909
|
-
|
|
23910
|
-
|
|
23911
|
-
|
|
23912
|
-
|
|
23913
|
-
|
|
23914
|
-
|
|
23915
|
-
|
|
23916
|
-
|
|
23917
|
-
|
|
23918
|
-
|
|
23919
|
-
|
|
23920
|
-
|
|
23887
|
+
return result;
|
|
23888
|
+
};
|
|
23889
|
+
const buildHierarchySankeyNodes = (dataset, hierarchyFields, foldInfo, unfoldInfo, measureKeys)=>{
|
|
23890
|
+
if (!hierarchyFields.length) return dataset;
|
|
23891
|
+
const { measureValue, measureId, measureName } = foldInfo;
|
|
23892
|
+
const { encodingColor, encodingColorId } = unfoldInfo;
|
|
23893
|
+
const collectFields = [
|
|
23894
|
+
measureId,
|
|
23895
|
+
measureName,
|
|
23896
|
+
encodingColor,
|
|
23897
|
+
encodingColorId
|
|
23898
|
+
].filter(Boolean);
|
|
23899
|
+
const root = {
|
|
23900
|
+
name: 'root',
|
|
23901
|
+
children: []
|
|
23902
|
+
};
|
|
23903
|
+
dataset.forEach((datum)=>{
|
|
23904
|
+
let currentNode = root;
|
|
23905
|
+
for(let i = 0; i < hierarchyFields.length; i++){
|
|
23906
|
+
const field = hierarchyFields[i];
|
|
23907
|
+
const value = String(datum[field]);
|
|
23908
|
+
const nodeName = field === measureId && measureName && void 0 !== datum[measureName] ? String(datum[measureName]) : value;
|
|
23909
|
+
let child = currentNode.children.find((c)=>c.name === nodeName);
|
|
23910
|
+
if (!child) {
|
|
23911
|
+
const pathValues = hierarchyFields.slice(0, i + 1).map((key)=>String(datum[key]));
|
|
23912
|
+
child = {
|
|
23913
|
+
field: field,
|
|
23914
|
+
key: nodeName,
|
|
23915
|
+
name: nodeName,
|
|
23916
|
+
color: nodeName,
|
|
23917
|
+
path: pathValues.join("-"),
|
|
23918
|
+
children: []
|
|
23919
|
+
};
|
|
23920
|
+
for(let j = 0; j <= i; j++)child[hierarchyFields[j]] = datum[hierarchyFields[j]];
|
|
23921
|
+
currentNode.children.push(child);
|
|
23922
|
+
}
|
|
23923
|
+
currentNode = child;
|
|
23924
|
+
}
|
|
23925
|
+
if (!currentNode.isLeaf) {
|
|
23926
|
+
Object.assign(currentNode, datum);
|
|
23927
|
+
currentNode.isLeaf = true;
|
|
23928
|
+
if (measureValue) currentNode[measureValue] = 0;
|
|
23929
|
+
measureKeys.forEach((key)=>{
|
|
23930
|
+
currentNode[key] = 0;
|
|
23931
|
+
});
|
|
23932
|
+
collectFields.forEach((field)=>{
|
|
23933
|
+
currentNode[`_set_${field}`] = new Set();
|
|
23934
|
+
});
|
|
23935
|
+
}
|
|
23936
|
+
if (measureValue && void 0 !== datum[measureValue]) currentNode[measureValue] += Number(datum[measureValue]);
|
|
23937
|
+
measureKeys.forEach((key)=>{
|
|
23938
|
+
if (void 0 !== datum[key]) currentNode[key] = (currentNode[key] || 0) + Number(datum[key]);
|
|
23939
|
+
});
|
|
23940
|
+
collectFields.forEach((field)=>{
|
|
23941
|
+
if (datum[field]) currentNode[`_set_${field}`].add(datum[field]);
|
|
23942
|
+
});
|
|
23943
|
+
if (measureValue) currentNode.value = currentNode[measureValue];
|
|
23944
|
+
});
|
|
23945
|
+
const flattenSets = (node)=>{
|
|
23946
|
+
collectFields.forEach((field)=>{
|
|
23947
|
+
const setKey = `_set_${field}`;
|
|
23948
|
+
if (node[setKey]) {
|
|
23949
|
+
node[field] = Array.from(node[setKey]).join('+');
|
|
23950
|
+
delete node[setKey];
|
|
23951
|
+
}
|
|
23952
|
+
});
|
|
23953
|
+
};
|
|
23954
|
+
const mergeCollectFieldsFromChildren = (node)=>{
|
|
23955
|
+
collectFields.forEach((field)=>{
|
|
23956
|
+
const merged = new Set();
|
|
23957
|
+
node.children.forEach((child)=>{
|
|
23958
|
+
if (child[field]) child[field].split('+').forEach((v)=>merged.add(v));
|
|
23959
|
+
});
|
|
23960
|
+
if (merged.size > 0) node[field] = Array.from(merged).join('+');
|
|
23961
|
+
});
|
|
23962
|
+
};
|
|
23963
|
+
const aggregate = (node)=>{
|
|
23964
|
+
if (node.isLeaf) {
|
|
23965
|
+
flattenSets(node);
|
|
23966
|
+
node.outDegree = 0;
|
|
23967
|
+
return node.value || 0;
|
|
23968
|
+
}
|
|
23969
|
+
if (!node.children?.length) {
|
|
23970
|
+
node.outDegree = 0;
|
|
23971
|
+
return node.value || 0;
|
|
23972
|
+
}
|
|
23973
|
+
let sum = 0;
|
|
23974
|
+
node.children.forEach((child)=>{
|
|
23975
|
+
sum += aggregate(child);
|
|
23976
|
+
measureKeys.forEach((key)=>{
|
|
23977
|
+
node[key] = (node[key] || 0) + (child[key] || 0);
|
|
23978
|
+
});
|
|
23979
|
+
});
|
|
23980
|
+
node.value = sum;
|
|
23981
|
+
if (measureValue) node[measureValue] = sum;
|
|
23982
|
+
node.outDegree = node.children.length;
|
|
23983
|
+
mergeCollectFieldsFromChildren(node);
|
|
23984
|
+
return sum;
|
|
23985
|
+
};
|
|
23986
|
+
const fillInDegree = (node, parent)=>{
|
|
23987
|
+
node.inDegree = parent ? 1 : 0;
|
|
23988
|
+
node.children?.forEach((child)=>fillInDegree(child, node));
|
|
23989
|
+
};
|
|
23990
|
+
root.children.forEach(aggregate);
|
|
23991
|
+
root.children.forEach((child)=>fillInDegree(child));
|
|
23992
|
+
return root.children;
|
|
23993
|
+
};
|
|
23994
|
+
const getHierarchySankeyNodesFromSpec = (spec, fallback = [])=>{
|
|
23995
|
+
const nodes = spec.data?.[0]?.values?.[0]?.nodes;
|
|
23996
|
+
return Array.isArray(nodes) ? nodes : fallback;
|
|
23997
|
+
};
|
|
23998
|
+
const tooltipHierarchySankey = (spec, context)=>{
|
|
23999
|
+
const result = tooltip_tooltip()(spec, context);
|
|
24000
|
+
const { advancedVSeed, vseed } = context;
|
|
24001
|
+
const { datasetReshapeInfo, dimensions = [], encoding, dataset = [] } = advancedVSeed;
|
|
24002
|
+
const { foldInfo, unfoldInfo } = datasetReshapeInfo[0];
|
|
24003
|
+
const hierarchyDataset = getHierarchySankeyNodesFromSpec(result, dataset);
|
|
24004
|
+
if (result.tooltip) result.tooltip.mark = {
|
|
24005
|
+
title: {
|
|
24006
|
+
visible: true,
|
|
24007
|
+
value: (value)=>createTitle(value, dimensions, hierarchyDataset, advancedVSeed.locale)
|
|
24008
|
+
},
|
|
24009
|
+
content: tooltipHierarchySankey_createMarkContent(encoding.tooltip || [], dimensions, vseed.measures, hierarchyDataset, foldInfo, unfoldInfo, advancedVSeed.locale)
|
|
24010
|
+
};
|
|
24011
|
+
return result;
|
|
24012
|
+
};
|
|
24013
|
+
const flattenHierarchyNodes = (nodes = [], depth = 0)=>nodes.flatMap((node)=>[
|
|
24014
|
+
{
|
|
24015
|
+
datum: node,
|
|
24016
|
+
depth
|
|
24017
|
+
},
|
|
24018
|
+
...flattenHierarchyNodes(node.children || [], depth + 1)
|
|
24019
|
+
]);
|
|
24020
|
+
const createNodeMetaMap = (dataset = [])=>flattenHierarchyNodes(dataset).reduce((prev, item)=>{
|
|
24021
|
+
const key = String(item.datum.key ?? '');
|
|
24022
|
+
if (key) prev[key] = item;
|
|
24023
|
+
return prev;
|
|
24024
|
+
}, {});
|
|
24025
|
+
const isLinkDatum = (value)=>{
|
|
24026
|
+
const datum = value;
|
|
24027
|
+
return !!datum && void 0 !== datum.source && void 0 !== datum.target;
|
|
24028
|
+
};
|
|
24029
|
+
const getHierarchyPath = (value)=>{
|
|
24030
|
+
const datum = value;
|
|
24031
|
+
if (!datum) return [];
|
|
24032
|
+
if (Array.isArray(datum.datum)) return datum.datum;
|
|
24033
|
+
if (datum.datum && Array.isArray(datum.datum.datum)) return datum.datum.datum;
|
|
24034
|
+
if (datum.datum && 'object' == typeof datum.datum) return [
|
|
24035
|
+
datum.datum
|
|
24036
|
+
];
|
|
24037
|
+
return [
|
|
24038
|
+
datum
|
|
24039
|
+
];
|
|
24040
|
+
};
|
|
24041
|
+
const getHierarchyDatum = (value)=>{
|
|
24042
|
+
const path = getHierarchyPath(value);
|
|
24043
|
+
if (!path.length) return;
|
|
24044
|
+
const datum = value;
|
|
24045
|
+
if ('number' == typeof datum?.depth && path[datum.depth]) return path[datum.depth];
|
|
24046
|
+
return path[path.length - 1];
|
|
24047
|
+
};
|
|
24048
|
+
const createTitle = (value, dimensions = [], dataset = [], locale)=>{
|
|
24049
|
+
if (isLinkDatum(value)) {
|
|
24050
|
+
const nodeMetaMap = createNodeMetaMap(dataset);
|
|
24051
|
+
const datum = value;
|
|
24052
|
+
const source = nodeMetaMap[String(datum.source ?? '')]?.datum;
|
|
24053
|
+
const target = nodeMetaMap[String(datum.target ?? '')]?.datum;
|
|
24054
|
+
return [
|
|
24055
|
+
source?.name,
|
|
24056
|
+
target?.name
|
|
24057
|
+
].filter(Boolean).join(' -> ');
|
|
24058
|
+
}
|
|
24059
|
+
const path = getHierarchyPath(value);
|
|
24060
|
+
if (!path.length) return '';
|
|
24061
|
+
return path.map((item, index)=>{
|
|
24062
|
+
const dim = dimensions[index];
|
|
24063
|
+
const formatter = createFormatterByDimension(dim, locale);
|
|
24064
|
+
return formatter(String(item?.name ?? ''));
|
|
24065
|
+
}).join(' / ');
|
|
24066
|
+
};
|
|
24067
|
+
const tooltipHierarchySankey_createMarkContent = (tooltip, dimensions = [], measures = [], dataset = [], foldInfo, _unfoldInfo, locale)=>{
|
|
24068
|
+
const nodeMetaMap = createNodeMetaMap(dataset);
|
|
24069
|
+
const dims = C(dimensions.filter((item)=>tooltip.includes(item.id)), T((item)=>item.id), T((item)=>item.alias));
|
|
24070
|
+
const meas = C(measures.filter((item)=>tooltip.includes(item.id)), T((item)=>item.id), T((item)=>item.alias));
|
|
24071
|
+
const dimContent = dims.map((item)=>({
|
|
24072
|
+
visible: (value)=>{
|
|
24073
|
+
if (isLinkDatum(value)) return false;
|
|
24074
|
+
const datum = getHierarchyDatum(value);
|
|
24075
|
+
return datum?.[item.id] !== void 0 && datum?.[item.id] !== null;
|
|
24076
|
+
},
|
|
24077
|
+
hasShape: true,
|
|
24078
|
+
shapeType: 'rectRound',
|
|
24079
|
+
key: item.alias || item.id,
|
|
24080
|
+
value: (value)=>{
|
|
24081
|
+
const datum = getHierarchyDatum(value);
|
|
24082
|
+
const formatter = createFormatterByDimension(item, locale);
|
|
24083
|
+
return datum ? formatter(datum[item.id]) : '';
|
|
24084
|
+
}
|
|
24085
|
+
}));
|
|
24086
|
+
const measureContent = meas.map((item)=>({
|
|
24087
|
+
visible: (value)=>!isLinkDatum(value),
|
|
24088
|
+
hasShape: true,
|
|
24089
|
+
shapeType: 'rectRound',
|
|
24090
|
+
key: item.alias || item.id,
|
|
24091
|
+
value: (value)=>{
|
|
24092
|
+
const datum = getHierarchyDatum(value);
|
|
24093
|
+
if (!datum) return '';
|
|
24094
|
+
const measure = findMeasureById(measures, item.id);
|
|
24095
|
+
const formatter = createFormatterByMeasure(measure);
|
|
24096
|
+
const measureValue = datum[item.id] ?? datum[foldInfo.measureValue];
|
|
24097
|
+
return formatter(measureValue);
|
|
24098
|
+
}
|
|
24099
|
+
}));
|
|
24100
|
+
const linkDimensionContent = dims.map((item)=>({
|
|
24101
|
+
visible: (value)=>{
|
|
24102
|
+
if (!isLinkDatum(value)) return false;
|
|
24103
|
+
const datum = value;
|
|
24104
|
+
const sourceMeta = nodeMetaMap[String(datum.source ?? '')];
|
|
24105
|
+
const targetMeta = nodeMetaMap[String(datum.target ?? '')];
|
|
24106
|
+
return sourceMeta?.datum?.[item.id] !== void 0 || targetMeta?.datum?.[item.id] !== void 0;
|
|
24107
|
+
},
|
|
24108
|
+
hasShape: true,
|
|
24109
|
+
shapeType: 'rectRound',
|
|
24110
|
+
key: item.alias || item.id,
|
|
24111
|
+
value: (value)=>{
|
|
24112
|
+
const datum = value;
|
|
24113
|
+
const sourceMeta = nodeMetaMap[String(datum.source ?? '')];
|
|
24114
|
+
const targetMeta = nodeMetaMap[String(datum.target ?? '')];
|
|
24115
|
+
const matchedNode = sourceMeta?.depth !== void 0 && dimensions[sourceMeta.depth]?.id === item.id ? sourceMeta.datum : targetMeta?.depth !== void 0 && dimensions[targetMeta.depth]?.id === item.id ? targetMeta.datum : sourceMeta?.datum?.[item.id] !== void 0 ? sourceMeta.datum : targetMeta?.datum;
|
|
24116
|
+
const formatter = createFormatterByDimension(item, locale);
|
|
24117
|
+
const rawValue = matchedNode?.[item.id] ?? matchedNode?.name;
|
|
24118
|
+
return null != rawValue ? formatter(rawValue) : '';
|
|
24119
|
+
}
|
|
24120
|
+
}));
|
|
24121
|
+
const linkMeasureContent = meas.map((item)=>({
|
|
24122
|
+
visible: (value)=>isLinkDatum(value),
|
|
24123
|
+
hasShape: true,
|
|
24124
|
+
shapeType: 'rectRound',
|
|
24125
|
+
key: item.alias || item.id,
|
|
24126
|
+
value: (value)=>{
|
|
24127
|
+
const datum = value;
|
|
24128
|
+
const measure = findMeasureById(measures, item.id);
|
|
24129
|
+
const formatter = createFormatterByMeasure(measure);
|
|
24130
|
+
const measureValue = datum[item.id] ?? datum[foldInfo.measureValue] ?? datum.value;
|
|
24131
|
+
return formatter(measureValue);
|
|
24132
|
+
}
|
|
24133
|
+
}));
|
|
24134
|
+
return [
|
|
24135
|
+
...dimContent,
|
|
24136
|
+
...linkDimensionContent,
|
|
24137
|
+
...measureContent,
|
|
24138
|
+
...linkMeasureContent
|
|
24139
|
+
];
|
|
24140
|
+
};
|
|
24141
|
+
const labelHierarchySankey = (spec, context)=>{
|
|
24142
|
+
const result = {
|
|
24143
|
+
...spec
|
|
24144
|
+
};
|
|
24145
|
+
const { advancedVSeed, vseed } = context;
|
|
24146
|
+
const { datasetReshapeInfo } = advancedVSeed;
|
|
24147
|
+
const { chartType, encoding } = advancedVSeed;
|
|
24148
|
+
const baseConfig = advancedVSeed.config[chartType];
|
|
24149
|
+
const foldInfo = datasetReshapeInfo[0].foldInfo;
|
|
24150
|
+
const { label } = baseConfig;
|
|
24151
|
+
result.label = labelHierarchySankey_buildLabel(label, vseed.measures, vseed.dimensions, advancedVSeed.dimensions, advancedVSeed.measures, encoding, [
|
|
24152
|
+
foldInfo
|
|
24153
|
+
]);
|
|
24154
|
+
return result;
|
|
24155
|
+
};
|
|
24156
|
+
const labelHierarchySankey_buildLabel = (label, vseedMeasures = [], vseedDimensions = [], advancedVSeedDimensions, advancedVSeedMeasures, encoding, foldInfoList, locale = 'zh-CN')=>{
|
|
24157
|
+
const { enable, wrap, showValue, showValuePercent, showDimension, labelOverlap, labelColorSmartInvert, labelStroke, labelColor, labelFontSize, labelFontWeight, labelBackgroundColor, labelPosition, autoFormat, numFormat = {} } = label;
|
|
24158
|
+
const hasDimLabelEncoding = vseedDimensions.some((item)=>encoding.label?.includes(item.id));
|
|
24159
|
+
const labelDims = T(hasDimLabelEncoding ? vseedDimensions.filter((item)=>encoding.label?.includes(item.id)) : showDimension ? advancedVSeedDimensions.filter((d)=>d.id !== MeasureId && 'row' !== d.encoding && 'column' !== d.encoding) : [], (item)=>item.id);
|
|
24160
|
+
const labelMeas = T(vseedMeasures.filter((item)=>encoding.label?.includes(item.id)), (item)=>item.id);
|
|
24161
|
+
const percentFormat = chunk_5S4PYKVY_t(numFormat, {
|
|
24162
|
+
type: 'percent'
|
|
24163
|
+
});
|
|
24164
|
+
const percentFormatter = createFormatter(percentFormat);
|
|
24165
|
+
const result = {
|
|
24166
|
+
visible: enable,
|
|
24167
|
+
dataFilter: (data)=>data.filter((entry)=>{
|
|
24168
|
+
if (entry.data?.[DATUM_HIDE_KEY]) return false;
|
|
24169
|
+
const shouldApply = label.dynamicFilter ? selectorWithDynamicFilter(entry.data, label.dynamicFilter, label.selector) : selector_selector(entry.data, label.selector, 'Or');
|
|
24170
|
+
return shouldApply;
|
|
24171
|
+
}),
|
|
24172
|
+
formatMethod: (_, datum)=>{
|
|
24173
|
+
const result = [];
|
|
24174
|
+
const dimLabels = labelDims.flatMap((item)=>{
|
|
24175
|
+
const id = item.id;
|
|
24176
|
+
const rawValue = datum[id];
|
|
24177
|
+
if (null == rawValue || '' === rawValue) return [];
|
|
24178
|
+
const formatter = createFormatterByDimension(item, locale);
|
|
24179
|
+
return [
|
|
24180
|
+
formatter(rawValue)
|
|
24181
|
+
];
|
|
24182
|
+
});
|
|
24183
|
+
const meaLabels = labelMeas.flatMap((item)=>{
|
|
24184
|
+
const rawValue = datum[item.id];
|
|
24185
|
+
if (null == rawValue || '' === rawValue) return [];
|
|
24186
|
+
return [
|
|
24187
|
+
generateMeasureValue(rawValue, item, autoFormat, numFormat)
|
|
24188
|
+
];
|
|
24189
|
+
});
|
|
24190
|
+
result.push(...dimLabels);
|
|
24191
|
+
foldInfoList.forEach((foldInfo)=>{
|
|
24192
|
+
const { measureId, measureValue, statistics } = foldInfo;
|
|
24193
|
+
const measure = findMeasureById(advancedVSeedMeasures, datum[measureId]);
|
|
24194
|
+
if (measure) {
|
|
24195
|
+
const measureValueLabel = generateMeasureValue(datum[measureValue], measure, autoFormat, numFormat);
|
|
24196
|
+
if (showValue) result.push(measureValueLabel);
|
|
24197
|
+
if (showValuePercent) {
|
|
24198
|
+
if (chunk_6GTAPB47_e(datum['__VCHART_ARC_RATIO'])) result.push(generateMeasurePercent(datum['__VCHART_ARC_RATIO'], 1, percentFormatter));
|
|
24199
|
+
else if (statistics && chunk_6GTAPB47_e(statistics.sum)) result.push(generateMeasurePercent(datum[measureValue], statistics.sum, percentFormatter));
|
|
24200
|
+
}
|
|
24201
|
+
}
|
|
24202
|
+
});
|
|
24203
|
+
result.push(...meaLabels);
|
|
24204
|
+
if (wrap) return result;
|
|
24205
|
+
return result.join(' ');
|
|
24206
|
+
},
|
|
24207
|
+
syncState: true,
|
|
24208
|
+
position: labelPosition,
|
|
24209
|
+
style: {
|
|
24210
|
+
stroke: labelStroke,
|
|
24211
|
+
fill: labelColor,
|
|
24212
|
+
fontSize: labelFontSize,
|
|
24213
|
+
fontWeight: labelFontWeight,
|
|
24214
|
+
background: labelBackgroundColor
|
|
24215
|
+
},
|
|
24216
|
+
smartInvert: labelColorSmartInvert
|
|
24217
|
+
};
|
|
24218
|
+
if (labelColorSmartInvert) result.style.lineWidth = 2;
|
|
24219
|
+
if (labelOverlap) result.overlap = {
|
|
24220
|
+
hideOnHit: true,
|
|
24221
|
+
clampForce: true
|
|
24222
|
+
};
|
|
24223
|
+
return result;
|
|
24224
|
+
};
|
|
24225
|
+
const sankeyInteractive = (spec, context)=>{
|
|
24226
|
+
const result = {
|
|
24227
|
+
...spec
|
|
24228
|
+
};
|
|
24229
|
+
const { vseed } = context;
|
|
24230
|
+
result.emphasis = {
|
|
24231
|
+
enable: true,
|
|
24232
|
+
effect: isSankey(vseed) ? 'adjacency' : 'related'
|
|
24233
|
+
};
|
|
24234
|
+
result.node = {
|
|
24235
|
+
...result.node || {},
|
|
24236
|
+
state: {
|
|
24237
|
+
...result.node?.state || {},
|
|
24238
|
+
blur: {
|
|
24239
|
+
opacity: 0.2
|
|
24240
|
+
}
|
|
24241
|
+
}
|
|
24242
|
+
};
|
|
24243
|
+
result.link = {
|
|
24244
|
+
...result.link || {},
|
|
24245
|
+
state: {
|
|
24246
|
+
...result.link?.state || {},
|
|
24247
|
+
blur: {
|
|
24248
|
+
opacity: 0.05
|
|
24249
|
+
}
|
|
24250
|
+
}
|
|
24251
|
+
};
|
|
24252
|
+
return result;
|
|
24253
|
+
};
|
|
24254
|
+
const datasetPivotHierarchySankey = (spec, context)=>{
|
|
24255
|
+
const result = {
|
|
24256
|
+
...spec
|
|
24257
|
+
};
|
|
24258
|
+
const { advancedVSeed } = context;
|
|
24259
|
+
const { dataset, datasetReshapeInfo, measures } = advancedVSeed;
|
|
24260
|
+
const measureKeys = findAllMeasures(measures).map((m)=>m.id);
|
|
24261
|
+
const hierarchyFields = advancedVSeed.encoding?.hierarchy || [];
|
|
24262
|
+
const rows = advancedVSeed.encoding?.row || [];
|
|
24263
|
+
const columns = advancedVSeed.encoding?.column || [];
|
|
24264
|
+
const pivotDims = [
|
|
24265
|
+
...rows,
|
|
24266
|
+
...columns
|
|
24267
|
+
];
|
|
24268
|
+
const records = dataset.reduce((pre, cur, index)=>{
|
|
24269
|
+
const id = datasetReshapeInfo[index].id;
|
|
24270
|
+
const { foldInfo, unfoldInfo } = datasetReshapeInfo[index];
|
|
24271
|
+
if (pivotDims.length > 0) {
|
|
24272
|
+
const groupedDataset = groupByDimensions(cur, pivotDims);
|
|
24273
|
+
pre[id] = groupedDataset.map((data)=>({
|
|
24274
|
+
...Object.fromEntries(pivotDims.map((dim)=>[
|
|
24275
|
+
dim,
|
|
24276
|
+
data[dim]
|
|
24277
|
+
])),
|
|
24278
|
+
nodes: buildHierarchySankeyNodes(data.children, hierarchyFields, foldInfo, unfoldInfo, measureKeys)
|
|
24279
|
+
}));
|
|
24280
|
+
} else pre[id] = [
|
|
24281
|
+
{
|
|
24282
|
+
nodes: buildHierarchySankeyNodes(cur, hierarchyFields, foldInfo, unfoldInfo, measureKeys)
|
|
24283
|
+
}
|
|
24284
|
+
];
|
|
24285
|
+
return pre;
|
|
24286
|
+
}, {});
|
|
24287
|
+
return {
|
|
24288
|
+
...result,
|
|
24289
|
+
records
|
|
24290
|
+
};
|
|
24291
|
+
};
|
|
24292
|
+
const hierarchySankey = [
|
|
24293
|
+
fontFamilyTheme,
|
|
24294
|
+
initHierarchySankey,
|
|
24295
|
+
datasetHierarchySankey,
|
|
24296
|
+
colorAdapter(color_color, linearColor),
|
|
24297
|
+
background_backgroundColor,
|
|
24298
|
+
colorAdapter(discreteLegend, colorLegend),
|
|
24299
|
+
tooltipHierarchySankey,
|
|
24300
|
+
labelHierarchySankey,
|
|
24301
|
+
sankeyInteractive
|
|
24302
|
+
];
|
|
24303
|
+
const pivotHierarchySankey = [
|
|
24304
|
+
initPivot,
|
|
24305
|
+
pivotGridStyle,
|
|
24306
|
+
pivotIndicatorsAsCol,
|
|
24307
|
+
pivotHideIndicatorName,
|
|
24308
|
+
datasetPivotHierarchySankey,
|
|
24309
|
+
pivotIndicators_pivotIndicators([
|
|
24310
|
+
fontFamilyTheme,
|
|
24311
|
+
initHierarchySankey,
|
|
24312
|
+
datasetHierarchySankey,
|
|
24313
|
+
colorAdapter(color_color, linearColor),
|
|
24314
|
+
background_backgroundColor,
|
|
24315
|
+
tooltipHierarchySankey,
|
|
24316
|
+
labelHierarchySankey,
|
|
24317
|
+
sankeyInteractive
|
|
24318
|
+
]),
|
|
24319
|
+
pivotRowDimensions,
|
|
24320
|
+
pivotColumnDimensions,
|
|
24321
|
+
pivotTitle,
|
|
24322
|
+
colorAdapter(pivotDiscreteLegend, pivotColorLegend)
|
|
24323
|
+
];
|
|
24324
|
+
const hierarchySankeySpecPipeline = [
|
|
24325
|
+
pivotAdapter_pivotAdapter(hierarchySankey, pivotHierarchySankey)
|
|
24326
|
+
];
|
|
24327
|
+
const registerHierarchySankey = ()=>{
|
|
24328
|
+
Builder.registerAdvancedPipeline('hierarchySankey', hierarchySankeyAdvancedPipeline);
|
|
24329
|
+
Builder.registerSpecPipeline('hierarchySankey', hierarchySankeySpecPipeline);
|
|
24330
|
+
};
|
|
24331
|
+
const defaultEncodingForSankey = (advancedVSeed)=>{
|
|
24332
|
+
const { measures = [], reshapeMeasures = [], dimensions = [] } = advancedVSeed;
|
|
24333
|
+
const encoding = {};
|
|
24334
|
+
sankey_generateDefaultDimensionEncoding(dimensions, encoding, hasMultipleMeasureInSingleView(reshapeMeasures));
|
|
24335
|
+
sankey_generateDefaultMeasureEncoding(measures, encoding);
|
|
24336
|
+
return {
|
|
24337
|
+
...advancedVSeed,
|
|
24338
|
+
encoding
|
|
24339
|
+
};
|
|
24340
|
+
};
|
|
24341
|
+
const encodingForSankey = (advancedVSeed)=>{
|
|
24342
|
+
const { measures = [], reshapeMeasures = [], dimensions = [] } = advancedVSeed;
|
|
24343
|
+
const hasDimensionEncoding = dimensions.some((item)=>item.encoding);
|
|
24344
|
+
const hasMeasureEncoding = measures.some((item)=>item.encoding);
|
|
24345
|
+
const encoding = {};
|
|
24346
|
+
const hasMulti = hasMultipleMeasureInSingleView(reshapeMeasures);
|
|
24347
|
+
if (hasDimensionEncoding) sankey_generateDimensionEncoding(dimensions, encoding, hasMulti);
|
|
24348
|
+
else sankey_generateDefaultDimensionEncoding(dimensions, encoding, hasMulti);
|
|
24349
|
+
if (hasMeasureEncoding) sankey_generateMeasureEncoding(measures, encoding);
|
|
24350
|
+
else sankey_generateDefaultMeasureEncoding(measures, encoding);
|
|
24351
|
+
return {
|
|
24352
|
+
...advancedVSeed,
|
|
24353
|
+
encoding
|
|
24354
|
+
};
|
|
24355
|
+
};
|
|
24356
|
+
const sankey_generateDefaultDimensionEncoding = (dimensions, encoding, isMultiMeasure)=>{
|
|
24357
|
+
const uniqueDimIds = chunk_QJLMYOTX_i(dimensions.map((d)=>d.id));
|
|
24358
|
+
const sourceTargetDimIds = isMultiMeasure ? uniqueDimIds : uniqueDimIds.filter((d)=>d !== MeasureId);
|
|
24359
|
+
encoding.source = sourceTargetDimIds.slice(0, 1);
|
|
24360
|
+
encoding.target = sourceTargetDimIds.slice(1);
|
|
24361
|
+
encoding.color = [];
|
|
24362
|
+
encoding.detail = [];
|
|
24363
|
+
encoding.tooltip = uniqueDimIds.filter((d)=>d !== MeasureId);
|
|
24364
|
+
encoding.label = [];
|
|
24365
|
+
encoding.row = [];
|
|
24366
|
+
encoding.column = [];
|
|
24367
|
+
};
|
|
24368
|
+
const sankey_generateDimensionEncoding = (dimensions, encoding, isMultiMeasure)=>{
|
|
24369
|
+
encoding.source = chunk_QJLMYOTX_i(dimensions.filter((item)=>'source' === item.encoding).map((item)=>item.id));
|
|
24370
|
+
encoding.target = chunk_QJLMYOTX_i(dimensions.filter((item)=>'target' === item.encoding).map((item)=>item.id));
|
|
24371
|
+
if (0 === encoding.source.length && dimensions[0]) encoding.source = [
|
|
24372
|
+
dimensions[0].id
|
|
24373
|
+
];
|
|
24374
|
+
if (isMultiMeasure && !encoding.source.includes(MeasureId) && !encoding.target.includes(MeasureId)) encoding.target.push(MeasureId);
|
|
24375
|
+
encoding.detail = chunk_QJLMYOTX_i(dimensions.filter((item)=>'detail' === item.encoding).map((item)=>item.id));
|
|
24376
|
+
encoding.tooltip = chunk_QJLMYOTX_i(dimensions.map((item)=>item.id)).filter((d)=>d !== MeasureId);
|
|
24377
|
+
encoding.label = chunk_QJLMYOTX_i(dimensions.filter((item)=>'label' === item.encoding).map((item)=>item.id));
|
|
24378
|
+
encoding.row = chunk_QJLMYOTX_i(dimensions.filter((item)=>'row' === item.encoding).map((item)=>item.id));
|
|
24379
|
+
encoding.column = chunk_QJLMYOTX_i(dimensions.filter((item)=>'column' === item.encoding).map((item)=>item.id));
|
|
24380
|
+
};
|
|
24381
|
+
const sankey_generateDefaultMeasureEncoding = (measures, encoding)=>{
|
|
24382
|
+
encoding.size = chunk_QJLMYOTX_i(measures.filter((item)=>'size' === item.encoding || !item.encoding).map((item)=>item.id));
|
|
24383
|
+
encoding.tooltip = chunk_QJLMYOTX_i([
|
|
24384
|
+
...encoding.tooltip || [],
|
|
24385
|
+
...measures.map((m)=>m.id)
|
|
24386
|
+
]);
|
|
24387
|
+
};
|
|
24388
|
+
const sankey_generateMeasureEncoding = (measures, encoding)=>{
|
|
24389
|
+
encoding.size = chunk_QJLMYOTX_i(measures.filter((item)=>'size' === item.encoding || !item.encoding).map((item)=>item.id));
|
|
24390
|
+
const label = chunk_QJLMYOTX_i(measures.filter((item)=>'label' === item.encoding).map((item)=>item.id));
|
|
24391
|
+
encoding.label = chunk_QJLMYOTX_i([
|
|
24392
|
+
...encoding.label || [],
|
|
24393
|
+
...label
|
|
24394
|
+
]);
|
|
24395
|
+
const tooltip = chunk_QJLMYOTX_i(measures.filter((item)=>'tooltip' === item.encoding).map((item)=>item.id));
|
|
24396
|
+
encoding.tooltip = chunk_QJLMYOTX_i([
|
|
24397
|
+
...encoding.tooltip || [],
|
|
24398
|
+
...label,
|
|
24399
|
+
...tooltip,
|
|
24400
|
+
...encoding.size
|
|
24401
|
+
]);
|
|
24402
|
+
const detail = chunk_QJLMYOTX_i(measures.filter((item)=>'detail' === item.encoding).map((item)=>item.id));
|
|
24403
|
+
encoding.detail = chunk_QJLMYOTX_i([
|
|
24404
|
+
...encoding.detail || [],
|
|
24405
|
+
...detail
|
|
24406
|
+
]);
|
|
24407
|
+
};
|
|
24408
|
+
const sankeyConfig = (advancedVSeed, context)=>{
|
|
24409
|
+
const { vseed } = context;
|
|
24410
|
+
const { chartType } = vseed;
|
|
24411
|
+
const result = {
|
|
24412
|
+
...advancedVSeed
|
|
24413
|
+
};
|
|
24414
|
+
const pickedConfig = chunk_2T7K3PFL_i(vseed, [
|
|
24415
|
+
'backgroundColor',
|
|
24416
|
+
'color',
|
|
24417
|
+
'label',
|
|
24418
|
+
'legend',
|
|
24419
|
+
'tooltip'
|
|
24420
|
+
]);
|
|
24421
|
+
const config = replaceNullToUndefined(pickedConfig);
|
|
24422
|
+
result.config = {
|
|
24423
|
+
...result.config,
|
|
24424
|
+
[chartType]: {
|
|
24425
|
+
...config
|
|
24426
|
+
}
|
|
24427
|
+
};
|
|
24428
|
+
return result;
|
|
24429
|
+
};
|
|
24430
|
+
const sankeyAdvancedPipeline = [
|
|
24431
|
+
page_page_page,
|
|
24432
|
+
initAdvancedVSeed_initAdvancedVSeed,
|
|
24433
|
+
default_defaultMeasures_defaultMeasures,
|
|
24434
|
+
defaultDimensions_defaultDimensions,
|
|
24435
|
+
defaultMeasureId,
|
|
24436
|
+
encodingAdapter([
|
|
24437
|
+
buildMeasures([
|
|
24438
|
+
'size',
|
|
24439
|
+
'detail'
|
|
24440
|
+
]),
|
|
24441
|
+
defaultEncodingForSankey
|
|
24442
|
+
], [
|
|
24443
|
+
buildMeasures([
|
|
24444
|
+
'size',
|
|
24445
|
+
'detail'
|
|
24446
|
+
]),
|
|
24447
|
+
encodingForSankey,
|
|
24448
|
+
pickDimensionsForReshape
|
|
24449
|
+
]),
|
|
24450
|
+
pivotAdapter([
|
|
24451
|
+
reshapeWithEncoding
|
|
24452
|
+
], [
|
|
24453
|
+
pivotReshapeWithEncoding
|
|
24454
|
+
]),
|
|
24455
|
+
sankeyConfig,
|
|
24456
|
+
theme_theme,
|
|
24457
|
+
annotation_annotation
|
|
24458
|
+
];
|
|
24459
|
+
const initSankey = (spec, context)=>{
|
|
24460
|
+
const result = {
|
|
24461
|
+
...spec
|
|
24462
|
+
};
|
|
24463
|
+
const { advancedVSeed } = context;
|
|
24464
|
+
const hasColorEncoding = (advancedVSeed.encoding?.color?.length || 0) > 0;
|
|
24465
|
+
result.type = 'sankey';
|
|
24466
|
+
result.categoryField = hasColorEncoding ? ColorEncoding : 'nodeName';
|
|
24467
|
+
result.valueField = 'value';
|
|
24468
|
+
result.sourceField = 'source';
|
|
24469
|
+
result.targetField = 'target';
|
|
24470
|
+
result.nodeAlign = 'justify';
|
|
24471
|
+
result.nodeGap = 8;
|
|
24472
|
+
result.nodeWidth = 12;
|
|
24473
|
+
result.minNodeHeight = 4;
|
|
24474
|
+
result.iterations = 0;
|
|
24475
|
+
result.padding = {
|
|
24476
|
+
top: 0,
|
|
24477
|
+
left: 2,
|
|
24478
|
+
bottom: 0,
|
|
24479
|
+
right: 2
|
|
24480
|
+
};
|
|
24481
|
+
result.link = {
|
|
24482
|
+
style: {
|
|
24483
|
+
pathType: 'smooth'
|
|
24484
|
+
}
|
|
24485
|
+
};
|
|
24486
|
+
return result;
|
|
24487
|
+
};
|
|
24488
|
+
const getNodeInfo = (datum, encodedField, sourceFields, foldInfo)=>{
|
|
24489
|
+
const id = String(datum[encodedField] ?? '');
|
|
24490
|
+
if (!sourceFields.length) return {
|
|
24491
|
+
id,
|
|
24492
|
+
nodeName: id
|
|
24493
|
+
};
|
|
24494
|
+
const nodeName = sourceFields.map((field)=>{
|
|
24495
|
+
const value = String(datum[field] ?? '');
|
|
24496
|
+
return field === foldInfo?.measureId && foldInfo.measureName && void 0 !== datum[foldInfo.measureName] ? String(datum[foldInfo.measureName]) : value;
|
|
24497
|
+
}).join("-");
|
|
24498
|
+
return {
|
|
24499
|
+
id,
|
|
24500
|
+
nodeName: nodeName || id
|
|
24501
|
+
};
|
|
24502
|
+
};
|
|
24503
|
+
const buildSankeyData = (dataset, sourceField, targetField, valueField, options = {})=>{
|
|
24504
|
+
const nodeIndexMap = new Map();
|
|
24505
|
+
const nodeNameMap = new Map();
|
|
24506
|
+
const nodeColorMap = new Map();
|
|
24507
|
+
const linksMap = new Map();
|
|
24508
|
+
const { foldInfo, sourceFields = [], targetFields = [] } = options;
|
|
24509
|
+
const ensureNode = (node)=>{
|
|
24510
|
+
const { id, nodeName } = node;
|
|
24511
|
+
if (!nodeIndexMap.has(id)) {
|
|
24512
|
+
nodeIndexMap.set(id, nodeIndexMap.size);
|
|
24513
|
+
nodeNameMap.set(id, nodeName);
|
|
24514
|
+
}
|
|
24515
|
+
return nodeIndexMap.get(id);
|
|
24516
|
+
};
|
|
24517
|
+
dataset.forEach((datum)=>{
|
|
24518
|
+
const sourceNode = getNodeInfo(datum, sourceField, sourceFields, foldInfo);
|
|
24519
|
+
const targetNode = getNodeInfo(datum, targetField, targetFields, foldInfo);
|
|
24520
|
+
const rawValue = Number(datum[valueField] ?? 0);
|
|
24521
|
+
const colorCategory = datum[ColorEncoding];
|
|
24522
|
+
const colorCategoryValue = null == colorCategory || '' === colorCategory ? void 0 : String(colorCategory);
|
|
24523
|
+
if (!sourceNode.id || !targetNode.id || Number.isNaN(rawValue)) return;
|
|
24524
|
+
const source = ensureNode(sourceNode);
|
|
24525
|
+
const target = ensureNode(targetNode);
|
|
24526
|
+
if (!nodeColorMap.has(sourceNode.id) && colorCategoryValue) nodeColorMap.set(sourceNode.id, colorCategoryValue);
|
|
24527
|
+
if (!nodeColorMap.has(targetNode.id) && colorCategoryValue) nodeColorMap.set(targetNode.id, colorCategoryValue);
|
|
24528
|
+
const linkKey = `${source}__${target}`;
|
|
24529
|
+
const prev = linksMap.get(linkKey);
|
|
24530
|
+
if (prev) prev.value += rawValue;
|
|
24531
|
+
else {
|
|
24532
|
+
const linkDatum = {
|
|
24533
|
+
source,
|
|
24534
|
+
target,
|
|
24535
|
+
value: rawValue,
|
|
24536
|
+
sourceNodeName: sourceNode.nodeName,
|
|
24537
|
+
targetNodeName: targetNode.nodeName
|
|
24538
|
+
};
|
|
24539
|
+
if (colorCategoryValue) linkDatum[ColorEncoding] = colorCategoryValue;
|
|
24540
|
+
linksMap.set(linkKey, linkDatum);
|
|
24541
|
+
}
|
|
24542
|
+
});
|
|
24543
|
+
const nodes = Array.from(nodeIndexMap.entries()).sort((a, b)=>a[1] - b[1]).map(([id])=>{
|
|
24544
|
+
const nodeDatum = {
|
|
24545
|
+
id,
|
|
24546
|
+
nodeName: nodeNameMap.get(id) || id
|
|
24547
|
+
};
|
|
24548
|
+
const nodeColor = nodeColorMap.get(id);
|
|
24549
|
+
if (nodeColor) nodeDatum[ColorEncoding] = nodeColor;
|
|
24550
|
+
return nodeDatum;
|
|
24551
|
+
});
|
|
24552
|
+
return {
|
|
24553
|
+
nodes,
|
|
24554
|
+
links: Array.from(linksMap.values())
|
|
24555
|
+
};
|
|
24556
|
+
};
|
|
24557
|
+
const datasetSankey = (spec, context)=>{
|
|
24558
|
+
const result = {
|
|
24559
|
+
...spec
|
|
24560
|
+
};
|
|
24561
|
+
const { advancedVSeed } = context;
|
|
24562
|
+
const { dataset = [], datasetReshapeInfo } = advancedVSeed;
|
|
24563
|
+
const { foldInfo, unfoldInfo } = datasetReshapeInfo[0];
|
|
24564
|
+
const sourceFields = advancedVSeed.encoding?.source || [];
|
|
24565
|
+
const targetFields = advancedVSeed.encoding?.target || [];
|
|
24566
|
+
const graphData = buildSankeyData(dataset, unfoldInfo.encodingSource || 'source', unfoldInfo.encodingTarget || 'target', foldInfo.measureValue, {
|
|
24567
|
+
foldInfo,
|
|
24568
|
+
sourceFields,
|
|
24569
|
+
targetFields
|
|
24570
|
+
});
|
|
24571
|
+
result.data = [
|
|
24572
|
+
{
|
|
24573
|
+
id: 'data',
|
|
24574
|
+
values: [
|
|
24575
|
+
graphData
|
|
24576
|
+
]
|
|
24577
|
+
}
|
|
24578
|
+
];
|
|
24579
|
+
return result;
|
|
24580
|
+
};
|
|
24581
|
+
const tooltipSankey_isLinkDatum = (value)=>{
|
|
24582
|
+
const datum = value;
|
|
24583
|
+
return !!datum && void 0 !== datum.source && void 0 !== datum.target;
|
|
24584
|
+
};
|
|
24585
|
+
const getNodes = (spec)=>((spec.data || [])[0]?.values || [])[0]?.nodes || [];
|
|
24586
|
+
const getNodeNameByIndex = (nodes, index)=>{
|
|
24587
|
+
const node = nodes[Number(index)];
|
|
24588
|
+
return node?.nodeName ?? '';
|
|
24589
|
+
};
|
|
24590
|
+
const getWrappedDatum = (value)=>{
|
|
24591
|
+
const datum = value;
|
|
24592
|
+
const wrappedDatum = datum?.datum;
|
|
24593
|
+
if (Array.isArray(wrappedDatum)) return wrappedDatum[wrappedDatum.length - 1] || datum;
|
|
24594
|
+
if (wrappedDatum && 'object' == typeof wrappedDatum) return wrappedDatum;
|
|
24595
|
+
return datum;
|
|
24596
|
+
};
|
|
24597
|
+
const getNodeTitle = (value)=>{
|
|
24598
|
+
const datum = getWrappedDatum(value);
|
|
24599
|
+
return String(datum?.nodeName ?? datum?.name ?? datum?.id ?? '');
|
|
24600
|
+
};
|
|
24601
|
+
const getEncodingAlias = (dimensions, encodedIds, fallback, measureId)=>dimensions.find((dimension)=>(encodedIds || []).includes(dimension.id) && dimension.id !== measureId)?.alias || fallback;
|
|
24602
|
+
const tooltipSankey = (spec, context)=>{
|
|
24603
|
+
const result = tooltip_tooltip()(spec, context);
|
|
24604
|
+
const { advancedVSeed, vseed } = context;
|
|
24605
|
+
const { datasetReshapeInfo, dimensions = [] } = advancedVSeed;
|
|
24606
|
+
const { foldInfo } = datasetReshapeInfo[0];
|
|
24607
|
+
const nodes = getNodes(result);
|
|
24608
|
+
const measures = vseed.measures || [];
|
|
24609
|
+
const sourceAlias = getEncodingAlias(dimensions, advancedVSeed.encoding?.source, 'Source', foldInfo.measureId);
|
|
24610
|
+
if (result.tooltip) result.tooltip.mark = {
|
|
24611
|
+
title: {
|
|
24612
|
+
visible: true,
|
|
24613
|
+
value: (value)=>{
|
|
24614
|
+
const datum = value;
|
|
24615
|
+
if (tooltipSankey_isLinkDatum(value)) return `${getNodeNameByIndex(nodes, datum.source)} -> ${getNodeNameByIndex(nodes, datum.target)}`;
|
|
24616
|
+
return getNodeTitle(value);
|
|
24617
|
+
}
|
|
24618
|
+
},
|
|
24619
|
+
content: tooltipSankey_createMarkContent(nodes, measures, foldInfo, sourceAlias)
|
|
24620
|
+
};
|
|
24621
|
+
return result;
|
|
24622
|
+
};
|
|
24623
|
+
const tooltipSankey_createMarkContent = (nodes, measures = [], foldInfo, sourceAlias)=>{
|
|
24624
|
+
const fallbackMeasure = findMeasureById(measures, foldInfo.measureValue) || measures[0];
|
|
24625
|
+
const fallbackMeasureAlias = fallbackMeasure?.alias || fallbackMeasure?.id || 'Value';
|
|
24626
|
+
return [
|
|
24627
|
+
{
|
|
24628
|
+
visible: (value)=>tooltipSankey_isLinkDatum(value),
|
|
24629
|
+
hasShape: true,
|
|
24630
|
+
shapeType: 'rectRound',
|
|
24631
|
+
key: sourceAlias,
|
|
24632
|
+
value: (value)=>{
|
|
24633
|
+
const datum = value;
|
|
24634
|
+
return String(datum.sourceNodeName ?? getNodeNameByIndex(nodes, datum.source));
|
|
24635
|
+
}
|
|
24636
|
+
},
|
|
24637
|
+
{
|
|
24638
|
+
visible: ()=>true,
|
|
24639
|
+
hasShape: true,
|
|
24640
|
+
shapeType: 'rectRound',
|
|
24641
|
+
key: fallbackMeasureAlias,
|
|
24642
|
+
value: (value)=>{
|
|
24643
|
+
const datum = value;
|
|
24644
|
+
const measure = findMeasureById(measures, datum?.[foldInfo.measureId]) || fallbackMeasure;
|
|
24645
|
+
const formatter = createFormatterByMeasure(measure);
|
|
24646
|
+
return formatter((datum?.[foldInfo.measureValue] ?? datum?.value ?? 0) || 0);
|
|
24647
|
+
}
|
|
24648
|
+
}
|
|
24649
|
+
];
|
|
24650
|
+
};
|
|
24651
|
+
const labelSankey = (spec, context)=>{
|
|
24652
|
+
const result = {
|
|
24653
|
+
...spec
|
|
24654
|
+
};
|
|
24655
|
+
const { advancedVSeed, vseed } = context;
|
|
24656
|
+
const { datasetReshapeInfo, chartType, encoding } = advancedVSeed;
|
|
24657
|
+
const baseConfig = advancedVSeed.config[chartType];
|
|
24658
|
+
const foldInfo = datasetReshapeInfo[0].foldInfo;
|
|
24659
|
+
const label = baseConfig?.label;
|
|
24660
|
+
if (!label) return result;
|
|
24661
|
+
result.label = labelSankey_buildLabel(label, vseed.measures || advancedVSeed.measures || [], advancedVSeed.measures || [], encoding.label || [], foldInfo);
|
|
24662
|
+
return result;
|
|
24663
|
+
};
|
|
24664
|
+
const labelSankey_buildLabel = (label, vseedMeasures, advancedVSeedMeasures, labelEncodingIds, foldInfo)=>{
|
|
24665
|
+
const { enable, wrap, showValue, showValuePercent, showDimension, labelOverlap, labelColorSmartInvert, labelStroke, labelColor, labelFontSize, labelFontWeight, labelBackgroundColor, labelPosition, autoFormat, numFormat = {} } = label;
|
|
24666
|
+
const hasMeasureLabelEncoding = vseedMeasures.some((item)=>labelEncodingIds.includes(item.id));
|
|
24667
|
+
const labelMeasures = hasMeasureLabelEncoding ? vseedMeasures.filter((item)=>labelEncodingIds.includes(item.id)) : [];
|
|
24668
|
+
const percentFormat = chunk_5S4PYKVY_t(numFormat, {
|
|
24669
|
+
type: 'percent'
|
|
24670
|
+
});
|
|
24671
|
+
const percentFormatter = createFormatter(percentFormat);
|
|
24672
|
+
const result = {
|
|
24673
|
+
visible: enable,
|
|
24674
|
+
dataFilter: (data)=>data.filter((entry)=>{
|
|
24675
|
+
if (entry.data?.[DATUM_HIDE_KEY]) return false;
|
|
24676
|
+
const shouldApply = label.dynamicFilter ? selectorWithDynamicFilter(entry.data, label.dynamicFilter, label.selector) : selector_selector(entry.data, label.selector, 'Or');
|
|
24677
|
+
return shouldApply;
|
|
24678
|
+
}),
|
|
24679
|
+
formatMethod: (_, datum)=>{
|
|
24680
|
+
const parts = [];
|
|
24681
|
+
if (showDimension && datum?.nodeName) parts.push(String(datum.nodeName));
|
|
24682
|
+
if (showValue) {
|
|
24683
|
+
const { measureId, measureValue } = foldInfo;
|
|
24684
|
+
const measure = findMeasureById(advancedVSeedMeasures, datum[measureId]);
|
|
24685
|
+
if (measure && void 0 !== datum[measureValue] && null !== datum[measureValue]) parts.push(generateMeasureValue(datum[measureValue], measure, autoFormat, numFormat));
|
|
24686
|
+
else if (void 0 !== datum.value && null !== datum.value) {
|
|
24687
|
+
const fallbackMeasure = findMeasureById(advancedVSeedMeasures, foldInfo.measureId) || findMeasureById(vseedMeasures, foldInfo.measureId) || advancedVSeedMeasures[0];
|
|
24688
|
+
if (fallbackMeasure) parts.push(generateMeasureValue(datum.value, fallbackMeasure, autoFormat, numFormat));
|
|
24689
|
+
else parts.push(String(datum.value));
|
|
24690
|
+
}
|
|
24691
|
+
}
|
|
24692
|
+
if (showValuePercent) {
|
|
24693
|
+
const ratioValue = datum['__VCHART_ARC_RATIO'];
|
|
24694
|
+
if (chunk_6GTAPB47_e(ratioValue)) parts.push(generateMeasurePercent(ratioValue, 1, percentFormatter));
|
|
24695
|
+
else if (foldInfo.statistics && chunk_6GTAPB47_e(foldInfo.statistics.sum) && void 0 !== datum[foldInfo.measureValue] && null !== datum[foldInfo.measureValue]) parts.push(generateMeasurePercent(datum[foldInfo.measureValue], foldInfo.statistics.sum, percentFormatter));
|
|
24696
|
+
}
|
|
24697
|
+
labelMeasures.forEach((measure)=>{
|
|
24698
|
+
const rawValue = datum[measure.id];
|
|
24699
|
+
if (null == rawValue || '' === rawValue) return;
|
|
24700
|
+
parts.push(generateMeasureValue(rawValue, measure, autoFormat, numFormat));
|
|
24701
|
+
});
|
|
24702
|
+
return wrap ? parts : parts.join(' ');
|
|
24703
|
+
},
|
|
24704
|
+
syncState: true,
|
|
24705
|
+
position: labelPosition,
|
|
24706
|
+
style: {
|
|
24707
|
+
stroke: labelStroke,
|
|
24708
|
+
fill: labelColor,
|
|
24709
|
+
fontSize: labelFontSize,
|
|
24710
|
+
fontWeight: labelFontWeight,
|
|
24711
|
+
background: labelBackgroundColor
|
|
24712
|
+
},
|
|
24713
|
+
smartInvert: labelColorSmartInvert
|
|
24714
|
+
};
|
|
24715
|
+
if (labelColorSmartInvert) result.style.lineWidth = 2;
|
|
24716
|
+
if (labelOverlap) result.overlap = {
|
|
24717
|
+
hideOnHit: true,
|
|
24718
|
+
clampForce: true
|
|
24719
|
+
};
|
|
24720
|
+
return result;
|
|
24721
|
+
};
|
|
24722
|
+
const datasetPivotSankey = (spec, context)=>{
|
|
24723
|
+
const result = {
|
|
24724
|
+
...spec
|
|
24725
|
+
};
|
|
24726
|
+
const { advancedVSeed } = context;
|
|
24727
|
+
const { dataset, datasetReshapeInfo } = advancedVSeed;
|
|
24728
|
+
const rows = advancedVSeed.encoding?.row || [];
|
|
24729
|
+
const columns = advancedVSeed.encoding?.column || [];
|
|
24730
|
+
const sourceFields = advancedVSeed.encoding?.source || [];
|
|
24731
|
+
const targetFields = advancedVSeed.encoding?.target || [];
|
|
24732
|
+
const pivotDims = [
|
|
24733
|
+
...rows,
|
|
24734
|
+
...columns
|
|
24735
|
+
];
|
|
24736
|
+
const records = dataset.reduce((pre, cur, index)=>{
|
|
24737
|
+
const reshapeInfo = datasetReshapeInfo[index];
|
|
24738
|
+
const id = reshapeInfo.id;
|
|
24739
|
+
const { foldInfo, unfoldInfo } = reshapeInfo;
|
|
24740
|
+
if (pivotDims.length > 0) {
|
|
24741
|
+
const groupedDataset = groupByDimensions(cur, pivotDims);
|
|
24742
|
+
pre[id] = groupedDataset.map((data)=>({
|
|
24743
|
+
...Object.fromEntries(pivotDims.map((dim)=>[
|
|
24744
|
+
dim,
|
|
24745
|
+
data[dim]
|
|
24746
|
+
])),
|
|
24747
|
+
...buildSankeyData(data.children || [], unfoldInfo.encodingSource || 'source', unfoldInfo.encodingTarget || 'target', foldInfo.measureValue, {
|
|
24748
|
+
foldInfo,
|
|
24749
|
+
sourceFields,
|
|
24750
|
+
targetFields
|
|
24751
|
+
})
|
|
24752
|
+
}));
|
|
24753
|
+
} else pre[id] = [
|
|
24754
|
+
buildSankeyData(cur, unfoldInfo.encodingSource || 'source', unfoldInfo.encodingTarget || 'target', foldInfo.measureValue, {
|
|
24755
|
+
foldInfo,
|
|
24756
|
+
sourceFields,
|
|
24757
|
+
targetFields
|
|
24758
|
+
})
|
|
24759
|
+
];
|
|
24760
|
+
return pre;
|
|
24761
|
+
}, {});
|
|
24762
|
+
return {
|
|
24763
|
+
...result,
|
|
24764
|
+
records
|
|
24765
|
+
};
|
|
24766
|
+
};
|
|
24767
|
+
const sankey = [
|
|
24768
|
+
fontFamilyTheme,
|
|
24769
|
+
initSankey,
|
|
24770
|
+
datasetSankey,
|
|
24771
|
+
colorAdapter(color_color, linearColor),
|
|
24772
|
+
background_backgroundColor,
|
|
24773
|
+
colorAdapter(discreteLegend, colorLegend),
|
|
24774
|
+
tooltipSankey,
|
|
24775
|
+
labelSankey,
|
|
24776
|
+
sankeyInteractive
|
|
24777
|
+
];
|
|
24778
|
+
const pivotSankey = [
|
|
24779
|
+
initPivot,
|
|
24780
|
+
pivotGridStyle,
|
|
24781
|
+
pivotIndicatorsAsCol,
|
|
24782
|
+
pivotHideIndicatorName,
|
|
24783
|
+
datasetPivotSankey,
|
|
24784
|
+
pivotIndicators_pivotIndicators([
|
|
24785
|
+
fontFamilyTheme,
|
|
24786
|
+
initSankey,
|
|
24787
|
+
datasetSankey,
|
|
24788
|
+
colorAdapter(color_color, linearColor),
|
|
24789
|
+
background_backgroundColor,
|
|
24790
|
+
tooltipSankey,
|
|
24791
|
+
labelSankey,
|
|
24792
|
+
sankeyInteractive
|
|
24793
|
+
]),
|
|
24794
|
+
pivotRowDimensions,
|
|
24795
|
+
pivotColumnDimensions,
|
|
24796
|
+
pivotTitle,
|
|
24797
|
+
colorAdapter(pivotDiscreteLegend, pivotColorLegend)
|
|
24798
|
+
];
|
|
24799
|
+
const sankeySpecPipeline = [
|
|
24800
|
+
pivotAdapter_pivotAdapter(sankey, pivotSankey)
|
|
24801
|
+
];
|
|
24802
|
+
const registerSankey = ()=>{
|
|
24803
|
+
Builder.registerAdvancedPipeline('sankey', sankeyAdvancedPipeline);
|
|
24804
|
+
Builder.registerSpecPipeline('sankey', sankeySpecPipeline);
|
|
24805
|
+
};
|
|
24806
|
+
const getDefaultTableConfig = ()=>({
|
|
24807
|
+
bodyFontSize: 12,
|
|
24808
|
+
bodyBackgroundColor: 'transparent',
|
|
24809
|
+
headerFontSize: 12,
|
|
24810
|
+
barHeight: '100%',
|
|
24811
|
+
barMarkInBar: false,
|
|
24812
|
+
barMarkWidth: 2,
|
|
24813
|
+
barPadding: [
|
|
24814
|
+
'25%',
|
|
24815
|
+
10
|
|
24816
|
+
],
|
|
24817
|
+
barRightToLeft: false,
|
|
24818
|
+
barPositiveColor: 'rgba(188,220,194, 0.5)',
|
|
24819
|
+
barNegativeColor: 'rgba(241,188,191, 0.5)',
|
|
24820
|
+
backgroundColorScale: {
|
|
24821
|
+
minColor: '#D8CFFF',
|
|
24822
|
+
maxColor: '#6B4FD7'
|
|
24823
|
+
}
|
|
24824
|
+
});
|
|
24825
|
+
const getLightTableConfig = ()=>({
|
|
24826
|
+
...getDefaultTableConfig(),
|
|
24827
|
+
borderColor: '#e3e5eb',
|
|
24828
|
+
bodyFontColor: '#141414',
|
|
24829
|
+
headerFontColor: '#21252c',
|
|
24830
|
+
headerBackgroundColor: '#f6f7f9',
|
|
24831
|
+
hoverBodyBackgroundColor: '#bedaff',
|
|
24832
|
+
hoverBodyInlineBackgroundColor: '#bedaff33',
|
|
24833
|
+
hoverHeaderBackgroundColor: '#D9DDE4',
|
|
24834
|
+
hoverHeaderInlineBackgroundColor: '#D9DDE455',
|
|
24835
|
+
selectedBorderColor: '#4080ff',
|
|
24836
|
+
selectedBackgroundColor: '#bedaff33',
|
|
24837
|
+
backgroundColor: 'transparent',
|
|
24838
|
+
barAxisColor: '#9EAFC6'
|
|
24839
|
+
});
|
|
24840
|
+
const getDarkTableConfig = ()=>({
|
|
24841
|
+
...getDefaultTableConfig(),
|
|
24842
|
+
borderColor: '#4b4e53',
|
|
24843
|
+
bodyFontColor: '#fdfdfd',
|
|
24844
|
+
headerFontColor: '#fdfdfd',
|
|
24845
|
+
headerBackgroundColor: '#36393e',
|
|
24846
|
+
hoverBodyBackgroundColor: '#4284ff66',
|
|
24847
|
+
hoverBodyInlineBackgroundColor: '#4284ff10',
|
|
24848
|
+
hoverHeaderBackgroundColor: '#6f7984cc',
|
|
24849
|
+
hoverHeaderInlineBackgroundColor: '#4b4f54',
|
|
24850
|
+
selectedBorderColor: '#3073f2',
|
|
24851
|
+
selectedBackgroundColor: '#4284ff33',
|
|
24852
|
+
barAxisColor: '#9EAFC6'
|
|
24853
|
+
});
|
|
24854
|
+
const pickPivotChartGridConfig = (tableConfig)=>({
|
|
24855
|
+
outlineBorderLineWidth: 0,
|
|
24856
|
+
frameCornerRadius: 0,
|
|
24857
|
+
borderColor: tableConfig.borderColor,
|
|
24858
|
+
bodyFontColor: tableConfig.bodyFontColor,
|
|
24859
|
+
headerFontColor: tableConfig.headerFontColor,
|
|
24860
|
+
headerBackgroundColor: 'transparent',
|
|
24861
|
+
hoverHeaderBackgroundColor: tableConfig.hoverHeaderBackgroundColor,
|
|
24862
|
+
hoverHeaderInlineBackgroundColor: tableConfig.hoverHeaderInlineBackgroundColor,
|
|
24863
|
+
titleFontColor: tableConfig.headerFontColor,
|
|
24864
|
+
titleFontSize: tableConfig.headerFontSize,
|
|
24865
|
+
titleFontWeight: 'bold'
|
|
24866
|
+
});
|
|
24867
|
+
const getLightPivotChartGridConfig = ()=>{
|
|
24868
|
+
const res = pickPivotChartGridConfig(getLightTableConfig());
|
|
24869
|
+
res.hoverHeaderInlineBackgroundColor = '#D9DDE446';
|
|
24870
|
+
res.chartGridColor = '#F0F1F6';
|
|
24871
|
+
res.axisLabelColor = '#BCC1CB';
|
|
24872
|
+
return res;
|
|
24873
|
+
};
|
|
24874
|
+
const getDarkPivotChartGridConfig = ()=>{
|
|
24875
|
+
const res = pickPivotChartGridConfig(getDarkTableConfig());
|
|
24876
|
+
res.hoverHeaderInlineBackgroundColor = '#4b4f5446';
|
|
24877
|
+
return res;
|
|
24878
|
+
};
|
|
24879
|
+
const getDarkCrosshairLine = ()=>({
|
|
24880
|
+
visible: true,
|
|
24881
|
+
labelVisible: true,
|
|
24882
|
+
labelColor: '#ffffff',
|
|
24883
|
+
labelBackgroundColor: '#404349',
|
|
24884
|
+
lineColor: '#55595F'
|
|
24885
|
+
});
|
|
24886
|
+
const getDarkCrosshairRect = ()=>({
|
|
24887
|
+
visible: true,
|
|
24888
|
+
labelVisible: true,
|
|
24889
|
+
labelColor: '#ffffff',
|
|
24890
|
+
labelBackgroundColor: '#404349',
|
|
24891
|
+
rectColor: '#4B4F54'
|
|
24892
|
+
});
|
|
24893
|
+
const getLightCrosshairLine = ()=>({
|
|
24894
|
+
visible: true,
|
|
24895
|
+
labelVisible: true,
|
|
24896
|
+
labelColor: '#ffffff',
|
|
24897
|
+
labelBackgroundColor: '#21252C',
|
|
24898
|
+
lineColor: '#21252C'
|
|
24899
|
+
});
|
|
24900
|
+
const getLightCrosshairRect = ()=>({
|
|
24901
|
+
visible: true,
|
|
24902
|
+
labelVisible: true,
|
|
24903
|
+
labelColor: '#ffffff',
|
|
24904
|
+
labelBackgroundColor: '#364159',
|
|
24905
|
+
rectColor: '#D9DDE4'
|
|
24906
|
+
});
|
|
24907
|
+
const getLightColorScheme = ()=>[
|
|
24908
|
+
'#8D72F6',
|
|
24909
|
+
'#5766EC',
|
|
24910
|
+
'#66A3FE',
|
|
24911
|
+
'#51D5E6',
|
|
24912
|
+
'#4EC0B3',
|
|
24913
|
+
'#F9DF90',
|
|
24914
|
+
'#F9AD71',
|
|
24915
|
+
'#ED8888',
|
|
24916
|
+
'#E9A0C3',
|
|
24917
|
+
'#D77DD3'
|
|
24918
|
+
];
|
|
24919
|
+
const getDarkColorScheme = ()=>[
|
|
24920
|
+
'#2E62F1',
|
|
24921
|
+
'#4DC36A',
|
|
24922
|
+
'#FF8406',
|
|
24923
|
+
'#FFCC00',
|
|
24924
|
+
'#4F44CF',
|
|
24925
|
+
'#5AC8FA',
|
|
24926
|
+
'#003A8C',
|
|
24927
|
+
'#B08AE2',
|
|
24928
|
+
'#FF6341',
|
|
24929
|
+
'#98DD62'
|
|
24930
|
+
];
|
|
24931
|
+
const getLightLinearColorScheme = ()=>[
|
|
24932
|
+
'#C2CEFF',
|
|
24933
|
+
'#5766EC'
|
|
24934
|
+
];
|
|
24935
|
+
const getDarkLinearColorScheme = ()=>[
|
|
24936
|
+
'#A0CEFF',
|
|
24937
|
+
'#2E62F1'
|
|
24938
|
+
];
|
|
24939
|
+
const getLightColor = ()=>({
|
|
24940
|
+
linearColorScheme: getLightLinearColorScheme(),
|
|
24941
|
+
colorScheme: getLightColorScheme(),
|
|
24942
|
+
positiveColor: '#7E5DFF',
|
|
24943
|
+
negativeColor: '#EB3373'
|
|
24944
|
+
});
|
|
24945
|
+
const getDarkColor = ()=>({
|
|
24946
|
+
linearColorScheme: getDarkLinearColorScheme(),
|
|
24947
|
+
colorScheme: getDarkColorScheme(),
|
|
24948
|
+
positiveColor: '#7E5DFF',
|
|
24949
|
+
negativeColor: '#EB3373'
|
|
24950
|
+
});
|
|
24951
|
+
const getDefaultLabel = ()=>({
|
|
24952
|
+
enable: true,
|
|
24953
|
+
wrap: true,
|
|
24954
|
+
showValue: true,
|
|
24955
|
+
showValuePercent: false,
|
|
24956
|
+
labelColorSmartInvert: false,
|
|
24957
|
+
labelOverlap: true
|
|
24958
|
+
});
|
|
24959
|
+
const getDarkLabel = ()=>({
|
|
24960
|
+
...getDefaultLabel(),
|
|
24961
|
+
labelStroke: '#21252C'
|
|
24962
|
+
});
|
|
24963
|
+
const getLightLabel = ()=>({
|
|
24964
|
+
...getDefaultLabel(),
|
|
24965
|
+
labelStroke: '#fff'
|
|
24966
|
+
});
|
|
24967
|
+
const getFunnelDarkLabel = ()=>({
|
|
24968
|
+
...getDefaultLabel(),
|
|
23921
24969
|
labelColor: '#fff'
|
|
23922
24970
|
});
|
|
23923
24971
|
const getFunnelLightLabel = ()=>({
|
|
@@ -24746,6 +25794,8 @@ self.R = R;
|
|
|
24746
25794
|
};
|
|
24747
25795
|
const getSunburstTheme = ()=>getTreeMapTheme();
|
|
24748
25796
|
const getCirclePackingTheme = ()=>getTreeMapTheme();
|
|
25797
|
+
const getHierarchySankeyTheme = ()=>getTreeMapTheme();
|
|
25798
|
+
const getSankeyTheme = ()=>getTreeMapTheme();
|
|
24749
25799
|
const getDarkPlayer = ()=>{
|
|
24750
25800
|
const primaryColor = getDarkColorScheme()[0];
|
|
24751
25801
|
return {
|
|
@@ -25022,6 +26072,8 @@ self.R = R;
|
|
|
25022
26072
|
treeMap: getTreeMapTheme(),
|
|
25023
26073
|
sunburst: getSunburstTheme(),
|
|
25024
26074
|
circlePacking: getCirclePackingTheme(),
|
|
26075
|
+
hierarchySankey: getHierarchySankeyTheme(),
|
|
26076
|
+
sankey: getSankeyTheme(),
|
|
25025
26077
|
raceBar: getRaceBarTheme(),
|
|
25026
26078
|
raceColumn: getRaceColumnTheme(),
|
|
25027
26079
|
raceScatter: getRaceScatterTheme(),
|
|
@@ -25395,6 +26447,8 @@ self.R = R;
|
|
|
25395
26447
|
};
|
|
25396
26448
|
const hierarchy_getSunburstTheme = ()=>hierarchy_getTreeMapTheme();
|
|
25397
26449
|
const hierarchy_getCirclePackingTheme = ()=>hierarchy_getTreeMapTheme();
|
|
26450
|
+
const hierarchy_getHierarchySankeyTheme = ()=>hierarchy_getTreeMapTheme();
|
|
26451
|
+
const hierarchy_getSankeyTheme = ()=>hierarchy_getTreeMapTheme();
|
|
25398
26452
|
const race_getRaceBarTheme = ()=>{
|
|
25399
26453
|
const linearAxis = getDarkLinearAxis();
|
|
25400
26454
|
const bandAxis = getDarkBandAxis();
|
|
@@ -25597,6 +26651,8 @@ self.R = R;
|
|
|
25597
26651
|
treeMap: hierarchy_getTreeMapTheme(),
|
|
25598
26652
|
sunburst: hierarchy_getSunburstTheme(),
|
|
25599
26653
|
circlePacking: hierarchy_getCirclePackingTheme(),
|
|
26654
|
+
hierarchySankey: hierarchy_getHierarchySankeyTheme(),
|
|
26655
|
+
sankey: hierarchy_getSankeyTheme(),
|
|
25600
26656
|
raceBar: race_getRaceBarTheme(),
|
|
25601
26657
|
raceColumn: race_getRaceColumnTheme(),
|
|
25602
26658
|
raceScatter: race_getRaceScatterTheme(),
|
|
@@ -25655,6 +26711,8 @@ self.R = R;
|
|
|
25655
26711
|
registerTreeMap();
|
|
25656
26712
|
registerSunburst();
|
|
25657
26713
|
registerCirclePacking();
|
|
26714
|
+
registerHierarchySankey();
|
|
26715
|
+
registerSankey();
|
|
25658
26716
|
registerLightTheme();
|
|
25659
26717
|
registerDarkTheme();
|
|
25660
26718
|
};
|
|
@@ -29349,6 +30407,8 @@ self.R = R;
|
|
|
29349
30407
|
'treeMap',
|
|
29350
30408
|
'sunburst',
|
|
29351
30409
|
'circlePacking',
|
|
30410
|
+
'hierarchySankey',
|
|
30411
|
+
'sankey',
|
|
29352
30412
|
'funnel',
|
|
29353
30413
|
'heatmap',
|
|
29354
30414
|
'boxPlot',
|
|
@@ -29367,7 +30427,9 @@ self.R = R;
|
|
|
29367
30427
|
'row',
|
|
29368
30428
|
'column',
|
|
29369
30429
|
'player',
|
|
29370
|
-
'hierarchy'
|
|
30430
|
+
'hierarchy',
|
|
30431
|
+
'source',
|
|
30432
|
+
'target'
|
|
29371
30433
|
]);
|
|
29372
30434
|
const DimensionEncodingEnum = {
|
|
29373
30435
|
xAxis: 'xAxis',
|
|
@@ -29380,7 +30442,9 @@ self.R = R;
|
|
|
29380
30442
|
row: 'row',
|
|
29381
30443
|
column: 'column',
|
|
29382
30444
|
player: 'player',
|
|
29383
|
-
hierarchy: 'hierarchy'
|
|
30445
|
+
hierarchy: 'hierarchy',
|
|
30446
|
+
source: 'source',
|
|
30447
|
+
target: 'target'
|
|
29384
30448
|
};
|
|
29385
30449
|
const zTimeFormat = schemas_object({
|
|
29386
30450
|
type: schemas_enum([
|
|
@@ -29528,6 +30592,8 @@ self.R = R;
|
|
|
29528
30592
|
encodingAngle: schemas_string(),
|
|
29529
30593
|
encodingPlayer: schemas_string(),
|
|
29530
30594
|
encodingHierarchy: schemas_string(),
|
|
30595
|
+
encodingSource: schemas_string().optional(),
|
|
30596
|
+
encodingTarget: schemas_string().optional(),
|
|
29531
30597
|
colorItems: schemas_array(schemas_string()),
|
|
29532
30598
|
colorIdMap: record(schemas_string(), schemas_object({
|
|
29533
30599
|
id: schemas_string(),
|
|
@@ -29555,6 +30621,8 @@ self.R = R;
|
|
|
29555
30621
|
column: schemas_array(schemas_string()).nullish(),
|
|
29556
30622
|
player: schemas_array(schemas_string()).nullish(),
|
|
29557
30623
|
hierarchy: schemas_array(schemas_string()).nullish(),
|
|
30624
|
+
source: schemas_array(schemas_string()).nullish(),
|
|
30625
|
+
target: schemas_array(schemas_string()).nullish(),
|
|
29558
30626
|
value: schemas_array(schemas_string()).nullish(),
|
|
29559
30627
|
q1: schemas_array(schemas_string()).nullish(),
|
|
29560
30628
|
q3: schemas_array(schemas_string()).nullish(),
|
|
@@ -29578,7 +30646,9 @@ self.R = R;
|
|
|
29578
30646
|
row: 'row',
|
|
29579
30647
|
column: 'column',
|
|
29580
30648
|
player: 'player',
|
|
29581
|
-
hierarchy: 'hierarchy'
|
|
30649
|
+
hierarchy: 'hierarchy',
|
|
30650
|
+
source: 'source',
|
|
30651
|
+
target: 'target'
|
|
29582
30652
|
};
|
|
29583
30653
|
const zMeasureEncoding = schemas_enum([
|
|
29584
30654
|
'primaryYAxis',
|
|
@@ -30744,6 +31814,22 @@ self.R = R;
|
|
|
30744
31814
|
legend: zLegend.nullish(),
|
|
30745
31815
|
pivotGrid: zPivotChartGridConfig.nullish()
|
|
30746
31816
|
});
|
|
31817
|
+
const zHierarchySankeyConfig = schemas_object({
|
|
31818
|
+
backgroundColor: zBackgroundColor.nullish(),
|
|
31819
|
+
label: zLabel.nullish(),
|
|
31820
|
+
color: zColor.nullish(),
|
|
31821
|
+
tooltip: zTooltip.nullish(),
|
|
31822
|
+
legend: zLegend.nullish(),
|
|
31823
|
+
pivotGrid: zPivotChartGridConfig.nullish()
|
|
31824
|
+
});
|
|
31825
|
+
const zSankeyConfig = schemas_object({
|
|
31826
|
+
backgroundColor: zBackgroundColor.nullish(),
|
|
31827
|
+
label: zLabel.nullish(),
|
|
31828
|
+
color: zColor.nullish(),
|
|
31829
|
+
tooltip: zTooltip.nullish(),
|
|
31830
|
+
legend: zLegend.nullish(),
|
|
31831
|
+
pivotGrid: zPivotChartGridConfig.nullish()
|
|
31832
|
+
});
|
|
30747
31833
|
const zConfig = schemas_object({
|
|
30748
31834
|
table: zTableConfig.nullish(),
|
|
30749
31835
|
pivotTable: zPivotTableConfig.nullish(),
|
|
@@ -30772,6 +31858,8 @@ self.R = R;
|
|
|
30772
31858
|
treeMap: zTreeMapConfig.nullish(),
|
|
30773
31859
|
sunburst: zSunburstConfig.nullish(),
|
|
30774
31860
|
circlePacking: zCirclePackingConfig.nullish(),
|
|
31861
|
+
hierarchySankey: zHierarchySankeyConfig.nullish(),
|
|
31862
|
+
sankey: zSankeyConfig.nullish(),
|
|
30775
31863
|
funnel: zFunnelConfig.nullish(),
|
|
30776
31864
|
heatmap: zHeatmapConfig.nullish(),
|
|
30777
31865
|
boxPlot: zBoxplotConfig.nullish(),
|
|
@@ -31644,6 +32732,34 @@ self.R = R;
|
|
|
31644
32732
|
theme: zTheme.nullish(),
|
|
31645
32733
|
locale: zLocale.nullish()
|
|
31646
32734
|
});
|
|
32735
|
+
const zHierarchySankey = schemas_object({
|
|
32736
|
+
chartType: literal('hierarchySankey'),
|
|
32737
|
+
dataset: zDataset.nullish(),
|
|
32738
|
+
dimensions: zDimensions.nullish(),
|
|
32739
|
+
measures: zMeasures.nullish(),
|
|
32740
|
+
page: zPage.nullish(),
|
|
32741
|
+
backgroundColor: zBackgroundColor.nullish(),
|
|
32742
|
+
color: zColor.nullish(),
|
|
32743
|
+
label: zLabel.nullish(),
|
|
32744
|
+
legend: zLegend.nullish(),
|
|
32745
|
+
tooltip: zTooltip.nullish(),
|
|
32746
|
+
theme: zTheme.nullish(),
|
|
32747
|
+
locale: zLocale.nullish()
|
|
32748
|
+
});
|
|
32749
|
+
const zSankey = schemas_object({
|
|
32750
|
+
chartType: literal('sankey'),
|
|
32751
|
+
dataset: zDataset.nullish(),
|
|
32752
|
+
dimensions: zDimensions.nullish(),
|
|
32753
|
+
measures: zMeasures.nullish(),
|
|
32754
|
+
page: zPage.nullish(),
|
|
32755
|
+
backgroundColor: zBackgroundColor.nullish(),
|
|
32756
|
+
color: zColor.nullish(),
|
|
32757
|
+
label: zLabel.nullish(),
|
|
32758
|
+
legend: zLegend.nullish(),
|
|
32759
|
+
tooltip: zTooltip.nullish(),
|
|
32760
|
+
theme: zTheme.nullish(),
|
|
32761
|
+
locale: zLocale.nullish()
|
|
32762
|
+
});
|
|
31647
32763
|
const zRacePie = schemas_object({
|
|
31648
32764
|
chartType: literal('racePie'),
|
|
31649
32765
|
dataset: zDataset.nullish(),
|
|
@@ -31762,6 +32878,8 @@ self.R = R;
|
|
|
31762
32878
|
zTreeMap,
|
|
31763
32879
|
zSunburst,
|
|
31764
32880
|
zCirclePacking,
|
|
32881
|
+
zHierarchySankey,
|
|
32882
|
+
zSankey,
|
|
31765
32883
|
zRaceBar,
|
|
31766
32884
|
zRaceColumn,
|
|
31767
32885
|
zRaceScatter,
|